一种提升SSD在垃圾回收期间读性能的方法技术

技术编号:14945523 阅读:128 留言:0更新日期:2017-04-01 11:56
本发明专利技术公开了一种提升SSD在垃圾回收期间读性能的方法,包括:在各通道间以数据页为条带建立RAID;处理读请求时,如果读请求访问的数据页所在的晶圆(die)没有正在进行擦除操作,此时读请求正常响应;如果读请求访问的数据页所在的晶圆(die)正被擦除操作所占用,发生短暂失效,此时利用通道间的所述RAID通过读取同一条带上其他数据页的数据进行RAID重建,从而及时响应该读请求。本发明专利技术的方法利用SSD中的RAID技术,降低基于NAND Flash的固态存储设备中垃圾回收操作造成的系统时延,解决系统正常读请求和垃圾回收擦除操作的冲突问题。

【技术实现步骤摘要】

本专利技术属于固态盘(SSD)读写性能控制
,具体涉及一种提升SSD在垃圾回收期间读性能的方法
技术介绍
近些年来,基于NANDFlash的固态硬盘(SolidStateDrive,SSD)由于性能高、功耗低、可靠性高、抗震性好、无噪声等诸多优点获得广泛的应用。但是SSD在使用一段时间之后,其访问性能会有显著下降。垃圾回收对SSD的性能有显著的影响,通过对IntelSSDDCP3700(800G)进行测试发现,针对读写粒度为4KB,读写比例是7:3的随机混合请求。当IntelSSD是空盘时,其IOPS能达到20万,读写带宽能达到800MB/s;当对IntelSSD进行数据预埋和碎片化处理后,其IOPS下降到9W,读写带宽下降到360MB/s。主要原因是,在使用一段时间后,SSD内部垃圾回收的频繁触发,降低了SSD的读写性能。由于闪存芯片具有写前擦除的特性,更新数据时通常采用异地更新策略,这会产生大量无效页。为保证SSD的正常使用,需要对无效页进行垃圾回收操作,擦除选择的目标块以便再使用。由于闪存芯片的读写粒度和擦除粒度不同,在擦除一个块之前,垃圾回收一般涉及到有效数据的迁移,在数据迁移时,数据的源物理页和目的物理页所处的芯片(chip)和通道(channel)会被占用。在执行擦除操作时,虽然不会占用通道资源,但擦除对象所处的晶圆(die)会被占用。因此,垃圾回收过程中SSD的读写性能将受到较大影响。如图3所示,一个完整的垃圾回收操作包括三步:1)选择要回收的目标块,2)进行有效数据的迁移,3)擦除目标块。在擦除目标块时,整个die将被占用,容易造成请求冲突,不能及时响应外界请求。写请求的冲突可以通过缓存和预留空间等方式解决,相较之下读冲突更难处理,一般只能被迫等待擦除操作完成,另外同步的读操作不仅影响本通道(channel)的请求,还会影响各个通道(channel)的响应。比较Flash的擦除操作和读操作时间,擦除操作时间为ms级,读操作时间为us级,两者时间比接近100:1;并且随着SSD容量的增加,擦除块大小进一步变大,两者的时间相差会越来越大。综上所述,对读请求而言,被迫等待擦除操作的完成会显著降低SSD的访问性能。因为垃圾回收涉及到有效数据的迁移和块擦除操作,占用大量系统资源,为尽可能减少垃圾回收对SSD访问性能的影响,目前存在充分利用系统空闲资源进行垃圾回收或通过最大程度提高垃圾回收效率的垃圾回收的方案,但是这些方案中垃圾回收始终被视为一个不可拆分整体,缺少垃圾回收对SSD正常请求冲突的考虑。为解决上述问题,现有技术中出现了一种可中断的垃圾回收机制,其在有效数据迁移期间,每迁移一个数据页能够中断正在进行的垃圾回收响应正常的读写请求。该方案能够在一定程度上解决垃圾回收和正常请求的冲突,但是其中断时间选择有局限性,只能在数据迁移中发生,没有考虑垃圾回收过程中耗时最长的擦除操作和读写请求的冲突。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种提升SSD在垃圾回收期间的读性能的方法,其通过在固态盘通道间搭建RAID,从而能够及时响应读请求,解决目前的SSD在垃圾回收期间读请求性能低,克服现有技术中存在的垃圾回收过程中耗时最长的擦除操作和读写请求的冲突缺陷。为实现上述目的,按照本专利技术,提供一种提升SSD在垃圾回收期间读性能的方法,包括:在各通道间以数据页为条带建立RAID;处理读请求时,如果读请求访问的数据页所在的晶圆(die)没有进行擦除操作,此时读请求正常响应;如果读请求访问的数据页所在的晶圆(die)正被擦除操作所占用,发生短暂失效,此时利用通道间的所述RAID通过读取同一条带上其他数据页的数据进行RAID重建,从而及时响应该读请求。作为本专利技术的进一步优选,所述RAID重建即通过RAID条带中的其他数据页用异或的方式来恢复所述读请求所需要读取的数据页。作为本专利技术的进一步优选,在进行RAID重建过程中若擦除操作完成,晶圆(die)可重新被访问,则消除所述RAID重建痕迹,正常响应读请求。作为本专利技术的进一步优选,各个通道的RAID重建读操作能够并行处理,且不影响该通道上的正常的读写请求,重建读操作完成可以有先后顺序。作为本专利技术的进一步优选,在每次处理写请求时计算或者更新校验数据页数据,所述计算或者更新校验数据页数据包括整个条带第一次写数据、单个数据页第一次写数据、单个数据页更新数据以及整个条带更新数据。作为本专利技术的进一步优选,所述整个条带第一次写数据包括同时向各数据页写数据,校验页数据由各数据页数据做异或运算得到,最后将各数据页和校验页构成一个条带写入闪存。作为本专利技术的进一步优选,所述单个数据页第一次写数据包括向任一条带中的一个新数据页写入数据,首先将原始校验页数据从闪存中读取到DRAM,然后校验页的校验数据与所述新数据页数据异或得到新校验数据,最后将所述新数据页数据和新校验数据写入闪存。作为本专利技术的进一步优选,所述单个数据页更新写数据包括将所述单个数据页的原数据和校验页的原校验数据从闪存中读取出来,然后将所述原数据与新数据按位异或,异或后的结果再与原校验数据按位异或,得到的结果即为新校验数据,最后将新数据与新校验数据写回到闪存中。作为本专利技术的进一步优选,所述整个条带更新写数据包括同时使用新数据更新各数据页,校验页数据由各数据页更新的新数据异或得到,最后将各数据页更新的新数据和新校验页数据写回闪存。按照本专利技术的另一方面,提供一种通过通道间内建RAID响应系统读请求的方法,其步骤如下:1)在各通道间以数据页为条带建立RAID;2)有读请求,置计数器i=1;3)判断该读请求所在的晶圆(die)是否被擦除操作占用,是转步骤4),否步骤转9);4)判断i是否等于1,是则转步骤5),否则转步骤6);5)生成n-1个重建读请求分别挂载到n-1个通道上,读取剩余RAID条带的数据,其中n为通道总数;6)并行处理n-i个通道,依次处理通道上已有的读写请求;7)读取通道上同一条带的相应数据块,每处理一个通道上的重建读请求,i++;8)判断n-i是否等于0,是则转步骤10),否则转步骤3);9)直接读取数据块,清除RAID重建的痕迹,转步骤11);10)根据已有的n-1个数据块,利用RAID5来恢复要读取的数据块;11)响应读请求。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有以下有益效果:(1)本专利技术中,利用SSD内建的RAID,将垃圾回收过程中擦除块所在的die视作短暂失效,类似RAID的降级模式,通过RAID重建的方式来响应读请求,能够有效解决垃圾回收中读冲突。(2)本专利技术中,在通道间搭建RAID,充分利用SSD内部的并行性,因为固态盘的数据读写粒度为一个闪存页,故其条带以页为单位组织。附图说明图1是本专利技术实施例的多通道SSD架构示意图;图2是NANDFlash芯片的内部结构示意图;图3是NANDFlash执行垃圾回收的过程示意图;图4是本专利技术实施例的读写请求处理流程图;图5是本专利技术实施例的SSD通道间搭建RAID5工作原理示意图;图6是本专利技术实施例的方法中针对不同写请求4种计算校验页方式示意图;图7本专利技术实施例的方法中利用RAID5同一条带来重建数据页的示意图本文档来自技高网
...
一种提升SSD在垃圾回收期间读性能的方法

