首页 > 专利 > 杭州电子科技大学 > 一种固态硬盘页级闪存转换层设计方法专利详情

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

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2018-09-06
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2019-04-02
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2023-02-28
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2038-09-06
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201811038059.4 申请日 2018-09-06
公开/公告号 CN109446117B 公开/公告日 2023-02-28
授权日 2023-02-28 预估到期日 2038-09-06
申请年 2018年 公开/公告年 2023年
缴费截止日
分类号 G06F12/123 主分类号 G06F12/123
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 5
权利要求数量 6 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2010.05.13周权彪.基于缓存映射项重用距离的闪存地址映射方法《.计算机研究与发展》.2018,第55卷(第5期),第1065-1076页.;
引用专利 US2010122035A 被引证专利
专利权维持 4 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 姚英彪、颜明博、周杰、冯维、许晓荣、刘兆霆 第一发明人 姚英彪
地址 浙江省杭州市下沙高教园区2号大街 邮编 310018
申请人数量 1 发明人数量 6
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州君度专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
朱月芬
摘要
本发明公开了一种固态硬盘页级闪存转换层设计方法。本发明将NAND闪存划分为两个部分:数据块区域和翻译块区域,数据块区域用于储存常规用户数据,翻译块区域只储存映射信息,且整个闪存采用基于页的映射。RAM被分为W‑CMT、R‑CMT、GTD三个部分:W‑CMT用于储存高访问频次的写数据映射信息;R‑CMT用于储存高访问频次的读数据映射信息、GTD用于记录映射块中的地址映射项。本发明实现高灵活性的页级映射的同时,极大程度上减少由于数据更新导致的翻译页频繁更新,进而提升整体系统性能,延长固态硬盘使用寿命。
  • 摘要附图
    一种固态硬盘页级闪存转换层设计方法
  • 说明书附图:图1
    一种固态硬盘页级闪存转换层设计方法
  • 说明书附图:图2
    一种固态硬盘页级闪存转换层设计方法
  • 说明书附图:图3
    一种固态硬盘页级闪存转换层设计方法
  • 说明书附图:图4
    一种固态硬盘页级闪存转换层设计方法
  • 说明书附图:图5
    一种固态硬盘页级闪存转换层设计方法
  • 说明书附图:图6
    一种固态硬盘页级闪存转换层设计方法
  • 说明书附图:图7
    一种固态硬盘页级闪存转换层设计方法
  • 说明书附图:图8
    一种固态硬盘页级闪存转换层设计方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2023-02-28 授权
2 2019-04-02 实质审查的生效 IPC(主分类): G06F 12/123 专利申请号: 201811038059.4 申请日: 2018.09.06
3 2019-03-08 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种固态硬盘页级闪存转换层设计方法,其特征在于:
将NAND闪存划分为两个部分:数据块区域和翻译块区域,数据块区域用于储存常规用户数据,翻译块区域只储存映射信息,且整个闪存采用基于页的映射;RAM被分为W‑CMT、R‑CMT、GTD三个部分:W‑CMT用于储存高访问频次的写数据映射信息;R‑CMT用于储存高访问频次的读数据映射信息、GTD用于记录映射块中的地址映射项;
包括如下步骤:
步骤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、依据映射信息,响应读访问请求;结束操作。

2.根据权利要求1所述的一种固态硬盘页级闪存转换层设计方法,其特征在于步骤6和步骤9中所述的W‑CMT采用干净映射项优先剔除的最近最少使用队列管理方式,在队列尾部设置大小为ω的优先剔除区域,剔除时优先剔除该区域的干净映射项,即直接删除更新标志为干净的映射项;如该区域不存在干净映射项,则将LRU位置的脏映射项及与它属于同一个翻译页的其它映射项一同回写到闪存翻译块区域,然后删除LRU位置的映射项,并将回写的其他映射项的更新标志置为干净。

