CN108762664B - 一种固态硬盘页级缓存区管理方法 - Google Patents

一种固态硬盘页级缓存区管理方法 Download PDF

Info

Publication number
CN108762664B
CN108762664B CN201810276666.8A CN201810276666A CN108762664B CN 108762664 B CN108762664 B CN 108762664B CN 201810276666 A CN201810276666 A CN 201810276666A CN 108762664 B CN108762664 B CN 108762664B
Authority
CN
China
Prior art keywords
page
request
data
queue
data page
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.)
Active
Application number
CN201810276666.8A
Other languages
English (en)
Other versions
CN108762664A (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.)
Shenzhen Wanzhida Technology Co ltd
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
Publication of CN108762664A publication Critical patent/CN108762664A/zh
Application granted granted Critical
Publication of CN108762664B publication Critical patent/CN108762664B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种固态硬盘页级缓冲区管理方法,将固态硬盘页级缓冲区划分为哈希索引表缓存区,脏页缓存区和干净页缓存区三个部分;其中,哈希索引表表缓存区用于记录不同数据页访问的历史特性,脏页缓存区用于缓存热脏页,干净页缓存区用于缓存热干净页。采用热数据识别机制利用哈希表上对应请求的历史访问特性信息对请求数据页进行热数据识别,同时结合访问请求的空间局部特性,将识别的热数据页载入缓冲区。最后采用自适应置换机制,能够在缓冲区发生数据页置换操作时,综合当前读写请求访问特性和实际底层读写代价,在干净页缓存队列和脏页缓存队列中动态选择合适的数据页进行置换。具有良好的实用性和市场前景。

Description

