一种固态硬盘的读纠错方法、装置、设备及存储介质与流程

文档序号:19685002发布日期:2020-01-14 17:56阅读:321来源:国知局
一种固态硬盘的读纠错方法、装置、设备及存储介质与流程

本发明涉及固态硬盘领域,特别涉及一种固态硬盘的读纠错方法、装置、设备及计算机可读存储介质。



背景技术:

随着互联网、云计算等技术的快速发展及广泛应用,对数据存储的性能要求越来越高,固态硬盘因其读写速度快、能耗较低而被广泛应用。但由于nand本身的特性,在经过读干扰(readdisturb)、写干扰(programdisturb)或者数据保持(dataretention)之后,物理块中存储的电荷将会发生改变、增加或者丢失,从而出现硬解码失败的情况,由此造成读数据过程中的读错误。

现有技术中,为了提高用户获取到的数据的准确性,一般是在发生读错误时,通过soft-ldpc(软解码方式)的方式来进行数据纠错。但是,soft-ldpc方法需要根据σ表获取4组电压对应的原始数据(左偏电压、标准电压、右偏电压以及相邻页的标准电压),将该4组原始数据以及llr表输入soft-decoing解码池中,最终会获得解码后的数据,进而利用解码后的数据进行读纠错。可见,现有技术的方法在进行读纠错时操作过程复杂,因此需要消耗大量的时间,从而使得读纠错的效率低下,影响固态硬盘的性能稳定性。

因此,如何提高固态硬盘中的读纠错的效率,提升固态硬盘的稳定性,是本领域技术人员目前需要解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种固态硬盘的读纠错方法,能够提高固态硬盘中的读纠错的效率,提升固态硬盘的稳定性;本发明的另一目的是提供一种固态硬盘的读纠错装置、设备及计算机可读存储介质,均具有上述有益效果。

为解决上述技术问题,本发明提供一种固态硬盘的读纠错方法,包括:

预先对各固态硬盘中的预设物理块进行纠错测试,根据读错误中的读干扰的次数相较于标准次数的两种偏差情况和数据保持的时间相较于标准时间的两种偏差情况的排列组合,设置各组合结果对应的纠错偏转电压,得到srr表;

在检测到当前读错误时,获取当前读错误的当前读干扰对应的目标次数偏差和当前数据保持对应的目标时间偏差;

从所述srr表中查找与所述目标次数偏差和所述目标时间偏差的组合结果对应的目标纠错偏转电压;

利用所述目标纠错偏转电压对当前读错误进行纠正。

优选地,在所述利用所述目标纠错偏转电压对当前读错误进行纠正之后,进一步包括:

利用soft-ldpc方法对当前读错误进行纠正。

优选地,在所述利用soft-ldpc方法对所述读错误进行纠正之后,进一步包括:

利用data-rebuild方法对当前读错误进行纠正。

优选地,进一步包括:

依据预设时间周期更新所述srr表。

优选地,进一步包括:

分别记录利用目标纠错偏转电压对当前读错误进行纠正、利用soft-ldpc方法对当前读错误进行纠正以及利用data-rebuild方法对当前读错误进行纠正的次数。

优选地,所述预先对各固态硬盘中的预设物理块进行纠错测试,根据读错误中的读干扰的次数相较于标准次数的两种偏差情况和数据保持的时间相较于标准时间的两种偏差情况的排列组合,设置各组合结果对应的纠错偏转电压,得到srr表的过程,具体包括:

预先根据擦写次数将各所述固态硬盘中的各所述预设物理块分类分组;

依据各分组对各所述预设物理块进行纠错测试;

根据读错误中的读干扰的次数相较于标准次数的两种偏差情况和数据保持的时间相较于标准时间的两种偏差情况的排列组合,设置各组合结果对应的纠错偏转电压;

获取与各所述分组对应的srr表。

为解决上述技术问题,本发明还提供一种固态硬盘的读纠错装置,包括:

测试模块,用于预先对各固态硬盘中的预设物理块进行纠错测试,根据读错误中的读干扰的次数相较于标准次数的两种偏差情况和数据保持的时间相较于标准时间的两种偏差情况的排列组合,设置各组合结果对应的纠错偏转电压,得到srr表;

获取模块,用于在检测到当前读错误时,获取当前读错误的当前读干扰对应的目标次数偏差和当前数据保持对应的目标时间偏差;

查找模块,用于从所述srr表中查找与所述目标次数偏差和所述目标时间偏差的组合结果对应的目标纠错偏转电压;

