一种混合存储器中数据迁移的自学习的方法

文档序号:6637291阅读:147来源:国知局
一种混合存储器中数据迁移的自学习的方法
【专利摘要】本发明提供了一种混合存储器中数据迁移的自学习的方法,系统通过一段时间自学习当前用户的使用习惯,对于特定的用户,当该用户的混合内存数据接口IO吞吐量满足一定的条件时,经过一定的时间进行数据的迁移,同时把用户从满足混合内存数据接口IO吞吐量到进入数据迁移所用的时间存储在系统中的非易失性存储器中,这样下次用户可以直接从非易失性存储器中得到该用户的从满足混合内存数据接口IO吞吐量到进入数据迁移所要经过的最优时间。
【专利说明】-种混合存储器中数据迁移的自学习的方法

【技术领域】
[0001] 本发明涉及信息【技术领域】,具体涉及一种混合存储器中数据迁移的自学习的方 法。

【背景技术】
[0002] 随着信息技术的发展,产生了越来越多的数据,而对数据存储的需求也不断的增 长,对于数据中心的服务器而言,传统情况下服务器的内存为动态随机存储器(DRAM),对于 动态随机存储器(DRAM)而言,数据的存储需要大量的刷新,不断的刷新消耗了系统巨大的 能耗,为了降低由于动态随机存储器不断刷新的功耗,目前使用混合存储器做服务器的内 存,混合存储器由动态随机存储器(DRAM)和新型存储器(NCM)组成,具体结构如附图1所 示。为了降低动态随机存储器(DRAM)不断刷新的功耗,在低负载的时候需要数据迁移,所 谓数据迁移就是将数据从动态随机存储器中放入新型存储器中,在低负载的情况下,数据 的读写频率下降,混合内存数据接口 IO(input-output,输入输出)吞吐量下降,假设在NCM 中读写数据的功耗为Pkwjcm,在DRAM中读写数据的功耗为Pkw DEAM,DRAM中刷新数据的功耗为 Prefresh,数据从DRAM迁移至NCM的功耗为Ptranj臟_NCM,数据从NCM迁移至DRAM的功耗为P tran+ MLDEAM,有效的数据迁移应满足以下条件:
[0003] Prw-DRAM+Prefresh ^ PRW-NCM+Ptran-DRAM-NCM+Ptran-NCM-DRAM。
[0004] 目前的数据迁移的算法都是基于自启发式动态算法,这些算法都是基于数据使用 状态的历史记录,也就是说这些数据迁移的算法是被动的,而且对于某种数据迁移的算法 而言,只能用于解决特定的情况,而不能用于解决所有情况下的数据迁移问题,而且现在的 数据迁移的算法没有考虑把数据从DRAM迁移至NCM的功耗P taan DEAMJCM和数据从NCM迁移至 DRAM的功耗PtMnJ〇L_,随着数据量的增大,数据迁移所用的功耗也要相应的增大,即PtMn_ rnMMjci和Ptaan_N〇LDKAM均增大,也就是说这些功耗不能被忽略。


【发明内容】

