CN109446117A - 一种固态硬盘页级闪存转换层设计方法 - Google Patents

一种固态硬盘页级闪存转换层设计方法 Download PDF

Info

Publication number
CN109446117A
CN109446117A CN201811038059.4A CN201811038059A CN109446117A CN 109446117 A CN109446117 A CN 109446117A CN 201811038059 A CN201811038059 A CN 201811038059A CN 109446117 A CN109446117 A CN 109446117A
Authority
CN
China
Prior art keywords
cmt
page
mapping
map information
translation
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.)
Granted
Application number
CN201811038059.4A
Other languages
English (en)
Other versions
CN109446117B (zh
Inventor
姚英彪
颜明博
周杰
冯维
许晓荣
刘兆霆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN201811038059.4A priority Critical patent/CN109446117B/zh
Publication of CN109446117A publication Critical patent/CN109446117A/zh
Application granted granted Critical
Publication of CN109446117B publication Critical patent/CN109446117B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/125Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种固态硬盘页级闪存转换层设计方法。本发明将NAND闪存划分为两个部分:数据块区域和翻译块区域,数据块区域用于储存常规用户数据,翻译块区域只储存映射信息,且整个闪存采用基于页的映射。RAM被分为W‑CMT、R‑CMT、GTD三个部分:W‑CMT用于储存高访问频次的写数据映射信息;R‑CMT用于储存高访问频次的读数据映射信息、GTD用于记录映射块中的地址映射项。本发明实现高灵活性的页级映射的同时,极大程度上减少由于数据更新导致的翻译页频繁更新,进而提升整体系统性能,延长固态硬盘使用寿命。

Description

一种固态硬盘页级闪存转换层设计方法
技术领域
本发明属于固态硬盘固件优化设计领域,具体涉及了一种固态硬盘页级闪存转换层设计方法。
背景技术
随着云计算、移动互联网等新一代信息技术的快速发展,数据量呈现出指数级增长,由此对于数据的处理和存储提出了更高的要求。得益于半导体技术的快速发展,一种以NAND为介质的固态硬盘,由于其高速的读写速率等诸多优点而取代传统硬盘。
NAND闪存的结构特性:1)以页(page)、块(block)、平面(plane)从小到大嵌套组成。2)基本操作分为:读、写、擦除,读与写以页为基本单位,擦除以块为基本单位。3)读、写、擦除三种操作的响应时间不同,读最快,写次之,擦除最慢。4)写入数据前必须进行擦除,即不支持原地更新。5)擦除次数有限,超过一定的擦除阈值,NAND闪存的整体性能就会大幅下降,即使用寿命有限。
由于NAND闪存特殊的结构,传统的文件系统无法直接应用在固态硬盘上,所以闪存转换层(Flash Translation Layer,FTL)应运而生。闪存转换层是处于上层文件系统与底层NAND存储介质之间的中间软件层,用以隐藏闪存的擦除特性,只提供读写操作,并完成逻辑地址与物理地址之间的映射,使闪存适用于经典的文件系统。广义的闪存转换层在完成地址映射之外,还包括磨损均衡和垃圾回收。
针对操作的细粒度不同,闪存转换层设计可以分为三类:基于页的闪存转换层设计、基于块的闪存转换层设计以及混合的闪存转换层设计。由于基于页的闪存转换层操作粒度更细,使其具有很强的灵活性,在垃圾回收过程中有效减少有效页复制次数,能够充分利用闪存的所有物理空间。所以本发明也采用了一种固态硬盘的页级闪存转换层设计。
基于页的闪存转换层通过建立逻辑页与物理页之间的映射关系,每一个页都有一个映射项,使得映射表占用大量空间,且随着闪存容量增大,映射表会迅速增大。而为了快速的响应请求,映射信息通常存放在RAM,极大增加了成本与功耗。DFTL是一种经典的纯页级闪存转换层设计,其通过将NAND闪存划分为数据块和翻译块,并在RAM中添加全局翻译表,来实现按需的将储存在翻译块的映射信息提取到RAM中,以避免RAM随着闪存增大而无休止的增大。但由于写请求导致映射项的不断改变,当改变后的映射对因为有限的RAM空间不得不回写至翻译页时,会造成翻译页的频繁更新,从而影响固态硬盘系统性能,以及减少NAND闪存寿命。
发明内容
针对上述现有技术的不足之处,本发明公布一种固态硬盘页级闪存转换层设计,实现高灵活性的页级映射的同时,极大程度上减少由于数据更新导致的翻译页频繁更新,进而提升整体系统性能,延长固态硬盘使用寿命。
为实现本发明的目的,本发明采用以下技术方案:
一种固态硬盘页级闪存转换层设计方法,其将NAND闪存划分为两个部分:数据块区域和翻译块区域,数据块区域用于储存常规用户数据,翻译块区域只储存映射信息,且整个闪存采用基于页的映射。RAM被分为W-CMT、R-CMT、GTD三个部分:W-CMT用于储存高访问频次的写数据映射信息;R-CMT用于储存高访问频次的读数据映射信息、GTD用于记录映射块中的地址映射项。
所述转换层工作过程如下:
S1,访问请求到达,判断请求是否在W-CMT命中:若命中,执行S2;否则执行S4。
S2,将映射信息迁移至W-CMT的最近使用最多使用(Most RecentlyUsed,MRU)位置,然后执行S3。
S3,判断访问请求类型:若是写请求,则执行S15;否则执行S18。
S4,判断请求是否在R-CMT命中:若命中,执行S5;否则,执行S8。
S5,判断访问请求类型:若是写,则执行S6;否则执行S7。
S6,判断W-CMT的是否有空闲,如无空闲,则执行W-CMT剔除操作;然后将映射信息从R-CMT迁移至W-CMT的MRU位置,然后执行S15。
S7,将映射信息迁移至R-CMT的MRU位置,然后执行S18。
S8,判断访问请求类型:若是写请求,则执行S9;否则执行S11。
S9,判断W-CMT的空闲大小是否大于请求大小,若小于,则执行W-CMT剔除操作直到可以容纳请求大小个映射项,然后执行S10;否则直接执行S10。
S10,通过GTD,将请求大小个映射信息一同加载到W-CMT的MRU位置,然后执行S15。
S11,判断R-CMT的空闲大小是否大于请求大小和预取大小,若小于,则执行R-CMT剔除操作直到R-CMT的空闲大小大于请求大小和预取大小,然后执行S12;否则直接执行S12;S12,判断请求大小是否大于预取大小:若大于,则执行S13;否则,执行S14。
S13,通过GTD,将请求大小个映射信息一同加载到R-CMT的MRU位置,然后执行S18。
S14,通过GTD,将预取大小个映射信息一同加载到R-CMT的MRU位置,然后执行S18。
S15,为用户数据分配新的空闲物理数据页,然后执行S16。
S16,依据原数据页与新分配数据页,响应写访问请求,然后执行S17。
S17,更新W-CMT中的映射信息,即将更新标志位置为脏,物理页号置为步骤S15分配的物理页号。结束操作。
S18,依据映射信息,响应读访问请求。结束操作。
进一步的,所述的W-CMT映射缓存区记录的映射项包括:逻辑页号LPN、物理页号PPN、更新标志Update_flag。步骤S6和S9中所述的W-CMT采用干净映射项优先剔除的最近最少使用(CFLRU)队列管理方式,在队列尾部设置大小为ω的优先剔除区域,剔除时优先剔除该区域的干净映射项(Update_flag=0),即直接删除Update_flag=0的映射项;如该区域不存在干净映射项,则将LRU位置的脏映射项(Update_flag=1)及与它属于同一个翻译页的其它映射项一同回写到闪存翻译块,然后删除LRU位置的映射项,并将回写的其他映射项的置为干净(Update_flag=0)。具体方法如下:
S91,在W-CMT的优先置换区从后往前查找是否有干净映射项(Update_flag=0):若有,则执行S97;否则执行S92。
S92,选择W-CMT中LRU位置的映射项作为受害项。
S93,判断翻译块闪存空间是否满:若满,执行垃圾回收操作,然后执行S94;否则直接执行S94。
S94,分配新的空闲翻译页。然后执行S95。
S95,将受害项、同翻译页下的其它映射项、以及原翻译页中的其它有效映射项一同写入到新分配的翻译页中,并更新GTD和置原翻译页无效。然后执行S96。
S96,将W-CMT中的LRU位置的映射项剔除,并将同翻译页中的映射项置为干净(Update_flag=0)。然后执行S98。
S97,将查找到的干净页映射项删除后执行S98。
S98,结束本次W-CMT的剔除操作。
进一步的,所述的R-CMT映射缓存区记录的映射项包括:逻辑页号(Logic PageNumber,LPN)、物理页号(Physical Page Number,PPN)。步骤S11中所述的R-CMT采用普通的LRU队列管理方式。剔除时,由于R-CMT仅储存干净的读映射信息,所以在R-CMT满时,仅需删除R-CMT中LRU位置的映射项。
本发明与现有技术相比,有益效果是:本发明提出的固态硬盘页级闪存转换层设计采用分类处理思想,通过将映射缓存区按读写分区,针对不同请求的不同特性,选择不同的映射缓存分区,充分利用了负载的时间性和空间本地性。并且利用聚簇策略,批量更新脏映射信息。使得该闪存转换层在多种负载测试条件下都能获得较好的系统响应时间,有效减少了翻译页的写次数,提升固态硬盘的总体性能和使用寿命。
附图说明
图1:本发明的闪存转换层总体架构
图2:本发明的请求处理总流程图
图3:本发明的W-CMT的聚簇剔除示意图
图4:本发明的W-CMT剔除流程
图5:本发明写请求未命中且需要剔除时的具体案例
图6:本发明写请求在R-CMT命中时的具体案例
图7:本发明写请求在W-CMT命中时的具体案例
图8:本发明读请求在RAM未命中,需批量加载的具体案例
具体实施方式
为了使本领域技术人员能更好地理解本发明的技术方案,下面将结合附图以及具体实施方式,对本发明进行详细的介绍说明。
由于NAND闪存不能原地更新,写访问请求会导致映射信息的改变,频繁的映射信息更新,会导致闪存翻译块的磨损次数增加,写放大系数变大,从而造成固态硬盘性能下降。因此,本发明在进行闪存转换层设计时,重点优化了写映射项的更新方式。
本发明提出的固态硬盘页级闪存转换层设计,其将映射缓存区划分成三个部分:写映射缓存区(W-CMT)、读映射缓存区(R-CMT)、全局翻译目录(GTD)。
W-CMT是用来缓存高频访问的写映射信息。当有写请求到达时,如果在缓存区中存在对应的映射信息,无论在W-CMT还是R-CMT命中,都将迁移到W-CMT的MRU(最近使用)位置。W-CMT为每个映射项记录逻辑页号(LPN)、物理页号(PPN)和更新标志(Update_flag)3个信息,如图1所示。若未能在缓存区中找到对应的映射信息,则通过GTD将映射信息加载到W-CMT。当W-CMT满时,如图3所示,通过干净项优先剔除的最近最少使用(CFLRU)管理策略,受害项优先从置换区内的干净映射项中进行选择,当优先置换区不存在干净项时,则选取LRU位置的映射信息进行剔除,并同时将与受害项在同一翻译页内的其他映射项一同回写。
R-CMT是用来缓存高频访问的读映射信息。R-CMT为每个映射项记录LPN和PPN。当读访问请求的映射信息不在映射缓存中时,且请求大小小于预取大小时,则通过提前预取一部分请求后续的映射信息,以提高R-CMT的命中率,减少多次通过GTD读闪存映射页所带来的延迟。由于R-CMT缓存的映射信息都是读访问请求,并且在R-CMT中命中的写访问请求都迁移到了W-CMT中。所以R-CMT中不存在发生过变更的映射信息,即R-CMT中的映射信息都是干净的,所以在R-CMT满时,只需按照LRU队列管理策略,将LRU位置的映射信息剔除。
GTD是用来缓存虚拟翻译页号与物理翻译页号的映射信息。每一个访问请求都有一个逻辑页号,通过对逻辑页号进行运算,可以获得该逻辑页号对应的虚拟翻译页号(其中MVPN表示虚拟翻译页号,MP表示每个翻译页中的映射项数目,代表下取整)。通过GTD中虚拟翻译页号与物理翻译页号的映射,查找对应的物理翻译页。在物理翻译页中,根据页偏移量,获得该逻辑页号所对应的物理页号。从而实现从NAND闪存中读取逻辑页映射信息。
本发明方法的实现流程如图2所示:
步骤1、当访问请求到达,首先判断请求是否在W-CMT命中:若请求在W-CMT命中,执行步骤2;否则执行步骤4。
步骤2、将映射信息迁移至W-CMT的MRU(最近最多使用)位置。
步骤3、判断访问请求类型:若访问请求类型是写请求,则执行步骤15;否则执行步骤18。
步骤4、判断请求是否在R-CMT命中:若请求在R-CMT命中,执行步骤5;否则执行步骤8。
步骤5、判断访问请求类型:若访问请求类型是写请求,则执行步骤6;否则执行步骤7。
步骤6、判断W-CMT的是否有空闲,如无空闲,则执行W-CMT剔除操作;然后将映射信息从R-CMT迁移至W-CMT的MRU位置,然后执行步骤15。
步骤7、将映射信息迁移至R-CMT的MRU位置,然后执行步骤18。
步骤8、判断访问请求类型:若是访问请求类型是写请求,则执行步骤9;否则执行步骤11。
步骤9、判断W-CMT的空闲大小是否大于访问请求大小,若小于,则执行W-CMT剔除操作,直到W-CMT能够容纳请求大小个映射信息,然后执行步骤10;否则直接执行步骤10。
步骤10、通过GTD,将请求大小个映射信息一同加载到W-CMT的MRU位置,然后执行步骤15。
步骤11、判断R-CMT的空闲大小是否大于访问请求大小和预取大小,若小于,则执行R-CMT剔除操作直到R-CMT的空闲大小大于请求大小和预取大小,然后执行步骤12;否则直接执行步骤13。
步骤12、判断访问请求大小是否大于预取大小:若大于,则执行步骤13;否则,执行步骤14。
步骤13、通过GTD,将访问请求大小个映射信息一同加载到R-CMT的MRU位置,然后执行步骤18。
步骤14、通过GTD,将预取大小个映射信息一同加载到R-CMT的MRU位置,然后执行步骤18。
步骤15、为用户数据分配新的空闲物理数据页,然后执行步骤16。
步骤16、依据原数据页与新分配数据页,响应写访问请求,然后执行步骤17。
步骤17、更新W-CMT中的映射信息,即将更新标志位,置为脏(Update_flag=1),物理页号置为步骤15分配的物理页号,结束操作。
步骤18、依据映射信息,响应读访问请求。结束操作。
本发明中所述的W-CMT数据剔除流程如图4所示,通过剔除最近最少使用的映射信息以提供写入最访问的中映射信息的空间。通过剔除优先置换区的干净映射信息,以减少不必要的翻译页回写次数。并且由于一个翻译页储存512项甚至更多的映射信息,因此在不得已必须剔除脏映射信息时,通过将同属于某个翻译页的映射信息一同聚簇回写,可以极大程度上减少了翻译页的回写次数,提升整体系统性能和闪存的使用寿命。
步骤9所述的W-CMT的剔除操作过程如下:
S91,在W-CMT的优先置换区从后往前查找是否有干净映射项(Update_flag=0):若有则执行S97;否则执行S92。
S92,选择W-CMT中LRU位置的映射项作为受害项。
S93,判断翻译块区域闪存空间是否满:若满,执行垃圾回收操作,然后执行S94;否则直接执行S94。
S94,分配新的空闲翻译页。然后执行S95。
S95,将受害项、同翻译页下的其它映射项、以及原翻译页中的其它有效映射项一同写入到新分配的空闲翻译页中,并更新GTD,同时置原翻译页无效。然后执行S96。
S96,将W-CMT中的LRU位置的映射项剔除,并将同翻译页中的映射项置为干净(Update_flag=0),然后执行S98。
S97,将查找到的干净页映射项删除后执行S98。
S98,结束本次W-CMT的剔除操作。
下面结合具体的几组实际请求,对本发明的闪存转换层设计的处理流程进行进一步说明,在实例中,假设数据块大小为4个数据页,一个翻译页储存512个映射项(即MP=512)。
实施例1:写请求不在W-CMT、R-CMT命中。
假设映射缓冲区初始状态如图5中“初始状态”所示,现有一个“访问数据页LPN=1280,写访问请求,请求大小为1”的请求到达,其处理过程如下所示:
C1,当一个访问请求到来时(LPN=1280),先查询W-CMT,在W-CMT中未查询到请求映射项,然后在R-CMT中查询,同样未查询到请求映射项。此时,需要将访问请求的映射信息加载到W-CMT中。
C2,此时W-CMT处于已满状态,需要选择一个映射项进行剔除。由于优先置换区不存在干净映射信息,则选择LRU位置的映射信息(LPN=6)作为受害项(即待剔除项)。
C3,通过受害项的LPN,计算得MVPN=0,查找GTD得翻译页MPPN=21。
C4,C5,将受害映射项(LPN=6)及其同一翻译页下的映射项(LPN=0,4,5)更新到翻译页中。这里假设新的空闲翻译页是MPPN=23,将原翻译页的有效映射项(原MPPN=21中除LPN=0,4,5,6的其余映射项)与更新映射项(LPN=0,4,5,6)按照LPN顺序写入新的翻译页中,将新翻译页置为有效状态,旧翻译页设置为无效。
C6,将GTD中(MVPN=0,MPPN=21)的虚拟映射项变更为(MVPN=0,MPPN=23)。
C7,将受害映射项LPN=6剔除。
C8,将其他回写的映射项(LPN=0,4,5)的更新位,置为干净(Update_flag=0)。
C9,C10,根据请求LPN号求得MVPN=2,查询GTD,得MPPN=15
C11,C12,C13,通过翻译页获取访问请求对应的映射信息,并将映射信息加载到W-CMT的MRU位置。
C14,闪存分配新的空闲数据页(PPN=661)用于数据对写入,并将原数据页(PPN=660)置为无效,新数据页(PPN=661)置为有效,并更新W-CMT中映射信息的PPN,以及将更新位,置为脏(Update_flag=1)。
综上所述,处理完成后的映射缓存区状态如图5中“结束状态”所示。
实施例2:写请求在R-CMT命中。
假设映射缓冲区初始状态如图6中“初始状态”所示,现有一个“访问数据页LPN=1280,写访问请求,请求大小为1”的请求到达,其处理过程如下所示:C1,当一个访问请求到来时(LPN=1280),先查询W-CMT,在W-CMT中未查询到请求映射项,
C2,然后在R-CMT中查询,在R-CMT中查找到了请求对应映射信息。
C3,此时W-CMT已满,查询优先置换区是否存在干净映射项,得到LPN=833的干净映射项,则将其作为受害项进行剔除。
C4,然后将映射信息从R-CMT中迁移至W-CMT的MRU位置。
C5,假设闪存新分配数据页为PPN=661,更新映射信息,并将更新位,置为脏(Update_flag=1)。
综上所述,处理完成后的映射缓存区状态如图6中“结束状态”所示。
实施例3:写请求在W-CMT命中。
假设映射缓冲区初始状态如图7中“初始状态”所示,现有一个“访问数据页LPN=1280,写访问请求,请求大小为1”的请求到达,其处理过程如下所示:
C1,当一个访问请求到来时(LPN=1280),先查询W-CMT,在W-CMT中查询到请求映射信息。
C2,将映射信息迁移至W-CMT的MRU位置。
C3,假设闪存新分配数据页为PPN=661,更新映射信息,并将更新位,置为脏(Update_flag=1)。
综上所述,处理完成后的映射缓存区状态如图7中“结束状态”所示。
实施例4:读请求未在W-CMT和R-CMT命中。
假设映射缓冲区初始状态如图8中“初始状态”所示,现有一个“访问数据页LPN=1280,读访问请求,请求大小为5(大于预取大小)”的请求到达,其处理过程如下所示:
C1,当一个访问请求到来时(LPN=1280),先查询W-CMT,在W-CMT中未查询到请求的映射信息。
C2,然后在R-CMT中查询,同未查询到请求映射信息。
C3,通过请求的LPN,查找GTD得翻译页MPPN=21。
C4,查找到翻译页中对应请求的映射信息。
C5,根据LRU原则,剔除请求大小个映射项(LPN=4,532,5,123,883)。
C6,C7,将请求大小个映射信息一同加载到R-CMT的MRU位置。
综上所述,处理完成后的映射缓存区状态如图8中“结束状态”所示。
以上所述仅为本发明的优先实施例而已,并不用于限制本发明,对应本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同的替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种固态硬盘页级闪存转换层设计方法,其特征在于:
将NAND闪存划分为两个部分:数据块区域和翻译块区域,数据块区域用于储存常规用户数据,翻译块区域只储存映射信息,且整个闪存采用基于页的映射;RAM被分为W-CMT、R-CMT、GTD三个部分:W-CMT用于储存高访问频次的写数据映射信息;R-CMT用于储存高访问频次的读数据映射信息、GTD用于记录映射块中的地址映射项。
2.根据权利要求1所述的一种固态硬盘页级闪存转换层设计方法,其特征在于包括如下步骤:
步骤1、当访问请求到达,首先判断请求是否在W-CMT命中,若请求在W-CMT命中,执行步骤2;否则执行步骤4;
步骤2、将映射信息迁移至W-CMT的MRU(最近使用)位置;
步骤3、判断访问请求类型:若访问请求类型是写请求,则执行步骤15;否则执行步骤18;
步骤4、判断请求是否在R-CMT命中:若请求在R-CMT命中,执行步骤5;否则执行步骤8;
步骤5、判断访问请求类型:若访问请求类型是写请求,则执行步骤6;否则执行步骤7;
步骤6、判断W-CMT的是否有空闲,如无空闲,则执行W-CMT剔除操作;然后将映射信息从R-CMT迁移至W-CMT的MRU位置,然后执行步骤15;
步骤7、将映射信息迁移至R-CMT的MRU位置,然后执行步骤18;
步骤8、判断访问请求类型:若是访问请求类型是写请求,则执行步骤9;否则执行步骤11;
步骤9、判断W-CMT的空闲大小是否大于访问请求大小,若小于,则执行W-CMT剔除操作,直到W-CMT能够容纳请求大小个映射信息,然后执行步骤10;否则直接执行步骤10;
步骤10、通过GTD,将请求大小个映射信息一同加载到W-CMT的MRU位置,然后执行步骤15;
步骤11、判断R-CMT的空闲大小是否大于访问请求大小和预取大小,若小于,则执行R-CMT剔除操作,然后执行步骤12;否则直接执行步骤13;
步骤12、判断访问请求大小是否大于预取大小:若大于,则执行步骤13;否则,执行步骤14;
步骤13、通过GTD,将访问请求大小个映射信息一同加载到R-CMT的MRU位置,然后执行步骤18;
步骤14、通过GTD,将预取大小个映射信息一同加载到R-CMT的MRU位置,然后执行步骤18;
步骤15、为用户数据分配新的空闲物理数据页,然后执行步骤16;
步骤16、依据原数据页与新分配数据页,响应写访问请求,然后执行步骤17;
步骤17、更新W-CMT中的映射信息,即将更新标志位置为脏,物理页号置为步骤15分配的物理页号,结束操作;
步骤18、依据映射信息,响应读访问请求;结束操作。
3.根据权利要求2所述的一种固态硬盘页级闪存转换层设计方法,其特征在于步骤6和步骤9中所述的W-CMT采用干净映射项优先剔除的最近最少使用(CFLRU)队列管理方式,在队列尾部设置大小为ω的优先剔除区域,剔除时优先剔除该区域的干净映射项(Update_flag=0),即直接删除Update_flag=0的映射项;如该区域不存在干净映射项,则将LRU位置的脏映射项(Update_flag=1)及与它属于同一个翻译页的其它映射项一同回写到闪存翻译块区域,然后删除LRU位置的映射项,并将回写的其他映射项的置为干净(Update_flag=0)。
4.根据权利要求2或3所述的一种固态硬盘页级闪存转换层设计方法,其特征在于所述的W-CMT的剔除操作过程如下:
S91,在W-CMT的优先置换区从后往前查找是否有干净页映射项(Update_flag=0):若有则执行S97;否则执行S92;
S92,选择W-CMT中LRU位置的映射项作为受害项;
S93,判断翻译块区域闪存空间是否满,若满,执行垃圾回收操作;
S94,分配新的空闲翻译页;
S95,将受害项、同翻译页下的其它映射项、以及原翻译页中的其它有效映射项一同写入到新分配的空闲翻译页中,并更新GTD,同时置原翻译页无效;
S96,将W-CMT中的LRU位置的映射项剔除,并将同翻译页中的映射项置为干净(Update_flag=0),然后执行S98;
S97,将查找到的干净页映射项删除后执行S98;
S98,结束本次W-CMT的剔除操作。
5.根据权利要求4所述的一种固态硬盘页级闪存转换层设计方法,其特征在于所述的W-CMT映射缓存区记录的映射项包括:逻辑页号LPN、物理页号PPN、更新标志Update_flag。
6.根据权利要求5所述的一种固态硬盘页级闪存转换层设计方法,其特征在于所述的R-CMT映射缓存区记录的映射项包括:逻辑页号(Logic Page Number,LPN)、物理页号(Physical Page Number,PPN)。
7.根据权利要求6所述的一种固态硬盘页级闪存转换层设计方法,其特征在于步骤11中所述的R-CMT采用普通的LRU队列管理方式;剔除时,由于R-CMT仅储存干净的读映射信息,所以在R-CMT满时,仅需删除R-CMT中LRU位置的映射项。
CN201811038059.4A 2018-09-06 2018-09-06 一种固态硬盘页级闪存转换层设计方法 Active CN109446117B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811038059.4A CN109446117B (zh) 2018-09-06 2018-09-06 一种固态硬盘页级闪存转换层设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811038059.4A CN109446117B (zh) 2018-09-06 2018-09-06 一种固态硬盘页级闪存转换层设计方法

