一种基于数据对象热度的异构内存分配方法及系统技术方案

技术编号:16216118 阅读:40 留言:0更新日期:2017-09-15 22:16
本发明专利技术公开了一种基于数据对象热度的异构内存分配方法及系统,包括:在源代码中进行插桩,统计源代码中包括的数据对象的读写操作信息;将数据对象的读写操作信息经过缓存过滤后得到数据对象的访存特征,数据对象的访存特征为数据对象对异构内存的读写操作访存次数随时间变化的特征;根据数据对象的访存特征确定数据对象的访存热度等级;根据数据对象的访存热度等级、动态随机存取存储器的时延能耗信息和可用容量信息以及非易失性存储器的时延能耗信息和可用容量信息中的至少一种信息将数据对象分配到动态随机存取存储器和非易失性存储器中的一个。本发明专利技术以对象为最小粒度可减少对内存带宽带来的资源浪费,并考虑内存的可用,保证系统的性能。

Heterogeneous memory allocation method and system based on data object heat

The invention discloses a heterogeneous memory allocation method and system, data objects based on heat include instrumentation in the source code, including the statistical data objects in the source code to read and write operation information; the data objects read and write through cache information filtering to obtain data object access characteristics of data the object access characteristics of feature data objects on heterogeneous memory read and write memory access times vary with time; according to the data object access characteristics determine the data access object according to the heat level; data object access level, heat energy consumption information delay dynamic random access memory and available capacity of information and non easy at least one information delay energy consumption information and the available capacity information in the volatile memory of the data object is assigned to the dynamic random access memory and non-volatile memory One of. The object of the invention is to minimize the waste of memory bandwidth due to the minimum size of the object, and to consider the availability of memory and to guarantee the performance of the system.