[0005] 本发明提出了一种混合存储器中数据迁移的自学习的方法,系统通过一段时间自 学习当前用户的使用习惯,对于特定的用户,当该用户的混合内存数据接口 IO吞吐量满足 一定的条件时,经过一定的时间进行数据的迁移,同时把用户从满足混合内存数据接口 IO 吞吐量到进入数据迁移所用的时间存储在系统中的非易失性存储器中,这样下次用户可以 直接从非易失性存储器中得到该用户的从满足混合内存数据接口 IO吞吐量到进入数据迁 移所要经过的最优时间。
[0006] 为了实现上述技术效果,本发明采用的技术方案为:
[0007] 提供一混合存储器,包括第一存储器和第二存储器,第二存储器的擦写速度小于 第一存储器;
[0008] 当混合存储器数据接口 IO吞吐量小于用户预设的混合存储器数据接口 IO吞吐量 时,在经过时间t后才进行数据迁移,将第一存储器的数据转入至第二存储器中;
[0009] 其中,通过如下方式获取t :
[0010] 选定一个起始时间tstart,当t = tstart时,混合存储器的平均功耗Pt = Ptstart,选定 下一个时间tstart+ Λ t,当t = tstart+ Λ t时,混合存储器的平均功耗Pt = Ptstart+At ;
[0011] 若 Ptstart+At>ptstart,令 t = tstart- Λ t,混合存储器的平均功耗 Pt = Ptstart_At,如 果Ptstart^PPtstart,表示t = tstartW,混合存储器的平均功耗最低;若ptstart_At〈p tstart,令 t = tstart-2 Λ t,混合存储器的平均功耗Pt = Ptstart_2At ;若 ^tstart-2 Δ t^^tstart-Δ t? ^ ^ tstart-3 Λ t,混合存储器的平均功耗Pt = Ptstart_3At......令t = tstart-NA t,混合存储器的 平均功耗Pt = ^tstart-N Δ t? ^ ^tstart-N Δ t >Ptstart-(N-i) A t,表示在 t = tstart- (N-I) Λ t 时,混合 存储器的平均功耗最低;
[0012]当 Ptstart+At〈ptstart,令 t = tstart+2 Λ t,混合存储器的平均功耗 Pt = Ptstart+2At ; 若 Ptstart+2 Λ t 〈Ptstart+Λ t,令 t = tstart+3 Λ t,混合存储器的平均功耗 Pt = Ptstart+3 Λ t ;若 Ptstart+3 Λ t 〈Ptstart+2At,令 t = tstart+4 Λ t......若 t = tstart+NA t,混合存储器的平均功耗 Pt ^tstart+Ν Δ t ;若?加啦+論>?加啦寺1^,表示在〖=%_+(^1)么〖时,混合存储器的平均 功耗最低;
[0013] N为正整数,At为自然数。
[0014] 上述的方法,其中,所述第一存储器为DRAM。
[0015] 上述的方法,其中,所述第二存储器为NCM。
[0016] 上述的方法,其中,所述NCM包括磁随机存储器(MRAM)、铁电随机存储器(FeRAM)、 相变存储器(PCM)、分子存储器(Molecular Memory)、聚合物存储器(Polymer memory)、组 变随机存储器(RRAM)。
[0017] 上述的方法,其中,通过一功耗检测模来得到当前用户的混合内存的平均功耗。
[0018] 上述的方法,其中,通过一比较模块来对不同时间段内的混合内存的平均功耗进 行比较。
[0019] 上述的方法,其中,当混合存储器工作在基于之前自学习所得到的最优t值状态 下,当功耗检测模块检测到用户的混合存储器的在某一时间段内的平均功耗发生改变,则 重新根据用户新的使用习惯进行自学习获取最优t值。
[0020] 上述的方法,其中,获取t值之后,将t值存入系统中的非易失性存储器中,每当 不同用户登陆系统后可以直接在系统中的非易失性存储器中读取对应不同用户的最优的t 值,对混合存储器加以控制。
[0021] 上述的方法,其中,根据在不同的时间段对于同一个用户完全不同的使用习惯进 行统计计算获取不同的t值,以降低混合存储器的使用功耗。
[0022] 上述的方法,其中,用户为一个PC用户、一个手机用户或者一个数据中心的公司 用户。

【专利附图】

【附图说明】
[0023] 通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、夕卜 形和优点将会变得更明显。在全部附图中相同的标记指示相同的部分。并未刻意按照比例 绘制附图,重点在于示出本发明的主旨。
[0024] 附图1为混合存储器的组成图;
[0025] 附图2为混合内存数据接口 IO吞吐量和统计时间的示意图;
[0026] 附图3为确定最优的时间t的步骤图;
[0027] 附图4为确定最优的时间t的步骤二种情况一的不意图;
[0028] 附图5为确定最优的时间t的步骤三种情况二的示意图1 ;
[0029] 附图6为确定最优的时间t的步骤二种情况_的不意图2 ;
[0030] 附图7为混合内存的平均功耗和时间t的关系;
[0031] 附图8为本发明一种实例的示意图。

