CN108572799B - 一种双向哈希链表的异构内存系统数据页迁移方法 - Google Patents

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

Info

Publication number
CN108572799B
CN108572799B CN201810326792.XA CN201810326792A CN108572799B CN 108572799 B CN108572799 B CN 108572799B CN 201810326792 A CN201810326792 A CN 201810326792A CN 108572799 B CN108572799 B CN 108572799B
Authority
CN
China
Prior art keywords
hash chain
migration
data page
data
chain table
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
CN201810326792.XA
Other languages
English (en)
Other versions
CN108572799A (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.)
University of Shanghai for Science and Technology
Original Assignee
University of Shanghai for Science and Technology
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 University of Shanghai for Science and Technology filed Critical University of Shanghai for Science and Technology
Priority to CN201810326792.XA priority Critical patent/CN108572799B/zh
Publication of CN108572799A publication Critical patent/CN108572799A/zh
Application granted granted Critical
Publication of CN108572799B publication Critical patent/CN108572799B/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0625Power saving in storage systems

Abstract

本发明涉及一种双向哈希链表的异构内存系统数据页迁移方法。包括以下步骤:初始化双向哈希链表、迁移表和阈值;如果当前访问页已在双向哈希链表里,将其访问次数加1,否则将其加入双向哈希链表的头部;如果当前访问页的访问次数超过阈值,则将该数据页插入迁移表中并从双向哈希链表中移除;选取双向哈希链表中访问次数最高的前四个数据页,根据存储访问的局部性原理和线性回归方法预测这四个数据页将来的访问次数,将预测访问次数超过阈值的数据页插入迁移表中,并从双向哈希链表中删除;将迁移表中的数据页从NVM迁移到DRAM中,并将迁移表中的数据页移除。本发明的数据页迁移方法可以有效提高异构内存的访存效率,降低访存延时和访存系统的能耗。

Description

一种双向哈希链表的异构内存系统数据页迁移方法
技术领域
本发明属于计算机微系统结构内存层次系统设计领域,涉及一种由非挥发性存储器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数据页变冷,根据冷热度触发相应的迁移操作。采用以上迁移策略,能效在一定程度上得到提升,但都存在以下缺点:第一,数据页的迁移策略是基于其测量最近的过去页面访问的频率值,假设页面的访问频次在将来不会发生改变。第二,迁移的成本和收益没有完全被考虑。由于没有固定的阈值可以一直适用于所有工作负载,可能迁移的成本是大于收益,但仍然执行迁移操作。Mai H T等人提出的动态数据迁移策略[见参考文献3]有效解决了以上问题,该策略不仅可以预测数据页的访问次数,并且全面衡量了多种迁移方案收益与成本的关系,选择收益最大的候选数据页进行迁移,但该策略没有考虑能耗问题。Yoon H B等人提出了基于行缓冲区局部感知缓存策略[见参考文献4]用于混合存储器系统,该策略跟踪PCM中最近使用的行缓冲未命中计数器,并在DRAM中缓存预测会频繁导致行缓冲器未命中的行,但此策略忽略了行缓冲区的局部性问题。Liu H等人提出软硬件协同的迁移策略[见参考文献5],使用TLB结合动态调整阈值技术,但动态调整阈值算法是基于局部感知的,存在局部性问题。Ramos L E等人提出一种基于页面热度的多级队列迁移策略(MQMigrator)[见参考文献6-8],但是迁移数据页容易陷入局部性和复杂的逻辑结构设计等问题。
基于以上,各种迁移策略都具有相对应的缺点,缺乏一种能兼顾异构内存系统的访存效率、访存延时和访存系统能耗的行之有效的数据页迁移策略。
参考文献:
[1]Ramos L E,Gorbatov E,Bianchini R.Page placement in hybrid memorysystems[C]//Proceedings of the international conference onSupercomputing.ACM,2011:85-95.
[2]Park K H,Park S K,Hwang W,et al.Resource management of manycoreswith a hierarchical and a hybrid main memory for MN-mate cloud node[C]//Services(SERVICES),2012IEEE Eighth World Congress on.IEEE,2012:301-308.
[3]Mai H T,Park K H,Lee H S,et al.Dynamic data migration in hybridmain memories for in-memory big data storage[J].ETRI Journal,2014,36(6):988-998.
[4]Yoon H B,Meza J,Ausavarungnirun R,et al.Row buffer locality awarecaching policies for hybrid memories[C]//Computer Design(ICCD),2012IEEE 30thInternational Conference on.IEEE,2012:337-344.
[5]Liu H,Chen Y,Liao X,et al.Hardware/software cooperative cachingfor hybrid DRAM/NVM memory architectures[C]//Proceedings of the InternationalConference on Supercomputing.ACM,2017:26.
[6]Ramos L E,Gorbatov E,Bianchini R.Page placement in hybrid memorysystems[C]//Proceedings of the international conference onSupercomputing.ACM,2011:85-95.
[7]Zhou Y,Philbin J,Li K.The Multi-Queue Replacement Algorithm forSecond Level Buffer Caches[C]//USENIX Annual Technical Conference,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-Way Chain Hash List每个节点Entry保存数据页访问的访问次数value,数据页有效周期expirationTime,数据页编号key,以及数据页所属内存类型channelNumber,每个节点都有前项节点pre Entry和后项节点next Entry,可以快速查找遍历数据页信息。双向哈希链表做为由键值对构成的索引表,每个数据页的编号作为双向哈希链表的键对应的值存于双向哈希链表中。双向哈希链表的插入、替换和查找的时间复杂度为O(1)O(1),带有数据页的历史访存信息,并且始终保持最近访问过的数据页位于双向哈希链表头部。
参考图2,双向哈希链表的异构内存块迁移方法的核心思想如下:
首先,根据历史访存信息构造双向哈希链表,若当前请求访问的数据页pagei不在双向哈希链表里,则将pagei插入双向哈希链表头部;否则将pagei的访问次数加1并将该数据页移动到双向哈希链表的头部,始终保证最近访问过的数据页位于双向哈希链表头部;
做判断,如果当前访问页pagei的访问次数超过给定的阈值,则将pagei迁移到迁移表MigrationMap里,并从双向哈希链表中删除。根据存储访问的局部性原理和线性回归方法预测双向哈希链表中访问次数最高的四个数据页将来的访问次数,如果某数据页的预测访问次数超过阈值,则将该数据页插入到迁移表MigrationMap并从双向哈希链表中删除。
做判断,如果迁移表MigrationMap中任一数据页超过生存周期,则将超过生存周期的数据页从迁移表MigrationMap中移除。按照先进先出的原则将迁移表中的数据页从非挥发性存储器NVM迁移到动态随机存取内存DRAM,其余数据页则继续留在非挥发性存储器NVM中,并将已经迁移的数据页从迁移表中移除。
重复以上步骤直至访问完所有的数据页。
实现的迁移算法如算法1所示。
Figure BDA0001626829620000051
Figure BDA0001626829620000061
以上公开的仅为本发明的实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (4)

