CN102799390B - 能耗感知的协同式自适应预取方法和装置 - Google Patents
能耗感知的协同式自适应预取方法和装置 Download PDFInfo
- Publication number
- CN102799390B CN102799390B CN201210195813.1A CN201210195813A CN102799390B CN 102799390 B CN102799390 B CN 102799390B CN 201210195813 A CN201210195813 A CN 201210195813A CN 102799390 B CN102799390 B CN 102799390B
- Authority
- CN
- China
- Prior art keywords
- ssd
- dram
- prefetch
- stored
- data
- 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
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种能耗感知的协同式自适应预取方法和中间件,其方法包括步骤:CAP中间件在判定预取数据请求到达时,将预取数据请求存储至动态随机存取存储器DRAM;在判定DRAM发生抖动时,将DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD;在判定SSD的单位时间写次数超过预设写次数阈值时,将SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至DRAM。本发明可有效节约空间开销,达到节能效果,同时也能减少对SSD的写次数,延长SSD寿命,保证SSD的写数目不会过大,不超过SSD的顺序写吞吐量,有效利用DRAM和SSD混合缓存的整体特性,提高系统的整体吞吐量。
Description
技术领域
本发明涉及到计算机数据存储技术领域,特别涉及到能耗感知的协同式自适应预取方法和中间件。
背景技术
在计算机数据存储时,由于Flash本身具有读写不对称的问题,特别是随机写速度表现不如人意,利用基于Flash的SSD来缓存和预取大量的顺序数据流,可能会造成SSD上产生大量的写操作,甚至产生严重的交织随机读写情况,在最坏的情况下不仅不能节能,还会引起系统性能的下降,导致SSD寿命降低。
发明内容
本发明的主要目的为提供一种可自适应调整、低功耗节能的能耗感知的协同式自适应预取方法和中间件。
本发明提出一种能耗感知的协同式自适应预取方法,包括步骤:
协同式自适应预取CAP中间件在判定预取数据请求到达时,将所述预取数据请求存储至动态随机存取存储器DRAM;
在判定所述DRAM发生抖动时,将所述DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD;
在判定所述SSD的单位时间写次数超过预设写次数阈值时,将所述SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至所述DRAM。
优选地,所述能耗感知的协同式自适应预取方法还包括步骤:
在判定磁盘的空闲时间间隔大于空闲间隔阈值时,输出休眠指令至所述磁盘,以控制所述磁盘进入低能耗节能状态。
优选地,所述将预取数据请求存储至动态随机存取存储器DRAM的步骤包括:
确定待存储于所述DRAM中的第i个顺序流中的数据的预取触发距离 gi(DRAM),其公式为:gi(DRAM)=F(pm)Vi,其中,pm为所述DRAM中预设的预取长度,F(pm)为在磁盘上读取pm个数据所需的时间,Vi为所述预取数据请求中第i个顺序流数据的到达速率;
以预取长度pm、预取触发距离gi(DRAM)作为预取参数,将第i个顺序流数据存储至所述DRAM。
优选地,所述以预取长度pm、预取触发距离gi(DRAM)作为预取参数,将第i个顺序流数据存储至所述DRAM的步骤之后还包括:
在判定所述DRAM中存储的顺序流数据发生缺页时,将预取长度pm增加一个存储块;
返回所述确定待存储于所述DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM)的步骤。
优选地,所述将预取数据请求存储至动态随机存取存储器DRAM的步骤之后还包括:
在判定所述DRAM发生抖动,且不满足SSD存储条件时,将预取长度pm减小一个存储块;
返回所述确定待存储于所述DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM)的步骤。
优选地,所述将DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD的步骤包括:
确定待存储于所述SSD中的第j个顺序流中的数据的预取触发距离gj(SSD),其公式为:gj(SSD)=[pnTsw+F(pn)]Vj,其中,第j个顺序流为所述DRAM中存储的预取数据请求中到达速率最小的顺序流,pn为所述SSD中预设的预取长度,F(pn)为在磁盘上读取pn个数据所需的时间,Vj为所述预取数据请求中第j个顺序流数据的到达速率,Tsw为所述SSD将数据写入一个页的时间;
以预取长度pn、预取触发距离gj(SSD)作为预取参数,将第j个顺序流数据存储至所述SSD。
优选地,所述以预取长度pn、预取触发距离gj(SSD)作为预取参数,将第j个顺序流数据存储至所述SSD的步骤包括:
以预取长度pn、预取触发距离gj(SSD)作为预取参数,对于第j个顺序流数据中每pn长度的数据,将前(pn-gj(SSD))长度的数据存储至所述SSD,后gj(SSD) 长度的数据存储至所述DRAM。
优选地,所述以预取长度pn、预取触发距离gj(SSD)作为预取参数,将第j个顺序流数据存储至所述SSD的步骤之后还包括:
在判定所述SSD中存储的顺序流数据发生缺页时,将预取长度pn增加一个存储块;
返回所述确定待存储于所述SSD中的第j个顺序流中的数据的预取触发距离gj(SSD)的步骤。
本发明还提出一种能耗感知的协同式自适应预取中间件,包括:
DRAM存储模块,用于在判定预取数据请求到达时,将所述预取数据请求存储至动态随机存取存储器DRAM;
SSD存储模块,用于在判定所述DRAM发生抖动时,将所述DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD;
DRAM存储模块,还用于在判定所述SSD的单位时间写次数超过预设写次数阈值时,将所述SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至所述DRAM。
优选地,所述能耗感知的协同式自适应预取中间件还包括:
节能控制模块,用于在判定磁盘的空闲时间间隔大于空闲间隔阈值时,输出休眠指令至所述磁盘,以控制所述磁盘进入低能耗节能状态。
优选地,所述DRAM存储模块包括:
DRAM参数获取单元,用于确定待存储于所述DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM),其公式为:gi(DRAM)=F(pm)Vi,其中,pm为所述DRAM中预设的预取长度,F(pm)为在磁盘上读取pm个数据所需的时间,Vi为所述预取数据请求中第i个顺序流数据的到达速率;
DRAM存储单元,用于以预取长度pm、预取触发距离gi(DRAM)作为预取参数,将第i个顺序流数据存储至所述DRAM。
优选地,所述DRAM存储模块还包括:
DRAM预取长度处理单元,用于在判定所述DRAM中存储的顺序流数据发生缺页时,将预取长度pm增加一个存储块,并将增加后的pm发送至pm发送至DRAM参数获取单元,重新确定待存储于所述DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM)。
优选地,所述DRAM预取长度处理单元,还用于在判定所述DRAM发生抖动,且不满足SSD存储条件时,将预取长度pm减小一个存储块,并将减小后的pm发送至DRAM参数获取单元,重新确定待存储于所述DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM)。
优选地,所述SSD存储模块包括:
SSD参数获取单元,用于确定待存储于所述SSD中的第j个顺序流中的数据的预取触发距离gj(SSD),其公式为:gj(SSD)=[pnTsw+F(pn)]Vj,其中,第j个顺序流为所述DRAM中存储的预取数据请求中到达速率最小的顺序流,pn为所述SSD中预设的预取长度,F(pn)为在磁盘上读取pn个数据所需的时间,Vj为所述预取数据请求中第j个顺序流数据的到达速率,Tsw为所述SSD将数据写入一个页的时间;
SSD存储单元,用于以预取长度pn、预取触发距离gj(SSD)作为预取参数,将第j个顺序流数据存储至所述SSD。
优选地,所述SSD存储单元,还用于以预取长度pn、预取触发距离gj(SSD)作为预取参数,对于第j个顺序流数据中每pn长度的数据,将前(pn-gj(SSD))长度的数据存储至所述SSD,后gj(SSD)长度的数据存储至所述DRAM。
优选地,所述SSD存储模块还包括:
SSD预取长度处理单元,用于在判定所述SSD中存储的顺序流数据发生缺页时,将预取长度pn增加一个存储块,并将增加后的pn发送至SSD参数获取单元,重新确定待存储于所述SSD中的第j个顺序流中的数据的预取触发距离gj(SSD)。
本发明可有效节约空间开销,达到节能效果,同时也能减少对SSD的写次数,延长SSD寿命,保证SSD的写数目不会过大,不超过SSD的顺序写吞吐量,有效利用DRAM和SSD混合缓存的整体特性,提高系统的整体吞吐量。
附图说明
图1为本发明第一实施例中能耗感知的协同式自适应预取方法的流程图;
图2为本发明第二实施例中能耗感知的协同式自适应预取方法的流程图;
图3为本发明第三实施例中能耗感知的协同式自适应预取方法的流程图;
图4为本发明第四实施例中能耗感知的协同式自适应预取方法的流程图;
图5为本发明第五实施例中能耗感知的协同式自适应预取方法的流程图;
图6为本发明第六实施例中能耗感知的协同式自适应预取方法的流程图;
图7为本发明第七实施例中能耗感知的协同式自适应预取方法的流程图;
图8为本发明第八实施例中能耗感知的协同式自适应预取方法的流程图;
图9为本发明第九实施例中能耗感知的协同式自适应预取中间件的结构示意图;
图10为本发明第十实施例中能耗感知的协同式自适应预取中间件的结构示意图;
图11为本发明第十一实施例中能耗感知的协同式自适应预取中间件的结构示意图;
图12为本发明第十二实施例中能耗感知的协同式自适应预取中间件的结构示意图;
图13为本发明第十三实施例中能耗感知的协同式自适应预取中间件的结构示意图;
图14为本发明第十四实施例中能耗感知的协同式自适应预取中间件的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本实施例主要分析一种多顺序流单硬盘情形下的混合缓存理想化异步预取。异步预取用预取长度p和触发距离g两个参数表示,且需避免发生以下两种问题:
(1)缓存污染(Cache Pollution)。提前预取数据可能替换掉其他有用的数据,包括缓存数据,当替换掉的数据是之前一次预取未访问的有用数据时, 则会发生预取抖动(Thrashing)。
(2)空间浪费(Cache Wastage)。一次预取的过多数据,导致读入无用的数据,将造成缓存空间的浪费。
在理想化分析中,假定所有的数据流都是到达速率不变的顺序流。系统中仅有一个磁盘,并且不会出现缓存污染和空间浪费,当出现较长空闲时间,磁盘将处于节能状态。在该分析中,访问DRAM的时间忽略不计。
定义1:一个速度稳定的顺序流SEQi被描述成{INi,RSi},其中,INi表示每一个请求的间隔时间,RSi表示其中每一个请求的数据块大小。
引理1:n个顺序流,每个顺序流SEQi的请求到达速度Vi为RSi/INi,则有:
证明:每个顺序流的速度都是不变,因此每一个顺序流都具有一个到达速度Vi。这样所有顺序流根据其到达速度可以进行升序排列,对应起来,就能得出引理1。
定义2:一组页面顺序写入SSD的时间是(Tsw×页面数),Tsw为SSD写入一个页的时间。随机读入SSD一个页面的时间记做Tr,为一个常量,较之磁盘随机读取时间可以忽略不计。
因交织的读写速度较慢,因此在理想化情况下没有交织读写的发生。如果一个数据流有一个请求的页面正在被SSD读出,此时对SSD的任意写都被视作一次交织读写的发生。
在混合缓存中,为保证磁盘节能和性能优化,顺序流预取满足如下三个规则:
规则1:对到达速率较大的顺序流,异步预取时其p和g值也较大。
一个顺序流SEQi的异步预取操作记做{pi,gi},其中预取长度为pi,触发距离记做gi。单个磁盘的情况下,如果w个顺序流的到达速率都不一样,每个流触发一个异步预取{pi,gi},为了最大利用缓冲区的空间,对到达速率越大的顺序流,则需要预取的深度越大。设想所有的顺序流按照到达速率升序排列,当其中较小的速率的顺序流的预取深度大于较大速率的顺序流时,则可能会造成当速率大的顺序流预取的已经将用完的时候,到达速率较小数据流中的数据依然存在。此时,SSD的空间发生了剩余,不能达到最大的吞吐量,同时如果磁盘处于预备状态,需要唤醒磁盘进行新的预取。
规则2:在SSD启动顺序预读{p,g},p为预取长度,g为触发距离,将p中最后的g个数据页存储在DRAM中。
当预读的数据也写入SSD中后,系统开始从SSD读取页面进行访问。当异步预取发生时候,这时候系统正在从SSD中读入前一次预取数据页。将前一次剩下的数据页集合提前存储在DRAM上,则可以避免SSD上产生交织读写负载。为了节约DRAM的空间,将最少量数据页,也就是触发距离长度的数据页存储在DRAM上正好可以避免交织读写发生。例如对于一个顺序流序列{1,2,3,…20}中,执行一个p为10,g为4的预取时,将{7,8,9,10}存储在DRAM中。当完成请求6时,开始启动下一次异步预读,SSD中即将产生写操作,而此时对于SSD的读访问请求被转移至DRAM中进行,这样能避免产生交织的读写负载。理想化情况下,SSD和DRAM能够相互的协调工作,SSD执行写的时候,所有的读操作正好可以转移至DRAM上进行。
规则3:SSD尽可能服务到达速率较小的顺序流,而DRAM尽可能服务到达速率较大的顺序流。
在DRAM的写入速度忽略不计的情况下,DRAM可以尽可能服务速率较快的顺序流。而SSD的空间较大,一次能读入更多的预读数据。而且,服务速率较少的顺序流,SSD内部的预取数据更新相应也要较慢,最终SSD的写操作总数会减小。因此,对于多个数据流,SSD服务较小速率的顺序流,不仅能够节约DRAM的空间,还能降低对SSD的写操作数目,提高其寿命。而对于磁盘节能来说,一次预取的数据对每个流的服务时间都延长,则磁盘空闲时间越长。
理想情况下,对恒定到达速率Vi的顺利流SEQi,利用DRAM和SSD的混合缓存的异步预取pi和gi满足如下公式(Tsw表示磁盘上读取pi个数据的时间):
如图1所示,图1为本发明第一实施例中能耗感知的协同式自适应预取方法的流程图,该实施例提到的能耗感知的协同式自适应预取方法,包括:
步骤S101,协同式自适应预取CAP中间件在判定预取数据请求到达时,将预取数据请求存储至动态随机存取存储器DRAM;
系统中初始时的顺序流都被预取到DRAM中,以减少对SSD的写次数。
步骤S102,在判定DRAM发生抖动时,将DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD;
本实施例根据规则3,到达速率最小的顺序流进入SSD。因SSD的空间开销小于同等大小DRAM空间的开销,选择速率最小的顺序流预取数据存储在SSD中,可以达到节能效果,同时也能减少对SSD的写次数,延长SSD寿命。
步骤S103,在判定SSD的单位时间写次数超过预设写次数阈值时,将SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至DRAM。
因新加入的顺序流速率可能比SSD服务的顺序流速率小,通过预设写次数阈值来进行SSD与DRAM上顺序流的调整,将速率最大的顺序流迁移到DRAM中,保证SSD的写数目不会过大,不超过SSD的顺序写吞吐量,有效利用DRAM和SSD混合缓存的整体特性,提高系统的整体吞吐量。
如图2所示,图2为本发明第二实施例中能耗感知的协同式自适应预取方法的流程图。
步骤S201,协同式自适应预取CAP中间件在判定预取数据请求到达时,将预取数据请求存储至动态随机存取存储器DRAM;
步骤S202,在判定DRAM发生抖动时,将DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD;
步骤S203,在判定SSD的单位时间写次数超过预设写次数阈值时,将SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至DRAM;
步骤S204,在判定磁盘的空闲时间间隔大于空闲间隔阈值时,输出休眠指令至磁盘,以控制磁盘进入低能耗节能状态。
CAP中间件根据预测的磁盘空闲时间,决定是否通知磁盘进入节能状态,以达到低能耗节能目的。
如图3所示,图3为本发明第三实施例中能耗感知的协同式自适应预取方法的流程图。
步骤S301,协同式自适应预取CAP中间件在判定预取数据请求到达时, 确定待存储于DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM),其公式为:gi(DRAM)=F(pm)Vi,其中,pm为DRAM中预设的预取长度,F(pm)为在磁盘上读取pm个数据所需的时间,Vi为预取数据请求中第i个顺序流数据的到达速率;
步骤S302,以预取长度pm、预取触发距离gi(DRAM)作为预取参数,将第i个顺序流数据存储至DRAM。
根据规则1,在顺序流的到达速率不同的情况下,到达速率越快的顺序流,其预取长度应越大,使得同一个磁盘上的数据流尽可能同时进行预取,并且预取的数据能有几乎相同的服务时间,这样当某个磁盘上的各个流的数据都被预取在缓存中,可能出现较长磁盘空闲时间,因此磁盘能够进入节能状态,实现低能耗节能目的。
步骤S303,在判定DRAM发生抖动时,将DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD;
步骤S304,在判定SSD的单位时间写次数超过预设写次数阈值时,将SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至DRAM;
步骤S305,在判定磁盘的空闲时间间隔大于空闲间隔阈值时,输出休眠指令至磁盘,以控制磁盘进入低能耗节能状态。
如图4所示,图4为本发明第四实施例中能耗感知的协同式自适应预取方法的流程图。
步骤S401,协同式自适应预取CAP中间件在判定预取数据请求到达时,确定待存储于DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM),其公式为:gi(DRAM)=F(pm)Vi,其中,pm为DRAM中预设的预取长度,F(pm)为在磁盘上读取pm个数据所需的时间,Vi为预取数据请求中第i个顺序流数据的到达速率;
步骤S402,以预取长度pm、预取触发距离gi(DRAM)作为预取参数,将第i个顺序流数据存储至DRAM。
步骤S403,判断DRAM中存储的顺序流数据是否发生缺页,如果是,则执行步骤S404;如果否,则执行步骤S405;
步骤S404,将预取长度pm增加一个存储块,返回步骤S401;
类似于AMP算法,顺序流的预读长度将根据内存占有状态和顺序流的访问强度动态变化,保证异步预取不会过于贪婪或者保守,同时使得内存的吞吐量达到最大化。
步骤S405,在判定DRAM发生抖动时,将DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD;
步骤S406,在判定SSD的单位时间写次数超过预设写次数阈值时,将SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至DRAM;
步骤S407,在判定磁盘的空闲时间间隔大于空闲间隔阈值时,输出休眠指令至磁盘,以控制磁盘进入低能耗节能状态。
如图5所示,图5为本发明第五实施例中能耗感知的协同式自适应预取方法的流程图。
步骤S501,协同式自适应预取CAP中间件在判定预取数据请求到达时,确定待存储于DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM),其公式为:gi(DRAM)=F(pm)Vi,其中,pm为DRAM中预设的预取长度,F(pm)为在磁盘上读取pm个数据所需的时间,Vi为预取数据请求中第i个顺序流数据的到达速率;
步骤S502,以预取长度pm、预取触发距离gi(DRAM)作为预取参数,将第i个顺序流数据存储至DRAM。
步骤S503,判断DRAM中存储的顺序流数据是否发生缺页,如果是,则执行步骤S504;如果否,则执行步骤S505;
步骤S504,将预取长度pm增加一个存储块,返回步骤S501;
步骤S505,在判定DRAM发生抖动时,将DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD;
步骤S506,在判定SSD的单位时间写次数超过预设写次数阈值时,将SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至DRAM;
步骤S507,在判定DRAM发生抖动,且不满足SSD存储条件时,将预取长度pm减小一个存储块;返回步骤S501;
当发生预取抖动时,如果DRAM发生抖动,且SSD也无法满足数据流存储时,或是在单个DRAM缓存的情况下,则需要将某些流的预读长度减少, 以免干扰内存中其他流的使用。
步骤S508,在判定磁盘的空闲时间间隔大于空闲间隔阈值时,输出休眠指令至磁盘,以控制磁盘进入低能耗节能状态。
如图6所示,图6为本发明第六实施例中能耗感知的协同式自适应预取方法的流程图。
步骤S601,协同式自适应预取CAP中间件在判定预取数据请求到达时,将预取数据请求存储至动态随机存取存储器DRAM;
步骤S602,在判定DRAM发生抖动时,确定待存储于SSD中的第j个顺序流中的数据的预取触发距离gj(SSD),其公式为:gj(SSD)=[pnTsw+F(pn)]Vj,其中,第j个顺序流为DRAM中存储的预取数据请求中到达速率最小的顺序流,pn为SSD中预设的预取长度,F(pn)为在磁盘上读取pn个数据所需的时间,Vj为预取数据请求中第j个顺序流数据的到达速率,Tsw为SSD将数据写入一个页的时间;
步骤S603,以预取长度pn、预取触发距离gj(SSD)作为预取参数,将第j个顺序流数据存储至SSD;
根据规则1,在顺序流的到达速率不同的情况下,到达速率越快的顺序流,其预取长度应越大,使得同一个磁盘上的数据流尽可能同时进行预取,并且预取的数据能有几乎相同的服务时间,这样当某个磁盘上的各个流的数据都被预取在缓存中,可能出现较长磁盘空闲时间,因此磁盘能够进入节能状态,实现低能耗节能目的。
步骤S604,在判定SSD的单位时间写次数超过预设写次数阈值时,将SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至DRAM;
步骤S605,在判定磁盘的空闲时间间隔大于空闲间隔阈值时,输出休眠指令至磁盘,以控制磁盘进入低能耗节能状态。
如图7所示,图7为本发明第七实施例中能耗感知的协同式自适应预取方法的流程图。
步骤S701,协同式自适应预取CAP中间件在判定预取数据请求到达时,将预取数据请求存储至动态随机存取存储器DRAM;
步骤S702,在判定DRAM发生抖动时,确定待存储于SSD中的第j个顺序流中的数据的预取触发距离gj(SSD),其公式为:gj(SSD)=[pnTsw+F(pn)]Vj,其中,第j个顺序流为DRAM中存储的预取数据请求中到达速率最小的顺序流,pn为SSD中预设的预取长度,F(pn)为在磁盘上读取pn个数据所需的时间,Vj为预取数据请求中第j个顺序流数据的到达速率,Tsw为SSD将数据写入一个页的时间;
步骤S703,以预取长度pn、预取触发距离gj(SSD)作为预取参数,对于第j个顺序流数据中每pn长度的数据,将前(pn-gj(SSD))长度的数据存储至SSD,后gj(SSD)长度的数据存储至DRAM;
根据规则2,将pi尾部中的gi个数据保留在DRAM中,有效避免在SSD上产生交织读写负载,提高系统吞吐效率。此外,为了防止异步预取中交织读写操作的产生,当检测到SSD中的发生交织读写的情形,暂停对SSD的写操作,优先完成读请求操作。
步骤S704,在判定SSD的单位时间写次数超过预设写次数阈值时,将SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至DRAM;
步骤S705,在判定磁盘的空闲时间间隔大于空闲间隔阈值时,输出休眠指令至磁盘,以控制磁盘进入低能耗节能状态。
如图8所示,图8为本发明第八实施例中能耗感知的协同式自适应预取方法的流程图。
步骤S801,协同式自适应预取CAP中间件在判定预取数据请求到达时,将预取数据请求存储至动态随机存取存储器DRAM;
步骤S802,在判定DRAM发生抖动时,确定待存储于SSD中的第j个顺序流中的数据的预取触发距离gj(SSD),其公式为:gj(SSD)=[pnTsw+F(pn)]Vj,其中,第j个顺序流为DRAM中存储的预取数据请求中到达速率最小的顺序流,pn为SSD中预设的预取长度,F(pn)为在磁盘上读取pn个数据所需的时间,Vj为预取数据请求中第j个顺序流数据的到达速率,Tsw为SSD将数据写入一个页的时间;
步骤S803,以预取长度pn、预取触发距离gj(SSD)作为预取参数,将第j个顺序流数据存储至SSD;
步骤S804,判断SSD中存储的顺序流数据是否发生缺页时,如果是,则执行步骤S805;如果否,则执行步骤S806;
步骤S805,将预取长度pn增加一个存储块,返回步骤802;
类似于AMP算法,顺序流的预读长度将根据内存占有状态和顺序流的访问强度动态变化,保证异步预取不会过于贪婪或者保守,同时使得内存的吞吐量达到最大化。
步骤S806,在判定SSD的单位时间写次数超过预设写次数阈值时,将SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至DRAM;
步骤S807,在判定磁盘的空闲时间间隔大于空闲间隔阈值时,输出休眠指令至磁盘,以控制磁盘进入低能耗节能状态。
如图9所示,图9为本发明第九实施例中能耗感知的协同式自适应预取中间件的结构示意图。该实施例提及的能耗感知的协同式自适应预取中间件包括:
DRAM存储模块10,用于在判定预取数据请求到达时,将预取数据请求存储至动态随机存取存储器DRAM;
SSD存储模块20,用于在判定DRAM发生抖动时,将DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD;
DRAM存储模块10,还用于在判定SSD的单位时间写次数超过预设写次数阈值时,将SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至DRAM。
系统中初始时的顺序流都被预取到DRAM中,以减少对SSD的写次数。根据规则3,到达速率最小的顺序流进入SSD。因SSD的空间开销小于同等大小DRAM空间的开销,选择速率最小的顺序流预取数据存储在SSD中,可以达到节能效果,同时也能减少对SSD的写次数,延长SSD寿命。因新加入的顺序流速率可能比SSD服务的顺序流速率小,通过预设写次数阈值来进行SSD与DRAM上顺序流的调整,将速率最大的顺序流迁移到DRAM中,保证SSD的写数目不会过大,不超过SSD的顺序写吞吐量,有效利用DRAM和SSD混合缓存的整体特性,提高系统的整体吞吐量。
如图10所示,图10为本发明第十实施例中能耗感知的协同式自适应预取中间件的结构示意图。能耗感知的协同式自适应预取中间件还包括:
节能控制模块30,用于在判定磁盘的空闲时间间隔大于空闲间隔阈值时,输出休眠指令至磁盘,以控制磁盘进入低能耗节能状态。
CAP中间件根据预测的磁盘空闲时间,决定是否通知磁盘进入节能状态,以达到低能耗节能目的。
如图11所示,图11为本发明第十一实施例中能耗感知的协同式自适应预取中间件的结构示意图。DRAM存储模块10包括:
DRAM参数获取单元11,用于确定待存储于DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM),其公式为:gi(DRAM)=F(pm)Vi,其中,pm为DRAM中预设的预取长度,F(pm)为在磁盘上读取pm个数据所需的时间,Vi为预取数据请求中第i个顺序流数据的到达速率;
DRAM存储单元12,用于以预取长度pm、预取触发距离gi(DRAM)作为预取参数,将第i个顺序流数据存储至DRAM。
根据规则1,在顺序流的到达速率不同的情况下,到达速率越快的顺序流,其预取长度应越大,使得同一个磁盘上的数据流尽可能同时进行预取,并且预取的数据能有几乎相同的服务时间,这样当某个磁盘上的各个流的数据都被预取在缓存中,可能出现较长磁盘空闲时间,因此磁盘能够进入节能状态,实现低能耗节能目的。
如图12所示,图12为本发明第十二实施例中能耗感知的协同式自适应预取中间件的结构示意图。DRAM存储模块10还包括:
DRAM预取长度处理单元13,用于在判定DRAM中存储的顺序流数据发生缺页时,将预取长度pm增加一个存储块,并将增加后的pm发送至DRAM参数获取单元11,重新确定待存储于DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM)。
类似于AMP算法,顺序流的预读长度将根据内存占有状态和顺序流的访问强度动态变化,保证异步预取不会过于贪婪或者保守,同时使得内存的吞吐量达到最大化。
DRAM预取长度处理单元13,还用于在判定DRAM发生抖动,且不满足SSD存储条件时,将预取长度pm减小一个存储块,并将减小后的pm发送至DRAM参数获取单元11,重新确定待存储于DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM)。
当发生预取抖动时,如果DRAM发生抖动,且SSD也无法满足数据流存储时,或是在单个DRAM缓存的情况下,则需要将某些流的预读长度减少,以免干扰内存中其他流的使用。
如图13所示,图13为本发明第十三实施例中能耗感知的协同式自适应预取中间件的结构示意图。SSD存储模块20包括:
SSD参数获取单元21,用于确定待存储于SSD中的第j个顺序流中的数据的预取触发距离gj(SSD),其公式为:gj(SSD)=[pnTsw+F(pn)]Vj,其中,第j个顺序流为DRAM中存储的预取数据请求中到达速率最小的顺序流,pn为SSD中预设的预取长度,F(pn)为在磁盘上读取pn个数据所需的时间,Vj为预取数据请求中第j个顺序流数据的到达速率,Tsw为SSD将数据写入一个页的时间;
SSD存储单元22,用于以预取长度pn、预取触发距离gj(SSD)作为预取参数,将第j个顺序流数据存储至SSD。
根据规则1,在顺序流的到达速率不同的情况下,到达速率越快的顺序流,其预取长度应越大,使得同一个磁盘上的数据流尽可能同时进行预取,并且预取的数据能有几乎相同的服务时间,这样当某个磁盘上的各个流的数据都被预取在缓存中,可能出现较长磁盘空闲时间,因此磁盘能够进入节能状态,实现低能耗节能目的。
SSD存储单元22,还用于以预取长度pn、预取触发距离gj(SSD)作为预取参数,对于第j个顺序流数据中每pn长度的数据,将前(pn-gj(SSD))长度的数据存储至SSD,后gj(SSD)长度的数据存储至DRAM。
根据规则2,将pi尾部中的gi个数据保留在DRAM中,有效避免在SSD上产生交织读写负载,提高系统吞吐效率。此外,为了防止异步预取中交织读写操作的产生,当检测到SSD中的发生交织读写的情形,暂停对SSD的写 操作,优先完成读请求操作。
如图14所示,图14为本发明第十四实施例中能耗感知的协同式自适应预取中间件的结构示意图。SSD存储模块20还包括:
SSD预取长度处理单元23,用于在判定SSD中存储的顺序流数据发生缺页时,将预取长度pn增加一个存储块,并将增加后的pn发送至SSD参数获取单元21,重新确定待存储于SSD中的第j个顺序流中的数据的预取触发距离gj(SSD)。
类似于AMP算法,顺序流的预读长度将根据内存占有状态和顺序流的访问强度动态变化,保证异步预取不会过于贪婪或者保守,同时使得内存的吞吐量达到最大化。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (14)
1.一种能耗感知的协同式自适应预取方法,其特征在于,包括步骤:
协同式自适应预取中间件在判定预取数据请求到达时,将所述预取数据请求存储至动态随机存取存储器DRAM;
在判定所述DRAM发生抖动时,将所述DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD;
在判定所述SSD的单位时间写次数超过预设写次数阈值时,将所述SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至所述DRAM;
其中,所述将DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD的步骤包括:
确定待存储于所述SSD中的第j个顺序流中的数据的预取触发距离gj(SSD),其公式为:gj(SSD)=[pnTsw+F(pn)]Vj,其中,第j个顺序流为所述DRAM中存储的预取数据请求中到达速率最小的顺序流,pn为所述SSD中预设的预取长度,F(pn)为在磁盘上读取pn个数据所需的时间,Vj为所述预取数据请求中第j个顺序流数据的到达速率,Tsw为所述SSD将数据写入一个页的时间;
以预取长度pn、预取触发距离gj(SSD)作为预取参数,将第j个顺序流数据存储至所述SSD。
2.根据权利要求1所述的能耗感知的协同式自适应预取方法,其特征在于,还包括步骤:
在判定磁盘的空闲时间间隔大于空闲间隔阈值时,输出休眠指令至所述磁盘,以控制所述磁盘进入低能耗节能状态。
3.根据权利要求2所述的能耗感知的协同式自适应预取方法,其特征在于,所述将预取数据请求存储至动态随机存取存储器DRAM的步骤包括:
确定待存储于所述DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM),其公式为:gi(DRAM)=F(pm)Vi,其中,pm为所述DRAM中预设的预取长度,F(pm)为在磁盘上读取pm个数据所需的时间,Vi为所述预取数据请求中第i个顺序流数据的到达速率;
以预取长度pm、预取触发距离gi(DRAM)作为预取参数,将第i个顺序流数据存储至所述DRAM。
4.根据权利要求3所述的能耗感知的协同式自适应预取方法,其特征在于,所述以预取长度pm、预取触发距离gi(DRAM)作为预取参数,将第i个顺序流数据存储至所述DRAM的步骤之后还包括:
在判定所述DRAM中存储的顺序流数据发生缺页时,将预取长度pm增加一个存储块;
返回所述确定待存储于所述DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM)的步骤。
5.根据权利要求4所述的能耗感知的协同式自适应预取方法,其特征在于,所述将预取数据请求存储至动态随机存取存储器DRAM的步骤之后还包括:
在判定所述DRAM发生抖动,且不满足SSD存储条件时,将预取长度pm减小一个存储块;
返回所述确定待存储于所述DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM)的步骤。
6.根据权利要求2所述的能耗感知的协同式自适应预取方法,其特征在于,所述以预取长度pn、预取触发距离gj(SSD)作为预取参数,将第j个顺序流数据存储至所述SSD的步骤包括:
以预取长度pn、预取触发距离gj(SSD)作为预取参数,对于第j个顺序流数据中每pn长度的数据,将前(pn-gj(SSD))长度的数据存储至所述SSD,后gj(SSD)长度的数据存储至所述DRAM。
7.根据权利要求6所述的能耗感知的协同式自适应预取方法,其特征在于,所述以预取长度pn、预取触发距离gj(SSD)作为预取参数,将第j个顺序流数据存储至所述SSD的步骤之后还包括:
在判定所述SSD中存储的顺序流数据发生缺页时,将预取长度pn增加一个存储块;
返回所述确定待存储于所述SSD中的第j个顺序流中的数据的预取触发距离gj(SSD)的步骤。
8.一种能耗感知的协同式自适应预取装置,其特征在于,包括:
DRAM存储模块,用于在判定预取数据请求到达时,将所述预取数据请求存储至动态随机存取存储器DRAM;
SSD存储模块,用于在判定所述DRAM发生抖动时,将所述DRAM中存储的预取数据请求中到达速率最小的顺序流数据存储至固态硬盘SSD;
DRAM存储模块,还用于在判定所述SSD的单位时间写次数超过预设写次数阈值时,将所述SSD中存储的预取数据请求中到达速率最大的顺序流数据存储至所述DRAM;
其中,所述SSD存储模块包括:
SSD参数获取单元,用于确定待存储于所述SSD中的第j个顺序流中的数据的预取触发距离gj(SSD),其公式为:gj(SSD)=[pnTsw+F(pn)]Vj,其中,第j个顺序流为所述DRAM中存储的预取数据请求中到达速率最小的顺序流,pn为所述SSD中预设的预取长度,F(pn)为在磁盘上读取pn个数据所需的时间,Vj为所述预取数据请求中第j个顺序流数据的到达速率,Tsw为所述SSD将数据写入一个页的时间;
SSD存储单元,用于以预取长度pn、预取触发距离gj(SSD)作为预取参数,将第j个顺序流数据存储至所述SSD。
9.根据权利要求8所述的能耗感知的协同式自适应预取装置,其特征在于,还包括:
节能控制模块,用于在判定磁盘的空闲时间间隔大于空闲间隔阈值时,输出休眠指令至所述磁盘,以控制所述磁盘进入低能耗节能状态。
10.根据权利要求9所述的能耗感知的协同式自适应预取装置,其特征在于,所述DRAM存储模块包括:
DRAM参数获取单元,用于确定待存储于所述DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM),其公式为:gi(DRAM)=F(pm)Vi,其中,pm为所述DRAM中预设的预取长度,F(pm)为在磁盘上读取pm个数据所需的时间,Vi为所述预取数据请求中第i个顺序流数据的到达速率;
DRAM存储单元,用于以预取长度pm、预取触发距离gi(DRAM)作为预取参数,将第i个顺序流数据存储至所述DRAM。
11.根据权利要求10所述的能耗感知的协同式自适应预取装置,其特征在于,所述DRAM存储模块还包括:
DRAM预取长度处理单元,用于在判定所述DRAM中存储的顺序流数据发生缺页时,将预取长度pm增加一个存储块,并将增加后的pm发送至DRAM参数获取单元,重新确定待存储于所述DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM)。
12.根据权利要求11所述的能耗感知的协同式自适应预取装置,其特征在于,所述DRAM预取长度处理单元,还用于在判定所述DRAM发生抖动,且不满足SSD存储条件时,将预取长度pm减小一个存储块,并将减小后的pm发送至DRAM参数获取单元,重新确定待存储于所述DRAM中的第i个顺序流中的数据的预取触发距离gi(DRAM)。
13.根据权利要求9所述的能耗感知的协同式自适应预取装置,其特征在于,所述SSD存储单元,还用于以预取长度pn、预取触发距离gj(SSD)作为预取参数,对于第j个顺序流数据中每pn长度的数据,将前(pn-gj(SSD))长度的数据存储至所述SSD,后gj(SSD)长度的数据存储至所述DRAM。
14.根据权利要求13所述的能耗感知的协同式自适应预取装置,其特征在于,所述SSD存储模块还包括:
SSD预取长度处理单元,用于在判定所述SSD中存储的顺序流数据发生缺页时,将预取长度pn增加一个存储块,并将增加后的pn发送至SSD参数获取单元,重新确定待存储于所述SSD中的第j个顺序流中的数据的预取触发距离gj(SSD)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210195813.1A CN102799390B (zh) | 2012-06-14 | 2012-06-14 | 能耗感知的协同式自适应预取方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210195813.1A CN102799390B (zh) | 2012-06-14 | 2012-06-14 | 能耗感知的协同式自适应预取方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102799390A CN102799390A (zh) | 2012-11-28 |
CN102799390B true CN102799390B (zh) | 2015-06-03 |
Family
ID=47198507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210195813.1A Active CN102799390B (zh) | 2012-06-14 | 2012-06-14 | 能耗感知的协同式自适应预取方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102799390B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569732B (zh) * | 2015-10-12 | 2021-04-20 | 中兴通讯股份有限公司 | 数据迁移方法及装置 |
CN108733313B (zh) * | 2017-04-17 | 2021-07-23 | 伊姆西Ip控股有限责任公司 | 利用预备盘建立多级闪速缓存的方法、设备和计算机可读介质 |
CN108153684B (zh) * | 2017-12-30 | 2021-06-04 | 广东技术师范学院 | 一种磁盘Cache的预取空间调整方法 |
CN109062513B (zh) * | 2018-08-06 | 2021-10-15 | 郑州云海信息技术有限公司 | 一种控制处理写操作的方法及装置 |
CN109375880A (zh) * | 2018-11-05 | 2019-02-22 | 郑州云海信息技术有限公司 | 一种数据均衡方法、装置和计算机可读存储介质 |
CN110362275B (zh) * | 2019-07-10 | 2021-09-07 | 深圳大普微电子科技有限公司 | 提升固态硬盘服务质量的方法及固态硬盘 |
CN111026328B (zh) * | 2019-11-13 | 2022-04-22 | 华为技术有限公司 | 一种能耗控制方法、装置及存储系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6393527B1 (en) * | 1998-12-18 | 2002-05-21 | Ati International Srl | Prefetch buffer with continue detect |
CN101262580B (zh) * | 2007-08-31 | 2010-09-08 | 深圳市同洲电子股份有限公司 | 一种数字电视接收装置及监控其硬盘休眠的方法和系统 |
CN101634970B (zh) * | 2009-08-26 | 2011-09-07 | 成都市华为赛门铁克科技有限公司 | 预取长度调整方法、装置和存储系统 |
CN102023931B (zh) * | 2010-12-17 | 2015-02-04 | 曙光信息产业(北京)有限公司 | 一种自适应缓存预取方法 |
-
2012
- 2012-06-14 CN CN201210195813.1A patent/CN102799390B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102799390A (zh) | 2012-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102799390B (zh) | 能耗感知的协同式自适应预取方法和装置 | |
CN103425600B (zh) | 一种固态盘闪存转换层中的地址映射方法 | |
CN103246613B (zh) | 缓存装置及用于缓存装置的缓存数据获取方法 | |
US8010764B2 (en) | Method and system for decreasing power consumption in memory arrays having usage-driven power management | |
KR100953257B1 (ko) | 메모리 액세스 속도의 동적인 제어 | |
CN102023931B (zh) | 一种自适应缓存预取方法 | |
CN107810491B (zh) | 用于管理并控制存储器高速缓存的方法和系统 | |
CN102768645B (zh) | 混合缓存的固态硬盘预取方法和固态硬盘ssd | |
CN111143243B (zh) | 一种基于nvm混合内存的缓存预取方法及系统 | |
US20120054449A1 (en) | Method and apparatus for fuzzy stride prefetch | |
CN105843748B (zh) | 一种对内存中内存页的处理方法及装置 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN106528454A (zh) | 一种基于闪存的内存系统缓存机制 | |
CN107430554A (zh) | 通过使用数据的可压缩性作为高速缓存插入的标准来提高存储高速缓存性能 | |
US9990293B2 (en) | Energy-efficient dynamic dram cache sizing via selective refresh of a cache in a dram | |
Bock et al. | Concurrent migration of multiple pages in software-managed hybrid main memory | |
CN105068940A (zh) | 一种基于Bank划分的自适应页策略确定方法 | |
US10705977B2 (en) | Method of dirty cache line eviction | |
CN108572799B (zh) | 一种双向哈希链表的异构内存系统数据页迁移方法 | |
WO2015021919A1 (zh) | 用于多种存储器间的数据存储调度方法以及装置 | |
CN107408018A (zh) | 用于在固态驱动器中适应垃圾收集资源分配的机制 | |
Quan et al. | Prediction table based management policy for STT-RAM and SRAM hybrid cache | |
CN102681792B (zh) | 一种固态盘内存分区方法 | |
CN116501249A (zh) | 一种减少gpu内存重复数据读写的方法及相关设备 | |
CN102779098B (zh) | 混合缓存的协同式自适应预取方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |