CN104166634A - 一种固态盘系统中的映射表缓存管理方法 - Google Patents
一种固态盘系统中的映射表缓存管理方法 Download PDFInfo
- Publication number
- CN104166634A CN104166634A CN201410396527.0A CN201410396527A CN104166634A CN 104166634 A CN104166634 A CN 104166634A CN 201410396527 A CN201410396527 A CN 201410396527A CN 104166634 A CN104166634 A CN 104166634A
- Authority
- CN
- China
- Prior art keywords
- page
- node
- mapping
- map entry
- buffer memory
- 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
- 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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种固态盘映射表缓存的管理方法,对于将页映射表存放在闪存上的固态盘来说,该方法采用了两级链式组织架构,将缓存中属于同一个映射页的映射条目组织在一起。当需要替换缓存中的脏条目时,采用批量更新的方法将被替换的脏条目和跟它同属一个映射页的其它脏条目一并更新回闪存的页映射表中,大大减少了因缓存替换带来的额外开销;当缓存不命中时,采用动态的预取技术,预取长度根据载入开销、替换开销和历史访问的连续前驱数来确定,提高了缓存的命中率,减少了缓存载入带来的额外开销。批量更新和动态预取技术提高了固态盘的性能,延长了固态盘的寿命。
Description
技术领域
本发明属于固态盘存储技术领域,更具体地,涉及一种固态盘系统中的映射表缓存管理方法。
背景技术
基于闪存的固态盘(Solid State Disk,SSD)具有高性能,抗震动,低功耗等优点。随着人们对存储需求的不断增大,SSD逐渐成为计算机存储系统的重要组成部分,它被认为可以在不远的将来替换磁盘,就目前的趋势来看,无论其是否能够最终替换磁盘,至少其已经在很多存储系统中成为了磁盘的有效补充。目前SSD已经广泛的应用在银行、金融、航空、军事、通讯等各行各业中,并已经形成了每年全球上百亿的市场。
目前固态盘一般使用NAND型闪存作为存储介质,闪存芯片的层次结构如附图1所示,每个芯片由多个晶圆组成,每个晶圆由多个分组组成,每个分组由多个块组成,每个块由多个页组成。闪存具有与传统机械硬盘不同的操作特性,具体如下:(1)固态盘读写的基本单位是页,而擦除的基本单位是块。(2)先擦后写,当固态盘上的数据需要修改时,不能像磁盘那样直接原地修改,而需要将该页擦除后再重新写入数据。(3)闪存块的擦除次数受限,即闪存的使用寿命有限。闪存块在擦除一定次数以后,一般是10000次,会变为坏块而不能够再继续使用。
SSD系统的结构如附图2所示,主机端主要包括应用程序、文件系统和设备驱动,SSD端主要包括缓存模块、闪存转换层(Flash TranslationLayer,FTL)和闪存芯片。其中,缓存模块由数据缓存和映射表缓存组成,FTL的主要功能是将SSD模拟成标准的块设备以屏蔽其特性,使得上层文件系统在使用它的时候就像在使用一个普通的磁盘存储器。FTL包括地址映射、垃圾回收和损耗均衡三个功能模块。
对于采取页映射FTL算法的固态盘,映射表缓存用来存储部分经常被访问的映射条目,以加速转换逻辑地址为物理地址的过程。当请求的映射条目不在映射表缓存时,需要将相应的映射条目从闪存的页映射表载入缓存;当映射表缓存满而有脏条目被替换时,需要将脏条目更新回闪存的页映射表。而且,映射信息在闪存和映射表缓存上的访问粒度并不匹配。映射信息在缓存中以单个条目为访问单位,条目的内容包括逻辑页号(Logical Page Num,LPN)和物理页号(Physical Page Num,PPN),大小一般是几个字节,而映射信息在闪存上以映射页为访问单位,大小一般是几千字节。向缓存载入一个条目包括一次闪存页的读,在闪存上更新一个脏条目包括一次闪存页的读和写。所以,映射表缓存中条目的载入和替换会在闪存上引起频繁的读写操作,不仅降低了固态盘的性能,而且缩短了其使用寿命。
替换策略是缓存算法设计的核心,对性能影响最大。基本的替换算法有:先来先服务(First In First Out,FIFO),最近最少使用(Least RecentlyUsed,LRU)算法,最不经常使用算法(Least Frequently Used,LFU)等等。其中,LRU是最常用的替换策略,它选择缓存中最近最少被访问的数据替换出去,不仅实现简单,而且保存的是最近使用的数据,有效利用了时间局部性。目前的映射表缓存管理算法,比如DFTL中的分段LRU算法,S-FTL中压缩存储映射页的LRU算法等,都是基于负载的局部性以及缓存空间有限的特点提出的,其目的是为了提高缓存的命中率,使查找映射表的工作尽量在缓存中进行,减少对闪存上页映射表的访问带来的额外开销。
现有的映射表缓存算法存在以下几个明显的不足之处:1、DFTL和S-FTL的映射表缓存算法在组织映射缓存中的映射条目时没能很好地结合固态盘读写特性,导致缓存替换带来大的额外开销;2、DFTL的映射表缓存算法没有充分挖掘负载的空间局部性,导致缓存命中率不高;3、闪存上的每个映射页包含成百上千个映射条目,S-FTL的映射表缓存算法以映射页为缓存单位,会导致页内较少被访问的条目也驻留缓存,降低了缓存的空间利用率。
发明内容
针对现有技术的存在的缺陷,本发明提供了一种更高效的固态盘映射表缓存管理方法,通过批量更新的替换机制和动态预取的载入机制,有效减少了缓存替换和缓存载入带来的闪存读写,进而提高系统的性能,延长SSD的寿命。
按照本发明的一个方面,提供了一种固态盘系统中的映射表缓存管理方法,在所述固态盘系统的闪存转换层采取页级映射算法,一个逻辑页可以被映射到任意一个物理页上,将这种映射关系记录在页映射表中;在所述系统中设置有映射表缓存模块和闪存模块;
其中闪存模块上的块分为数据块和映射块两种,数据块用于存放用户数据,映射块用于存放页映射表,映射块中包含多个映射页,每个映射页中存放的是多个逻辑页号连续的映射条目;
映射表缓存模块存放部分常用的页映射表和全局转换目录,全局转换目录用于追踪映射页在闪存中的物理位置,其内容包括虚拟映射页号和物理映射页号;
映射表缓存模块中存储的页映射表采用两级链式组织架构来组织,第一级链表由映射页节点组成,每个映射页节点代表一个有映射条目被缓存的映射页,它将缓存中属于该映射页的映射条目节点组织在一起;第二级链表由映射条目节点组成,每个映射条目节点存放一个映射条目的信息,上述两级链表都按照最近最少使用算法进行排序。
在本发明的一个实施例中,当缓存满而需要替换一个或多个映射条目节点时,首先选择映射页节点链表最近最少使用端的映射页节点,然后选择该映射页节点的映射条目节点链表最近最少使用端的一个或多个映射条目节点替换出去。
在本发明的一个实施例中,当需要载入新的映射条目节点时,将新的映射条目节点载入到相应的映射页节点的映射条目节点链表的最近最多使用端,如果缓存中不存在对应的映射页节点,即它所在的映射页没有条目被缓存,那么首先生成相应的映射页节点,再将新的映射条目节点载入到相应的映射页节点的映射条目节点链表的最近最多使用端。
在本发明的一个实施例中,当缓存满而有脏映射条目节点被替换时,将跟该映射条目节点在同一个映射页节点下的所有脏映射条目节点批量更新回闪存,然后该映射条目节点被淘汰出缓存,贡献出空闲空间,而其它的脏映射条目节点变为干净的映射条目节点;其中脏映射条目节点是指存放了脏条目的映射条目节点。
在本发明的一个实施例中,所述系统采用动态预取的载入机制,当缓存不命中而需要载入请求的映射条目时,如果它所在的映射页对应的映射页节点已被缓存,那么向该映射页节点载入当前请求的映射条目节点的同时预取多个与它逻辑页号连续的后继映射条目节点;否则,不做预取。
在本发明的一个实施例中,预取的映射条目节点个数设置为等于该映射页节点下已经存在的与当前请求的映射条目节点的逻辑页号连续的前继映射条目节点的数目;且应满足如下两条规则:
第一,预取的映射条目节点限定在当前请求的映射条目节点所处的映射页中,如果跨越了该页,那么减小预取个数;第二,替换的映射条目节点限定在映射页节点链表的近期最少使用端的映射页节点中,如果将该映射页节点及其所有映射条目节点都淘汰出缓存仍不能供应足够的空闲空间,那么减小预取个数。
在本发明的一个实施例中,在所述映射条目节点不必存储完整的逻辑页号,只存储该映射条目节点在映射页内的位置偏移,以减少每个映射条目节点的空间开销。
按照本发明的另一方面,还提供了一种固态盘系统中的映射表缓存管理方法,所述方法包括:
(1)将下发的I/O请求被转化为以闪存页为单位的页级请求,假设当前请求的逻辑页号为n;
(2)扫描映射表缓存,判断逻辑页号等于n的映射条目节点是否已被缓存,即该页级请求是否命中,如果命中,转(12),否则,转(3);
(3)判断逻辑页号等于n的映射条目所在的映射页对应的映射页节点是否已经被缓存,如果是,转(4),否则,转(5);
(4)根据载入开销、替换开销和历史访问的连续前驱数确定预取的长度,即除了当前请求的映射条目外,需要向缓存多载入的映射条目的数目,转(6);
(5)不做预取,只需要向缓存载入当前请求的映射条目;
(6)查询页映射表获取请求的映射条目所在的映射页的物理位置,并从闪存上读取需要载入的映射条目;
(7)判断缓存中是否有足够多的空位去存放需要载入的映射条目节点和映射页节点,当(3)中对应的映射页节点没有被缓存时,还需要在缓存中生成对应的映射页节点,如果有转(11),否则,转(8);
(8)需要进行缓存替换操作,选择映射页节点链表最近最少使用端的映射页节点,在它的映射条目节点链表的最近最少使用端淘汰一个或多个映射条目节点,如果该映射页节点所有的映射条目节点都被淘汰,那么同时销毁该映射页节点;
(9)判断被淘汰的映射条目节点中是否有脏节点,如果有转(10),否则,转(11);
(10)触发批量更新机制,将被选中替换的映射页节点下所有的脏映射条目节点一起更新到闪存的页映射表中,并置状态为干净;
(11)将需要载入的映射条目转化为映射条目节点,载入到相应的映射页节点下;
(12)从逻辑页号等于n的映射条目节点中获取对应的物理页号,假设物理页号等于m,此时逻辑地址到物理地址的转换工作已经完成;
(13)判断当前请求是否是读请求,如果是,转(14),否则是写请求,转(15);
(14)从闪存中读取物理页号等于m的数据页,转(18);
(15)判断闪存中是否有可用的空闲页,如果没有,转(16),否则,转(17);
(16)进行垃圾回收操作,回收闪存中的无效页,增加空闲页;
(17)分配一个闪存中的空闲页,写入请求的数据,并将物理页号等于m的页置为无效状态;
(18)这次页级请求已成功完成。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
1、本发明依据固态盘的读写特性,采取两级链表组织映射缓存中的映射条目,既可以减少单个条目的存储空间,提高映射缓存的空间利用率;又可以增加查找缓存的速度;
2、在两级链表的组织基础上,本发明采取批量更新的替换机制,可以减少映射缓存替换脏条目的次数,从而减少缓存替换带来的开销;
3、在两级链表的组织基础上,本发明采取动态预取的载入机制,可以挖掘利用负载中的空间局部性,提高映射缓存的命中率。
附图说明
图1为现有NAND Flash芯片层次结构示意图;
图2为现有技术的固态盘系统的结构示意图;
图3为本发明固态盘的映射表缓存管理方法的示意图;
图4为本发明方法中映射表缓存响应I/O请求的基本流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明固态盘系统中的映射表缓存管理方法如附图3所示,闪存转换层FTL采取页级映射算法,一个逻辑页可以被映射到任意一个物理页上,这种映射关系记录在页映射表中。闪存上的块分为两种,数据块(DataBlocks)存放用户数据,映射块(Translation Blocks)存放完整的页映射表,映射块中的页被称为映射页(Translation Page),存放的是多个逻辑页号连续的映射条目。映射表缓存存放部分常用的页映射表和全局转换目录(Global Translation Directory,GTD),后者用来追踪映射页在闪存中的物理位置,内容包括虚拟映射页号(Virtual Translation PageNumber,TVPN)和物理映射页号(Physical Translation Page Number)。
本发明采用两级链式结构组织映射表缓存中的映射条目,第一级链表由映射页节点(Translation Page Node,TP)组成,第二级链表由映射条目节点(Entry Node)组成。每个Entry节点存放一个映射条目的信息(LPN-PPN),每个TP节点代表一个有映射条目被缓存的映射页,它将缓存中属于该映射页的Entry节点组织在一起。两级链表都按照最近最少使用(Least Recently Used,LRU)算法进行排序,当缓存满而需要替换一个或多个Entry节点时,首先选择TP节点链表LRU端的TP节点,然后选择该TP节点的Entry节点链表LRU端的一个或多个Entry节点替换出去;当需要载入新的Entry节点时,将它载入到相应的TP节点的Entry节点链表的最近最多使用(Most Recently Used,MRU)端,如果缓存中不存在对应的TP节点,即它所在的映射页没有条目被缓存,那么首先生成相应的TP节点。
本发明充分考虑SSD的读写特性,采取批量更新的替换机制。当缓存满而有脏Entry节点(存放了脏条目的Entry节点)被替换时,本发明将跟该Entry节点在同一个TP节点下的所有脏Entry节点批量更新回闪存,然后该Entry节点被淘汰出缓存,贡献出空闲空间,而其它的脏Entry节点变为干净的Entry节点,即该节点存储的映射条目在缓存和闪存中的存储内容是一致的,如果它被替换,不会在闪存上引起更新操作。这样一次替换操作可以在缓存中减少多个脏Entry节点,大大减少了缓存替换在闪存上引发的更新操作,而且由于更新的Entry节点属于同一个映射页,批量更新只会引发一个闪存页的读和写,不会增加替换开销。
本发明充分考虑负载访问的空间局部性,采取动态预取的载入机制。当缓存不命中而需要载入请求的映射条目时,如果它所在的映射页对应的TP节点已被缓存,那么向该TP节点载入当前请求的Entry节点的同时预取多个与它LPN连续的后继Entry节点;否则,不做预取。预取的个数根据载入开销、替换开销和历史访问的连续前驱数动态确定。首先,预取个数被设置为等于该TP节点下已经存在的与当前请求的Entry节点的LPN连续的前继Entry节点的数目,比如说当前请求的Entry节点的LPN为65,而相应的TP节点中已存在LPN为62、63、64的Entry节点,不存在LPN为61的Entry节点,那么预取个数设置为3,即将LPN为66、67、68的Entry节点也一起载入到该TP节点下。然后,为了避免预取长度过长而需要在闪存的多个映射页中读取映射条目或者在缓存中替换多个TP节点下的Entry节点,预取个数被两条规则限制。第一,预取的Entry节点限定在当前请求的Entry节点所处的映射页中,如果跨越了该页,那么减小预取个数;第二,替换的Entry节点限定在TP节点链表的LRU端的TP节点中,如果将该TP节点及其所有Entry节点都淘汰出缓存仍不能供应足够的空闲空间,那么减小预取个数。这样一次载入操作可以载入多个在近一段时间会被访问到的Entry节点,大大提高了缓存命中率,减少了缓存载入带来的闪存页读,而且由于载入的Entry节点在同一个映射页内,不会增加缓存载入带来的开销。
另外,本发明能够提高映射表缓存的空间利用率。因为虽然引入了额外的TP节点,需要占用缓存空间,但是正是由于采用了两级链式结构,第二级的Entry节点没必要存储完整的LPN,而只需要存储该Entry节点在映射页内的位置偏移,每个Entry节点的空间开销得以减少,比如每个LPN占4B空间,每个映射页存放1024个LPN连续的映射条目,那么每个Entry节点只需要使用10bit的页内偏移就能够代替LPN的存储。考虑到Entry节点远多于TP节点,总体结果是本发明能够使用相同的缓存空间存储更多的映射条目。
结合图4来说明该方法在具体实施时,主要的步骤如下:
(1)下发的I/O请求被转化为以闪存页为单位的页级请求,假设当前请求的逻辑页号为n;
(2)扫描映射表缓存,判断LPN=n的Entry节点是否已被缓存,即该页级请求是否命中,如果命中,转(12),否则,转(3);
(3)判断LPN=n的映射条目所在的映射页对应的TP节点是否已经被缓存,如果是,转(4),否则,转(5);
(4)根据载入开销、替换开销和历史访问的连续前驱数确定预取的长度,即除了当前请求的映射条目外,需要向缓存多载入的映射条目的数目,转(6);
(5)不做预取,只需要向缓存载入当前请求的映射条目;
(6)查询GTD表获取请求的映射条目所在的映射页的物理位置,并从闪存上读取需要载入的映射条目;
(7)判断缓存中是否有足够多的空位去存放需要载入的Entry节点和TP节点(当(3)中对应的TP节点没有被缓存时,还需要在缓存中生成对应的TP节点),如果有转(11),否则,转(8);
(8)需要进行缓存替换操作,选择TP节点链表LRU端的TP节点,在它的Entry节点链表的LRU端淘汰一个或多个Entry节点,如果该TP节点所有的Entry节点都被淘汰,那么同时销毁该TP节点;
(9)判断被淘汰的Entry节点中是否有脏节点,如果有转(10),否则,转(11);
(10)触发批量更新机制,将被选中替换的TP节点下所有的脏Entry节点一起更新到闪存的页映射表中,并置状态为干净;
(11)将需要载入的映射条目转化为Entry节点,载入到相应的TP节点下;
(12)从LPN=n的Entry节点中获取对应的物理页号PPN,假设PPN=m,此时逻辑地址到物理地址的转换工作已经完成;
(13)判断当前请求是否是读请求,如果是,转(14),否则是写请求,转(15);
(14)从闪存中读取PPN=m的数据页,转(18);
(15)判断闪存中是否有可用的空闲页,如果没有,转(16),否则,转(17);
(16)进行垃圾回收操作,回收闪存中的无效页,增加空闲页;
(17)分配一个闪存中的空闲页,写入请求的数据,并将PPN=m的页置为无效状态;
(18)这次页级请求已成功完成。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种固态盘系统中的映射表缓存管理方法,其特征在于,在所述固态盘系统的闪存转换层采取页级映射算法,一个逻辑页可以被映射到任意一个物理页上,将这种映射关系记录在页映射表中;在所述系统中设置有映射表缓存模块和闪存模块;
其中闪存模块上的块分为数据块和映射块两种,数据块用于存放用户数据,映射块用于存放页映射表,映射块中包含多个映射页,每个映射页中存放的是多个逻辑页号连续的映射条目;
映射表缓存模块存放部分常用的页映射表和全局转换目录,全局转换目录用于追踪映射页在闪存中的物理位置,其内容包括虚拟映射页号和物理映射页号;
映射表缓存模块中存储的页映射表采用两级链式组织架构来组织,第一级链表由映射页节点组成,每个映射页节点代表一个有映射条目被缓存的映射页,它将缓存中属于该映射页的映射条目节点组织在一起;第二级链表由映射条目节点组成,每个映射条目节点存放一个映射条目的信息,上述两级链表都按照最近最少使用算法进行排序。
2.根据权利要求1所述的映射表缓存管理方法,其特征在于,当缓存满而需要替换一个或多个映射条目节点时,首先选择映射页节点链表最近最少使用端的映射页节点,然后选择该映射页节点的映射条目节点链表最近最少使用端的一个或多个映射条目节点替换出去。
3.根据权利要求1或2所述的映射表缓存管理方法,其特征在于,当需要载入新的映射条目节点时,将新的映射条目节点载入到相应的映射页节点的映射条目节点链表的最近最多使用端,如果缓存中不存在对应的映射页节点,即它所在的映射页没有条目被缓存,那么首先生成相应的映射页节点,再将新的映射条目节点载入到相应的映射页节点的映射条目节点链表的最近最多使用端。
4.根据权利要求1所述的映射表缓存管理方法,其特征在于,当缓存满而有脏映射条目节点被替换时,将跟该映射条目节点在同一个映射页节点下的所有脏映射条目节点批量更新回闪存,然后该映射条目节点被淘汰出缓存,贡献出空闲空间,而其它的脏映射条目节点变为干净的映射条目节点;其中脏映射条目节点是指存放了脏条目的映射条目节点。
5.根据权利要求1所述的映射表缓存管理方法,其特征在于,所述系统采用动态预取的载入机制,当缓存不命中而需要载入请求的映射条目时,如果它所在的映射页对应的映射页节点已被缓存,那么向该映射页节点载入当前请求的映射条目节点的同时预取多个与它逻辑页号连续的后继映射条目节点;否则,不做预取。
6.根据权利要求5所述的映射表缓存管理方法,其特征在于,预取的映射条目节点个数设置为等于该映射页节点下已经存在的与当前请求的映射条目节点的逻辑页号连续的前继映射条目节点的数目;且应满足如下两条规则:
第一,预取的映射条目节点限定在当前请求的映射条目节点所处的映射页中,如果跨越了该页,那么减小预取个数;第二,替换的映射条目节点限定在映射页节点链表的近期最少使用端的映射页节点中,如果将该映射页节点及其所有映射条目节点都淘汰出缓存仍不能供应足够的空闲空间,那么减小预取个数。
7.根据权利要求1所述的映射表缓存管理方法,其特征在于,在所述映射条目节点不必存储完整的逻辑页号,只存储该映射条目节点在映射页内的位置偏移,以减少每个映射条目节点的空间开销。
8.一种固态盘系统中的映射表缓存管理方法,其特征在于,所述方法包括:
(1)将下发的I/O请求转化为以闪存页为单位的页级请求,假设当前请求的逻辑页号为n;
(2)扫描映射表缓存,判断逻辑页号等于n的映射条目节点是否已被缓存,即该页级请求是否命中,如果命中,转(12),否则,转(3);
(3)判断逻辑页号等于n的映射条目所在的映射页对应的映射页节点是否已经被缓存,如果是,转(4),否则,转(5);
(4)根据载入开销、替换开销和历史访问的连续前驱数确定预取的长度,即除了当前请求的映射条目外,需要向缓存多载入的映射条目的数目,转(6);
(5)不做预取,只需要向缓存载入当前请求的映射条目;
(6)查询页映射表获取请求的映射条目所在的映射页的物理位置,并从闪存上读取需要载入的映射条目;
(7)判断缓存中是否有足够多的空位去存放需要载入的映射条目节点和映射页节点,当(3)中对应的映射页节点没有被缓存时,还需要在缓存中生成对应的映射页节点,如果有转(11),否则,转(8);
(8)需要进行缓存替换操作,选择映射页节点链表最近最少使用端的映射页节点,在它的映射条目节点链表的最近最少使用端淘汰一个或多个映射条目节点,如果该映射页节点所有的映射条目节点都被淘汰,那么同时销毁该映射页节点;
(9)判断被淘汰的映射条目节点中是否有脏节点,如果有转(10),否则,转(11);
(10)触发批量更新机制,将被选中替换的映射页节点下所有的脏映射条目节点一起更新到闪存的页映射表中,并置状态为干净;
(11)将需要载入的映射条目转化为映射条目节点,载入到相应的映射页节点下;
(12)从逻辑页号等于n的映射条目节点中获取对应的物理页号,假设物理页号等于m,此时逻辑地址到物理地址的转换工作已经完成;
(13)判断当前请求是否是读请求,如果是,转(14),否则是写请求,转(15);
(14)从闪存中读取物理页号等于m的数据页,转(18);
(15)判断闪存中是否有可用的空闲页,如果没有,转(16),否则,转(17);
(16)进行垃圾回收操作,回收闪存中的无效页,增加空闲页;
(17)分配一个闪存中的空闲页,写入请求的数据,并将物理页号等于m的页置为无效状态;
(18)这次页级请求成功完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410396527.0A CN104166634A (zh) | 2014-08-12 | 2014-08-12 | 一种固态盘系统中的映射表缓存管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410396527.0A CN104166634A (zh) | 2014-08-12 | 2014-08-12 | 一种固态盘系统中的映射表缓存管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104166634A true CN104166634A (zh) | 2014-11-26 |
Family
ID=51910456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410396527.0A Pending CN104166634A (zh) | 2014-08-12 | 2014-08-12 | 一种固态盘系统中的映射表缓存管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104166634A (zh) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005510A (zh) * | 2015-07-02 | 2015-10-28 | 西安交通大学 | 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法 |
CN105353979A (zh) * | 2015-10-22 | 2016-02-24 | 湖南国科微电子股份有限公司 | SSD内部数据文件系统eblock链接结构、管理系统及方法 |
CN106354664A (zh) * | 2016-08-22 | 2017-01-25 | 浪潮(北京)电子信息产业有限公司 | 一种固态硬盘数据传输方法及装置 |
CN106445832A (zh) * | 2016-09-06 | 2017-02-22 | 深圳市先天海量信息技术有限公司 | 闪存存储系统的地址映射方法及装置 |
CN106598504A (zh) * | 2016-12-26 | 2017-04-26 | 华为机器有限公司 | 数据存储方法及装置 |
CN106648851A (zh) * | 2016-11-07 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种多控存储中io管理的方法和装置 |
CN106710628A (zh) * | 2015-11-18 | 2017-05-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107423232A (zh) * | 2016-05-24 | 2017-12-01 | 北京忆芯科技有限公司 | Ftl快速访问方法与装置 |
CN107562654A (zh) * | 2016-07-01 | 2018-01-09 | 北京忆恒创源科技有限公司 | Io命令处理方法与装置 |
CN107632939A (zh) * | 2016-07-19 | 2018-01-26 | 西部数据技术公司 | 用于存储装置的映射表 |
CN107870867A (zh) * | 2016-09-28 | 2018-04-03 | 北京忆芯科技有限公司 | 32位cpu访问大于4gb内存空间的方法与装置 |
CN107870870A (zh) * | 2016-09-28 | 2018-04-03 | 北京忆芯科技有限公司 | 访问超过地址总线宽度的内存空间 |
CN107943719A (zh) * | 2017-11-28 | 2018-04-20 | 杭州电子科技大学 | 一种基于请求分类的闪存转换层控制方法 |
CN108121503A (zh) * | 2017-08-08 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种NandFlash地址映射及块管理算法 |
CN108459972A (zh) * | 2016-12-12 | 2018-08-28 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多通道固态硬盘的高效缓存管理设计方法 |
CN108491335A (zh) * | 2018-03-30 | 2018-09-04 | 北京联想核芯科技有限公司 | 处理映射表项的方法、装置、设备及介质 |
CN109445821A (zh) * | 2018-11-01 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种批量刷新双模ssd开放通道模式固件的方法及系统 |
CN109491601A (zh) * | 2018-10-26 | 2019-03-19 | 深圳市硅格半导体有限公司 | 固态硬盘数据的并行处理方法、装置及可读存储介质 |
CN109783398A (zh) * | 2019-01-18 | 2019-05-21 | 上海海事大学 | 一种基于相关感知页面级ftl固态硬盘性能优化方法 |
CN110262982A (zh) * | 2019-05-05 | 2019-09-20 | 杭州电子科技大学 | 一种固态硬盘地址映射的方法 |
CN110321057A (zh) * | 2018-03-28 | 2019-10-11 | 北京忆恒创源科技有限公司 | 具有增强io性能确定性的缓存的存储设备 |
WO2019205447A1 (zh) * | 2018-04-27 | 2019-10-31 | 江苏华存电子科技有限公司 | 一种提升闪存垃圾数据回收方法 |
CN110955612A (zh) * | 2019-11-07 | 2020-04-03 | 浪潮电子信息产业股份有限公司 | 一种数据缓存方法及相关装置 |
CN111274310A (zh) * | 2018-12-05 | 2020-06-12 | 中国移动通信集团山东有限公司 | 一种分布式数据缓存方法及系统 |
TWI703438B (zh) * | 2018-09-11 | 2020-09-01 | 慧榮科技股份有限公司 | 映射表更新方法 |
CN111639037A (zh) * | 2020-05-12 | 2020-09-08 | 深圳大普微电子科技有限公司 | 一种缓存的动态分配方法、装置及DRAM-Less固态硬盘 |
CN112231241A (zh) * | 2019-07-15 | 2021-01-15 | 深圳市中兴微电子技术有限公司 | 一种数据读取方法和装置、计算机可读存储介质 |
CN112764685A (zh) * | 2021-01-26 | 2021-05-07 | 华中科技大学 | 一种消除固态盘中预写式日志重复数据写的方法及设备 |
WO2022199027A1 (zh) * | 2021-03-25 | 2022-09-29 | 湖南国科微电子股份有限公司 | 一种随机写的方法、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110061A (zh) * | 2006-07-20 | 2008-01-23 | 国际商业机器公司 | 使用多个数据结构管理高速缓存中的数据的方法和系统 |
US20110072194A1 (en) * | 2009-09-23 | 2011-03-24 | Lsi Corporation | Logical-to-Physical Address Translation for Solid State Disks |
CN102768645A (zh) * | 2012-06-14 | 2012-11-07 | 国家超级计算深圳中心(深圳云计算中心) | 混合缓存的固态硬盘预取方法和固态硬盘ssd |
CN102981963A (zh) * | 2012-10-30 | 2013-03-20 | 华中科技大学 | 一种固态盘的闪存转换层的实现方法 |
CN103049397A (zh) * | 2012-12-20 | 2013-04-17 | 中国科学院上海微系统与信息技术研究所 | 一种基于新型存储器的固态硬盘内部缓存管理方法及系统 |
-
2014
- 2014-08-12 CN CN201410396527.0A patent/CN104166634A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110061A (zh) * | 2006-07-20 | 2008-01-23 | 国际商业机器公司 | 使用多个数据结构管理高速缓存中的数据的方法和系统 |
US20110072194A1 (en) * | 2009-09-23 | 2011-03-24 | Lsi Corporation | Logical-to-Physical Address Translation for Solid State Disks |
CN102768645A (zh) * | 2012-06-14 | 2012-11-07 | 国家超级计算深圳中心(深圳云计算中心) | 混合缓存的固态硬盘预取方法和固态硬盘ssd |
CN102981963A (zh) * | 2012-10-30 | 2013-03-20 | 华中科技大学 | 一种固态盘的闪存转换层的实现方法 |
CN103049397A (zh) * | 2012-12-20 | 2013-04-17 | 中国科学院上海微系统与信息技术研究所 | 一种基于新型存储器的固态硬盘内部缓存管理方法及系统 |
Non-Patent Citations (2)
Title |
---|
LI BOL: "A SRAM-based FTL Design in Solid State Drives Using Block Associative Mechanism", 《IEEE/IEE ELECTRONIC LIBRARY (IEL)》 * |
谢长生等: "基于片内SRAM的固态盘转换层的设计", 《计算机科学》 * |
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005510B (zh) * | 2015-07-02 | 2018-07-17 | 西安交通大学 | 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法 |
WO2017000517A1 (zh) * | 2015-07-02 | 2017-01-05 | 西安交通大学 | 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法 |
CN105005510A (zh) * | 2015-07-02 | 2015-10-28 | 西安交通大学 | 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法 |
CN105353979A (zh) * | 2015-10-22 | 2016-02-24 | 湖南国科微电子股份有限公司 | SSD内部数据文件系统eblock链接结构、管理系统及方法 |
CN106710628B (zh) * | 2015-11-18 | 2021-01-01 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN106710628A (zh) * | 2015-11-18 | 2017-05-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107423232B (zh) * | 2016-05-24 | 2020-10-16 | 北京忆芯科技有限公司 | Ftl快速访问方法与装置 |
CN112035382A (zh) * | 2016-05-24 | 2020-12-04 | 北京忆芯科技有限公司 | 低延迟访问ftl的方法与装置 |
CN107423232A (zh) * | 2016-05-24 | 2017-12-01 | 北京忆芯科技有限公司 | Ftl快速访问方法与装置 |
CN107562654A (zh) * | 2016-07-01 | 2018-01-09 | 北京忆恒创源科技有限公司 | Io命令处理方法与装置 |
CN107562654B (zh) * | 2016-07-01 | 2020-10-09 | 北京忆恒创源科技有限公司 | Io命令处理方法与装置 |
CN107632939A (zh) * | 2016-07-19 | 2018-01-26 | 西部数据技术公司 | 用于存储装置的映射表 |
CN106354664A (zh) * | 2016-08-22 | 2017-01-25 | 浪潮(北京)电子信息产业有限公司 | 一种固态硬盘数据传输方法及装置 |
CN106445832A (zh) * | 2016-09-06 | 2017-02-22 | 深圳市先天海量信息技术有限公司 | 闪存存储系统的地址映射方法及装置 |
CN107870870A (zh) * | 2016-09-28 | 2018-04-03 | 北京忆芯科技有限公司 | 访问超过地址总线宽度的内存空间 |
CN107870867B (zh) * | 2016-09-28 | 2021-12-14 | 北京忆芯科技有限公司 | 32位cpu访问大于4gb内存空间的方法与装置 |
CN107870867A (zh) * | 2016-09-28 | 2018-04-03 | 北京忆芯科技有限公司 | 32位cpu访问大于4gb内存空间的方法与装置 |
CN107870870B (zh) * | 2016-09-28 | 2021-12-14 | 北京忆芯科技有限公司 | 访问超过地址总线宽度的内存空间 |
CN106648851A (zh) * | 2016-11-07 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种多控存储中io管理的方法和装置 |
CN108459972B (zh) * | 2016-12-12 | 2022-03-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多通道固态硬盘的高效缓存管理设计方法 |
CN108459972A (zh) * | 2016-12-12 | 2018-08-28 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多通道固态硬盘的高效缓存管理设计方法 |
CN106598504A (zh) * | 2016-12-26 | 2017-04-26 | 华为机器有限公司 | 数据存储方法及装置 |
CN108121503B (zh) * | 2017-08-08 | 2021-03-05 | 鸿秦(北京)科技有限公司 | 一种NandFlash地址映射及块管理方法 |
CN108121503A (zh) * | 2017-08-08 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种NandFlash地址映射及块管理算法 |
CN107943719A (zh) * | 2017-11-28 | 2018-04-20 | 杭州电子科技大学 | 一种基于请求分类的闪存转换层控制方法 |
CN110321057A (zh) * | 2018-03-28 | 2019-10-11 | 北京忆恒创源科技有限公司 | 具有增强io性能确定性的缓存的存储设备 |
CN108491335A (zh) * | 2018-03-30 | 2018-09-04 | 北京联想核芯科技有限公司 | 处理映射表项的方法、装置、设备及介质 |
WO2019205447A1 (zh) * | 2018-04-27 | 2019-10-31 | 江苏华存电子科技有限公司 | 一种提升闪存垃圾数据回收方法 |
US11068391B2 (en) | 2018-09-11 | 2021-07-20 | Silicon Motion, Inc. | Mapping table updating method for data storage device |
TWI703438B (zh) * | 2018-09-11 | 2020-09-01 | 慧榮科技股份有限公司 | 映射表更新方法 |
CN109491601A (zh) * | 2018-10-26 | 2019-03-19 | 深圳市硅格半导体有限公司 | 固态硬盘数据的并行处理方法、装置及可读存储介质 |
CN109491601B (zh) * | 2018-10-26 | 2021-11-26 | 深圳市硅格半导体有限公司 | 固态硬盘数据的并行处理方法、装置及可读存储介质 |
CN109445821A (zh) * | 2018-11-01 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种批量刷新双模ssd开放通道模式固件的方法及系统 |
CN111274310A (zh) * | 2018-12-05 | 2020-06-12 | 中国移动通信集团山东有限公司 | 一种分布式数据缓存方法及系统 |
CN109783398A (zh) * | 2019-01-18 | 2019-05-21 | 上海海事大学 | 一种基于相关感知页面级ftl固态硬盘性能优化方法 |
CN110262982A (zh) * | 2019-05-05 | 2019-09-20 | 杭州电子科技大学 | 一种固态硬盘地址映射的方法 |
CN112231241A (zh) * | 2019-07-15 | 2021-01-15 | 深圳市中兴微电子技术有限公司 | 一种数据读取方法和装置、计算机可读存储介质 |
CN112231241B (zh) * | 2019-07-15 | 2023-02-17 | 深圳市中兴微电子技术有限公司 | 一种数据读取方法和装置、计算机可读存储介质 |
CN110955612B (zh) * | 2019-11-07 | 2022-03-08 | 浪潮电子信息产业股份有限公司 | 一种数据缓存方法及相关装置 |
CN110955612A (zh) * | 2019-11-07 | 2020-04-03 | 浪潮电子信息产业股份有限公司 | 一种数据缓存方法及相关装置 |
CN111639037A (zh) * | 2020-05-12 | 2020-09-08 | 深圳大普微电子科技有限公司 | 一种缓存的动态分配方法、装置及DRAM-Less固态硬盘 |
CN111639037B (zh) * | 2020-05-12 | 2023-06-09 | 深圳大普微电子科技有限公司 | 一种缓存的动态分配方法、装置及DRAM-Less固态硬盘 |
CN112764685A (zh) * | 2021-01-26 | 2021-05-07 | 华中科技大学 | 一种消除固态盘中预写式日志重复数据写的方法及设备 |
CN112764685B (zh) * | 2021-01-26 | 2022-07-15 | 华中科技大学 | 一种消除固态盘中预写式日志重复数据写的方法及设备 |
WO2022199027A1 (zh) * | 2021-03-25 | 2022-09-29 | 湖南国科微电子股份有限公司 | 一种随机写的方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104166634A (zh) | 一种固态盘系统中的映射表缓存管理方法 | |
CN102981963B (zh) | 一种固态盘的闪存转换层的实现方法 | |
CN101477492B (zh) | 一种用于固态硬盘的循环重写闪存均衡方法 | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
US7793049B2 (en) | Mechanism for data cache replacement based on region policies | |
CN102576333B (zh) | 非易失性存储器中的数据高速缓存 | |
CN103164346B (zh) | 使用lba位图的方法与系统 | |
US20170235681A1 (en) | Memory system and control method of the same | |
US9104327B2 (en) | Fast translation indicator to reduce secondary address table checks in a memory device | |
US10740251B2 (en) | Hybrid drive translation layer | |
US8935484B2 (en) | Write-absorbing buffer for non-volatile memory | |
CN107391391B (zh) | 在固态硬盘的ftl实现数据拷贝的方法、系统及固态硬盘 | |
CN104102591A (zh) | 计算机子系统及在其中实现闪存转换层的方法 | |
CN109446117B (zh) | 一种固态硬盘页级闪存转换层设计方法 | |
CN104268094A (zh) | 一种优化的闪存地址映射方法 | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
CN103425600A (zh) | 一种固态盘闪存转换层中的地址映射方法 | |
KR101297442B1 (ko) | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 | |
US20120297140A1 (en) | Expandable data cache | |
CN110262982A (zh) | 一种固态硬盘地址映射的方法 | |
CN105975215A (zh) | 一种基于Ondemand算法的STL映射表管理方法 | |
CN105607862A (zh) | 一种dram与mram结合具有备份电源的固态硬盘 | |
CN108664217B (zh) | 一种降低固态盘存储系统写性能抖动的缓存方法及系统 | |
Xu et al. | CLRU: a new page replacement algorithm for NAND flash-based consumer electronics | |
US20240020014A1 (en) | Method for Writing Data to Solid-State Drive |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141126 |
|
WD01 | Invention patent application deemed withdrawn after publication |