A new decoding algorithm for the low-density parity-check (LDPC) codes is presented to lower the energy consumption of NAND flash-based storage systems. The maximum-effort decoding with the full parity-check matrix (H-matrix) is inefficient in the beginning stage, because the NAND flash channel is relia-ble at that time. As the energy consumption and the decoding latency are proportional to the size of the H-matrix used in decoding, the proposed algorithm starts the decoding with a partial H-matrix selected by con-sidering the channel condition. In addition, the proposed partial decoding provides various error-correcting capabilities by adjusting the partial H-matrix. Compared to the conventional method that decodes with the full H-matrix, the proposed algorithm reduces up to 67% memory accesses, reducing the energy consumption of a LDPC decoder significantly. The decoding latency is also reduced to 35.5% of the conventional decoding architecture. The decoding architecture to realize the proposed algorithm is also presented and the decoding architecture adopts the proposed algorithm is implemented in 65nm CMOS process. According to the imple-mentation results, the proposed algorithm reduces of the energy consumed for producing one-bit-output to 37.7% and the boosts the decoding throughput to 2.7 times up compared to the conventional algorithm.
NAND flash memory는 solid-state drive (SSD) 및 mobile embedded system 등 많은 저장장치에 사용된다. 최근 공정의 미세화와 저장정보의 증가로 인해 NAND flash memory는 예전에 비해 많은 오류가 발생하고 있다. 뛰어난 오류정정능력을 가진 LDPC 코드는 차세대 NAND flash 저장장치용 오류정정부호로 주목받고 있다. 하지만 기존에 사용하던 BCH나 RS코드와 달리 복호기의 하드웨어 복잡도가 높고, 이로 인해 많은 에너지를 소비하는 단점이 있다. 하지만 공장 출하 직후 상당한 시간동안 NAND flash의 채널이 좋기 때문에 최대한의 오류정정능력으로 LDPC 복호를 수행하는 것은 효율적이지 못하다. 보통 이런 문제를 해결하기 위해 wireless communica-tion에서는 multi-rate 코드를 사용하지만, 이 방법은 부호 및 복호시 채널이 같을 때만 유효하고, 또한 coderate가 변화할 때 추가적인 부호화를 요구하므로 과거에 저장된 data를 읽어내 미래에 복호하는 저장장치에는 적합하지 않다.
본 논문에서는 하나의 LDPC 코드로 다양한 오류정정능력을 제공하는 에너지 효율적이고, 복호 latency가 적은 LDPC 부분복호 알고리듬을 제안하였다. LDPC 복호는 parity-check matrix (H-matrix)에 기반하여 이루어지는데, 복호시 소비되는 에너지와 복호 latency는 H-matrix의 크기에 비례한다. 따라서 제안된 에너지 효율적인 LDPC 복호 알고리듬은 NAND flash의 채널 상황에 알맞은 크기의 H-matrix를 사용해 복호한다. 또한 제안된 LDPC 부분복호 알고리듬은 앞서 언급된 부분 H-matrix의 크기를 조절함으로써 하나의 H-matrix로 다양한 오류정정능력을 제공한다. 제안된 에너지 효율적인 LDPC 복호 알고리듬은 기존 구조 대비 최고 67%만큼의 메모리 접근 횟수를 줄인다. 메모리 접근 동작이 LDPC 복호기의 소비에너지 중 대부분을 차지하므로, 제안된 알고리듬은 LDPC 복호기의 소비 에너지를 효율적으로 낮출 수 있다. 또한, 복호시 부분 H-matrix를 사용하므로 복호기의 latency를 기존 구조에 비해 35.5% 수준까지 줄인다. 본 논문에서는 또한 65nm CMOS 공정을 이용하여 제안된 알고리듬으로 복호를 수행하는 복호화기를 설계하였다. 실제 설계된 복호화기는 기존 알고리듬을 사용한 구조 대비 최대 2.7배의 throughput 향상 효과를 보였으며, 1-bit 출력을 내기 위해 필요한 소비에너지를 기존 알고리즘을 사용한 구조의37.7% 수준으로 줄임으로써 제안된 알고리듬의 소비에너지 감소 및 throughput 향상을 실제 구현을 통해 확인하였다.