纠错模块,用于利用所述目标纠错偏转电压对当前读错误进行纠正。

为解决上述技术问题,本发明还提供一种固态硬盘的读纠错设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任一种固态硬盘的读纠错方法的步骤。

为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种固态硬盘的读纠错方法的步骤。

本发明提供的一种固态硬盘的读纠错方法,通过预先对各固态硬盘中的预设物理块进行纠错测试,根据读错误中的读干扰的次数相较于标准次数的两种偏差情况和数据保持的时间相较于标准时间的两种偏差情况的排列组合,设置各组合结果对应的纠错偏转电压,得到srr表;因此,在检测到当前读错误时,获取当前读错误的当前读干扰对应的目标次数偏差和当前数据保持对应的目标时间偏差;然后从srr表中查找与目标次数偏差和目标时间偏差的组合结果对应的目标纠错偏转电压;进而利用目标纠错偏转电压对当前读错误进行纠正。也就是说,本方法在进行读纠错时,只需要获取当前读错误对应的当前读干扰的次数和当前数据保持的时间,便可以依据srr表查找到对应的目标纠错偏转电压,并利用该目标纠错偏转电压进行读纠错,大大降低读纠错时操作过程的复杂性,减少读纠错的操作时间,从而提升读纠错的效率,提升固态硬盘的性能稳定性。

为解决上述技术问题,本发明还提供了一种固态硬盘的读纠错装置、设备及计算机可读存储介质,均具有上述有益效果。

附图说明

为了更清楚地说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种固态硬盘的读纠错方法的流程图;

图2为本发明实施例提供的一种固态硬盘的读纠错装置的结构图;

图3为本发明实施例提供的一种固态硬盘的读纠错设备的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例的核心是提供一种固态硬盘的读纠错方法,能够提高固态硬盘中的读纠错的效率,提升固态硬盘的稳定性;本发明的另一核心是提供一种固态硬盘的读纠错装置、设备及计算机可读存储介质,均具有上述有益效果。

为了使本领域技术人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

图1为本发明实施例提供的一种固态硬盘的读纠错方法的流程图。如图1所示,一种固态硬盘的读纠错方法包括:

s10:预先对各固态硬盘中的预设物理块进行纠错测试,根据读错误中的读干扰的次数相较于标准次数的两种偏差情况和数据保持的时间相较于标准时间的两种偏差情况的排列组合,设置各组合结果对应的纠错偏转电压,得到srr表。

具体的,本实施例通过预先设置srr(smartreadretry)表,利用srr表作为读纠错的参考模板进行读纠错操作。

具体的,设置srr表的过程为:预先对多个预设物理块进行纠错测试,该多个预设物理块可以是不同的固态硬盘中的物理块,也就是说,从多个不同的固态硬盘中挑选出物理块进行纠错测试;当然,也可以是对同一固态硬盘中的各物理块进行纠错测试,本实施例优选地对多个不同的固态硬盘中的预设物理块进行纠错测试。然后,对各预设物理块分别进行读纠错测试:根据读错误中的读干扰(readdisturb)的次数相较于标准次数的两种偏差情况(即,偏大和偏小)和数据保持(dataretention)的时间相较于标准时间的两种偏差情况(即,偏大和偏小)进行排列组合,得到四种组合结果:

读干扰(readdisturb)偏大,数据保持(dataretention)偏大;

读干扰(readdisturb)偏大,数据保持(dataretention)偏小;

读干扰(readdisturb)偏小,数据保持(dataretention)偏大;

读干扰(readdisturb)偏小,数据保持(dataretention)偏小。

需要说明的是,在实际操作中,是对每一个预设物理块分别进行大量的纠错测试操作,例如可以是从500次读干扰(0.5kblockread)或者1000次读干扰(1kblockread)的测试结果中选择出接近于平均值的值作为最终的测试结果;可以是在12小时或者一天或者其他时长的时间段中确定各读错误对应的数据保持的时间,选择出接近于平均值的值作为测试结果。

根据这四种组合结果,分别设置对应的纠错偏转电压。具体的,纠错偏转电压是根据实际操作经验调试得出,进而得出srr表。

s20:在检测到当前读错误时,获取当前读错误的当前读干扰对应的目标次数偏差和当前数据保持对应的目标时间偏差。

具体的,在运行过程中检测到当前读错误时,则获取当前读错误的读干扰对应的次数,以及根据该次数与标准次数的差异得出当前读干扰对应的目标次数偏差(偏大或偏小);获取当前读错误的当前数据保持对应的时间,以及根据该时间与标准时间的差异得出当前数据保持对应的目标时间偏差(偏大或偏小)。

