一种优化页级闪存转换层的方法技术

技术编号:15616457 阅读:50 留言:0更新日期:2017-06-14 03:28
本发明专利技术公开了一种优化页级闪存转换层的方法,属于数据存储领域。本发明专利技术利用SLC闪存支持部分写的特性,采用原地日志写的机制减少闪存映射页访问的开销。该方法将闪存映射页预留一小部分区域作为日志区。当闪存映射页被更新时,将缓存中属于该映射页的所有脏映射条目构建为一个日志单元,并使用部分写入机制追加写到映射页的日志区。当日志区写满或写入次数超过一定阈值时,将闪存映射页中的映射条目和日志区的条目进行合并操作,并写入到新的闪存映射页,此时新的映射页中的日志区为空,可以接收新的映射页更新操作并再次使用原地日志写机制。本发明专利技术通过减少闪存映射页访问带来的开销,达到提高闪存固态盘的性能和寿命的目的。

【技术实现步骤摘要】
一种优化页级闪存转换层的方法
本专利技术属于数据存储领域,更具体地,涉及一种优化页级闪存转换层的方法。
技术介绍
NAND闪存(FlashMemory)具有体积小、低功耗、高性能等优点,因此作为一种存储介质被广泛应用于嵌入式系统、笔记本电脑、数据中心等。闪存按照存储密可以分为SLC(Single-LevelCell),MLC(Multi-LevelCell)和TLC(Triple-LevelCell)等,其中SLC的性能和可靠性最高,因此被广泛应用于企业级和工业级固态盘。然而,闪存介质本身也存在着一些独特的限制,例如不支持覆盖写、读写操作按页为单位执行,而擦除操作按块执行(每个块包含多个页)、以及擦出次数有限等等。为了克服这些限制,闪存转换层(FlashTranslationLayer,FTL)被用来管理闪存介质,使应用程序可以方便的对闪存介质进行传统的基于块的读写操作。由于闪存页不能直接覆盖写,而是需要先进行擦除。闪存的擦除操作时延较大,因此闪存转换层通常会将被更新的数据写到新的闪存页,而将旧的闪存页标记为无效页。这就需要闪存转换层能够将存储中的逻辑地址映射到闪存中的物理地址,这个过程被称为地址转换。随着无效页的增加,闪存中的空闲块就会不断变少,因此闪存转换层需要进行垃圾回收,就是将块中的有效页拷贝到新的空闲块,然后对旧的闪存块执行擦除操作。地址转换和垃圾回收对闪存的性能和寿命都起着关键的作用。闪存转换层中的地址映射按照粒度的不同,可以分为页级映射、块级映射、以及混合映射。对于页级映射的闪存转换层,每个逻辑页可以灵活的映射到闪存中的任何物理页,不仅能够提高闪存物理块的利用率,而且减小了垃圾回收的开销,因此得到广泛的应用。然而采用页级映射会使得地址映射表过于庞大,出于性能成本效益以及能耗的考虑,现代的页级闪存转换层算法通常利用小容量的动态随机存取存储器(DynamicRandomAccessMemory,DRAM)或静态随机存取存储器(StaticRandomAccessMemory,SRAM)作为映射缓存,用来存放最近访问的映射条目从而加速地址转换过程。而整体的地址映射表则被持久化地存放在闪存中的物理页之中,这些页被称为闪存映射页。然而,缓存替换以及垃圾回收等操作会带来大量的闪存映射页读取和更新操作,这些访问不仅影响了固态盘的性能,而且会造成额外的擦除操作进而降低固态盘的寿命。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种优化页级闪存转换层的方法,其目的在于利用SLC闪存支持部分写的特性,采用原地日志写的机制减少闪存映射页访问的开销,从而提高固态盘的性能和寿命。为实现上述目的,按照本专利技术的一个方面,提供了一种优化页级闪存转换层的方法,该方法包括以下步骤:(1)当一个I/O请求到达时,在映射表缓存中查找该请求对应的闪存数据页的物理地址,如果没有在缓存中找到则进入步骤(2),否则跳转到步骤(13);(2)判断缓存空间是否已满,若是则进入步骤(3),否则跳转到步骤(9);(3)根据缓存置换算法选择将要被逐出缓存的目标缓存单元,并判断该缓存单元是否含有脏映射条目,若有则进入步骤(4),否则进入步骤(8);(4)从全局映射目录中查找脏映射条目所在的映射页地址及映射页内日志区的信息;(5)判断是否日志区空间不足或日志区写入次数超过写入阈值,若是则进入步骤(6),否则跳转到步骤(7);所述日志区空间不小于闪存映射页的12.5%,不大于闪存映射页的25%,优选值为闪存映射页的25%;所述写入阈值根据闪存颗粒的供应厂商设定;(6)先将日志中的映射条目的映射关系更新到映射区中,之后将脏映射条目的映射关系更新到映射区中,最后所有映射条目写入到新分配的闪存映射页,然后将该页的日志写入次数清零,并更新缓存中全局转换目录中的映射页地址;之后执行步骤(8);(7)将映射页在缓存中的所有脏映射条目构建一个日志单元写入映射页的日志区,然后将日志写入次数加1;(8)释放缓存单元从而回收缓存空间;(9)从全局转换目录中查找该请求映射条目所在的闪存映射页物理地址,并将该页读入临时缓存;(10)判断该闪存映射页是否含有该映射条目的更新日志,若有则进入步骤(11),否则跳转到步骤(12);(11)将日志区中的最新版本映射条目加载到映射表缓存;执行步骤(13);(12)将对应的映射条目加载到映射表缓存;(13)如果上层请求为读请求则进入步骤(14),否则跳转到步骤(15);(14)根据缓存中的映射信息读取闪存数据页返回给上层,请求结束;(15)分配新的闪存数据页进行写入操作,并更新映射表缓存中的映射条目,请求结束。进一步地,所述脏映射条目具体指在缓存内被修改过映射关系的映射条目,但是这个修改的映射关系并没有被更新到闪存映射页。进一步地,所述闪存映射页被划分出一部分区域作为日志区,用于写入脏映射条目,剩下的区域定为映射区,用于保存映射条目。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有以下技术特征及有益效果:(1)本专利技术将缓存脏映射条目批量写回闪存映射页,从而减少了闪存映射页的写入次数;(2)本专利技术利用SLC闪存支持部分写入的特性,使用原地日志写技术代替传统FTL算法中的非原地写机制,从而减少了闪存映射页垃圾回收的开销;(3)综合以上原因,本专利技术能够提升固态盘的性能和寿命。附图说明图1是本专利技术方法的流程图;图2是本专利技术方法中闪存映射页结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。如图1所示,本专利技术方法的流程包括以下步骤:(1)当一个I/O请求到达时,在映射表缓存中查找该请求对应的闪存数据页的物理地址,如果没有在缓存中找到则进入步骤(2),否则跳转到步骤(13);(2)判断缓存空间是否已满,若是则进入步骤(3),否则跳转到步骤(9);(3)根据缓存置换算法选择将要被逐出缓存的目标缓存单元,并判断该缓存单元是否含有脏映射条目,若有则进入步骤(4),否则进入步骤(8);(4)从全局映射目录中查找脏映射条目所在的映射页地址及映射页内日志区的信息;(5)判断是否日志区空间不足或日志区写入次数超过写入阈值,若是则进入步骤(6),否则跳转到步骤(7);所述日志区空间不小于闪存映射页的12.5%,不大于闪存映射页的25%,优选值为闪存映射页的25%;所述写入阈值根据闪存颗粒的供应厂商设定;(6)先将日志中的映射条目的映射关系更新到映射区中,之后将脏映射条目的映射关系更新到映射区中,最后所有映射区中映射条目写入到新分配的闪存映射页,然后将该页的日志写入次数清零,并更新缓存中全局转换目录中的映射页地址;之后执行步骤(8);(7)将映射页在缓存中的所有脏映射条目构建一个日志单元写入映射页的日志区,然后将日志写入次数加1;(8)释放缓存单元从而回收缓存空间;(9)从全局转换目录中查找该请求映射条目所在的闪存映射页物理地址,并将该页读入临时缓存;(10)判断该闪存映射页是否含有该映射条目的更新日本文档来自技高网
...
一种优化页级闪存转换层的方法

