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

技术编号:26175358 阅读:26 留言:0更新日期:2020-10-31 14:08
本申请公开了一种闪存纠错方法及装置,属于固态存储技术领域。本申请实施例提供的一种闪存纠错方法,接收读请求,读请求携带闪存存储器的第一位置的位置标识,用于读取第一位置上存储的数据,当接收到闪存存储器返回的错误指示时,确定当前出错信息的错误类型,根据错误类型和多个纠错方法,确定纠错方法序列,纠错方法序列包括至少一个纠错方法,通过纠错方法序列,对当前出错信息进行纠错。该方法根据错误类型确定与该错误类型对应的纠错方法序列,不同错误类型的出错信息通过不同的纠错方法序列进行纠错,从而对出错信息进行有针对性的纠错,缩短了纠错的时间,提高了纠错效率。

Flash error correction method and device

【技术实现步骤摘要】
闪存纠错方法及装置
本申请涉及固态存储
特别涉及一种闪存纠错方法及装置。
技术介绍
NANDFlash(与非门型闪存)存储器是Flash(闪存)存储器的一种,适用于大量数据的存储,在固态存储
得到了越来越广泛的应用。NANDFlash存储器主要以Die(裸片)、Block(块)、Page(页)这三种形式存储数据。其中,一个Die中包括多个Block,一个Block中包括多个Page,一个Page中包括多个Bit(比特)。而当一个Page中错误的Bit数超过闪存存储器的硬件纠错能力时,就需要进行纠错。常见的纠错方法主要有Calibration(校准)纠错方法,ReadRetry(读重试)纠错方法,SLDPC(SoftLowDensityParityCheck,软件低密度校验码)纠错方法以及RAID(RedundantArraysofInexpensiveDisks,独立冗余磁盘阵列)纠错方法。相关技术中主要根据预先设置的纠错顺序,使用以上纠错方法依次进行纠错,在每次纠错时,都是按照预先设置的纠错顺序,使用以上纠错方法依次进行纠错。例如预先设置的纠错顺序为Calibration纠错方法-ReadRetry纠错方法-SLDPC纠错方法-RAID纠错方法。但相关技术中每次进行纠错时,都是按照预先设置的纠错顺序,使用以上纠错方法依次进行纠错,导致纠错的时间较长,纠错效率低。
技术实现思路
本申请实施例提供了一种闪存纠错方法及装置,能够解决纠错的时间长,纠错效率低的问题。所述技术方案如下:一方面,提供了一种闪存纠错方法,所述方法包括:接收读请求,所述读请求携带闪存存储器的第一位置的位置标识,用于请求读取所述第一位置上存储的数据;当接收到所述闪存存储器返回的错误指示时,确定当前出错信息的错误类型;根据所述错误类型和多个纠错方法,确定纠错方法序列,所述纠错方法序列包括至少一个纠错方法;通过所述纠错方法序列,对所述当前出错信息进行纠错。在一种可能的实现方式中,所述根据所述错误类型和多个纠错方法,确定纠错方法序列之前,所述方法还包括:获取所述闪存存储器上一次发生数据出错时出错块Block中出错信息的第一出错个数;获取当前发生数据出错时所述出错Block中出错信息的第二出错个数;相应的,所述根据所述错误类型和多个纠错方法,确定纠错方法序列,包括:根据所述第一出错个数、所述第二出错个数、所述错误类型和所述多个纠错方法,确定所述纠错方法序列。在另一种可能的实现方式中,所述根据所述第一出错个数、所述第二出错个数、所述错误类型和所述多个纠错方法,确定所述纠错方法序列,包括:当所述第二出错个数大于所述第一出错个数,且错误类型为读到不可更正的错误ReadUNECCError错误类型时,从所述多个纠错方法中选择软件低密度校验码SLDPC纠错方法和独立冗余磁盘阵列RAID纠错方法,将所述SLDPC纠错方法和所述RAID纠错方法组成所述纠错方法序列。在另一种可能的实现方式中,所述根据所述第一出错个数、所述第二出错个数、所述错误类型和所述多个纠错方法,确定所述纠错方法序列,包括:当所述第二出错个数不大于所述第一出错个数时,根据所述错误类型以及错误类型和纠错方法序列的对应关系,从多个纠错方法序列中选择与所述错误类型对应的纠错方法序列。在另一种可能的实现方式中,所述纠错方法序列包括读重试ReadRetry纠错方法;所述通过所述纠错方法序列,对所述当前出错信息进行纠错,包括:根据所述ReadRetry纠错方法的参考电压值和第一重试表中的第一偏移电压值,对所述当前出错信息进行纠错;当根据所述参考电压值和所述第一重试表中的每个第一偏移电压值均不能对所述当前出错信息纠错成功时,则根据所述参考电压值和第二重试表中的第二偏移电压值,对所述当前出错信息进行纠错,所述第一重试表中存储的第一偏移电压值为离当前时间最近的历史时间段内成功纠错时对应的偏移电压值。在另一种可能的实现方式中,所述纠错方法序列还包括校准Calibration纠错方法;所述通过所述纠错方法序列,对所述当前出错信息进行纠错,包括:根据所述Calibration纠错方法的参考电压值和第一偏移间隔确定所述所述当前出错信息的电压调节范围;从所述电压调节范围中确定第三电压值;根据所述第三电压值,对所述当前出错信息进行纠错。在另一种可能的实现方式中,所述纠错模块序列还包括所述SLDPC纠错方法和所述RAID纠错方法;所述通过所述纠错方法序列,对所述当前出错信息进行纠错,包括:在当前第一时间没有通过所述SLDPC纠错方法和所述RAID纠错方法进行纠错时,通过所述SLDPC纠错方法对所述当前出错信息进行纠错;当通过所述SLDPC纠错方法纠错失败,且在当前第二时间没有通过所述SLDPC纠错方法和所述RAID纠错方法进行纠错时,通过所述RAID纠错方法对所述当前出错信息进行纠错。在另一种可能的实现方式中,当所述错误类型为读到不可更正的错误ReadUNECCError错误类型时,所述纠错方法序列包括所述ReadRetry纠错方法-所述Calibration纠错方法-所述SLDPC纠错方法-所述RAID纠错方法;当所述错误类型为介质循环冗余校验错误MediaCRCError错误类型或读到空白页ReadEmptyPage错误类型时,所述纠错方法序列包括所述RAID纠错方法。另一方面,提供了一种闪存纠错装置,所述装置包括:接收模块,用于接收读请求,所述读请求携带闪存存储器的第一位置的位置标识,用于请求读取所述第一位置上存储的数据;第一确定模块,用于当接收到所述闪存存储器返回的错误指示时,确定当前出错信息的错误类型;第二确定模块,用于根据所述错误类型和多个纠错方法,确定纠错方法序列,所述纠错方法序列包括至少一个纠错方法;纠错模块,用于通过所述纠错方法序列,对所述当前出错信息进行纠错。在一种可能的实现方式中,所述第二确定模块,用于获取所述闪存存储器上一次发生数据出错时出错块Block中出错信息的第一出错个数;获取当前发生数据出错时所述出错Block中出错信息的第二出错个数;根据所述第一出错个数、所述第二出错个数、所述错误类型和所述多个纠错方法,确定所述纠错方法序列。在另一种可能的实现方式中,所述第二确定模块,还用于当所述第二出错个数大于所述第一出错个数,且错误类型为读到不可更正的错误ReadUNECCError错误类型时,从所述多个纠错方法中选择软件低密度校验码SLDPC纠错方法和独立冗余磁盘阵列RAID纠错方法,将所述SLDPC纠错方法和所述RAID纠错方法组成所述纠错方法序列。在另一种可能的实现方式中,所述第二确定模块,还用于当所述第二出错个数不大于所述第一出错个数时,根据所述错误类型以及错误类型和纠错方法序列的对应关系,从多个本文档来自技高网...

