{
  "slug": "flash-correct-and-refresh",
  "term": "Flash Correct-and-Refresh",
  "aliases": [
    "FCR",
    "Flash Correct and Refresh"
  ],
  "definition": "Flash Correct-and-Refresh is a NAND maintenance technique that corrects data and reprograms or remaps it before retention errors exceed ECC capability.",
  "note": "Mechanism: Remapping writes corrected data to another location. Hybrid FCR instead replenishes lost charge in place when possible, using remapping when accumulated program errors warrant it. Adaptive FCR varies the refresh interval with block wear. [cai]\n\nDirectional limit: In the studied floating-gate MLC, programming adds charge but cannot remove excess charge without erase. In-place refresh therefore cannot reverse every program-interference error and can introduce further disturbance. ECC correction must precede refresh; merely rereading data is not this mechanism. [review]\n\nWear trade-off: More frequent remapping adds erase cycles and can shorten modeled lifetime for read-heavy workloads. Refresh also needs power, so continuously powered operation does not establish powered-off archival retention. [cai]\n\nRelated design: Retention relaxation uses shorter initial retention to reduce write latency or ECC cost, while tracking surviving data for stronger protection before its deadline. This is a controller design, not permission for applications to discard old data. [liu]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "The FCR lifetime improvements came from trace-driven SSD simulation informed by 3x-nm MLC measurements, not fleet survival measurements or a guarantee for current 3D NAND.",
      "citationIds": [
        "cai"
      ]
    }
  ],
  "related": [
    "data-retention",
    "read-reclaim",
    "error-correcting-code",
    "program-interference",
    "ftl"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-08",
  "citations": [
    {
      "id": "cai",
      "title": "Cai et al. Flash Correct-and-Refresh. ICCD 2012, sections IV-VI. DOI: 10.1109/ICCD.2012.6378623.",
      "url": "https://people.inf.ethz.ch/omutlu/pub/flash-correct-and-refresh_iccd12.pdf",
      "accessed": "2026-11-08"
    },
    {
      "id": "review",
      "title": "Cai et al. Error Analysis and Retention-Aware Error Management for NAND Flash Memory. Intel Technology Journal 17(1), 2013, pp. 150-155.",
      "url": "https://www.pdl.cmu.edu/PDL-FTP/NVM/flash-error-analysis-and-management_itj13.pdf",
      "accessed": "2026-11-08"
    },
    {
      "id": "liu",
      "title": "Liu, Yang and Wu. Optimizing NAND Flash-Based SSDs via Retention Relaxation. FAST 2012, sections 4-6.",
      "url": "https://www.usenix.org/event/fast12/tech/full_papers/Liu.pdf",
      "accessed": "2026-11-08"
    }
  ],
  "provenance": [
    "Source synthesis of historical research designs; no contemporary SSD firmware implementation or hardware experiment is asserted."
  ]
}
