一种固态硬盘状态的检测方法、装置和介质与流程

文档序号:17287727发布日期:2019-04-03 03:42阅读:144来源:国知局
一种固态硬盘状态的检测方法、装置和介质与流程

本发明涉及硬盘监管技术领域,特别是涉及一种固态硬盘状态的检测方法、装置和计算机可读存储介质。



背景技术:

固态硬盘有一个很重要的功能就是错误检查和纠正(errorcorrectioncode,ecc),ecc纠错技术可以纠正一定数量的错误bit。固态硬盘可以采用闪存(nand)作为存储介质,巡检的作用在于降低存储于nand内的数据发生错误的概率,因此需要定期对nand内的每个block进行巡检读操作。

巡检读操作的最终目的是判断block的健康状态。如果将属于健康状态的block误判为坏块,则会减小block的使用寿命,从而减小固态硬盘的使用寿命。如果将坏块误判为好块,则会造成读错误率上升,增加系统纠错开销,而且增加了系统不可纠正错误的概率,从而影响系统的稳定性。因此,如何准确的判断block状态好坏是巡检过程中的一个关键步骤。

传统方式中,通过依据选定的一个固定阈值对block的状态进行判断,当block发生错误bit的数目到达该固定阈值时,则视为block状态不良。这样做的结果从短期来看对系统性能可能不大,但是从硬盘的整个生命周期来讲,随着固态硬盘使用时间的增长、访问次数的增加,固态硬盘的整体性能会有所下降,如果一直按照一个固定阈值对block状态进行判断,会造成block状态判定的偏差。当固定阈值设置的太小时,可能会减小固态硬盘的使用寿命;当固态阈值设置的过大时,则会增加系统纠错开销。

可见,如何提升固态硬盘状态检测的精确性,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种固态硬盘状态的检测方法、装置和计算机可读存储介质,可以提升固态硬盘状态检测的精确性。

为解决上述技术问题,本发明实施例提供一种固态硬盘状态的检测方法,包括:

依据预先设定的地址信息,周期性获取相应巡检数据页的当前状态信息;

根据状态信息和阈值的对应关系,确定出各所述巡检数据页各自对应的纠错阈值;

判断目标数据块的错误数据个数是否均小于各所述纠错阈值;其中,所述目标数据块为所述巡检数据页所属的数据块;

若否,则对所述目标数据块设置状态不良的状态标识。

可选的,所述状态信息包括数据写入时间和数据读次数。

可选的,还包括:

当所述目标数据块的错误数据个数均大于或等于各所述纠错阈值时,则将所述目标数据块的数据迁移至状态良好的数据块中。

可选的,还包括:

当所述目标数据块的错误数据个数均大于或等于各所述纠错阈值时,则对所述目标数据块设置坏块标记,并展示目标数据块损坏的提示信息。

可选的,在所述对所述目标数据块设置状态不良的状态标识之后还包括:

记录目标数据块的错误数据个数,并将所述错误数据个数作为参考值;

判断在预设时间内所述目标数据块的错误数据个数是否小于所述参考值;其中,所述预设时间大于或等于所述周期时间;

若否,则展示对数据块进行纠错的提示信息。

本发明实施例还提供了一种固态硬盘状态的检测装置,包括获取单元、确定单元、判断单元和标记单元;

所述获取单元,用于依据预先设定的地址信息,周期性获取相应巡检数据页的当前状态信息;

所述确定单元,用于根据状态信息和阈值的对应关系,确定出各所述巡检数据页各自对应的纠错阈值;

所述判断单元,用于判断目标数据块的错误数据个数是否均小于各所述纠错阈值;其中,所述目标数据块为所述巡检数据页所属的数据块;若否,则触发所述标记单元;

所述标记单元,用于对所述目标数据块设置状态不良的状态标识。

可选的,所述状态信息包括数据写入时间和数据读次数。

可选的,还包括迁移单元;

所述迁移单元,用于当所述目标数据块的错误数据个数均大于或等于各所述纠错阈值时,则将所述目标数据块的数据迁移至状态良好的数据块中。

可选的,还包括展示单元;

所述展示单元,用于当所述目标数据块的错误数据个数均大于或等于各所述纠错阈值时,则对所述目标数据块设置坏块标记,并展示目标数据块损坏的提示信息。