【技术实现步骤摘要】
一种基于数据对象热度的异构内存分配方法及系统
本专利技术属于计算机存储
,更具体地,涉及一种基于数据对象热度的异构内存分配方法及系统。
技术介绍
随着计算机多核技术和计算机应用技术的发展,当前应用对内存的需求越来越大,传统的动态随机访问存储器(DynamicRandomAccessMemory,DRAM)因其巨大的能耗、工艺密度的限制,已经无法满足应用日益增加的内存要求。新型非易失性存储器(Non-VolatileMemory,NVM)因其读写速度接近DRAM、待机功耗小、可扩展性强等特征,成为替代DRAM提供大内存的理想存储介质。然而相比传统的DRAM内存,非易失性存储器也因其读写次数有限、读写时延大、写能耗高等缺陷无法直接替代DRAM成为内存。为了降低NVM的缺陷,当前主流的做法是将DRAM和NVM混合在一起,形成异构内存系统,同时利用NVM大容量、非易失、待机功耗低的优势和DRAM低访问时延、寿命长的优势,提升整个内存系统的功耗效率、性能和寿命。目前平行结构的异构内存分配器主要是使用Buddy或者Slab分配器,采用优先适用(First-Fit)的策略,将页面分配到DRAM和NVM这两种内存介质上,然后通过在应用层或者硬件层检测内存中页面的热度,如页面的读写访问频率,最后采用迁移的机制,如根据页面的热度将页面迁移到符合其访问特征的内存介质上来完成对异构内存性能的优化。当前的平行架构异构内存系统主要有以下几个缺点:1、运行时检测以页面为粒度,需要再在应用层或者硬件层检测页面的热度信息会带来较大的软硬件开销。2、以访问热度为指标的页面迁移策略无法感知源程序中数据的访存特征,因此在进行迁移操作时不一定会带来系统性能的提升。例如在某固定时刻对程序性能有直接影响的数据对象可能分散在不同的页面上,若此时仅仅以访问热度为指标来对页面进行迁移操作,则该程序对应的数据对象所在的不同页面可能有的访问热度已经超过阈值,有的访问热度并未超过阈值,此时只会迁移访问热度已经超过阈值的页面,而访问热度并未超过阈值的页面就不会进行迁移操作。显而易见,在这种情况下,完成迁移操作后系统的性能并不会得到提升。3、现有的异构内存管理方法是以页面为粒度的,当页面的访问热度达到阈值后就会通过进行页面迁移操作来提高系统性能,但是当某个页面需要进行迁移操作时,很有可能只是由于这个页面中的很小一部分数据被频繁访问,由于一个页面上的数据很有可能是没有任何关系的,此时若迁移整个页面则会对系统中的内存带宽带来很大程度上的资源浪费。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于解决现有技术以页面为粒度检测热度信息的迁移机制无法兼顾数据对象的热度信息进行异构内存迁移,会带来较大的系统开销、性能损耗及资源浪费的技术问题。为实现上述目的,一方面,本专利技术提供了一种基于数据对象热度的异构内存分配方法,所述异构内存包括动态随机存取存储器和非易失性存储器,包括:在源代码中进行插桩,统计所述源代码中包括的数据对象的读写操作信息;将所述数据对象的读写操作信息经过缓存过滤后得到数据对象的访存特征,所述数据对象的访存特征为所述数据对象对所述异构内存的读写操作访存次数随时间变化的特征;根据所述数据对象的访存特征确定所述数据对象的访存热度等级;根据所述数据对象的访存热度等级、所述动态随机存取存储器的时延能耗信息和可用容量信息以及所述非易失性存储器的时延能耗信息和可用容量信息中的至少一种信息将所述数据对象分配到所述动态随机存取存储器和非易失性存储器中的一个。本专利技术实施例提供以数据对象为粒度静态分配数据对象至相应的内存中,不同于现有技术以页面为粒度,在页面保存至内存后通过大量软硬件的访问分析页面的热度,带来较大的软硬件开销,然后以页面为粒度进行迁移,造成页面上一些数据的不必要迁移,造成系统损耗和资源浪费,故本专利技术可以降低软硬件开销、系统损耗及资源浪费。同时,本专利技术在数据对象分配至内存后,结合数据对象访存热度随时间的变化,在对应的热度明显变化的时间段将数据对象迁移至对应的内存,以进一步充分发挥不同内存的优势,大大降低系统开销。可选地,所述根据所述数据对象的访存特征确定所述数据对象的访存热度等级,包括:预设至少一种初始函数,包括:在每个周期内访存稳定的第三初始函数F3、第五初始函数F5和第二初始函数F2,在单个周期内访存不稳定,但在整个生命周期上呈稳定性变化的第四初始函数F4,在短时间内访存突变且在整个生命周期上并不呈稳定性变化的第一初始函数F1;F3对应的访存次数均值为f3,F5对应的访存次数均值为f5,F2对应的访存次数均值为f2,f3>f5>f2>0。设所述数据对象对所述异构内存的读写操作访存次数随时间变化的特征为函数fi(n),设rank表示访存热度等级,rank的数值与其所代表的访存热度等级反相关,1≤rank≤5,rank为正整数,fi(n)对应数据对象的访存热度等级rank根据以下几种情况确定。若fi(n)趋近于F1,则若fi(n)的峰值小于f2,则rank值为5;若fi(n)的峰值大于f2且小于f5,则rank值为4;若fi(n)的峰值大于F5且小于f3,则rank值为3;若fi(n)的峰值大于f3且小于f3的10倍,则rank值为2;若fi(n)的峰值大于f3的10倍,则rank值为1;若fi(n)趋近于F2,则若fi(n)的峰值小于f2,则rank值为5;若fi(n)的峰值大于f2且小于f5,则rank值为4;若fi(n)趋近于F3,则若fi(n)的峰值大于f5且小于f3,则rank值为2;若fi(n)的峰值大于f3,则rank值为1;若fi(n)趋近于F4,则若fi(n)的峰值小于f2,则rank值为5;若fi(n)的峰值大于F2且小于f5,则rank值为4;若fi(n)的峰值大于f5且小于f5的两倍,则rank值为3;若fi(n)的峰值大于f5的两倍且小于f3,则rank值为2;若fi(n)的峰值大于f3,则rank值为1。可选地,所述将所述数据对象分配到所述动态随机存取存储器和非易失性存储器中的一个,包括:若数据对象的rank值越小,则该数据对象越倾向于被分配到动态随机存取存储器中,若数据对象的rank值越大,则该数据对象越倾向于被分配非易失性存储器中;当数据对象的rank值为1时,该数据对象被分配至动态随机存取存储器中;当数据对应的rank值为2时,该数据对象倾向于被分配至动态随机存取存储器中;当数据对应的rank值为4时,该数据对象倾向于被分配至非易失性存储器中;当数据对应的rank值为5时,该数据对象被分配至非易失性存储器中。可选地,所述将所述数据对象分配到所述动态随机存取存储器和非易失性存储器中的一个,包括:根据如下公式确定所述动态随机存取存储器和非易失性存储器的时延能耗比ζ(T×E):当ζ(T×E)>1时,所述数据对象在动态随机存取存储器上的完成所有操作所需的时延与能耗的乘积要多于非易失性存储器,该数据对象倾向于被分配至非易失性存储器中;当ζ(T×E)≤1时,所述数据对象在动态随机存取存储器上的完成所有操作所需的时延与能耗的乘积要小于等于非易失性存储器,该数据对象倾向于被分配至动态随机存取存储器中;其中,TDRAM、EDRAM本文档来自技高网
...
一种基于数据对象热度的异构内存分配方法及系统

【技术保护点】
一种基于数据对象热度的异构内存分配方法,所述异构内存包括动态随机存取存储器和非易失性存储器,其特征在于,包括:在源代码中进行插桩,统计所述源代码中包括的数据对象的读写操作信息;将所述数据对象的读写操作信息经过缓存过滤后得到数据对象的访存特征,所述数据对象的访存特征为所述数据对象对所述异构内存的读写操作访存次数随时间变化的特征;根据所述数据对象的访存特征确定所述数据对象的访存热度等级;根据所述数据对象的访存热度等级、所述动态随机存取存储器的时延能耗信息和可用容量信息以及所述非易失性存储器的时延能耗信息和可用容量信息中的至少一种信息将所述数据对象分配到所述动态随机存取存储器和非易失性存储器中的一个。