1.一种双向哈希链表的异构内存系统数据页迁移方法,所述异构内存系统为非挥发性存储器和动态随机访问存储器构成的异构内存系统,其特征在于,所述双向哈希链表是由键值对构成的索引表,每个数据页的编号作为双向哈希链表的键对应的值存于双向哈希链表中,所述数据页迁移方法包括以下步骤:
步骤一:初始化双向哈希链表、迁移表和阈值;
步骤二:请求访问数据页;
步骤三:如果当前访问页已在双向哈希链表里,则将该数据页的访问次数加1,否则将该数据页加入双向哈希链表的头部;
步骤四:如果当前访问页的访问次数超过阈值,则将该数据页插入迁移表中,并将该数据页从双向哈希链表中删除;否则进入步骤九;
步骤五:选取双向哈希链表中访问次数最高的前四个数据页,根据存储访问的局部性原理和线性回归方法预测这四个数据页将来的访问次数;
步骤六:将四个数据页中预测访问次数超过阈值的数据页插入迁移表中,并将该数据页从双向哈希链表中删除;
步骤七:如果迁移表中任一数据页超过生存周期,则将超过生存周期的数据页从迁移表中移除
步骤八:将迁移表中的数据页从非挥发性存储器迁移到动态随机访问存储器中;
步骤九:将迁移表中的数据页移除;
步骤十:重复步骤二至步骤八,直至访问完所有的数据页。
2.根据权利要求1所述的数据页迁移方法,其特征在于,所述步骤三中,如果当前访问页已在双向哈希链表里,则将该数据页的访问次数加1,并将该数据页移动到双向哈希链表的头部。
3.根据权利要求2所述的数据页迁移方法,其特征在于,所述步骤八具体为:根据先进先出的原则,将迁移表中的数据页从非挥发性存储器迁移到动态随机访问存储器中。
4.根据权利要求2所述的数据页迁移方法,其特征在于,所述阈值为7。
CN201810326792.XA 2018-04-12 2018-04-12 一种双向哈希链表的异构内存系统数据页迁移方法 Active CN108572799B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810326792.XA CN108572799B (zh) 2018-04-12 2018-04-12 一种双向哈希链表的异构内存系统数据页迁移方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810326792.XA CN108572799B (zh) 2018-04-12 2018-04-12 一种双向哈希链表的异构内存系统数据页迁移方法

Publications (2)

Publication Number Publication Date
CN108572799A CN108572799A (zh) 2018-09-25
CN108572799B true CN108572799B (zh) 2021-05-04

Family

ID=63574807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810326792.XA Active CN108572799B (zh) 2018-04-12 2018-04-12 一种双向哈希链表的异构内存系统数据页迁移方法

Country Status (1)

