CN110262982A - 一种固态硬盘地址映射的方法 - Google Patents

一种固态硬盘地址映射的方法 Download PDF

Info

Publication number
CN110262982A
CN110262982A CN201910367737.XA CN201910367737A CN110262982A CN 110262982 A CN110262982 A CN 110262982A CN 201910367737 A CN201910367737 A CN 201910367737A CN 110262982 A CN110262982 A CN 110262982A
Authority
CN
China
Prior art keywords
cmt
gmt
cache
cmtnum
hard disk
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.)
Pending
Application number
CN201910367737.XA
Other languages
English (en)
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
Hangzhou Electronic Science and Technology University
Original Assignee
Hangzhou Electronic Science and Technology 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 Electronic Science and Technology University filed Critical Hangzhou Electronic Science and Technology University
Priority to CN201910367737.XA priority Critical patent/CN110262982A/zh
Publication of CN110262982A publication Critical patent/CN110262982A/zh
Pending legal-status Critical Current

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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

Abstract

本发明公开了一种固态硬盘地址映射的方法,包括以下步骤:步骤S1:在SRAM中建立CMT、GMT、CMTnum和GTD;步骤S2:向CMT中插入映射项前,首先判断CMT缓存槽是否已满,已满则根据CMTnum中最大计数值批量剔除CMT中的映射项;步骤S3:服务连续写请求时,将连续映射项合并成一条插入到CMT中,用LEN表示其映射长度,并更新CMTnum中计数值;步骤S4:服务连续读请求时,若在CMT中未找到该映射记录,则查询SRAM中GMT,若仍未找到,将闪存中对应GMT加载到SRAM中。与现有技术相比,本发明中将多条连续映射记录合并成一条插入到CMT中,降低对缓存槽的占用;批量剔除CMT中映射项,降低GMT更新频率;SRAM中GMT服务文件系统的空间局部性请求,提高对连续数据的处理能力。

Description

一种固态硬盘地址映射的方法
技术领域
本发明涉及数据存储领域,尤其涉及一种固态硬盘地址映射的方 法。
背景技术
固态硬盘(Solid State Driver,SSD)采用半导体作为存储介质。 其无需依赖任何机械装置、不需要寻道,从而降低了I/O请求访问延 迟,同时以功耗低、抗震防摔、体积小等优点逐渐取代机械硬盘。SSD 大多将闪存(NAND Flash)作为存储媒介,NAND Flash的存储方式 依赖其物理特性,现有文件系统不能直接访问或操作SSD,为使现有 文件系统无需做任何改动就能直接访问SSD,SSD使用软件的形式 把对NAND Flash的操作模拟成对磁盘的操作,软件层称为闪存转换 层(Flash Translation Layer,FTL)。FTL存在于文件系统和NAND Flash 之间,隐藏了现有闪存的一些物理特性,并只向文件系统暴露可操作 的逻辑块地址,而逻辑块地址到物理块地址之间的转换,全由FTL 来完成。SSD控制器利用FTL去管理NAND Flash阵列,使得数据 的存储得到了保障。FTL算法对整个SSD来说至关重要,且FTL的 优劣将直接影响到整个产品的性能。
其中地址映射是整个FTL的重要组成部分,它负责将文件系统下 发的所有逻辑块地址转换成NAND Flash可识别的物理块地址,同时 在逻辑块地址与物理块地址之间建立某种映射关系,映射关系会存放 到映射表中,供后续查询及更改。
当文件系统再次需要对指定逻辑块地址进行读写操作时,FTL首 先会在映射表中查询对应的映射关系,根据映射关系找到NAND Flash对应的物理块地址,从而服务文件系统相应的请求。
在现有地址映射算法中,基于需求的页级映射算法(DFTL)保留 了传统页级映射算法的高效性和灵活性,将所有的映射记录全部保存 到NAND Flash中,文件系统需要访问某个逻辑页时,根据其需求加 载相应的一部分映射表到SRAM中来服务此请求,这种基于需求的 策略极大地降低了映射表对SRAM的占用。
DFTL算法将物理块划分为两大类:(1)数据块,(2)全局转 换块。DFTL将文件系统下发的数据写入到数据块中;将页级映射表 写入到全局转换块中,页级映射表中存储的是从逻辑页LPN=0一直 到逻辑页LPN=MaxLPN的连续映射信息。若NAND Flash的物理页数量较多,导致页级映射表的容量较大,一个物理块可能无法保存整张 页级映射表,此时需要多个物理块作为全局转换块。但全局转换块仅 占用整个NAND Flash总容量的2%左右,其余均为数据块,不会影 响到用户的使用空间。全局转换块中的物理页称为全局映射表(Global Mapping Table,GMT),同时设计了全局转换目录(Global TranslationDirectory,GTD)来记录所有GMT的物理地址,通过GTD 来查找对应的GMT从而找到所需的映射信息。通过基于需求的地址 映射,解决了页级映射表过大的问题,同时也将页级映射的灵活性保 留下来。另外,DFTL根据文件系统的时间局部性,即在一段时间内 可能再次访问之前所访问过的内容,设计了缓存映射表(Cache Mapping Table,CMT),来缓存文件系统最近访问过的记录,减少GMT的读写次数,提高整个系统的读写性能。
但DFTL仍然存在一定的缺陷从而限制了整体性能:
1、文件系统的请求通常具有时间局部性和空间局部性两大特性, 若是能同时考虑这两大特性,可减少系统请求之外的额外操作,提高 整个系统的响应能力与性能。DFTL中设计的CMT采用LPU链式算 法,合理利用了文件系统请求的时间局部性,但CMT中每一条映射 项都是独立存在的,前后不存在逻辑空间上的连续,因此DFTL对于 文件系统的连续请求的处理能力较差。
2、CMT的剔除策略开销过大。CMT根据LRU算法将最久未访 问到的映射信息进行剔除,若此映射在CMT中发生了更新,需要将 对应的GMT进行更新,保证每一条映射信息都是有效的。每当CMT 需要剔除一条更新后的映射信息都需要将NAND Flash中对应的某个 GMT进行更新,频繁剔除此类映射信息,就需要频繁更新对应的 GMT,严重影响整个系统的性能,同时也增大了写放大。
因此,怎样才能让FTL能够快速处理文件系统的连续请求以及优 化CMT的剔除策略,降低全局转换页的更新频率,提升整体系统的 性能,是目前急需解决的关键技术。
故,针对现有技术的缺陷,实有必要提出一种技术方案以解决现 有技术存在的技术问题。
发明内容
有鉴于此,确有必要提供一种固态硬盘地址映射的方法,提高固 态硬盘的连续读写能力,同时优化一级缓存CMT的剔除策略,降低 全局转换页的更新频率,提升FTL的寻址效率,从而提高固态硬盘 的性能。
为了克服现有技术存在的技术缺陷,本发明的技术方案如下:
一种固态硬盘地址映射的方法,其特征在于,包括以下步骤:
步骤S1:在SRAM中建立CMT、GMT、CMTnum和GTD;
步骤S2:向CMT中插入映射项前,首先判断CMT缓存槽是否已 满,已满则根据CMTnum中最大计数值批量剔除CMT中的映射项;
步骤S3:服务连续写请求时,将连续映射项合并成一条插入到 CMT中,用LEN表示其映射长度,并更新CMTnum中计数值;
步骤S4:服务连续读请求时,若在CMT中未找到该映射记录, 则查询SRAM中GMT,若仍未找到,将闪存中对应GMT加载到 SRAM中。
作为优选的技术方案,所述的映射表至少需要包括一级缓存 CMT、二级缓存GMT、CMT记录表CMTnum和全局转换目录GTD。
作为优选的技术方案,CMTnum是为了辅助优化CMT而设计, CMTnum以数组的形式来实现。数组下标表示GMT编号;数组值为 计数值,表示CMT中有多少条映射记录属于当前GMT。
作为优选的技术方案,每向CMT中新插入一条映射记录之前, 首先判断CMT缓存槽是否已满,若缓存槽已满,取出CMTnum中最 大计数值的数组下标,批量剔除CMT中所有属于该数组下标所代表 GMT编号的映射记录。
作为优选的技术方案,一级缓存CMT缓存最近写请求所产生的 映射记录。
作为优选的技术方案,一级缓存CMT最大可缓存1024条映射记 录。
作为优选的技术方案,当服务连续写请求时,可将多条连续映射 记录合并成一条映射记录,并用LEN属性表示其映射长度。
作为优选的技术方案,二级缓存GMT是缓存保存在NAND Flash 中的部分连续映射记录。
作为优选的技术方案,CMT中增加了LEN属性,可使多条连续 映射记录合并成一条,并用长度来表示。
作为优选的技术方案,CMTnum是为了辅助优化CMT而设计的, CMTnum是以数组的形式来实现,数组下标表示GMT的编号,数组 值表示CMT中有多少条映射单元属于当前GMT。
作为优选的技术方案,每向CMT中新插入一条映射记录后,计 算该映射记录对应的GMT编号,并更新CMTnum中对应计数值。
作为优选的技术方案,GTD是记录所有GMT在闪存中的物理地 址。
作为优选的技术方案,缓存到内存中的GMT分为WGMT和 RGMT。
作为优选的技术方案,当服务连续读请求且所请求的映射记录不 存在于一级缓存CMT中,查询二级缓存GMT,若二级缓存GMT中 存在其映射记录,即可一次性服务该连续读请求。
作为优选的技术方案,若二级缓存GMT仍未找到该映射记录, 则根据GTD找到对应的GMT,将该GMT加载到WGMT或RGMT 中,即可一次性服务该连续读请求。
与现有技术相比,本发明对CMT增加LEN属性栏,将多条连续 映射记录合并成一条,降低对缓存槽的占用,按归属同一GMT最大 值来批量剔除CMT中映射单元,降低全局映射页的更新频率;二级 缓存可用于服务文件系统的空间局部性请求,提高对连续数据的处理 能力。
附图说明
图1是本发明固态硬盘地址映射的方法总体架构图;
图2是本发明逻辑地址到物理地址映射示意图;
图3是本发明一级缓存CMT基本单元示意图;
图4是本发明一级缓存CMT物理映射中断示意图;
图5是本发明一级缓存CMT逻辑映射中断示意图;
图6是本发明GMT部分结构示意图;
图7是本发明一级缓存CMT剔除示意图;
图8是本发明二级缓存WGMT加载GMT[Z]示意图;
图9是本发明二级缓存RGMT[Z]覆盖WGMT[X]示意图;
图10是本发明二级缓存WGMT搜索示意图;
图11是本发明二级缓存RGMT加载GMT[Z]示意图;
图12是本发明地址映射流程图。
图13为本发明公开一种固态硬盘地址映射的方法的流程框图。
如下具体实施例将结合上述附图进一步说明本发明。
具体实施方式
以下将结合附图对本发明提供的技术方案进一步说明。
参见图1,所示为本发明地址映射策略总体架构:
按照用途,所示的地址映射策略将NAND Flash中的物理块划分 为三部分:空块(Empty Blocks)、数据块(Data Blocks)和索引表 块(Table Blocks)。
在一种优选实施方式中,用于保存SRAM中的CMT、GTD各占 用2个物理块,而GMT会占用N个(几十个)物理块,CMTnum无 需保存。
在一种优选实施方式中,本发明中地址映射总共需要四种索引表: CMT、CMTnum、GTD以及GMT。
其中SRAM中的GMT分为WGMT和RGMT两种。
在一种优选实施方式中,CMT是根据时间局部访问特性缓存最近 请求的映射信息;CMTnum记录CMT中有多少条映射记录在对应的 GMT中;GMT是根据空间局部访问特性缓存连续请求的映射信息; GTD用于记录索引块中对应GMT的物理地址。
在图1中,CMT和GMT中的LPN和PPN分别表示逻辑页地址 和物理页地址,GTD中的VPN和PPN表示GMT编号以及编号对应 的物理地址,CMTnum中的GMTN和Count表示GMT编号以及在 CMT中有多少条映射记录属于当前GMT。以下对SRAM中地址映 射表进行详细介绍:
CMT(Cache Mapping Table,缓存映射表),本发明中也称为一 级映射。
在一种优选实施方式中,CMT只缓存文件系统写请求所需的映射 信息,CMT为写缓存映射表,建立逻辑地址到物理地址的映射。
如图2所示的映射关系,其中LPN=X~Y表示请求的逻辑页范围, PPN=0~M表示物理块中已经写入数据的区域,PPN=M表示当前可 写入的物理位置。则LPN=X~Y将映射到物理块A的PPN=M~N上。
在一种优选实施方式中,保存在CMT中的逻辑地址由四个字节 表示,物理地址由两个字节的物理块地址和两个字节的物理页地址组 成。
文件系统下发请求的逻辑块地址,同时会下发请求数据的长度, 所以在CMT中增加一个长度属性(两个字节表示,单位为Page)。
在一种优选实施方式中,本算法将“四个字节的逻辑地址+四个字 节的物理地址+两个字节的长度”当作一个基本单元(Unit,如图3所 示),那么图2中的映射可表示成图3所示。
在一种优选实施方式中,CMT每服务一条写请求,都需要使用一 个基本单元来记录此请求,因此若有N条写请求则需要N个基本单 元来记录。
在一种优选实施方式中,由于SRAM空间有限,暂定CMT最多 可缓存1024个基本单元。
其中,增加长度属性是为了节省缓存槽的使用,例如文件系统下 发长度为100个页的写请求,DFTL会将此写命令拆分为100条小写 命令,从而建立100条映射记录插入到CMT中,严重占用了CMT 缓存槽;增加长度后,只需要在长度属性栏记录当前映射是连续的多 少条,因此,只需要在CMT中插入一条或几条(可能产生映射中断) 基本单元即可。
进一步的,CMT设置了LEN属性,所请求的长度可能超过一定 条件而产生映射中断。
在一种优选实施方式中,将映射中断分为两种类型:物理映射中 断和逻辑映射中断。物理映射中断由跨越物理块引起,逻辑映射中断 由跨越GMT引起。
在一种优选实施方式中,确定中断顺序:首先判断是否满足逻辑 映射中断条件,然后判断是否满足物理映射中断条件。
在一种优选实施方式中,CMT主要负责在逻辑地址与物理地址之 间建立映射,但NAND Flash的擦除最小单位是物理块,因此当要写 入的逻辑地址范围映射到某个即将写满的物理块,映射中断,组成一 个基本单元。然后继续映射到另外一个物理块,重新组成一个基本单 元。
图4演示了跨越物理块所形成的物理映射中断,UnitH(假设一条 写命令的逻辑地址范围从M到N),首先将逻辑地址M映射到物理 块B1中的物理页B,当物理块B1被写满时,产生映射中断,组成 一条长度为512-B的UnitH1的基本单元。继续映射,将逻辑地址 X+(512-B)映射到物理块B2的物理页0,继续组成一条长度为 N-(M+(512-B))的UnitH2的基本单元。
在一种优选实施方式中,当逻辑地址跨越GMT时,由于需要切 换GMT(保存和加载GMT),因此会产生逻辑映射中断。
如图5所示,UnitH被分为两部分:逻辑地址M到逻辑地址Z-1, 逻辑地址Z到逻辑地址N两部分,前者属于GMT[N],后者属于 GMT[N+1]。
在一种优选实施方式中,CMTnum是为了辅助优化CMT而设计。
在一种优选实施方式中,CMTnum是以数组的形式来实现,数组 下标表示GMT的编号,数组值表示CMT中有多少条映射单元属于 当前GMT。
在一种优选实施方式中,每向CMT中插入一条映射单元,根据 当前映射单元计算出GMT编号,更新CMTnum中对应数组下标的 值加1。
进一步的,判断CMT是否已经缓存了1024条映射单元,若未满 则在插入映射单元的同时更新CMTnum即可;若向CMT中插入新的 映射单元时,判断CMT中存放的映射单元已达到上限,需要剔除一 部分映射单元来缓存新的映射单元。
在一种优选实施方式中,如何选择剔除的内容是根据CMTnum来 确定的,搜索CMTnum中的最大值,取出该最大值的数组下标,即 GMT编号,将CMT中所有属于该GMT中的映射单元全部剔除,进 行批量更新。
GMT(Global Mapping Table,全局转换页)
在一种优选实施方式中,本发明中所设计的GMT中逻辑地址用 数组下标来表示,物理地址用数组值来表示。
图6展示其中一部分逻辑地址到物理地址之间的对应关系,其中 BA表示物理块地址,PA表示物理块中的物理页地址。0-15为数组下 标值,即逻辑页地址。
在一种优选实施方式中,本文中一张GMT容量与一个物理页的 容量保持一致,都为16KB,由于物理页地址需要用四个字节来表示, 因此一张GMT可以保存4096条映射记录。对于不同容量的SSD来 说,逻辑页数量不同,所需GMT个数也不同。
在一种优选实施方式中,CMT中缓存1024条映射单元之后,再 向CMT中插入新的映射单元时,需要将其中一部分映射单元进行剔 除。根据CMTnum的最大值来选择剔除CMT中的映射单元。
如图7所示,假设Unit0的LPN=0,那么Unit0属于GMT[0];Unit1 的LPN=4097,那么Unit1属于GMT[1];Unit2的LPN=4136,那么 Unit2也属于GMT[1];依次类推。
首先计算CMT中每个Unit对应的GMT编号,然后统计每个GMT 所拥有的Unit的个数;
选择Unit个数最多的GMT,进行批量更新。假设CMT中的叉号 所标注的Unit均属于GMT[X],且所拥有的Unit个数也是在CMT最 多的,那么将这些映射信息批量更新到GMT[X]中。
将CMT中所有相关映射项剔除完毕且GMT[X]更新到GMT Blocks中后,剔除此前这些Unit所占用的缓存槽,图7叉号区域变 为白色,E表示该缓存槽已空闲。
进一步的,对于大容量SSD来说,所生成的页级映射表的容量远 大于固态硬盘控制器中的SRAM空间,不可能将所有的GMT都缓存 到SRAM中。
GTD(Global Translation Directory,全局转换目录)
GTD其本质为GMT的地址映射表。
在一种优选实施方式中,GTD由数组的形式来实现,GMT编号 是连续的,因此用数组下标来表示GMT编号,数组值表示当前GMT 所在的物理地址,物理地址由两字节的物理块地址和两字节的物理页 地址组成。
进一步的,每当NAND Flash中的GMT发生更新时,只需要将更 新的GMT编号以及更新后的物理地址同步更新到GTD中即可。
在一种优选实施方式中,目前仅缓存两张GMT到SRAM中,一 张用于写操作(称为WGMT),另一张用于读操作(称为RGMT), SRAM中的GMT统称为二级缓存GMT。
当文件系统发出读写请求时,如果在一级缓存CMT中未找到相 应的逻辑映射信息,那么就需要从二级缓存GMT中进行搜索。
在一种优选实施方式中,对于不同的操作,所涉及到的GMT也 会有所不同,基本分为以下几种情况:
a)写操作
如果文件系统下发的LPN所对应的GMT编号X与SRAM中的 WGMT编号X相同,直接搜索WGMT[X]即可。
如果LPN所对应的GMT编号Z与SRAM中的WGMT编号(X) 不一致(Z≠X),判断RGMT编号是否与LPN所对应的GMT编号 一致。如果两者编号不一致(Y≠Z),则将GMT[Z]从GMTBlocks 中加载到SRAM中对应的WGMT的位置,如图8所示。如果两者编 号一致,则将SRAM中RGMT[Z]复制到WGMT所在的SRAM中, 即WGMT[Z]替换WGMT[X],因为SRAM中的RGMT[Z]与GMTBlocks中的GMT[Z]的内容完全一致(本算法始终不会更新SRAM中 RGMT的内容),如图9所示。
b)读操作
文件系统下发的LPN所对应的GMT编号Z与SRAM中的WGMT 编号(Z)一致,直接搜索WGMT即可,如图10所示。无需继续判 断与RGMT的编号是否一致,即使RGMT的编号与WGMT的编号 一致,WGMT中的映射信息也比RGMT中的映射信息新;若RGMT 的编号与WGMT的编号不一致,此时也无需搜索RGMT,因为RGMT 中不存在所需的映射信息。
如果LPN所对应的GMT编号Z与WGMT的编号(Z)不一致 (Z≠X),则继续判断RGMT的编号是否与LPN所对应的编号一 致。如果一致,直接搜索RGMT即可,如果两者不一致(Z≠Y), 将RGMT[Z]从GMT Blocks中加载到SRAM中并覆盖掉原来的 RGMT,如图11所示。
基于以上在SRAM中所设计的相关地址映射表,参见图13,本发 明公开一种固态硬盘地址映射的方法,包括以下步骤:
步骤S1:在SRAM中建立CMT、GMT、CMTnum和GTD;
步骤S2:向CMT中插入映射项前,首先判断CMT缓存槽是否已 满,已满则根据CMTnum中最大计数值批量剔除CMT中的映射项;
步骤S3:服务连续写请求时,将连续映射项合并成一条插入到 CMT中,用LEN表示其映射长度,并更新CMTnum中计数值;
步骤S4:服务连续读请求时,若在CMT中未找到该映射记录, 则查询SRAM中GMT,若仍未找到,将闪存中对应GMT加载到 SRAM中。
具体地,地址映射策略流程参见图12,当FTL接收到文件系统下 发的LBA,命令类型以及请求的数据长度,需要将LBA转化为内部 LPN格式,同时将数据长度转化成以逻辑页为单位。
进一步的,首先在一级缓存CMT中搜索对应的LPN,若找到对 应项,则直接读取该LPN对应的物理地址,结束寻址;
如果在CMT中搜索不到需要的逻辑地址,则需要到二级缓存 GMT中搜索相应的逻辑地址,如果所需要的GMT刚好在SRAM中, 直接找到对应的物理地址,结束寻址;
如果所请求的LPN对应的映射记录不在SRAM中,则需要通过 GTD找到对应的GMT所在的物理地址,通过物理地址把NAND Flash 中对应的GMT读到SRAM中,然后通过二级缓存GMT找到对应的 物理地址。
以上实施例的说明只是用于帮助理解本发明的方法及其核心思 想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发 明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和 修饰也落入本发明权利要求的保护范围内。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现 或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来 说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的 精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被 限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新 颖特点相一致的最宽的范围。

