Reed-Solomon for NAND Flash
ECC Tek's existing RS encoder and decoder designs for NAND Flash correct t=5 10-bit symbols in error in K‑byte pages where K is 524 bytes. Designs that handle other t and K values can quickly be developed. 4K‑byte page sizes can be accommodated by repeating 524-byte segments 8 times.
ECC Tek's RS designs for NAND Flash allow customers to create customized RS decoder designs by selecting different decoder components. Each combination of components results in a decoder with unique performance characteristics.
ECC Tek’s existing RS encoders and decoders for NAND Flash operate on 10-bit symbols internally, but data is input and output as 8-bit bytes. The bytes are converted from bytes to 10-bit symbols (B2S) at the input and the symbols are converted from symbols to bytes (S2B) at the output as shown in the following encoder and decoder block diagrams.
ECC Tek can quickly create programmable versions of the RS encoder and decoder if desired so that t and K can vary.
Customers can choose components so that the decoder has a minimum gate count or a minimum latency.
Customers can choose to have a fixed decoder delay or a delay which varies with the number of symbols in error. With a variable delay decoder, if no errors are detected in the received word, the decoder delay is only a 6 clock cycles and will increase as the number of errors increases. With a fixed delay decoder, the decoder latency is constant and equal to the longest delay. The advantage of a fixed delay is that the output will always be available at the same time regardless of the number of errors that occur.
Customers who wish to temporarily pause the data output from the decoder can implement a pause FIFO at the output at the decoder or ECC Tek can implement the pause FIFO for them.
ECC Tek has set the standard in space with parallel Reed-Solomon (PRS) encoders and decoders and is setting the standard for Flash with its RS encoder and decoder designs.
A RS encoder block diagram is shown below. Inputs and out data streams are "bytes".
A RS decoder block diagram is shown below. Input and output data streams are "bytes".