【技术保护点】
一种优化页级闪存转换层的方法,其特征在于,该方法包括以下步骤:(1)当一个I/O请求到达时,在映射表缓存中查找该请求对应的闪存数据页的物理地址,如果没有在缓存中找到则进入步骤(2),否则跳转到步骤(13);(2)判断缓存空间是否已满,若是则进入步骤(3),否则跳转到步骤(9);(3)根据缓存置换算法选择将要被逐出缓存的目标缓存单元,并判断该缓存单元是否含有脏映射条目,若有则进入步骤(4),否则进入步骤(8);(4)从全局映射目录中查找脏映射条目所在的映射页地址及映射页内日志区的信息;(5)判断是否日志区空间不足或日志区写入次数超过写入阈值,若是则进入步骤(6),否则跳转到步骤(7);(6)先将日志中的映射条目的映射关系更新到映射区中,之后将脏映射条目的映射关系更新到映射区中,最后所有映射区中映射条目写入到新分配的闪存映射页,然后将该页的日志写入次数清零,并更新缓存中全局转换目录中的映射页地址;之后执行步骤(8);(7)将映射页在缓存中的所有脏映射条目构建一个日志单元写入映射页的日志区,然后将日志写入次数加1;(8)释放缓存单元从而回收缓存空间;(9)从全局转换目录中查找该请求映射条目所在的闪存映射页物理地址,并将该页读入临时缓存;(10)判断该闪存映射页是否含有该映射条目的更新日志,若有则进入步骤(11),否则跳转到步骤(12);(11)将日志区中的最新版本映射条目加载到映射表缓存;执行步骤(13);(12)将对应的映射条目加载到映射表缓存;(13)如果上层请求为读请求则进入步骤(14),否则跳转到步骤(15);(14)根据缓存中的映射信息读取闪存数据页返回给上层,请求结束;(15)分配新的闪存数据页进行写入操作,并更新映射表缓存中的映射条目,请求结束。...