【技术特征摘要】
1.一种基于数据对象热度的异构内存分配方法,所述异构内存包括动态随机存取存储器和非易失性存储器,其特征在于,包括:在源代码中进行插桩,统计所述源代码中包括的数据对象的读写操作信息;将所述数据对象的读写操作信息经过缓存过滤后得到数据对象的访存特征,所述数据对象的访存特征为所述数据对象对所述异构内存的读写操作访存次数随时间变化的特征;根据所述数据对象的访存特征确定所述数据对象的访存热度等级;根据所述数据对象的访存热度等级、所述动态随机存取存储器的时延能耗信息和可用容量信息以及所述非易失性存储器的时延能耗信息和可用容量信息中的至少一种信息将所述数据对象分配到所述动态随机存取存储器和非易失性存储器中的一个。2.根据权利要求1所述的异构内存分配方法,其特征在于,根据所述数据对象的访存特征确定所述数据对象的访存热度等级,包括:预设至少一种初始函数,包括:在每个周期内访存稳定的第三初始函数F3、第五初始函数F5和第二初始函数F2,在单个周期内访存不稳定,但在整个生命周期上呈稳定性变化的第四初始函数F4,在短时间内访存突变且在整个生命周期上并不呈稳定性变化的第一初始函数F1;F3对应的访存次数均值为f3,F5对应的访存次数均值为f5,F2对应的访存次数均值为f2,f3>f5>f2>0;设所述数据对象对所述异构内存的读写操作访存次数随时间变化的特征为函数fi(n),设rank表示访存热度等级,rank的数值与其所代表的访存热度等级反相关,1≤rank≤5,rank为正整数,fi(n)对应数据对象的访存热度等级rank根据以下几种情况确定;若fi(n)趋近于F1,则若fi(n)的峰值小于f2,则rank值为5;若fi(n)的峰值大于f2且小于f5,则rank值为4;若fi(n)的峰值大于F5且小于f3,则rank值为3;若fi(n)的峰值大于f3且小于f3的10倍,则rank值为2;若fi(n)的峰值大于f3的10倍,则rank值为1;若fi(n)趋近于F2,则若fi(n)的峰值小于f2,则rank值为5;若fi(n)的峰值大于f2且小于f5,则rank值为4;若fi(n)趋近于F3,则若fi(n)的峰值大于f5且小于f3,则rank值为2;若fi(n)的峰值大于f3,则rank值为1;若fi(n)趋近于F4,则若fi(n)的峰值小于f2,则rank值为5;若fi(n)的峰值大于F2且小于f5,则rank值为4;若fi(n)的峰值大于f5且小于f5的两倍,则rank值为3;若fi(n)的峰值大于f5的两倍且小于f3,则rank值为2;若fi(n)的峰值大于f3,则rank值为1。3.根据权利要求2所述的异构内存分配方法,其特征在于,将所述数据对象分配到所述动态随机存取存储器和非易失性存储器中的一个,包括:若数据对象的rank值越小,则该数据对象越倾向于被分配到动态随机存取存储器中,若数据对象的rank值越大,则该数据对象越倾向于被分配非易失性存储器中;当数据对象的rank值为1时,该数据对象被分配至动态随机存取存储器中;当数据对应的rank值为5时,该数据对象被分配至非易失性存储器中。4.根据权利要求1或3所述的异构内存分配方法,其特征在于,根据如下公式确定所述动态随机存取存储器和非易失性存储器的时延能耗比ζ(T×E):当ζ(T×E)>1时,所述数据对象在动态随机存取存储器上的完成所有操作所需的时延与能耗的乘积要多于非易失性存储器,当ζ(T×E)≤1时,所述数据对象在动态随机存取存储器上的完成所有操作所需的时延与能耗的乘积要小于等于非易失性存储器;将所述数据对象分配到所述动态随机存取存储器和非易失性存储器中的一个,包括:根据所述数据对象的rank值和所述时延能耗比信息设置常量X,根据所述常量X的数值和以下公式的数值γ分配所述数据对象:当所述数据对象的rank值为2时,所述常量X的值为2,当γ大于X时,将此数据对象分配到非易失性存储器中,反之则分配到动态随机存取存储器中;当所述数据对象的rank值为3时,所述常量X的值为1,当γ大于X时,将此数据对象分配到非易失性存储器中,反之则分配到动态随机存取存储器中;当所述数据对象的rank值为4时,所述常量X的值为0.5,当γ大于X时,将此数据对象分配到非易失性存储器中,反之则分配到动态随机存取存储器中;其中,NVMAvailable为异构内存中非易失性存储器可用容量与其总容量的占比,DRAMAvailable为异构内存中动态随机存取存储器可用容量与其总容量的占比。5.根据权利要求4所述的异构内存分配方法,其特征在于,还包括:在所述源代码包括的每个循环体的前后分别插入一个记录时间的函数,以记录每个循环体的开始和完成时间,以此将所述数据对象的生命周期分为多个不同的时间段;当所述数据对象被分配至所述动态随机存取存储器和非易失性存储器中的一个后,...

【专利技术属性】
技术研发人员:廖小飞金海刘海坤刘仁山
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1