首页> 中国专利> 一种基于闪存错误区间的LDPC纠错编码方法

一种基于闪存错误区间的LDPC纠错编码方法

摘要

本发明公开了一种基于闪存错误区间的LDPC纠错编码方法,根据固态硬盘信道当前的差错率,计算出准确的错误区间;利用错误区间定位可能的错误位置;根据Bit-Flipping方法译码准则翻转已定位为错误位置中的位。本发明解决了在高速存储系统中单纯使用软译码的高延迟问题,消除了Bit-Flipping方法硬译码过程中错误码字的传播,提高了纠错能力和算法执行效率。

著录项

  • 公开/公告号CN104464822A

    专利类型发明专利

  • 公开/公告日2015-03-25

    原文格式PDF

  • 申请/专利权人 湖南大学;

    申请/专利号CN201410673529.X

  • 发明设计人 胡玉鹏;宋顺;周超;卿敏龙;廖优;

    申请日2014-11-21

  • 分类号G11C29/42(20060101);

  • 代理机构43113 长沙正奇专利事务所有限责任公司;

  • 代理人马强

  • 地址 410082 湖南省长沙市岳麓区麓山南路2号

  • 入库时间 2023-12-18 08:10:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-04-20

    授权

    授权

  • 2015-04-22

    实质审查的生效 IPC(主分类):G11C29/42 申请日:20141121

    实质审查的生效

  • 2015-03-25

    公开

    公开

说明书

技术领域

本发明涉及针对NAND闪存系统的LPDC纠错编码领域,特别是一种基于闪存错误 区间的LDPC纠错编码方法。

背景技术

随着互联网和社会各领域信息化系统的迅猛发展,数据的爆炸式增长使得大容量存储 系统在可靠性和性能等方面均面临巨大的挑战。以NAND Flash作为存储介质的固态盘 (Solid-State Drive,SSD)具有高性能、低功耗等特点,已经逐步应用于军事、车载、航空等 多个领域,为构建大容量存储系统提供了更多的发展机遇,采用Flash介质构建高容错、 高效能的大容量固态存储系统,是存储系统的主要发展趋势之一。尽管研究者们针对固态 盘展开了多方面的研究,取得了一系列成果,但是固态盘的纠错编码技术却仍然是沿袭磁 存储系统的传统ECC纠错方法,尚未针对Flash介质和固态盘的差错特性进行深入研究。

另外随着云计算应用的不断扩大,更多IT厂商纷纷建立自己的数据中心,不仅仅是互 联网企业,一些传统的IT厂商也开始着重对于数据中心的开发。由于数据中心的规模庞大, 数以万计的存储设备带来能耗成本巨大,且I/O性能瓶颈问题突出,这给了固态硬盘广阔 的市场空间,固态存储系统的低功耗、高性能、低噪声等特点为大规模数据中心的发展提 供了更大的空间,成为未来数据中心或云计算的首选配置,因此,采用高性能固态存储系 统构建大规模数据中心是存储系统未来的主要发展趋势之一。IDC的研究报告预计固态存 储系统的销售额从2010年(24亿美金)开始将以每年105%的速度增长,且将达到100亿美 金/年,被IDC评为存储领域十大新技术之一。

然而,随着Flash工艺深入到25nm甚至以下,且结构从SLC到MLC再到TLC,存 储容量越来越大,数据差错率也越来越高,目前固态存储系统的数据容错却仍然依赖于传 统磁存储系统的一些纠错技术,不完全符合固态存储介质的技术特点,难以充分发挥其性 能优势。因此,研究符合固态存储系统随机差错特性的纠错编码技术,并研发高容错的纠 错编码芯片,对于确保大容量固态存储系统的可靠性,具有十分重要的意义。

LDPC码即Low Density Parity Check Code,是由Gallager由上世纪60年代提出的 一类基于奇偶校验矩阵定义的线性分组码,因其校验矩阵含有少量的非零元素,因而得其 名。LDPC码因其编码率高,译码速度快,不可检测错误少,硬件实现简单以及发生错误 平台比较低等很多优点成为近些年来研究的热点。

Bit-Flipping是LDPC的一类代表性硬译码算法,有很多版本,基本思想主要是基于 Gallager提出的硬译码,根据信息位的不满足方程数与满足方程数的对比,进行翻转判决。 由于Bit-Flipping译码过程只有简单运算,其特点是硬件开销小、计算复杂度小、运算速度 快。

Zhao对传统的Bit-Flipping算法进行了改进,称为NBF(Novel Bit-Flipping)算法,NFB 解决了传统算法在译码过程中的全局搜索,采用的方法是通过动态改变翻转阀值,实验表 明该算法能效地提高译码速度,同时节约硬件开销。