3.根据权利要求1或2所述的一种固态硬盘页级闪存转换层设计方法,其特征在于所述的W‑CMT的剔除操作过程如下:
S91,在W‑CMT的优先置换区从后往前查找是否有干净页映射项:若有则执行S97;否则执行S92;
S92,选择W‑CMT中LRU位置的映射项作为受害项;
S93,判断翻译块区域闪存空间是否满,若满,执行垃圾回收操作;
S94,分配新的空闲翻译页;
S95,将受害项、同翻译页下的其它映射项、以及原翻译页中的其它有效映射项一同写入到新分配的空闲翻译页中,并更新GTD,同时置原翻译页无效;
S96,将W‑CMT中的LRU位置的映射项剔除,并将同翻译页中的映射项置为干净,然后执行S98;
S97,将查找到的干净页映射项删除后执行S98;
S98,结束本次W‑CMT的剔除操作。

4.根据权利要求3所述的一种固态硬盘页级闪存转换层设计方法,其特征在于所述的W‑CMT映射缓存区记录的映射项包括:逻辑页号LPN、物理页号PPN、更新标志Update_flag。

5.根据权利要求4所述的一种固态硬盘页级闪存转换层设计方法,其特征在于所述的R‑CMT映射缓存区记录的映射项包括:逻辑页号(Logic Page Number,LPN)、物理页号(Physical Page Number,PPN)。

6.根据权利要求5所述的一种固态硬盘页级闪存转换层设计方法,其特征在于步骤11中所述的R‑CMT采用普通的LRU队列管理方式;剔除时,由于R‑CMT仅储存干净的读映射信息,所以在R‑CMT满时,仅需删除R‑CMT中LRU位置的映射项。
说明书

技术领域

[0001] 本发明属于固态硬盘固件优化设计领域,具体涉及了一种固态硬盘页级闪存转换层设计方法。

背景技术

[0002] 随着云计算、移动互联网等新一代信息技术的快速发展,数据量呈现出指数级增长,由此对于数据的处理和存储提出了更高的要求。得益于半导体技术的快速发展,一种以NAND为介质的固态硬盘,由于其高速的读写速率等诸多优点而取代传统硬盘。
[0003] NAND闪存的结构特性:1)以页(page)、块(block)、平面(plane)从小到大嵌套组成。2)基本操作分为:读、写、擦除,读与写以页为基本单位,擦除以块为基本单位。3)读、写、擦除三种操作的响应时间不同,读最快,写次之,擦除最慢。4)写入数据前必须进行擦除,即不支持原地更新。5)擦除次数有限,超过一定的擦除阈值,NAND闪存的整体性能就会大幅下降,即使用寿命有限。
[0004] 由于NAND闪存特殊的结构,传统的文件系统无法直接应用在固态硬盘上,所以闪存转换层(Flash Translation Layer,FTL)应运而生。闪存转换层是处于上层文件系统与底层NAND存储介质之间的中间软件层,用以隐藏闪存的擦除特性,只提供读写操作,并完成逻辑地址与物理地址之间的映射,使闪存适用于经典的文件系统。广义的闪存转换层在完成地址映射之外,还包括磨损均衡和垃圾回收。
[0005] 针对操作的细粒度不同,闪存转换层设计可以分为三类:基于页的闪存转换层设计、基于块的闪存转换层设计以及混合的闪存转换层设计。由于基于页的闪存转换层操作粒度更细,使其具有很强的灵活性,在垃圾回收过程中有效减少有效页复制次数,能够充分利用闪存的所有物理空间。所以本发明也采用了一种固态硬盘的页级闪存转换层设计。
[0006] 基于页的闪存转换层通过建立逻辑页与物理页之间的映射关系,每一个页都有一个映射项,使得映射表占用大量空间,且随着闪存容量增大,映射表会迅速增大。而为了快速的响应请求,映射信息通常存放在RAM,极大增加了成本与功耗。DFTL是一种经典的纯页级闪存转换层设计,其通过将NAND闪存划分为数据块和翻译块,并在RAM中添加全局翻译表,来实现按需的将储存在翻译块的映射信息提取到RAM中,以避免RAM随着闪存增大而无休止的增大。但由于写请求导致映射项的不断改变,当改变后的映射对因为有限的RAM空间不得不回写至翻译页时,会造成翻译页的频繁更新,从而影响固态硬盘系统性能,以及减少NAND闪存寿命。

发明内容

