一种闪存纠错方法和装置制造方法及图纸

技术编号:15620834 阅读:93 留言:0更新日期:2017-06-14 04:37
本发明专利技术提供一种闪存纠错方法和装置,包括:确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第一数据位,第一数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据不同的数据位,进而降低采用第n+1读电压阈值读取闪存页得到的数据中的第一数据位的可信度;根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码。其中,联合使用两次读取的同一闪存页得到的数据,降低数据位不同的数据对应的数据位的可信度,从而有效提高了纠错译码的成功率,使得SSD存储系统的性能大幅提升。

【技术实现步骤摘要】
一种闪存纠错方法和装置
本专利技术涉及计算机技术,尤其涉及一种闪存纠错方法和装置。
技术介绍
随着闪存技术的不断成熟,其被广泛应用于固态存储领域。但是闪存中保存的数据,可能存在若干比特位的错误,如果直接将闪存物理页中读出的数据返回给上层业务,就可能造成业务失败。为了保证返回给上层业务的数据是正确有效的,需要对业务数据进行错误检查和纠正(ErrorCorrectingCode,简称为:ECC)保护,即对业务数据进行ECC编码,然后将ECC编码后的数据写入闪存。每当读取数据时,对从闪存中读取出来的数据进行错误检查和纠正,从而提升业务数据的可靠性。但ECC保护的纠错能力有一定的范围,只能在页面数据中出现比特位错误数量不超过一定的上限时才有效。如果所读取的介质颗粒中发生错误的比特的个数超过了ECC纠错码的纠错能力,则纠错码将无法恢复原始存储的数据信息,导致存储信息的丢失。为了避免存储信息的丢失,现有技术中常用的解决方案是Readretry,即如果用默认的读电压阈值读取介质颗粒的状态后用纠错码无法恢复原始信息时,通过调整读电压阈值,再次进行读取介质颗粒的状态并用纠错码恢复原始信息的机制。现有技术需要多次调整读电压阈值进行尝试性的读取数据,从而造成了读时延的成倍增加(通常从微秒量级增加到毫秒量级),导致SSD存储系统性能的大幅降低。
技术实现思路
本专利技术实施例提供一种闪存纠错方法和装置,以克服现有技术中由于读时延的成倍增加而导致的SSD存储系统大幅降低的问题。第一方面,本专利技术实施例提供一种闪存纠错方法,包括:步骤101:在对采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,采用第n+1读电压阈值读取闪存页的数据,其中,第n+1读取电压阈值与第n读电压阈值不同,n为大于等于1的正整数;步骤102:确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第一数据位,第一数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据不同的数据位,m为大于等于1且小于等于n的正整数;步骤103:降低采用第n+1读电压阈值读取闪存页得到的数据中的第一数据位的可信度,可信度为第一数据位对应的置信度的绝对值;步骤104:根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码。在本实施例中,联合使用两次读取的同一闪存页得到的数据,降低数据位不同的数据对应的数据位的可信度,从而有效提高了纠错译码的成功率,减小了读时延,使得SSD存储系统的性能大幅提升。在前述第一方面的一些实施例中,还可以包括:确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第二数据位,第二数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据相同的数据位;然后,提高采用第n+1读电压阈值读取闪存页得到的数据中的第二数据位的可信度。在本实施例中,通过联合使用两次读取的同一闪存页得到的数据,在降低降低数据位不同的数据对应的数据位可信度的同时,提高数据位相同的数据对应的数据位的可信度,从而可以进一步的提高纠错译码的成功率。在前述第一方面的一些实施例中,确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第一数据位,具体包括:将采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据进行异或运算得到联合数据;若联合数据中的数据位的值为1,则确定该数据位为第一数据位。在本实施例中,通过异或的方法可快速得到数据不同的数据位,有效减小了纠错译码的时延。进一步的,在上述实施例的基础上,根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码之后,还包括:如果纠错译码成功,则将第n+1读电压阈值修改为预设读电压阈值;如果纠错译码不成功,则将n递增1,并重新执行上述第一方面中步骤101至步骤104。本实施例中,当译码不成功时,则重新循环执行上述第一方面中的步骤101至步骤104,从而有效提高了纠错译码的成功率。进一步的,重新执行上述第一方面中步骤101至步骤104之前还需要判断n递增后的的值是否大于预设阈值,若不大于,则重新执行上述第一方面中步骤101至步骤104;若大于,则确定闪存页所在的数据块为坏块。本实施例中,当多次执行上述各个实施例的步骤后,如果译码均不成功,则终止译码过程,且上报错误,从而避免下次继续使用该数据块。进一步的,根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码,包括:采用低密度奇偶校验码LDPC对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码。第二方面,本专利技术实施例提供一种闪存纠错装置,包括:读取模块、确定模块、可信度调整模块和译码模块,具体的:读取模块,用于在对采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,采用第n+1读电压阈值读取闪存页的数据,第n+1读取电压阈值与第n读电压阈值不同,n为大于等于1的正整数;确定模块,用于确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第一数据位,第一数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据不同的数据位,m为大于等于1且小于等于n的正整数;可信度调整模块,用于降低采用第n+1读电压阈值读取闪存页得到的数据中的第一数据位的可信度,可信度为第一数据位对应的置信度的绝对值译码模块,用于根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码。本实施例的装置,用于执行第一方面提供的闪存纠错方法,其实现原理和有益效果类似,此处不再赘述。进一步的,确定模块,还用于确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第二数据位,第二数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据相同的数据位;可信度调整模块,还用于提高采用第n+1读电压阈值读取闪存页得到的数据中的第二数据位的可信度。进一步的,确定模块具体用于:将采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据进行异或运算得到联合数据;若联合数据中的数据位的值为1,则确定该数据位为第一数据位。进一步的,还包括:修正模块,修正模块用于判断译码模块纠错译码是否成功,若成功,则修正模块还用于将第n+1读电压阈值修改为预设读电压阈值;若不成功,则修正模块还用于向读取模块发送指示消息,指示消息用于指示读取模块再次读取闪存页的数据,其中,n递增1。。进一步的,修正模块具体用于:向读取模块发送指示消息之前,修正模块还用于判断n递增后的值是否大于预设阈值,若不大于,则修正模块用于向读取模块发送指示消息;若大于,则修正模块用于确定闪存页所在的数据块为坏块。进一步的,译码模块,具体用于:采用低密度奇偶校验码LDPC对采用第n+1读电压阈值读取闪本文档来自技高网...
一种闪存纠错方法和装置

