一种用于固态存储读策略的控制方法与流程

文档序号:12463819阅读:197来源:国知局
一种用于固态存储读策略的控制方法与流程

本发明涉及电子技术领域,尤其涉及一种用于固态存储读策略的控制方法。



背景技术:

目前,NAND flash由于其大容量,低价格而广泛应用于固态存储领域,但是,又由于NAND介质的一些操作特点,例如基于block的擦除,按物理page写入,按物理page读出数据,在这些特点之上引入了block擦除,page写入以及page读取的latency等问题。

同时,NAND由于其工艺的原因,随着介质使用寿命的增加,在数据读取时,会存在出现一定的错误概率,并且擦除和写入次数越多,读数据出错的概率越大。因此,为了解决NAND介质读出错的问题,使用过程中引入了ECC,即错误纠正码。所谓错误纠正码是在数据写入NAND的过程中,NAND控制器会在数据的后面加入一部分ECC码,当用户数据出错时,控制器的纠错模块会根据ECC码对数据就行纠错。一款固态存储的设计,其ECC纠错能力在其设计之初,其纠错能力即根据ECC码最多可以纠正多少bit的用户数据,就已经确定。随着NAND介质擦除和写入次数的增加,介质会变得更容易出错,即BER会增大,直到会出现用户错误过多,ECC码不能纠正用户错误的情况,即UNECC。当NAND介质出现UNECC时,目前固态存储业内广泛的用法是重复进行多次的读操作,看数据能否经过ECC把数据成功纠正。当经过多次尝试仍然不能纠正,才进入其他的处理流程或者放弃数据向主机返回UNECC。



技术实现要素:

本发明的目的在于克服上述现有技术的不足之处,而提供一种用于固态存储读策略的控制方法。它是一种高效的读策略的控制方法,通过固件和硬件结合的方式,可以快速解决NAND数据UNECC的问题。

为了实现上述目的,本发明提供了一种用于固态存储读策略的控制方法,其特征在于:在固态存储设备中加入RAID的算法控制器,当数据经过控制器发向NAND介质时,会产生RAID code保存在NAND介质中,在数据产生UNECC时,固件不对数据进行重复读取,不进行ECC侦错尝试,而是直接通过硬件启动RAID模块,根据进行RAID算法的用户数据和RAID code将出错数据进行恢复。

在上述技术方案的基础上,所述RAID的算法控制器采用RAID5模式。

在上述技术方案的基础上,所述RAID的算法控制器通过异或运算产生RAID数据。

在上述技术方案的基础上,所述RAID的算法控制器通过同一条带的其他用户数据和RAID数据进行反异或运算,算出位于出错通路的写入的用户数据,然后再直接将正确用户数据传递给用户。

本发明具有的优点如下:本发明是一种高效的读策略的控制方法,通过固件和硬件结合的方式,可以快速解决NAND数据UNECC的问题。在固态存储设备中加入RAID的算法控制器,当数据产生UNECC时,固件不对数据进行重复读取,不进行ECC侦错尝试,而是直接通过硬件启动RAID模块,根据进行RAID算法的用户数据和RAID code将出错数据进行恢复。本发明的控制方法简单高效,可以大幅延长固态存储设备的使用寿命。

附图说明

图1为本发明的数据写入示意图。

图2为本发明的数据恢复示意图。

具体实施方式

下面结合附图详细说明本发明的实施情况,但它并不构成对本发明的限定,仅做举例而已。同时通过说明,本发明的优点将变得更加清楚和容易理解。

如图1、图2所示,一种用于固态存储读策略的控制方法,其特征在于:在固态存储设备中加入RAID的算法控制器,当数据经过控制器发向NAND介质时,会产生RAID code保存在NAND介质中,在数据产生UNECC时,固件不对数据进行重复读取,不进行ECC侦错尝试,而是直接通过硬件启动RAID模块,根据进行RAID算法的用户数据和RAID code将出错数据进行恢复。进一步地,RAID的算法控制器采用RAID5模式。RAID的算法控制器通过异或运算产生RAID数据。

如图1所示,同一条带用户数据经过RAID的算法控制器,将通过异或运算产生RAID数据,因此在数据通路中除了正常的用户数据,还会增加一部分RAID数据,一起写入NAND flash介质中。

如图2所示,每一通路的用户数据在读操作过程中出现不可纠正错误,RAID的算法控制器可以直接通过同一条带的其他用户数据和RAID数据进行反异或运算,算出位于出错通路的写入的用户数据,然后再直接将正确用户数据传递给用户。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明精神和原则之内所做的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

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