一种RAID的实施方法及SSD与流程

文档序号:14008043阅读:265来源:国知局
一种RAID的实施方法及SSD与流程

本发明涉及固态硬盘控制技术,特别涉及一种raid的实施方法及ssd。



背景技术:

ssd(固态硬盘)已经被广泛应用于各种场合,随着技术的发展,颗粒已经从2dnandflash发展到3dnandflash,性能也已经达到3.2gbps。

基于nandflash的ssd为提高可靠性,延长使用寿命都会使用纠错算法,从bch到现在的ldpc,纠错算法也在不断发展。为构建大容量、高性能和高可靠的存储系统,ssd中还会使用磁盘冗余阵列(raid)技术。传统ssd使用的raid在读出错时需要固件进行大量干预。

图1是现有ssdraid(4+1)读操作流程图,现有ssd的raid校验信息均匀地分布在ssd上,条带号由逻辑页面lpa计算,当进行数据读取操作时,按如下流程步骤进行操作:

1)主机host通知ssd有新的命令,ssd硬件模块自动将命令信息取到本地fifo;

2)ssd固件查询并获取新的命令;

3)ssd固件将所获取的命令提交给cm(命令管理)模块执行;

4)cm完成预处理(读写分离等),提交算法模块进一步执行;

5)算法模块分配读缓存readbuffer,并发起对后端读请求;算法模块根据数据传输地址,构建数据传输请求;

6)硬件完成数据传输;

7)通知软件数据传输完成,算法模块对后端写入请求;

8)nfc收到写入请求,发起raid操作,等待raid完成进行nandflash写入。

图2是现有的ssd进行垃圾回收时的流程图:

1)从nandflash中读取原始数据page0~2;

2)标记dummypage和paritypage为无效页;

3)将page0~page2和newpage组合进行raid;

4)将newpage0~2、newpage和newparitypage写入nandflash;

5)擦除oldpage0~2、dummypage、oldparitypage;

在整个gc(garbagecollection)过程中,需要进行三个page的读操作,5个page的写操作,5个page对应block的擦操作,总耗时为3tr+5tprog+5ter。消耗时间较长,同时降低了nandflash的寿命。



技术实现要素:

针对以上缺陷,本发明目的是如何降低引入raid机制后造成的写放大问题。

为了解决以上问题本发明提出了一种raid的实施方法,其特征在于固态硬盘控制器nfc接收到写入请求后,判断写入的有效数据是否满足一个条带的有效数据长度,如果满足则计算写入数据的校验数据,并将有效数据和校验数据写入flash的同一个条带中;所述当前写入的有效数据不足一个条带的有效数据,则将有效数据写入nvram(non-volatilerandomaccessmemory)中。

所述的raid的实施方法,其特征在于所述当前写入的有效数据不足一个条带的有效数据时先计算当前有效数据量的部分校验数据,将当前有效数据和部分校验数据写入nvram中,每次写入的前有效数据和部分校验数据合并为部分检验页数据。

所述的raid的实施方法,其特征在于所述当前写入的有效数据不足一个条带的有效数据时,先检索nvram中是否存在数据,如果存在则查找nvram找到适合与当前有效数据合并为一个raid的数据进行合并计算校验数据,将合并后的数据和校验数据写入flash的同一个条带中。

所述的raid的实施方法,其特征在于nvram中存储的数据在垃圾回收操作中进行整理,将部分检验页数据与新写入的数据进行数据合并为一个raid的数据进行合并计算校验数据,将合并后的数据和校验数据写入flash的同一个条带中。

所述的raid的实施方法,其特征在于在向固态硬盘控制器nfc写入数据前,硬盘管理固件中的算法模块在接收到主机写入命令时,先检查nvram中的数据,查找是否存在可与写入命令中的数据拼接为一个条带的数据,如果存在则拼接为同一个条带的有效数据发送给固态硬盘控制器nfc;如果不存在则经过一段时间延时后再检索nvram中的数据,如果还是不存在,则直接将有效数据发送给固态硬盘控制器nfc;如果存在则拼接为同一个条带的有效数据发送给固态硬盘控制器nfc。

