一种提升TLC闪存编码率的方法技术

技术编号:18398209 阅读:23 留言:0更新日期:2018-07-08 19:12
本发明专利技术公开了一种提升TLC闪存编码率的方法,其特征在于当Block被擦除的次数小于预先设置的擦除拐点次数PE_tr时选择BCH为该Block的BER纠错算法;Block被擦除的次数不小于预先设置的擦写拐点次数PE_tr时选择LDPC为该Block的BER纠错算法。通过在TLC NAND的生命周期内动态调整纠错算法策略,即动态调整校验数据大小,期望总体提升TLC闪存的编码率。

【技术实现步骤摘要】
一种提升TLC闪存编码率的方法
本专利技术涉及固态硬盘控制技术,特别涉及一种提升TLC闪存编码率的方法。
技术介绍
闪存(NAND)上的数据会有出错的可能,即读出来的数据与写入的数据不一致,所以我们需要在用户数据之外再生成一些校验数据,数据出错时用它来纠正错误,一个页的编码率=用户数据大小/(用户数据大小+校验数据大小)。目前主流纠错算法有两种,BCH(Bose、Ray-Chaudhuri与Hocquenghem)算法和LDPC(LowDensityParityCheckCode)算法,BCH纠错能力弱,但所需的校验数据少,纠错速度也快,适用于SLC(Single-LevelCell)和MLC(Multi-LevelCell)NAND;LDPC纠错能力很强,但所需的校验数据多,纠错速度慢,适用于TLCNAND。NAND的物理页在生命周期内出现的最大误码率(BitErrorRate:BER)决定了纠错算法的选择以及校验数据所占的额外闪存空间,BER越大校验数据越大(采用纠错能力强的LDPC算法),反之则越小(采用纠错能力弱的BCH算法)。NAND的特性之一为Block必须擦除后才能重写数据,所以每个Block都有一个已擦除值,由PECycle表示。NAND的另外一个特性是Block的PECycle值越大,物理页的BER也越大,如图1的BER与PECycle的关系所示。当PECycle大到一定程度,BER超过了纠错算法的纠错能力,那么SSD的寿命也到了。SLC、MLC、TLC(Triple-LevelCell)NAND的BER与PECycle的关系如图3所示,从图中可以看出,TLCNAND的BER要比SLC和MLCNAND增长的快很多,而且在生命中后期,TLCNAND的BER已经超过了BCH的纠错能力,所以TLCNAND必须采用LDPC纠错算法。TLCNAND闪存的特性:随着PECycle次数的增加,块(Block,闪存最小的擦除单位)的BER值越来越大,在生命中后期BER已经超过了BCH纠错算法的纠错能力,所以为了保证SSD的使用寿命,TLCNAND必须采用LDPC算法,而且是在整个生命周期内一直采用LDPC算法。而LDPC算法需要的校验数据比BCH多很多,所以TLCNAND在整个生命周期内的编码率=用户数据大小/(用户数据大小+LDPC校验数据大小)。常规的做法是TLCNAND在整个生命周期中都采用LDPC算法,而LDPC算法需要的校验数据比较多,且是固定的。采用固定LDPC算法为了保证整体的安全性因此选择的校验数据长度为最大,带来的问题就是用户数据长度小,整体的编码率低的问题。
技术实现思路
针对以上缺陷,本专利技术目的是如何提高TLCNAND的用户编码率。为了解决以上问题本专利技术提出了一种提升TLC闪存编码率的方法,其特征在于当Block被擦除的次数小于预先设置的擦除拐点次数PE_tr时选择BCH为该Block的BER纠错算法;Block被擦除的次数不小于预先设置的擦写拐点次数PE_tr时选择LDPC为该Block的BER纠错算法。所述的提升TLC闪存编码率的方法,其特征在于所述拐点次数PE_tr通过采样同一批次的闪存统计获取最优的推荐拐点次数PE_tr,所述PE_tr的获取以保证小于PE_tr是发生的位反转错误都可以通过BCH纠错算法进行恢复,控制器中同时集成了BCH和LDPC两种纠错算法,记录每个Block的擦除次数NN,在写入数据前先判断NN与PE_tr的关系,当NN<PE_tr时,选择BCH为当前写入Block的BER纠错算法;当NN>=PE_tr时,选择LDPC为当前写入Block的BER纠错算法。所述的提升TLC闪存编码率的方法,其特征在于根据擦除次数与出现BER的关系图,选择最优的推荐拐点次数PE_tr,所述PE_tr的获取以保证小于PE_tr是发生的位反转错误都可以通过BCH纠错算法进行恢复,同时控制器中同时集成了BCH和LDPC两种纠错算法,记录每个Block的擦除次数NN,在写入数据前先判断NN与PE_tr的关系,当NN<PE_tr时,选择BCH为当前写入Block的BER纠错算法;当NN>=PE_tr时,选择LDPC为当前写入Block的BER纠错算法。所述的提升TLC闪存编码率的方法,其特征在于选用LDPC纠错算法时动态根据擦除次数NN选择不同校验数据长度的LDPC纠错算法;在NN较小时选择较短的校验数据长度,在NN较大时选择较长的校验数据长度。所述的提升TLC闪存编码率的方法,其特征在于校验数据长度的选择根据擦除次数与出现BER的关系图计算获取。本专利技术的有益效果是:通过在TLCNAND的生命周期内动态调整纠错算法策略,即动态调整校验数据大小,期望总体提升TLC闪存的编码率。附图说明图1是BER与PECycle的关系图;图2是各种类型闪存的BER与PECycle的关系图;图3是根据PE拐点选择不同的纠错算法类型示意图;图4是实验获取的BER与PECycle的对应关系曲线图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。现有技术中TLCNAND在整个生命周期内都采用LDPC纠错算法,编码率=用户数据大小/(用户数据大小+LDPC校验数据大小)。图2是各种类型闪存的BER与PECycle的关系图,TLCNAND的BER是随着PECycle单调上升变化的,在PECycle较小的时候,BER也比较小,此时BCH纠错算法完全够用,而且BCH需要的校验数据较小,能有效提升编码率。基于BER与PECycle的关系,提出每个Block的生命周期内根据当前PECycle值自动选择纠错算法类型以及校验数据的长度。图3是根据PE拐点选择不同的纠错算法类型示意图,在PE拐点之前采用BCH纠错算法,其编码率=用户数据大小/(用户数据大小+BCH校验数据大小),其中BCH校验数据大小<LDPC校验数据大小,所以编码率在拐点前提升了很多,而且BCH算法的纠错速度也比较快。在PE拐点之后采用LDPC纠错算法。PE拐点是BCH纠错算法的极限点,优选不同批次的TLCNAND需要通过抽样并经过大量验证实验得出,并给出实际使用的推荐值。以下举例说明如何获得PE拐点数据。首先说明如何实验得出Block的BER,BER的值主要与闪存工作温度、块的擦除次数(PECycle)以及数据保持(Rentention)时间相关,本示例中我们在最苛刻的条件下做实验:第一步:一般消费级TLC闪存的工作温度为0~70摄氏度,我们的整个实验放置于70摄氏度的温箱中进行。第二步:对Block擦除N次(得出结果为PCCycle=N对应的BER),即Block写满数据后擦除,循环N次。第三步:将实验数据写入整个Die,然后数据保持一天,这里的数据保持指的是让闪存保持在掉电状态。第四步:读出整个Block的数据,与实验数据(已知的)作对比,计算出每个页的本文档来自技高网
...