【具体实施方式】
[0032] 在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然 而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以 实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进 行描述。
[0033] 为了彻底理解本发明,将在下列的描述中提出详细的步骤以及详细的结构,以便 阐释本发明的技术方案。本发明的较佳实施例详细描述如下,然而除了这些详细描述外,本 发明还可以具有其他实施方式。
[0034] 在传统的数据迁移的算法中,由于数据的迁移是被动的,对于某用户从小于设定 的混合内存数据接口 IO吞吐量到进行数据迁移的时间并不能准确的确定,本发明提出一 种混合存储器中数据迁移的自学习的方法,对某一用户的使用习惯假设混合内存数据接口 IO吞吐量和统计时间的关系如附图2所示,图中横轴为统计时间,纵轴为混合内存数据接 口 IO吞吐量。当用户X的混合内存数据接口 IO吞吐量小于设定的混合内存数据接口 IO 吞吐量时,经过时间t (t>0)后进行数据迁移,即把数据从DRAM放入NCM中,这样虽然数据 在NCM中读写的功耗Pkw NC:M大于数据在DRAM中的功耗Pkw DEAM,但是降低了 DRAM的刷新功耗 Prefresh,而且降低的Prefresh要比数据在NCM中读写增加的功耗(P冊_ NCM-P冊舰M)大。
[0035] 如果当混合内存数据接口 IO吞吐量小于设定的混合内存数据接口 IO吞吐量时直 接进行数据迁移,那么对于有些混合内存数据接口 IO吞吐量小于设定的混合内存数据接 口 IO吞吐量的区域比如图2中的区域2,把数据从DRAM迁移到NCM中很快又要把数据从 NCM迁移到DRAM中,进行数据迁移所消耗的功耗(P___ NC:M+Ptran_NaL_)比进行数据迁移 节省的功耗P refresh大,所以这些区域不能进行数据迁移,也就是说不能在混合内存数据接 口 IO吞吐量小于设定的混合内存数据接口 IO吞吐量时直接进行数据迁移,要经过一定时 间t后才能进行数据迁移。对于附图2中的区域2来说,图中c点为区域2中混合内存数 据接口 IO吞吐量刚刚小于设定的混合内存数据接口 IO吞吐量的点,图中d点为区域2中 混合内存数据接口 IO吞吐量刚刚大于设定的混合内存数据接口 IO吞吐量的点,区域2中 的c点和d点的时间差值为Λ ted,如果Λ ted〈t,那么就不进行数据迁移。
[0036] 当用户X的混合内存数据接口 IO吞吐量大于设定的混合内存数据接口 IO吞吐量 时,要把数据从NCM迁移至DRAM中,因为当混合内存数据接口 IO吞吐量超过设定的混合内 存数据接口 IO吞吐量时,在NCM中读写数据增加的功耗(Pkw ΝαΓΡΜ _)要大于DRAM的刷 新功耗PMfMsh,这样就增加了混合内存的功耗,起不到降低混合存储器功耗的目的,而且在 NCM中读写数据的性能比在DRAM中读写数据的性能差。对于附图2中的区域1,图中e点 为区域1中混合内存数据接口 IO吞吐量刚刚小于设定的混合内存数据接口 IO吞吐量的 点,图中b点为区域1中混合内存数据接口 IO吞吐量刚刚大于设定的混合内存数据接口 IO 吞吐量的点,因为如果在e点直接进行数据迁移,就会使区域2也进行数据迁移,所以要经 过时间t后进行数据迁移,即在图中a点进行数据迁移,从附图2中b点开始混合内存数据 接口 IO吞吐量大于设定的混合内存数据接口 IO吞吐量,所以要把数据从NCM中放入DRAM 中。
[0037] 综上所述,找到一个合理的时间t,从而使系统在整个混合内存的访问过程中,尽 可能使如附图2中的区域2不能进入数据迁移状态,而使区域1更多地进入数据迁移状态, 在不大量影响系统性能的前提下,降低整个混合内存的功耗。
[0038] 对于某一用户来说,此处用户可定义为一个PC用户、一个手机用户或者一个数据 中心的公司用户(比如某银行,某医院等),该用户的使用习惯基本确定,也就是说对于该 用户来说在一定时间内(比如一天、三天或者一周等)其使用习惯导致系统对混合内存的 访问情况大致相同,既基于用户固定的特定使用习惯,混合内存数据接口 IO吞吐量和统计 时间的曲线大致相同,亦可以说得到的混合内存的平均功耗基本大致相同。
[0039] 根据当前用户的使用习惯,假设在一段时间内,混合内存数据接口 IO吞吐量和统 计时间的曲线如附图2所示,使用本发明提出的方法,当混合内存数据接口 IO吞吐量小于 设定的混合内存数据接口 IO吞吐量时,经时间t进行数据迁移,最优的t由以下步骤决定。
[0040] 参照附图3所示,获取最优的时间t值包括如下步骤:
[0041] 步骤1、首先提供一混合存储器,包括第一存储器和第二存储器,第二存储器的擦 写速度小于第一存储器;当混合存储器数据接口 IO吞吐量小于预设的混合存储器数据接 口 IO吞吐量时,在经过时间t后才进行数据迁移,将第一存储器的数据转入至第二存储器 中。可选的,第一存储器为DRAM,第二存储器为NCM。其中,NCM包括磁随机存储器(MRAM)、 铁电随机存储器(FeRAM)、相变存储器PCM、分子存储器(Molecular Memory)、聚合物存储 器(Polymer memory)、组变随机存储器(RRAM)等新型非易失性存储器。
[0042] 选定一个起始时间tstart,即t = tstart时,混合内存的平均功耗Pt = Ptstart ;
[0043] 步骤2、选定下一个时间tstart+ Λ t( Λ t可以为正数或负数),即t = tstart+ Λ t 时,混合内存的平均功耗Pt = Ptstart+At ;
[0044] 步骤3、比较两个不同起始时间下混合内存的平均功耗Pt,来得出最有时间t,下面 我们从两个方面来分析:
[0045] ①当 Ptstart+Λ t〈Ptstart ?
[0046] 这种情况下说明当t = tstart时混合内存的平均功耗不是最小,因此再增加一个 Λ t,即t = tstart+2 Λ t,混合内存的平均功耗Pt = Ptstart+2zXt,如果 Ptstart+2 Λ t <Ptstart+At, 再增加一个Λ t,即t = tstart+3 Λ t,混合内存的平均功耗Pt = Ptstart+3A t,如果 ^tstart+3 Δ t 〈Ptstart+;^t,再增加一个Δ t,......,如果当t = tstart+N Λ t,混合内存的平均功耗 Pt ^tstart+N Δ t? 如果 Ptstart+NAt>Ptst art+MAt,说明在 t = tstart+(N-l) Λ t 时,混合内存的平 均功耗最低,即当混合内存数据接口 IO吞吐量小于设定的混合内存数据接口 IO吞吐量时, 经时间tstart+(N-I) Λ t后进行数据迁移,混合内存的平均功耗最低,如附图4所示。
[0047] ②当 Ptstart+At>Ptstart 时
[0048] 在这种情况下说明当t = tstart+ Λ t时混合内存的平均功耗增大,因此我们要减去 两个At,即t = tstart-At,混合内存的平均功耗Pt = Ptstart_At,如果Ptstart-At>P tstart,说明t =tstart时,混合内存的平均功耗最低,如附图5所示;如果Ptstart_At〈P tstart,再减去一个Λ t, 艮P t = tstart-2A t,混合内存的平均功耗Pt = Ptstart_2At,如果 Ptstart_2At〈Ptstart^t,再减去一 个Λ t,即t = tstart-3 Λ t,混合内存的平均功耗Pt = Ptstart-3 Λ t ' 如果 Ptstart-3A t〈Pt start-2 Λ t ' 再减去一个Λ t,......,当t = tstart_N Λ t,混合内存的平均功耗Pt = Ptstart_Nλ t,如 ^tstart-N Δ t >PtstartKAt,说明在t = tstart-(N-l) Λ t时,混合内存的平均功耗最低, 即当混合内存数据接口 IO吞吐量小于设定的混合内存数据接口 IO吞吐量时,经时间 tstart-(N-I) Λ t后进行数据迁移,混合内存的平均功耗最低,如附图6所示。
[0049] 混合内存平均功耗和时间t的曲线如附图7所示,图中横轴时间t为从混合内存 数据接口 IO吞吐量小于设定的混合内存数据接口 IO吞吐量到进行数据迁移所用的时间, 乜为从混合内存数据接口 IO吞吐量小于设定的混合内存数据接口 IO吞吐量到进行数据迁 移所用最优的时间,此时混合内存的平均功耗最小。乜把曲线分成了两个区域,分别为区域 I和区域II,区域I说明过早的进行了数据迁移,对应于附图2中区域2,如果附图2中区域 2也进行了数据迁移,因为把数据从DRAM迁移到NCM中很快又要把数据从NCM迁移到DRAM 中,进行数据迁移所消耗的功耗(Pt^DRAMjCM+Pt^jOLDRAM)比进行数据迁移节省的功耗PMfMsh 大得多。区域II说明过晚进行数据迁移,对应于附图2中的区域1,如果附图2中的区域1 过晚进行数据迁移,此时数据在DRAM中的刷新功耗P MfMsh要大于数据在NCM中读写增加的 功耗(Pkwjcm-Pkwjkm)和进行数据迁移的功耗,因此要提前进行数据迁移,即时间t要减小, 降低混合内存的平均功耗。
[0050] 虽然对于某用户而言,该用户的使用习惯基本不变,经过一段时间统计得到的混 合内存的平均功耗也基本不变,但是在这段时间比如一天内,该用户在白天和晚上的使用 习惯可能存在很大的差异,因而在上述的统计过程中并不能把差异性区分开,从而根据在 不同的时间段对于同一个用户完全不同的使用习惯进行统计学习得出各自不同的最优迁 徙时间t,进而最大限度地降低混合存储器的使用功耗。因此我们也可以根据不同的用户各 自在不同时间段对应的不同使用习惯进行统计,比如根据用户白天的使用习惯统计白天基 于不同数据迁徙时间t产生的不同混合内存的平均功耗,根据用户晚上的使用习惯统计晚 上基于不同数据迁徙时间t产生的不同混合内存的平均功耗,最后找出基于不同时间段的 各个最优数据迁徙时间t。
[0051] 系统中的功耗检测/比较模块不仅可以通过一段时间统计得到当前用户的混合 内存的平均功耗,而且当功耗检测模块检测到用户的混合内存的平均功耗发生改变,说明 用户的使用习惯发生了很大的变化,因此系统会进行自学习用户新的使用习惯,得到该用 户在新的使用习惯下混合内存从数据接口 IO吞吐量满足设定的混合内存数据接口 IO吞吐 量到进行数据迁移的最优时间tm。
[0052] 本发明提出的方法可以根据用户的使用习惯通过自学习得到不同用户经过一定 时间统计得到的最低混合内存平均功耗所对应的t值,并存入系统中的非易失性存储器 中,下次当不同用户登陆系统后可以直接在非易失性存储器中读取对应不同用户的最优的 t值,对混合内存加以控制。
[0053] 现在的数据迁移的算法和本发明提出的数据迁移的算法的比较如下表1所示:
[0054]