【技术保护点】
1.一种闪存纠错方法,其特征在于,所述方法包括:/n接收读请求,所述读请求携带闪存存储器的第一位置的位置标识,用于请求读取所述第一位置上存储的数据;/n当接收到所述闪存存储器返回的错误指示时,确定当前出错信息的错误类型;/n根据所述错误类型和多个纠错方法,确定纠错方法序列,所述纠错方法序列包括至少一个纠错方法;/n通过所述纠错方法序列,对所述当前出错信息进行纠错。/n

【技术特征摘要】
1.一种闪存纠错方法,其特征在于,所述方法包括:
接收读请求,所述读请求携带闪存存储器的第一位置的位置标识,用于请求读取所述第一位置上存储的数据;
当接收到所述闪存存储器返回的错误指示时,确定当前出错信息的错误类型;
根据所述错误类型和多个纠错方法,确定纠错方法序列,所述纠错方法序列包括至少一个纠错方法;
通过所述纠错方法序列,对所述当前出错信息进行纠错。


2.根据权利要求1所述的方法,其特征在于,所述根据所述错误类型和多个纠错方法,确定纠错方法序列之前,所述方法还包括:
获取所述闪存存储器上一次发生数据出错时出错块Block中出错信息的第一出错个数;
获取当前发生数据出错时所述出错Block中出错信息的第二出错个数;
相应的,所述根据所述错误类型和多个纠错方法,确定纠错方法序列,包括:
根据所述第一出错个数、所述第二出错个数、所述错误类型和所述多个纠错方法,确定所述纠错方法序列。


