CN108762977A - 一种固态盘中纠错算法的优化方法及系统 - Google Patents
一种固态盘中纠错算法的优化方法及系统 Download PDFInfo
- Publication number
- CN108762977A CN108762977A CN201810542822.0A CN201810542822A CN108762977A CN 108762977 A CN108762977 A CN 108762977A CN 201810542822 A CN201810542822 A CN 201810542822A CN 108762977 A CN108762977 A CN 108762977A
- Authority
- CN
- China
- Prior art keywords
- nand
- service life
- llr0
- llr1
- life stage
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
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)
- Detection And Correction Of Errors (AREA)
Abstract
本发明涉及存储技术领域,提供一种固态盘中纠错算法的优化方法及系统,方法包括:控制IO读单元获取IO读单元所对应的NAND块的擦除次数,得到NAND的使用寿命阶段;将获取到的NAND块的擦使用寿命阶段与预先设置的硬解码LLR表进行比对,从硬解码LLR表查找与NAND块的使用寿命阶段相匹配的LLR0和LLR1特征值;将查找到的LLR0和LLR1特征值发送给LDPC硬解码单元;使用LLR0和LLR1特征值,控制LDPC硬解码单元对读取出的NAND原始数据进行解码,并将解码后的数据反馈给IO读单元,从而提升对NAND原始数据的解码能力,降低了读请求延时,从而优化了固态硬盘的纠错算法。
Description
技术领域
本发明属于存储技术领域,尤其涉及一种固态盘中纠错算法的优化方法及系统。
背景技术
计算机闪存设备NAND技术不断进步,从之前的2D的SLC、MLC、TLC到3D TLC,容量增大,成本降低,但可靠性也随着降低,之前的BCH(Bose-Chaudhuri-Hocquenghem codes)算法已经不能满足3D NAND的可靠性要求,低密度奇偶校验码(Low Density Parity CheckCode,LDPC)已经全面应用于3D NAND的固态硬盘中。LDPC中有硬解码和软解码两个过程,第一阶段是硬解码,不需要软件过多参与,如果硬解码恢复出来的数据正确,就不需要再做软解码;软解码需要软件提供对数似然比LLR table以及多次读取NAND的原始数据作为输入给LDPC软解码单元(增加读时延)。
LDPC硬解码需要软件设置LLR0和LLR1的值,而这个值关系到硬解码能力,LLR0和LLR1默认设置成相等值,也就是说0和1的概率是相同的,NAND生命初期0和1相同,但随着NAND寿命损耗,0和1的概率不通,导致硬解码失败概率变大,以至于进入LDPC软纠错增加读请求时延。
发明内容
本发明的目的在于提供一种固态盘中纠错算法的优化方法,旨在解决现有技术中LLR0和LLR1默认设置成相等值,导致硬解码失败,增加读请求时延的问题。
本发明是这样实现的,一种固态盘中纠错算法的优化方法,所述方法包括下述步骤:
控制IO读单元获取所述IO读单元所对应的NAND块的擦除次数,得到所述NAND的使用寿命阶段;
将获取到的NAND块的擦使用寿命阶段与预先设置的硬解码LLR表进行比对,从所述硬解码LLR表查找与所述NAND块的使用寿命阶段相匹配的LLR0和LLR1特征值;
将查找到的所述LLR0和LLR1特征值发送给LDPC硬解码单元;
使用所述LLR0和LLR1特征值,控制所述LDPC硬解码单元对读取出的NAND原始数据进行解码,并将解码后的数据反馈给所述IO读单元。
作为一种改进的方案,所述方法还包括下述步骤:
预先生成硬解码LLR表,所述硬解码LLR表中包含有块擦除次数以及与块擦除次数相对应的LLR0和LLR1特征值信息。
作为一种改进的方案,所述预先生成硬解码LLR表的步骤具体包括下述步骤:
将NAND的使用寿命划分为若干个阶段;
测量划分的每一个寿命阶段的NAND的LLR0和LLR1特征值信息;
在每一个寿命阶段与与其对应的LLR0和LLR1特征值之间建立关联对应关系,生成所述硬解码LLR表。
作为一种改进的方案,每个所述NAND的使用寿命阶段的步长为1000步;
步长为1至步长1000为第一个使用寿命阶段;
步长为1001至步长2000为第二个使用寿命阶段;
以此类推;
步长为n*1000+1至步长n*1000+1000为第n个使用寿命阶段。
作为一种改进的方案,所述LDPC硬解码单元为flash控制器。
本发明的另一目的在于提供一种固态盘中纠错算法的优化系统,所述系统包括:
使用寿命阶段获取模块,用于控制IO读单元获取所述IO读单元所对应的NAND块的擦除次数,得到所述NAND的使用寿命阶段;
比对模块,用于将获取到的NAND块的擦使用寿命阶段与预先设置的硬解码LLR表进行比对,从所述硬解码LLR表查找与所述NAND块的使用寿命阶段相匹配的LLR0和LLR1特征值;
特征值发送模块,用于将查找到的所述LLR0和LLR1特征值发送给LDPC硬解码单元;
解码模块,用于使用所述LLR0和LLR1特征值,控制所述LDPC硬解码单元对读取出的NAND原始数据进行解码;
反馈模块,用于将解码后的数据反馈给所述IO读单元。
作为一种改进的方案,所述系统还包括:
硬解码LLR表生成模块,用于预先生成硬解码LLR表,所述硬解码LLR表中包含有块擦除次数以及与块擦除次数相对应的LLR0和LLR1特征值信息。
作为一种改进的方案,所述硬解码LLR表生成模块具体包括:
阶段划分模块,用于将NAND的使用寿命划分为若干个阶段;
特征值测量模块,用于测量划分的每一个寿命阶段的NAND的LLR0和LLR1特征值信息;
关联对应关系建立模块,用于在每一个寿命阶段与与其对应的LLR0和LLR1特征值之间建立关联对应关系,生成所述硬解码LLR表。
作为一种改进的方案,每个所述NAND的使用寿命阶段的步长为1000步;
步长为1至步长1000为第一个使用寿命阶段;
步长为1001至步长2000为第二个使用寿命阶段;
以此类推;
步长为n*1000+1至步长n*1000+1000为第n个使用寿命阶段。
作为一种改进的方案,所述LDPC硬解码单元为flash控制器。
在本发明实施例中,控制IO读单元获取所述IO读单元所对应的NAND块的擦除次数,得到所述NAND的使用寿命阶段;将获取到的NAND块的擦使用寿命阶段与预先设置的硬解码LLR表进行比对,从所述硬解码LLR表查找与所述NAND块的使用寿命阶段相匹配的LLR0和LLR1特征值;将查找到的所述LLR0和LLR1特征值发送给LDPC硬解码单元;使用所述LLR0和LLR1特征值,控制所述LDPC硬解码单元对读取出的NAND原始数据进行解码,并将解码后的数据反馈给所述IO读单元,从而提升对NAND原始数据的解码能力,降低了读请求延时,从而优化了固态硬盘的纠错算法。
附图说明
图1是本发明提供的固态盘中纠错算法的优化方法的实现流程图;
图2是本发明提供的预先生成硬解码LLR表的实现流程图;
图3是本发明提供的固态盘中纠错算法的优化系统的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明提供的固态盘中纠错算法的优化方法的实现流程图,其具体包括下述步骤:
在步骤S101中,控制IO读单元获取所述IO读单元所对应的NAND块的擦除次数,得到所述NAND的使用寿命阶段。
在步骤S102中,将获取到的NAND块的擦使用寿命阶段与预先设置的硬解码LLR表进行比对,从所述硬解码LLR表查找与所述NAND块的使用寿命阶段相匹配的LLR0和LLR1特征值。
在步骤S103中,将查找到的所述LLR0和LLR1特征值发送给LDPC硬解码单元。
在该实施例中,所述LDPC硬解码单元为flash控制器。
在步骤S104中,使用所述LLR0和LLR1特征值,控制所述LDPC硬解码单元对读取出的NAND原始数据进行解码,并将解码后的数据反馈给所述IO读单元。
在本发明实施例中,在执行上述步骤S101之前还需要执行下述步骤:
预先生成硬解码LLR表,所述硬解码LLR表中包含有块擦除次数以及与块擦除次数相对应的LLR0和LLR1特征值信息;
其中,如图2所示,预先生成硬解码LLR表的步骤具体包括下述步骤:
在步骤S201中,将NAND的使用寿命划分为若干个阶段;
在步骤S202中,测量划分的每一个寿命阶段的NAND的LLR0和LLR1特征值信息;
在步骤S203中,在每一个寿命阶段与与其对应的LLR0和LLR1特征值之间建立关联对应关系,生成所述硬解码LLR表。
在该实施例中,每个所述NAND的使用寿命阶段的步长为1000步;
步长为1至步长1000为第一个使用寿命阶段;
步长为1001至步长2000为第二个使用寿命阶段;
以此类推;
步长为n*1000+1至步长n*1000+1000为第n个使用寿命阶段。
例如,当获取到当前NAND块的擦除次数为7000次,这对应的使用寿命阶段为第七个使用寿命阶段,那么找出第七个使用寿命阶段所对应的LLR0和LLR1特征值即可。
在本发明实施例中,固态盘中纠错算法的优化方法中采用动态设置LLR0和LLR1特征值的方式,提升LDPC的硬解码能力。
图3示出了本发明提供的固态盘中纠错算法的优化系统的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。
固态盘中纠错算法的优化系统包括:
使用寿命阶段获取模块11,用于控制IO读单元获取所述IO读单元所对应的NAND块的擦除次数,得到所述NAND的使用寿命阶段;
比对模块12,用于将获取到的NAND块的擦使用寿命阶段与预先设置的硬解码LLR表进行比对,从所述硬解码LLR表查找与所述NAND块的使用寿命阶段相匹配的LLR0和LLR1特征值;
特征值发送模块13,用于将查找到的所述LLR0和LLR1特征值发送给LDPC硬解码单元;
解码模块14,用于使用所述LLR0和LLR1特征值,控制所述LDPC硬解码单元对读取出的NAND原始数据进行解码;
反馈模块15,用于将解码后的数据反馈给所述IO读单元。
在该实施例中,硬解码LLR表生成模块16,用于预先生成硬解码LLR表,所述硬解码LLR表中包含有块擦除次数以及与块擦除次数相对应的LLR0和LLR1特征值信息。
其中,硬解码LLR表生成模块16具体包括:
阶段划分模块17,用于将NAND的使用寿命划分为若干个阶段;
特征值测量模块18,用于测量划分的每一个寿命阶段的NAND的LLR0和LLR1特征值信息;
关联对应关系建立模块19,用于在每一个寿命阶段与与其对应的LLR0和LLR1特征值之间建立关联对应关系,生成所述硬解码LLR表。
其中,上述各个模块的功能如上述方法实施例所记载,在此不再赘述。
在本发明实施例中,控制IO读单元获取所述IO读单元所对应的NAND块的擦除次数,得到所述NAND的使用寿命阶段;将获取到的NAND块的擦使用寿命阶段与预先设置的硬解码LLR表进行比对,从所述硬解码LLR表查找与所述NAND块的使用寿命阶段相匹配的LLR0和LLR1特征值;将查找到的所述LLR0和LLR1特征值发送给LDPC硬解码单元;使用所述LLR0和LLR1特征值,控制所述LDPC硬解码单元对读取出的NAND原始数据进行解码,并将解码后的数据反馈给所述IO读单元,从而提升对NAND原始数据的解码能力,降低了读请求延时,从而优化了固态硬盘的纠错算法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种固态盘中纠错算法的优化方法,其特征在于,所述方法包括下述步骤:
控制IO读单元获取所述IO读单元所对应的NAND块的擦除次数,得到所述NAND的使用寿命阶段;
将获取到的NAND块的擦使用寿命阶段与预先设置的硬解码LLR表进行比对,从所述硬解码LLR表查找与所述NAND块的使用寿命阶段相匹配的LLR0和LLR1特征值;
将查找到的所述LLR0和LLR1特征值发送给LDPC硬解码单元;
使用所述LLR0和LLR1特征值,控制所述LDPC硬解码单元对读取出的NAND原始数据进行解码,并将解码后的数据反馈给所述IO读单元。
2.根据权利要求1所述的固态盘中纠错算法的优化方法,其特征在于,所述方法还包括下述步骤:
预先生成硬解码LLR表,所述硬解码LLR表中包含有块擦除次数以及与块擦除次数相对应的LLR0和LLR1特征值信息。
3.根据权利要求2所述的固态盘中纠错算法的优化方法,其特征在于,所述预先生成硬解码LLR表的步骤具体包括下述步骤:
将NAND的使用寿命划分为若干个阶段;
测量划分的每一个寿命阶段的NAND的LLR0和LLR1特征值信息;
在每一个寿命阶段与与其对应的LLR0和LLR1特征值之间建立关联对应关系,生成所述硬解码LLR表。
4.根据权利要求3所述的固态盘中纠错算法的优化方法,其特征在于,每个所述NAND的使用寿命阶段的步长为1000步;
步长为1至步长1000为第一个使用寿命阶段;
步长为1001至步长2000为第二个使用寿命阶段;
以此类推;
步长为n*1000+1至步长n*1000+1000为第n个使用寿命阶段。
5.根据权利要求4所述的固态盘中纠错算法的优化方法,其特征在于,所述LDPC硬解码单元为flash控制器。
6.一种固态盘中纠错算法的优化系统,其特征在于,所述系统包括:
使用寿命阶段获取模块,用于控制IO读单元获取所述IO读单元所对应的NAND块的擦除次数,得到所述NAND的使用寿命阶段;
比对模块,用于将获取到的NAND块的擦使用寿命阶段与预先设置的硬解码LLR表进行比对,从所述硬解码LLR表查找与所述NAND块的使用寿命阶段相匹配的LLR0和LLR1特征值;
特征值发送模块,用于将查找到的所述LLR0和LLR1特征值发送给LDPC硬解码单元;
解码模块,用于使用所述LLR0和LLR1特征值,控制所述LDPC硬解码单元对读取出的NAND原始数据进行解码;
反馈模块,用于将解码后的数据反馈给所述IO读单元。
7.根据权利要求6所述的固态盘中纠错算法的优化系统,其特征在于,所述系统还包括:
硬解码LLR表生成模块,用于预先生成硬解码LLR表,所述硬解码LLR表中包含有块擦除次数以及与块擦除次数相对应的LLR0和LLR1特征值信息。
8.根据权利要求7所述的固态盘中纠错算法的优化系统,其特征在于,所述硬解码LLR表生成模块具体包括:
阶段划分模块,用于将NAND的使用寿命划分为若干个阶段;
特征值测量模块,用于测量划分的每一个寿命阶段的NAND的LLR0和LLR1特征值信息;
关联对应关系建立模块,用于在每一个寿命阶段与与其对应的LLR0和LLR1特征值之间建立关联对应关系,生成所述硬解码LLR表。
9.根据权利要求8所述的固态盘中纠错算法的优化系统,其特征在于,每个所述NAND的使用寿命阶段的步长为1000步;
步长为1至步长1000为第一个使用寿命阶段;
步长为1001至步长2000为第二个使用寿命阶段;
以此类推;
步长为n*1000+1至步长n*1000+1000为第n个使用寿命阶段。
10.根据权利要求9所述的固态盘中纠错算法的优化系统,其特征在于,所述LDPC硬解码单元为flash控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810542822.0A CN108762977A (zh) | 2018-05-30 | 2018-05-30 | 一种固态盘中纠错算法的优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810542822.0A CN108762977A (zh) | 2018-05-30 | 2018-05-30 | 一种固态盘中纠错算法的优化方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108762977A true CN108762977A (zh) | 2018-11-06 |
Family
ID=64004488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810542822.0A Pending CN108762977A (zh) | 2018-05-30 | 2018-05-30 | 一种固态盘中纠错算法的优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108762977A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102034547A (zh) * | 2009-10-05 | 2011-04-27 | 株式会社东芝 | 存储器系统以及对存储器系统的控制方法 |
CN104052498A (zh) * | 2013-03-15 | 2014-09-17 | 三星电子株式会社 | 最优化对数似然比的方法以及纠错方法和设备 |
CN105336379A (zh) * | 2015-11-09 | 2016-02-17 | 联想(北京)有限公司 | 一种信息处理方法及固态存储器 |
US9397701B1 (en) * | 2013-03-11 | 2016-07-19 | Microsemi Storage Solutions (Us), Inc. | System and method for lifetime specific LDPC decoding |
CN107276594A (zh) * | 2016-03-30 | 2017-10-20 | 慧荣科技股份有限公司 | 使用硬选取硬译码模式下的译码器产生软信息的方法 |
-
2018
- 2018-05-30 CN CN201810542822.0A patent/CN108762977A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102034547A (zh) * | 2009-10-05 | 2011-04-27 | 株式会社东芝 | 存储器系统以及对存储器系统的控制方法 |
US9397701B1 (en) * | 2013-03-11 | 2016-07-19 | Microsemi Storage Solutions (Us), Inc. | System and method for lifetime specific LDPC decoding |
CN104052498A (zh) * | 2013-03-15 | 2014-09-17 | 三星电子株式会社 | 最优化对数似然比的方法以及纠错方法和设备 |
CN105336379A (zh) * | 2015-11-09 | 2016-02-17 | 联想(北京)有限公司 | 一种信息处理方法及固态存储器 |
CN107276594A (zh) * | 2016-03-30 | 2017-10-20 | 慧荣科技股份有限公司 | 使用硬选取硬译码模式下的译码器产生软信息的方法 |
Non-Patent Citations (1)
Title |
---|
PMCCHINA: ""基于LDPC的下一代SSD控制器中的软解码"", 《CSDN博客 HTTPS://BLOG.CSDN.NET/PMC/ARTICLE/DETAILS/38299653》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10498367B2 (en) | Progressive effort decoder architecture | |
CN109388518B (zh) | 数据写入方法 | |
US8782500B2 (en) | Systems and methods for error correction and decoding on multi-level physical media | |
KR101422050B1 (ko) | 셀 당 멀티비트인 플래시 메모리에서의 오류 보정 방법 | |
US8250437B2 (en) | Memory system and control method for the same | |
US9425828B2 (en) | Memory device and memory system | |
US9448881B1 (en) | Memory controller and integrated circuit device for correcting errors in data read from memory cells | |
US9128858B1 (en) | Apparatus and method for adjusting a correctable raw bit error rate limit in a memory system using strong log-likelihood (LLR) values | |
US7904790B2 (en) | Flash memory device error correction code controllers and related methods and memory systems | |
JP5324652B2 (ja) | メモリ装置およびエラー制御コード復号化方法 | |
CN1898874B (zh) | 具有子块处理和基于子块的停止标准的siso解码器及其方法 | |
TWI613661B (zh) | 用於補償快閃裝置之標稱電壓變化之系統及方法 | |
CN102693760B (zh) | Nand快闪存储器的错误校正方法 | |
US20160139987A1 (en) | Generating soft read values using multiple reads and/or bins | |
EP2299362A2 (en) | Forward error correction for memories | |
KR101819152B1 (ko) | 오류 정정 코드를 디코딩하기 위한 방법 및 이와 관련된 디코딩 회로 | |
US9348692B2 (en) | Flash memory apparatus, memory controller and method for controlling flash memory | |
JP2012155737A (ja) | 動的ecc符号化率調節方法、装置、およびシステム | |
US10009045B2 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
CN101958720A (zh) | 缩短Turbo乘积码的编译码方法 | |
CN111143107A (zh) | 一种fpga单粒子反转校验电路和方法 | |
CN106601305A (zh) | 一种使用检错码和纠错码相结合的固态盘纠错方法 | |
US20150149856A1 (en) | Decoding with log likelihood ratios stored in a controller | |
US20140068376A1 (en) | Memory controller and semiconductor storage device | |
US9128710B2 (en) | Power saving techniques that use a lower bound on bit errors |
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: 20181106 |