一种固态硬盘页级缓存区管理方法
技术领域
本发明属于固态硬盘固件优化设计技术领域,具体涉及一种固态硬盘页级缓存区管理方法。
背景技术
缓存区是现代计算机系统组成部分中不可或缺的一部分,在存储系统,数据库,网络服务器,文件系统以及操作系统应用广泛。传统的面向机械硬盘的缓存区管理方法,都是基于底层的存储设备读写操作具有相同时延的假设,因此此类缓存区管理方法都是以最大化命中率为目标,减少对底层硬盘读写操作次数以及磁道寻址时间为目标。但是,固态硬盘的底层存储介质为闪存,闪存具有明显与传统磁介质不一样的特点,因而传统面向机械硬盘的缓存区管理算法在固态盘缓存区设计中难以适用。
固态硬盘底层的NAND闪存有如下局限:1)闪存只提供读、写和擦除3种操作,且这三种操作性能不对称,读最快,写次之,擦除最慢;2)闪存是按页(page)、块(block)、平面(plane)的结构进行组织;页是读/写的最小单位,一般为2/4/8KB;块是擦除的最小单位,一个块一般包含64/128个页;3)闪存擦除后只能写一次,即所谓的erase-before-write,这造成闪存不支持原地更新;4)闪存每个存储单元的编程/擦除(P/E)次数有限,超过该P/E次数后,闪存存储数据不再可靠。
目前现有的面向固态盘的缓存区设计主要针对闪存读写代价的不对称性,优先置换干净页,延迟缓存区中脏页的回写,从而减少对底层闪存的写操作次数,实现较快的请求响应时间和较少的块擦除次数。同时现有的算法大部分都是在LRU(Least Recently Used)的基础上进行改进,并没有解决LRU算法在处理一次性扫描污染的缺陷。
缓存区管理方法根据其管理粒度可以分为页级缓存区管理方法和块级缓存区管理方法。页级缓存区管理方法因为操作粒度为页级,相对块级方法能够更精确地区分每个页的访问特性,所以其具有更高的命中率和更少的回写次数。本发明也是公布了一种固态硬盘页级缓存区管理方法。
经典固态盘的页级缓存区管理方法以CFLRU(Clean First LRU)算法为代表。CFLRU缓存读请求和写请求,在缓存区满需要进行剔除操作时,优先置换干净页,脏页被留在缓存区中减少置换代价。AD-LRU是一种基于CFLRU的改进页级缓存区管理算法,它采用二次机剔除策略对缓存区中的数据页进行热冷区分,同时将缓存区划分为冷数据页队列和热数据页队列来缓存相应的数据页。AD-LRU通过设置最小冷数据页队列长度,实现冷热数据页队列动态调整。但是,CFLRU及其最新的改进算法都忽略了访问负载动态的读写变化特性。例如,无条件地优先置换干净页并不适用于以读特性为主的负载。同时CFLRU及其改进算法都没有充分利用数据访问的局部特性,因此没有实现有效的热数据页识别。
发明内容
针对上述现有技术中存在的不足,本发明公布一种固态硬盘页级缓存区管理方法,不仅能有效识别数据请求中的热数据页,而且能依据负载访问特性自适应地选择数据页进行置换。
为实现本发明的目的,本发明采用以下技术方案:
一种固态硬盘页级缓存区管理方法,所述固态硬盘缓存区划分为哈希索引表缓存区,脏页缓存区和干净页缓存区三个部分,所述固态硬盘缓存区的管理粒度为页级。所述哈希索引表缓存区用于记录更多数据页的访问特性,所述脏页缓存区用于缓存热的修改过的数据页(脏页),所述干净页缓存区用于缓存仅被读过的热的数据页(干净页)。
所述管理方法包括如下步骤:
S1,当访问请求到来时,查看请求数据页是否在脏页或干净页缓存区命中;若命中,执行S2,否则,执行S3;
S2,将命中数据页迁移到相应队列的MRU位置,并响应上层请求;然后更新目标干净页队列长度;最后执行S8;
S3,利用哈希索引表对当前请求进行热数据识别;若识别为热数据页,则执行S4,若识别为冷数据页,则执行S5;
S4,判定当前缓存区是否满;若满,执行S6,否则,执行S7;
S5,交由底层闪存转换层响应该访问请求;然后执行S8;
S6,比较当前干净页列队长度与目标干净页列队长度的大小;若大于,剔除干净页队列的LRU位置的数据页,否则,剔除脏页队列的LRU位置的数据页;然后更新剔除页在哈希索引表中记录的信息;最后执行S7;
S7,将缺失的数据页加载进相应的缓存队列,并响应上层请求;然后执行S8;
S8,更新该请求对应数据页在哈希索引表中记录的信息;然后将当前的系统操作时间t_sys加1,并对t_sys进行模T(T为预设的半衰期)运算,若余数为0,执行S9;否则,结束本次请求的处理;
S9,判断系统操作时间t_sys与哈希索引表中记录的每个数据页的最后更新时间t_update的差是否超过T;若超过,则将该数据页在哈希表中记录的访问次数除2取整。
进一步地,所述步骤S6和S8中,所述更新数据页在哈希索引表中记录的信息的具体方法是:
所述数据页在哈希索引表记录的信息包括访问次数count、最后访问时间t_update及数据页在缓存区的状态Buf_State。
所述的更新方法为,每次更新时,访问次数加1,即count=count+1;最后访问时间更新为当前系统操作时间t_sys,即t_update=t_sys;当数据页在缓存区时,Buf_State=1,否则Buf_State=0。
进一步地,所述步骤S2中,所述将命中数据页迁移到相应队列的MRU位置的具体方法是:
所述脏页缓存区采用LRU原则管理队列,当请求的数据页在脏页缓存区命中请求时,将命中的数据页移动到脏页队列的MRU位置。
所述干净页缓存区采用LRU原则管理队列,当该缓存区命中读请求时,将命中的数据页移动到干净页队列的MRU位置;当命中写请求时,将命中的数据页移动到脏页队列的MRU位置。
进一步地,所述步骤S2中,所述更新目标干净页队列长度Tau的计算公式为:
Figure BDA0001613779960000031
上述公式中,Tau’为更新前的目标干净页队列长度,Tau的初始值设为缓存区实际能存储的队列长度的一半;CL、DL为当前干净页、脏页队列的实际长度;Cr、Cw是归一化的闪存读、写代价,具体如下:
Figure BDA0001613779960000032
ReadDelay和WriteDelay为实际的闪存读、写延迟。
进一步地,所述步骤S3中,所述的利用哈希索引表对当前请求进行热数据识别的流程如下:
S31,查询该请求数据页对应哈希表是否记录了有效信息,若不存在则执行步骤S32,反之则执行步骤S33;
S32,该请求判定为初次访问的数据,若为写请求则判定为热数据页,若为读请求则判定为冷数据页,然后结束冷热判断;
S33,读取该数据页对应的哈希表项中记录的访问次数count,最后访问时间t_update,系统操作时间t_sys,利用下面公式计算该数据页的访问热度Hp;
Figure BDA0001613779960000041
S34,将访问热度值Hp与预设的热度阈值H_th1进行比较,若Hp>H_th1,则判定该请求为热数据页,并结束冷热判断;反之,执行步骤S35;
S35,读取该数据页逻辑地址页前后K个数据页的哈希表项的记录信息,统计K个数据页在哈希表中的数量N,以及这N个数据页在缓存区的状态bufState为1的项数为M;比较M/N与预设阈值H_th2,若M/N>H_th2,则判定该数据页为热,反之判定为冷;然后结束冷热判断。
本发明与现有技术相比,有益效果是:
本发明提出的固态硬盘页级缓存区管理方法通过将缓存区进行分区,然后采用高效的热数据识别机制识别冷热数据页,高效的随负载特性变化的干净缓存区队列长度自适应调整机制,自适应数据页剔除机制,使得该管理方法在多种负载测试条件下都能得到较高的缓存命中率和提升固态硬盘的读写性能。在多种读写特性不同的负载测试环境下,本发明公布的方法读写命中率都优于CFLRU及改进算法AD-LRU等,具有良好的实用性和市场前景。
附图说明
为了更清楚地说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1:本发明的哈希索引表结构示意图。
图2:本发明的干净页和脏页缓存队列结构示意图。
图3:本发明的热数据识别机制。
图4:本发明的自适应置换机制。
图5:本发明的管理方法的实施流程图。
图6:本发明的具体实施例图
具体实施方式
为了使本领域技术人员更好地理解本发明的技术方案,下面将结合附图以及具体的实施方式,对本发明进行详细地介绍说明。
本发明提出的固态硬盘页级缓存区管理方法,将缓存区划分为三个部分:哈希索引表缓存区(Hash-List),脏页缓存区(Dirty-List)和干净页缓存区(Clean-List)。
Hash-List用于记录不同数据页访问的历史特性。每个数据页的哈希索引值X由其对应的逻辑页地址(Logical Page Address Number,LPN)代入给定的哈希函数计算得到。利用该索引值X实现对哈希索引表的查询,更新和重置。如图1所示,本发明所述Hash-List具体包括数据页的访问次数count,最后访问时间t_update,以及该数据页在缓存区中的状态Buf_State。
Dirty-List用于缓存热的修改过的数据页(脏页),该缓存区的数据页按照LRU原则进行队列管理。Clean-List用来缓存仅被读过的热的数据页(干净页),该缓存区同样利用LRU队列管理数据页,但发生更新的数据页将被移入脏页缓存区。脏页缓存区和干净页缓存区的队列结构如图2所示,两者缓存队列的大小会受自适应置换机制的控制动态调整。
本发明提出的管理方法中所述的热数据识别机制如图3所示,读取待判断数据页对应哈希表中的记录,对其进行初步的冷热判断;再通过读取该数据页前后K个数据页的哈希表项的记录信息,结合这些相邻数据页的状态对该数据页识别的结果进行纠正,提高识别精度,只有识别为热的请求数据页才能进入缓存区。其数据识别流程如下:
S31,查询该请求数据页对应哈希表是否记录了有效信息,若不存在则执行步骤S32,反之则执行步骤S33;
S32,该请求判定为初次访问的数据,若为写请求则判定为热数据页,若为读请求则判定为冷数据页,然后结束冷热判断;
S33,读取该数据页对应的哈希表项中记录的访问次数count,最后访问时间t_update,系统操作时间t_sys,利用下面公式计算该数据页的访问热度Hp;
Figure BDA0001613779960000051
S34,将访问热度值Hp与预设的热度阈值H_th1进行比较,若Hp>H_th1,则判定该请求为热数据页,并结束冷热判断;反之,执行步骤S35;
S35,读取该数据页逻辑地址页前后K个数据页的哈希表项的记录信息,统计K个数据页在哈希表中的数量N,以及这N个数据页在缓存区的状态buf_State为1的项数为M;比较M/N与预设阈值H_th2,若M/N>H_th2,则判定该数据页为热,反之判定为冷;然后结束冷热判断。
本发明提出的管理方法中所述的自适应选择剔除机制如图4所示,该机制包含两种处理流程,一个为阈值Tau(目标干净页队列长度)更新流程,一个为选择剔除流程。
在阈值Tau更新流程中,所述更新目标干净页队列长度Tau的计算公式为:
Figure BDA0001613779960000061
上述公式中,Tau’为更新前的目标干净页队列长度,Tau的初始值设为缓存区实际能存储的队列长度的一半;CL、DL为当前干净页、脏页队列的实际长度;Cr、Cw是归一化的闪存读、写代价,具体如下:
Figure BDA0001613779960000062
ReadDelay和WriteDelay为实际的闪存读、写延迟。
在剔除流程中,缓冲区通过比较当前干净页队列长度CL和当前目标干净页长度Tau选择合适的剔除对象。若CL>Tau,则选择干净页缓存队列LRU位置的数据页进行剔除,反之选择脏页缓存队列LRU位置的数据页进行剔除。
本发明的提出的管理方法的实施流程图如图5所示,包含如下步骤:
S1,当访问请求到来时,查看请求数据页是否在脏页缓存区或干净页缓存区命中,若是,则执行S2,若否,则执行S3。具体来说,当一个访问请求到达需要处理的时候,需要遍历脏页和干净页缓存队列,查看请求数据页是否在缓冲区中。
S2,响应请求进行相应的数据页命中迁移,并根据命中数据页所在的缓存队列位置和请求类型,启动自适应阈值调整机制,更新目标干净页队列长度Tau;然后将当前的请求逻辑页地址代入哈希函数计算得到哈希索引值,更新该哈希索引值对应表项中记录的信息,包括:更新对应表项中记录的Count=Count+1,最后访问时间更新为当前系统操作时间t_sys,即t_update=t_sys,Buf_State=1,之后执行S8。
S3,启动热数据识别机制,查询请求数据页对应的哈希索引表中的信息,对访问的数据页进行冷热识别;若识别为热数据页,则执行S4,若识别为冷数据页,则执行S5。
S4,判定当前缓冲区是否满,若满,则执行S6,若否,则执行S7。
S5,将请求直接交由底层闪存进行响应处理,将当前的请求逻辑页地址代入哈希函数计算得到哈希索引值,更新该哈希索引值对应表中记录位的信息,之后跳转执行S8。
S6,启动自适应选择剔除机制,比较当前干净页队列长度CL与目标干净页队列长度Tau的大小,选择相应缓存队列LRU位置的数据页进行剔除,同时将剔除的请求逻辑页地址代入哈希函数计算得到哈希索引值,初始化对应表项中记录信息;之后跳转执行S7。
S7,将缺失的数据页加载入缓冲区相应的缓存队列并响应请求,同时将当前的请求逻辑页地址代入哈希函数计算得到哈希索引值,更新对应表项中记录的Count=1,最后访问时间更新为当前系统操作时间t_sys,即t_update=t_sys,Buf_State=1,之后执行S8。
S8,将当前的系统操作时间t_sys加1,并对t_sys进行模T(T为预设的半衰期)运算,若余数不为0,则执行S9,否则,结束本次请求的处理。
S9,判断系统操作时间t_sys与哈希索引表中记录的每个数据页的最后更新时间t_update的差是否超过T,若超过,若超过,则将该数据页在哈希表中记录的访问次数除2取整,之后结束本次请求的处理。
为了进一步对上述实施流程进行说明,本发明结合一个实际写请求处理流程进行说明,该流程如图6所示:
S10,当一个写请求(请求访问数据,LPN=10)到来时,遍历缓冲区后未匹配到请求的数据页,则执行S11;
S11,通过对请求逻辑地址进行哈希计算,找到请求页对应的哈希表,计算其热度值
Figure BDA0001613779960000071
(当前的系统时间为9,热度阈值H_th1=0.5),则初步判断请求为冷,执行S12;
S12,遍历该请求页(LPN=10)前后K(K=4)个相邻地址数据页(LPN=8,9,11,12)的状态,发现存在有效哈希表的记录个数M=4,在缓冲区的项数N=4,
Figure BDA0001613779960000072
(热度阈值H_th2=0.5),纠正该数据页判断为热,执行S13;
S13,此时缓冲区满(Buf_Size=9,Tau=5),根据比较干净页缓存队列和目标队列的大小,选择脏页LRU位置的(LPN=9)的数据页剔除,执行S14;
S14,将数据页(LPN=9)剔除时,更新其哈希表对应的信息,将其Buf_State置为0,执行S15;
S15,根据请求类型,将请求的数据页(LPN=10)加入到脏页缓存队列的MRU位置,执行S16;
S16,更新请求页对应的哈希表中的信息,将Buf_State置为1,t_update更新为当前系统时间,访问次数Count加1。单次请求处理结束。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种固态硬盘页级缓冲区管理方法,其特征在于,
所述固态硬盘页级缓冲区划分为哈希索引表缓存区,脏页缓存区和干净页缓存区三个部分;其中,哈希索引表表缓存区用于记录不同数据页访问的历史特性,脏页缓存区用于缓存热的修改过的数据页,干净页缓存区用于缓存仅被读过的热的数据页;
所述管理方法包括如下步骤:
S1,当访问请求到来时,查看请求数据页是否在脏页缓存区或干净页缓存区命中,若是,则执行S2,若否,则执行S3;
S2,将命中数据页迁移到相应队列的MRU位置,并响应上层请求;然后更新目标干净页队列长度;然后执行S8;
S3,利用哈希索引表对当前请求进行热数据识别;若识别为热数据页,则执行S4,若识别为冷数据页,则执行S5;
S4,判定当前缓冲区是否满,若是,则执行S6,若否,则执行S7;
S5,交由底层闪存进行响应处理,然后执行S8;
S6,比较当前干净页队列长度与目标干净页列队长度的大小,若当前干净页队列长度大于目标干净页列队长度,剔除干净页队列的LRU位置的数据页,否则,剔除脏页队列的LRU位置的数据页;然后更新剔除页在哈希索引表中记录的信息;然后执行S7;
S7,将缺失的数据页加载入缓冲区相应的缓存队列,并响应上层请求;然后执行S8;
S8,更新该请求对应数据页在哈希索引表中记录的信息;然后将当前的系统操作时间t_sys加1,并对t_sys进行模T运算,若余数为0,执行S9;否则,结束本次请求的处理;其中,T为预设的半衰期;
S9,判断系统操作时间t_sys与哈希索引表中记录的每个数据页的最后更新时间t_update的差是否超过T;若超过,则将该数据页在哈希表中记录的访问次数除2取整。
2.根据权利要求1所述的固态硬盘页级缓冲区管理方法,其特征在于,所述哈希索引表缓存区包括数据页的访问次数count、最后访问时间t_update及数据页在缓冲区的状态Buf_State。
3.根据权利要求2所述的固态硬盘页级缓冲区管理方法,其特征在于,所述更新剔除页或请求对应数据页在哈希索引表中记录的信息的更新方法为:
每次更新时,访问次数加1,即count=count+1;最后访问时间更新为当前系统操作时间t_sys,即t_update=t_sys;当数据页在缓存区时,Buf_State=1,否则Buf_State=0。
4.根据权利要求1所述的固态硬盘页级缓冲区管理方法,其特征在于,所述步骤S2中,将命中数据页迁移到相应队列的MRU位置的具体方法是:
所述脏页缓存区采用LRU原则管理队列,当请求的数据页在脏页缓存区命中请求时,将命中的数据页移动到脏页队列的MRU位置;
所述干净页缓存区采用LRU原则管理队列,当该缓存区命中读请求时,将命中的数据页移动到干净页队列的MRU位置;当命中写请求时,将命中的数据页移动到脏页队列的MRU位置。
5.根据权利要求1所述的固态硬盘页级缓冲区管理方法,其特征在于,所述步骤S2中,所述更新目标干净页队列长度Tau的计算公式为:
Figure FDA0002813753090000021
上述公式中,Tau’为更新前的目标干净页队列长度,Tau的初始值设为缓存区实际能存储的队列长度的一半;CL、DL为当前干净页、脏页队列的实际长度;Cr、Cw是归一化的闪存读、写代价,具体如下:
Figure FDA0002813753090000022
ReadDelay和WriteDelay为实际的闪存读、写延迟。
6.根据权利要求1所述的固态硬盘页级缓冲区管理方法,其特征在于,所述步骤S3中,所述的利用哈希索引表对当前请求进行热数据识别的流程如下:
S31,查询该请求数据页对应哈希表是否记录了有效信息,若不存在则执行步骤S32,反之则执行步骤S33;
S32,该请求判定为初次访问的数据,若为写请求则判定为热数据页,若为读请求则判定为冷数据页,然后结束冷热判断;
S33,读取该数据页对应的哈希表项中记录的访问次数count,最后访问时间t_update,系统操作时间t_sys,利用下面公式计算该数据页的访问热度Hp;
Figure FDA0002813753090000023
S34,将访问热度值Hp与预设的热度阈值H_th1进行比较,若Hp>H_th1,则判定该请求为热数据页,并结束冷热判断;反之,执行步骤S35;
S35,读取该数据页逻辑地址页前后K个数据页的哈希表项的记录信息,统计K个数据页在哈希表中的数量N,以及这N个数据页在缓存区的状态bufState为1的项数为M;比较M/N与预设阈值H_th2,若M/N>H_th2,则判定该数据页为热,反之判定为冷;然后结束冷热判断。
CN201810276666.8A 2018-02-05 2018-03-30 一种固态硬盘页级缓存区管理方法 Active CN108762664B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810110561 2018-02-05
CN2018101105615 2018-02-05

