FTL mapping

FUA and Flush Semantics

3 sourced facts on FUA and Flush Semantics, each tied to the source it comes from.

3 facts filed under FTL mapping: all 3 were read in the original source. Each was checked against the source’s own words, so its figures appear there, and each names where it comes from. The idea is taught in Part 6, The Flash Translation Layer.

Primary sources

  • In the NVMe NVM Command Set, after a write command has completed without error, later reads of that location must return the data that write wrote and not an older version of the data, with one stated exception.

    SpecificationFigures: FUA bit = Command Dword 12 bit 30NVM Express NVM Command Set Specification, Revision 1.0d

  • In the NVMe NVM Command Set, a write with Force Unit Access set makes the controller write the data and metadata to non-volatile media before it indicates command completion, with no implied ordering with other commands.

    SpecificationFigures: FUA = bit 30 of Command Dword 12NVM Express NVM Command Set Specification, Revision 1.0d

  • In the Linux block layer, a write marked FUA (Force Unit Access) completes only after its data is committed to non-volatile storage, while a preflush request first empties the device’s volatile write cache; filesystems may set both on one request.

    SpecificationExplicit volatile write back cache control — The Linux Kernel documentation

Sources

Primary is the original paper, standard or datasheet. Secondary is a review, a vendor summary or a news report. Measured is my own test data.

Show all 2 sources, 2 primary