Country Link
CN (1) CN108572799B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134514B (zh) * 2019-04-18 2021-04-13 华中科技大学 基于异构内存的可扩展内存对象存储系统
CN110347510A (zh) * 2019-07-09 2019-10-18 中国科学院微电子研究所 一种混合内存的管理方法、系统、设备及介质
CN110737410B (zh) * 2019-10-22 2023-02-03 上海理工大学 动态单链表窗口的异构内存系统数据页迁出方法
CN113093999B (zh) * 2021-05-07 2022-11-18 厦门市美亚柏科信息股份有限公司 一种基于自适应锁的缓存淘汰方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729305A (zh) * 2012-10-11 2014-04-16 财团法人工业技术研究院 虚拟机的存储器管理的方法和计算机系统
CN104699424A (zh) * 2015-03-26 2015-06-10 华中科技大学 一种基于页面热度的异构内存管理方法
CN105573675A (zh) * 2015-12-16 2016-05-11 鸿秦(北京)科技有限公司 缓存管理装置中基于训练机制的用户习惯获取方法及装置
CN106598881A (zh) * 2016-12-20 2017-04-26 北京小米移动软件有限公司 页面处理方法及装置
CN107168654A (zh) * 2017-05-26 2017-09-15 华中科技大学 一种基于数据对象热度的异构内存分配方法及系统
CN107193646A (zh) * 2017-05-24 2017-09-22 中国人民解放军理工大学 一种基于混合主存架构的高效动态页面调度方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495286B2 (en) * 2009-12-10 2013-07-23 International Business Machines Corporation Write buffer for improved DRAM write access patterns
US9122631B2 (en) * 2011-11-07 2015-09-01 Peking University Buffer management strategies for flash-based storage systems
US9372726B2 (en) * 2013-01-09 2016-06-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
US9552211B1 (en) * 2013-03-14 2017-01-24 Nutanix, Inc. Method for performing hot-swap of a storage device in a virtualization environment
JP5901698B2 (ja) * 2014-06-17 2016-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メモリ管理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729305A (zh) * 2012-10-11 2014-04-16 财团法人工业技术研究院 虚拟机的存储器管理的方法和计算机系统
CN104699424A (zh) * 2015-03-26 2015-06-10 华中科技大学 一种基于页面热度的异构内存管理方法
CN105573675A (zh) * 2015-12-16 2016-05-11 鸿秦(北京)科技有限公司 缓存管理装置中基于训练机制的用户习惯获取方法及装置
CN106598881A (zh) * 2016-12-20 2017-04-26 北京小米移动软件有限公司 页面处理方法及装置
CN107193646A (zh) * 2017-05-24 2017-09-22 中国人民解放军理工大学 一种基于混合主存架构的高效动态页面调度方法
CN107168654A (zh) * 2017-05-26 2017-09-15 华中科技大学 一种基于数据对象热度的异构内存分配方法及系统

Also Published As

Publication number Publication date
CN108572799A (zh) 2018-09-25

Similar Documents

Publication Publication Date Title
CN108572799B (zh) 一种双向哈希链表的异构内存系统数据页迁移方法
CN107193646B (zh) 一种基于混合主存架构的高效动态页面调度方法
US9348527B2 (en) Storing data in persistent hybrid memory
Chen et al. A novel page replacement algorithm for the hybrid memory architecture involving PCM and DRAM
US9990293B2 (en) Energy-efficient dynamic dram cache sizing via selective refresh of a cache in a dram
US20130198453A1 (en) Hybrid storage device inclucing non-volatile memory cache having ring structure
JP6711121B2 (ja) 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
CN106528454A (zh) 一种基于闪存的内存系统缓存机制
Wu et al. APP-LRU: A new page replacement method for PCM/DRAM-based hybrid memory systems
Quan et al. Prediction table based management policy for STT-RAM and SRAM hybrid cache
Pourshirazi et al. Refree: A refresh-free hybrid DRAM/PCM main memory system
CN106909323B (zh) 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统
CN101853218B (zh) 用于磁盘阵列的读取方法和系统
CN104778132A (zh) 一种多核处理器目录缓存替换方法
Zhang et al. DualStack: A high efficient dynamic page scheduling scheme in hybrid main memory
KR101546707B1 (ko) 하이브리드 메인 메모리 기반의 메모리 접근 관리방법
Pourshirazi et al. NEMO: an energy-efficient hybrid main memory system for mobile devices
CN102779017A (zh) 一种固态盘中数据缓存区的控制方法
CN110737410B (zh) 动态单链表窗口的异构内存系统数据页迁出方法
Liu et al. Efficient wear leveling for PCM/DRAM-based hybrid memory
Khajekarimi et al. Integer linear programming model for allocation and migration of data blocks in the STT‐RAM‐based hybrid caches
Nath et al. Reuse distance-based victim cache for effective utilisation of hybrid main memory system
Park et al. Efficient management of PCM-based swap systems with a small page size
Valero et al. A reuse-based refresh policy for energy-aware eDRAM caches
Li A Hotness-aware Write Buffer Management Scheme for the Lifetime Extension of Flash-based Solid State Drives

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