As the NAND flash memory increases its capacity by adopting the multi-level cell technique, the relia-bility degrades significantly, especially in the triple-level cell NAND flash that stores 3 bits per cell. To alleviate the problem and ensure the data integrity, system-level solutions have been addressed. In general, more pow-erful error-correcting codes have been exploited to compensate for the degraded reliability, but the codes are not fully utilized and the area and power overhead becomes larger. In this thesis, new programming methods, braided page programming method and the state remapping method, which can be applied independently to the system to improve the reliability are proposed. The braided page programming method arises from the unbalance nature of bit errors among the data pages stored in the same row of cells and redress the imbal-ance of bit errors. Simulation results prove that it reduces the maximum page error rate by 50% compared to the conventional programming method. The state remapping method is based on the fact that programming lower threshold voltage causes less bit errors than that of the higher threshold voltage. This method analyzes the distribution of the bit patterns and redefines them in the way that the minimum interferences occur. Simu-lation results show that the state remapping method reduces bit error rate by 70% at maximum compared to the conventional method.
NAND Flash 메모리는 SSD, 휴대폰, mp3 등의 시장에서 널리 사용되고 있는 메모리로 낮은 가격으로 높은 집적도의 메모리를 생산할 수 있다는 장점이 있다. 공정 기술과 한 메모리 셀에 여러 비트를 저장하는 multi-level cell 기술의 발전으로 인해 NAND flash 메모리의 집적도는 지속적으로 증가하고 있으며, 이에 따라 심화되는 cell-to-cell interference, program/read distrubs의 효과로 메모리의 신뢰성이 낮아지는 문제가 발생하였다. 이를 보완하기 위해 NAND flash메모리의 에러에 대한 저항력을 높이는 방법에 대한 연구가 널리 진행되고 있으며, 메모리를 사용하는 시스템 상에서 여러 단계에 걸쳐 다양한 방법들이 제안되었다.
본 논문에서는 세 비트를 한 메모리 셀에 저장하는 TLC NAND flash 메모리를 중심으로 하여 메모리의 신뢰성을 높이기 위한 두 가지 프로그래밍 방법을 제시하고, 시뮬레이션을 통해 그 효과를 입증한 뒤 실질적인 구현 방법에 대해서 다루었다. 먼저, TLC NAND flash의 세 페이지에서 각각 page error rate가 다르게 나타나는 점을 이용하여, 세 페이지를 cyclic shifting을 통해 저장하여 최대 page error rate를 50% 감소시키는 방법을 제안하였으며, 이를 braided page programming이라 지칭하였다. 또한, 호스트에서 전달되는 데이터 자체의 분포를 달리하여 에러 발생 자체를 줄이기 위해 state remapping method를 제안하였다. 이는 데이터의 분포를 분석한 뒤 최대한 에러가 적게 발생하도록 데이터의 mapping을 바꾸어주는 방법이며, 같은 목적으로 설계된 기존의 방법들에 비해 적은 메모리 overhead와 낮은 bit error rate를 가지는 것을 실험적으로 증명하였다. 위 방법은 기존의 프로그래밍 방법에 비해 최대 70%까지 bit error rate를 감소시킬 수 있다.
제안된 두 방법은 시스템 상에서 독립적으로 적용될 수 있으며, NAND flash 메모리의 신뢰성을 높이기 위해 일반적으로 사용되는 고성능의 error-correcting code와 같은 다른 방법들과 동시에 적용 가능하다. 더불어, 다양한 공정과 여러 종류의 NAND flash에서도 범용적으로 사용 가능하다는 장점을 가진다. 따라서, 제안한 방법들을 통해 TLC NAND flash 메모리를 사용하는 시스템의 신뢰성을 대폭 증진시킬 수 있다.