CN107590084A - 一种基于分类策略的页级缓冲区改进方法 - Google Patents
一种基于分类策略的页级缓冲区改进方法 Download PDFInfo
- Publication number
- CN107590084A CN107590084A CN201710724114.4A CN201710724114A CN107590084A CN 107590084 A CN107590084 A CN 107590084A CN 201710724114 A CN201710724114 A CN 201710724114A CN 107590084 A CN107590084 A CN 107590084A
- Authority
- CN
- China
- Prior art keywords
- data page
- memory block
- page
- data
- module
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于分类策略的页级缓冲区改进方法。本发明包括请求类型区分模块、热数据页存储区模块、冷数据页存储区模块和连续数据页存储区模块。首先将热数据页缓存分为热数据页存储区模块、冷数据页存储区模块和连续数据页存储区模块,分别用来加载访问频繁的请求的数据页、访问频率较低的请求的数据页和具有高空间本地性请求的数据页;其次通过预取多个连续的数据页到连续数据页存储区模块;最后当数据页缓存满时,优先置换冷数据页存储区模块中最近最少使用的干净页,若冷数据页存储区模块无脏页时,再将脏页置换出去本发明相比页级LRU算法,提升了对连续负载的响应性能,有效降低了闪存的读写开销。
Description
技术领域
本发明属于固态硬盘算法设计技术领域,公开了一种基于分类策略的页级缓冲区改进方法。
背景技术
缓冲区置换算法是提高存储系统性能的重要手段之一。目前,缓冲区置换算法被广泛的应用到文件系统,数据库以及其他存储系统中。但传统的缓冲区置换算法以提高缓冲区命中率为主要目标,并且为机械硬盘而设计的,而闪存的读写操作代价的不对称导致了传统的缓冲区置换算法无法很好的适应固态盘。
目前已有的面向固态盘的缓冲区置换算法主要是针对闪存读写代价的不确定性,对数据页进行分类。在置换数据页时,尽量减少置换脏数据页,优先置换干净页以减少数据页的置换代价。并且已有算法主要是在LRU的基础上进行改进。但是LRU算法无法很好的解决一次性扫描污染的问题。
缓冲区算法设计是SSD固件设计中一个非常关键的问题,特别是对中高端的SSD的性能和寿命优化,缓冲区算法设计起着至关重要的作用。由于数据访问具有较高的时间局部性和空间局部性特征,缓冲区算法设计可以将访问频繁的数据缓存在缓冲区中,以减少对闪存的直接访问,提高CPU的读写效率。
缓冲区能优化计算机存储系统性能的基本原理是利用数据访问存在局部性特征,将最近和经常访问的数据存储在缓冲区中,以快速响应CPU的读写请求。在SSD设计中,缓冲区不仅能提高SSD的读写性能,还能延长SSD硬盘的寿命,因此它也是SSD的关键部件。页级缓冲区管理算法管理粒度大小为一个页,缓冲区满后剔除也按页进行。页级缓冲区管理算法的优势在于细粒度的区分每个页的访问特点,缓冲区命中概率更高。经典的页级缓冲区算法为页级LRU和CFLRU。页级LRU的置换粒度为一个页,当缓冲区满时,每次选择最近最少使用的数据页进行剔除或更新。CFLRU是针对SSD的经典页级缓冲区管理算法,CFLRU缓存读请求和写请求,在缓冲区发生缺页时优先选择干净页进行替换,脏页被留在缓冲区以减少置换代价。然而,上述二种经典的缓冲区置换算法没有考虑到缓冲区中数据页的冷热程度,即未将缓冲区分成热数据页缓存和冷数据页缓存,对数据进行分类存储;再者,页级LRU和CFLRU也都没有考虑到数据访问具有空间局部性的特点,可以通过预取策略来提升对具有高空间本地性请求的处理能力。
发明内容
本发明公开了一种基于分类策略的页级缓冲区改进算法。通过本发明,在固态硬盘缓冲区管理层设计中,有着很好的实用性和应用前景。
本发明解决其技术问题采用的技术方案如下:
一种基于分类策略的页级缓冲区改进方法,包括4个模块,即请求类型区分模块,热数据页存储区模块、冷数据页存储区模块和连续数据页存储区模块;
请求类型区分模块主要是用来判断文件系统发出的请求的类型,即判断请求是否具有高空间本地性的连续请求;
热数据页存储区模块主要是用来加载访问频繁的请求的数据页,若请求的数据页在冷数据页存储区模块或连续数据页存储区模块被累计二次命中,也加载到热数据页存储区模块中;
冷数据页存储区模块主要是用来加载访问频率较低的请求的数据页,此外,热数据页存储区模块剔除的数据页也会加载到冷数据页存储区模块中链表的MRU位置。若请求的数据页在冷数据页存储区模块中被二次命中后,则将该数据页加载到热数据页存储区模块中。当冷数据页存储区模块满时,依据LRU替换策略,优先剔除最近最少访问的干净页,若无干净页,再选择将脏页置换出去;
连续数据页存储区模块主要是用来加载具有高空间本地性请求(即连续请求)的数据页。同样,当请求的数据页在连续数据页存储区模块中被累计两次命中,也需要将该命中的数据页加载到热数据页存储区模块中。为利用连续请求的高空间本地性,本改进算法采用预取策略,通过预取多个连续的数据页到连续数据页存储区模块,提升了它对连续请求的响应性能。再者,当连续数据页存储区模块满时,选择最先缓存到连续数据页存储区模块的数据页进行置换。
此外,本发明包含以下几个步骤:
步骤1、将SSD中的数据页缓存分成请求类型区分模块、热数据页存储区模块、冷数据页存储区模块和连续数据页存储区模块等4个模块。整个数据页缓存中的数据页均标识有hot-flag标志位,hot-flag设置为1表示该数据页为热页,设置为0表示该数据页为冷页;
步骤2、当请求到来,若请求的数据在数据页缓存,则直接为之服务。若不在数据页缓存中,则需要将请求的数据页加载到数据页缓存中;
步骤3、当冷数据页存储区模块或连续数据页存储区模块中的数据页被累计二次命中时,则认为该数据页为热数据页,并将其hot-flag标志位设置为1,并将该数据页加载到热数据页存储区模块中的MRU(most recently used)位置;
步骤4、若请求的数据页不在数据页缓存时,则请求类型区分模块判断请求的类型,若是连续请求,则直接将该请求的数据页加载到连续数据页存储区模块中,反之则加载到冷数据页存储区模块中,并且将数据页的hot-flag设置为0;
步骤5、当热数据页存储区模块满时,依据LRU剔除策略选择最近最少使用的数据页剔除到冷数据页存储区模块的MRU位置,并将该页的hot-flag设置为0;
步骤6、当连续请求存储区模块满时,选择最先存储到S-CDP的数据页进行置换;
步骤7、当冷数据页存储区模块满时,优先选择最近最少使用的干净页进行剔除,当冷数据页存储区无干净页时,再选择将脏页置换出去。
本发明选取3个性能指标——缓冲区命中率、平均响应时间和闪存块擦除次数作为评价标准,具体解释如下:1)缓冲区命中率指请求的数据页在整个数据页缓存中的命中比率,即在数据页缓存中得到服务的请求占总请求的比例;2)平均响应时间是指请求完成服务时间与到达时间的时间差,它是垃圾回收、地址映射的开销以及数据访问时间的综合,也是衡量SSD性能的关键指标;3)闪存块擦除次数包括地址转换块的擦除次数和数据块的擦除次数,它直接决定了SSD的使用寿命。
本发明与背景技术相比,具有的有益的效果是:
实验结果显示,平均而言,本改进算法相比页级LRU算法,缓冲区命中率提升31.50%,响应时间减少26.18%,闪存块擦除次数减少29.34%;相比CFLRU算法,缓冲区命中率提升25.45%,响应时间减少18.32%,闪存块擦除次数减少19.88%。
附图说明
图1为基于NAND闪存的固态盘总体架构图;
图2为一种基于分类策略的页级缓冲区改进算法的总体架构图;
图3(a)、3(b)、3(c)、3(d)为一种基于分类策略的页级缓冲区改进算法的一个实例。
具体实施方式
图1给出了基于NAND闪存的固态盘总体架构图,从功能上划分,基于NAND闪存的SSD一般由主机接口层、缓冲区管理层(Buffer Management Layer,BML)、闪存转换层和NAND闪存阵列层(Flash Array Layer,FAL)组成。
在图2中,描述了一种基于分类策略的页级缓冲区改进方法的总体架构图,图中RLPN和RPPN分别表示数据的逻辑页地址和物理页地址。首先,算法利用请求类型区分模块来判断文件系统发出请求的类型,并将RAM分成热数据页存储区模块(hot cached datapage,H-CDP)、冷数据页存储区模块(cold cached data page,C-CDP)和连续数据页存储区模块(sequential cached data page,S-CDP)三个部分,H-CDP主要用于加载访问频繁的请求的数据页,C-CDP主要用于加载访问频率较低的请求的数据页,S-CDP主要用来加载具有高空间本地性请求的数据页。其次,闪存转换层采用的是最新的页级FTL算法——CPFTL算法。最后,闪存被分为转换块区域和数据块区域,数据块用于存储实际的数据,转化块用于存储页级映射表。
下面给出一个示例,该示例详细描述了算法处理请求的流程,为方便演示,我们弱化了缓存空间的大小。假设请求到达的顺序如下:(16,4,R),(18,1,W),(3584,1,W)。其中,括号内的3个参数分别表示请求的逻辑页号、请求大小和请求类型。图3给出了H-CDP,S-CDP,C-CDP在各阶段的存储状态,且H-CDP已存满数据页,S-CDP不存储数据页,如图3(a)所示。
算法处理流程:当请求(16,4,R)到来时,由于请求的数据页不在缓存,且算法判断出请求的连续性,则预取一组数据页到S-CDP中,使得该连续请求的后3个逻辑页17~19都能在S-CDP命中,如图3(b)所示。当请求(18,1,W)到来时,由于该请求的数据页在S-CDP中且被累计二次命中,需将其加载到H-CDP中,这时H-CDP已满,则剔除逻辑页1的数据页到C-CDP,然后将逻辑页18的数据页加载到H-CDP中,如图3(c)所示。当请求(3584,1,W)到来时,由于该请求的数据页不在缓存,则需将该请求的数据页加载到C-CDP中,这时C-CDP已满,则剔除C-CDP中最近最少访问的逻辑页515的数据页,然后加载逻辑页3584的数据页到C-CDP,如图3(d)所示。
Claims (5)
1.一种基于分类策略的页级缓冲区改进方法,其特征在于包括请求类型区分模块、热数据页存储区模块、冷数据页存储区模块和连续数据页存储区模块;
所述的请求类型区分模块是用来区分文件系统发出的请求是随机请求还是具有高空间本地性的连续请求;
所述的热数据页存储区模块是用来加载访问频繁的请求的数据页;所述的访问频繁的请求是指请求在缓冲区中的累计命中次数大于等于两次;
所述的冷数据页存储区模块要是用来缓存访问频率较低的请求的数据页,若请求在冷数据页存储区模块中累计两次命中后,即将该命中的数据页加载到热数据页存储区模块中;再者,冷数据页存储区模块还存储从热数据页存储区模块剔除的数据页;
所述的连续数据页存储区模块主要是用来加载具有高空间本地性请求的数据页;同样,当连续数据页存储区模块中的数据页被累计两次命中后,也需要将该命中的数据页加载到热数据页存储区模块中。
2.如权利要求1所述的一种基于分类策略的页级缓冲区改进方法,其特征在于预取多个连续的数据页到连续数据页存储区,能够提升对连续请求的响应性能。
3.如权利要求2所述的一种基于分类策略的页级缓冲区改进方法,其特征在于当缓冲区满时,优先置换冷数据页存储区的干净页,当冷数据页存储区没有干净页时,再将脏页置换出去,有效降低闪存的读写开销。
4.如权利要求3所述的一种基于分类策略的页级缓冲区改进方法,其特征在于包括如下步骤:
步骤1、将SSD中的数据页缓存分成请求类型区分模块,热数据页存储区模块、冷数据页存储区模块和连续数据页存储区模块4个模块,数据页缓存中的所有数据页都标识有hot-flag标志位,即hot-flag设置为1表示该数据页为热页,设置为0表示为冷页;
步骤2、当请求到来,若请求的数据在数据页缓存,则直接为之服务;若不在数据页缓存中,则需要将请求的数据页加载到数据页缓存中;
步骤3、当冷数据页存储区模块或连续数据页存储区模块中的数据页被累计二次命中时,则认为该数据页为热数据页,并将其hot-flag标志位设置为1,并将该数据页加载到热数据页存储区模块中的MRU位置;
步骤4、若请求的数据页不在数据页缓存时,则请求类型区分模块判断请求的类型,若是连续请求,则直接将该请求的数据页加载到连续数据页存储区模块中,反之则加载到冷数据页存储区模块中,并且将数据页的hot-flag设置为0;
步骤5、当热数据页存储区模块满时,依据LRU剔除策略选择最近最少使用的数据页剔除到冷数据页存储区模块的MRU位置,并将该页的hot-flag设置为0;
步骤6、当连续请求存储区模块满时,选择最先存储到S-CDP的数据页进行置换;
步骤7、当冷数据页存储区模块满时,优先选择最近最少使用的干净页进行剔除,当冷数据页存储区无干净页时,再选择将脏页置换出去。
5.如权利要求4所述的一种基于分类策略的页级缓冲区改进方法,其特征在于选取3个性能指标作为评价标准:缓冲区命中率、平均响应时间和闪存块擦除次数;具体如下:
1)缓冲区命中率指请求的数据页在整个数据页缓存中的命中比率,即在数据页缓存中得到服务的请求占总请求的比例;
2)平均响应时间是指请求完成服务时间与到达时间的时间差,它是垃圾回收、地址映射的开销以及数据访问时间的综合,也是衡量SSD性能的关键指标;
3)闪存块擦除次数包括地址转换块的擦除次数和数据块的擦除次数,闪存块擦除次数直接决定了SSD的使用寿命。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710724114.4A CN107590084A (zh) | 2017-08-22 | 2017-08-22 | 一种基于分类策略的页级缓冲区改进方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710724114.4A CN107590084A (zh) | 2017-08-22 | 2017-08-22 | 一种基于分类策略的页级缓冲区改进方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107590084A true CN107590084A (zh) | 2018-01-16 |
Family
ID=61042991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710724114.4A Pending CN107590084A (zh) | 2017-08-22 | 2017-08-22 | 一种基于分类策略的页级缓冲区改进方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107590084A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829346A (zh) * | 2018-05-28 | 2018-11-16 | 华中科技大学 | 一种适应闪存页差异的固态硬盘的用户写请求处理方法 |
CN108845957A (zh) * | 2018-03-30 | 2018-11-20 | 杭州电子科技大学 | 一种置换和回写自适应的缓冲区管理方法 |
CN109783398A (zh) * | 2019-01-18 | 2019-05-21 | 上海海事大学 | 一种基于相关感知页面级ftl固态硬盘性能优化方法 |
CN109857680A (zh) * | 2018-11-21 | 2019-06-07 | 杭州电子科技大学 | 一种基于动态页面权重的lru闪存缓存管理方法 |
CN110134650A (zh) * | 2019-04-28 | 2019-08-16 | 深圳市腾讯网域计算机网络有限公司 | 一种文件加载方法、装置、设备及存储介质 |
CN110704339A (zh) * | 2019-09-12 | 2020-01-17 | 苏州浪潮智能科技有限公司 | 一种数据销毁方法、装置、设备、介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207909A (zh) * | 2011-05-31 | 2011-10-05 | 孟小峰 | 一种基于代价的闪存数据库缓冲区置换方法 |
CN106528454A (zh) * | 2016-11-04 | 2017-03-22 | 中国人民解放军国防科学技术大学 | 一种基于闪存的内存系统缓存机制 |
-
2017
- 2017-08-22 CN CN201710724114.4A patent/CN107590084A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207909A (zh) * | 2011-05-31 | 2011-10-05 | 孟小峰 | 一种基于代价的闪存数据库缓冲区置换方法 |
CN106528454A (zh) * | 2016-11-04 | 2017-03-22 | 中国人民解放军国防科学技术大学 | 一种基于闪存的内存系统缓存机制 |
Non-Patent Citations (1)
Title |
---|
姚英彪等: "一种基于分类策略的聚簇页级闪存转换层算法", 《计算机研究与发展》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845957A (zh) * | 2018-03-30 | 2018-11-20 | 杭州电子科技大学 | 一种置换和回写自适应的缓冲区管理方法 |
CN108845957B (zh) * | 2018-03-30 | 2020-10-09 | 杭州电子科技大学 | 一种置换和回写自适应的缓冲区管理方法 |
CN108829346A (zh) * | 2018-05-28 | 2018-11-16 | 华中科技大学 | 一种适应闪存页差异的固态硬盘的用户写请求处理方法 |
CN108829346B (zh) * | 2018-05-28 | 2020-11-17 | 华中科技大学 | 一种适应闪存页差异的固态硬盘的用户写请求处理方法 |
CN109857680A (zh) * | 2018-11-21 | 2019-06-07 | 杭州电子科技大学 | 一种基于动态页面权重的lru闪存缓存管理方法 |
CN109783398A (zh) * | 2019-01-18 | 2019-05-21 | 上海海事大学 | 一种基于相关感知页面级ftl固态硬盘性能优化方法 |
CN110134650A (zh) * | 2019-04-28 | 2019-08-16 | 深圳市腾讯网域计算机网络有限公司 | 一种文件加载方法、装置、设备及存储介质 |
WO2020220971A1 (zh) * | 2019-04-28 | 2020-11-05 | 腾讯科技(深圳)有限公司 | 一种文件加载方法、装置、电子设备及存储介质 |
US11907164B2 (en) | 2019-04-28 | 2024-02-20 | Tencent Technology (Shenzhen) Company Limited | File loading method and apparatus, electronic device, and storage medium |
CN110704339A (zh) * | 2019-09-12 | 2020-01-17 | 苏州浪潮智能科技有限公司 | 一种数据销毁方法、装置、设备、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590084A (zh) | 一种基于分类策略的页级缓冲区改进方法 | |
CN103136121B (zh) | 一种固态盘的缓存管理方法 | |
JP6266019B2 (ja) | データストレージシステム向けの優先度に基づくガベージコレクション | |
US7203815B2 (en) | Multi-level page cache for enhanced file system performance via read ahead | |
CN107423229B (zh) | 一种面向页级ftl的缓冲区改进方法 | |
CN105930282B (zh) | 一种用于nand flash的数据缓存方法 | |
CN109783398B (zh) | 一种基于相关感知页面级ftl固态硬盘性能优化方法 | |
CN109446117B (zh) | 一种固态硬盘页级闪存转换层设计方法 | |
CN107943719B (zh) | 一种基于请求分类的闪存转换层控制方法 | |
CN108762664B (zh) | 一种固态硬盘页级缓存区管理方法 | |
CN102981963A (zh) | 一种固态盘的闪存转换层的实现方法 | |
CN110413537B (zh) | 一种面向混合固态硬盘的闪存转换层及转换方法 | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
CN104166634A (zh) | 一种固态盘系统中的映射表缓存管理方法 | |
CN108762671A (zh) | 基于pcm和dram的混合内存系统及其管理方法 | |
CN107589908B (zh) | 一种基于固态盘缓存系统中非对齐更新数据的合并方法 | |
CN108845957B (zh) | 一种置换和回写自适应的缓冲区管理方法 | |
CN108153682B (zh) | 一种利用闪存内部并行性进行闪存转换层地址映射的方法 | |
CN110147331B (zh) | 缓存数据处理方法、系统及可读存储介质 | |
KR101017067B1 (ko) | 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법 | |
CN110262982A (zh) | 一种固态硬盘地址映射的方法 | |
CN100428193C (zh) | 一种在数据存储系统中预取数据的方法 | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
CN105718206A (zh) | 能够感知raid的闪存转换层及其实现方法 | |
CN113254358A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180116 |