BCH code
A BCH code is a cyclic error-correcting code constructed by prescribing consecutive powers of a finite-field element as generator-polynomial roots.
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. [1]
The 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. [2]
Fast 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. [5]
Linux 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. [4]
Relations
- related
- Error-correcting code, Codeword (storage ECC), Error syndrome, Hamming distance, LDPC (NAND ECC), Soft-decision decoding
Citations
- H. C. A. van Tilborg: Coding Theory, a First Course, sections 2.1-2.2 and 4.2
- A. Agarwal (2025): Interpretable Machine Learning and Trustworthy Uncertainty Quantification, Appendix C, p. 167
- Linux v6.12 include/linux/bch.h: exact parity bits and maximum parity-buffer bytes
- 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