一种固态硬盘控制器装置及固态硬盘数据校验方法制造方法及图纸

技术编号:22308064 阅读:61 留言:0更新日期:2019-10-16 08:10
本发明专利技术提供了一种固态硬盘控制器装置及固态硬盘数据校验方法,校验方法包括:在固态硬盘运行过程中,控制器监测固态硬盘的有效信息区域的比特错误位数;每当所述控制器确定所述比特错误位数达到预先设置的ECC算法所对应的可纠错位数门限时,将ECC区域映射的有效信息区域的长度缩小预设步长;所述控制器根据缩小后的每个ECC区域映射的有效信息区域的长度,对有效信息区域数据进行位移,新增ECC区域,以及重新计算每个ECC区域的校验值。本发明专利技术通过降低有效信息区域长度,提升ECC纠错能力,延长了固态硬盘的使用寿命。

A device of solid state hard disk controller and the method of checking data of solid state hard disk

【技术实现步骤摘要】
一种固态硬盘控制器装置及固态硬盘数据校验方法
本专利技术涉及计算机
,具体而言,涉及一种固态硬盘控制器装置及固态硬盘数据校验方法。
技术介绍
固态硬盘因其高速读写性能、低故障率,正在逐步取代机械硬盘,成为主流存储设备。固态硬盘主要通过错误检查和纠正(ErrorCorrectingCode,ECC)模块纠正存储数据的错误,随着固态硬盘使用时间的增长,存储数据的错误率逐渐升高,当出现错误的比特位数超过ECC纠错能力时,将出现不可纠正错误,则固态硬盘不能再继续使用。中国专利CN105280239B公开了一种动态实现固态硬盘ECC校验码的方法,为固态硬盘预设多级ECC校验码率,随着固态硬盘的工作时间增加,当出现不可纠的ECC错误时,或者当一个ECC校验码率单位被改变的条件触发时,则在ECC校验码率表中提高一级ECC校验码率,进行ECC校验码的添加/校验。理论上,上述专利通过多级增加校验码长度,能够以一定的存储容量损失,换取固态硬盘更长的使用寿命。然而,对固态硬盘的控制器提出了很高的要求,特别是对于固件形式的ECC模块内容,实现逻辑不宜过于复杂,多级校验码实现起来硬件开销很大,如果实施中国专利CN105280239B提供的方法,需要对控制器进行复杂的修改。
技术实现思路
为此,本专利技术提供一种固态硬盘控制器装置及固态硬盘数据校验方法,以力图解决或者至少缓解上面存在的至少一个问题。根据本专利技术实施例的一个方面,提供了一种固态硬盘数据校验方法,适于在计算设备中执行,方法包括:在固态硬盘运行过程中,控制器监测固态硬盘的有效信息区域的比特错误位数;每当所述控制器确定所述比特错误位数达到预先设置的ECC算法所对应的可纠错位数门限时,将ECC区域映射的有效信息区域的长度缩小预设步长;所述控制器根据缩小后的每个ECC区域映射的有效信息区域的长度,对有效信息区域数据进行位移,新增ECC区域,以及重新计算每个ECC区域的校验值。较佳地,还包括:根据预先确定的硬盘工作比特错误公式,预设的两次缩小步长之间的时间间隔计算出所述预设步长,其中,所述硬盘工作比特错误公式,记录硬盘写入次数、存储时间等各种硬盘使用参数与硬盘比特错误位数之间的关系,用于在设定硬盘在所述预设的两次缩小步长之间的时间间隔内的写入次数、存储时间等参数后,计算出所述预设的两次缩小步长之间的时间间隔内对应的硬盘比特错误位数的变化值,再根据硬盘比特错误位数的变化值与所述ECC算法所对应的可纠错位数门限计算出所述预设步长。较佳地,还包括:所述控制器预先根据当前的固态硬盘容量,当前的每个ECC区域映射的有效信息区域的长度和所述预设步长,计算将每个ECC区域映射的有效信息区域的长度缩小预设步长后,新增的ECC区域个数;根据所述新增的ECC区域个数,和预设的ECC区域长度,计算预留的用于新增的ECC区域的空间;在向上层应用汇报可用空间时,将所述当前的固态硬盘容量减去所述预留的用于新增的ECC区域的空间得到的数值汇报给上层应用。较佳地,重新计算每个ECC区域的校验值,包括:为每个有效信息区域补充预设步长个数的0或1后,计算对应的每个ECC区域的校验值。较佳地,还包括:如果为每个有效信息区域补充预设步长个数的0后计算对应的每个ECC区域的校验值,则在数据校验期间,为每个有效信息区域补充预设步长个数的0;如果为每个有效信息区域补充预设步长个数的1后计算对应的每个ECC区域的校验值,则在数据校验期间,为每个有效信息区域补充预设步长个数的1。较佳地,还包括:所述控制器在缓存中维护一张包括多个块或页的有效信息区域的比特错误位数和有效信息区域长度的记录表,每当所述控制器确定所述比特错误位数达到预先设置的ECC算法所对应的可纠错位数门限时,将ECC区域映射的有效信息区域的长度缩小预设步长的操作,是局限在比特错误位数达到预先设置的ECC算法所对应的可纠错位数门限的块或页内执行。较佳地,还包括:所述控制器在对任一块或页写入数据时,获取所述记录表中的有效信息区域长度的记录,根据所述记录表中的有效信息区域长度的记录补充对应个数的0或1,计算对应的ECC区域的校验值;所述控制器在对任一块或页进行校验时,获取所述记录表中的有效信息区域长度的记录,根据所述记录表中的有效信息区域长度的记录补充对应个数的0或1,并对有效信息区域进行校验。较佳地,所述控制器预先计算各个块或页内用于新增的ECC区域的空间;在向上层应用汇报可用空间时,将各个块或页内的容量减去所述用于新增的ECC区域的空间得到的数值求和并汇报给上层应用。根据本专利技术实施例的一个方面,提供固态硬盘控制器装置,包括:监测单元,用于在固态硬盘运行过程中,监测固态硬盘的有效信息区域的比特错误位数;长度控制单元,用于每当确定所述比特错误位数达到预先设置的ECC算法所对应的可纠错位数门限时,将ECC区域映射的有效信息区域的长度缩小预设步长;操作单元,用于根据缩小后的每个ECC区域映射的有效信息区域的长度,对有效信息区域数据进行位移,新增ECC区域,以及重新计算每个ECC区域的校验值。较佳地,所述长度控制单元用于确定所述预设步长时,具体用于:根据预先确定的硬盘工作比特错误公式,预设的两次缩小步长之间的时间间隔计算出所述预设步长,其中,所述硬盘工作比特错误公式,记录硬盘写入次数、存储时间等各种硬盘使用参数与硬盘比特错误位数之间的关系,用于在设定硬盘在所述预设的两次缩小步长之间的时间间隔内的写入次数、存储时间等参数后,计算出所述预设的两次缩小步长之间的时间间隔内对应的硬盘比特错误位数的变化值,再根据硬盘比特错误位数的变化值与所述ECC算法所对应的可纠错位数门限计算出所述预设步长。较佳地,还包括:容量计算单元,用于预先根据当前的固态硬盘容量,当前的每个ECC区域映射的有效信息区域的长度和所述预设步长,计算将每个ECC区域映射的有效信息区域的长度缩小预设步长后,新增的ECC区域个数;根据所述新增的ECC区域个数,和预设的ECC区域长度,计算预留的用于新增的ECC区域的空间;在向上层应用汇报可用空间时,将所述当前的固态硬盘容量减去所述预留的用于新增的ECC区域的空间得到的数值汇报给上层应用。较佳地,所述操作单元用于重新计算每个ECC区域的校验值时,包括:为每个有效信息区域补充预设步长个数的0或1后,计算对应的每个ECC区域的校验值。较佳地,所述操作单元还用于:如果为每个有效信息区域补充预设步长个数的0后计算对应的每个ECC区域的校验值,则在数据校验期间,为每个有效信息区域补充预设步长个数的0;如果为每个有效信息区域补充预设步长个数的1后计算对应的每个ECC区域的校验值,则在数据校验期间,为每个有效信息区域补充预设步长个数的1。较佳地,还包括:维护单元,用于在缓存中维护一张包括多个块或页的有效信息区域的比特错误位数和有效信息区域长度的记录表;所述长度控制单元针对所述比特错误位数达到预先设置的ECC算法所对应的可纠错位数门限的块或页,将ECC区域映射的有效信息区域的长度缩小预设步长;所述操作单元针对所述比特错误位数达到预先设置的ECC算法所对应的可纠错位数门限的块或页,根据缩小后的每个ECC区域映射的有效信息区域的长度,对有效信息区域数据进行位移,新增ECC区域,以及重新计本文档来自技高网...