Claims (9)

1.一种固态硬盘地址映射的方法,其特征在于,包括以下步骤:
步骤S1:在SRAM中建立映射表,所述的映射表至少包括一级缓存CMT、二级缓存GMT、CMT记录表CMTnum和全局转换目录GTD;
步骤S2:向CMT中插入映射项前,首先判断CMT缓存槽是否已满,已满则根据CMTnum中最大计数值批量剔除CMT中的映射项;
步骤S3:服务连续写请求时,将连续映射项合并成一条插入到CMT中,用LEN表示其映射长度,并更新CMTnum中计数值;
步骤S4:服务连续读请求时,若在CMT中未找到该映射记录,则查询SRAM中GMT,否则,将闪存中对应GMT加载到SRAM中;
其中,CMTnum用于辅助优化CMT,CMTnum采用数组的形式来;数组下标表示GMT编号;数组值为计数值,表示CMT中有多少条映射记录属于当前GMT;
在步骤S2中,若CMT缓存槽已满,取出CMTnum中最大计数值的数组下标,批量剔除CMT中所有属于该数组下标所代表GMT编号的映射记录。
2.根据权利要求1所述的固态硬盘地址映射的方法,其特征在于,一级缓存CMT缓存最近写请求所产生的映射记录。
3.根据权利要求1所述的固态硬盘地址映射的方法,其特征在于,一级缓存CMT最大可缓存1024条映射记录。
4.根据权利要求1所述的固态硬盘地址映射的方法,其特征在于,每向CMT中新插入一条映射记录后,计算该映射记录对应的GMT编号,并更新CMTnum中对应计数值。
5.根据权利要求1所述的固态硬盘地址映射的方法,其特征在于,GTD是记录所有GMT在闪存中的物理地址。
6.根据权利要求1所述的固态硬盘地址映射的方法,其特征在于,二级缓存GMT为保存在闪存中的部分连续映射记录。
7.根据权利要求6所述的固态硬盘地址映射的方法,其特征在于,内存中的二级缓存GMT分为WGMT和RGMT。
8.根据权利要求6所述的固态硬盘地址映射的方法,其特征在于,当服务连续读请求且所请求的映射记录不存在于一级缓存CMT中,查询二级缓存GMT,若二级缓存GMT中存在其映射记录,即可一次性服务该连续读请求。
9.根据权利要求8所述的固态硬盘地址映射的方法,其特征在于,若二级缓存GMT仍未找到该映射记录,则根据GTD找到对应的GMT,将该GMT加载到WGMT或RGMT中。
CN201910367737.XA 2019-05-05 2019-05-05 一种固态硬盘地址映射的方法 Pending CN110262982A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910367737.XA CN110262982A (zh) 2019-05-05 2019-05-05 一种固态硬盘地址映射的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910367737.XA CN110262982A (zh) 2019-05-05 2019-05-05 一种固态硬盘地址映射的方法