Publications (2)

Publication Number Publication Date
CN108762664A CN108762664A (zh) 2018-11-06
CN108762664B true CN108762664B (zh) 2021-03-16

Family

ID=63980924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810276666.8A Active CN108762664B (zh) 2018-02-05 2018-03-30 一种固态硬盘页级缓存区管理方法

Country Status (1)

Country Link
CN (1) CN108762664B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857680B (zh) * 2018-11-21 2020-09-11 杭州电子科技大学 一种基于动态页面权重的lru闪存缓存管理方法
KR20200085522A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법
CN111796757B (zh) * 2019-04-08 2022-12-13 中移(苏州)软件技术有限公司 一种固态硬盘缓存区管理方法和装置
US10977181B2 (en) * 2019-07-10 2021-04-13 International Business Machines Corporation Data placement in write cache architecture supporting read heat data separation
CN113032088B (zh) * 2019-12-25 2023-12-22 阿里巴巴集团控股有限公司 脏页记录方法、装置、电子设备及计算机可读介质
CN111580754B (zh) * 2020-05-06 2021-07-13 西安交通大学 一种写友好的闪存固态盘缓存管理方法
CN112052190B (zh) * 2020-09-03 2022-08-30 杭州电子科技大学 一种基于布隆过滤器和二级lru表的固态硬盘热数据识别方法
CN112684981B (zh) * 2020-12-23 2023-12-22 北京浪潮数据技术有限公司 固态硬盘读操作记录方法、系统、装置及可读存储介质
CN113177069B (zh) * 2021-05-08 2024-07-09 中国科学院声学研究所 一种高速缓存与查询系统及查询方法
CN113392089B (zh) * 2021-06-25 2023-02-24 瀚高基础软件股份有限公司 一种数据库索引优化方法及可读存储介质
CN113672524B (zh) * 2021-08-20 2024-07-02 上海哔哩哔哩科技有限公司 基于多级缓存的数据处理方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880787B1 (en) * 2014-01-17 2014-11-04 Netapp, Inc. Extent metadata update logging and checkpointing
CN104794064A (zh) * 2015-04-21 2015-07-22 华中科技大学 一种基于区域热度的缓存管理方法
CN105389135A (zh) * 2015-12-11 2016-03-09 华中科技大学 一种固态盘内部缓存管理方法
CN105630699A (zh) * 2015-04-15 2016-06-01 上海磁宇信息科技有限公司 一种使用mram的固态硬盘及读写缓存管理方法
CN106681668A (zh) * 2017-01-12 2017-05-17 郑州云海信息技术有限公司 一种基于固态盘缓存的混合式存储系统及存储方法
CN107391398A (zh) * 2016-05-16 2017-11-24 中国科学院微电子研究所 一种闪存缓存区的管理方法及系统
CN107423229A (zh) * 2017-03-16 2017-12-01 杭州电子科技大学 一种面向页级ftl的缓冲区改进方法
CN107608626A (zh) * 2017-08-16 2018-01-19 华中科技大学 一种基于ssd raid阵列的多级缓存及缓存方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US10176102B2 (en) * 2016-03-30 2019-01-08 Infinio Systems, Inc. Optimized read cache for persistent cache on solid state devices

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880787B1 (en) * 2014-01-17 2014-11-04 Netapp, Inc. Extent metadata update logging and checkpointing
CN105630699A (zh) * 2015-04-15 2016-06-01 上海磁宇信息科技有限公司 一种使用mram的固态硬盘及读写缓存管理方法
CN104794064A (zh) * 2015-04-21 2015-07-22 华中科技大学 一种基于区域热度的缓存管理方法
CN105389135A (zh) * 2015-12-11 2016-03-09 华中科技大学 一种固态盘内部缓存管理方法
CN107391398A (zh) * 2016-05-16 2017-11-24 中国科学院微电子研究所 一种闪存缓存区的管理方法及系统
CN106681668A (zh) * 2017-01-12 2017-05-17 郑州云海信息技术有限公司 一种基于固态盘缓存的混合式存储系统及存储方法
CN107423229A (zh) * 2017-03-16 2017-12-01 杭州电子科技大学 一种面向页级ftl的缓冲区改进方法
CN107608626A (zh) * 2017-08-16 2018-01-19 华中科技大学 一种基于ssd raid阵列的多级缓存及缓存方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"缓冲区管理层对固态盘的有效性研究";杜晨杰,李君,姚英彪;《浙江万里学院学报》;20170315;第30卷(第2期);第72-77页 *

