本发明专利技术公开了一种固态盘映射表缓存的管理方法,对于将页映射表存放在闪存上的固态盘来说,该方法采用了两级链式组织架构,将缓存中属于同一个映射页的映射条目组织在一起。当需要替换缓存中的脏条目时,采用批量更新的方法将被替换的脏条目和跟它同属一个映射页的其它脏条目一并更新回闪存的页映射表中,大大减少了因缓存替换带来的额外开销;当缓存不命中时,采用动态的预取技术,预取长度根据载入开销、替换开销和历史访问的连续前驱数来确定,提高了缓存的命中率,减少了缓存载入带来的额外开销。批量更新和动态预取技术提高了固态盘的性能,延长了固态盘的寿命。
【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种固态盘映射表缓存的管理方法,对于将页映射表存放在闪存上的固态盘来说,该方法采用了两级链式组织架构,将缓存中属于同一个映射页的映射条目组织在一起。当需要替换缓存中的脏条目时,采用批量更新的方法将被替换的脏条目和跟它同属一个映射页的其它脏条目一并更新回闪存的页映射表中,大大减少了因缓存替换带来的额外开销;当缓存不命中时,采用动态的预取技术,预取长度根据载入开销、替换开销和历史访问的连续前驱数来确定,提高了缓存的命中率,减少了缓存载入带来的额外开销。批量更新和动态预取技术提高了固态盘的性能,延长了固态盘的寿命。【专利说明】
本专利技术属于固态盘存储
,更具体地,涉及。
技术介绍
基于闪存的固态盘(Solid State Disk, SSD)具有高性能,抗震动,低功耗等优点。随着人们对存储需求的不断增大,SSD逐渐成为计算机存储系统的重要组成部分,它被认为可以在不远的将来替换磁盘,就目前的趋势来看,无论其是否能够最终替换磁盘,至少其已经在很多存储系统中成为了磁盘的有效补充。目前SSD已经广泛的应用在银行、金融、航空、军事、通讯等各行各业中,并已经形成了每年全球上百亿的市场。 目前固态盘一般使用NAND型闪存作为存储介质,闪存芯片的层次结构如附图1所示,每个芯片由多个晶圆组成,每个晶圆由多个分组组成,每个分组由多个块组成,每个块由多个页组成。闪存具有与传统机械硬盘不同的操作特性,具体如下:(I)固态盘读写的基本单位是页,而擦除的基本单位是块。(2)先擦后写,当固态盘上的数据需要修改时,不能像磁盘那样直接原地修改,而需要将该页擦除后再重新写入数据。(3)闪存块的擦除次数受限,即闪存的使用寿命有限。闪存块在擦除一定次数以后,一般是10000次,会变为坏块而不能够再继续使用。 SSD系统的结构如附图2所示,主机端主要包括应用程序、文件系统和设备驱动,SSD端主要包括缓存模块、闪存转换层(Flash Translat1n Layer,FTL)和闪存芯片。其中,缓存模块由数据缓存和映射表缓存组成,FTL的主要功能是将SSD模拟成标准的块设备以屏蔽其特性,使得上层文件系统在使用它的时候就像在使用一个普通的磁盘存储器。FTL包括地址映射、垃圾回收和损耗均衡三个功能模块。 对于采取页映射FTL算法的固态盘,映射表缓存用来存储部分经常被访问的映射条目,以加速转换逻辑地址为物理地址的过程。当请求的映射条目不在映射表缓存时,需要将相应的映射条目从闪存的页映射表载入缓存;当映射表缓存满而有脏条目被替换时,需要将脏条目更新回闪存的页映射表。而且,映射信息在闪存和映射表缓存上的访问粒度并不匹配。映射信息在缓存中以单个条目为访问单位,条目的内容包括逻辑页号(LogicalPage Num, LPN)和物理页号(Physical Page Num,PPN),大小一般是几个字节,而映射信息在闪存上以映射页为访问单位,大小一般是几千字节。向缓存载入一个条目包括一次闪存页的读,在闪存上更新一个脏条目包括一次闪存页的读和写。所以,映射表缓存中条目的载入和替换会在闪存上引起频繁的读写操作,不仅降低了固态盘的性能,而且缩短了其使用寿命。 替换策略是缓存算法设计的核心,对性能影响最大。基本的替换算法有:先来先服务(First In First Out, FIFO),最近最少使用(Least Recently Used, LRU)算法,最不经常使用算法(Least Frequently Used, LFU)等等。其中,LRU是最常用的替换策略,它选择缓存中最近最少被访问的数据替换出去,不仅实现简单,而且保存的是最近使用的数据,有效利用了时间局部性。目前的映射表缓存管理算法,比如DFTL中的分段LRU算法,S-FTL中压缩存储映射页的LRU算法等,都是基于负载的局部性以及缓存空间有限的特点提出的,其目的是为了提高缓存的命中率,使查找映射表的工作尽量在缓存中进行,减少对闪存上页映射表的访问带来的额外开销。 现有的映射表缓存算法存在以下几个明显的不足之处:1、DFTL和S-FTL的映射表缓存算法在组织映射缓存中的映射条目时没能很好地结合固态盘读写特性,导致缓存替换带来大的额外开销;2、DFTL的映射表缓存算法没有充分挖掘负载的空间局部性,导致缓存命中率不高;3、闪存上的每个映射页包含成百上千个映射条目,S-FTL的映射表缓存算法以映射页为缓存单位,会导致页内较少被访问的条目也驻留缓存,降低了缓存的空间利用率。
技术实现思路
针对现有技术的存在的缺陷,本专利技术提供了一种更高效的固态盘映射表缓存管理方法,通过批量更新的替换机制和动态预取的载入机制,有效减少了缓存替换和缓存载入带来的闪存读写,进而提高系统的性能,延长SSD的寿命。 按照本专利技术的一个方面,提供了,在所述固态盘系统的闪存转换层采取页级映射算法,一个逻辑页可以被映射到任意一个物理页上,将这种映射关系记录在页映射表中;在所述系统中设置有映射表缓存模块和闪存模块; 其中闪存模块上的块分为数据块和映射块两种,数据块用于存放用户数据,映射块用于存放页映射表,映射块中包含多个映射页,每个映射页中存放的是多个逻辑页号连续的映射条目; 映射表缓存模块存放部分常用的页映射表和全局转换目录,全局转换目录用于追踪映射页在闪存中的物理位置,其内容包括虚拟映射页号和物理映射页号; 映射表缓存模块中存储的页映射表采用两级链式组织架构来组织,第一级链表由映射页节点组成,每个映射页节点代表一个有映射条目被缓存的映射页,它将缓存中属于该映射页的映射条目节点组织在一起;第二级链表由映射条目节点组成,每个映射条目节点存放一个映射条目的信息,上述两级链表都按照最近最少使用算法进行排序。 在本专利技术的一个实施例中,当缓存满而需要替换一个或多个映射条目节点时,首先选择映射页节点链表最近最少使用端的映射页节点,然后选择该映射页节点的映射条目节点链表最近最少使用端的一个或多个映射条目节点替换出去。 在本专利技术的一个实施例中,当需要载入新的映射条目节点时,将新的映射条目节点载入到相应的映射页节点的映射条目节点链表的最近最多使用端,如果缓存中不存在对应的映射页节点,即它所在的映射页没有条目被缓存,那么首先生成相应的映射页节点,再将新的映射条目节点载入到相应的映射页节点的映射条目节点链表的最近最多使用端。 在本专利技术的一个实施例中,当缓存满而有脏映射条目节点被替换时,将跟该映射条目节点在同一个映射页节点下的所有脏映射条目节点批量更新回闪存,然后该映射条目节点被淘汰出缓存,贡献出空闲空间,而其它的脏映射条目节点变为干净的映射条目节点;其中脏映射条目节点是指存放了脏条目的映射条目节点。 在本专利技术的一个实施例中,所述系统采用动态预取的载入机制,当缓存不命中而需要载入请求的映射条目时,如果它所在的映射页对应的映射页节点已被缓存,那么向该映射页节点载入当前请求的映射条目节点的同时预取多个与它逻辑页号连续的后继映射条目节点;否则,不做预取。 在本专利技术的一个实施例中,预取的映射条目节点个数设置为等于该映射页节点下已经存在的与当前请求的映射条目节点的逻辑页号连续的前继映射条目本文档来自技高网...
【技术保护点】
一种固态盘系统中的映射表缓存管理方法,其特征在于,在所述固态盘系统的闪存转换层采取页级映射算法,一个逻辑页可以被映射到任意一个物理页上,将这种映射关系记录在页映射表中;在所述系统中设置有映射表缓存模块和闪存模块;其中闪存模块上的块分为数据块和映射块两种,数据块用于存放用户数据,映射块用于存放页映射表,映射块中包含多个映射页,每个映射页中存放的是多个逻辑页号连续的映射条目;映射表缓存模块存放部分常用的页映射表和全局转换目录,全局转换目录用于追踪映射页在闪存中的物理位置,其内容包括虚拟映射页号和物理映射页号;映射表缓存模块中存储的页映射表采用两级链式组织架构来组织,第一级链表由映射页节点组成,每个映射页节点代表一个有映射条目被缓存的映射页,它将缓存中属于该映射页的映射条目节点组织在一起;第二级链表由映射条目节点组成,每个映射条目节点存放一个映射条目的信息,上述两级链表都按照最近最少使用算法进行排序。
【技术特征摘要】
【专利技术属性】
技术研发人员:吴非,谢长生,李思思,周游,陈虎,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。