Publications (1)

Publication Number Publication Date
CN110262982A true CN110262982A (zh) 2019-09-20

Family

ID=67914220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910367737.XA Pending CN110262982A (zh) 2019-05-05 2019-05-05 一种固态硬盘地址映射的方法

Country Status (1)

Country Link
CN (1) CN110262982A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177034A (zh) * 2019-12-27 2020-05-19 鸿秦(北京)科技有限公司 一种固态硬盘的自适应ftl算法
CN111427805A (zh) * 2020-03-19 2020-07-17 电子科技大学 一种基于页模式操作的存储器快速访问方法
CN112559386A (zh) * 2020-12-22 2021-03-26 深圳忆联信息系统有限公司 提升ssd性能的方法、装置、计算机设备及存储介质
CN114036079A (zh) * 2021-09-07 2022-02-11 联芸科技(杭州)有限公司 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法
CN114676072A (zh) * 2022-05-25 2022-06-28 阿里巴巴(中国)有限公司 数据处理方法以及装置
WO2022199027A1 (zh) * 2021-03-25 2022-09-29 湖南国科微电子股份有限公司 一种随机写的方法、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080195801A1 (en) * 2007-02-13 2008-08-14 Cheon Won-Moon Method for operating buffer cache of storage device including flash memory
CN102981963A (zh) * 2012-10-30 2013-03-20 华中科技大学 一种固态盘的闪存转换层的实现方法
CN103026346A (zh) * 2010-07-27 2013-04-03 国际商业机器公司 包括固态存储器设备的存储系统中的逻辑到物理地址映射
CN103425600A (zh) * 2013-08-23 2013-12-04 中国人民解放军国防科学技术大学 一种固态盘闪存转换层中的地址映射方法
CN104166634A (zh) * 2014-08-12 2014-11-26 华中科技大学 一种固态盘系统中的映射表缓存管理方法
CN104268094A (zh) * 2014-09-23 2015-01-07 浪潮电子信息产业股份有限公司 一种优化的闪存地址映射方法
CN107832013A (zh) * 2017-11-03 2018-03-23 中国科学技术大学 一种管理固态硬盘映射表的方法
CN107943719A (zh) * 2017-11-28 2018-04-20 杭州电子科技大学 一种基于请求分类的闪存转换层控制方法
US20180189187A1 (en) * 2016-12-30 2018-07-05 Western Digital Technologies, Inc. Recovery of validity data for a data storage system
CN109446117A (zh) * 2018-09-06 2019-03-08 杭州电子科技大学 一种固态硬盘页级闪存转换层设计方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080195801A1 (en) * 2007-02-13 2008-08-14 Cheon Won-Moon Method for operating buffer cache of storage device including flash memory
CN103026346A (zh) * 2010-07-27 2013-04-03 国际商业机器公司 包括固态存储器设备的存储系统中的逻辑到物理地址映射
CN102981963A (zh) * 2012-10-30 2013-03-20 华中科技大学 一种固态盘的闪存转换层的实现方法
CN103425600A (zh) * 2013-08-23 2013-12-04 中国人民解放军国防科学技术大学 一种固态盘闪存转换层中的地址映射方法
CN104166634A (zh) * 2014-08-12 2014-11-26 华中科技大学 一种固态盘系统中的映射表缓存管理方法
CN104268094A (zh) * 2014-09-23 2015-01-07 浪潮电子信息产业股份有限公司 一种优化的闪存地址映射方法
US20180189187A1 (en) * 2016-12-30 2018-07-05 Western Digital Technologies, Inc. Recovery of validity data for a data storage system
CN107832013A (zh) * 2017-11-03 2018-03-23 中国科学技术大学 一种管理固态硬盘映射表的方法
CN107943719A (zh) * 2017-11-28 2018-04-20 杭州电子科技大学 一种基于请求分类的闪存转换层控制方法
CN109446117A (zh) * 2018-09-06 2019-03-08 杭州电子科技大学 一种固态硬盘页级闪存转换层设计方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177034A (zh) * 2019-12-27 2020-05-19 鸿秦(北京)科技有限公司 一种固态硬盘的自适应ftl算法
CN111427805A (zh) * 2020-03-19 2020-07-17 电子科技大学 一种基于页模式操作的存储器快速访问方法
CN112559386A (zh) * 2020-12-22 2021-03-26 深圳忆联信息系统有限公司 提升ssd性能的方法、装置、计算机设备及存储介质
WO2022199027A1 (zh) * 2021-03-25 2022-09-29 湖南国科微电子股份有限公司 一种随机写的方法、电子设备及存储介质
CN114036079A (zh) * 2021-09-07 2022-02-11 联芸科技(杭州)有限公司 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法
CN114676072A (zh) * 2022-05-25 2022-06-28 阿里巴巴(中国)有限公司 数据处理方法以及装置