Also Published As

Publication number Publication date
CN108762664A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
CN108762664B (zh) 一种固态硬盘页级缓存区管理方法
KR101894625B1 (ko) 데이터 저장 시스템들에 대한 우선순위 기반 가비지 수집
CN107622022B (zh) 数据存储设备中的高速缓存超量配置
US9128847B2 (en) Cache control apparatus and cache control method
CN103257935B (zh) 一种缓存管理方法及其应用
CN107391398B (zh) 一种闪存缓存区的管理方法及系统
US9003099B2 (en) Disc device provided with primary and secondary caches
CN108845957B (zh) 一种置换和回写自适应的缓冲区管理方法
US20140208038A1 (en) Sectored cache replacement algorithm for reducing memory writebacks
US20090216945A1 (en) Storage system which utilizes two kinds of memory devices as its cache memory and method of controlling the storage system
CN110888600B (zh) 一种面向nand闪存的缓冲区管理方法
US11645006B2 (en) Read performance of memory devices
CN104794064A (zh) 一种基于区域热度的缓存管理方法
CN107463509B (zh) 缓存管理方法、缓存控制器以及计算机系统
US20090094391A1 (en) Storage device including write buffer and method for controlling the same
CN111580754B (zh) 一种写友好的闪存固态盘缓存管理方法
CN103514110A (zh) 非易失性存储设备的缓存管理方法及装置
CN106775466A (zh) 一种无dram的ftl读缓存管理方法及装置
CN111352593B (zh) 一种区分快写和正常写的固态硬盘数据写入方法
CN111506517B (zh) 一种基于访问局部性的闪存页级地址映射方法及其系统
JPWO2018211749A1 (ja) ストレージコントローラ、ストレージシステム、ストレージコントローラの制御方法およびプログラム
CN102521161B (zh) 一种数据的缓存方法、装置和服务器
CN102097128B (zh) 一种基于闪存的自适应缓冲区置换方法
CN115048056B (zh) 基于页面替换代价的固态硬盘缓冲区管理方法
CN111008158B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240718

Address after: 518000 1002, Building A, Zhiyun Industrial Park, No. 13, Huaxing Road, Henglang Community, Longhua District, Shenzhen, Guangdong Province

Patentee after: Shenzhen Wanzhida Technology Co.,Ltd.

Country or region after: China

Address before: 310018 no.1158, No.2 street, Baiyang street, Hangzhou Economic and Technological Development Zone, Zhejiang Province

Patentee before: HANGZHOU DIANZI University

Country or region before: China