{
  "slug": "nand-ecc-bch-vs-ldpc",
  "title": "An example BCH code corrects raw bit error rates up to 1e-3, yet Google's field SSDs had median rates of 6e-10 to 3e-8, and raw rate did not predict uncorrectable errors",
  "kind": "dataset",
  "summary": "An example BCH code corrects raw bit error rates up to 1.0e-3 and soft LDPC up to 5.0e-3 (Cai et al., 2017; Zhao et al., FAST 2013 find about 3 times). Google's field median raw bit error rate was 5.8e-10 to over 3e-8, and 2 to 6 per 1,000 drive days had an uncorrectable error (Schroeder et al., FAST 2016).",
  "license": "Small derived table of figures printed in Zhao et al. (FAST 2013), Cai et al. (Proceedings of the IEEE 2017), and Schroeder et al. (FAST 2016), with credit. Not a Creative Commons license. The papers remain with their authors or publishers. This file is not a copy of the papers and not the data.",
  "licenseUrl": "https://www.usenix.org/system/files/conference/fast16/fast16-papers-schroeder.pdf",
  "sourceUrl": "https://www.usenix.org/system/files/conference/fast16/fast16-papers-schroeder.pdf",
  "accessed": "2026-10-11",
  "rowCount": 13,
  "columns": [
    {
      "name": "measure",
      "type": "string",
      "description": "The quantity as the source names it."
    },
    {
      "name": "value_low",
      "type": "number",
      "description": "Lower end of a printed range. Empty when the source prints a single value."
    },
    {
      "name": "value_high",
      "type": "number",
      "description": "Single printed value, or the upper end of a range. For 'over' or 'below' it is the stated bound."
    },
    {
      "name": "unit",
      "type": "string",
      "description": "Unit of the value columns: errors per bit, percent, times, bytes, probability, or per 1,000 drive days."
    },
    {
      "name": "scope",
      "type": "string",
      "description": "Population and window the value applies to."
    },
    {
      "name": "note",
      "type": "string",
      "description": "What the value is not, or the source wording behind it."
    },
    {
      "name": "citation_id",
      "type": "string",
      "description": "Id of the opened source in the citations list."
    }
  ],
  "downloadPath": "/data/datasets/nand-ecc-bch-vs-ldpc.csv",
  "humanPage": "https://hesela.com/analyses/nand-ecc-bch-vs-ldpc/",
  "limits": [
    "The code limits are example codes, not the codes inside any specific drive.",
    "Field raw bit error rates are medians and percentiles of drive months; the tail inside a drive can be far higher.",
    "Cai et al. cite Zhao et al., so the design sources are not fully independent.",
    "The 3 times and 5 times gains use different codes and sensing levels.",
    "Uncorrectable errors in the field are counted per drive day, not per bit."
  ],
  "citations": [
    {
      "id": "zhao-fast13-pdf",
      "title": "LDPC-in-SSD: Making Advanced Error Correction Codes Work Effectively in Solid State Drives, Zhao, Zhao, Sun, Zhang, Zhang, and Zheng, USENIX FAST 2013, pages 243 to 256 (USENIX PDF)",
      "url": "https://www.usenix.org/system/files/conference/fast13/fast13-final125.pdf",
      "accessed": "2026-10-11"
    },
    {
      "id": "cai-procieee17-pdf",
      "title": "Error Characterization, Mitigation, and Recovery in Flash-Memory-Based Solid-State Drives, Cai, Ghose, Haratsch, Luo, and Mutlu, Proceedings of the IEEE, September 2017 (arXiv 1706.08642, section 6)",
      "url": "https://arxiv.org/pdf/1706.08642",
      "accessed": "2026-10-11"
    },
    {
      "id": "schroeder-fast16-pdf",
      "title": "Flash Reliability in Production: The Expected and the Unexpected, Schroeder, Lagisetty, and Merchant, USENIX FAST 2016 (USENIX PDF, sections 3 and 4)",
      "url": "https://www.usenix.org/system/files/conference/fast16/fast16-papers-schroeder.pdf",
      "accessed": "2026-10-11"
    }
  ]
}