【技术保护点】
1.一种提升TLC闪存编码率的方法,其特征在于当Block被擦除的次数小于预先设置的擦除拐点次数PE_tr时选择BCH为该Block的BER纠错算法;Block被擦除的次数不小于预先设置的擦写拐点次数PE_tr时选择LDPC为该Block的BER纠错算法。

【技术特征摘要】
1.一种提升TLC闪存编码率的方法,其特征在于当Block被擦除的次数小于预先设置的擦除拐点次数PE_tr时选择BCH为该Block的BER纠错算法;Block被擦除的次数不小于预先设置的擦写拐点次数PE_tr时选择LDPC为该Block的BER纠错算法。2.根据权利要求1所述的提升TLC闪存编码率的方法,其特征在于所述拐点次数PE_tr通过采样同一批次的闪存统计获取最优的推荐拐点次数PE_tr,所述PE_tr的获取以保证小于PE_tr是发生的位反转错误都可以通过BCH纠错算法进行恢复,控制器中同时集成了BCH和LDPC两种纠错算法,记录每个Block的擦除次数NN,在写入数据前先判断NN与PE_tr的关系,当NN<PE_tr时,选择BCH为当前写入Block的BER纠错算法;当NN>=PE_tr时,选择LDPC为当前写入Block的BER纠错算法。3.根据权利要求1所述的提升TLC闪...

【专利技术属性】
技术研发人员:许毅姚兰郑春阳
申请(专利权)人:深圳忆联信息系统有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1