CN108255635A - 一种提升tlc闪存编码率的方法 - Google Patents
一种提升tlc闪存编码率的方法 Download PDFInfo
- Publication number
- CN108255635A CN108255635A CN201711227401.0A CN201711227401A CN108255635A CN 108255635 A CN108255635 A CN 108255635A CN 201711227401 A CN201711227401 A CN 201711227401A CN 108255635 A CN108255635 A CN 108255635A
- Authority
- CN
- China
- Prior art keywords
- error correction
- block
- ber
- bch
- correction algorithms
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种提升TLC闪存编码率的方法,其特征在于当Block被擦除的次数小于预先设置的擦除拐点次数PE_tr时选择BCH为该Block的BER纠错算法;Block被擦除的次数不小于预先设置的擦写拐点次数PE_tr时选择LDPC为该Block的BER纠错算法。通过在TLC NAND的生命周期内动态调整纠错算法策略,即动态调整校验数据大小,期望总体提升TLC闪存的编码率。
Description
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种提升TLC闪存编码率的方法。
背景技术
闪存(NAND)上的数据会有出错的可能,即读出来的数据与写入的数据不一致,所以我们需要在用户数据之外再生成一些校验数据,数据出错时用它来纠正错误,一个页的编码率=用户数据大小/(用户数据大小+校验数据大小)。目前主流纠错算法有两种,BCH(Bose、Ray-Chaudhuri与Hocquenghem)算法和LDPC(Low Density Parity Check Code)算法,BCH纠错能力弱,但所需的校验数据少,纠错速度也快,适用于SLC(Single-Level Cell)和MLC(Multi-LevelCell)NAND;LDPC纠错能力很强,但所需的校验数据多,纠错速度慢,适用于TLC NAND。
NAND的物理页在生命周期内出现的最大误码率(Bit Error Rate:BER)决定了纠错算法的选择以及校验数据所占的额外闪存空间,BER越大校验数据越大(采用纠错能力强的LDPC算法),反之则越小(采用纠错能力弱的BCH算法)。
NAND的特性之一为Block必须擦除后才能重写数据,所以每个Block都有一个已擦除值,由PE Cycle表示。NAND的另外一个特性是Block的PE Cycle值越大,物理页的BER也越大,如图1的BER与PE Cycle的关系所示。当PE Cycle大到一定程度,BER超过了纠错算法的纠错能力,那么SSD的寿命也到了。SLC、MLC、TLC(Triple-Level Cell)NAND的BER与PECycle的关系如图3所示,从图中可以看出,TLC NAND的BER要比SLC和MLC NAND增长的快很多,而且在生命中后期,TLC NAND的BER已经超过了BCH的纠错能力,所以TLC NAND必须采用LDPC纠错算法。
TLC NAND闪存的特性:随着PE Cycle次数的增加,块(Block,闪存最小的擦除单位)的BER值越来越大,在生命中后期BER已经超过了BCH纠错算法的纠错能力,所以为了保证SSD的使用寿命,TLC NAND必须采用LDPC算法,而且是在整个生命周期内一直采用LDPC算法。而LDPC算法需要的校验数据比BCH多很多,所以TLC NAND在整个生命周期内的编码率=用户数据大小/(用户数据大小+LDPC校验数据大小)。常规的做法是TLC NAND在整个生命周期中都采用LDPC算法,而LDPC算法需要的校验数据比较多,且是固定的。采用固定LDPC算法为了保证整体的安全性因此选择的校验数据长度为最大,带来的问题就是用户数据长度小,整体的编码率低的问题。
发明内容
针对以上缺陷,本发明目的是如何提高TLC NAND的用户编码率。
为了解决以上问题本发明提出了一种提升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的关系图计算获取。
本发明的有益效果是:通过在TLC NAND的生命周期内动态调整纠错算法策略,即动态调整校验数据大小,期望总体提升TLC闪存的编码率。
附图说明
图1是BER与PE Cycle的关系图;
图2是各种类型闪存的BER与PE Cycle的关系图;
图3是根据PE拐点选择不同的纠错算法类型示意图;
图4是实验获取的BER与PE Cycle的对应关系曲线图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中TLC NAND在整个生命周期内都采用LDPC纠错算法,编码率=用户数据大小/(用户数据大小+LDPC校验数据大小)。图2是各种类型闪存的BER与PE Cycle的关系图,TLC NAND的BER是随着PE Cycle单调上升变化的,在PE Cycle较小的时候,BER也比较小,此时BCH纠错算法完全够用,而且BCH需要的校验数据较小,能有效提升编码率。基于BER与PE Cycle的关系,提出每个Block的生命周期内根据当前PE Cycle值自动选择纠错算法类型以及校验数据的长度。
图3是根据PE拐点选择不同的纠错算法类型示意图,在PE拐点之前采用BCH纠错算法,其编码率=用户数据大小/(用户数据大小+BCH校验数据大小),其中BCH校验数据大小<LDPC校验数据大小,所以编码率在拐点前提升了很多,而且BCH算法的纠错速度也比较快。在PE拐点之后采用LDPC纠错算法。PE拐点是BCH纠错算法的极限点,优选不同批次的TLCNAND需要通过抽样并经过大量验证实验得出,并给出实际使用的推荐值。
以下举例说明如何获得PE拐点数据。
首先说明如何实验得出Block的BER,BER的值主要与闪存工作温度、块的擦除次数(PE Cycle)以及数据保持(Rentention)时间相关,本示例中我们在最苛刻的条件下做实验:
第一步:一般消费级TLC闪存的工作温度为0~70摄氏度,我们的整个实验放置于70摄氏度的温箱中进行。
第二步:对Block擦除N次(得出结果为PC Cycle=N对应的BER),即Block写满数据后擦除,循环N次。
第三步:将实验数据写入整个Die,然后数据保持一天,这里的数据保持指的是让闪存保持在掉电状态。
第四步:读出整个Block的数据,与实验数据(已知的)作对比,计算出每个页的比特翻转数目,然后计算并保存每个页的BER值。
第五步:取出所有页中最大的BER作为该Block在PE Cycle=N时的BER值,这样,只要纠错算法的纠错能力大于这个BER值,那么它就能纠正该Block上所有页发生的错误。
根据上述方法,我们需要做大量实验得出Block从PE Cycle=1到PE Cycle最大值(一般TLC的最大值为1000次)对应的BER,图4是实验获取的BER与PE Cycle的对应关系曲线图;计算出BCH纠错算法对应的纠错能力,记为BER_bch,BCH的纠错能力只能覆盖到PECycle小于等于n期间发生的错误,PE Cycle大于n后发生的错误只能使用LDPC纠错算法了,所以我们为该Block记住n这个值,在SSD运行期间,每次擦除掉该Block后,检查一下该Block的PE Cycle值与n的关系,如果PE Cycle值小于等于n,则使用BCH算法(校验数据小);如果PE Cycle值大于n,则使用LDPC算法(校验数据大)。
优选为实验获取每个block的PE拐点,不同的block的PE拐点可能不同,并记录,在实际使用时,相同block号的block选择相同的PE拐点。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (5)
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闪存编码率的方法,其特征在于根据擦除次数与出现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纠错算法。
4.根据权利要求3所述的提升TLC闪存编码率的方法,其特征在于选用LDPC纠错算法时动态根据擦除次数NN选择不同校验数据长度的LDPC纠错算法;在NN较小时选择较短的校验数据长度,在NN较大时选择较长的校验数据长度。
5.根据权利要求4所述的提升TLC闪存编码率的方法,其特征在于校验数据长度的选择根据擦除次数与出现BER的关系图计算获取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711227401.0A CN108255635A (zh) | 2017-11-29 | 2017-11-29 | 一种提升tlc闪存编码率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711227401.0A CN108255635A (zh) | 2017-11-29 | 2017-11-29 | 一种提升tlc闪存编码率的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108255635A true CN108255635A (zh) | 2018-07-06 |
Family
ID=62722290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711227401.0A Pending CN108255635A (zh) | 2017-11-29 | 2017-11-29 | 一种提升tlc闪存编码率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108255635A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915766A (zh) * | 2011-06-13 | 2013-02-06 | 马维尔国际贸易有限公司 | 用于使用依赖于生命周期的编码方案在存储设备上进行操作的系统和方法 |
CN102969028A (zh) * | 2012-10-18 | 2013-03-13 | 记忆科技(深圳)有限公司 | 一种ecc动态调整方法、系统及闪存 |
US20140149828A1 (en) * | 2012-11-27 | 2014-05-29 | Lite-On It Corporation | Solid state drive and joint encoding/decoding method thereof |
CN104810056A (zh) * | 2015-03-05 | 2015-07-29 | 华南理工大学 | 一种基于自适应ldpc码的nand闪存差错控制器 |
CN104932952A (zh) * | 2015-03-05 | 2015-09-23 | 华南理工大学 | 一种nand闪存的差错控制码结构及其差错码控制方法 |
-
2017
- 2017-11-29 CN CN201711227401.0A patent/CN108255635A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915766A (zh) * | 2011-06-13 | 2013-02-06 | 马维尔国际贸易有限公司 | 用于使用依赖于生命周期的编码方案在存储设备上进行操作的系统和方法 |
CN102969028A (zh) * | 2012-10-18 | 2013-03-13 | 记忆科技(深圳)有限公司 | 一种ecc动态调整方法、系统及闪存 |
US20140149828A1 (en) * | 2012-11-27 | 2014-05-29 | Lite-On It Corporation | Solid state drive and joint encoding/decoding method thereof |
CN104810056A (zh) * | 2015-03-05 | 2015-07-29 | 华南理工大学 | 一种基于自适应ldpc码的nand闪存差错控制器 |
CN104932952A (zh) * | 2015-03-05 | 2015-09-23 | 华南理工大学 | 一种nand闪存的差错控制码结构及其差错码控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2449467B1 (en) | Method and device for selectively refreshing a region of a memory of a data storage device | |
KR102315294B1 (ko) | 솔리드-스테이트 스토리지 디바이스들에서의 판독 전압 계산 | |
EP2926256B1 (en) | Method and data storage devices having a runtime variable raid protection scheme | |
US8799747B2 (en) | Data hardening to compensate for loss of data retention characteristics in a non-volatile memory | |
CN110471788B (zh) | 异步功率损耗影响的数据结构 | |
KR101970450B1 (ko) | 솔리드 스테이트 드라이브에서 하위 페이지 데이터 복구를 위한 시스템 및 방법 | |
US9355024B2 (en) | Systems and methods for nonvolatile memory performance throttling | |
EP2751689B1 (en) | System and method of copying data | |
US11302375B2 (en) | Performing an on demand refresh operation of a memory sub-system | |
US20200019458A1 (en) | Memory sub-system with background scan and histogram statistics | |
US20100146192A1 (en) | Methods for adaptively programming flash memory devices and flash memory systems incorporating same | |
KR101730497B1 (ko) | 에러 정정 성능 신장 방법 및 이를 이용한 저장 장치 | |
US11714580B2 (en) | Dynamic background scan optimization in a memory sub-system | |
US20130047045A1 (en) | Error indicator from ecc decoder | |
KR101895605B1 (ko) | 플래시 메모리 장치 및 그것의 프로그램 방법 | |
KR20110097446A (ko) | 메모리 시스템 및 그것의 데이터 처리 방법 | |
CN107731258A (zh) | 具有读取阈值估计的存储器系统及其操作方法 | |
US11955194B2 (en) | Tracking and refreshing state metrics in memory sub-systems | |
CN105278866B (zh) | 固态储存装置及其错误更正控制方法 | |
CN108255635A (zh) | 一种提升tlc闪存编码率的方法 | |
KR20140104829A (ko) | 멀티 레벨 셀 비휘발성 메모리 시스템 | |
Tanakamaru et al. | Privacy-protection solid-state storage (PP-SSS) system: Automatic lifetime management of internet-data's right to be forgotten | |
US9754685B2 (en) | Memory control device and memory control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180706 |