【技术特征摘要】
1.一种优化页级闪存转换层的方法,其特征在于,该方法包括以下步骤:(1)当一个I/O请求到达时,在映射表缓存中查找该请求对应的闪存数据页的物理地址,如果没有在缓存中找到则进入步骤(2),否则跳转到步骤(13);(2)判断缓存空间是否已满,若是则进入步骤(3),否则跳转到步骤(9);(3)根据缓存置换算法选择将要被逐出缓存的目标缓存单元,并判断该缓存单元是否含有脏映射条目,若有则进入步骤(4),否则进入步骤(8);(4)从全局映射目录中查找脏映射条目所在的映射页地址及映射页内日志区的信息;(5)判断是否日志区空间不足或日志区写入次数超过写入阈值,若是则进入步骤(6),否则跳转到步骤(7);(6)先将日志中的映射条目的映射关系更新到映射区中,之后将脏映射条目的映射关系更新到映射区中,最后所有映射区中映射条目写入到新分配的闪存映射页,然后将该页的日志写入次数清零,并更新缓存中全局转换目录中的映射页地址;之后执行步骤(8);(7)将映射页在缓存中的所有脏映射条目构建一个日志单元写入映射页的日志区,然后将日志...

【专利技术属性】
技术研发人员:冯丹李楚王芳华宇周炜
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1