【技术保护点】
一种提升SSD在垃圾回收期间读性能的方法,包括:在各通道间以数据页为条带建立RAID;处理读请求时,如果读请求访问的数据页所在的晶圆(die)没有正在进行擦除操作,此时读请求正常响应;如果读请求访问的数据页所在的晶圆(die)正被擦除操作所占用,发生短暂失效,此时利用通道间的所述RAID通过读取同一条带上其他数据页的数据进行RAID重建,从而及时响应该读请求。

【技术特征摘要】
1.一种提升SSD在垃圾回收期间读性能的方法,包括:在各通道间以数据页为条带建立RAID;处理读请求时,如果读请求访问的数据页所在的晶圆(die)没有正在进行擦除操作,此时读请求正常响应;如果读请求访问的数据页所在的晶圆(die)正被擦除操作所占用,发生短暂失效,此时利用通道间的所述RAID通过读取同一条带上其他数据页的数据进行RAID重建,从而及时响应该读请求。2.根据权利要求1所述的一种提升SSD在垃圾回收期间读性能的方法,其中,所述RAID重建即通过RAID条带中的其他数据页用异或的方式来恢复所述读请求所需要读取的数据页。3.根据权利要求1或2所述的一种提升SSD在垃圾回收期间读性能的方法,其中,在进行RAID重建过程中若所述擦除操作完成,即晶圆(die)可重新被访问,则消除所述RAID重建痕迹,正常响应读请求。4.根据权利要求1至3中任一项所述的一种提升SSD在垃圾回收期间读性能的方法,其中,各个通道的所述RAID重建读操作可并行处理,且不影响该通道上的正常的读写请求。5.根据权利要求1至4中任一项所述的一种提升SSD在垃圾回收期间读性能的方法,其中,在每次处理写请求时计算或者更新校验数据页,所述计算或者更新校验数据页包括整个条带第一次写数据、单个数据页第一次写数据、单个数据页更新数据以及整个条带更新数据。6.根据权利要求5所述的一种提升SSD在垃圾回收期间读性能的方法,其中,所述整个条带第一次写数据包括同时向各数据页写数据,校验页数据由各数据页数据做异或运算得到,最后将各数据页数据和校验页数据构成一个条带写入闪存。7.根据权利要求5或6所述的一种提升SSD在垃圾回收期间读性能的方法,其中,所述单个数据页第一...

【专利技术属性】
技术研发人员:童薇冯丹刘景宁高阳方才华雷霞蒋瑜
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

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

1