Alami等人在Sum-Product算法后级联了Bit-Flipping算法,由于Bit-Flipping 译码算法的译码复杂度很小,因此该方法以少量的复杂度增加为代价将Sum-Product算法 的译码性能改进约0.2dB。

Yang等人采用了将吸收集中某一比特的数值固定,其余比特正常参与译码运算的方 法,有效的降低了LDPC码的错误平台,同时提出了一种利用运算估计错误平台位置的方 法,该方法可以对小于10-8量级的误平台的位置进行算法分析。

Wu等根据校验方程满足与否,采用不同修正因子对最小和算法进行修正,在低信噪 比的条件下,得到了比采用单一修正因子更好的译码性能,但是该算法在应用于码长较小 的LDPC码时存在比较高的地板效应,即在较高信噪比条件下仍有大于10-6量级的误码 率。

Daud以IEEE 802.16e中的LDPC码为例比较了置信传播算法、最小和算法和待修正 的最小和算法的译码性能,实验结果表明,修正的最小和算法可以获得接近置信传播算法 的译码性能。

如上所述,这些研究者从不同方面对LDPC码的译码算法进行了研究,在特定的条件 下,都获得了比较好的译码性能。

Hard-decision译码以简单的0和1作为输入,译码过程只有简单运算,因此其特点是 硬件开销小、计算复杂度小、运算速度快。但是它有一个致命的缺现,纠错能力差,原因 如下:第一,基于异或运算校验矩阵,在译码过程中,偶数个位翻转会引入错误的伴随式 信息,并且错误的伴随式信息在后续译码过程中将会传播,导致单纯依赖伴随式信息难以 准确译码;第二,在hard-decision译码中位翻转搜索是全局的,但事实上固态硬盘的错误 率数量级生命周期内一般在10^-15-10^-2之间,全局位的搜索是没有必要的;第三,硬判决 操作会损失掉大部分的信道信息,导致信道信息利用率很低。

混合译码是一种比较理想的译码的方式,因为此种方法综合了soft-decision的软信息 和hard-decision的译码速度。但是目前研究效果不是特别理想,不能同时很好地克服纠错 能力和运算速度相互制约的缺现。

发明内容

本发明所要解决的技术问题是,针对现有技术不足,提供一种基于闪存错误区间的 LDPC纠错编码方法,解决在高速存储系统中单纯使用软译码的高延迟问题,消除 Bit-Flipping方法硬译码过程中错误码字的传播,提高纠错能力和算法执行效率。

为解决上述技术问题,本发明所采用的技术方案是:一种基于闪存错误区间的LDPC 纠错编码方法,包括以下步骤:

1)根据固态硬盘信道当前的差错率,计算出准确的错误区间;

2)利用错误区间定位可能的错误位置;

3)根据Bit-Flipping方法译码准则翻转已定位为错误位置中的位。

该方法具体步骤如下:

1)将原始信息k位经过生成矩阵Gkn生成含有m位冗余信息的n位码字,将所述码字 保存在闪存中;

2)设现阶段信道的原始错误率为r,码长为n,第i位的软信息记为ni,信道模型的四 个高斯分布的平均值从左至右分别为-tha,-thb,thb,tha,根据互信息MI公式,当r为定 值时,MI值是关于q的函数,得到使MI值最大的关键因子q值,确定错误区间为[-tha-q, -tha+q]、[-thb-q,-thb+q]、[thb-q,thb+q]、[tha-q,tha+q];

3)根据ni判定信息位是否处在上述错误区间中,若是,则添加i到错误位置集合E中; 以此判断原始信息中各信息位是否处于上述错误区间中,确定位置集合E的所有元素;

4)确定在第k次迭代循环中,伴随矩阵S=(Hmn*Zn)mod2,信息位i对应的不满足方程 数其中,k为当前的迭代循环次数,i属于集合E,是指校验矩阵 Hmn的第i列的转矩,Zn为硬判决结果;

5)以初始阀值为列重,即Hmn矩阵中一列‘1’的数量,再根据翻转准则:若 则翻转ni,并将置为若则只翻转ni;根据所述翻转准 则循环判断集合E中的每一个元素对应的信息是否需要翻转;

6)判断经步骤5)处理后的信息对应的伴随矩阵S中的元素是否全部为零或者达到当 前循环次数达到最大循环次数,若没有,则返回步骤3),进行下一次循环。

最大循环次数为50~100次。

