一种双向哈希链表的异构内存系统数据页迁移方法与流程

文档序号:15517352发布日期:2018-09-25 18:41阅读:431来源:国知局

本发明属于计算机微系统结构内存层次系统设计领域,涉及一种由非挥发性存储器nvm和动态随机访问存储器dram构成的异构存储/异构内存系统中数据页的迁移方法,特别是一种双向哈希链表的异构内存系统数据页迁移方法。



背景技术:

存储器大致可分为两大类:挥发性存储器和非挥发性存储器。非挥发性存储器nvm,又称非易失性存储器,是指存储器所存储的信息在电源关掉之后依然能长时间存在,不易丢失。挥发性存储器在系统关闭时立即失去存储在内的信息,它需要持续的电源供应以维持数据。挥发性存储器包括两种主要的类型:动态随机存取内存dram和静态随机存取内存sram。动态随机访问存储器dram只能将数据保持很短的时间,为了保持数据,dram必须隔一段时间刷新一次,如果存储单元没有被刷新,数据就会丢失。

随着大数据、云计算、人工智能等高新技术领域的发展,计算机处理的数据量呈指数级增长,访问现有的dram内存系统将产生突出的高能耗问题。新涌现的非易失性存储器pcm具有能耗低、容量大等优点和写延时高的缺点,因此dram和pcm组成的扩展性异构内存系统既保证访存的效率,又不会增加存储器能耗,将成为未来内存系统的主流解决方案。

关于pcm存储器和dram内存系统间的数据页迁移问题,有如下几种解决方案:l.e.ramos等人提出一种迁移策略(rapp)[见参考文献1],采用多级队列结构存储数据页的访问次数,当读写频率值总和达到32时,nvram数据页被迁移到dram中。k.h.park等人提出连续两次访问使nvram数据页变热[见参考文献2],连续两次无效访问使dram数据页变冷,根据冷热度触发相应的迁移操作。采用以上迁移策略,能效在一定程度上得到提升,但都存在以下缺点:第一,数据页的迁移策略是基于其测量最近的过去页面访问的频率值,假设页面的访问频次在将来不会发生改变。第二,迁移的成本和收益没有完全被考虑。由于没有固定的阈值可以一直适用于所有工作负载,可能迁移的成本是大于收益,但仍然执行迁移操作。maiht等人提出的动态数据迁移策略[见参考文献3]有效解决了以上问题,该策略不仅可以预测数据页的访问次数,并且全面衡量了多种迁移方案收益与成本的关系,选择收益最大的候选数据页进行迁移,但该策略没有考虑能耗问题。yoonhb等人提出了基于行缓冲区局部感知缓存策略[见参考文献4]用于混合存储器系统,该策略跟踪pcm中最近使用的行缓冲未命中计数器,并在dram中缓存预测会频繁导致行缓冲器未命中的行,但此策略忽略了行缓冲区的局部性问题。liuh等人提出软硬件协同的迁移策略[见参考文献5],使用tlb结合动态调整阈值技术,但动态调整阈值算法是基于局部感知的,存在局部性问题。ramosle等人提出一种基于页面热度的多级队列迁移策略(mqmigrator)[见参考文献6-8],但是迁移数据页容易陷入局部性和复杂的逻辑结构设计等问题。

基于以上,各种迁移策略都具有相对应的缺点,缺乏一种能兼顾异构内存系统的访存效率、访存延时和访存系统能耗的行之有效的数据页迁移策略。

参考文献:

[1]ramosle,gorbatove,bianchinir.pageplacementinhybridmemorysystems[c]//proceedingsoftheinternationalconferenceonsupercomputing.acm,2011:85-95.

[2]parkkh,parksk,hwangw,etal.resourcemanagementofmanycoreswithahierarchicalandahybridmainmemoryformn-matecloudnode[c]//services(services),2012ieeeeighthworldcongresson.ieee,2012:301-308.

[3]maiht,parkkh,leehs,etal.dynamicdatamigrationinhybridmainmemoriesforin-memorybigdatastorage[j].etrijournal,2014,36(6):988-998.

[4]yoonhb,mezaj,ausavarungnirunr,etal.rowbufferlocalityawarecachingpoliciesforhybridmemories[c]//computerdesign(iccd),2012ieee30thinternationalconferenceon.ieee,2012:337-344.

[5]liuh,cheny,liaox,etal.hardware/softwarecooperativecachingforhybriddram/nvmmemoryarchitectures[c]//proceedingsoftheinternationalconferenceonsupercomputing.acm,2017:26.

[6]ramosle,gorbatove,bianchinir.pageplacementinhybridmemorysystems[c]//proceedingsoftheinternationalconferenceonsupercomputing.acm,2011:85-95.

[7]zhouy,philbinj,lik.themulti-queuereplacementalgorithmforsecondlevelbuffercaches[c]//usenixannualtechnicalconference,generaltrack.2001:91-104.

[8]张进宝.一种基于页面热度的异构内存能耗管理机制[d].华中科技大学,2015.



技术实现要素:

针对以上不足,本发明提供了一种双向哈希链表的异构内存系统数据页迁移方法,该方法根据历史访存信息、局部性原理和线性回归预测,将访问次数高、预测即将被访问和最近已访问过的数据页迁移到动态随机访问存储器。实验证明该方法可以有效提高异构内存的访存效率,降低访存延时和访存系统的能耗。

本发明的技术方案为:

一种双向哈希链表的异构内存系统数据页迁移方法,所述异构内存系统为非挥发性存储器和动态随机访问存储器构成的异构内存系统,所述双向哈希链表是由键值对构成的索引表,每个数据页的编号作为双向哈希链表的键对应的值存于双向哈希链表中,所述数据页迁移方法包括以下步骤:

步骤一:初始化双向哈希链表、迁移表和阈值;

步骤二:请求访问数据页;

步骤三:如果当前访问页已在双向哈希链表里,则将该数据页的访问次数加1,否则将该数据页加入双向哈希链表的头部;

步骤四:如果当前访问页的访问次数超过阈值,则将该数据页插入迁移表中,并将该数据页从双向哈希链表中删除;否则进入步骤九;

步骤五:选取双向哈希链表中访问次数最高的前4个数据页,根据存储访问的局部性原理和线性回归方法预测这4个数据页将来的访问次数;

步骤六:将4个数据页中预测访问次数超过阈值的数据页插入迁移表中,并将该数据页从双向哈希链表中删除;

步骤七:将迁移表中的数据页从非挥发性存储器迁移到动态随机访问存储器中;

步骤八:将迁移表中的数据页移除;

步骤九:重复步骤二至步骤八,直至访问完所有的数据页。

所述步骤六和步骤七之间还包括以下步骤:如果迁移表中任一数据页超过生存周期,则将超过生存周期的数据页从迁移表中移除。

所述步骤三中,如果当前访问页已在双向哈希链表里,则将该数据页的访问次数加1,并将该数据页移动到双向哈希链表的头部。

所述步骤七具体为:根据先进先出的原则,将迁移表中的数据页从非挥发性存储器迁移到动态随机访问存储器中。

所述阈值为7。

本发明根据双向哈希链表中记录的历史访存信息和局部性原理,对当前访问数据页的历史访问次数进行统计,若访问次数超过一定的阈值,则将当前访问数据页从非挥发性存储器nvm迁移到动态随机存取内存dram;再用存储访问的局部性原理和线性回归方法预测双向哈希链表中访问次数最高的四个数据页在将来的访问次数,若预计访问次数超过一定的阈值,则将超过阈值的数据页从非挥发性存储器nvm迁移到动态随机存取内存dram。本发明的双向哈希链表的异构内存系统数据页迁移方法,可以有效提高异构内存的访存效率,降低访存延时和访存系统的能耗。

附图说明

图1为本发明双向哈希链表结构图;

图2为本发明异构内存系统数据页迁移方法流程图。

具体实施方式

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

本发明以动态随机存取内存dram作为非易失性存储器pcm缓存的层次架构内存系统为例,说明采用双向哈希链表结构的迁移异构内存数据页的方法。该方法也可以扩展到dram和其他类型非易失性存储器(stt-ram、mram、rram、feram等)组成的异构内存系统。

参考图1,双向哈希链表two-waychainhashlist每个节点entry保存数据页访问的访问次数value,数据页有效周期expirationtime,数据页编号key,以及数据页所属内存类型channelnumber,每个节点都有前项节点preentry和后项节点nextentry,可以快速查找遍历数据页信息。双向哈希链表做为由键值对构成的索引表,每个数据页的编号作为双向哈希链表的键对应的值存于双向哈希链表中。双向哈希链表的插入、替换和查找的时间复杂度为o(1)o(1),带有数据页的历史访存信息,并且始终保持最近访问过的数据页位于双向哈希链表头部。

参考图2,双向哈希链表的异构内存块迁移方法的核心思想如下:

首先,根据历史访存信息构造双向哈希链表,若当前请求访问的数据页pagei不在双向哈希链表里,则将pagei插入双向哈希链表头部;否则将pagei的访问次数加1并将该数据页移动到双向哈希链表的头部,始终保证最近访问过的数据页位于双向哈希链表头部;

做判断,如果当前访问页pagei的访问次数超过给定的阈值,则将pagei迁移到迁移表migrationmap里,并从双向哈希链表中删除。根据存储访问的局部性原理和线性回归方法预测双向哈希链表中访问次数最高的四个数据页将来的访问次数,如果某数据页的预测访问次数超过阈值,则将该数据页插入到迁移表migrationmap并从双向哈希链表中删除。

做判断,如果迁移表migrationmap中任一数据页超过生存周期,则将超过生存周期的数据页从迁移表migrationmap中移除。按照先进先出的原则将迁移表中的数据页从非挥发性存储器nvm迁移到动态随机存取内存dram,其余数据页则继续留在非挥发性存储器nvm中,并将已经迁移的数据页从迁移表中移除。

重复以上步骤直至访问完所有的数据页。

实现的迁移算法如算法1所示。

以上公开的仅为本发明的实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1