3.根据权利要求2所述的方法,其特征在于,所述根据所述第一出错个数、所述第二出错个数、所述错误类型和所述多个纠错方法,确定所述纠错方法序列,包括:
当所述第二出错个数大于所述第一出错个数,且错误类型为读到不可更正的错误ReadUNECCError错误类型时,从所述多个纠错方法中选择软件低密度校验码SLDPC纠错方法和独立冗余磁盘阵列RAID纠错方法,将所述SLDPC纠错方法和所述RAID纠错方法组成所述纠错方法序列。


4.根据权利要求2所述的方法,其特征在于,所述根据所述第一出错个数、所述第二出错个数、所述错误类型和所述多个纠错方法,确定所述纠错方法序列,包括:
当所述第二出错个数不大于所述第一出错个数时,根据所述错误类型以及错误类型和纠错方法序列的对应关系,从多个纠错方法序列中选择与所述错误类型对应的纠错方法序列。


5.根据权利要求1所述的方法,其特征在于,所述纠错方法序列包括读重试ReadRetry纠错方法;
所述通过所述纠错方法序列,对所述当前出错信息进行纠错,包括:
根据所述ReadRetry纠错方法的参考电压值和第一重试表中的第一偏移电压值,对所述当前出错信息进行纠错;
当根据所述参考电压值和所述第一重试表中的每个第一偏移电压值均不能对所述当前出错信息纠错成功时,则根据所述参考电压值和第二重试表中的第二偏移电压值,对所述当前出错信息进行纠错,所述第一重试表中存储的第一偏移电压值为离当前时间最近的历史时间段内成功纠错时对应的偏移电压值。


6.根据权利要求1或5所述的方法,其特征在于,所述纠错方法序列还包括校准Calibration纠错方法;
所述通过所述纠错方法序列,对所述当前出错信息进行纠错,包括:
根据所述Calibration纠错方法的参考电压值和第一偏移间隔确定所述所述当前出错信息的电压调节范围;
从所述电压调节范围中确定第三电压值;
根据所述第三电压值,对所述当前出错信息进行纠错。


7.根据权利要求1所述的方法,其特征在于,所述纠错方法序列还包括所述SLDPC纠错方法和所述RAID纠错方法;
所述通过所述纠错方法序列,对所述当前出错信息进行纠错,包括:
在当前第一时间没有通过所述SL...

【专利技术属性】
技术研发人员:彭攀来霍文捷秦义
申请(专利权)人:武汉海康存储技术有限公司
类型:发明
国别省市:湖北;42

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

1