论文部分内容阅读
NAND闪存由于其高性能、低能耗、高存储容量和非易失性等优点现已成为各类便携式数字设备和企业数据中心的重要存储介质。多级单元(Multi-Level Cell,MLC)技术通过量化存储单元中电荷数量来提高NAND闪存的存储容量。但是,由于MLC单元中电荷等级比单级单元(Single-Level Cell,SLC)更加紧密,单元间干扰和电荷泄漏等噪声导致MLC闪存更容易出现错误。特别地,随着NAND闪存芯片封装尺寸的缩小,MLC型NAND闪存的可靠性面临着严峻的挑战。纠错码技术为解决大容量闪存系统所面临的可靠性问题提供了一种有效途径。而传统的RS码和BCH码等纠错码技术不能满足MLC闪存系统数据存储可靠性要求。因此,迭代译码算法下具有良好纠错性能的低密度校验(Low-Density Parity-Check,LDPC)码已经成为提高闪存存储系统可靠性的重要纠错码技术。
本文对面向MLC闪存的LDPC码的迭代译码算法及其理论进行了深入研究,通过利用MLC闪存器件的特征,提出了适用于MLC闪存系统的LDPC码几类迭代译码算法,提高了MLC闪存系统数据存储的可靠性,研究工作取得的主要成果总结如下:
1.随着MLC单元比特存储密度的增加,单元间干扰成为影响闪存可靠性的主要因素。在深入分析MLC闪存内部数据存储信道错误规律的基础上,设计了MLC闪存译码的一种比特翻转规则,提出了一种适用于MLC闪存的LDPC码的改进型比特翻转译码算法。仿真结果表明,在相同的感知精度时,所提出MLC闪存比特翻转算法的译码性能优于传统比特翻转译码算法的性能,而且MLC闪存的改进型比特翻转译码算法可以有效减少译码的平均迭代次数。
2.针对寄生耦合电容效应导致相邻MLC中的阈值电压失真而产生存储数据错误的问题,在深入分析MLC闪存错误原因的基础上,利用蒙特卡罗方法得到的相邻MLC闪存阈值电压分布的重叠区域来确定存储比特的可靠性,设计了变量节点的一种比特翻转规则。基于该比特翻转规则,提出了LDPC码比特翻转译码算法。仿真结果表明,耦合强度系数s?1.8与感知精度分别为p?4和p?5时,与现有MLC闪存比特翻转译码算法相比较,所提出MLC闪存比特翻转译码算法的译码性能分别提高了81%和91%,并且译码的平均迭代次数分别减少了9.8%和21%。
3.利用单元间干扰噪声特点,设计了MLC闪存信道下LDPC码迭代译码的归一化权重和对数似然比(Log-Likelihood Ratio,LLR)调整两种策略。为了达到译码算法复杂度和性能的更好折中,基于这两种策略,提出了一种MLC闪存的LDPC码加权比特翻转(Weight Bit-Flipping,WBF)译码算法。仿真结果表明,在MLC闪存信道模型下,与现有MLC闪存的WBF、MWBF和IMWBF译码算法相比较,所提出MLC闪存WBF译码算法具有更好的译码性能和更少的平均迭代次数。
4.MLC闪存信道的噪声可能导致获取的LLR值不够准确,这就影响了MLC闪存信道模型下LDPC码软判决译码算法的性能。通过利用MLC阈值电压的熵函数计算相邻MLC阈值电压分布间重叠区域来确定存储比特的可靠度,设计了一种MLC存储比特LLR值的动态更新策略,基于该动态更新策略,提出了一种MLC闪存的LDPC码最小和(Min-Sum,MS)译码算法。仿真结果表明,与传统的LDPC码MS译码算法相比较,所提出的LDPC码MS译码算法具有更好的译码性能与更少的平均迭代次数。
5.针对采用洪泛(Flooding)调度的LDPC码MS译码算法收敛速度慢及消耗存储资源高的问题,提出了一种基于MLC闪存存储比特可靠性的串行调度策略。仿真结果表明,耦合强度因子s?1.9和读取精度为p?5时,与采用Flooding调度策略、分层(Layered)调度策略及梳洗(Shuffled)调度策略的LDPC码MS译码算法相比较,所提出的基于可靠性串行调度策略的LDPC码MS译码算法的译码性能分别提高了54%、33%和36%,并且平均译码迭代次数分别减少了51%、19%和15.8%。
本文对面向MLC闪存的LDPC码的迭代译码算法及其理论进行了深入研究,通过利用MLC闪存器件的特征,提出了适用于MLC闪存系统的LDPC码几类迭代译码算法,提高了MLC闪存系统数据存储的可靠性,研究工作取得的主要成果总结如下:
1.随着MLC单元比特存储密度的增加,单元间干扰成为影响闪存可靠性的主要因素。在深入分析MLC闪存内部数据存储信道错误规律的基础上,设计了MLC闪存译码的一种比特翻转规则,提出了一种适用于MLC闪存的LDPC码的改进型比特翻转译码算法。仿真结果表明,在相同的感知精度时,所提出MLC闪存比特翻转算法的译码性能优于传统比特翻转译码算法的性能,而且MLC闪存的改进型比特翻转译码算法可以有效减少译码的平均迭代次数。
2.针对寄生耦合电容效应导致相邻MLC中的阈值电压失真而产生存储数据错误的问题,在深入分析MLC闪存错误原因的基础上,利用蒙特卡罗方法得到的相邻MLC闪存阈值电压分布的重叠区域来确定存储比特的可靠性,设计了变量节点的一种比特翻转规则。基于该比特翻转规则,提出了LDPC码比特翻转译码算法。仿真结果表明,耦合强度系数s?1.8与感知精度分别为p?4和p?5时,与现有MLC闪存比特翻转译码算法相比较,所提出MLC闪存比特翻转译码算法的译码性能分别提高了81%和91%,并且译码的平均迭代次数分别减少了9.8%和21%。
3.利用单元间干扰噪声特点,设计了MLC闪存信道下LDPC码迭代译码的归一化权重和对数似然比(Log-Likelihood Ratio,LLR)调整两种策略。为了达到译码算法复杂度和性能的更好折中,基于这两种策略,提出了一种MLC闪存的LDPC码加权比特翻转(Weight Bit-Flipping,WBF)译码算法。仿真结果表明,在MLC闪存信道模型下,与现有MLC闪存的WBF、MWBF和IMWBF译码算法相比较,所提出MLC闪存WBF译码算法具有更好的译码性能和更少的平均迭代次数。
4.MLC闪存信道的噪声可能导致获取的LLR值不够准确,这就影响了MLC闪存信道模型下LDPC码软判决译码算法的性能。通过利用MLC阈值电压的熵函数计算相邻MLC阈值电压分布间重叠区域来确定存储比特的可靠度,设计了一种MLC存储比特LLR值的动态更新策略,基于该动态更新策略,提出了一种MLC闪存的LDPC码最小和(Min-Sum,MS)译码算法。仿真结果表明,与传统的LDPC码MS译码算法相比较,所提出的LDPC码MS译码算法具有更好的译码性能与更少的平均迭代次数。
5.针对采用洪泛(Flooding)调度的LDPC码MS译码算法收敛速度慢及消耗存储资源高的问题,提出了一种基于MLC闪存存储比特可靠性的串行调度策略。仿真结果表明,耦合强度因子s?1.9和读取精度为p?5时,与采用Flooding调度策略、分层(Layered)调度策略及梳洗(Shuffled)调度策略的LDPC码MS译码算法相比较,所提出的基于可靠性串行调度策略的LDPC码MS译码算法的译码性能分别提高了54%、33%和36%,并且平均译码迭代次数分别减少了51%、19%和15.8%。