Publications (2)

Publication Number Publication Date
CN109446117A true CN109446117A (zh) 2019-03-08
CN109446117B CN109446117B (zh) 2023-02-28

Family

ID=65530270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811038059.4A Active CN109446117B (zh) 2018-09-06 2018-09-06 一种固态硬盘页级闪存转换层设计方法

Country Status (1)

Country Link
CN (1) CN109446117B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262982A (zh) * 2019-05-05 2019-09-20 杭州电子科技大学 一种固态硬盘地址映射的方法
CN110413537A (zh) * 2019-07-25 2019-11-05 杭州电子科技大学 一种面向混合固态硬盘的闪存转换层及转换方法
CN112052190A (zh) * 2020-09-03 2020-12-08 杭州电子科技大学 一种基于布隆过滤器和二级lru表的固态硬盘热数据识别方法
CN112559384A (zh) * 2020-12-17 2021-03-26 南昌航空大学 一种基于非易失存储器的混合固态盘动态分区方法
CN113220241A (zh) * 2021-05-27 2021-08-06 衢州学院 一种基于跨层设计的混合ssd性能与寿命优化方法
CN113342569A (zh) * 2021-06-17 2021-09-03 哈尔滨工业大学 一种用于闪存胞元不可靠状态消除的等长编解码方法
CN113435109A (zh) * 2021-06-04 2021-09-24 衢州学院 一种混合ssd的性能与寿命的优化方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100122035A1 (en) * 2008-11-13 2010-05-13 International Business Machines Corporation Spiral cache memory and method of operating a spiral cache
CN102662856A (zh) * 2012-04-27 2012-09-12 中国科学院计算技术研究所 一种固态硬盘及其存取方法
CN103026346A (zh) * 2010-07-27 2013-04-03 国际商业机器公司 包括固态存储器设备的存储系统中的逻辑到物理地址映射
CN103473266A (zh) * 2013-08-09 2013-12-25 记忆科技(深圳)有限公司 固态硬盘及其删除重复数据的方法
CN104636285A (zh) * 2015-02-03 2015-05-20 北京麓柏科技有限公司 一种闪存存储系统及其读写、删除方法
CN105159622A (zh) * 2015-10-22 2015-12-16 湖南国科微电子股份有限公司 一种减小ssd读写io时延的方法与系统
CN106293521A (zh) * 2016-08-02 2017-01-04 华中科技大学 一种映射粒度自适应的闪存转换层管理方法
CN106815152A (zh) * 2016-12-27 2017-06-09 华中科技大学 一种优化页级闪存转换层的方法
CN107168888A (zh) * 2017-05-19 2017-09-15 惠州佰维存储科技有限公司 Nand闪存的映射表管理方法及其系统
CN107423229A (zh) * 2017-03-16 2017-12-01 杭州电子科技大学 一种面向页级ftl的缓冲区改进方法
CN107943719A (zh) * 2017-11-28 2018-04-20 杭州电子科技大学 一种基于请求分类的闪存转换层控制方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100122035A1 (en) * 2008-11-13 2010-05-13 International Business Machines Corporation Spiral cache memory and method of operating a spiral cache
CN103026346A (zh) * 2010-07-27 2013-04-03 国际商业机器公司 包括固态存储器设备的存储系统中的逻辑到物理地址映射
CN102662856A (zh) * 2012-04-27 2012-09-12 中国科学院计算技术研究所 一种固态硬盘及其存取方法
CN103473266A (zh) * 2013-08-09 2013-12-25 记忆科技(深圳)有限公司 固态硬盘及其删除重复数据的方法
CN104636285A (zh) * 2015-02-03 2015-05-20 北京麓柏科技有限公司 一种闪存存储系统及其读写、删除方法
CN105159622A (zh) * 2015-10-22 2015-12-16 湖南国科微电子股份有限公司 一种减小ssd读写io时延的方法与系统
CN106293521A (zh) * 2016-08-02 2017-01-04 华中科技大学 一种映射粒度自适应的闪存转换层管理方法
CN106815152A (zh) * 2016-12-27 2017-06-09 华中科技大学 一种优化页级闪存转换层的方法
CN107423229A (zh) * 2017-03-16 2017-12-01 杭州电子科技大学 一种面向页级ftl的缓冲区改进方法
CN107168888A (zh) * 2017-05-19 2017-09-15 惠州佰维存储科技有限公司 Nand闪存的映射表管理方法及其系统
CN107943719A (zh) * 2017-11-28 2018-04-20 杭州电子科技大学 一种基于请求分类的闪存转换层控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周权彪: "基于缓存映射项重用距离的闪存地址映射方法", 《计算机研究与发展》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262982A (zh) * 2019-05-05 2019-09-20 杭州电子科技大学 一种固态硬盘地址映射的方法
CN110413537A (zh) * 2019-07-25 2019-11-05 杭州电子科技大学 一种面向混合固态硬盘的闪存转换层及转换方法
CN110413537B (zh) * 2019-07-25 2021-08-24 杭州电子科技大学 一种面向混合固态硬盘的闪存转换层及转换方法
CN112052190A (zh) * 2020-09-03 2020-12-08 杭州电子科技大学 一种基于布隆过滤器和二级lru表的固态硬盘热数据识别方法
CN112559384A (zh) * 2020-12-17 2021-03-26 南昌航空大学 一种基于非易失存储器的混合固态盘动态分区方法
CN112559384B (zh) * 2020-12-17 2022-04-15 南昌航空大学 一种基于非易失存储器的混合固态盘动态分区方法
CN113220241A (zh) * 2021-05-27 2021-08-06 衢州学院 一种基于跨层设计的混合ssd性能与寿命优化方法
CN113435109A (zh) * 2021-06-04 2021-09-24 衢州学院 一种混合ssd的性能与寿命的优化方法
CN113435109B (zh) * 2021-06-04 2024-01-30 衢州学院 一种混合ssd的性能与寿命的优化方法
CN113342569A (zh) * 2021-06-17 2021-09-03 哈尔滨工业大学 一种用于闪存胞元不可靠状态消除的等长编解码方法
CN113342569B (zh) * 2021-06-17 2022-02-11 哈尔滨工业大学 一种用于闪存胞元不可靠状态消除的等长编解码方法

