Write-once memory code
A write-once memory code represents successive logical values using physical states that change only in a permitted direction between resets.
The classical binary model starts with zero bits and permits only zero-to-one transitions; this labels abstract states, not every NAND voltage mapping. A three-bit construction supports two successive two-bit messages, while decoding recovers the current value rather than both messages. [1]
Reusable SSD places expanded second-write data in over-provisioned space; its SSD performance evaluation uses trace-driven simulation. Additional logical writes, resident capacity and erase counts are separate quantities. [2]
The three-bit teaching code is not an error-correcting code. Every physical state decodes. Across its eight states, all 24 single-bit flips change the decoded value without rejection. This state-space check is not a physical error-rate estimate. [5]
Hardware reprogramming depends on the NAND part and programming sequence. A valid code alone does not certify device support or endurance. In the 2016 hardware study, the OpenSSD FTL omits actual WOM encoding/decoding, writes arbitrary reused-page data and ignores ECC on those reads. Coding costs and failures are modeled; this does not validate end-to-end WOM payload recovery. [3]
Voltage-based WOM-v coding targets ordered cell levels. Its FEMU/LightNVM evaluation changes cell-to-page assignment; the No-Read mode tracks page generations and gives up same-generation transitions. This is a research design, not a standard host command. [4]
Relations
- related
- NAND page, NAND erase block, Flash translation layer (FTL), Over-provisioning, Write amplification
Advantages
- Permits more than one logical value to be written before the modeled physical medium must be reset. [1]
Limitations
- Coding expansion, metadata, error correction and permitted programming operations must be evaluated together. [2, 3, 4]
Citations
- Rivest and Shamir. How to Reuse a Write-Once Memory. Information and Control 55 (1982), Table 1 and Lemma 1.
- Yadgar, Yaakobi and Schuster. Write Once, Get 50% Free: Saving SSD Erase Costs Using WOM Codes. FAST 2015, sections 2.2 and 6.
- Margaglia et al. The Devil Is in the Details: Implementing Flash Page Reuse with WOM Codes. FAST 2016, sections 3 and 5.1-5.2.
- Jaffer, Mahdaviani and Schroeder. Improving the Reliability of Next Generation SSDs using WOM-v Codes. FAST 2022; arXiv:2208.00772v1, section 3.2.
- Hesela: exhaustive three-bit WOM message and single-bit fault cases, assumptions and source hash
Sources & caveats
- Research status refers to use as an SSD coding technique, not verified implementation in a shipping product.
- Hesela's executable example implements the 1982 construction; it is not a new code or a NAND experiment.