{
  "slug": "error-correcting-code",
  "term": "Error-correcting code",
  "aliases": [
    "ECC",
    "error correction code"
  ],
  "definition": "An error-correcting code adds structured redundancy to data so a decoder can detect and correct specified error patterns.",
  "note": "Correction has limits set by the code and decoder. A decoder may declare failure or miscorrect; successful completion is not an unconditional integrity guarantee. NAND implementations can combine ECC with additional error-detection checks. [cai2017]",
  "limitations": [
    {
      "text": "The label ECC alone does not specify a correction budget or end-to-end data protection.",
      "citationIds": [
        "cai2017"
      ]
    }
  ],
  "related": [
    "codeword",
    "ldpc",
    "reed-solomon-code",
    "raw-bit-error-rate",
    "uncorrectable-bit-error-rate",
    "checksum",
    "end-to-end-data-protection"
  ],
  "citations": [
    {
      "id": "snia-ecc",
      "title": "SNIA Dictionary: Error Correcting Code.",
      "url": "https://www.snia.org/education/online-dictionary/term/error-correcting-code",
      "accessed": "2026-10-12"
    },
    {
      "id": "cai2017",
      "title": "Cai et al. Error Characterization, Mitigation, and Recovery in Flash Memory Based Solid-State Drives (2017), sections II.C and VI.C.",
      "url": "https://research.ece.cmu.edu/safari/pubs/1706.08642.pdf",
      "accessed": "2026-10-12"
    },
    {
      "id": "hesela-ldpc",
      "title": "Hesela: LDPC in NAND, the read cost of confidence.",
      "url": "https://hesela.com/analyses/ldpc-soft-decoding-read-cost/",
      "accessed": "2026-10-12"
    }
  ],
  "status": "shipping",
  "advantages": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-12"
}