s30:从srr表中查找与目标次数偏差和目标时间偏差的组合结果对应的目标纠错偏转电压;

s40:利用目标纠错偏转电压对当前读错误进行纠正。

具体的,在得出当前读错误对应的目标次数偏差和目标时间偏差之后,从srr表中查找与目标次数偏差和目标时间偏差的组合结果对应的目标纠错偏转电压;然后利用该目标纠错偏转电压对该当前读错误进行纠正。

需要说明的是,srr表中设置有包括四种组合情况对应的纠错偏转电压,经试验证明利用这种纠错方式能够涵盖99%的读错误情况,因此纠错能力强。

本发明实施例提供的一种固态硬盘的读纠错方法,通过预先对各固态硬盘中的预设物理块进行纠错测试,根据读错误中的读干扰的次数相较于标准次数的两种偏差情况和数据保持的时间相较于标准时间的两种偏差情况的排列组合,设置各组合结果对应的纠错偏转电压,得到srr表;因此,在检测到当前读错误时,获取当前读错误的当前读干扰对应的目标次数偏差和当前数据保持对应的目标时间偏差;然后从srr表中查找与目标次数偏差和目标时间偏差的组合结果对应的目标纠错偏转电压;进而利用目标纠错偏转电压对当前读错误进行纠正。也就是说,本方法在进行读纠错时,只需要获取当前读错误对应的当前读干扰的次数和当前数据保持的时间,便可以依据srr表查找到对应的目标纠错偏转电压,并利用该目标纠错偏转电压进行读纠错,大大降低读纠错时操作过程的复杂性,减少读纠错的操作时间,从而提升读纠错的效率,提升固态硬盘的性能稳定性。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例在利用目标纠错偏转电压对当前读错误进行纠正之后,进一步包括:

利用soft-ldpc方法对当前读错误进行纠正。

可以理解的是,在实际操作中,利用srr表进行纠错的方案已经能够实现对大部分的读错误进行纠正,本实施例为了进一步提高读纠错的成功率,是在利用目标纠错偏转电压对当前读错误进行纠正之后,若该读错误未被纠正,则进一步利用soft-ldpc(软解码方式)进行读纠错。需要说明的是,利用soft-ldpc方法对当前读错误进行纠正的方式是本领域技术人员的公知常识,因此此处不做赘述。

可以理解的是,软解码方式利用llr表和σ表进行读纠错,且经试验证明这种方式的读纠错的失败率为10e-19,从而进一步提升读纠错的成功率。

作为优选的实施方式,在利用soft-ldpc方法对读错误进行纠正之后,进一步包括:

利用data-rebuild方法对当前读纠错进行纠正。

需要说明的是,在本实施例中,是在利用soft-ldpc方法对当前读错误进行纠正之后,若该读错误仍未被纠正,则进一步利用data-rebuild方法对读纠错进行纠正。具体的,data-rebuild(数据重建)是raid5的逆过程,通过读出存储于其他物理块中的数据,再通过xor方式将数据重建成功。

可以理解的是,在实际操作中,通过逐级利用目标纠错偏转电压、利用soft-ldpc方法以及利用data-rebuild方法对当前读纠错进行纠正,通过逐步增大读纠错的力度,能够进一步提高读纠错的成功率。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例进一步包括:

依据预设时间周期更新srr表。

考虑到在经过预设时间之后,各物理块在读写操作中的性能将会受到影响,因此各物理块的读错误的纠错偏转电压也将受到影响。因此在本实施例中,进一步通过按照预设时间周期更新srr表,也即在预设时间后,再次对各固态硬盘中的预设物理块进行纠错测试,得到新的srr表。

可见,通过按照预设时间周期更新srr表,能够使得纠错偏转电压更加准确,从而提高对固态硬盘进行读纠错的效率。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例本实施例进一步包括:

分别记录利用目标纠错偏转电压对当前读错误进行纠正、利用soft-ldpc方法对当前读错误进行纠正以及利用data-rebuild方法对当前读错误进行纠正的次数。

具体的,本实施例通过进一步在利用目标纠错偏转电压对当前读错误进行纠正或利用soft-ldpc方法或利用data-rebuild方法对当前读纠错进行纠正之后,记录分别利用各种方式进行读纠错的次数。