[0007] 针对上述现有技术的不足之处,本发明公布一种固态硬盘页级闪存转换层设计,实现高灵活性的页级映射的同时,极大程度上减少由于数据更新导致的翻译页频繁更新,进而提升整体系统性能,延长固态硬盘使用寿命。
[0008] 为实现本发明的目的,本发明采用以下技术方案:
[0009] 一种固态硬盘页级闪存转换层设计方法,其将NAND闪存划分为两个部分:数据块区域和翻译块区域,数据块区域用于储存常规用户数据,翻译块区域只储存映射信息,且整个闪存采用基于页的映射。RAM被分为W‑CMT、R‑CMT、GTD三个部分:W‑CMT用于储存高访问频次的写数据映射信息;R‑CMT用于储存高访问频次的读数据映射信息、GTD用于记录映射块中的地址映射项。
[0010] 所述转换层工作过程如下:
[0011] S1,访问请求到达,判断请求是否在W‑CMT命中:若命中,执行S2;否则执行S4。
[0012] S2,将映射信息迁移至W‑CMT的最近使用最多使用(Most RecentlyUsed,MRU)位置,然后执行S3。
[0013] S3,判断访问请求类型:若是写请求,则执行S15;否则执行S18。
[0014] S4,判断请求是否在R‑CMT命中:若命中,执行S5;否则,执行S8。
[0015] S5,判断访问请求类型:若是写,则执行S6;否则执行S7。
[0016] S6,判断W‑CMT的是否有空闲,如无空闲,则执行W‑CMT剔除操作;然后将映射信息从R‑CMT迁移至W‑CMT的MRU位置,然后执行S15。
[0017] S7,将映射信息迁移至R‑CMT的MRU位置,然后执行S18。
[0018] S8,判断访问请求类型:若是写请求,则执行S9;否则执行S11。
[0019] S9,判断W‑CMT的空闲大小是否大于请求大小,若小于,则执行W‑CMT剔除操作直到可以容纳请求大小个映射项,然后执行S10;否则直接执行S10。
[0020] S10,通过GTD,将请求大小个映射信息一同加载到W‑CMT的MRU位置,然后执行S15。
[0021] S11,判断R‑CMT的空闲大小是否大于请求大小和预取大小,若小于,则执行R‑CMT剔除操作直到R‑CMT的空闲大小大于请求大小和预取大小,然后执行S12;否则直接执行S12;S12,判断请求大小是否大于预取大小:若大于,则执行S13;否则,执行S14。
[0022] S13,通过GTD,将请求大小个映射信息一同加载到R‑CMT的MRU位置,然后执行S18。
[0023] S14,通过GTD,将预取大小个映射信息一同加载到R‑CMT的MRU位置,然后执行S18。
[0024] S15,为用户数据分配新的空闲物理数据页,然后执行S16。
[0025] S16,依据原数据页与新分配数据页,响应写访问请求,然后执行S17。
[0026] S17,更新W‑CMT中的映射信息,即将更新标志位置为脏,物理页号置为步骤S15分配的物理页号。结束操作。
[0027] S18,依据映射信息,响应读访问请求。结束操作。
[0028] 进一步的,所述的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)。具体方法如下:
[0029] S91,在W‑CMT的优先置换区从后往前查找是否有干净映射项(Update_flag=0):若有,则执行S97;否则执行S92。
[0030] S92,选择W‑CMT中LRU位置的映射项作为受害项。
[0031] S93,判断翻译块闪存空间是否满:若满,执行垃圾回收操作,然后执行S94;否则直接执行S94。
[0032] S94,分配新的空闲翻译页。然后执行S95。
[0033] S95,将受害项、同翻译页下的其它映射项、以及原翻译页中的其它有效映射项一同写入到新分配的翻译页中,并更新GTD和置原翻译页无效。然后执行S96。
[0034] S96,将W‑CMT中的LRU位置的映射项剔除,并将同翻译页中的映射项置为干净(Update_flag=0)。然后执行S98。
[0035] S97,将查找到的干净页映射项删除后执行S98。
[0036] S98,结束本次W‑CMT的剔除操作。
[0037] 进一步的,所述的R‑CMT映射缓存区记录的映射项包括:逻辑页号(Logic Page Number,LPN)、物理页号(Physical Page Number,PPN)。步骤S11中所述的R‑CMT采用普通的LRU队列管理方式。剔除时,由于R‑CMT仅储存干净的读映射信息,所以在R‑CMT满时,仅需删除R‑CMT中LRU位置的映射项。
[0038] 本发明与现有技术相比,有益效果是:本发明提出的固态硬盘页级闪存转换层设计采用分类处理思想,通过将映射缓存区按读写分区,针对不同请求的不同特性,选择不同的映射缓存分区,充分利用了负载的时间性和空间本地性。并且利用聚簇策略,批量更新脏映射信息。使得该闪存转换层在多种负载测试条件下都能获得较好的系统响应时间,有效减少了翻译页的写次数,提升固态硬盘的总体性能和使用寿命。

