论文部分内容阅读
NAND闪存在设计时就采用了诸多降低数据出错概率、提高芯片性能的算法,然而可靠性问题使得NAND闪存仍然要依赖于纠错码(Error Correcting Code,ECC)来保证用户数据的完整性和延长产品的寿命。例如NAND闪存具有编程/擦除次数(Program/erase cycles,P/E cycles)的限制,如何随着时间的推移并维持良好的数据完整性成为了NAND闪存研究的一项重要议题。为了提升NAND闪存产品的可靠度,本文对LDPC(low-density parity-check)码展开研究,在分析NAND闪存信道和阈值电压分布特性的基础上提出了相应的解决方案。本文的主要研究内容包括: 1.针对NAND闪存的应用需求,研究了LDPC码的构造方法。考虑到NAND闪存对码率、码长和纠错能力的要求,本文对LDPC码的拉丁方构造方法进行研究,构造了码率为0.944的(8763,8272)QC-LDPC码。 2.研究了LDPC码的软判决译码算法,详细介绍了和积算法、最小和算法及其改进算法,分析并比较了TPMP(Two Phase Message Passing)译码算法和分层译码算法的优缺点,然后结合软件仿真,确定本论文所采用的译码算法为分层偏移最小和算法,其中偏移量的取值定为0.7。 3.提出了动态对数似然比(Dynamic Log-likelihood Ratio,DLLR)纠错方案。本文将MLC(Multi-level cell)NAND闪存的阈值分布建模成高斯混合模型,引入EM(expectation-maximization)算法对分布的参数进行估计,然后根据估计的参数来计算LLR值用于LDPC译码。仿真结果表明,在23次读操作下,DLLR纠错方案可以将NAND闪存的P/E cycles耐受性提升近4K次。 4.完成了LDPC译码器的设计,并通过搭建仿真平台对DLLR纠错方案进行硬件层面的仿真和验证。使用Vivado工具在Xilinx公司型号为xc7vx690t的Virtex-7芯片上完成了译码器的综合。当最大迭代次数为8时,译码器在100MHz时钟频率下,吞吐率可以达到299.28Mb/s。