一种ssd,其特征在于增加nvram,用于存储部分校验页数据,固态硬盘控制器nfc接收到写入请求后,判断写入的有效数据是否满足一个条带的有效数据长度,如果满足则计算写入数据的校验数据,并将有效数据和校验数据写入flash的同一个条带中;所述当前写入的有效数据不足一个条带的有效数据,则将有效数据写入nvram中;所述当前写入的有效数据不足一个条带的有效数据时先计算当前有效数据量的部分校验数据,将当前有效数据和部分校验数据写入nvram中,每次写入的前有效数据和部分校验数据合并为部分检验页数据。

所述的ssd,其特征在于所述当前写入的有效数据不足一个条带的有效数据时,先检索nvram中是否存在数据,如果存在则查找nvram找到适合与当前有效数据合并为一个raid的数据进行合并计算校验数据,将合并后的数据和校验数据写入flash的同一个条带中。

所述的ssd,其特征在于nvram中存储的数据在垃圾回收操作中进行整理,将部分检验页数据与新写入的数据进行数据合并为一个raid的数据进行合并计算校验数据,将合并后的数据和校验数据写入flash的同一个条带中。

所述的ssd,其特征在于在向固态硬盘控制器nfc写入数据前,硬盘管理固件中的算法模块在接收到主机写入命令时,先检查nvram中的数据,查找是否存在可与写入命令中的数据拼接为一个条带的数据,如果存在则拼接为同一个条带的有效数据发送给固态硬盘控制器nfc;如果不存在则经过一段时间延时后再检索nvram中的数据,如果还是不存在,则直接将有效数据发送给固态硬盘控制器nfc;如果存在则拼接为同一个条带的有效数据发送给固态硬盘控制器nfc。

本发明的有益效果是:通过延迟写入校验信息策略和引入非易失性存储器nvram,降低垃圾回收过程中对数据写入的操作概率,实现提高对主机端响应速度和提升固态硬盘寿命的效果。

附图说明

图1是现有ssdraid(4+1)读操作流程图;

图2是现有的ssd进行垃圾回收时的流程图;

图3是校验信息延迟写入的写入流程图;

图4是改进后垃圾回收操作流程图。

具体实施方式

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

图3是校验信息延迟写入的写入流程图,算法模块收到写入命令时,先检查nvram中的数据,如果和写入命令中的数据能拼接成4page就直接向前端发起数据传输请求;否则使用t.o.机制等待一段时间,如果还是无法拼接,就发起数据传输请求,并向nfc发起写入请求。

nfc收到写入请求后,如果数据量满足4page就进行raid,等待raid完成,将数据和parity写入nandflash;否则只发起当前数据量的raid校验,将当前数据和partialparity写入nvram。

图4是改进后垃圾回收操作流程图,具体流程如下:

1)读取nvram中的page0~page2和部分paritypage;

2)将部分paritypage和newpage组合进行raid;

3)将page0~2、newpage和newparitypage写入nandflash;

4)释放nvram上的buffer资源。

在整个gc过程中需要从nvram读取4个page,并删除4个page,向nandflash写入5个page,由于nvram的读写擦所消耗的时间远小于nandflash消耗的时间,所以可以忽略nvram操作时间,总耗时为5tr。与现有raid方案相比,本发明gc耗时较少。

在硬盘发生故障时,由于nvram是非易失性存储器,在nvram中暂存的数据可用于恢复数据,因此,nvram中的数据在被擦除之前可以成为“半失效页”。

在使用寿命方面,ssd的blockpecycle在3*103~104,而nvram的块擦除次数达到1015,因此,与ssd相比,nvram的损耗可以忽略不计。

通过采用的延迟写入校验信息策略,减少了ssd写入的次数,从而降低了发生gc的概率。

以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。

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