一种提高SSD垃圾回收效率的方法技术

技术编号:19056107 阅读:28 留言:0更新日期:2018-09-29 12:02
本发明专利技术公开了一种提高SSD垃圾回收效率的方法,其特征在于预先将每个die都分配若干block,将这些block强制转化为SLC模式,作为缓冲区,在垃圾回收时,将数据迁移块选择在与垃圾回收的目标块不同的die的缓冲区。通过引入该方案,使用cache read/write操作降低了顺序读写时的读时间和写时间,提高了读写带宽;使用SLC block作为存放有效数据的迁移块,利用SLC block相对于TLC block较低的读时间和写时间,提高迁移有效数据的速度;将数据迁移块选择在与GC目标块不同的通道die中,并行操作,充分利用每个通道die的读写带宽。

【技术实现步骤摘要】
一种提高SSD垃圾回收效率的方法
本专利技术涉及存储
,尤其涉及一种提高SSD垃圾回收效率的方法。
技术介绍
由于NANDflash的固有特性,在写入program之前需要进行擦除erase操作,而且erase操作以块block为单位进行,写入是以页Page为单位进行,SSD使用过程中会产生碎片页,需要通过垃圾回收的方式回收失效页。2DMLC颗粒每个block只有256个page,而3DTLC颗粒每个block有768个page,在做垃圾回收GC时3DTLC颗粒的总操作时间远大于2DMLC颗粒SSD的总操作时间,所以造成使用3DTLC颗粒SSD面对HOST的平均响应时间和最大响应时间增大。在释放一个GC目标块时,需要先将TLCblock所有page的数据读出来,再将数据写入到新的数据迁移块,最后再释放GC目标块,进行erase操作。由于3DTLC颗粒本身特性,每个TLCblock有768个page,而2DMLC每个block只有256个page,3DTLC颗粒释放GC目标块时间远大于2DMLC颗粒SSD。图1是现有3DTLCFLASH垃圾回收流程,NANDFlash颗粒具有写前擦除的特性,这样导致大量碎片化的无效页,为保证SSD的正常使用,需要对无效页进行垃圾回收操作,即擦除选定的目标块以供用户再次使用。由于NANDflash的读写颗粒度(以page为单位)和擦除颗粒度(以block为单位)不一样,在擦除一个block之前,需要先将有效数据搬移到新block。主机通过文件系统访问SSD,SSD上设有闪存转换层FTL与文件系统进行交互,闪存转换层FTL上一般设有缓存管理模块、地址映射模块和垃圾回收GC模块。一次完整的GC操作包括三个步骤:1选择需要回收的失效目标块;2迁移目标块中的数据到其他块中;3擦除目标块。图2是现有3DTLCFLASH垃圾回收耗时估算示意图,以3DTLC颗粒为例,现在3DTLC颗粒SSD释放一个GC目标块时,需要先读出目标块中的数据,假设目标块中768个page数据都需要迁移,实测tR时间为70us,NANDflash接口使用ToggleDDR1.0400MT/s,那一个page中16KB数据传输时间为16KB/400MTps,Txfer等于40us,总读出时间为:Ttotalr=768×(Tr+Txfer);现行GC方案中都是选择同一个层plane中的block作为有效数据迁移块,所以在向迁移块中写数据时占用的是同一个通道die的带宽,实测TLCblock写操作时间Tprog为806us,总写入时间为:Ttotalprog=768×(Tprog+Txfer);这样可以算出3DTLC释放一个GC目标块的总时间为:Ttotal=Ttotalr+Ttotalprog=734ms。图3是现有2DMLCFLASH释放一个目标块的总时间估算示意图,以TOSHIBA15nm2DMLC为例,tR为50us,Tprog为1400us,而每个block中只有256个page,Ttotal_r、Ttotal_prog、Ttotal分别为:Ttotalr=256×(Tr+Txfer);Ttotalprog=256×(Tprog+Txfer);Ttotal=Ttotalr+Ttotalprog=392ms。由此可见,2DMLC颗粒释放一个GC目标块使用的时间远小于3DTLC的时间。现有的3DTLC的FLASH垃圾回收效率相比于MLC垃圾回收效率低了很多。
技术实现思路
针对以上缺陷,本专利技术目的在于如何降低3DTLC颗粒SSD释放一个GC目标块的时间。为了实现上述目的,本专利技术提供了一种提高SSD垃圾回收效率的方法,其特征在于预先将每个die都分配若干block,将这些block强制转化为SLC模式,作为缓冲区,在垃圾回收时,将数据迁移块选择在与垃圾回收的目标块不同的die的缓冲区。所述的提高SSD垃圾回收效率的方法,其特征在于将垃圾回收的目标块的有效数据页pageN从NAND存储阵列NANDarray中读出并放入数据寄存器dataregister中,再将数据从dataregister取出放入缓存寄存器中cacheregister中,并将pageN数据从cacheregister搬到系统内存systemmemory的同时,将下一页有效数据pageN+1数据从NANDarray取出搬入dataregister中;由于数据迁移块与目标块属于不同的die,pageN数据传到systemmemory后可立即并行启动将pageN数据写入新块的操作。本专利技术通过引入该方案,使用cacheread/write操作降低了顺序读写时的读时间和写时间,提高了读写带宽;使用SLCblock作为存放有效数据的迁移块,利用SLCblock相对于TLCblock较低的读时间和写时间,提高迁移有效数据的速度;将数据迁移块选择在与GC目标块不同的通道die中,并行操作,充分利用每个通道die的读写带宽。附图说明图1是现有3DTLCFLASH垃圾回收流程;图2是现有3DTLCFLASH垃圾回收耗时估算示意图;图3是现有2DMLCFLASH释放一个目标块的总时间估算示意图;图4是Cacheread的原理示意图;图5是Cache的读或写操作的时间消耗示意图;图6是数据迁移到TLC区域和释放一个目标块的时间估算示意图;图7是数据迁移到SLC区域和释放一个目标块的时间估算示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图4是Cacheread的原理示意图;cacheread的原理是:第一步,先将pageN从NANDarray中取出放入dataregister;第二步,再将pageN从dataregister取出放入cacheregister中;第三步,在将pageN数据从cacheregister搬到systemmemory的同时,将pageN+1数据从NANDarray取出搬入dataregister中,通过并行操作降低读数据的时间。同时,cacheread返回操作完成的ready信号要比normalread早,也就是Tcache_r比Tr小。同理,cacheprogram的操作时间Tcache_prog小于Tprog。图5是Cache的读或写操作的时间消耗示意图;3DTLC的Tcache_r是60us,T_prog是678us,(a)图中normalread的时间流程,只有在read完成NANDR/B信号置为ready时才能进行数据传输;(b)图中cacheread只需要等待前一个page数据进入cacheregister就可以进行数据传输,这样在当前pageN+1搬移到dataregister的过程中可以同时进行pageN从cacheregister传输到systemmomery;(c)图中normalprogram的流程,必须等数据都搬移到cacheregister,才能进行cacheregister到N本文档来自技高网
...

【技术保护点】
1.一种提高SSD垃圾回收效率的方法,其特征在于预先将每个die都分配若干block,将这些block强制转化为SLC模式,作为缓冲区,在垃圾回收时,将数据迁移块选择在与垃圾回收的目标块不同的die的缓冲区。

【技术特征摘要】
1.一种提高SSD垃圾回收效率的方法,其特征在于预先将每个die都分配若干block,将这些block强制转化为SLC模式,作为缓冲区,在垃圾回收时,将数据迁移块选择在与垃圾回收的目标块不同的die的缓冲区。2.根据权利要求1所述的提高SSD垃圾回收效率的方法,其特征在于将垃圾回收的目标块的有效数据页pageN从NAND存储阵列NANDarray中读出并放入数据寄存器dataregister中...

【专利技术属性】
技术研发人员:肖锐
申请(专利权)人:深圳忆联信息系统有限公司
类型:发明
国别省市:广东,44

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

1