可选的,还包括记录单元和提示单元;

所述记录单元,用于记录目标数据块的错误数据个数,并将所述错误数据个数作为参考值;

所述判断单元还用于在所述对所述目标数据块设置状态不良的状态标识之后,判断在预设时间内所述目标数据块的错误数据个数是否小于所述参考值;其中,所述预设时间大于或等于所述周期时间;若否,则触发所述提示单元;

所述提示单元,用于展示对数据块进行纠错的提示信息。

本发明实施例还提供了一种固态硬盘状态的检测装置,包括:

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

处理器,用于执行所述计算机程序以实现如傻瓜述固态硬盘状态的检测方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述固态硬盘状态的检测方法的步骤。

由上述技术方案可以看出,依据预先设定的地址信息,周期性获取相应巡检数据页的当前状态信息;根据状态信息和阈值的对应关系,确定出各所述巡检数据页各自对应的纠错阈值;将巡检数据页所属的数据块称作目标数据块,判断目标数据块的错误数据个数是否均小于各所述纠错阈值;当目标数据块的错误数据个数大于或等于任意一个纠错阈值时,则说明目标数据块的当前健康状态不良,此时可以对目标数据块设置状态不良的状态标识,以便于操作系统可以依据状态标识对目标数据块进行及时的调整。在该技术方案中,可以根据各数据页的当前状态信息,动态调整纠错阈值的取值,以该纠错阈值作为目标数据块健康状态评判的依据,使得评判结果可以更加贴合目标数据块的实际运行状态,提升了固态硬盘状态检测的精确性,在保证固态硬盘整体使用寿命的同时,尽量减小巡检错失坏块的概率,从而减小了系统的纠错开销,进而提高了系统的性能。

附图说明

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

图1为本发明实施例提供的一种固态硬盘状态的检测方法的流程图;

图2为本发明实施例提供的一种固态硬盘状态的检测装置的结构示意图;

图3为本发明实施例提供的一种固态硬盘状态的检测装置的硬件结构示意图。

具体实施方式

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

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

接下来,详细介绍本发明实施例所提供的一种固态硬盘状态的检测方法。图1为本发明实施例提供的一种固态硬盘状态的检测方法的流程图,该方法包括:

s101:依据预先设定的地址信息,周期性获取相应巡检数据页的当前状态信息。

一个数据块(block)中包含有多个数据页(page),在本发明实施例中,可以通过测试验证的方式,选取出最能够反映block运行性能的page作为巡检对象。各数据块的状态检测方式类似,在本发明实施中,均以一个数据块为例展开说明。

考虑到nand的类型包括有单阶单元(single-levelcell,slc)、双阶单元(multi-levelcell,mlc)和三阶单元(trinary-levelcell,tlc)这三种,针对于不同类型的block,选取的page的个数可以有所差异。例如,针对于slc类型的block可以选取一个page作为巡检对象,针对于mlc类型的block可以选取两个page作为巡检对象,针对于tlc类型的block可以选取三个page作为巡检对象。

为了便于介绍,在本发明实施例中,均以tlc类型的block为例展开说明,tlc包括有三层,在选取page时,可以从每一层中选取出一个page作为巡检对象,相应的,三层可以选取出3个page,可以将其依次记为l-page、m-page和u-page。

这样选取出的page能够兼顾tlcnand中三种page的健康状态。通过基于对nand的海量测试,选取出最能够反映block健康状态的3个page。具体选取规则可以参照现有技术中对block巡检时巡检对象的选取方式,在此不再赘述。

需要说明的是,上述介绍的tlc类型的block选取3个page作为巡检对象仅是举例说明,在实际应用中,也可以根据需求选取更多的page作为巡检对象,在此不做限定。

通过测试确定出巡检page后,可以存储各巡检page所对应的地址信息,以便于操作系统可以依据该地址信息,查询相应的page,从而周期性获取各page的状态信息。

影响block状态的因素包括retention和disturb,其中,retention表示数据存储在固定位置时间过长对存储数据正确性的影响,retention体现为数据写入时间time;disturb表示读次数累加对nand存储数据正确性的影响,disturb体现为对block的读次数read_count。

在具体实现中,可以以数据写入时间或者是数据读次数又或者是两者结合作为调整纠错阈值的依据。在本发明实施例中,以状态信息包括数据写入时间和数据读次数为例展开说明。

