Global Sources
EE Times-India
Stay in touch with EE Times India
EE Times-India > Memory/Storage

Improving NAND performance with better error correction

Posted: 22 Jul 2015     Print Version  Bookmark and Share

Keywords:PMC-Sierra  NAND  ECC  SSD  LDPC 

PMC-Sierra has switched from Bose-Chaudhuri-Hocquenghem codes to low-density parity check (LDPC) codes for error correction in its solid-state drive (SSD) controllers. SSDs have become more popular as their prices plummeted, driven by continuously decreasing NAND flash costs, but this less expensive and denser NAND flash requires better error correction codes (ECCs) in SSD controllers.

Traditionally, Bose-Chaudhuri-Hocquenghem (BCH) codes were used. They were more than adequate for large geometry NAND flash. However, cheaper and denser SSDs means BCH is no longer adequate and the search for alternatives has led most controller vendors to settle on low-density parity check (LDPC) codes.

There are several reasons why we are transitioning from BCH to LDPC, but they can all be boiled down to this: LDPC codes allow you to correct more errors for the same ratio of user data to ECC parity. The second part of this last sentence is really important. We don't want to increase the number of ECC parity bits in SSDs because this leads to nasty things such as write amplification (WA), format inefficiencies and increase costs.

Flash errors increase with Program-Erase cycles

Flash errors increase with Program-Erase cycles. LDPC can correct more errors per page than BCH and can therefore keep the flash alive for longer. This results in higher endurance SSDs.

So why didn't we just use LDPC codes right from the start if they're so good? There are several reasons: 1) Although LDPC codes were first proposed by Robert Gallagher in the 1960s, their true power was not realised until the 1990s after NAND flash was already being deployed with BCH codes; 2) The circuits that decode LDPC codes tend to be larger and consume more power than their equivalents for BCH codes. Shrinking lithography for the controllers made power less of an issue; and 3) LDPC codes only really shine when you can extract something called soft information from the NAND flash, and this has only become viable in the latest generations of NAND technology.

Today there are no more excuses, so we are seeing many SSD controllers coming to the market with LDPC codes integrated into them. This is allowing us to think about SSDs in some new ways.

LDPC for SSD endurance

One very obvious benefit of the transition from BCH codes to LDPC codes is it enables the controller to extend the life of the SSD. NAND flash wears out over program-erase (PE) cycles. For example, LDPC codes allow us to take the flash to 5,000 PE cycles rather than 1,000 PE cycles; we can implement a SSD with a 500 per cent improvement in endurance with no change in NAND flash.

1 • 2 Next Page Last Page

Comment on "Improving NAND performance with bett..."
*  You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.


Go to top             Connect on Facebook      Follow us on Twitter      Follow us on Orkut

Back to Top