可以理解的是,在实际操作中,若利用soft-ldpc方法对当前读错误进行纠正的次数大于利用目标纠错偏转电压对当前读错误进行纠正的次数,则表示当前设置的srr表可能存在问题,因此需要更新srr表;或者,若利用data-rebuild方法对当前读纠错进行纠正的次数大于利用soft-ldpc方法对当前读错误进行纠正的次数,则表示llr表或σ表可能存在问题,因此需要更新llr表或σ表。

可见,本实施例通过进一步分别记录利用目标纠错偏转电压对当前读错误进行纠正、利用soft-ldpc方法对当前读错误进行纠正以及利用data-rebuild方法对当前读纠错进行纠正的次数,能够进一步检测当前设置的srr表或llr表或σ表的正确性,能够进一步提升固态硬盘的读纠错的效率。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,在本实施例中,预先对各固态硬盘中的预设物理块进行纠错测试,根据读错误中的读干扰的次数相较于标准次数的两种偏差情况和数据保持的时间相较于标准时间的两种偏差情况的排列组合,设置各组合结果对应的纠错偏转电压,得到srr表的过程,具体包括:

预先根据擦写次数将各固态硬盘中的各预设物理块分类分组;

依据各分组对各预设物理块进行纠错测试;

根据读错误中的读干扰的次数相较于标准次数的两种偏差情况和数据保持的时间相较于标准时间的两种偏差情况的排列组合,设置各组合结果对应的纠错偏转电压;

获取与各分组对应的srr表。

本实施例中,首先将各固态硬盘中的预设物理块进行分组分类,具体是根据各预设物理块的擦写次数进行分类,将属于同一擦写次数范围内的预设物理块划分为同一分组。例如,擦写次数为0-3k的预设物理块为一个分组,擦写次数3k-6k的预设物理块为一个分组等等,本实施例对用于将预设物理块进行分类分组设置的各擦写次数的范围不做限定。

在对预设物理块进行分组之后,对各分组中的各预设物理块进行纠错测试,这一过程与上述实施例中的纠错测试过程一致,具体细节可参考上述实施例,此处不做赘述。

然后,根据读错误中的读干扰的次数相较于标准次数的两种偏差情况和数据保持的时间相较于标准时间的两种偏差情况的排列组合,设置各组合结果对应的纠错偏转电压;然后按照各分组情况,得到与各分组对应的srr表。

也就是说,本实施例是针对每一分组而言,根据各分组中的各预设物理块的纠错测试情况,设置出与各分组对应的srr表。对应的,在后续的操作中,当检测到读错误时,需要根据该读错误的物理块对应的擦写次数,选择对应的srr表,再从该对应的srr表中确定出目标纠错偏转电压。这样一来,能够得出更加精准的目标纠错偏转电压,从而进一步提升读纠错的效率,提升固态硬盘的稳定性。

上文对于本发明提供的一种固态硬盘的读纠错方法的实施例进行了详细的描述,本发明还提供了一种与该方法对应的固态硬盘的读纠错装置、设备及计算机可读存储介质,由于装置、设备及计算机可读存储介质部分的实施例与方法部分的实施例相互照应,因此装置、设备及计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图2为本发明实施例提供的一种固态硬盘的读纠错装置的结构图,如图2所示,一种固态硬盘的读纠错装置包括:

测试模块21,用于预先对各固态硬盘中的预设物理块进行纠错测试,根据读错误中的读干扰的次数相较于标准次数的两种偏差情况和数据保持的时间相较于标准时间的两种偏差情况的排列组合,设置各组合结果对应的纠错偏转电压,得到srr表;

获取模块22,用于在检测到当前读错误时,获取当前读错误的当前读干扰对应的目标次数偏差和当前数据保持对应的目标时间偏差;

查找模块23,用于从srr表中查找与目标次数偏差和目标时间偏差的组合结果对应的目标纠错偏转电压;

纠错模块24,用于利用目标纠错偏转电压对当前读错误进行纠正。

本发明实施例提供的固态硬盘的读纠错装置,具有上述固态硬盘的读纠错方法的有益效果。

图3为本发明实施例提供的一种固态硬盘的读纠错设备的结构图,如图3所示,一种固态硬盘的读纠错设备包括:

存储器31,用于存储计算机程序;

处理器32,用于执行计算机程序时实现如上述固态硬盘的读纠错方法的步骤。

本发明实施例提供的固态硬盘的读纠错设备,具有上述固态硬盘的读纠错方法的有益效果。

为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述固态硬盘的读纠错方法的步骤。

本发明实施例提供的计算机可读存储介质,具有上述固态硬盘的读纠错方法的有益效果。

以上对本发明所提供的固态硬盘的读纠错方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1