CN110413537B - 一种面向混合固态硬盘的闪存转换层及转换方法 - Google Patents
一种面向混合固态硬盘的闪存转换层及转换方法 Download PDFInfo
- Publication number
- CN110413537B CN110413537B CN201910675390.5A CN201910675390A CN110413537B CN 110413537 B CN110413537 B CN 110413537B CN 201910675390 A CN201910675390 A CN 201910675390A CN 110413537 B CN110413537 B CN 110413537B
- Authority
- CN
- China
- Prior art keywords
- cmt
- mapping
- cold
- hot
- medium
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向混合固态硬盘的闪存转换层,所述闪存转换层包括一个地址映射缓冲区,所述地址映射缓冲区由全局翻译目录GTD、映射页缓存槽TPCS、热映射缓存表Hot‑CMT和冷映射缓存表Cold‑CMT组成;所述GTD用于记录每个翻译页的实际物理页号,所述TPCS用于当前映射项在缓存中不命中时,缓存当前加载映射项所属的整个映射页,所述Hot‑CMT用于缓存频繁访问的写映射项,所述Cold‑CMT用于缓存读映射项和不频繁访问的写映射项;所述Hot‑CMT和Cold‑CMT记录映射项的逻辑页号LPN、物理页号PPN。本发明解决了利用多种介质构建SSD的闪存转换层设计问题。实现了映射项的统一管理,提升混合SSD的性能、降低其单位容量成本,较好实现质A和介质B之间的磨损均衡,延长混合SSD的使用寿命。
Description
技术领域
本发明涉及计算机存储***领域,具体涉及一种面向混合固态硬盘的闪存转换层及其转换方法。
背景技术
随着固态硬盘(Solid State Disk,SSD)设计技术的不断进步,SSD与传统的机械硬盘相比,具有读写速度快、功耗低、重量轻、防震抗摔等诸多优点,这使得SSD在计算机存储领域逐渐流行开来。
目前,主流的SSD的存储介质是NAND闪存。NAND闪存具有如下物理特性:(1)仅提供读、写、擦除三种操作,三种操作的性能不对称,其中读速度最快,写次之,擦除最慢。(2)闪存按页(page)、块(block)、平面(plane)的结构进行组织,页是读/写的最小单位,块是擦除的最小单位。(3)闪存不支持原地更新,闪存擦除后只能写一次,即写前擦除(erase beforewrite),这造成巨大的开销。(4)闪存的每个存储单元的编程/擦除(P/E)次数有限,超过次数后的闪存存储单元存储数据将不再可靠。
由于NAND闪存具有上述特点,在SSD设计中,一般需要一个闪存转换层(FlashTranslation Layer,FTL),负责隐藏NAND闪存的上述特性,将SSD模拟成只具有读写操作的传统硬盘的形式,以适应当前的文件***。
FTL的关键技术有地址映射、垃圾回收和磨损均衡三个模块。地址映射负责将来自文件***的逻辑地址映射为闪存中的物理地址,一般有页级映射、块级映射和混合映射三种映射方式。垃圾回收负责将擦除块操作后的无效页进行回收,让无效页可以重复利用。磨损均衡负责使各个块之间的磨损速率尽量一致,防止部分块由于磨损过快导致提前损坏。
闪存芯片包括3类,SLC(Single-Level Cell,即1bit/Cell)、MLC(Multi-LevelCell,即2bit/Cell)和TLC(Trinary-Level Cell,即3bit/Cell)。上述三种介质的性能SLC最好,MLC次之,TLC较差;但是单位存储容量的成本方面SLC最高,MLC次之,TLC最低。以前,SSD主要采用同质结构,即采用同一种闪存介质构建SSD。现在,为实现性能与成本的折衷,开始出现异质结构的SSD,即采用不同的存储介质来构建底层的物理存储,如SLC与MLC、SLC与TLC构建混合SSD。
本发明针对使用两种存储介质构建的混合SSD,即性能较好的存储介质A和另一种性能次之的存储介质B(如A为SLC,B为MLC或TLC;或者A为MLC,B为TLC),公布了一种面向混合固态硬盘的闪存转换层及其转换方法,以更好地实现混合SSD在性能和成本之间的折衷。
发明内容
本发明的目的是针对现有技术的缺陷,提供了一种面向混合固态硬盘的闪存转换层及其转换方法。既保证混合SSD的高性能和低成本折衷,又实现介质A和介质B之间的磨损均衡,延长混合SSD的使用寿命。
为了实现以上目的,本发明采用以下技术方案:
一种面向混合固态硬盘的闪存转换层,所述混合固态硬盘由两种闪存介质构成,其中介质A性能较好、但单位容量成本较高,介质B的性能相对A要差,但单位容量成本较低;介质A分为数据块区和翻译块区,介质B全部为数据块区;翻译块区用来存储翻译页,数据块区用来存储数据页;翻译页用来存储数据的逻辑地址和物理地址之间的映射关系,数据页用来存储实际数据;翻译页按照介质A的页面大小对齐,数据页按照介质B的页面大小对齐;所述闪存转换层包括一个地址映射缓冲区,所述地址映射缓冲区由全局翻译目录GTD、映射页缓存槽TPCS、热映射缓存表Hot-CMT和冷映射缓存表Cold-CMT组成;所述GTD用于记录每个翻译页的实际物理页号,所述TPCS用于当前映射项在缓存中不命中时,缓存当前加载映射项所属的整个映射页,所述Hot-CMT用于缓存频繁访问的写映射项,所述Cold-CMT用于缓存读映射项和不频繁访问的写映射项;所述Hot-CMT和Cold-CMT记录映射项的逻辑页号LPN、物理页号PPN。
进一步地,所述闪存转换层采用页级地址映射方式。
进一步地,本发明提出一种面向混合固态硬盘的闪存转换层的转换方法,用于上述的闪存转换层,包括如下步骤:
S1,当访问请求到来时,判断请求类型;若是读请求,执行S2,若是写请求则执行S6;
S2,针对读请求,按顺序查看请求映射项是否在Hot-CMT、Cold-CMT和TPCS中;若映射项位于Hot-CMT,执行S5;若映射项位于Cold-CMT或TPCS中,则执行S3;否则,映射项不在缓存映射表中,则执行S4;
S3,将该映射项加载到Cold-CMT的MRU(Most Recently Used)位置,若此时Cold-CMT大小大于设定的目标阈值,则启动Cold-CMT的剔除操作,然后执行S5;
S4,当映射项不在缓存映射表中时,根据请求的逻辑页号访问GTD,得到该映射项所对应的翻译页的物理页号,并根据此物理页号加载包含目标映射项的翻译页到TPCS中,并将该映射项同时加载到Cold-CMT的MRU位置,若此时Cold-CMT大小大于设定的目标阈值,则启动Cold-CMT的剔除操作,最后执行S5;
S5,返回该映射项所对应的物理页号,地址映射转换结束;
S6,针对写请求,按顺序查看请求映射项是否在Hot-CMT、Cold-CMT和TPCS中;若映射项在Hot-CMT中,Cold-CMT或TPCS命中,则执行S7;否则,映射项不在缓存映射表中,执行S8;
S7,若在Hot-CMT命中,则将该映射项迁移到Hot-CMT的MRU位置;若在Cold-CMT命中,也将映射项迁移到Hot-CMT中的MRU位置,若此时Hot-CMT大小大于设定的目标阈值,则启动Hot-CMT的剔除操作;若在TPCS命中,则将该映射项迁移到Cold-CMT的MRU位置,若此时Cold-CMT大小大于设定的目标阈值,则启动Cold-CMT的剔除操作;最后执行S9;
S8,当映射项不在缓存映射表中时,根据请求的逻辑页号访问GTD,得到该映射项所对应的翻译页的物理页号,并根据此物理页号加载包含目标映射项的翻译页到TPCS中,并将该映射项同时加载到Cold-CMT的MRU位置;若此时Cold-CMT大小大于设定的目标阈值,则启动Cold-CMT的剔除操作;最后执行S9;
S9,根据介质A和B的磨损速度,调整Hot-CMT和Cold-CMT缓存表的大小;然后为写请求分配新的空闲物理数据页号,并将新的物理数据页号写到对应缓存映射表中;最后返回该映射项以前的物理页号和新分配的空闲物理页号。
进一步地,步骤S3、S4、S7和S8中的Cold-CMT采用干净项优先的最近最少使用LRU剔除机制:在Cold-CMT队列的尾部设置一个长度固定的干净项优先剔除窗口;当Cold-CMT需要进行剔除操作时,从LRU位置开始在优先剔除窗口中寻找未更新映射项,若能找到,则直接剔除这个干净映射项;否则,则选择LRU位置上的已更新映射项,将其信息回写到翻译页后进行剔除。
进一步地,步骤S7中的Hot-CMT采用LRU剔除机制,即直接选择Hot-CMT队列LRU位置上的映射项,将其信息回写到翻译页后进行剔除。
进一步地,所述调整Hot-CMT和Cold-CMT缓存表大小具体为:
通过控制Hot-CMT与Cold-CMT的比例α来保证它们的磨损速度尽量一致;α受介质A与介质B的相对磨损速率φ控制,α的调整方法如下:
S21,计算介质A和B当前的相对磨损速率φ;
S22,比较φ与φt的大小,φt为预设相对磨损均衡速率阈值,若φ<φt,则认为当前介质A和介质B磨损均衡,无需调整α;否则,执行下面S23;
S23,若RWA>RWB,此时介质A比介质B磨损快,减小Hot-CMT的比例值α=α-△α,来减少写入介质A的数据量;反之,则介质B比介质A磨损快,增加Hot-CMT的比例值α=α+△α,来减少写入介质B的数据量。
进一步地,φ定义为:
其中,max(·)代表求最大值,min(·)代表求最小值;RWA表示介质A归一化到介质B的平均磨损速率,RWB表示介质B的平均磨损速率。
进一步地,步骤S9中为写请求分配新的空闲物理数据页号具体为:
将数据块区划分为热数据块区和冷数据块区,即在热数据块区中的数据为热数据,存储在介质A中;未在热数据块区中的数据为冷数据,存储在介质B中;在数据写入时,映射项在Hot-CMT中的页被认为是热数据,分配一个属于介质A的空闲页号;反之,则认为是冷数据,分配一个属于介质B的空闲页号。
进一步地,当介质A中空闲块不足时,介质A的垃圾回收机制触发,操作过程如下:
S31,选择具有最多无效页的块作为回收块,然后判断回收块是否存在有效数据页;若存在有效数据页则执行S32,否则执行S35;
S32,依次判断每个有效数据页的映射项是否在Hot-CMT中命中,若命中则执行S33,否则执行S34;
S33,该数据仍为热数据,将该数据页迁移到介质A的空闲块,并修改其对应的映射项信息;
S34,该数据为冷数据,将该数据页迁移到介质B的空闲块,并修改其对应的映射信息;
S35,将回收块擦除,结束垃圾回收操作;
进一步地,当介质B中空闲块不足时,介质B的垃圾回收机制触发,选择具有最多无效页的块作为回收块,然后将回收块中的有效数据页迁移到介质B的空闲块,并更新该映射项的映射关系;最后擦除回收块,结束垃圾回收操作。
本发明提出一种面向混合SSD的闪存转换层设计方法,解决了利用多种介质构建SSD的闪存转换层设计问题。一方面,介质A和介质B中的翻译页按照介质A的页大小对齐,实现了映射项的统一管理。另一方面,采用冷热映射缓存区分热写请求和其它请求,使得热写请求分配到性能好的介质A,其它写请求分配到介质B,提升混合SSD的性能、降低其单位容量成本;同时,根据介质A和介质B的磨损速度,调整冷热映射缓存表的比例,较好实现质A和介质B之间的磨损均衡,延长混合SSD的使用寿命。本方面公布的方法在混合SSD设计中具有实用性和较好的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1:本发明的总体架构图。
图2:本发明的地址映射结构示意图。
图3:本发明的地址转换流程图。
图4:本发明的地址转换实施例图。
图5:本发明的介质A和介质B之间的摩擦均衡及冷热映射表大小自适应调整示意图。
图6:本发明的写入请求数据分配和垃圾回收流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
实施例一
本实施例提出了一种面向混合固态硬盘的闪存转换层,所述混合固态硬盘由两种闪存介质构成,其中介质A性能较好、但单位容量成本较高,介质B的性能相对A要差,但单位容量成本较低。进一步,介质A分为数据块区和翻译块区,介质B全部为数据块区。翻译块区用来存储翻译页,数据块区用来存储数据页。翻译页用来存储数据的逻辑地址和物理地址之间的映射关系,数据页用来存储实际数据。翻译页按照介质A的页面大小对齐,数据页按照介质B的页面大小对齐(一般而言,不同的存储介质有不同的页面大小,介质A的页面大小小于介质B的页面大小,且满足整数倍关系)。
例如,如图1所示,采用两种不同的存储介质SLC和MLC来混合构建SSD,即SLC为上述专利中的介质A,MLC为上述专利中的介质B。将SLC分为数据块区和翻译块区,MLC全部为数据块区,热数据页和翻译页存储在SLC中,冷数据页存储在MLC中。将请求的翻译页大小按照2KB(SLC的页大小)对齐,数据页大小按照4KB(MLC的页大小)对齐。将缓存区划分为GTD、TPCS、Hot-CMT和Cold-CMT四个部分,其中Hot-CMT和Cold-CMT的比例系数可以根据SLC和MLC的相对磨损速率自适应调整。
闪存转换层采用页级地址映射方式,并在闪存转换层中包括一个地址映射缓冲区。进一步,地址映射缓冲区分为GTD(全局翻译目录)、TPCS(映射页缓存槽)、Hot-CMT(热映射缓存表)和Cold-CMT(冷映射缓存表)。GTD用来记录每个翻译页的实际物理页号,TPCS用来缓存当前加载映射项所属的整个映射页(只有当前映射项在缓存中不命中时才激发),Hot-CMT用来缓存频繁访问的写映射项,Cold-CMT用来缓存读映射项和不频繁访问的写映射项。所述的Hot-CMT和Cold-CMT记录映射项的逻辑页号(LPN)、物理页号(PPN)。
如图2所示,在闪存转换层包括4个表,分别为:GTD、Hot-CMT、Cold-CMT和TPCS。GTD为全局映射表,用来记录每个翻译页的实际物理页号。GTD中的TVPN为虚拟翻译页号,不用存储。任意逻辑页对应的虚拟翻译页号可以用公式得到,这里面LPN为逻辑页号,NUM为每个翻译页可以存储的映射项数,代表下取整函数。任意逻辑页在其对应虚拟翻译页中的位置可以用公式No=Mod(LPN,NUM)得到,这里LPN和NUM同上,Mod代表取余函数。Hot-CMT为热映射缓存表,用于缓存访问频率较高的写请求的映射项。当一个写请求在Cold-CMT命中时,将其识别为热写,将其迁移到Hot-CMT的MRU位置;当Hot-CMT满时,采用LRU剔除策略将不经常访问的映射项回写到底层闪存的翻译页中。Cold-CMT为冷映射缓存表,用于缓存访问频率低的写请求的映射项和读请求映射项;当Cold-CMT满时,采用干净项优先的LRU剔除策略。TPCS为映射页缓存槽,用来缓存当前加载映射项所属的整个映射页(只有当前映射项在缓存中不命中时才激发)。在底层闪存存储层,由于翻译页的读写更新比较频繁,所以将其放置在读写性能较好的SLC中,并将热数据页(Hot-CMT对应的数据页)存储在SLC中,将冷数据页存储在MLC中。此外,Hot-CMT和Cold-CMT的大小可以根据SLC和MLC的相对磨损速率来动态调整比例。
实施例二
如图3所示,基于实施例一中的闪存转换层,本实施例提出了一种面向混合固态硬盘的闪存转换层的转换方法,具体包括:
S1,当访问请求到来时,判断请求类型。若是读请求,执行S2,若是写请求则执行S6。
S2,针对读请求,按顺序查看请求映射项是否在Hot-CMT、Cold-CMT和TPCS中。若映射项位于Hot-CMT,执行S5;若映射项位于Cold-CMT或TPCS中,则执行S3;否则,映射项不在缓存映射表中,则执行S4。
S3,将该映射项加载到Cold-CMT的MRU(Most Recently Used)位置,若此时Cold-CMT大小大于设定的目标阈值,则启动Cold-CMT的剔除操作,然后执行S5。
S4,当映射项不在缓存映射表中时,根据请求的逻辑页号访问GTD,得到该映射项所对应的翻译页的物理页号,并根据此物理页号加载包含目标映射项的翻译页到TPCS中,并将该映射项同时加载到Cold-CMT的MRU位置,若此时Cold-CMT大小大于设定的目标阈值,则启动Cold-CMT的剔除操作。最后执行S5。
S5,返回该映射项所对应的物理页号,地址映射转换结束。
S6,针对写请求,按顺序查看请求映射项是否在Hot-CMT、Cold-CMT和TPCS中。若映射项在Hot-CMT中,Cold-CMT或TPCS命中,则执行S7;否则,映射项不在缓存映射表中,执行S8。
S7,若在Hot-CMT命中,则将该映射项迁移到Hot-CMT的MRU位置;若在Cold-CMT命中,也将映射项迁移到Hot-CMT中的MRU位置,若此时Hot-CMT大小大于设定的目标阈值,则启动Hot-CMT的剔除操作;若在TPCS命中,则将该映射项迁移到Cold-CMT的MRU位置,若此时Cold-CMT大小大于设定的目标阈值,则启动Cold-CMT的剔除操作。最后执行S9。
S8,当映射项不在缓存映射表中时,根据请求的逻辑页号访问GTD,得到该映射项所对应的翻译页的物理页号,并根据此物理页号加载包含目标映射项的翻译页到TPCS中,并将该映射项同时加载到Cold-CMT的MRU位置;若此时Cold-CMT大小大于设定的目标阈值,则启动Cold-CMT的剔除操作。最后执行S9。
S9,根据介质A和B的磨损速度,调整Hot-CMT和Cold-CMT缓存表的大小;然后为写请求分配新的空闲物理数据页号,并将新的物理数据页号写到对应缓存映射表中;最后返回该映射项以前的物理页号和新分配的空闲物理页号。
步骤S3、S4、S7和S8中的Cold-CMT采用干净项优先的最近最少使用(LRU)剔除机制。具体实现方法如下:在Cold-CMT队列的尾部设置一个长度固定的干净项优先剔除窗口;当Cold-CMT需要进行剔除操作时,从LRU位置开始在优先剔除窗口中寻找干净(未更新)映射项。若能找到,则直接剔除这个干净映射项;否则,则选择LRU位置上的脏(已更新)映射项,将其信息回写到翻译页后进行剔除。
步骤S7中的Hot-CMT采用LRU剔除机制,即直接选择Hot-CMT队列LRU位置上的映射项,将其信息回写到翻译页后进行剔除。
图4中,假设了由SLC和MLC组成的混合SSD的逻辑地址空间为32个数据页,且SLC的一个物理页仅能存储4个映射项。此外,也假设了地址转换期间,不牵涉到Hot-CMT和Cold-CMT的大小调整。需要指出的是,图4中的VPN和VTPN实际不占存储空间,其作用仅为方便描述。
根据本发明页级地址映射的思想,32个数据页需要32个映射项,而SLC每个物理页仅能存储4个映射项,则全部映射表存储需要8个SLC的物理页。进一步,考虑到闪存不支持原地更新的特殊性,实际在SLC中分配12个页用于全部映射表的存储,编号为T0-T11。假设SLC、MLC还剩下48个数据页的物理空间用于用户数据存储,编号为D0-D47,其中前8个位于SLC,后40个位于MLC。每个数据页的User Data空间用来存储真实的用户数据,OOB空间用来存储每个页的元数据,如当前页的状态(有效/无效/空闲),对应数据的逻辑页号,差错校验数据等。根据上述假设,图4(a)给出闪存转换层各个映射表及底层闪存部分翻译页的初始状态示意图。图4中,Cold-CMT的干净项优先剔除窗口为2,即尾部两个映射项是干净项优先剔除窗口;
Hot-CMT和Cold-CMT中的阴影项为发生过更新的映射项。
现假设需要按顺序处理如下的请求:LPN=7(读请求),LPN=1(读请求),LPN=3(写请求),LPN=5(写请求),LPN=6(写请求)。根据本发明公布的方法,在图4(a)所示的初始状态下,地址转换过程及结果如下:
C1,LPN=7读请求,该映射项在Cold-CMT命中,将该映射项(7,D22)迁移到Cold-CMT的MRU位置,返回该请求的PPN=D22。
C2,LPN=1读请求,该映射项在TPCS命中,将该映射项(1,D18)加载到Cold-CMT的MRU位置。此时,Cold-CMT已满,从LRU位置开始在优先剔除窗口中寻找干净映射项,由于(8,D23)为干净映射项,选择它作为剔除项直接剔除,然后返回该请求的PPN=D18。
C3,LPN=3写请求,在Hot-CMT命中,将该映射项(3,D7)迁移到Hot-CMT的MRU位置。由于该写请求在Hot-CMT命中,识别该请求为热写,故为该请求分配一个属于SLC的空闲物理数据页号PPN=D3,并将之前的数据页D7置为无效,将映射关系(3,D7)更新为(3,D3),最后返回该映射项以前的物理页号PPN=D7和新分配的空闲物理页号PPN=D3。
C4,LPN=5写请求,未在映射缓存表中命中,通过查询GTD,得到该映射项对应翻译页的物理页号TPPN=T1,然后加载该翻译页到TPCS中,将请求映射项(5,D35)加载到Cold-CMT的MRU位置。此时,Cold-CMT已满,从LRU位置开始在优先剔除窗口中寻找干净映射项,此时由于(9,D24)为干净映射项,选择它作为剔除项直接剔除。由于此写请求不是在Hot-CMT,故为该请求分配一个属于MLC的空闲物理数据页号PPN=D36,并将之前的数据页D35置为无效,将映射关系(5,D35)更新为(5,D36),最后返回该映射项以前的物理页号PPN=D35和新分配的空闲物理页号PPN=D36。
C5,LPN=6写请求,在Cold-CMT命中,将该映射项(6,D21)迁移到Hot-CMT的MRU位置。此时,Hot-CMT已满,选择LRU位置上的映射项(0,D0),将此映射项的信息回写到新翻译页T8后进行剔除,然后为该请求分配新的SLC闪存区的空闲物理数据页号PPN=D4,并将之前的数据页D21置为无效,将映射关系(6,D21)更新为(6,D4),最后返回该映射项以前的物理页号PPN=D21和新分配的空闲物理页号PPN=D4。
步骤S9中的根据介质A和B的磨损速度,调整Hot-CMT和Cold-CMT缓存表大小的机制如下:
为实现介质A和B的磨损均衡,本发明通过控制Hot-CMT与Cold-CMT的比例α来保证它们的磨损速度尽量一致。具体来说,α受介质A与介质B的相对磨损速率φ控制。φ定义为:
上式中,max(·)代表求最大值,min(·)代表求最小值;RWA表示介质A归一化到介质B的平均磨损速率,RWB表示介质B的平均磨损速率。
α的调整方法如下:
S21,计算介质A和B当前的相对磨损速率φ。
S22,比较φ与φt的大小(φt为预设相对磨损均衡速率阈值)。若φ<φt,则认为当前介质A和介质B磨损均衡,无需调整α;否则,执行下面S23。
S23,若RWA>RWB,此时介质A比介质B磨损快,减小Hot-CMT的比例值α=α-△α,来减少写入介质A的数据量;反之,则介质B比介质A磨损快,增加Hot-CMT的比例值α=α+△α,来减少写入介质B的数据量。
如图5所示,本发明方法通过动态调整冷热映射缓存表的大小来控制SLC和MLC之间的磨损均衡。Hot-CMT比例值α受SLC与MLC的相对磨损速率Φ控制,在本实施例中设定磨损均衡阈值Φt=1.3,Hot-CMT比例系数初始值α=0.4,△α=0.05。
计算当前的相对磨损速率值Φ0,若Φ0<1.3,则认为当前SLC和MLC磨损均衡,无需调整α。
若Φ≥1.3,判定当前SLC和MLC磨损不均衡,启动冷热映射缓存表动态调整机制,当SLC磨损速度更快时,即RWSLC>RWMLC,需要减小Hot-CMT的比例值α=α-△α,来减少写入SLC的数据量,同时增大了SLC迁入到MLC中的数据量。当MLC磨损速度更快时,即RWSLC<RWMLC,需要增大Hot-CMT的比例值α=α+△α,来减少写入MLC的数据量,同时增大了SLC保留热数据的能力。通过调整Hot-CMT的比例值α又控制了相对磨损速率,使SLC和MLC之间磨损均衡。
步骤S9中为写请求分配新的空闲物理数据页号的机制如下:
本发明提出的方法将数据块区划分为热数据块区和冷数据块区,即在热数据块区中的数据为热数据,存储在介质A中;未在热数据块区中的数据为冷数据,存储在介质B中。在数据写入时,映射项在Hot-CMT中的页被认为是热数据,分配一个属于介质A的空闲页号;反之,则认为是冷数据,分配一个属于介质B的空闲页号。
例如,如图6(a)所示。写入请求数据分配的过程可以借助Hot-CMT的映射项信息对数据进行冷热识别。在数据写入时,给Hot-CMT中映射项对应的数据页分配一个属于SLC的空闲数据页号,即将映射项在Hot-CMT中的页识别为热数据页,存储在高性能介质SLC中。反之,给未在Hot-CMT中的映射项对应的数据页分配一个属于MLC的空闲数据页号,即将未在Hot-CMT中的页识别为冷数据页,存储在低性能介质MLC。
本发明的垃圾回收机制如图6(b)所示。本发明方法通过查询回收块中有效数据页对应的映射信息来进行垃圾回收,若该数据页的映射项位于Hot-CMT中,则表明该数据页仍为热数据,将该数据页复制到SLC的空闲数据块中,反之则将数据迁入到MLC的数据块区。
当SLC中的空闲数据块不足时,SLC的垃圾回收机制会被触发,进行垃圾回收操作,操作过程如下:
C1,选择具有最多无效页的块作为回收块,然后判断回收块是否存在有效数据页,若存在有效数据页则执行C2,否则执行C5。
C2,依次判断回收块的每个有效数据页的映射项是否在Hot-CMT中命中,若命中则执行C3,否则执行C4。
C3,该数据仍为热数据,将该数据页迁移到SLC的空闲块,并修改Hot-CMT中对应的映射项信息。
C4,该数据为冷数据,将该数据页迁移到MLC的空闲块,并修改其对应的映射信息。
C5,将回收块擦除,结束垃圾回收操作。
当MLC中的空闲块不足时,MLC的垃圾回收机制被触发,选择具有最多无效页的块作为回收块,然后将回收块中的有效数据页迁移到MLC的空闲块,并更新该映射项的映射关系,最后擦除回收块,结束垃圾回收操作。
本发明提出一种面向混合SSD的闪存转换层设计方法,解决了利用多种介质构建SSD的闪存转换层设计问题。一方面,介质A和介质B中的翻译页按照介质A的页大小对齐,实现了映射项的统一管理。另一方面,采用冷热映射缓存区分热写请求和其它请求,使得热写请求分配到性能好的介质A,其它写请求分配到介质B,提升混合SSD的性能、降低其单位容量成本;同时,根据介质A和介质B的磨损速度,调整冷热映射缓存表的比例,较好实现质A和介质B之间的磨损均衡,延长混合SSD的使用寿命。本方面公布的方法在混合SSD设计中具有实用性和较好的应用前景。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种面向混合固态硬盘的闪存转换层的转换方法,用于一种面向混合固态硬盘的闪存转换层,所述混合固态硬盘由两种闪存介质构成,其中介质A性能较好、但单位容量成本较高,介质B的性能相对A要差,但单位容量成本较低;介质A分为数据块区和翻译块区,介质B全部为数据块区;翻译块区用来存储翻译页,数据块区用来存储数据页;翻译页用来存储数据的逻辑地址和物理地址之间的映射关系,数据页用来存储实际数据;翻译页按照介质A的页面大小对齐,数据页按照介质B的页面大小对齐;其特征在于,
所述闪存转换层包括一个地址映射缓冲区,所述地址映射缓冲区由全局翻译目录GTD、映射页缓存槽TPCS、热映射缓存表Hot-CMT和冷映射缓存表Cold-CMT组成;所述GTD用于记录每个翻译页的实际物理页号,所述TPCS用于当前映射项在缓存中不命中时,缓存当前加载映射项所属的整个映射页,所述Hot-CMT用于缓存频繁访问的写映射项,所述Cold-CMT用于缓存读映射项和不频繁访问的写映射项;所述Hot-CMT和Cold-CMT记录映射项的逻辑页号LPN、物理页号PPN
转换包括如下步骤:
S1,当访问请求到来时,判断请求类型;若是读请求,执行S2,若是写请求则执行S6;
S2,针对读请求,按顺序查看请求映射项是否在Hot-CMT、Cold-CMT和TPCS中;若映射项位于Hot-CMT,执行S5;若映射项位于Cold-CMT或TPCS中,则执行S3;否则,映射项不在缓存映射表中,则执行S4;
S3,将该映射项加载到Cold-CMT的MRU(Most Recently Used)位置,若此时Cold-CMT大小大于设定的目标阈值,则启动Cold-CMT的剔除操作,然后执行S5;
S4,当映射项不在缓存映射表中时,根据请求的逻辑页号访问GTD,得到该映射项所对应的翻译页的物理页号,并根据此物理页号加载包含目标映射项的翻译页到TPCS中,并将该映射项同时加载到Cold-CMT的MRU位置,若此时Cold-CMT大小大于设定的目标阈值,则启动Cold-CMT的剔除操作,最后执行S5;
S5,返回该映射项所对应的物理页号,地址映射转换结束;
S6,针对写请求,按顺序查看请求映射项是否在Hot-CMT、Cold-CMT和TPCS中;若映射项在Hot-CMT中,Cold-CMT或TPCS命中,则执行S7;否则,映射项不在缓存映射表中,执行S8;
S7,若在Hot-CMT命中,则将该映射项迁移到Hot-CMT的MRU位置;若在Cold-CMT命中,也将映射项迁移到Hot-CMT中的MRU位置,若此时Hot-CMT大小大于设定的目标阈值,则启动Hot-CMT的剔除操作;若在TPCS命中,则将该映射项迁移到Cold-CMT的MRU位置,若此时Cold-CMT大小大于设定的目标阈值,则启动Cold-CMT的剔除操作;最后执行S9;
S8,当映射项不在缓存映射表中时,根据请求的逻辑页号访问GTD,得到该映射项所对应的翻译页的物理页号,并根据此物理页号加载包含目标映射项的翻译页到TPCS中,并将该映射项同时加载到Cold-CMT的MRU位置;若此时Cold-CMT大小大于设定的目标阈值,则启动Cold-CMT的剔除操作;最后执行S9;
S9,根据介质A和B的磨损速度,调整Hot-CMT和Cold-CMT缓存表的大小;然后为写请求分配新的空闲物理数据页号,并将新的物理数据页号写到对应缓存映射表中;最后返回该映射项以前的物理页号和新分配的空闲物理页号。
2.根据权利要求1所述的转换方法,其特征在于,所述闪存转换层采用页级地址映射方式。
3.根据权利要求1所述的转换方法,其特征在于,步骤S3、S4、S7和S8中的Cold-CMT采用干净项优先的最近最少使用LRU剔除机制:在Cold-CMT队列的尾部设置一个长度固定的干净项优先剔除窗口;当Cold-CMT需要进行剔除操作时,从LRU位置开始在优先剔除窗口中寻找未更新映射项,若能找到,则直接剔除这个干净映射项;否则,则选择LRU位置上的已更新映射项,将其信息回写到翻译页后进行剔除。
4.根据权利要求1所述的转换方法,其特征在于,步骤S7中的Hot-CMT采用LRU剔除机制,即直接选择Hot-CMT队列LRU位置上的映射项,将其信息回写到翻译页后进行剔除。
5.根据权利要求1所述的转换方法,其特征在于,所述调整Hot-CMT和Cold-CMT缓存表大小具体为:
通过控制Hot-CMT与Cold-CMT的比例α来保证它们的磨损速度尽量一致;α受介质A与介质B的相对磨损速率φ控制,α的调整方法如下:
S21,计算介质A和B当前的相对磨损速率φ;
S22,比较φ与φt的大小,φt为预设相对磨损均衡速率阈值,若φ<φt,则认为当前介质A和介质B磨损均衡,无需调整α;否则,执行下面S23;
S23,若RWA>RWB,此时介质A比介质B磨损快,减小Hot-CMT的比例值α=α-Δα,来减少写入介质A的数据量;反之,则介质B比介质A磨损快,增加Hot-CMT的比例值α=α+Δα,来减少写入介质B的数据量。
7.根据权利要求1所述的转换方法,其特征在于,步骤S9中为写请求分配新的空闲物理数据页号具体为:
将数据块区划分为热数据块区和冷数据块区,即在热数据块区中的数据为热数据,存储在介质A中;未在热数据块区中的数据为冷数据,存储在介质B中;在数据写入时,映射项在Hot-CMT中的页被认为是热数据,分配一个属于介质A的空闲页号;反之,则认为是冷数据,分配一个属于介质B的空闲页号。
8.根据权利要求1所述的转换方法,其特征在于,当介质A中空闲块不足时,介质A的垃圾回收机制触发,操作过程如下:
S31,选择具有最多无效页的块作为回收块,然后判断回收块是否存在有效数据页;若存在有效数据页则执行S32,否则执行S35;
S32,依次判断每个有效数据页的映射项是否在Hot-CMT中命中,若命中则执行S33,否则执行S34;
S33,该数据仍为热数据,将该数据页迁移到介质A的空闲块,并修改其对应的映射项信息;
S34,该数据为冷数据,将该数据页迁移到介质B的空闲块,并修改其对应的映射信息;
S35,将回收块擦除,结束垃圾回收操作。
9.根据权利要求1所述的转换方法,其特征在于,当介质B中空闲块不足时,介质B的垃圾回收机制触发,选择具有最多无效页的块作为回收块,然后将回收块中的有效数据页迁移到介质B的空闲块,并更新该映射项的映射关系;最后擦除回收块,结束垃圾回收操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910675390.5A CN110413537B (zh) | 2019-07-25 | 2019-07-25 | 一种面向混合固态硬盘的闪存转换层及转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910675390.5A CN110413537B (zh) | 2019-07-25 | 2019-07-25 | 一种面向混合固态硬盘的闪存转换层及转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413537A CN110413537A (zh) | 2019-11-05 |
CN110413537B true CN110413537B (zh) | 2021-08-24 |
Family
ID=68363092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910675390.5A Active CN110413537B (zh) | 2019-07-25 | 2019-07-25 | 一种面向混合固态硬盘的闪存转换层及转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413537B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258924B (zh) * | 2020-01-17 | 2021-06-08 | 中国科学院国家空间科学中心 | 一种基于星载固态存储***自适应闪存转换层的映射方法 |
CN111506517B (zh) * | 2020-03-05 | 2022-05-17 | 杭州电子科技大学 | 一种基于访问局部性的闪存页级地址映射方法及其*** |
CN112000296B (zh) * | 2020-08-28 | 2024-04-09 | 北京计算机技术及应用研究所 | 一种全闪存阵列中的性能优化*** |
CN112506445B (zh) * | 2020-12-29 | 2022-05-20 | 杭州电子科技大学 | 一种同质混合固态硬盘的分区比例自适应调整方法 |
CN113220241A (zh) * | 2021-05-27 | 2021-08-06 | 衢州学院 | 一种基于跨层设计的混合ssd性能与寿命优化方法 |
CN113435109B (zh) * | 2021-06-04 | 2024-01-30 | 衢州学院 | 一种混合ssd的性能与寿命的优化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122531A (zh) * | 2011-01-27 | 2011-07-13 | 浪潮电子信息产业股份有限公司 | 一种提高大容量固态硬盘使用稳定性的方法 |
CN103440206A (zh) * | 2013-07-25 | 2013-12-11 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其混合映射方法 |
CN109446117A (zh) * | 2018-09-06 | 2019-03-08 | 杭州电子科技大学 | 一种固态硬盘页级闪存转换层设计方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8838935B2 (en) * | 2010-09-24 | 2014-09-16 | Intel Corporation | Apparatus, method, and system for implementing micro page tables |
US9336129B2 (en) * | 2013-10-02 | 2016-05-10 | Sandisk Technologies Inc. | System and method for bank logical data remapping |
KR20180045091A (ko) * | 2016-10-24 | 2018-05-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
CN106776375A (zh) * | 2016-12-27 | 2017-05-31 | 东方网力科技股份有限公司 | 一种磁盘内部的数据缓存方法及装置 |
CN109739780A (zh) * | 2018-11-20 | 2019-05-10 | 北京航空航天大学 | 基于页级映射的动态二级缓存闪存转换层地址映射方法 |
-
2019
- 2019-07-25 CN CN201910675390.5A patent/CN110413537B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122531A (zh) * | 2011-01-27 | 2011-07-13 | 浪潮电子信息产业股份有限公司 | 一种提高大容量固态硬盘使用稳定性的方法 |
CN103440206A (zh) * | 2013-07-25 | 2013-12-11 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其混合映射方法 |
CN109446117A (zh) * | 2018-09-06 | 2019-03-08 | 杭州电子科技大学 | 一种固态硬盘页级闪存转换层设计方法 |
Non-Patent Citations (1)
Title |
---|
一种基于分类策略的聚簇页级闪存转换层算法;姚英彪等;《计算机研究与发展》;20170131;第54卷(第1期);第1.2节,第2.1节、第2.2节、第2.3节、图1、图3 * |
Also Published As
Publication number | Publication date |
---|---|
CN110413537A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413537B (zh) | 一种面向混合固态硬盘的闪存转换层及转换方法 | |
US11893238B2 (en) | Method of controlling nonvolatile semiconductor memory | |
US9430376B2 (en) | Priority-based garbage collection for data storage systems | |
Murugan et al. | Rejuvenator: A static wear leveling algorithm for NAND flash memory with minimized overhead | |
US9378131B2 (en) | Non-volatile storage addressing using multiple tables | |
Jiang et al. | S-FTL: An efficient address translation for flash memory by exploiting spatial locality | |
US11194737B2 (en) | Storage device, controller and method for operating the controller for pattern determination | |
US10740251B2 (en) | Hybrid drive translation layer | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
Wei et al. | CBM: A cooperative buffer management for SSD | |
CN108845957B (zh) | 一种置换和回写自适应的缓冲区管理方法 | |
CN109783398A (zh) | 一种基于相关感知页面级ftl固态硬盘性能优化方法 | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
KR20100115090A (ko) | 버퍼를 고려한 가비지 컬렉션 기법 | |
CN113254358A (zh) | 用于地址表高速缓存管理的方法和*** | |
CN111352593B (zh) | 一种区分快写和正常写的固态硬盘数据写入方法 | |
Yao et al. | HDFTL: An on-demand flash translation layer algorithm for hybrid solid state drives | |
Ryu | SAT: switchable address translation for flash memory storages | |
KR100894845B1 (ko) | 플래시 변환 계층 모듈을 이용한 주소 변환 방법 | |
Zhao et al. | A buffer algorithm of flash database based on LRU |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |