一种确定硬盘中擦写对象的方法及装置
技术领域
本申请涉及计算机领域,尤其涉及一种确定硬盘中擦写对象的方法及装置。
背景技术
在硬盘的使用过程中,为了实现硬盘中不同的物理块尽量同时达到报废上限的目的,现有技术中,采用磨损均衡算法。
所述磨损均衡算法的技术实质为:在需要对物理块进行擦写时,读取每个物理块的实际被擦写次数,将实际被擦写次数最小的物理块作为本次擦写的对象。
然而,在硬盘中的物理块的最大可擦写次数不同(例如物理块1的最大可擦写次数为500次,物理块2的最大可擦写次数为1500次)的情况下,现有的磨损均衡算法还是不能保证各个物理块同时达到报废极限,因为硬盘中一旦有物理块达到报废极限,硬盘就不能使用,所以,在各个物理块达到报废极限的时间不同的情况下,容易造成硬盘寿命过短的问题。
发明内容
本申请实施例提供了一种确定硬盘中擦写对象的方法及装置,目的在于解决在各个物理块达到报废极限的时间不同的情况下,容易造成硬盘寿命过短的问题。
为了实现上述目的,本申请实施例提供了以下技术方案:
一种确定硬盘中擦写对象的方法,所述硬盘中包括存储单元i,其中i=1、2……N,N为大于1的整数,所述方法包括:
读取所述硬盘中的存储单元i的擦写次数;
获取所述存储单元i的第一参数,所述第一参数依据表征所述存储单元i的最大可擦写次数的第二参数确定;
计算所述存储单元i的擦写参数,所述擦写参数依据所述擦写次数与所述第一参数确定;
比较N个存储单元的擦写参数,将擦写参数满足预设条件的存储单元作为本次擦写的对象。
可选地,所述表征所述存储单元i的最大可擦写次数的第二参数包括:
存储单元的擦写速度和/或存储单元的读取错误数。
可选地,在将擦写参数满足预设条件的存储单元作为本次擦写的对象之后,还包括:
对所述擦写参数满足预设条件的存储单元进行擦写;
更新被擦写后的存储单元的擦写次数。
可选地,所述获取所述存储单元i的第一参数包括:
查询已记录的、表征所述存储单元i的最大可擦写次数的第二参数,所述第二参数通过对所述存储单元i的历史擦写过程确定;
通过查表格的方式,获取与所述第二参数对应的第一参数,所述表格用于记录存储单元i的第一参数与第二参数之间的对应关系。
可选地,在对所述擦写参数满足预设条件的存储单元进行擦写之后,还包括:
记录在擦写过程中的擦写速度;
对所述擦写参数满足预设条件的存储单元进行读取,并记录读取过程中的数据错误数;
将所述擦写速度和所述数据错误数更新到所述已记录的第二参数中。
可选地,所述计算所述存储单元i的擦写参数包括:
计算所述擦写次数与所述第一参数的乘积,乘积为所述擦写参数。
可选地,在所述擦写参数与所述最大可擦写次数反相关的情况下,所述将擦写参数满足预设条件的存储单元作为本次擦写的对象包括:
将擦写参数最小的存储单元作为本次擦写的对象。
一种确定硬盘中擦写对象的装置,所述硬盘中包括存储单元i,其中i=1、2……N,N为大于1的整数,所述装置包括:
擦写次数读取模块,用于读取所述硬盘中的存储单元i的擦写次数;
参数获取模块,用于获取所述存储单元i的第一参数,所述第一参数依据表征所述存储单元i的最大可擦写次数的第二参数确定;
计算模块,用于计算所述存储单元i的擦写参数,所述擦写参数依据所述擦写次数与所述第一参数确定;
擦写对象确定模块,用于比较N个存储单元的擦写参数,将擦写参数满足预设条件的存储单元作为本次擦写的对象。
可选地,所述参数获取模块用于获取所述存储单元i的第一参数,所述第一参数依据表征所述存储单元i的最大可擦写次数的第二参数确定包括:
所述参数获取模块具体用于,获取所述存储单元i的第一参数,所述第一参数依据表征所述存储单元i的最大可擦写次数的第二参数确定,所述表征所述存储单元i的最大可擦写次数的第二参数包括:存储单元的擦写速度和/或存储单元的读取错误数。
可选地,还包括:
擦写模块,用于在将擦写参数满足预设条件的存储单元作为本次擦写的对象之后,对所述擦写参数满足预设条件的存储单元进行擦写;
更新模块,用于更新被擦写后的存储单元的擦写次数。
可选地,所述参数获取模块用于获取所述存储单元i的第一参数包括:
所述参数获取模块具体用于,查询已记录的、表征所述存储单元i的最大可擦写次数的第二参数,所述第二参数通过对所述存储单元i的历史擦写过程确定,并通过查表格的方式,获取与所述第二参数对应的第一参数,所述表格用于记录存储单元i的第一参数与第二参数之间的对应关系。
可选地,所述更新模块还用于:
在对所述擦写参数满足预设条件的存储单元进行擦写之后,记录在擦写过程中的擦写速度,对所述擦写参数最小的存储单元进行读取,并记录读取过程中的数据错误数,并将所述擦写速度和所述数据错误数更新到所述已记录的第二参数中。
可选地,所述计算模块用于计算所述存储单元i的擦写参数包括:
所述计算模块具体用于,计算所述擦写次数与所述第一参数的乘积,乘积为所述擦写参数。
可选地,所述擦写对象确定模块用于比较N个存储单元的擦写参数,将擦写参数满足预设条件的存储单元作为本次擦写的对象包括:
所述擦写对象确定模块具体用于,在所述擦写参数与所述最大可擦写次数反相关的情况下,将擦写参数最小的存储单元作为本次擦写的对象。
本申请实施例公开的一种确定硬盘中擦写对象的方法及装置,计算硬盘中每一个存储单元的擦写参数,因为每一个存储单元的擦写参数依据其自身的擦写次数以及第一参数获得,并且,第一参数由表征此存储单元的最大可擦写次数的第二参数确定,可见,每一个存储单元的擦写参数都与其最大可擦写次数相关,即最大可擦写次数作为确定本次擦写对象的依据,所以,在对存储单元进行擦写时,考虑到每个存储单元的最大可擦写次数,使得平衡最大可擦写次不同的存储单元间的磨损程度成为可能,在各个存储单元达到报废极限的时间不同的情况下,使得硬盘的各个存储单元尽可能同时接近报废极限时间,从而延长硬盘整体的寿命。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种确定硬盘中擦写对象的方法的流程图;
图2为本申请实施例公开的又一种确定硬盘中擦写对象的方法的流程图;
图3为本申请实施例公开的又一种确定硬盘中擦写对象的方法的流程图;
图4为本申请实施例公开的确定硬盘中擦写对象的方法的与现有技术相比的效果示意图;
图5为本申请实施例公开的一种确定硬盘中擦写对象的装置的结构示意图。
具体实施方式
本申请实施例公开的确定硬盘中擦写对象的方法及装置,可以应用在电子设备中,所述电子设备中设置有硬盘,所述硬盘中包括N个存储单元,分别使用存储单元1、存储单元2、……存储单元N表示。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开的一种确定硬盘中擦写对象的方法,如图1所示,所述方法包括:
S101:依次读取所述硬盘中的存储单元1、存储单元2、……存储单元N的擦写次数;
S102:获取所述存储单元1、存储单元2、……存储单元N的第一参数;
其中,所述每一个存储单元的第一参数均依据表征此存储单元的最大可擦写次数的第二参数确定,例如存储单元1的第一参数由表征存储单元1的最大可擦写次数的第二参数确定。
S103:分别计算所述存储单元1、存储单元2、……存储单元N的擦写参数;
具体地,每一个存储单元的擦写参数依据此存储单元的擦写次数与所述此存储单元的第一参数确定,例如,存储单元2的擦写参数依据存储单元2的擦写次数与存储单元2的第一参数确定。
S104:比较N个存储单元的擦写参数,将擦写参数满足预设条件的存储单元作为本次擦写的对象。
本实施例中,由表征最大可擦写次的第二参数确定的第一参数,计算得到存储单元的擦写参数,将擦写参数满足预设条件的存储单元作为本次擦写的对象,因此,在N个存储单元中,可以实现始终将最大可擦写次数最大即寿命最长的存储单元作为擦写对象,因此,能够使得N个存储单元尽可能同时达到最大可擦写次数,从而提升硬盘的整体寿命。
本申请实施例公开的又一种确定硬盘中擦写对象的方法,如图2所示,包括:
S201:依次读取所述硬盘中的存储单元1、存储单元2、……存储单元N的擦写次数;
S202:查询已记录的、表征所述存储单元1、存储单元2、……存储单元N的最大可擦写次数的第二参数;
本实施例中,具体地,每一个存储单元的第二参数可以为该存储单元的擦写速度、或该存储单元的读取错误数、或者该存储单元的擦写速度和该存储单元的读取错误数。
其中,该存储单元的擦写速度和该存储单元的读取错误数均可以依据对该存储单元的历史擦写过程确定。
S203:通过查表格的方式,获取与所述第二参数对应的第一参数;
其中,所述表格用于记录存储单元1、存储单元2、……存储单元N的第一参数与第二参数之间的对应关系。
本实施例中规定,第一参数与擦写速度反相关,即擦写速度值越大,则第一参数越小;第一参数与读取错误数正相关,即读取错误数越大,则第一参数越大。
S204:计算存储单元1、存储单元2、……存储单元N的擦写参数,其中,每一个存储单元的擦写参数=该存储单元的擦写次数*该存储单元的第一参数;
S205:比较N个存储单元的擦写参数,将擦写参数最小的存储单元作为本次擦写的对象。
本实施例所述的方法,依据最大可擦写次越大、擦写速度值越大、读取错误数越小的特性,利用第一参数计算出存储单元的擦写参数,并将擦写参数最小的存储单元作为本次可擦写的对象,因为最大可擦写次越大,存储单元的寿命最长,因此,可以通过均衡硬盘中不同的存储单元的被擦写次数,实现均衡不同存储单元的寿命的目的,从而避免硬盘中某个存储单元过早报废,因此,能够提升硬盘的整体寿命。
本申请实施例公开的有一种确定硬盘中擦写对象的方法,如图3所示,包括:
S301:依次读取所述硬盘中的存储单元1、存储单元2、……存储单元N的擦写次数;
S302:查询已记录的、所述存储单元1、存储单元2、……存储单元N的擦写速度和读取错误数;
S303:通过查表格的方式,获取与每个存储单元的擦写速度和读取错误数对应的第一参数;
本实施例中,同样地,第一参数与擦写速度反相关,即擦写速度值越大,则第一参数越小;第一参数与读取错误数正相关,即读取错误数越大,则第一参数越大。表格可以预先设置,第一参数值的大小也可以预先设置。
S304:计算存储单元1、存储单元2、……存储单元N的擦写参数;
S305:比较N个存储单元的擦写参数,将擦写参数最小的存储单元作为本次擦写的对象;
S306:对所述擦写参数最小的存储单元进行擦写;
S307:更新被擦写后的存储单元的擦写次数;
S308:记录在擦写过程中的擦写速度;
S309:对所述擦写参数最小的存储单元进行读取,并记录读取过程中的数据错误数;
S310:将所述擦写速度和所述数据错误数更新到所述已记录的第二参数中。
也就是说,用新得到的擦写速度和数据错误数,替换已存储的擦写速度和所述数据错误数。
可见本实施例中,在对擦写对象进行擦写后,更新表征擦写对象的最大擦写次数的第二参数,用于下一次擦写对象的确定,所以,能够实现更佳的磨损平衡。实践证明,使用本实施例所述的方法,能够使得硬盘中的所有物理块达到其不同的寿命上限的时间会趋于一致,可以减小传统算法中部分寿命较短的物理块早期达到自己的寿命上限,退出使用的情况。因此,硬盘容量不会逐步减小,而是在某一个时刻快速减小,而这一时刻晚于传统算法中容量下降低于门限值的时间,如图4所示。
与上述方法实施例相对应地,本申请实施例还公开了一种确定硬盘中擦写对象的装置,所述硬盘中包括存储单元i,其中i=1、2……N,N为大于1的整数,如图5所示,所述装置包括:
擦写次数读取模块501,用于读取所述硬盘中的存储单元i的擦写次数;
参数获取模块502,用于获取所述存储单元i的第一参数,所述第一参数依据表征所述存储单元i的最大可擦写次数的第二参数确定;
可选地,本实施例中,第二参数包括存储单元的擦写速度和/或存储单元的读取错误数。
计算模块503,用于计算所述存储单元i的擦写参数,所述擦写参数依据所述擦写次数与所述第一参数确定;
擦写对象确定模块504,用于比较N个存储单元的擦写参数,将擦写参数满足预设条件的存储单元作为本次擦写的对象。
可选地,本实施例中,所述参数获取模块获取所述存储单元i的第一参数的具体实现方式可以为:查询已记录的、表征所述存储单元i的最大可擦写次数的第二参数,所述第二参数通过对所述存储单元i的历史擦写过程确定,并通过查表格的方式,获取与所述第二参数对应的第一参数,所述表格用于记录存储单元i的第一参数与第二参数之间的对应关系。
所述计算模块计算所述存储单元i的擦写参数的具体实现方式可以为:计算所述擦写次数与所述第一参数的乘积,乘积为所述擦写参数。
所述擦写对象确定模块比较N个存储单元的擦写参数,将擦写参数满足预设条件的存储单元作为本次擦写的对象的具体实现方式可以为:在所述擦写参数与所述最大可擦写次数反相关的情况下,将擦写参数最小的存储单元作为本次擦写的对象。
进一步,可选地,本实施例所述的装置还可以包括:
擦写模块505,用于在将擦写参数满足预设条件的存储单元作为本次擦写的对象之后,对所述擦写参数最小的存储单元进行擦写,具体地,在将擦写参数最小的存储单元作为本次擦写的对象之后,对所述擦写参数最小的存储单元进行擦写;
更新模块506,用于更新被擦写后的存储单元的擦写次数,并且在对所述擦写参数满足预设条件的存储单元进行擦写之后,记录在擦写过程中的擦写速度,对所述擦写参数满足预设条件的存储单元进行读取,并记录读取过程中的数据错误数,并将所述擦写速度和所述数据错误数更新到所述已记录的第二参数中。
本实施例所述装置,能够避免硬盘中某个存储单元过早报废,因此,能够提升硬盘的整体寿命。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。