CN110262982A - 一种固态硬盘地址映射的方法 - Google Patents
一种固态硬盘地址映射的方法 Download PDFInfo
- 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
Links
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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/72—Details relating to flash memory management
- G06F2212/7201—Logical 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)
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中。
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)
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)
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 | 杭州电子科技大学 | 一种固态硬盘页级闪存转换层设计方法 |
-
2019
- 2019-05-05 CN CN201910367737.XA patent/CN110262982A/zh active Pending
Patent Citations (10)
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)
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) | 一种管理固态硬盘映射表的方法 | |
CN106909515B (zh) | 面向混合主存的多核共享末级缓存管理方法及装置 | |
CN104166634A (zh) | 一种固态盘***中的映射表缓存管理方法 | |
CN102981963B (zh) | 一种固态盘的闪存转换层的实现方法 | |
CN109446117B (zh) | 一种固态硬盘页级闪存转换层设计方法 | |
KR101443231B1 (ko) | 라이트-백 동작시 라이트-백 데이터의 버스트 길이를조절할 수 있는 캐시 메모리와 이를 포함하는 시스템 | |
CN107423229B (zh) | 一种面向页级ftl的缓冲区改进方法 | |
CN107391398B (zh) | 一种闪存缓存区的管理方法及*** | |
CN107066393A (zh) | 提高地址映射表中映射信息密度的方法 | |
CN108762671A (zh) | 基于pcm和dram的混合内存***及其管理方法 | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
CN103631536B (zh) | 一种利用ssd的无效数据优化raid5/6写性能的方法 | |
CN109739780A (zh) | 基于页级映射的动态二级缓存闪存转换层地址映射方法 | |
CN110795363B (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
CN108845957B (zh) | 一种置换和回写自适应的缓冲区管理方法 | |
CN110532200B (zh) | 一种基于混合内存架构的内存*** | |
CN106569959A (zh) | 一种基于ssd的缓存替换方法及*** | |
CN110147331A (zh) | 缓存数据处理方法、***及可读存储介质 | |
CN107590084A (zh) | 一种基于分类策略的页级缓冲区改进方法 | |
CN108089825A (zh) | 一种基于分布式集群的存储*** | |
CN106909323B (zh) | 适用于dram/pram混合主存架构的页缓存方法及混合主存架构*** | |
CN109002400B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190920 |
|
RJ01 | Rejection of invention patent application after publication |