【技术保护点】
1.一种固态硬盘数据校验方法,其特征在于,包括:在固态硬盘运行过程中,控制器监测固态硬盘的有效信息区域的比特错误位数;每当所述控制器确定所述比特错误位数达到预先设置的ECC算法所对应的可纠错位数门限时,将ECC区域映射的有效信息区域的长度缩小预设步长;所述控制器根据缩小后的每个ECC区域映射的有效信息区域的长度,对有效信息区域数据进行位移,新增ECC区域,以及重新计算每个ECC区域的校验值。

【技术特征摘要】
1.一种固态硬盘数据校验方法,其特征在于,包括:在固态硬盘运行过程中,控制器监测固态硬盘的有效信息区域的比特错误位数;每当所述控制器确定所述比特错误位数达到预先设置的ECC算法所对应的可纠错位数门限时,将ECC区域映射的有效信息区域的长度缩小预设步长;所述控制器根据缩小后的每个ECC区域映射的有效信息区域的长度,对有效信息区域数据进行位移,新增ECC区域,以及重新计算每个ECC区域的校验值。2.如权利要求1所述的方法,其特征在于,确定所述预设步长的步骤包括:根据预先确定的硬盘工作比特错误公式,预设的两次缩小步长之间的时间间隔计算出所述预设步长,其中,所述硬盘工作比特错误公式,记录硬盘写入次数、存储时间等各种硬盘使用参数与硬盘比特错误位数之间的关系,用于在设定硬盘在所述预设的两次缩小步长之间的时间间隔内的写入次数、存储时间等参数后,计算出所述预设的两次缩小步长之间的时间间隔内对应的硬盘比特错误位数的变化值,再根据硬盘比特错误位数的变化值与所述ECC算法所对应的可纠错位数门限计算出所述预设步长。3.如权利要求1所述的方法,其特征在于,还包括:所述控制器预先根据当前的固态硬盘容量,当前的每个ECC区域映射的有效信息区域的长度和所述预设步长,计算将每个ECC区域映射的有效信息区域的长度缩小预设步长后,新增的ECC区域个数;根据所述新增的ECC区域个数,和预设的ECC区域长度,计算预留的用于新增的ECC区域的空间;在向上层应用汇报可用空间时,将所述当前的固态硬盘容量减去所述预留的用于新增的ECC区域的空间得到的数值汇报给上层应用。4.如权利要求1所述的方法,其特征在于,所述重新计算每个ECC区域的校验值,包括:为每个有效信息区域补充预设步长个数的0或1后,计算对应的每个ECC区域的校验值。5.如权利要求4所述的方法,其特征在于,还包括:如果为每个有效信息区域补充预设步长个数的0后计...

【专利技术属性】
技术研发人员:杜明书马晓丽杜利强
申请(专利权)人:河南文正电子数据处理有限公司
类型:发明
国别省市:河南,41

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

1