Similar Documents

Publication Publication Date Title
CN110262982A (zh) 一种固态硬盘地址映射的方法
CN107193646B (zh) 一种基于混合主存架构的高效动态页面调度方法
CN103885728B (zh) 一种基于固态盘的磁盘缓存系统
CN107832013B (zh) 一种管理固态硬盘映射表的方法
CN104166634A (zh) 一种固态盘系统中的映射表缓存管理方法
CN102981963B (zh) 一种固态盘的闪存转换层的实现方法
CN109446117B (zh) 一种固态硬盘页级闪存转换层设计方法
CN106909515B (zh) 面向混合主存的多核共享末级缓存管理方法及装置
KR101443231B1 (ko) 라이트-백 동작시 라이트-백 데이터의 버스트 길이를조절할 수 있는 캐시 메모리와 이를 포함하는 시스템
CN107391398B (zh) 一种闪存缓存区的管理方法及系统
CN109582593B (zh) 一种基于计算的ftl地址映射读、写方法
CN103631536B (zh) 一种利用ssd的无效数据优化raid5/6写性能的方法
CN107423229B (zh) 一种面向页级ftl的缓冲区改进方法
CN108762671A (zh) 基于pcm和dram的混合内存系统及其管理方法
CN109739780A (zh) 基于页级映射的动态二级缓存闪存转换层地址映射方法
CN108845957B (zh) 一种置换和回写自适应的缓冲区管理方法
CN110795363B (zh) 一种存储介质的热页预测方法和页面调度方法
CN110532200B (zh) 一种基于混合内存架构的内存系统
CN106569959A (zh) 一种基于ssd的缓存替换方法及系统
CN110147331A (zh) 缓存数据处理方法、系统及可读存储介质
CN107590084A (zh) 一种基于分类策略的页级缓冲区改进方法
CN108089825A (zh) 一种基于分布式集群的存储系统
CN106909323B (zh) 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统
CN109002400B (zh) 一种内容感知型计算机缓存管理系统及方法
US20020194431A1 (en) Multi-level cache system

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190920

RJ01 Rejection of invention patent application after publication