Also Published As

Publication number Publication date
CN109446117B (zh) 2023-02-28

Similar Documents

Publication Publication Date Title
CN109446117A (zh) 一种固态硬盘页级闪存转换层设计方法
CN103885728B (zh) 一种基于固态盘的磁盘缓存系统
US10241919B2 (en) Data caching method and computer system
US7203815B2 (en) Multi-level page cache for enhanced file system performance via read ahead
CN105930282B (zh) 一种用于nand flash的数据缓存方法
CN103136121B (zh) 一种固态盘的缓存管理方法
CN102789427B (zh) 数据储存装置与其操作方法
CN109783398B (zh) 一种基于相关感知页面级ftl固态硬盘性能优化方法
CN102981963B (zh) 一种固态盘的闪存转换层的实现方法
CN104166634A (zh) 一种固态盘系统中的映射表缓存管理方法
CN109582593B (zh) 一种基于计算的ftl地址映射读、写方法
CN107943719B (zh) 一种基于请求分类的闪存转换层控制方法
CN114546296B (zh) 一种基于zns固态硬盘的全闪存系统和地址映射方法
CN107589908B (zh) 一种基于固态盘缓存系统中非对齐更新数据的合并方法
CN107423229B (zh) 一种面向页级ftl的缓冲区改进方法
CN108845957B (zh) 一种置换和回写自适应的缓冲区管理方法
CN106569959A (zh) 一种基于ssd的缓存替换方法及系统
CN106681668A (zh) 一种基于固态盘缓存的混合式存储系统及存储方法
CN110262982A (zh) 一种固态硬盘地址映射的方法
CN107590084A (zh) 一种基于分类策略的页级缓冲区改进方法
CN110968269A (zh) 基于scm与ssd的键值存储系统及读写请求处理方法
CN111506517B (zh) 一种基于访问局部性的闪存页级地址映射方法及其系统
CN108664217B (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
US20240020014A1 (en) Method for Writing Data to Solid-State Drive
CN115203079A (zh) 一种将数据写入固态硬盘的方法

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