BCH for Solid-State-Drives
Given that the NAND Flash memory is not a very reliable medium, it follows that a Solid State Disk needs some help to achieve a reliability suitable for computing applications: the Error Correction Code (ECC).
As the NAND technology scales down, ECC becomes a critical design topic. This chapter deals with BCH, the most common ECC in solid state disks.
Two main issues arise when an ECC is used inside an SSD. First of all, the ECC should not limit the bandwidth, being the bottleneck of the entire drive: this translates in a hardware implementation that needs to handle multiple devices (channel) in parallel. At the same time, ECC must avoid erroneous corrections when the error correction capability of the code is overcome, i.e. it must have a high detection property.
In this chapter the ECC definitions are reviewed, then the BCH code is presented with its detection property. Finally, the multi-channel topic is addressed.
KeywordsError Correction Code Minimal Polynomial Convolutional Code Dual Code Linear Programming Technique
- 1.C.E. Shannon, A mathematical theory of communication. Bell Syst. Tech. J. 27 379–423, 623–656 (1948)Google Scholar
- 3.A. Hocquenghem, Codes correcteurs d’erreurs. Chiffres 2, Sept (1959)Google Scholar
- 5.C. Berrou, A. Glavieux, P. Thitimajshimima, Near Shannon limit error-correcting coding and decoding: Turbo-codes, in Proceedings of ICC’93, Geneva, Switzerland, May 1993, pp.1064–1070Google Scholar
- 6.R.G. Gallager, Low-density parity-check codes. IRE Trans. Inf. Theory. IT-8, 21–28 (Jan 1962)Google Scholar
- 8.R. Micheloni, A. Marelli, R. Ravasio, Error Correction Codes for Non-Volatile Memories (Springer, Berlin, 2008)Google Scholar
- 9.S. Lin, D.J. Costello, Error Control Coding (Prentice Hall, Upper Saddle River, 2004)Google Scholar
- 12.R. Micheloni et al., A 4Gb 2b/cell NAND flash memory with embedded 5b BCH ECC for 36MB/s system read throughput, in ISCC Dig. Tech. Papers, San Francisco, Feb 2006Google Scholar
- 16.I.S. Reed, M.T. Shih, T.K. Truong, VLSI design of inverse-free Berlekamp-Massey algorithm. IEEE Proc. 138, 295–298 (Sept 1991)Google Scholar
- 17.S. Mizrachi, D. Stopler, Efficient method for fast decoding of BCH binary codes. US Patent 2003/0159103 A1, Aug 2003Google Scholar
- 25.M.G. Kim, J.H. Lee, Decoder error probability of binary linear block codes and its application to binary primitive BCH codes. IEICE Trans. Fundam. E79-A(4), 592–599 (1996)Google Scholar
- 26.Y. Lee, H. Yoo, I. Yoo, I.C. Park, 6.4Gb/s multi-threaded BCH encoder and decoder for multi-channel SSD controllers, in ISCC Dig. Tech. Papers, San Francisco, Feb 2012Google Scholar