【技术保护点】
一种闪存纠错方法,其特征在于,包括:步骤101:在对采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,采用第n+1读电压阈值读取闪存页的数据,所述第n+1读取电压阈值与所述第n读电压阈值不同,n为大于等于1的正整数;步骤102:确定所述采用第n+1读电压阈值读取所述闪存页得到的数据和采用第m读电压阈值读取所述闪存页得到的数据中的第一数据位,所述第一数据位为所述采用第n+1读电压阈值读取所述闪存页得到的数据中与所述采用第m读电压阈值读取所述闪存页得到的数据中相同数据位对应的数据不同的数据位,m为大于等于1且小于等于n的正整数;步骤103:降低所述采用第n+1读电压阈值读取所述闪存页得到的数据中的所述第一数据位的可信度,所述可信度为所述第一数据位对应的置信度的绝对值;步骤104:根据调整后的所述第一数据位的可信度,对所述采用第n+1读电压阈值读取所述闪存页得到的数据进行纠错译码。

【技术特征摘要】
1.一种闪存纠错方法,其特征在于,包括:步骤101:在对采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,采用第n+1读电压阈值读取闪存页的数据,所述第n+1读取电压阈值与所述第n读电压阈值不同,n为大于等于1的正整数;步骤102:确定所述采用第n+1读电压阈值读取所述闪存页得到的数据和采用第m读电压阈值读取所述闪存页得到的数据中的第一数据位,所述第一数据位为所述采用第n+1读电压阈值读取所述闪存页得到的数据中与所述采用第m读电压阈值读取所述闪存页得到的数据中相同数据位对应的数据不同的数据位,m为大于等于1且小于等于n的正整数;步骤103:降低所述采用第n+1读电压阈值读取所述闪存页得到的数据中的所述第一数据位的可信度,所述可信度为所述第一数据位对应的置信度的绝对值;步骤104:根据调整后的所述第一数据位的可信度,对所述采用第n+1读电压阈值读取所述闪存页得到的数据进行纠错译码。2.根据权利要求1所述的方法,其特征在于,还包括:确定所述采用第n+1读电压阈值读取所述闪存页得到的数据和所述采用第m读电压阈值读取所述闪存页得到的数据中的第二数据位,所述第二数据位为所述采用第n+1读电压阈值读取所述闪存页得到的数据中与所述采用第m读电压阈值读取所述闪存页得到的数据中相同数据位对应的数据相同的数据位;提高所述采用第n+1读电压阈值读取所述闪存页得到的数据中的所述第二数据位的可信度。3.根据权利要求1或2所述的方法,其特征在于,所述确定所述采用第n+1读电压阈值读取所述闪存页得到的数据和所述采用第m读电压阈值读取所述闪存页得到的数据中的第一数据位,包括:将所述采用第n+1读电压阈值读取所述闪存页得到的数据和所述采用第m读电压阈值读取所述闪存页得到的数据进行异或运算得到联合数据;若所述联合数据中的数据位的值为1,则确定该数据位为所述第一数据位。4.根据权利要求1-3任一项所述的方法,其特征在于,根据调整后的所述第一数据位的可信度,对所述采用第n+1读电压阈值读取所述闪存页得到的数据进行纠错译码之后,还包括:若纠错译码成功,则将所述第n+1读电压阈值修改为预设读电压阈值;若纠错译码不成功,则将所述n递增1,并重新执行上述步骤101至步骤104。5.根据权利要求4所述的方法,其特征在于,所述重新执行上述步骤101至步骤104之前还包括:判断所述n递增后的的值是否大于预设阈值,若不大于,则重新执行上述步骤101至步骤104;若大于,则确定所述闪存页所在的数据块为坏块。6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据调整后的所述第一数据位的可信度,对所述采用第n+1读电压阈值读取所述闪存页得到的数据进行纠错译码,包括:采用低密度奇偶校验码LDPC对所述采用第n+1读电压阈值读取所述闪存...

【专利技术属性】
技术研发人员:曾雁星沈建强王工艺
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1