与现有技术相比,本发明所具有的有益效果为:本发明解决了在高速存储系统中单纯 使用软译码的高延迟问题,消除了Bit-Flipping方法硬译码过程中错误码字的传播,提高 了纠错能力和算法执行效率;提升了高速存储系统吞吐量,克服了偶数位翻转引入的错误 伴随式信息传播,缩小了搜索区间,提高了纠错能力;优化了纠错能力和运算速度之间的 制约。

附图说明

图1为对称的高斯白噪声模拟两层固态硬盘的信道示意图;

图2为准确计算错误区间的数学公式;

图3为图2的公式中各个概率代表的意义;

图4为闪存编码译码的流程图;

图5为2014年较新硬译码的流程图;

图6为运用本发明方法进行硬译码的流程图;

图7(a)为列重为3时使用本发明与不使用本发明的纠错能力对比图;图7(b)为列重 为5时使用本发明与不使用本发明的纠错能力对比图;

图8为使用本发明与不使用本发明的收敛速度对比图。

具体实施方式

本发明方法分为以下三个步骤:第一步是根据固态硬盘信道当前的差错率,计算出关 键因子q,从而得到准确具体的错误区间;第二步是利用错误区间定位可能的错误信息位; 第三步是根据结合的算法规则翻转已定位的信息位。

具体实现过程如下:

准备步骤:将原始信息k位经过生成矩阵G生成含有m位冗余信息的n位码字,将之 保存在闪存中,其中n=m+k,满足关系Hmn为校验矩阵,用来检验所读取 出来的信息是否正确,生成矩阵Gkn是一个只包含0或者1元素的矩阵,用于向原始信息 中加入冗余信息得到能纠错的码字。

第一步,假设现阶段信道的原始错误率在r,码长为n,第i位的软信息记为ni,而信 道模型(图1)的四个高斯分布的平均值从左至右分别为-tha,-thb,thb,tha。根据MI(Mutual Information)公式,当r一定时,MI值是关于q的函数,并且是在所需范围内的凸出图 形,得到使MI最大的关键因子q值。再根据信道模型可知具体的错误区间为[-tha-q,-tha+q]、[-thb-q,-thb+q]、[thb-q,thb+q]、[tha-q,tha+q]。

第二步,根据ni判定是否处在上述错误区间中,若是,则添加i到错误位置集合E。

第三步,Hmn为校验矩阵,其中m为冗余信息的长度,n为码长。Zn为硬判决结果。硬 判决是将从存储单元中读到的电压信息按照设计时规定的准则转化为比特信息,例如,在 单层固态硬盘中,根据它的电压大于0,硬判决为0;若小于零,则为1;若为双层固态硬 盘,每个单元包含两比特信息,对应有四个电压区间,根据电压所属区间,确定两位的信 息。总之,硬判决结果就是得到比特信息。则伴随矩阵S=(H*ZT)mod2,i属于集合E。

第四步,初始阀值为列重,即H矩阵中一列‘1’的数量,再根据翻转准则:若 (阀值),i为E集合中的元素,则翻转ni,并将置为若则 只翻转ni。根据此准则循环判断E集合中每一个元素。

第五步,根据更新后的数据,判断伴随矩阵S中的元素是否全部为零或者达到最大的 迭代次数设定,若没有,则返回执行第三步。

以下将以本发明方法进行硬译码为例进行详细的说明。第一步计算错误区间,图1以 对称的高斯白噪声模拟两层固态硬盘的信道,横轴为存储单元读取的电压值,纵轴为对应 的电压值概率密度。两层的固态硬盘一个存储单元保存两bit的信息,有四种可能,对应 的有四个高斯分布代表每一种可能。图中虚线所跨的区间即为当前信道差错率下的错误区 间;图2详细了讨论了准确计算错误区间的数学公式,主要采用互信息(Mutual Information) 和三次读(Three reads)的精度来计算。在本例中,X是原始存储信息的集合{00,01,10, 11},Y是从存储单元中读取出来后的可能信息{00,ea1,ea2,01,eb1,eb2,11,ec1,ec2,10}。互信息 I(X;Y)代表在x的输入下能正确输出原x的可能性,值越大则越稳定,也即准确率越高。

图4给出了LDPC使用DERM位翻转方法的整个编码译码流程在FPGA中的实现框架。

从译码器的流程方框中可以看出,原始的位翻转电路基本上不需要进行改动便可与 DERS电路进行耦合。从闪存中读出的软信息并行进入原始位翻转和DERS电路。原始位翻 转进行硬判决,而DERM电路输出给硬判决信息的每一位一个标志(0/1),0代表此信息位 完全正确,在后续的译码中不需要翻转,直接跳过翻转准则的判定以及相关的矩阵运算; 而1则表示此信息位可能存在错误,需要根据后续的翻转转则进行翻转。具体到本文中的 实例:当软信息处在(-q3,-q2),(q2,q3)区间,则输出标志位01(因为在双层闪存中, 一个软信息代表两比特信息);若在(-q1,q1)区间,则输出标志位10;其它区间均输出 00。标志信息将会存储在信息存储模块,直到整个码字译码完成。

