{
  "slug": "bch-code",
  "term": "BCH code",
  "aliases": [
    "Bose-Chaudhuri-Hocquenghem code",
    "BCH"
  ],
  "definition": "A BCH code is a cyclic error-correcting code constructed by prescribing consecutive powers of a finite-field element as generator-polynomial roots.",
  "note": "A designed distance of 2t + 1 gives minimum distance at least 2t + 1, supporting correction of every pattern of at most t errors per codeword with a suitable decoder. Binary symbols are bits; actual minimum distance can exceed the design bound. [tilborg-coding]\n\nThe code family does not require hard-decision-only decoding. Chase-style BCH decoding can use reliability information to select candidate hard inputs; that distinction does not identify which algorithm a particular SSD implements. [agarwal-soft-bch]\n\nFast Chase decoding can reuse computations between candidate patterns on unreliable coordinates. These are decoder trials, not a count of physical NAND reads or a measured SSD speedup. [shany-berman-chase-v2]\n\nLinux v6.12 distinguishes ecc_bits, the exact parity-bit count, from ecc_bytes, the maximum parity-buffer size. Neither field is the correction capability t. [linux-bch-layout-v612]",
  "related": [
    "error-correcting-code",
    "codeword",
    "error-syndrome",
    "hamming-distance",
    "ldpc",
    "soft-decision-decoding"
  ],
  "citations": [
    {
      "id": "tilborg-coding",
      "title": "H. C. A. van Tilborg: Coding Theory, a First Course, sections 2.1-2.2 and 4.2",
      "url": "https://henkvt.win.tue.nl/images/CODING.pdf",
      "accessed": "2026-10-25"
    },
    {
      "id": "agarwal-soft-bch",
      "title": "A. Agarwal (2025): Interpretable Machine Learning and Trustworthy Uncertainty Quantification, Appendix C, p. 167",
      "url": "https://escholarship.org/content/qt2sr1c8nk/qt2sr1c8nk.pdf",
      "accessed": "2026-10-25"
    },
    {
      "id": "hesela-bch",
      "title": "Hesela: BCH, LDPC and the RBER aggregation trap, decoder contracts",
      "url": "https://hesela.com/analyses/nand-ecc-bch-vs-ldpc/#decoder-contract",
      "accessed": "2026-10-25"
    },
    {
      "id": "linux-bch-layout-v612",
      "title": "Linux v6.12 include/linux/bch.h: exact parity bits and maximum parity-buffer bytes",
      "url": "https://github.com/torvalds/linux/blob/v6.12/include/linux/bch.h#L17-L23",
      "accessed": "2026-10-25"
    },
    {
      "id": "shany-berman-chase-v2",
      "title": "Y. Shany and A. Berman: Fast syndrome-based Chase decoding of binary BCH codes through Wu list decoding, arXiv:2204.02330v2 (2022), sections 5.1 and 5.4",
      "url": "https://arxiv.org/abs/2204.02330v2",
      "accessed": "2026-10-25"
    }
  ],
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-25"
}
