CN110851273B - 一种基于混合内存的程序处理方法和基于混合内存的设备 - Google Patents
一种基于混合内存的程序处理方法和基于混合内存的设备 Download PDFInfo
- Publication number
- CN110851273B CN110851273B CN201911056623.XA CN201911056623A CN110851273B CN 110851273 B CN110851273 B CN 110851273B CN 201911056623 A CN201911056623 A CN 201911056623A CN 110851273 B CN110851273 B CN 110851273B
- Authority
- CN
- China
- Prior art keywords
- energy consumption
- target
- memory
- time
- program
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 185
- 238000005265 energy consumption Methods 0.000 claims abstract description 116
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000008569 process Effects 0.000 claims description 10
- 230000008901 benefit Effects 0.000 abstract description 10
- 239000008241 heterogeneous mixture Substances 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种基于混合内存的程序处理方法和基于混合内存的设备,所述方法首先计算处于运行状态的目标程序的实时写频率、以及目标程序的实时写阈值,在实时写频率小于实时写阈值时,将目标程序分配至非易失存储器,确定目标程序的对应的第一目标逻辑页面;计算第一目标逻辑页面在非易失存储器中的第一存储能耗;预估第一目标逻辑页面由非易失存储器置换到动态随机存取存储器的第一置换能耗;在第一存储能耗大于第一置换能耗时,将第一目标逻辑页面由非易失存储器迁移至动态随机存取存储器,实现了异构混合内存在动态随机存取内存与非易失内存之间的最优的数据分配,充分发挥各自的优点,提升程序性能和系统能效。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种基于混合内存的程序处理方法和基于混合内存的设备。
背景技术
大数据应用的爆炸性增长对数据中心的计算和存储能力提出前所未有的挑战。这样的需求正在推动存储系统、并行计算系统、能耗计算技术的发展。数据显示,处理器性能每年增长35%左右,但是内存性能的增长每年只有约7%,计算和存储间的鸿沟越来越大。另一方面,内存的能耗问题也日益突出,研究表明,内存系统的能耗占系统总能耗的40%左右。为了缩小计算和存储的鸿沟,同时降低服务器能耗,研究人员开始探索利用可替代的内存如非易失内存(NVM)来取代部分动态随机存取内存(DRAM),构建DRAM与NVM混合的内存系统。希望既可以发挥DRAM速度快的优势,又可以利用NVM功耗小、非易失的特点,从整体上更加高效地支持上层程序的访存行为从而提升程序性能。因此,混合内存会是未来内存发展的趋势。
同传统内存DRAM相比,NVM技术如相变存储(PCM)、阻性存储(RRAM)和磁性存储(STT-MRAM)等存储密度高,且非易失而无需刷新,因此功耗低,有独特优势,但其延迟和带宽指标目前尚不如DRAM,特别是写入延迟较大,写寿命有限。要充分发挥混合内存优势的一个自然的想法是,把经常需要修改访问的数据放在DRAM,而把基本只读访问的数据放在NVM,而当数据的访问模式发生变化时,将其在NVM和DRAM之间迁移,从而达到内存整体的性能优势。因此,适当的数据放置和迁移策略是混合内存成功的关键。
当前的操作系统大多针对于同构内存架构,操作系统管理的目的是使负载平衡并增加数据局部性。混合内存与同构内存的使用和管理机制明显不同。对于异构混合内存而言,操作系统管理的目的是如何在DRAM内存与NVM内存之间实现最优的数据分配,充分发挥各自的优点,提升程序性能和系统能效。因此,如何分配数据、何时在两种内存介质之间进行数据迁移、如何选择内存的替换策略等问题是不同于传统同构内存管理的新问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种基于混合内存的程序处理方法和基于混合内存的设备,旨在解决目前如何对异构混合内存中非易失内存和动态随机存取内存之间数据实现最优分配的问题。
为实现上述目的,本发明提供一种基于混合内存的程序处理方法,所述方法包括以下步骤:
计算机系统对各个处于运行状态的程序进行遍历;
计算遍历到的目标程序的实时写频率;
确定各个处于运行状态的程序的数量,根据所述数量和所述实时写频率生成所述目标程序的实时写阈值;
将所述目标程序的实时写频率与所述实时写阈值进行比较;
在所述实时写频率小于所述实时写阈值时,将所述目标程序分配至非易失存储器,并确定所述目标程序的对应的第一目标逻辑页面;
计算所述第一目标逻辑页面在所述非易失存储器中的第一存储能耗;
预估所述第一目标逻辑页面由所述非易失存储器置换到动态随机存取存储器的第一置换能耗;
将所述第一存储能耗与所述第一置换能耗进行比较,在所述第一存储能耗大于所述第一置换能耗时,将所述第一目标逻辑页面由所述非易失存储器迁移至所述动态随机存取存储器。
优选地,所述计算遍历到的目标程序的实时写频率的步骤,具体包括:
获取所述目标程序在预设时间节点范围内的总运行时间;
从所述预设时间节点范围内选取第一时间节点和第二时间节点;
计算所述目标程序在所述第一时间节点的内存写次数;
计算所述目标程序在所述第二时间节点的内存写次数;
根据所述预设时间节点范围内的总运行时间、所述第一时间节点的内存写次数、以及所述第二时间节点的内存写次数计算所述目标程序的实时写频率。
优选地,通过公式二计算所述目标程序的实时写频率:
其中,Fx表示遍历到的第x个目标程序Px的实时写频率,t表示所述目标程序在预设时间节点范围内的总运行时间,所述预设时间节点范围包括多个预先设定的时间节点,i表示所述第一时间节点,j表示所述第二时间节点;
优选地,所述通过公式三计算所述所述各个处于运行状态的程序的实时写阈值:
其中,TS表示各个处于运行状态的程序的实时写阈值,m表示所述计算机系统中处于运行状态的程序的总数量。
优选地,所述计算所述第一目标逻辑页面在所述非易失存储器中的第一存储能耗的步骤,具体包括:
获取存储在所述非易失存储器中的第一目标逻辑页面的读取能耗和写入能耗;
统计所述第一目标逻辑页面的被读取次数和被写入次数;
获取存储在所述非易失存储器中的所述第一目标逻辑页面的空闲刷新能耗;
根据所述第一目标逻辑页面的所述读取能耗及所述写入能耗、所述被读取次数及所述被写入次数、和所述空闲刷新能耗计算所述第一目标逻辑页面在所述非易失存储器中的第一存储能耗。
优选地,通过公式四计算所述第一目标逻辑页面在所述非易失存储器中的第一存储能耗:
其中,表示存储在所述非易失存储器中的第一目标逻辑页面的读取能耗,表示存储在所述非易失存储器中的第一目标逻辑页面的写入能耗;r表示所述第一目标逻辑页面的被读取次数,w表示所述第一目标逻辑页面的被写入次数;表示单位时间内在所述非易失存储器中的所述第一目标逻辑页面的空闲刷新能耗,T表示预设时间周期;CNVM表示在所述预设时间周期T内的所述第一目标逻辑页面在所述非易失存储器中的所述第一存储能耗。
优选地,通过公式五来预估所述第一目标逻辑页面由所述非易失存储器置换到动态随机存取存储器的第一置换能耗:
其中,所述CNVM-DRAM表示所述第一置换能耗;Eexra表示所述第一目标逻辑页面在置换过程中除了读取能耗和写入能耗之外的额外能耗;
优选地,所述将所述目标程序的实时写频率与所述实时写阈值进行比较的步骤之后,所述方法还包括:
在所述实时写频率大于所述实时写阈值时,将所述目标程序分配至动态随机存取存储器,并确定所述目标程序的对应的第二目标逻辑页面;
计算所述第二目标逻辑页面在所述动态随机存取存储器中的第二存储能耗;
预估所述第二目标逻辑页面由所述动态随机存取存储器置换到所述非易失存储器的第二置换能耗;
将所述第二存储能耗与所述第二置换能耗进行比较,在所述第二存储能耗大于所述第二置换能耗时,将所述第二目标逻辑页面由所述动态随机存取存储器迁移至所述非易失存储器。
此外,本发明还提出一种基于混合内存的设备,所述基于混合内存的设备包括处理器、计算机系统、动态随机存取存储器、非易失存储器,以及存储在所述非易失存储器上并可在所述处理器上运行的控制程序,所述控制程序配置为实现如上所述的基于混合内存的程序处理方法的步骤。
本发明首先计算处于运行状态的目标程序的实时写频率、以及目标程序的实时写阈值,在实时写频率小于实时写阈值时,将目标程序分配至非易失存储器,确定目标程序的对应的第一目标逻辑页面;计算第一目标逻辑页面在非易失存储器中的第一存储能耗;预估第一目标逻辑页面由非易失存储器置换到动态随机存取存储器的第一置换能耗;在第一存储能耗大于第一置换能耗时,将第一目标逻辑页面由非易失存储器迁移至动态随机存取存储器,实现了异构混合内存在动态随机存取内存与非易失内存之间的最优的数据分配,充分发挥各自的优点,提升程序性能和系统能效。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的基于混合内存的设备的结构示意图;
图2为本发明一种基于混合内存的程序处理方法的第一实施例的流程示意图;
图3为本发明一种基于混合内存的程序处理方法的第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1本发明实施例方案涉及的硬件运行环境的基于混合内存的设备的结构示意图。
如图1所示,所述基于混合内存的设备可以包括:处理器1001,例如CPU;用户接口1002,用户接口1002可以是USB控制单元,图像适配器接口;动态随机存取存储器1003,非易失存储器1004,以及通信总线1005。其中,用户接口1002可以连接包括显示屏(Display)、键盘(Keyboard),用户可通过键盘对程序进行读写操作,可选地用户接口1002还可以包括标准的有线接口、无线接口。通信总线1005用于实现这些组件之间的连接通信。
如图1所示,所述基于混合内存的设备还包括计算机系统、内存控制模块、用户接口模块以及控制程序,所述控制程序存储在所述非易失存储器1004上。
所述动态随机存取存储器1003、所述非易失存储器1004由所述内存控制模块控制,所述内存控制单元使得CPU与所述动态随机存取存储器1003和所述非易失存储器1004交换数据。
本领域技术人员可以理解,图1中示出的基于混合内存的设备的结构并不构成对其本身结构的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,本实施例的基于混合内存的设备可以是台式电脑主机,也可以是笔记本电脑等移动终端设备。
在图1所示的基于混合内存的设备中,用户接口1002主要用于与用户进行交互;所述基于混合内存的设备通过处理器1001调用非易失存储器1004中存储的控制程序,并执行基于混合内存的程序处理方法的步骤。
基于上述硬件结构,提出本发明一种基于混合内存的程序处理方法的实施例。
参照图2,图2为本发明一种基于混合内存的程序处理方法的第一实施例的流程示意图。
在第一实施例中,所述基于混合内存的程序处理方法包括以下步骤:
步骤S10:计算机系统对各个处于运行状态的程序进行遍历;
需要说明的是,本实例的执行主体为上述基于混合内存的设备的计算机系统,存储在所述非易失存储器的所述控制程序会监控整个计算机系统,所述计算机系统为基于非易失存储器和动态随机存取存储器异构的混合内存系统;
可理解的是,在计算机系统运行时,系统内会存在多个应用程序同时开启的情况,即各个程序处于运行状态。
步骤S20:计算遍历到的目标程序的实时写频率;
可理解的是,在计算机系统运行时,将遍历到的目标程序用Px表示,而所述计算机系统内正在运行的程序总共有m个,即x=0,1,2…m;
具体地,在程序Px运行的过程中,每当程序Px产生一个写请求,计算机系统便会产生一个写操作,每个写操作又会产生多次内存写次数。存储在所述非易失存储器的所述控制程序会监控整个计算机系统,每当程序Px产生了写操作,对内存的写次数(Pw)会实时传输给控制程序并记录下来。如果用f表示目标程序Px的当前写频率,用以下公式一表示目标程序Px的当前写频率f:
其中,Pw是目标程序Px的写次数,这个写次数是不断增加的,而t是目标程序Px的所述预设时间节点范围内的总运行时间,所述预设时间节点范围包括多个预先设定的时间节点。
目标程序Px的写频率f表征越高的f意味着目标程序Px对内存的写压力越大;本实施例收集Pw的过程是一个持续动态的过程,也就是说写频率f也就是一个随着时间t随时变化的数值。
由公式一可以得到,目标程序Pi的写频率是全局属性的,随着时间t的增加和写次数Pw的增加,实时写频率f是不断变动的。也就是说频率f表征某个程序全局写压力而不是瞬时写压力,若程序Px瞬间产生极高的写操作,则f的变动无法正确衡量Px的写压力,因此需要根据目标程序Px的写频率来计算所述目标程序Px更精确的实时写频率。
本实施例中,所述实时写频率是基于目标程序Px的当前写频率衍生出来的;相应地,所述所述计算遍历到的目标程序的实时写频率具体包括:
获取所述目标程序在预设时间节点范围内的总运行时间;从所述预设时间节点范围内选取第一时间节点i和第二时间节点j;计算所述目标程序在所述第一时间节点i的内存写次数;计算所述目标程序在所述第二时间节点j的内存写次数;根据所述预设时间节点范围内的总运行时间、所述第一时间节点的内存写次数、以及所述第二时间节点的内存写次数计算所述目标程序的实时写频率。
在具体实现中,通过以下公式二(公式二是基于上述公式一衍化的)来表示所述目标程序Px在运行过程中的实时写频率Fx:
其中,Fx表示所述目标程序Px在运行过程中的实时写频率,t表示所述目标程序Px在预设时间节点范围内的总运行时间,所述预设时间节点范围包括多个预先设定的时间节点,而变量i和变量j均表示所述总时间t内不同的时间节点,且i、j=0,1…n-1,x=0,1,2…m;j<i;
公式二表征给所述计算机系统内的每个运行的应用程序计算了实时写频率值,保证了计算机系统的异步性和并发性。
步骤S30:确定各个处于运行状态的程序的数量,根据所述数量和所述实时写频率生成所述目标程序的程序的实时写阈值;
可理解的是,本实施例为了动态地去衡量计算机系统中各个正在运行的程序的实时写压力,需要设定一个实时写阈值。在这些应用程序的整体运行时间内,这个实时写阈值会一致计算并且改变,这是为了实现在每个时间节点都能进行一次系统程序运行位置的判断。
在具体实现中,通过以下公式(三)来表征各个处于运行状态的程序的实时写阈值TS:
其中,m表示计算机系统中处于运行状态的程序的总数量,TS表示各个处于运行状态的程序的实时写阈值;
可理解的是,所述实时写阈值TS会在每个时间节点被重新计算,所述实时写阈值TS是个实时动态的数值,计算机系统能够依据所述实时写阈值T更好地确定各个处于运行状态的程序的所处位置,不会导致当前写阈值过大或者过小从而产生误判。系统通过实时重新计算的写阈值,能及时调整系统中剩余运行程序的位置。
步骤S40:将所述目标程序的实时写频率与所述实时写阈值进行比较;
步骤S401:在所述实时写频率小于所述实时写阈值时,将所述目标程序分配至非易失存储器,并确定所述目标程序的对应的第一目标逻辑页面逻辑页面。
具体地,在所述实时写频率Fx小于所述实时写阈值TS时,如果所述目标程序正在动态随机存取存储器中运行时,则将所述目标程序分配至非易失存储器,并记录所述目标程序的对应的第一目标逻辑页面,所述第一目标逻辑页面即为所述目标程序在计算机系统中的运行位置;
如果所述目标程序正在非易失存储器运行时,则保留所述目标程序的运行位置并做记录。
步骤S50:计算所述第一目标逻辑页面在所述非易失存储器中的第一存储能耗;
可理解的是,基于非易失存储器和动态随机存取存储器异构的混合内存计算机系统在运行时,每个存储的内存中的页面都会随着时间的进行而消耗电量,这个电量的损耗即是内存页面的存储能耗。所述存储能耗包括系统对逻辑页面进行读取和写入的能耗,以及逻辑页面在全局的空闲能耗;
在具体实现中,通过以下公式四表示所述第一目标逻辑页面在所述非易失存储器中的第一存储能耗:
其中,表示存储在非易失存储器中的第一目标逻辑页面的读取能耗,表示存储在非易失存储器中的第一目标逻辑页面的写入能耗。r表示所述第一目标逻辑页面的被读取次数,w表示所述第一目标逻辑页面的被写入次数;表示单位时间内在非易失存储器中的所述第一目标逻辑页面的空闲刷新能耗,T表示预设时间周期;CNVM表示在预设时间周期T内的所述第一存储能耗。
步骤S60:预估所述第一目标逻辑页面由所述非易失存储器置换到动态随机存取存储器的第一置换能耗;
可理解的是,本实施例会预估第一目标逻辑页面由所述非易失存储器置换到动态随机存取存储器的置换能耗,并具体通过公式五来预估该置换能耗:
其中,所述CNVM-DRAM表示所述第一置换能耗;Eexra表示所述第一目标逻辑页面在置换过程中除了读取和写入能耗之外的额外能耗。表示所述第一目标逻辑页面从非易失存储器中一次置换到动态随机存取存储器中所耗费的能耗;
可理解的是,所述基于非易失存储器和动态随机存取存储器异构的混合内存计算机系统在运行时,非易失存储器中的逻辑页面被置换到动态随机存取存储器后,由于运行时间的变长,动态随机存取存储器中的能耗就会越来越大,最后逻辑页面会被置换回到非易失存储器中。
需要说明的是,本实施例优选将非易失存储器作为混合内存系统的主存储器,因此本实施例会预先将所有程序的逻辑页面一开始都存储在非易失存储器中,之后系统会根据逻辑页面的能量损耗去选择合适的页面,并将其置换到动态随机存取存储器中。
本实施例在逻辑页面的置换能耗过程中考量到逻辑页面在从非易失存储器置换到动态随机存取存储器后,从动态随机存取存储器置换回非易失存储器的能耗代价,因此上述公式五计算出的页面置换能耗适用于计算机系统中所有正在运行的程序的页面,且不论页逻辑页面当前是存储于动态随机存取存储器还是存储于非易失存储器。
步骤S70:将所述第一存储能耗与所述第一置换能耗进行比较,在所述第一存储能耗大于所述第一置换能耗时,将所述第一目标逻辑页面由所述非易失存储器迁移至所述动态随机存取存储器。
在具体实现中,通过公式六来判断所述第一目标逻辑页面是否需要由所述非易失存储器迁移至所述动态随机存取存储器:
CNVM-CNVM-DRAM 公式六
CNVM-CNVM-DRAM表示当所述第一目标逻辑页面的存储位置要从所述非易失存储器置变为所述动态随机存取存储器之后,混合内存的页面能耗是否合理的判定公式。
若CNVM-CNVM-DRAM>0,则所述第一目标逻辑页面从所述非易失存储器置换到所述动态随机存取存储器比较合理;若CNVM-CNVM-DRAM<0,则所述第一目标逻辑页面适合继续存储在混合内存系统的非易失存储器中,最终实现了异构混合内存在动态随机存取内存与非易失内存之间的最优的数据分配。
本实施例首先计算处于运行状态的目标程序的实时写频率、以及各个处于运行状态的程序的实时写阈值,在实时写频率小于实时写阈值时,将目标程序分配至非易失存储器,确定目标程序的对应的第一目标逻辑页面;计算第一目标逻辑页面在非易失存储器中的第一存储能耗;预估第一目标逻辑页面由非易失存储器置换到动态随机存取存储器的第一置换能耗;在第一存储能耗大于第一置换能耗时,将第一目标逻辑页面由非易失存储器迁移至动态随机存取存储器,实现了异构混合内存在动态随机存取内存与非易失内存之间的最优的数据分配,充分发挥各自的优点,提升程序性能和系统能效。
参照图2,图2本发明实施例方案涉及的硬件运行环境的基于混合内存的设备的结构示意图。
本实施例中,在所述步骤S40之后,所述方法还包括:
步骤S41:在所述实时写频率大于所述实时写阈值时,将所述目标程序分配至动态随机存取存储器,并确定所述目标程序的对应的第二目标逻辑页面;
步骤S51:计算所述第二目标逻辑页面在所述动态随机存取存储器中的第二存储能耗;
步骤S61:预估所述第二目标逻辑页面由所述动态随机存取存储器置换到所述的第二置换能耗;
步骤S71:将所述第二存储能耗与所述第二置换能耗进行比较,在所述第二存储能耗大于所述第二置换能耗时,将所述第二目标逻辑页面由所述动态随机存取存储器迁移至所述非易失存储器。
可理解的是,本实施例相对于上述第一实施例而言,是另一种分配情况:
即目标程序分配至动态随机存取存储器,目标程序对应的第二目标逻辑页面合理地由所述动态随机存取存储器迁移至所述非易失存储器的场景实施例;具体实施方式与上述第一实施例的实施方式类似,本实施例在此不以赘述。
本实施例首先计算处于运行状态的目标程序的实时写频率、以及各个处于运行状态的程序的实时写阈值,在实时写频率大于实时写阈值时,将目标程序分配至动态随机存取存储器,确定目标程序的对应的第二目标逻辑页面;计算第二目标逻辑页面在动态随机存取存储器中的第二存储能耗;预估第二目标逻辑页面由动态随机存取存储器置换到非易失存储器的第二置换能耗;在第二存储能耗大于第二置换能耗时,将第二目标逻辑页面由动态随机存取存储器迁移至非易失存储器,实现了异构混合内存在动态随机存取内存与非易失内存之间的最优的数据分配,充分发挥各自的优点,提升程序性能和系统能效。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种基于混合内存的程序处理方法,其特征在于,所述方法包括:
计算机系统对各个处于运行状态的程序进行遍历;
计算遍历到的目标程序的实时写频率;
确定各个处于运行状态的程序的数量,根据所述数量和所述实时写频率生成所述目标程序的实时写阈值;
将所述目标程序的实时写频率与所述实时写阈值进行比较;
在所述实时写频率小于所述实时写阈值时,将所述目标程序分配至非易失存储器,并确定所述目标程序对应的第一目标逻辑页面;
计算所述第一目标逻辑页面在所述非易失存储器中的第一存储能耗;
预估所述第一目标逻辑页面由所述非易失存储器置换到动态随机存取存储器的第一置换能耗;
将所述第一存储能耗与所述第一置换能耗进行比较,在所述第一存储能耗大于所述第一置换能耗时,将所述第一目标逻辑页面由所述非易失存储器迁移至所述动态随机存取存储器;
所述计算遍历到的目标程序的实时写频率的步骤,具体包括:
获取所述目标程序在预设时间节点范围内的总运行时间;
从所述预设时间节点范围内选取第一时间节点和第二时间节点;
计算所述目标程序在所述第一时间节点的内存写次数;
计算所述目标程序在所述第二时间节点的内存写次数;
根据所述预设时间节点范围内的总运行时间、所述第一时间节点的内存写次数、以及所述第二时间节点的内存写次数计算所述目标程序的实时写频率;
通过公式二计算所述目标程序的实时写频率:
其中,Fx表示遍历到的第x个目标程序Px的实时写频率,t表示第x个目标程序在预设时间节点范围内的总运行时间,所述预设时间节点范围包括多个预先设定的时间节点,i表示所述第一时间节点,j表示所述第二时间节点;
所述通过公式三计算所述各个处于运行状态的程序的实时写阈值:
其中,TS表示各个处于运行状态的程序的实时写阈值,m表示所述计算机系统中处于运行状态的程序的数量。
2.如权利要求1所述的方法,其特征在于,所述计算所述第一目标逻辑页面在所述非易失存储器中的第一存储能耗的步骤,具体包括:
获取存储在所述非易失存储器中的第一目标逻辑页面的读取能耗和写入能耗;
统计所述第一目标逻辑页面的被读取次数和被写入次数;
获取存储在所述非易失存储器中的所述第一目标逻辑页面的空闲刷新能耗;
根据所述第一目标逻辑页面的所述读取能耗及所述写入能耗、所述被读取次数及所述被写入次数、和所述空闲刷新能耗计算所述第一目标逻辑页面在所述非易失存储器中的第一存储能耗。
4.如权利要求2所述的方法,其特征在于,通过公式五来预估所述第一目标逻辑页面由所述非易失存储器置换到动态随机存取存储器的第一置换能耗:
其中,所述CNVM-DRAM表示所述第一置换能耗;Eexra表示所述第一目标逻辑页面在置换过程中除了读取能耗和写入能耗之外的额外能耗;
5.如权利要求1或2所述的方法,其特征在于,所述将所述目标程序的实时写频率与所述实时写阈值进行比较的步骤之后,所述方法还包括:
在所述实时写频率大于所述实时写阈值时,将所述目标程序分配至动态随机存取存储器,并确定所述目标程序的对应的第二目标逻辑页面;
计算所述第二目标逻辑页面在所述动态随机存取存储器中的第二存储能耗;
预估所述第二目标逻辑页面由所述动态随机存取存储器置换到所述非易失存储器的第二置换能耗;
将所述第二存储能耗与所述第二置换能耗进行比较,在所述第二存储能耗大于所述第二置换能耗时,将所述第二目标逻辑页面由所述动态随机存取存储器迁移至所述非易失存储器。
6.一种基于混合内存的设备,其特征在于,所述基于混合内存的设备包括处理器、计算机系统、动态随机存取存储器、非易失存储器,以及存储在所述非易失存储器上并可在所述处理器上运行的控制程序,所述控制程序配置为实现如权利要求1至5中任一项所述的基于混合内存的程序处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911056623.XA CN110851273B (zh) | 2019-10-31 | 2019-10-31 | 一种基于混合内存的程序处理方法和基于混合内存的设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911056623.XA CN110851273B (zh) | 2019-10-31 | 2019-10-31 | 一种基于混合内存的程序处理方法和基于混合内存的设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110851273A CN110851273A (zh) | 2020-02-28 |
CN110851273B true CN110851273B (zh) | 2022-07-15 |
Family
ID=69599547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911056623.XA Active CN110851273B (zh) | 2019-10-31 | 2019-10-31 | 一种基于混合内存的程序处理方法和基于混合内存的设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851273B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114237903B (zh) * | 2021-12-22 | 2024-03-22 | 上海壁仞智能科技有限公司 | 内存分配优化方法、装置、电子设备、介质及程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014059613A1 (zh) * | 2012-10-17 | 2014-04-24 | 华为技术有限公司 | 降低内存系统功耗的方法和内存控制器 |
CN103810113A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失存储器和动态随机存取存储器的融合内存系统 |
CN107193646A (zh) * | 2017-05-24 | 2017-09-22 | 中国人民解放军理工大学 | 一种基于混合主存架构的高效动态页面调度方法 |
CN109521949A (zh) * | 2018-08-30 | 2019-03-26 | 电子科技大学 | 一种基于混合便签式存储器的感知写频率数据分配方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8327172B2 (en) * | 2010-06-23 | 2012-12-04 | Intel Corporation | Adaptive memory frequency scaling |
US9298383B2 (en) * | 2012-08-17 | 2016-03-29 | International Business Machines Corporation | Memory with mixed cell array and system including the memory |
US11977484B2 (en) * | 2016-07-19 | 2024-05-07 | Sap Se | Adapting in-memory database in hybrid memory systems and operating system interface |
US10733107B2 (en) * | 2016-10-07 | 2020-08-04 | Via Technologies, Inc. | Non-volatile memory apparatus and address classification method thereof |
-
2019
- 2019-10-31 CN CN201911056623.XA patent/CN110851273B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014059613A1 (zh) * | 2012-10-17 | 2014-04-24 | 华为技术有限公司 | 降低内存系统功耗的方法和内存控制器 |
CN103810113A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失存储器和动态随机存取存储器的融合内存系统 |
CN107193646A (zh) * | 2017-05-24 | 2017-09-22 | 中国人民解放军理工大学 | 一种基于混合主存架构的高效动态页面调度方法 |
CN109521949A (zh) * | 2018-08-30 | 2019-03-26 | 电子科技大学 | 一种基于混合便签式存储器的感知写频率数据分配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110851273A (zh) | 2020-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11977484B2 (en) | Adapting in-memory database in hybrid memory systems and operating system interface | |
US7979648B2 (en) | Dynamic interleaving | |
JP5186367B2 (ja) | メモリ・マイグレーションのシステムおよび方法 | |
US8296496B2 (en) | Main memory with non-volatile memory and DRAM | |
US8245060B2 (en) | Memory object relocation for power savings | |
US7484074B2 (en) | Method and system for automatically distributing real memory between virtual memory page sizes | |
Mutlu | Main memory scaling: Challenges and solution directions | |
KR20170113013A (ko) | 멀티-웨어 스마트 솔리드 스테이트 드라이브 | |
CN103999060A (zh) | 固态存储管理 | |
KR20120058352A (ko) | 하이브리드 메모리 시스템, 및 그 관리 방법 | |
KR102443600B1 (ko) | 하이브리드 메모리 시스템 | |
US20200409607A1 (en) | Hybrid memory system | |
CN107562645B (zh) | 一种内存页管理方法及计算设备 | |
US9727465B2 (en) | Self-disabling working set cache | |
CN102346682A (zh) | 信息处理装置及信息处理方法 | |
JP2014032582A (ja) | 画像処理装置、画像処理装置のストレージデバイス制御方法、及びプログラム | |
CN113377291A (zh) | 一种缓存设备的数据处理方法、装置、设备及介质 | |
US11327892B2 (en) | Latency-based storage in a hybrid memory system | |
JP2011186562A (ja) | メモリ管理装置及び方法 | |
JP2011186561A (ja) | メモリ管理装置 | |
CN110851273B (zh) | 一种基于混合内存的程序处理方法和基于混合内存的设备 | |
KR20190138365A (ko) | 멀티 프로세서 시스템 및 그 구동 방법 | |
JP2011186558A (ja) | メモリ管理装置及び方法 | |
Chen et al. | Refinery swap: An efficient swap mechanism for hybrid DRAM–NVM systems | |
US20130332695A1 (en) | Information processing apparatus and method and computer-readable medium |
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 |