【权利要求】
1. 一种混合存储器中数据迁移的自学习的方法,其特征在于, 提供一混合存储器,包括第一存储器和第二存储器,第二存储器的擦写速度小于第一 存储器; 当混合存储器数据接口 10吞吐量小于用户预设的混合存储器数据接口 10吞吐量时, 在经过时间t后才进行数据迁移,将第一存储器的数据转入至第二存储器中; 其中,通过如下方式获取t: 选定一个起始时间心t。,"当t = 时,混合存储器的平均功耗Pt = Ptstort,选定下一 个时间A t,当t = A t时,混合存储器的平均功耗Pt = Pktart+At ; 若Ptstatt+At〉Ptst。^,令t = A t,混合存储器的平均功耗Pt = 如果 Pt日tart-At〉Pt日tart,表示t=t日tart时,混合存储器的平均功耗最低;若Pt日tart-At<Pt日tart,令t=tstart-2 At,混合存储器的平均功耗Pt=Ptstart-2 A t ;若Ptstart-2 A t<Ptstart-A t,令t= t日tart-3At,混合存储器的平均功耗Pt=Pt日……令t=t日t"t-NAt,混合存储器的 干均功耗 Pt - 日tart-N A t,右 日tart-N A t〉Pt日tart-(N-l) A t,表不在 t - t日1。。-(N-]_) A t 时,t比合 存储器的平均功耗最低; 当Pt日tar" A t化日tart,令t = t日t"t巧A t,混合存储器的平均功耗Pt = Pt日A t; 右Pt日tart+2 At〈Pt日t£irt+ A t,令t二t日A t,混合存储盎的平均功耗Pt = Pt日tart+3 A t ;右 Ptstart巧A t<Pt日tarWAt,令t = t日t"t+4 A t,混合存储器的平均功耗Pt = Pt日tarwAt……若t = t日t£irt+N A t,混合存储盎的平均功耗Pt = Pt日t£irt+N A t;右Pt日tiirt+N At〉Pt日t£irt+(N-l) A t,表不在t二 tstsrt+(N-l) A t时,混合存储器的平均功耗最低; N为正整数,At为自然数。
2. 如权利要求1所述的方法,其特征在于,所述第一存储器为DRAM。
3. 如权利要求1所述的方法,其特征在于,所述第二存储器为NCM。
4. 如权利要求3所述的方法,其特征在于,所述NCM包括磁随机存储器(MRAM)、铁电 随机存储器(FeRAM)、相变存储器(PCM)、分子存储器(Molecular Memory)、聚合物存储器 (Polymer memoir)、阻变随机存储器(RRAM)。
5. 如权利要求1所述的方法,其特征在于,通过一功耗检测模来得到当前用户的混合 内存的平均功耗。
6. 如权利要求1所述的方法,其特征在于,通过一比较模块来对不同时间段内的混合 内存的平均功耗进行比较。
7. 如权利要求5所述的方法,其特征在于,当混合存储器工作在基于之前自学习所得 到的最优t值状态下,当功耗检测模块检测到用户的混合存储器的在某一时间段内的平均 功耗发生改变,则需重新根据用户新的使用习惯进行自学习获取最优t值。
8. 如权利要求1所述的方法,其特征在于,获取t值之后,将t值存入系统中的非易失 性存储器中,每当不同用户登陆系统后可W直接在系统中的非易失性存储器中读取对应不 同用户的最优的t值,对混合存储器加W控制。
9. 如权利要求1所述的方法,其特征在于,根据在不同的时间段对于同一个用户完全 不同的使用习惯进行统计计算获取不同的t值,W降低混合存储器的使用功耗。
10. 如权利要求1所述的方法,其特征在于,用户为一个PC用户、一个手机用户或者一 个数据中也的公司用户。
【文档编号】G06F3/06GK104461389SQ201410729004
【公开日】2015年3月25日 申请日期:2014年12月3日 优先权日:2014年12月3日
【发明者】亢勇, 陈邦明 申请人:上海新储集成电路有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1