在本发明实施例中,可以按照设置的周期时间,定期获取相应巡检数据页的当前状态信息,其中,周期时间的取值可以根据实际需求进行设定,例如,可以将周期时间设定为30分钟,操作系统每隔30分钟获取一次各巡检数据页的当前状态信息。

s102:根据状态信息和阈值的对应关系,确定出各巡检数据页各自对应的纠错阈值。

状态信息和阈值的对应关系中记录了不同状态信息下所对应的阈值。

以time和read_count为例,在本发明实施例中,可以分别将time和read_count的取值进行划分,例如,可以将time划分为0~m,m~n,在具体实现中,可以令m=5天,n=90天。可以将read_count划分为0~x,x~y,在具体实现中,可以令x=1000次,y=2000次。

根据time和read_count的取值,可以测试得到其所对应的纠错阈值,其中,time、read_count和纠错阈值的对应关系的存储形式可以参见表1,

表1

表1中,thr-1-l至thr-4-l、thr-1-m至thr-4-m、thr-1-u至thr-4-u分别表示不同的纠错阈值。各纠错阈值的取值可以相同也可以不同,在此不做限定。

在具体实现中,可以根据time和read_count的取值,通过测试的方式得到其所对应的纠错阈值。原则上,在相同的time取值下,read_count的取值越大,相应的其对应的纠错阈值的取值越大;在相同的read_count取值下,time的取值越大,相应的其对应的纠错阈值的取值也越大。

以表1所示的纠错阈值为例,一个tlc类型的block对应的纠错阈值有12种,在具体实现中根据各巡检page当前的time和read_count所对应的取值范围,可以确定出各巡检page各自对应的一个纠错阈值。

s103:判断目标数据块的错误数据个数是否均小于各纠错阈值。

其中,目标数据块为巡检数据页所属的数据块。

当目标数据块的错误数据个数均小于各纠错阈值时,则说明目标数据块的运行状态良好;当目标数据块的错误数据个数大于或等于任意一个纠错阈值时,则说明目标数据块的出错概率较高,此时可以执行s104。

结合上述举例中提及的3个巡检page即l-page、m-page和u-page,通过依据表1中记录的对应关系,可以获取到这3个巡检page各自对应的纠错阈值,将目标数据块的错误数据个数分别和这3个纠错阈值比较,当错误数据个数大于或等于这3个纠错阈值中的任意一个纠错阈值时,在说明目标数据块状态不良。

s104:对目标数据块设置状态不良的状态标识。

如果数据块的状态不良,则需要做读参考电压的仿真操作,以减小错误概率。

在本发明实施例中,当目标数据块的错误数据个数大于或等于任意一个纠错阈值时,则说明目标数据块状态不良,此时可以对该目标数据块设置状态不良的状态标识,以便于操作系统可以依据状态标识对目标数据块进行及时的调整,以降低目标数据块的错误概率。

由上述技术方案可以看出,依据预先设定的地址信息,周期性获取相应巡检数据页的当前状态信息;根据状态信息和阈值的对应关系,确定出各所述巡检数据页各自对应的纠错阈值;将巡检数据页所属的数据块称作目标数据块,判断目标数据块的错误数据个数是否均小于各所述纠错阈值;当目标数据块的错误数据个数大于或等于任意一个纠错阈值时,则说明目标数据块的当前健康状态不良,此时可以对目标数据块设置状态不良的状态标识,以便于操作系统可以依据状态标识对目标数据块进行及时的调整。在该技术方案中,可以根据各数据页的当前状态信息,动态调整纠错阈值的取值,以该纠错阈值作为目标数据块健康状态评判的依据,使得评判结果可以更加贴合目标数据块的实际运行状态,提升了固态硬盘状态检测的精确性,在保证固态硬盘整体使用寿命的同时,尽量减小巡检错失坏块的概率,从而减小了系统的纠错开销,进而提高了系统的性能。

当目标数据块的错误数据个数均大于或等于各纠错阈值时,则说明目标数据块当前的错误概率非常高,为了提升数据存储的正确性,此时可以将目标数据块的数据迁移至状态良好的数据块中。

通过将数据进行迁移,可以降低数据发生错误的概率,最大程度上保证数据块中存储的数据的安全性和可靠性,避免数据错误概率的持续上升,对操作系统性能产生的影响。

当目标数据块的错误数据个数均大于或等于各纠错阈值时,为了避免操作系统继续向目标数据块中存储数据,此时可以对目标数据块设置坏块标记,并展示目标数据块损坏的提示信息。

操作系统依据该坏块标记可以停止向目标数据块中写入数据,并且通过展示目标数据块损坏的提示信息,可以及时提醒管理人员对目标数据块进行修护或更换,以保证操作系统中各数据块的正常使用。

在本发明实施例中,在对目标数据块设置状态不良的状态标识之后,可以记录目标数据块的错误数据个数,并将错误数据个数作为参考值;判断在预设时间内目标数据块的错误数据个数是否小于参考值;若否,则展示对数据块进行纠错的提示信息。

每采集一次巡检page的当前状态信息,相应的,会获取目标数据块的错误数据个数,因此,在本发明实施例中,将预设时间设置的大于或等于周期时间,从而可以保证预设时间内至少获取了一次目标数据块的错误数据个数,将预设时间内获取的错误数据个数和记录的参考值进行比较。

当预设时间内目标数据块的错误数据个数不小于参考值时,则说明目标数据块的错误概率仍处于上升趋势,此时可以展示对数据块进行纠错的提示信息,以及时提醒管理人员对目标数据块进行修复处理,从而降低目标数据块的错误概率。

图2为本发明实施例提供的一种固态硬盘状态的检测装置的结构示意图,包括获取单元21、确定单元22、判断单元23和标记单元24;

获取单元21,用于依据预先设定的地址信息,周期性获取相应巡检数据页的当前状态信息;

确定单元22,用于根据状态信息和阈值的对应关系,确定出各巡检数据页各自对应的纠错阈值;

判断单元23,用于判断目标数据块的错误数据个数是否均小于各纠错阈值;其中,目标数据块为巡检数据页所属的数据块;若否,则触发标记单元24;

标记单元24,用于对目标数据块设置状态不良的状态标识。

可选的,状态信息包括数据写入时间和数据读次数。

可选的,还包括迁移单元;

迁移单元,用于当目标数据块的错误数据个数均大于或等于各纠错阈值时,则将目标数据块的数据迁移至状态良好的数据块中。

可选的,还包括展示单元;

展示单元,用于当目标数据块的错误数据个数均大于或等于各纠错阈值时,则对目标数据块设置坏块标记,并展示目标数据块损坏的提示信息。

可选的,还包括记录单元和提示单元;

记录单元,用于记录目标数据块的错误数据个数,并将错误数据个数作为参考值;

判断单元还用于在对目标数据块设置状态不良的状态标识之后,判断在预设时间内目标数据块的错误数据个数是否小于参考值;其中,预设时间大于或等于周期时间;若否,则触发提示单元;

提示单元,用于展示对数据块进行纠错的提示信息。

图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,依据预先设定的地址信息,周期性获取相应巡检数据页的当前状态信息;根据状态信息和阈值的对应关系,确定出各所述巡检数据页各自对应的纠错阈值;将巡检数据页所属的数据块称作目标数据块,判断目标数据块的错误数据个数是否均小于各所述纠错阈值;当目标数据块的错误数据个数大于或等于任意一个纠错阈值时,则说明目标数据块的当前健康状态不良,此时可以对目标数据块设置状态不良的状态标识,以便于操作系统可以依据状态标识对目标数据块进行及时的调整。在该技术方案中,可以根据各数据页的当前状态信息,动态调整纠错阈值的取值,以该纠错阈值作为目标数据块健康状态评判的依据,使得评判结果可以更加贴合目标数据块的实际运行状态,提升了固态硬盘状态检测的精确性,在保证固态硬盘整体使用寿命的同时,尽量减小巡检错失坏块的概率,从而减小了系统的纠错开销,进而提高了系统的性能。

图3为本发明实施例提供的一种固态硬盘状态的检测装置30的硬件结构示意图,包括:

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

处理器32,用于执行计算机程序以实现如上述固态硬盘状态的检测方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述固态硬盘状态的检测方法的步骤。

以上对本发明实施例所提供的一种固态硬盘状态的检测方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

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