一种固态硬盘发现弱块的方法及其系统与流程

文档序号:17252965发布日期:2019-03-30 09:10阅读:782来源:国知局
一种固态硬盘发现弱块的方法及其系统与流程

本发明涉及固态硬盘的弱块技术领域,更具体地说是指一种固态硬盘发现弱块的方法及其系统。



背景技术:

在固态硬盘中,由于制造工艺的原因,有些颗粒可能存在弱块。弱块(weakblock)是指颗粒中的存储块(block),刚开始使用时是好的,但是经过一段时间的磨损,擦除次数(pecycle)达到一定的值,远小于nand颗粒说明(spec)中规定的最大擦除次数(pecycle),会出现读取数据出错的情况,由于弱块会在使用固态硬盘的过程中出现,需要实时检测出弱块,才能保证数据的一致性。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供一种固态硬盘发现弱块的方法及其系统。

为实现上述目的,本发明采用于下技术方案:

一种固态硬盘发现弱块的方法,包括以下步骤:

s1,存储块发生读差错;

s2,判断此存储块是否已写满;若是,则进入s3;若不是,则进入s6;

s3,判断此存储块当前擦除次数的值是否等于记录值a再加1;若是,则进入s4;若不是,则进入s5;

s4,记录当前擦除次数的值为a加1,设置块出错变量值为2,并判定此存储块为弱块;

s5,记录当前擦除次数值为a,并设置块出错变量值为1;

s6,结束。

其进一步技术方案为:所述s1之前,还包括:对存储块进行写入操作。

其进一步技术方案为:所述s4包括:

s41,记录当前擦除次数的值为a加1,设置块出错变量值为2;

s42,判定此存储块为弱块。

其进一步技术方案为:所述s4之后,还包括:将弱块加入到坏块表进行处理。

一种固态硬盘发现弱块的系统,包括发生单元,第一判断单元,第二判断单元,记录设置判定单元,记录设置单元,及结束单元;

所述发生单元,用于存储块发生读差错;

所述第一判断单元,用于判断此存储块是否已写满;

所述第二判断单元,用于判断此存储块当前擦除次数的值是否等于记录值a再加1;

所述记录设置判定单元,用于记录当前擦除次数的值为a加1,设置块出错变量值为2,并判定此存储块为弱块;

所述记录设置单元,用于记录当前擦除次数值为a,并设置块出错变量值为1;

所述结束单元,用于结束操作。

其进一步技术方案为:所述记录设置判定单元包括记录设置模块和判定模块;

所述记录设置模块,用于记录当前擦除次数的值为a加1,设置块出错变量值为2;

所述判定模块,用于判定此存储块为弱块。

其进一步技术方案为:还包括写入单元,用于对存储块进行写入操作。

其进一步技术方案为:还包括处理单元,用于将弱块加入到坏块表进行处理。

本发明与现有技术相比的有益效果是:通过在使用固态硬盘的过程中,检测发现弱块的存在,更好地保证数据的一致性,有助于提高固态硬盘的性能。

下面结合附图和具体实施例对本发明作进一步描述。

附图说明

图1为本发明一种固态硬盘发现弱块的方法流程图;

图2为图1的使用示意图;

图3为本发明一种固态硬盘发现弱块的系统方框图。

10写入单元20发生单元

30第一判断单元40第二判断单元

50记录设置判定单元51记录设置模块

52判定模块60记录设置单元

70结束单元80处理单元

具体实施方式

为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。

如图1到图3所示的具体实施例,其中,如图1至图2所示,本发明公开了一种固态硬盘发现弱块的方法,包括以下步骤:

s1,存储块发生读差错;

s2,判断此存储块是否已写满;若是,则进入s3;若不是,则进入s6;

s3,判断此存储块当前擦除次数的值是否等于记录值a再加1;若是,则进入s4;若不是,则进入s5;

s4,记录当前擦除次数的值为a加1,设置块出错变量值为2,并判定此存储块为弱块;

s5,记录当前擦除次数值为a,并设置块出错变量值为1;

其中,在s1之前,还包括:对存储块进行写入操作。

其中,s4包括:

s41,记录当前擦除次数的值为a加1,设置块出错变量值为2;

s42,判定此存储块为弱块。

其中,在s4之后,还包括:将弱块加入到坏块表进行处理。

如图2所示,一个存储块(block)被填了两次,并且两次是接连的,连续的;一个填满的存储块(block)在下次使用之前会被擦除,故可以使用存储块(block)的擦除次数(ec)的变化来间接表示存储块(block)被填的次数,存储块(block)被擦除,擦除次数(ec)增长,说明之前存储块(block)已被填写。当一个存储块(block)不是写入点的存储块(block),便认为是填满数据的存储块(fulldatablock),另外有必要记录在连续不同的擦除次数(ec)条件下,同一存储块(block)出现读出错(uecc)的次数,若擦除次数(ec)值不变,只记录一次即可,可用块出错变量值(blk_err_cnt)变量来表示;若blk_err_cnt等于2,则认为是弱块。

其中,当存储块出现了读出错,且存储块(block)被填满后,记录此存储块(block)的当前擦除次数(ec)为a和设置块出错变量值(blk_err_cnt)为1;该存储块(block)经过擦除后再次被填满,又出现了读出错,检测到当前擦除次数(ec)为a+1,则设置块出错变量值(blk_err_cnt)为2,这个block判定为弱块。

如图3所示,本发明公开了一种固态硬盘发现弱块的系统,包括发生单元20,第一判断单元30,第二判断单元40,记录设置判定单元50,记录设置单元60,及结束单元70;

发生单元20,用于存储块发生读差错;

第一判断单元30,用于判断此存储块是否已写满;

第二判断单元40,用于判断此存储块当前擦除次数的值是否等于记录值a再加1;

记录设置判定单元50,用于记录当前擦除次数的值为a加1,设置块出错变量值为2,并判定此存储块为弱块;

记录设置单元60,用于记录当前擦除次数值为a,并设置块出错变量值为1;

结束单元70,用于结束操作。

其中,记录设置判定单元50包括记录设置模块51和判定模块52;

记录设置模块51,用于记录当前擦除次数的值为a加1,设置块出错变量值为2;

判定模块52,用于判定此存储块为弱块。

其中,固态硬盘发现弱块的系统还包括写入单元10,用于对存储块进行写入操作。

其中,固态硬盘发现弱块的系统还包括处理单元80,用于将弱块加入到坏块表进行处理。

本发明通过读取接连两次被填满的同一个存储块,若两次填满的存储块都发生了读出错,则判定此存储块是弱块。

本发明通过在使用固态硬盘的过程中,检测发现弱块的存在,更好地保证数据的一致性,有助于提高固态硬盘的性能。

上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。

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