右边虚线方框为DERM实现的电路,本质上是一组比较器。在双层闪存中,需要三个 比较器,每个比较器对应一个区间,分别为(-q3,-q2)、(-q1,q1)、(q2,q3)。通过使用 Verilog在Altera 5SGXEA7H3F35C的Stratix V进行仿真综合,DERM占用的ALMs和 registers分别是10和0,而相对原始位翻转译码器,DERS电路只占了0.04%大小的硬件 资源。由此可知,DERS的硬件开销是非常低的,接近可以忽略。

图5给出了2014较新的关于LDPC硬译码的详细流程图。具体步骤如下:根据校验 方程计算每个信息位的对应的不满足方程数ui,依次对错误区间中信息位进行处理,规则 如下:(阀值),i代表位置,则翻转该位,并将置为若则 只翻转该位,最后判断伴随式是否都满足或者迭代次数已达设定的最大值,若没有,则继 续循环判断每一位。其中k为当前的迭代次数。

图6是运用本发明方法进行硬译码的流程图。具体步骤如下:首先利用错误区间定位 可能的错误位置,再根据校验方程计算每个信息位的不满足方程数依次对定位为可 能错误位置的位进行处理,规则如下:(阀值),i代表位置,则翻转该位,并将u 置为若则只翻转该位,最后判断伴随式是否满足都为零或者迭代次数已 达设定的最大值,若没有,则继续循环判断每一位。

相比于现有的译码技术,首先,本发明方法可以显著地提高高速存储系统的吞吐量, 因为不仅在固态硬盘生命周期前期拥有硬译码固有的超快速度和可与软译码相提并论的 纠错能力,而且在后期的纠错中也有贡献。其次,本发明方法有利于硬译码克服单纯依赖 伴随式信息译码时,偶数位翻转可能引入错误的伴随式信息,并随着译码进程不断传播导 致的纠错能力差的情况。同时也为译码缩小搜索空间,不必浪费资源在其余大部分都正确 的信息位上。最后,本发明方法可以很容易与其他算法进行耦合,形成纠错能力更强,收 敛速度更快的有效算法。

以下用实验数据来证明本发明的优点。实验平台为Synopsys tool set在65nm CMOS  library。在实验中,我们构造了两种QC-PEG-LDPC规则码字,码率均为0.9,长度为4KB, 列重分别为3和5,最大迭代次数设置为100。为了证明DERM算法的有效性,分别选择 了2014发表在权威期刊上两个算法进行对比,下文将分别用NBF和GDBF缩写进行描述。

首先如图7所示,可以看出使用本发明方法(DERM)的两种算法(DERM/NBF, DERM/GDBF)比原始的两种算法(NBF,GDBF)都要具有更低的不可纠正错误率。尤其 是列重为3时,使用DERM的效果更加明显。这是因为DERM能有效克服偶数位翻转引 入的错误伴随式信息传播,缩小搜索区间,提高纠错能力,即使列重很小时仍能有很强的 纠错能力。

图8展示了使用DERM的算法与原始算法的在迭代次数上的差值。从图中可以看出对 于DERM/NBF与NBF在列重为3和5下,分别出现了最大的差值峰值为58和49,而 DERM/GDBF和GDBF组则峰会为45左右。仔细观察时发现,峰值出现都在中间位置, 这主要是因为在原始差错率达到0.006左右时,原始NBF和GDBF算法出现大量不能成功 译码,导致平均迭代次数极巨增加,而加入DERM的处理后,译码成功率急剧上升,一升 一降导致了这一巨大的差距。导致这个结果的主要原因是DERM算法能克服单纯依赖校验 矩阵,当出现偶数位翻转时引入的错误伴随式信息。

表1给出了使用DERM与否的吞吐量对比,单位为MB/S,平台时钟频率为250MHz。 原始NBF和GDBF分别平均需要16和24个时钟周期完成一次迭代,而使用DERM算法 的NBF和GDBF为10和16,这主要是因为DERM算法能有效的排除大部分正确的码字 参与翻转,并能反过来有效地利用这些正确的码字来正确译码。从表1可以算出,使用 DERM算法大致能提高的吞吐量的比率大约为30%-48%。

表1吞吐量对比情况

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号