实施方案

[0047] 为了使本领域技术人员能更好地理解本发明的技术方案,下面将结合附图以及具体实施方式,对本发明进行详细的介绍说明。
[0048] 由于NAND闪存不能原地更新,写访问请求会导致映射信息的改变,频繁的映射信息更新,会导致闪存翻译块的磨损次数增加,写放大系数变大,从而造成固态硬盘性能下降。因此,本发明在进行闪存转换层设计时,重点优化了写映射项的更新方式。
[0049] 本发明提出的固态硬盘页级闪存转换层设计,其将映射缓存区划分成三个部分:写映射缓存区(W‑CMT)、读映射缓存区(R‑CMT)、全局翻译目录(GTD)。
[0050] 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位置的映射信息进行剔除,并同时将与受害项在同一翻译页内的其他映射项一同回写。
[0051] R‑CMT是用来缓存高频访问的读映射信息。R‑CMT为每个映射项记录LPN和PPN。当读访问请求的映射信息不在映射缓存中时,且请求大小小于预取大小时,则通过提前预取一部分请求后续的映射信息,以提高R‑CMT的命中率,减少多次通过GTD读闪存映射页所带来的延迟。由于R‑CMT缓存的映射信息都是读访问请求,并且在R‑CMT中命中的写访问请求都迁移到了W‑CMT中。所以R‑CMT中不存在发生过变更的映射信息,即R‑CMT中的映射信息都是干净的,所以在R‑CMT满时,只需按照LRU队列管理策略,将LRU位置的映射信息剔除。
[0052] GTD是用来缓存虚拟翻译页号与物理翻译页号的映射信息。每一个访问请求都有一个逻辑页号,通过对逻辑页号进行运算,可以获得该逻辑页号对应的虚拟翻译页号(其中MVPN表示虚拟翻译页号,MP表示每个翻译页中的映射项数目,代表下取整)。通过GTD中虚拟翻译页号与物理翻译页号的映射,查找对应的物理翻译页。在物理翻译页中,根据页偏移量,获得该逻辑页号所对应的物理页号。从而实现从NAND闪存中读取逻辑页映射信息。
[0053] 本发明方法的实现流程如图2所示:
[0054] 步骤1、当访问请求到达,首先判断请求是否在W‑CMT命中:若请求在W‑CMT命中,执行步骤2;否则执行步骤4。
[0055] 步骤2、将映射信息迁移至W‑CMT的MRU(最近最多使用)位置。
[0056] 步骤3、判断访问请求类型:若访问请求类型是写请求,则执行步骤15;否则执行步骤18。
[0057] 步骤4、判断请求是否在R‑CMT命中:若请求在R‑CMT命中,执行步骤5;否则执行步骤8。
[0058] 步骤5、判断访问请求类型:若访问请求类型是写请求,则执行步骤6;否则执行步骤7。
[0059] 步骤6、判断W‑CMT的是否有空闲,如无空闲,则执行W‑CMT剔除操作;然后将映射信息从R‑CMT迁移至W‑CMT的MRU位置,然后执行步骤15。
[0060] 步骤7、将映射信息迁移至R‑CMT的MRU位置,然后执行步骤18。
[0061] 步骤8、判断访问请求类型:若是访问请求类型是写请求,则执行步骤9;否则执行步骤11。
[0062] 步骤9、判断W‑CMT的空闲大小是否大于访问请求大小,若小于,则执行W‑CMT剔除操作,直到W‑CMT能够容纳请求大小个映射信息,然后执行步骤10;否则直接执行步骤10。
[0063] 步骤10、通过GTD,将请求大小个映射信息一同加载到W‑CMT的MRU位置,然后执行步骤15。
[0064] 步骤11、判断R‑CMT的空闲大小是否大于访问请求大小和预取大小,若小于,则执行R‑CMT剔除操作直到R‑CMT的空闲大小大于请求大小和预取大小,然后执行步骤12;否则直接执行步骤13。
[0065] 步骤12、判断访问请求大小是否大于预取大小:若大于,则执行步骤13;否则,执行步骤14。
[0066] 步骤13、通过GTD,将访问请求大小个映射信息一同加载到R‑CMT的MRU位置,然后执行步骤18。
[0067] 步骤14、通过GTD,将预取大小个映射信息一同加载到R‑CMT的MRU位置,然后执行步骤18。
[0068] 步骤15、为用户数据分配新的空闲物理数据页,然后执行步骤16。
[0069] 步骤16、依据原数据页与新分配数据页,响应写访问请求,然后执行步骤17。
[0070] 步骤17、更新W‑CMT中的映射信息,即将更新标志位,置为脏(Update_flag=1),物理页号置为步骤15分配的物理页号,结束操作。
[0071] 步骤18、依据映射信息,响应读访问请求。结束操作。
[0072] 本发明中所述的W‑CMT数据剔除流程如图4所示,通过剔除最近最少使用的映射信息以提供写入最访问的中映射信息的空间。通过剔除优先置换区的干净映射信息,以减少不必要的翻译页回写次数。并且由于一个翻译页储存512项甚至更多的映射信息,因此在不得已必须剔除脏映射信息时,通过将同属于某个翻译页的映射信息一同聚簇回写,可以极大程度上减少了翻译页的回写次数,提升整体系统性能和闪存的使用寿命。
[0073] 步骤9所述的W‑CMT的剔除操作过程如下:
[0074] S91,在W‑CMT的优先置换区从后往前查找是否有干净映射项(Update_flag=0):若有则执行S97;否则执行S92。
[0075] S92,选择W‑CMT中LRU位置的映射项作为受害项。
[0076] S93,判断翻译块区域闪存空间是否满:若满,执行垃圾回收操作,然后执行S94;否则直接执行S94。
[0077] S94,分配新的空闲翻译页。然后执行S95。
[0078] S95,将受害项、同翻译页下的其它映射项、以及原翻译页中的其它有效映射项一同写入到新分配的空闲翻译页中,并更新GTD,同时置原翻译页无效。然后执行S96。
[0079] S96,将W‑CMT中的LRU位置的映射项剔除,并将同翻译页中的映射项置为干净(Update_flag=0),然后执行S98。
[0080] S97,将查找到的干净页映射项删除后执行S98。
[0081] S98,结束本次W‑CMT的剔除操作。
[0082] 下面结合具体的几组实际请求,对本发明的闪存转换层设计的处理流程进行进一步说明,在实例中,假设数据块大小为4个数据页,一个翻译页储存512个映射项(即MP=512)。
[0083] 实施例1:写请求不在W‑CMT、R‑CMT命中。
[0084] 假设映射缓冲区初始状态如图5中“初始状态”所示,现有一个“访问数据页LPN=1280,写访问请求,请求大小为1”的请求到达,其处理过程如下所示:
[0085] C1,当一个访问请求到来时(LPN=1280),先查询W‑CMT,在W‑CMT中未查询到请求映射项,然后在R‑CMT中查询,同样未查询到请求映射项。此时,需要将访问请求的映射信息加载到W‑CMT中。
[0086] C2,此时W‑CMT处于已满状态,需要选择一个映射项进行剔除。由于优先置换区不存在干净映射信息,则选择LRU位置的映射信息(LPN=6)作为受害项(即待剔除项)。
[0087] C3,通过受害项的LPN,计算得MVPN=0,查找GTD得翻译页MPPN=21。
[0088] C4,C5,将受害映射项(LPN=6)及其同一翻译页下的映射项(LPN=0,4,5)更新到翻译页中。这里假设新的空闲翻译页是MPPN=23,将原翻译页的有效映射项(原MPPN=21中除LPN=0,4,5,6的其余映射项)与更新映射项(LPN=0,4,5,6)按照LPN顺序写入新的翻译页中,将新翻译页置为有效状态,旧翻译页设置为无效。
[0089] C6,将GTD中(MVPN=0,MPPN=21)的虚拟映射项变更为(MVPN=0,MPPN=23)。
[0090] C7,将受害映射项LPN=6剔除。
[0091] C8,将其他回写的映射项(LPN=0,4,5)的更新位,置为干净(Update_flag=0)。
[0092] C9,C10,根据请求LPN号求得MVPN=2,查询GTD,得MPPN=15
[0093] C11,C12,C13,通过翻译页获取访问请求对应的映射信息,并将映射信息加载到W‑CMT的MRU位置。
[0094] C14,闪存分配新的空闲数据页(PPN=661)用于数据对写入,并将原数据页(PPN=660)置为无效,新数据页(PPN=661)置为有效,并更新W‑CMT中映射信息的PPN,以及将更新位,置为脏(Update_flag=1)。
[0095] 综上所述,处理完成后的映射缓存区状态如图5中“结束状态”所示。
[0096] 实施例2:写请求在R‑CMT命中。
[0097] 假设映射缓冲区初始状态如图6中“初始状态”所示,现有一个“访问数据页LPN=1280,写访问请求,请求大小为1”的请求到达,其处理过程如下所示:C1,当一个访问请求到来时(LPN=1280),先查询W‑CMT,在W‑CMT中未查询到请求映射项,
[0098] C2,然后在R‑CMT中查询,在R‑CMT中查找到了请求对应映射信息。
[0099] C3,此时W‑CMT已满,查询优先置换区是否存在干净映射项,得到LPN=833的干净映射项,则将其作为受害项进行剔除。
[0100] C4,然后将映射信息从R‑CMT中迁移至W‑CMT的MRU位置。
[0101] C5,假设闪存新分配数据页为PPN=661,更新映射信息,并将更新位,置为脏(Update_flag=1)。
[0102] 综上所述,处理完成后的映射缓存区状态如图6中“结束状态”所示。
[0103] 实施例3:写请求在W‑CMT命中。
[0104] 假设映射缓冲区初始状态如图7中“初始状态”所示,现有一个“访问数据页LPN=1280,写访问请求,请求大小为1”的请求到达,其处理过程如下所示:
[0105] C1,当一个访问请求到来时(LPN=1280),先查询W‑CMT,在W‑CMT中查询到请求映射信息。
[0106] C2,将映射信息迁移至W‑CMT的MRU位置。
[0107] C3,假设闪存新分配数据页为PPN=661,更新映射信息,并将更新位,置为脏(Update_flag=1)。
[0108] 综上所述,处理完成后的映射缓存区状态如图7中“结束状态”所示。
[0109] 实施例4:读请求未在W‑CMT和R‑CMT命中。
[0110] 假设映射缓冲区初始状态如图8中“初始状态”所示,现有一个“访问数据页LPN=1280,读访问请求,请求大小为5(大于预取大小)”的请求到达,其处理过程如下所示:
[0111] C1,当一个访问请求到来时(LPN=1280),先查询W‑CMT,在W‑CMT中未查询到请求的映射信息。
[0112] C2,然后在R‑CMT中查询,同未查询到请求映射信息。
[0113] C3,通过请求的LPN,查找GTD得翻译页MPPN=21。
[0114] C4,查找到翻译页中对应请求的映射信息。
[0115] C5,根据LRU原则,剔除请求大小个映射项(LPN=4,532,5,123,883)。
[0116] C6,C7,将请求大小个映射信息一同加载到R‑CMT的MRU位置。
[0117] 综上所述,处理完成后的映射缓存区状态如图8中“结束状态”所示。
[0118] 以上所述仅为本发明的优先实施例而已,并不用于限制本发明,对应本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同的替换、改进等,均应包含在本发明的保护范围之内。

附图说明

[0039] 图1:本发明的闪存转换层总体架构
[0040] 图2:本发明的请求处理总流程图
[0041] 图3:本发明的W‑CMT的聚簇剔除示意图
[0042] 图4:本发明的W‑CMT剔除流程
[0043] 图5:本发明写请求未命中且需要剔除时的具体案例
[0044] 图6:本发明写请求在R‑CMT命中时的具体案例
[0045] 图7:本发明写请求在W‑CMT命中时的具体案例
[0046] 图8:本发明读请求在RAM未命中,需批量加载的具体案例
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号