CN117234432A - 一种混合内存系统的管理方法、管理装置、设备及介质 - Google Patents
一种混合内存系统的管理方法、管理装置、设备及介质 Download PDFInfo
- Publication number
- CN117234432A CN117234432A CN202311511069.6A CN202311511069A CN117234432A CN 117234432 A CN117234432 A CN 117234432A CN 202311511069 A CN202311511069 A CN 202311511069A CN 117234432 A CN117234432 A CN 117234432A
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- write
- access
- hot
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 974
- 238000007726 management method Methods 0.000 title claims abstract description 79
- 230000005012 migration Effects 0.000 claims abstract description 205
- 238000013508 migration Methods 0.000 claims abstract description 205
- 238000000034 method Methods 0.000 claims abstract description 72
- 235000019633 pungent taste Nutrition 0.000 claims abstract description 21
- 238000013507 mapping Methods 0.000 claims description 39
- 238000004364 calculation method Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 12
- 239000012634 fragment Substances 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种混合内存系统的管理方法、装置、设备及介质,方法包括:获取当前访问内存页的写热度值以及访问热度值;将写热度值与写热度阈值进行比较,并生成写热度页面迁移标志信息;将访问热度值与访问热度阈值进行比较,并生成访问热度页面迁移标志信息;将混合内存系统中的混合内存进行分组,根据所有分组内存库的内存页信息生成混合内存对应的内存页管理信息;根据写热度页面迁移标志信息、访问热度页面迁移标志信息、以及当前访问内存页对应的当前内存页管理信息,判断当前访问内存页是否为热数据页,并按照预设冷热数据页迁移策略进行数据迁移。通过上述技术方案,可提升混合内存系统整体性能。
Description
技术领域
本发明涉及混合内存技术领域,尤其是指一种混合内存系统的管理方法、管理装置、设备及介质。
背景技术
传统的DRAM(即Dynamic Random Access Memory,动态随机存取存储器)性能优秀,却面临着扩展性和高能耗的问题;新兴的非易失性存储技术存储密度更高,能耗更低,可以持久存储数据,但是存在写入延迟高、寿命较低等问题。因此,使用少量的DRAM和大容量NVM(即non-volatile memory,非易失性存储器)构建混合内存系统,充分发挥NVM大容量、高密度、低能耗的优势,同时利用DRAM来提升总体性能,已经成为当今学术界和工业界的热门研究方向。
目前,DRAM-NVM混合内存体系存在两种不同的组织架构:一种是“垂直”管理架构,将DRAM与NVM置于不同内存层级,速度较快的DRAM被作为NVM的缓存。另一种是DRAM和NVM“水平”管理架构,将DRAM与NVM置于内存层次结构中的同一层级,将DRAM与NVM组成同一的地址空间。
在水平架构的混合内存系统中,由于两种存储介质DRAM与NVM的延迟不同,数据的冷热程度动态变化、主存系统与Cache(即高速缓冲存储器,是存在于主存与CPU之间的一级存储器)之间的联动关系,都会影响混合内存系统的整体性能。
因此,改进现有水平架构的混合内存的管理方法,提升水平架构混合内存系统的整体性能,显得非常必要。
发明内容
为了解决上述技术问题,本发明提供了一种混合内存系统的管理方法、管理装置、设备及介质,所述管理方法用于解决目前水平架构的混合内存系统整体性能较差的问题。
为实现上述目的,本发明提供一种混合内存系统的管理方法,包括
获取当前访问内存页的写热度值以及访问热度值;
将所述写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息;
将所述访问热度值与指定访问热度阈值进行比较,并生成访问热度页面迁移标志信息;
将所述混合内存系统中的混合内存进行分组,根据所有分组内存库的内存页信息生成所述混合内存对应的内存页管理信息;根据所述写热度页面迁移标志信息、所述访问热度页面迁移标志信息、以及所述当前访问内存页对应的当前内存页管理信息、最低内存读写属性级别以及最高内存读写属性级别,判断所述当前访问内存页是否为热数据页,并按照预设冷热数据页迁移策略进行数据迁移。
进一步的,将所述混合内存系统中的混合内存进行分组,根据所有分组内存库的内存页信息生成所述混合内存对应的内存页管理信息,包括:
根据预设统一内存分组容量、预设统一内存分组内存比例,将所述混合内存系统中的混合内存划分成多个分组内存库、并对所有分组内存库进行编组;其中,每个分组内存库包括至少一个动态随机存取存储区以及至少一个非易失性存储区;所述预设统一内存分组内存比例为每个分组内存库中动态随机存取存储区、非易失性存储区两者的比例;
根据所有分组内存库的内存页信息生成所述混合内存对应的内存页管理信息;其中,所述内存页管理信息包括内存页属性信息,所述内存页属性信息包括分组内存库组号、最低内存读写属性级别以及最高内存读写属性级别;
获取所述系统中的各程序、以及各程序对应的指定分组内存库,根据每个内存程序的程序标定信息、每个内存程序对应的指定分组内存库的分组内存库组号生成内存分组映射关系。
进一步的,所述方法还包括:
获取当前内存程序对应的内存分配申请参数;其中,所述内存分配申请参数包括内存读写属性级别参数;
判断所述内存读写属性级别参数是否达到预设读写属性级别阈值;
若达到,根据第一内存分配原则将所述当前内存程序对应的指定分组内存库中的存储区分配给所述当前内存程序;其中,所述第一内存分配原则为:优先分配动态随机存取存储区、动态随机存取存储区不足时则分配非易失性存储区;
若未达到,根据第二内存分配原则将所述当前内存程序对应的指定分组内存库中的存储区分配给所述当前内存程序;其中,所述第二内存分配原则为:优先分配非易失性存储区、非易失性存储区不足时则分配写属性内存区。
进一步的,对所有分组内存库进行编组,具体包括:
根据预设编址规则对所有分组内存库进行编址、分别生成各个分组内存库对应的分组内存库物理地址;
所述方法还包括:
获取高速缓存器中各高速缓存片区的高速缓存索引位信息,对每个特定高速缓存索引位的高速缓存片区分配用于保存特定物理内存地址的热数据;
根据所述特定物理内存地址、每个高速缓存片区的片区标注信息生成高速缓存物理地址映射关系。
进一步的,生成高速缓存物理地址映射关系具体包括:
根据所述特定物理内存地址中的内存索引位信息查询所述特定物理内存地址对应的特定高速缓存片区;其中,所述内存索引位信息与高速缓存片区编号一一匹配;
当所述特定物理内存地址中的内存标注位信息与所述特定高速缓存片区中的片区标注位信息匹配时,根据所述内存标注位信息从所述特定高速缓存片区中查询获得对应的特定高速缓存通道;
根据所述特定物理内存地址、所述特定高速缓存通道的信息生成所述高速缓存物理地址映射关系。
进一步的,方法还包括:
根据所述内存分组映射关系获取当前程序对应的所述当前分组内存库,并获取当前分组内存库对应的当前分组内存库内存页面物理地址;
获取所述当前分组内存库内存页面物理地址对应的当前内存标注位信息,根据所述当前内存标注位信息选取特定的当前内存页面;
将所述当前内存页面对应的动态随机存取内存页面分配给所述当前程序的写频繁数据页;并将所述当前内存页面对应的非易失性内存页面分配给所述当前程序的读频繁数据页。
进一步的,生成内存分组映射关系,具体包括:
将各个内存程序的程序ID信息与所有分组内存库的内存总组数分别进行取余计算,将取余计算结果作为各个内存程序可以访问的分组内存库组号,并将取余计算结果相同的内存程序分为一组。
进一步的,按照预设冷热数据页迁移策略进行数据迁移,具体包括:
当所述写热度页面迁移标志信息、所述访问热度页面迁移标志信息均置位时,若所述当前访问内存页不属于动态随机存取存储区、且所述当前访问内存页对应的内存地址特定位不符合当前运行程序的特定值时,则获取所述当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到所述更新内存页。
进一步的,按照预设冷热数据页迁移策略进行数据迁移,具体包括:
当所述写热度页面迁移标志信息置位、所述访问热度页面迁移标志信息未置位时,若所述当前访问内存页不属于动态随机存取存储区,则获取所述当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到所述更新内存页。
进一步的,按照预设冷热数据页迁移策略进行数据迁移,具体包括:
当所述写热度页面迁移标志信息未置位、而所述访问热度页面迁移标志信息置位时,若所述当前访问内存页分配的最低内存读写属性等级大于预设最低内存读写属性等级阈值,则判断所述当前访问内存页是否属于动态随机存取存储区、以及所述当前访问内存页对应的内存地址特定位是否符合程序分组的特定值;
当至少其中之一不符合时,则获取所述当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到所述更新内存页。
进一步的,按照预设冷热数据页迁移策略进行数据迁移,具体包括:
当所述写热度页面迁移标志信息未置位、而所述访问热度页面迁移标志信息置位时,若所述当前访问内存页分配的最高内存读写属性等级大于预设最高内存读写属性等级阈值,则判断所述当前访问内存页是否属于动态随机存取存储区、以及所述当前访问内存页对应的内存地址特定位是否符合程序分组的特定值;
当至少其中之一不符合时,则获取所述当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到所述更新内存页。
进一步的,按照预设冷热数据页迁移策略进行数据迁移,具体包括:
当所述写热度页面迁移标志信息、所述访问热度页面迁移标志信息均未置位时,保持所述当前访问内存页不变。
进一步的,在获取当前访问内存页的写热度值以及访问热度值之前,所述方法还包括:
根据每个分组内存库的信息设置对应的高频写访问页链表、高频访问内存链表。
进一步的,将所述写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息,具体包括:
若所述写热度值大于所述指定写热度阈值、且所述当前访问内存页位于对应的分组内存库的高频写访问页链表中,则清空写热度页面迁移标志、生成所述写热度页面迁移标志信息。
进一步的,将所述写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息,具体包括:
若所述写热度值大于所述指定写热度阈值、且所述当前访问内存页不在对应的分组内存库的高频写访问页链表中,则判断高频写访问页链表成员数量是否达到指定阈值;
若未达到所述指定阈值,则对写热度页面迁移标志进行置位、生成所述写热度页面迁移标志信息;
若已达到所述指定阈值,则将高频写访问页链表中所有成员的写访问热度值、所述当前访问内存页对应的所述写热度值进行比较;当所述写热度值小于所述写访问热度值时,则清空写热度页面迁移标志、生成所述写热度页面迁移标志信息;当所述写热度值不小于所述写访问热度值时,则对写热度页面迁移标志进行置位、生成所述写热度页面迁移标志信息。
进一步的,将所述写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息,具体包括:
若所述写热度值不超过所述指定写热度阈值,则清空写热度页面迁移标志、生成所述写热度页面迁移标志信息。
进一步的,获取当前访问内存页的写热度值以及访问热度值,具体包括:
所述当前访问内存页的写热度值通过如下公式计算得到:Hotwrite=a11f0+ a12f1+a13f2+ a14f3+ a15f4,其中:
f0为写访问统计器中M次中该页面写访问请求比例;
f1为写访问统计器中最近N次中该页面写访问请求比例;
f2为写访问统计器中最近P次中该页面写访问请求比例;
f3为写访问统计器中最近Q次中该页面写访问请求比例;
f4为写访问统计器中最近R次中该页面写访问请求比例;
a11、a12、a13、a14、a15为权重参数, a11+a12+a13+a14+a15=1;
所述当前访问内存页的读访问热度值通过如下公式计算得到:Hotread=a21f’0+a22f’1+ a23f’2+ a24f’3+ a25f’4,其中:
f’0为读访问统计器中M次中该页面读访问请求比例;
f’1为读访问统计器中最近N次中该页面读访问请求比例;
f’2为读访问统计器中最近P次中该页面读访问请求比例;
f’3为读访问统计器中最近Q次中该页面读访问请求比例;
f’4为读访问统计器中最近R次中该页面读访问请求比例;
a21、a22、a23、a24、a25为权重参数,且a21+a22+a23+a24+a25=1;
所述当前访问内存页的访问热度值通过如下公式计算得到:Hotaccess= Hotread+Hotwrite。
本发明还提供一种混合内存系统的管理装置,用于实现前述所述的混合内存系统的管理方法;所述管理装置包括:
热度值获取单元,用于:获取当前访问内存页的写热度值以及访问热度值;
写热度页面迁移标志信息生成单元,用于:将写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息;
访问热度页面迁移标志信息生成单元,用于:将访问热度值与指定访问热度阈值进行比较,并生成访问热度页面迁移标志信息;
分组内存库划分单元,用于:将所述混合内存系统中的混合内存进行分组,根据所有分组内存库的内存页信息生成所述混合内存对应的内存页管理信息;
数据迁移单元,用于:根据写热度页面迁移标志信息、访问热度页面迁移标志信息、以及当前访问内存页对应的当前内存页管理信息,判断当前访问内存页是否为热数据页,并按照预设冷热数据页迁移策略进行数据迁移。
本发明又提供一种计算机设备,包括存储器、处理器及计算机程序,所述计算机程序存储在所述存储器上并可在所述处理器上运行,所述处理器执行所述计算机程序时实现前述所述的混合内存系统的管理方法的步骤。
本发明再提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现前述所述的混合内存系统的管理方法的步骤。
本发明另提供一种混合内存系统,包括混合内存;所述混合内存通过前述所述的混合内存系统的管理方法进行内存管理。
本发明的上述技术方案,相比现有技术具有以下技术效果:
本发明中,首先将混合内存进行划分、分成多个分组内存库,并按照DRAM-NVM的比例进行内存分组;
然后,每组混合内存按页进行管理,建立内存页管理信息表,用于记录每一个页的属性以及当前内存页分配出去的最低内存读写属性级别和最高内存读写属性级别;页的属性包括内存分组组号、NVM或DRAM类型、物理地址范围等信息;
接着,建立内存程序与内存分组之间的关联关系。每个内存程序仅使用其中一组或指定组的分组内存库,程序与其所使用的内存组号存在映射关系;从而,将混合内存进行分组,将程序访问的内存限制在某一个或若干个分组内存库上;
由此,可消除程序间的访问干扰,保证程序自身的行缓冲局部性;程序只能访问其对应的内存组、而不能越界访问其他程序的内存,从而来保证混合内存系统处于最优性能状态;
同时,通过冷热数据页判定与迁移方法,来预测内存热数据页以及进行内存迁移。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例一中混合内存系统的管理方法的流程示意图;
图2是本发明实际实施例中内存地址的各个标志位示意图;
图3是本发明实际实施例中内存地址的12-13位为特定物理地址与不同程序的对应示意图;
图4是本发明实际实施例中写访问统计器、读访问统计器的示意图;
图5是本发明实施例二中混合内存系统的管理装置的结构框图;
图6为本发明实施例二中计算机设备的内部结构图。
具体实施方式
现有技术中,为了充分发挥混合内存异构硬件优势,目前在混合内存的存储技术方面已经取得一定进展,例如:准确预测内存数据的访问特征,并根据访问特征将热点数据迁移到DRAM中、而冷数据则存储在大容量NVM中。
这些研究技术提出了一些管理策略,比如:运行时动态监测每个内存页的写操作、并将写密集型页从NVM迁移到DRAM,以减少写延迟;或者改进传统页面迁移算法、管理策略等机制,并依据页面的热度对页面分类,减少页面的迁移频次。
但是,CPU处理数据的速率要远比主存系统排出数据的速率高很多,由静态随机存储器构成的Cache响应速度大于主存,CPU先从Cache中读取数据,可以显著提高系统的性能。目前,大多数研究仅从混合内存本身进行提升性能,而没有从内存体系整体进行考虑,尤其是主存与Cache之间的联动性。由于内存虚实地址的任意映射,数据块在采用物理地址索引的Cache中的分布通常是不均匀的,这导致系统性能会产生很大的波动。
即,现有技术中,应用程序对内存的读写是动态变化的。在多核时代,由于多道程序并发执行,每道程序发出的访存请求会在Cache上产生竞争、导致Cache命中率降低,从而降低计算机整体性能;当多个程序的访存请求落在同一个Bank上时,将引发Bank上的访存冲突、导致行缓冲的命中率下降,进而造成访存性能的下降,也会影响系统的整体性能。
例如:Linux操作系统的内存管理机制采用了随机的物理页面分配机制,在出现“页缺失”时,从伙伴系统中随机取一个物理页面,通过操作系统在页表中建立虚实地址映射。这种不确定性,导致被频繁访问的页面可能会被随机地分配到同一个物理内存Bank(即内存库)中,造成Bank上的访存冲突。
与此同时,在片上Cache中也极有可能产生在Cache Set上的数据分布不均,引发较多的Cache缺失,也会影响系统的性能。
在多核处理器系统中,来自多个计算单元的访存请求会引发在内存系统上的冲突和互扰。
可见,当前针对DRAM-NVM混合内存管理架构的研究技术普遍注重主存架构、关注热页预测方法和页面调度问题,而忽视了主存与Cache之间相互影响的联动关系,未能从整体考虑、以进一步提高混合内存的性能。
为此,本发明提供一种混合内存系统的管理方法、管理装置、设备及介质,来解决上述问题。
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一:
如图1所示,本发明实施例提供一种混合内存系统的管理方法,
其中,管理方法包括:
获取当前访问内存页的写热度值以及访问热度值;
将写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息;
将访问热度值与指定访问热度阈值进行比较,并生成访问热度页面迁移标志信息;
将所述混合内存系统中的混合内存进行分组,根据所有分组内存库的内存页信息生成所述混合内存对应的内存页管理信息;
根据写热度页面迁移标志信息、访问热度页面迁移标志信息、以及当前访问内存页对应的当前内存页管理信息,判断当前访问内存页是否为热数据页,并按照预设冷热数据页迁移策略进行数据迁移。
其中,将所述混合内存系统中的混合内存进行分组,根据所有分组内存库的内存页信息生成所述混合内存对应的内存页管理信息,包括:
根据预设统一内存分组容量、预设统一内存分组内存比例,将混合内存系统中的混合内存划分成多个分组内存库、并对所有分组内存库进行编组;其中,每个分组内存库包括至少一个动态随机存取存储区以及至少一个非易失性存储区;预设统一内存分组内存比例为每个分组内存库中动态随机存取存储区、非易失性存储区两者的比例;
根据所有分组内存库的内存页信息生成混合内存对应的内存页管理信息表;其中,内存页管理信息表包括内存页属性信息,内存页属性信息包括分组内存库组号、最低内存读写属性级别以及最高内存读写属性级别;
获取系统中的各程序、以及各程序对应的指定分组内存库,根据每个内存程序的程序标定信息、每个内存程序对应的指定分组内存库的分组内存库组号生成内存分组映射关系。
在实际实施例中,上述混合内存系统的管理方法,首先将混合内存进行划分、分成多个分组内存库,并按照DRAM-NVM的比例进行内存分组;
然后,每组混合内存按页进行管理,建立内存页管理信息表,用于记录每一个页的属性以及当前内存页分配出去的最低内存读写属性级别和最高内存读写属性级别;页的属性包括内存分组组号、NVM或DRAM类型、物理地址范围等信息;
接着,建立内存程序与内存分组之间的关联关系。每个内存程序仅使用其中一组或指定组的分组内存库,程序与其所使用的内存组号存在映射关系;从而,将混合内存进行分组,将程序访问的内存限制在某一个或若干个分组内存库上;
由此,可消除程序间的访问干扰,保证程序自身的行缓冲局部性;程序只能访问其对应的内存组、而不能越界访问其他程序的内存,从而来保证混合内存系统处于最优性能状态;
同时,通过冷热数据页判定与迁移方法,来预测内存热数据页以及进行内存迁移。
在实际中,上述混合内存系统的管理方法,还可以充分考虑Cache联动效应,将DRAM-NVN内存进行分组,将程序访问的内存限制在某一个或若干个内存BANK组上;然后建立Cache与混合内存地址映射规则、确保不同程序组对应到不同的Cache组上;按内存分组实时预测混合内存系统的冷热数据页和页面迁移;由此,来保证混合内存系统的最优性能。
在一个优选的实施方式中,管理方法还包括:
获取当前内存程序对应的内存分配申请参数;其中,内存分配申请参数包括内存读写属性级别参数;
判断内存读写属性级别参数是否达到预设读写属性级别阈值;
若达到,根据第一内存分配原则将当前内存程序对应的指定分组内存库中的存储区分配给当前内存程序;其中,第一内存分配原则为:优先分配动态随机存取存储区、动态随机存取存储区不足时则分配非易失性存储区;
若未达到,根据第二内存分配原则将当前内存程序对应的指定分组内存库中的存储区分配给当前内存程序;其中,第二内存分配原则为:优先分配非易失性存储区、非易失性存储区不足时则分配写属性内存区。
在实际实施例中,应用程序中申请内存分配时,申请参数包括内存大小以及内存的读写属性级别。
操作系统根据内存读写属性级别从该程序所对应的物理内存组的DRAM和NVM中去分配。操作系统优先将DRAM分配给内存读写属性级别比较高的申请(内存读写属性级别大于等于5);若DRAM类型内存不足,则分配NVM类型内存;
操作系统优先将NVM分配给读写属性级别比较低的申请(内存读写属性级别小于5);若NVM类型内存不足,则分配写属性的内存。
在一个优选的实施方式中,对所有分组内存库进行编组,具体包括:
根据预设编址规则对所有分组内存库进行编址、分别生成各个分组内存库对应的分组内存库物理地址;
管理方法还包括高速缓存地址映射方法,其包括:
获取高速缓存器中各高速缓存片区的高速缓存索引位信息,对每个特定高速缓存索引位的高速缓存片区分配用于保存特定物理内存地址的热数据;
根据特定物理内存地址、每个高速缓存片区的片区标注信息生成高速缓存物理地址映射关系。
在一个优选的实施方式中,生成高速缓存物理地址映射关系具体包括:
根据特定物理内存地址中的内存索引位信息查询特定物理内存地址对应的特定高速缓存片区;其中,内存索引位信息与高速缓存片区编号一一匹配;
当特定物理内存地址中的内存标注位信息与特定高速缓存片区中的片区标注位信息匹配时,根据内存标注位信息从特定高速缓存片区中查询获得对应的特定高速缓存通道;
根据特定物理内存地址、特定高速缓存通道的信息生成高速缓存物理地址映射关系。
在实际实施例中,高速缓存地址映射方法用于将CPU缓存的LLC(即Last LevelCache,末级高速缓存)与混合内存构成地址映射关系。
由于Cache set的索引位是特定的位,操作系统将为应用程序优先分配特定的物理地址的页面、来保存热数据;前述已经提到应用程序分组的方法,特定的物理地址与该应用程序对应的内存分组组号相关联,以实现不同应用程序组之间的热数据在Cache上的隔离,降低多道程序在Cache上产生的访存竞争,提高Cache命中率,进而提高混合内存的整体性能。
Cache可以被细分为cache set,每个cache set大小相等,每个cache set可以包含一定数量的cache line,每个cache line会包含一定的数据量(可能是32byte、64byte或者128byte等)。假定一个内存地址有m位,那么中间的s位用来对应cache set的编号,用于指定去哪个cache set中去索引/寻找cache;低b位对应cache line中byte的偏移,高m-s-b位就是tag域段。
寻找一个内存地址对应的cache时,首先根据index域的值找到相应的cacheset,然后根据内存地址的tag域的值与cache里的tag的值匹配,然后找到相应的cacheline。
在一个优选的实施方式中,方法还包括:
根据内存分组映射关系获取当前程序对应的当前分组内存库,并获取当前分组内存库对应的当前分组内存库内存页面物理地址;
获取当前分组内存库内存页面物理地址对应的当前内存标注位信息,根据当前内存标注位信息选取特定的当前内存页面;
将当前内存页面对应的动态随机存取内存页面分配给当前程序的写频繁数据页;并将当前内存页面对应的非易失性内存页面分配给当前程序的读频繁数据页。
由此,可以控制不同属性的数据在不同内存类型之间的分布,同时消除多道程序之间在内存体系上的相互干扰,进而有效提高整个内存体系的性能。
在一个优选的实施方式中,生成内存分组映射关系,具体包括:
将各个内存程序的程序ID信息与所有分组内存库的内存总组数分别进行取余计算,将取余计算结果作为各个内存程序可以访问的分组内存库组号,并将取余计算结果相同的内存程序分为一组。
在实际实施例中,程序与其所使用的内存组号存在映射关系;该程序可以访问的内存组号为程序ID与内存总组数进行取余计算的结果;当然也可以采用其他算法或者手动分配。
即,应用程序分组的方法可以是程序ID与组数进行取余计算,计算结果相同的程序分为一组。
在一个优选的实施方式中,在获取当前访问内存页的写热度值以及访问热度值之前,方法还包括:
根据每个分组内存库的信息设置对应的高频写访问页链表、高频访问内存链表。
此外,在前述管理方法的基础上,上述混合内存系统的管理方法,还可根据混合内存的读、写访问次数,以及内存数据在cache中读、写访问次数,以及该页保存的最低内存读写属性等级和最高内存读写属性等级,以及内存访问序列等信息;动态预测数据页的热度、并根据需要在内存组内进行内存页迁移;
尽可能地使用少量DRAM吸收写操作,将热数据或者写密集数据页交换到DRAM中,将写频率最高的内存数据页迁移到特定地址DRAM中;而冷数据或者读密集数据页则存储在大容量的NVM中,将读频率最高的内存数据迁移到特定地址的NVM中;由此,进一步发挥混合内存和Cache的联动优势。
在一个优选的实施方式中,按照预设冷热数据页迁移策略进行数据迁移,具体包括:
当写热度页面迁移标志信息、访问热度页面迁移标志信息均置位时,若当前访问内存页不属于动态随机存取存储区、且当前访问内存页对应的内存地址特定位不符合当前运行程序的特定值时,则获取当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到更新内存页。
在一个优选的实施方式中,按照预设冷热数据页迁移策略进行数据迁移,具体包括:
当写热度页面迁移标志信息置位、访问热度页面迁移标志信息未置位时,若当前访问内存页不属于动态随机存取存储区,则获取当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到更新内存页。
在一个优选的实施方式中,按照预设冷热数据页迁移策略进行数据迁移,具体包括:
当写热度页面迁移标志信息未置位、而访问热度页面迁移标志信息置位时,若当前访问内存页分配的最低内存读写属性等级大于预设最低内存读写属性等级阈值,则判断当前访问内存页是否属于动态随机存取存储区、以及当前访问内存页对应的内存地址特定位是否符合程序分组的特定值;
当至少其中之一不符合时,则获取当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到更新内存页。
在一个优选的实施方式中,按照预设冷热数据页迁移策略进行数据迁移,具体包括:
当写热度页面迁移标志信息未置位、而访问热度页面迁移标志信息置位时,若当前访问内存页分配的最高内存读写属性等级大于预设最高内存读写属性等级阈值,则判断当前访问内存页是否属于动态随机存取存储区、以及当前访问内存页对应的内存地址特定位是否符合程序分组的特定值;
当至少其中之一不符合时,则获取当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到更新内存页。
在一个优选的实施方式中,按照预设冷热数据页迁移策略进行数据迁移,具体包括:
当写热度页面迁移标志信息、访问热度页面迁移标志信息均未置位时,保持当前访问内存页不变。
由此,在读取到写热度页面迁移标志信息、访问热度页面迁移标志信息之后,从内存管理信息中读取当前内存页的属性信息以及分配的最低内存读写属性级别和最高内存读写属性级别,然后一一进行判断、并实施相应的数据迁移处理。
在一个优选的实施方式中,将写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息,具体包括:
若写热度值大于指定写热度阈值、且当前访问内存页位于对应的分组内存库的高频写访问页链表中,则清空写热度页面迁移标志、生成写热度页面迁移标志信息。
在一个优选的实施方式中,将写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息,具体包括:
若写热度值大于指定写热度阈值、且当前访问内存页不在对应的分组内存库的高频写访问页链表中,则判断高频写访问页链表成员数量是否达到指定阈值;
若未达到指定阈值,则对写热度页面迁移标志进行置位、生成写热度页面迁移标志信息;
若已达到指定阈值,则将高频写访问页链表中所有成员的写访问热度值、当前访问内存页对应的写热度值进行比较;当写热度值小于写访问热度值时,则清空写热度页面迁移标志、生成写热度页面迁移标志信息;当写热度值不小于写访问热度值时,则对写热度页面迁移标志进行置位、生成写热度页面迁移标志信息。
在一个优选的实施方式中,将写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息,具体包括:
若写热度值不超过指定写热度阈值,则清空写热度页面迁移标志、生成写热度页面迁移标志信息。
在一个优选的实施方式中,获取当前访问内存页的写热度值以及访问热度值,具体包括:Hotwrite=a11f0+ a12f1+ a13f2+ a14f3+ a15f4,其中:
f0为写访问统计器中M次中该页面写访问请求比例;
f1为写访问统计器中最近N次中该页面写访问请求比例;
f2为写访问统计器中最近P次中该页面写访问请求比例;
f3为写访问统计器中最近Q次中该页面写访问请求比例;
f4为写访问统计器中最近R次中该页面写访问请求比例;
a11、a12、a13、a14、a15为权重参数, a11+a12+a13+a14+a15=1;
所述当前访问内存页的读访问热度值通过如下公式计算得到:Hotread=a21f’0+a22f’1+ a23f’2+ a24f’3+ a25f’4,其中:
f’0为读访问统计器中M次中该页面读访问请求比例;
f’1为读访问统计器中最近N次中该页面读访问请求比例;
f’2为读访问统计器中最近P次中该页面读访问请求比例;
f’3为读访问统计器中最近Q次中该页面读访问请求比例;
f’4为读访问统计器中最近R次中该页面读访问请求比例;
a21、a22、a23、a24、a25为权重参数,且a21+a22+a23+a24+a25=1;
当前访问内存页的访问热度值通过如下公式计算得到:Hotaccess= Hotread+Hotwrite。
例如:当前访问内存页的写热度值通过如下公式计算得到:Hotwrite=a11f100+a12f50+ a13f25+ a14f10+ a15f5,其中:f100为写访问统计器中100次中该页面写访问请求比例;
f50为写访问统计器中最近50次中该页面写访问请求比例;
f25为写访问统计器中最近25次中该页面写访问请求比例;
f10为写访问统计器中最近10次中该页面写访问请求比例;
f5为写访问统计器中最近5次中该页面写访问请求比例;
a11、a12、a13、a14、a15为权重参数,a11+a12+a13+a14+a15=1;
当前访问内存页的读访问热度值通过如下公式计算得到:Hotread=a21f’100+a22f’50+ a23f’25+ a24f’10+ a25f’5,其中:
f’100为读访问统计器中100次中该页面读访问请求比例;
f’50为读访问统计器中最近50次中该页面读访问请求比例;
f’25为读访问统计器中最近25次中该页面读访问请求比例;
f’10为读访问统计器中最近10次中该页面读访问请求比例;
f’5为读访问统计器中最近5次中该页面读访问请求比例;
a21、a22、a23、a24、a25为权重参数,a21+a22+a23+a24+a25=1;
当前访问内存页的访问热度值通过如下公式计算得到:Hotaccess= Hotread+Hotwrite。
由此,通过将写热度值与指定写热度阈值进行比较,可生成写热度页面迁移标志信息;
同样的,通过将访问热度值与指定访问热度阈值进行比较,可生成访问热度页面迁移标志信息。
综上,本发明实际实施例提供的混合内存系统的管理方法,针对基于水平架构的DRAM-NVM混合内存系统的性能优化问题,可以充分考虑内存与Cache之间的关联性;整体方法包括:DRAM-NVN内存分组的方法、Cache映射规则、内存申请分配方法以及按内存分组进行热数据页判定的方法和页面迁移方法等;
上述管理方法可以减少内存系统上的冲突和互扰,准确识别热数据并迁移到合理的内存Bank上,以保证混合内存系统的最优性能。
上述管理方法的具体实施流程如下:
第一阶段:实施DRAM-NVN内存分组的方法
首先,将DRAM-NVM混合内存按BANK进行划分,并按照DRAM-NVM的比例进行内存分组。
根据内存的硬件特性,将DRAM-NVM混合内存划分为多个BANK。
例如:8GB的内存,分为64个DRAM Bank(每个Bank 125MB)。对DRAM-NVM混合内存进行统一编址,用BANK信息表记录每一个内存BANK的编号、内存属性、起始地址和结束地址,内存BANK编号为1、2、3…n,内存属性为NVM或DRAM。
之后,按照混合内存DRAM-NVM的比例进行内存编组,每组拥有一个或多个DRAMBANK和一个或多个NVM BANK,每组内存的大小相同、其中DRAM与NVM的比例也相同。
例如:8G DRAM和32G NVM组成的混合内存,分为32组,每组包含2个DRAM BANK和8个NVM BANK。每组混合内存按照一定规律进行编址:第i组混合内存中的DRAM起始地址为(DRAM_BASE+i*BANK_SIZE*DRAM_BANK_NUM),大小为BANK_SIZE*DRAM_BANK_NUM;第i组混合内存中的NVM的起始地址为(NVM_BASE+i*BANK_SIZE*NVM_BANK_NUM),大小为BANK_SIZE*NVM_BANK_NUM;其中,DRAM_BASE为混合内存DRAM的起始地址,NVM_BASE为混合内存NVM的起始地址,BANK_SIZE为每一个BANK内存的大小,DRAM_BANK_NUM为每组混合内存中包含的DRAM BANK数量,NVM_BANK_NUM为每组混合内存中包含的NVM BANK数量。
然后,每组混合内存按页进行管理,建立内存页管理信息表,用于记录每一个页的属性以及当前内存页分配出去的最低内存读写属性级别和最高内存读写属性级别。页的属性包括内存分组组号、NVM或DRAM类型、物理地址范围等信息;内存读写属性级别设为8个级别,分别为1-8,级别越大、代表写操作越频繁。
接着,建立应用程序与内存分组之间的关联关系。每个应用程序仅使用其中一组或指定组的内存BANK,以便消除程序间的访问干扰,保证程序自身的行缓冲局部性。程序只能访问其对应的内存组、而不能越界访问其他程序的内存。
每组混合内存包含DRAM和NVM,程序与其所使用的内存组号存在映射关系;该程序可以访问的内存组号为程序ID与内存总组数进行取余计算的结果;当然也可以采用其他算法或者手动分配。
第二阶段:实施内存申请分配方法
然后,应用程序中申请内存分配时,申请参数包括内存大小以及内存的读写属性级别。
操作系统根据内存读写属性级别从该程序所对应的物理内存组的DRAM和NVM中去分配。操作系统优先将DRAM分配给内存读写属性级别比较高的申请(内存读写属性级别大于等于5);若DRAM类型内存不足,则分配NVM类型内存;
操作系统优先将NVM分配给读写属性级别比较低的申请(内存读写属性级别小于5);若NVM类型内存不足,则分配写属性的内存。
内存分配完成之后,更新内存页管理信息表对应的内存页属性信息,其包括该页分配的最高内存读写属性级别和最低内存读写属性级别。
第三阶段:建立Cache映射规则
然后,将CPU缓存的LLC(即Last Level Cache,末级高速缓存)与混合内存构成地址映射关系。由于Cache set的索引位是特定的位,操作系统将为应用程序优先分配特定的物理地址的页面、来保存热数据;前述已经提到应用程序分组的方法中,特定的物理地址与该应用程序对应的内存分组组号相关联,以实现不同应用程序组之间的热数据在Cache上的隔离,降低多道程序在Cache上产生的访存竞争,提高Cache命中率,进而提高混合内存的整体性能。
Cache可以被细分为cache set,每个cache set大小相等,每个cache set可以包含一定数量的cache line,每个cache line会包含一定的数据量(可能是32byte、64byte或者128byte等)。
如图2所示,假定一个内存地址有m位,那么中间的s位用来对应cache set的编号,用于指定去哪个cache set中去索引/寻找cache;低b位对应cache line中byte的偏移,高m-s-b位就是tag域段。
寻找一个内存地址对应的cache时,首先根据index域的值找到相应的cacheset,然后根据内存地址的tag域的值与cache里的tag的值匹配,然后找到相应的cacheline。
上述方法中,应用程序分组的方法可以是程序ID与组数进行取余计算,计算结果相同的程序分为一组。
例如:如图3所示,内存地址的12-18位作为Cache Set索引位;内存地址的第12位和第13位用来分组,共分为4组;将程序也分为4组;当程序申请内存时,优先在其对应的内存分组BANK中将12位至13位的物理地址为特定值的内存页面分配给该程序;
将12-13位物理地址为00的DRAM内存页面尽量分配给第一组程序的写频繁数据页,将12-13位地址为00的NVM内存页面尽量分配给第一组程序的读频繁数据页;
将12-13位地址为01的DRAM内存页面尽量分配给第二组程序的写频繁数据页,将12-13位地址为01的NVM内存页面尽量分配给第二组程序的读频繁数据页;
将12-13位地址为10的DRAM内存页面尽量分配给第三组程序的写频繁数据页,将12-13位地址为10的NVM内存页面尽量分配给第三组程序的读频繁数据页;
将12-13位地址为11的DRAM内存页面尽量分配给第四组程序的写频繁数据页,将12-13位地址为11的NVM内存页面尽量分配给第四组程序的读频繁数据页。
通过以上的方法可以控制不同属性的数据在不同内存类型之间的分布,同时消除多道程序之间在内存体系上的相互干扰,进而有效提高整个内存体系的性能。
第四阶段:实施按内存分组进行热数据页判定的方法和页面迁移方法
具体的,在前述管理方法的基础上,上述混合内存系统的管理方法还可根据混合内存的读、写访问次数,以及内存数据在cache中读、写访问次数,以及该页保存的最低内存读写属性等级和最高内存读写属性等级,以及内存访问序列等信息;动态预测数据页的热度、并根据需要在内存组内进行内存页迁移;
尽可能地使用少量DRAM吸收写操作,将热数据或者写密集数据页交换到DRAM中,将写频率最高的内存数据页迁移到特定地址DRAM中;而冷数据或者读密集数据页则存储在大容量的NVM中,将读频率最高的内存数据迁移到特定地址的NVM中;由此,进一步发挥混合内存和Cache的联动优势。
具体实施流程如下:
首先,如图4所示,为每个内存分组设置写访问统计器和读访问统计器;写访问统计器按照该组写访问的时间顺序记录最近发生的100次写请求访问,读访问统计器按照读访问时间顺序记录最近发生的100次读请求访问,其中写访问请求包括对该地址的cache的访问,读访问包括该地址的cache访问。
接着,为每个内存组设置高频写访问页链表和高频访问内存链表,链表用于分别记录页号、以及该页的当前写热度值和访问热度值。
针对当前访问内存页,计算当前访问内存页的写热度值、读热度值和访问热度值,存入内存页管理信息表中。
首先,内存页的写热度值可由如下计算公式计算得到:Hotwrite=a11f100+ a12f50+a13f25+ a14f10+ a15f5,其中:
f100为写访问统计器中100次中该页面写访问请求比例;
f50为写访问统计器中最近50次中该页面写访问请求比例;
f25为写访问统计器中最近25次中该页面写访问请求比例;
f10为写访问统计器中最近10次中该页面写访问请求比例;
f5为写访问统计器中最近5次中该页面写访问请求比例;
a11、a12、a13、a14、a15为权重参数,a11+a12+a13+a14+a15=1,这里取0.1、0.1、0.2、0.3、0.3。
其次,内存页的读访问热度值可由如下计算公式计算得到:Hotread=a21f’100+a22f’50+ a23f’25+ a24f’10+ a25f’5,其中:
f’100为读访问统计器中100次中该页面读访问请求比例;
f’50为读访问统计器中最近50次中该页面读访问请求比例;
f’25为读访问统计器中最近25次中该页面读访问请求比例;
f’10为读访问统计器中最近10次中该页面读访问请求比例;
f’5为读访问统计器中最近5次中该页面读访问请求比例;
a21、a22、a23、a24、a25为权重参数,a21+a22+a23+a24+a25=1,这里取0.1、0.1、0.2、0.3、0.3。
最终,内存页的访问热度值可由如下计算公式计算得到:Hotaccess= Hotread+Hotwrite,然后,将当前访问内存页的写热度值与指定阈值THwrite进行比较和处理。具体步骤如下:
步骤1)如果当前访问内存页的写热度值大于指定阈值THwrite且当前内存在所在组的高频写访问链表中,则更新该高频写访问页链表中该页的写热度值,清空页面迁移标志、Flagwrite;
步骤2)如果当前访问内存页的写热度值大于指定阈值THwrite且该内存不在该内存组的高频写访问页链表中:
若链表成员数量还未达到指定的限制,则对页面迁移标志Flagwrite进行置位,同时记录该内存页的页号作为迁入内存页号,迁出页面为空;
若链表成员已经达到指定限制数量,则计算高频写访问链表中所有成员的写访问热度值,然后进行比较;
如果该内存页的写热度值小于所有成员的写访问热度值,则清空面迁移标志Flagwrite;
否则将页面迁移标志Flagwrite置位,同时记录该内存页的页号作为迁入内存页号,最小写热度值的页面记录为迁出内存页面号。
步骤3)如果当前访问内存页的写热度值小于等于指定阈值THwrite,则清空Flagwrite,不作处理。
然后,将当前访问内存页的访问热度值与指定阈值THaccess进行比较和处理。具体如下:
步骤1)如果当前访问内存页的访问热度值大于指定阈值THaccess且该内存在其所在内存组的高频访问页链表中,则更新该高频访问页链表中该页的访问热度值,清空页面迁移标志Flagaccess;
步骤2)如果当前访问内存页的访问热度值大于指定阈值THaccess且该内存不在该内存组的高频访问页链表中:
若链表成员数量还未达到指定的限制,则对页面迁移标志Flagaccess进行置位,同时记录该内存页的页号作为迁入内存页号,迁出页面为空;
若链表成员已经达到指定限制数量,则计算高频访问链表中所有成员的访问热度值,然后进行比较;
如果该内存页的访问热度值小于所有成员的访问热度值,则清空页面迁移标志Flagaccess;
否则将页面迁移标志Flagaccess置位,同时记录该内存页的页号作为迁入内存页号,最小访问热度值的页面记录为迁出内存页面号。
步骤3)如果当前访问内存页的访问热度值小于指定阈值THaccess,则清空页面迁移标志Flagaccess,不作处理。
接着,根据Flagwrite、Flagaccess和当前内存页的管理信息,判断当前页是否为热页以及迁移策略。
具体的,读取Flagwrite和Flagaccess的状态,从内存管理信息中读取当前内存页的属性信息以及分配的最低内存读写属性级别和最高内存读写属性级别,然后进行以下判断:
判断1:当Flagwrite、Flagaccess都置位时,如果该内存页不属于DRAM、且该内存地址的特定位不符合程序分组的特定值,则从该内存分组DRAM上寻找内存地址符合程序分组要求的内存页,将数据迁移到该页,然后完成虚实地址重映射的工作;将内存页面信息变化更新到内存管理信息中。
同时将新的页面信息更新到高频写访问列表和高频访问链表中,更新读访问统计器和写访问统计器;否则,不予处理。
判断2:当Flagwrite置位,Flagaccess没有置位时,如果该内存页不属于DRAM,则从该内存分组的DRAM上寻找内存页,将数据迁移到该页,然后完成虚实地址重映射的工作;将内存页面信息变化更新到内存管理信息中。
同时将新的页面信息更新到高频写访问列表,更新读访问统计器和写访问统计器;否则,不予处理。
判断3:当Flagwrite未置位、Flagaccess置位时,如果该页内存分配的最低内存读写属性等级大于4,则判断该内存页是否属于DRAM、且该内存地址的特定位是否符合程序分组的特定值;
如果都是则不处理;
否则从该内存分组DRAM上寻找内存地址符合程序分组要求的内存页,将数据迁移到该页,然后完成虚实地址重映射的工作,然后将内存页面信息变化更新到内存管理信息中;同时将新的页面信息更新到高频写访问列表和高频访问链表中,更新读访问统计器和写访问统计器。
如果该页内存分配的最高内存读写属性等级小于5,则判断该内存页是否属于NVM、且该内存地址的特定位是否符合程序分组的特定值;
如果都是则不处理;
否则从该内存分组DRAM上寻找内存地址符合程序分组要求的内存页,将数据迁移到该页,然后完成虚实地址重映射的工作,然后将内存页面信息变化更新到内存管理信息中,将新的页面信息更新到高频写访问列表和高频访问链表中,更新读访问统计器和写访问统计器。
其余情况,则不处理。
判断4:当Flagwrite、Flagwrite都未置位时,不予处理。
综上,上述混合内存系统的管理方法,整体方法包括:DRAM-NVN内存分组的方法、Cache映射规则、内存申请分配方法以及按内存分组进行热数据页判定的方法和页面迁移方法等;
整体管理方法可针对基于水平架构的DRAM-NVM混合内存系统的性能优化问题,充分考虑内存与Cache之间的关联性;
从而,可以减少内存系统上的冲突和互扰,准确识别热数据并迁移到合理的内存Bank上,以保证混合内存系统的最优性能。
需要注意的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
实施例二:
如图5所示,本发明实施例还提供一种混合内存系统的管理装置,用于实现前述的混合内存系统的管理方法;其包括:
热度值获取单元,用于:获取当前访问内存页的写热度值以及访问热度值;
写热度页面迁移标志信息生成单元,用于:将写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息;
访问热度页面迁移标志信息生成单元,用于:将访问热度值与指定访问热度阈值进行比较,并生成访问热度页面迁移标志信息;
混合内存分组单元,用于:将所述混合内存系统中的混合内存进行分组,根据所有分组内存库的内存页信息生成所述混合内存对应的内存页管理信息;数据迁移单元,用于:根据写热度页面迁移标志信息、访问热度页面迁移标志信息、以及当前访问内存页对应的当前内存页管理信息,判断当前访问内存页是否为热数据页,并按照预设冷热数据页迁移策略进行数据迁移。
在一个优选的实施方式中,混合内存分组单元包括:
分组内存库划分单元,用于:根据预设统一内存分组容量、预设统一内存分组内存比例,将混合内存系统中的混合内存划分成多个分组内存库、并对所有分组内存库进行编组;其中,每个分组内存库包括至少一个动态随机存取存储区以及至少一个非易失性存储区;预设统一内存分组内存比例为每个分组内存库中动态随机存取存储区、非易失性存储区两者的比例;
内存页管理信息表生成单元,用于:根据所有分组内存库的内存页信息生成混合内存对应的内存页管理信息表;其中,内存页管理信息表包括内存页属性信息,内存页属性信息包括分组内存库组号、最低内存读写属性级别以及最高内存读写属性级别;
内存分组映射关系生成单元,用于:获取系统中的各程序、以及各程序对应的指定分组内存库,根据每个内存程序的程序标定信息、每个内存程序对应的指定分组内存库的分组内存库组号生成内存分组映射关系。
在一个优选的实施方式中,管理装置还包括内存申请分配单元,其用于:
获取当前内存程序对应的内存分配申请参数;其中,内存分配申请参数包括内存读写属性级别参数;
判断内存读写属性级别参数是否达到预设读写属性级别阈值;
若达到,根据第一内存分配原则将当前内存程序对应的指定分组内存库中的存储区分配给当前内存程序;其中,第一内存分配原则为:优先分配动态随机存取存储区、动态随机存取存储区不足时则分配非易失性存储区;
若未达到,根据第二内存分配原则将当前内存程序对应的指定分组内存库中的存储区分配给当前内存程序;其中,第二内存分配原则为:优先分配非易失性存储区、非易失性存储区不足时则分配写属性内存区。
在一个优选的实施方式中,分组内存库划分单元,还用于:
根据预设编址规则对所有分组内存库进行编址、分别生成各个分组内存库对应的分组内存库物理地址;
管理装置还包括高速缓存地址映射单元,其用于:
特定物理内存地址分配单元,用于:获取高速缓存器中各高速缓存片区的高速缓存索引位信息,对每个特定高速缓存索引位的高速缓存片区分配用于保存特定物理内存地址的热数据;
高速缓存物理地址映射关系生成单元,用于:根据特定物理内存地址、每个高速缓存片区的片区标注信息生成高速缓存物理地址映射关系。
在一个优选的实施方式中,高速缓存物理地址映射关系生成单元,还用于:
根据特定物理内存地址中的内存索引位信息查询特定物理内存地址对应的特定高速缓存片区;其中,内存索引位信息与高速缓存片区编号一一匹配;
当特定物理内存地址中的内存标注位信息与特定高速缓存片区中的片区标注位信息匹配时,根据内存标注位信息从特定高速缓存片区中查询获得对应的特定高速缓存通道;
根据特定物理内存地址、特定高速缓存通道的信息生成高速缓存物理地址映射关系。
在一个优选的实施方式中,内存申请分配单元还用于:
根据内存分组映射关系获取当前程序对应的当前分组内存库,并获取当前分组内存库对应的当前分组内存库内存页面物理地址;
获取当前分组内存库内存页面物理地址对应的当前内存标注位信息,根据当前内存标注位信息选取特定的当前内存页面;
将当前内存页面对应的动态随机存取内存页面分配给当前程序的写频繁数据页;并将当前内存页面对应的非易失性内存页面分配给当前程序的读频繁数据页。
在一个优选的实施方式中,内存分组映射关系生成单元还用于:
将各个内存程序的程序ID信息与所有分组内存库的内存总组数分别进行取余计算,将取余计算结果作为各个内存程序可以访问的分组内存库组号,并将取余计算结果相同的内存程序分为一组。
在一个优选的实施方式中,数据迁移单元还用于:
当写热度页面迁移标志信息、访问热度页面迁移标志信息均置位时,若当前访问内存页不属于动态随机存取存储区、且当前访问内存页对应的内存地址特定位不符合当前运行程序的特定值时,则获取当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到更新内存页。
在一个优选的实施方式中,数据迁移单元还用于:
当写热度页面迁移标志信息置位、访问热度页面迁移标志信息未置位时,若当前访问内存页不属于动态随机存取存储区,则获取当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到更新内存页。
在一个优选的实施方式中,数据迁移单元还用于:
当写热度页面迁移标志信息未置位、而访问热度页面迁移标志信息置位时,若当前访问内存页分配的最低内存读写属性等级大于预设最低内存读写属性等级阈值,则判断当前访问内存页是否属于动态随机存取存储区、以及当前访问内存页对应的内存地址特定位是否符合程序分组的特定值;
当至少其中之一不符合时,则获取当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到更新内存页。
在一个优选的实施方式中,数据迁移单元还用于:
当写热度页面迁移标志信息未置位、而访问热度页面迁移标志信息置位时,若当前访问内存页分配的最高内存读写属性等级大于预设最高内存读写属性等级阈值,则判断当前访问内存页是否属于动态随机存取存储区、以及当前访问内存页对应的内存地址特定位是否符合程序分组的特定值;
当至少其中之一不符合时,则获取当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到更新内存页。
在一个优选的实施方式中,数据迁移单元还用于:
当写热度页面迁移标志信息、访问热度页面迁移标志信息均未置位时,保持当前访问内存页不变。
在一个优选的实施方式中,热度值获取单元还用于:
根据每个分组内存库的信息设置对应的高频写访问页链表、高频访问内存链表。
在一个优选的实施方式中,写热度页面迁移标志信息生成单元还用于:
若写热度值大于指定写热度阈值、且当前访问内存页位于对应的分组内存库的高频写访问页链表中,则清空写热度页面迁移标志、生成写热度页面迁移标志信息。
在一个优选的实施方式中,写热度页面迁移标志信息生成单元还用于:
若写热度值大于指定写热度阈值、且当前访问内存页不在对应的分组内存库的高频写访问页链表中,则判断高频写访问页链表成员数量是否达到指定阈值;
若未达到指定阈值,则对写热度页面迁移标志进行置位、生成写热度页面迁移标志信息;
若已达到指定阈值,则将高频写访问页链表中所有成员的写访问热度值、当前访问内存页对应的写热度值进行比较;当写热度值小于写访问热度值时,则清空写热度页面迁移标志、生成写热度页面迁移标志信息;当写热度值不小于写访问热度值时,则对写热度页面迁移标志进行置位、生成写热度页面迁移标志信息。
在一个优选的实施方式中,写热度页面迁移标志信息生成单元还用于:
若写热度值不超过指定写热度阈值,则清空写热度页面迁移标志、生成写热度页面迁移标志信息。
在一个优选的实施方式中,热度值获取单元还用于:
当前访问内存页的写热度值通过如下公式计算得到:Hotwrite=a11f0+ a12f1+ a13f2+a14f3+ a15f4
其中:
f0为写访问统计器中M次中该页面写访问请求比例;
f1为写访问统计器中最近N次中该页面写访问请求比例;
f2为写访问统计器中最近P次中该页面写访问请求比例;
f3为写访问统计器中最近Q次中该页面写访问请求比例;
f4为写访问统计器中最近R次中该页面写访问请求比例;
a11、a12、a13、a14、a15为权重参数, a11+a12+a13+a14+a15=1;
所述当前访问内存页的读访问热度值通过如下公式计算得到:Hotread=a21f’0+a22f’1+ a23f’2+ a24f’3+ a25f’4
其中:
f’0为读访问统计器中M次中该页面读访问请求比例;
f’1为读访问统计器中最近N次中该页面读访问请求比例;
f’2为读访问统计器中最近P次中该页面读访问请求比例;
f’3为读访问统计器中最近Q次中该页面读访问请求比例;
f’4为读访问统计器中最近R次中该页面读访问请求比例;
a21、a22、a23、a24、a25为权重参数,且a21+a22+a23+a24+a25=1;
所述当前访问内存页的访问热度值通过如下公式计算得到:Hotaccess= Hotread+Hotwrite。
在实际实施例中,上述混合内存系统的管理装置可包括内存管理模块、内存分配模块、程序分组模块、内存访问统计模块、内存访问热度值计算模块以及内存判定迁移模块。
内存管理模块主要用于:将混合内存按页进行管理,将每页内存的信息、属性和内存分组关系记录下来;内存分配模块主要用于:程序的内存申请和分配,根据申请参数从混合内存选择合适的内存分配给程序;程序分组模块主要用于:将应用程序进行分组,降低不同应用程序在Cache中的冲突;内存访问统计模块主要用于:记录最近100次写访问请求和100次读访问请求的数据;内存访问热度值计算模块主要用于:根据算法计算当前页和高频访问页链表、高频写访问页链表中页的写访问热度值和访问热度值;内存判定迁移模块主要用于:根据前述算法判断当前页面是否需要迁移,以及执行迁移相关的动作。
关于上述装置的具体限定,可以参见上文中对于方法的限定,在此不再赘述。
上述装置中的各个模块,可全部或部分通过软件、硬件及其组合来实现。上述各模块可以以硬件形式内嵌于、或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
其中,如图6所示,上述计算机设备可以是终端,其包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
可以理解的是,上述图中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
上述实施例方法中的全部或部分流程的实现,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。
其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要注意的是,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其它等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (21)
1.一种混合内存系统的管理方法,其特征在于,包括:
获取当前访问内存页的写热度值以及访问热度值;
将所述写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息;
将所述访问热度值与指定访问热度阈值进行比较,并生成访问热度页面迁移标志信息;
将所述混合内存系统中的混合内存进行分组,根据所有分组内存库的内存页信息生成所述混合内存对应的内存页管理信息;
根据所述写热度页面迁移标志信息、所述访问热度页面迁移标志信息、以及所述当前访问内存页对应的当前内存页管理信息,判断所述当前访问内存页是否为热数据页,并按照预设冷热数据页迁移策略进行数据迁移。
2.根据权利要求1所述的混合内存系统的管理方法,其特征在于,将所述混合内存系统中的混合内存进行分组,根据所有分组内存库的内存页信息生成所述混合内存对应的内存页管理信息,包括:
根据预设统一内存分组容量、预设统一内存分组内存比例,将所述混合内存系统中的混合内存划分成多个分组内存库、并对所有分组内存库进行编组;其中,每个分组内存库包括至少一个动态随机存取存储区以及至少一个非易失性存储区;所述预设统一内存分组内存比例为每个分组内存库中动态随机存取存储区、非易失性存储区两者的比例;
根据所有分组内存库的内存页信息生成所述混合内存对应的内存页管理信息;其中,所述内存页管理信息包括内存页属性信息,所述内存页属性信息包括分组内存库组号、最低内存读写属性级别以及最高内存读写属性级别;
获取所述系统中的各程序、以及各程序对应的指定分组内存库,根据每个内存程序的程序标定信息、每个内存程序对应的指定分组内存库的分组内存库组号生成内存分组映射关系。
3.根据权利要求2所述的混合内存系统的管理方法,其特征在于,所述方法还包括:
获取当前内存程序对应的内存分配申请参数;其中,所述内存分配申请参数包括内存读写属性级别参数;
判断所述内存读写属性级别参数是否达到预设读写属性级别阈值;
若达到,根据第一内存分配原则将所述当前内存程序对应的指定分组内存库中的存储区分配给所述当前内存程序;其中,所述第一内存分配原则为:优先分配动态随机存取存储区、动态随机存取存储区不足时则分配非易失性存储区;
若未达到,根据第二内存分配原则将所述当前内存程序对应的指定分组内存库中的存储区分配给所述当前内存程序;其中,所述第二内存分配原则为:优先分配非易失性存储区、非易失性存储区不足时则分配写属性内存区。
4.根据权利要求2所述的混合内存系统的管理方法,其特征在于,对所有分组内存库进行编组,包括:
根据预设编址规则对所有分组内存库进行编址、分别生成各个分组内存库对应的分组内存库物理地址;
所述方法还包括:
获取高速缓存器中各高速缓存片区的高速缓存索引位信息,对每个特定高速缓存索引位的高速缓存片区分配用于保存特定物理内存地址的热数据;
根据所述特定物理内存地址、每个高速缓存片区的片区标注信息生成高速缓存物理地址映射关系。
5.根据权利要求4所述的混合内存系统的管理方法,其特征在于,生成高速缓存物理地址映射关系具体包括:
根据所述特定物理内存地址中的内存索引位信息查询所述特定物理内存地址对应的特定高速缓存片区;其中,所述内存索引位信息与高速缓存片区编号一一匹配;
当所述特定物理内存地址中的内存标注位信息与所述特定高速缓存片区中的片区标注位信息匹配时,根据所述内存标注位信息从所述特定高速缓存片区中查询获得对应的特定高速缓存通道;
根据所述特定物理内存地址、所述特定高速缓存通道的信息生成所述高速缓存物理地址映射关系。
6.根据权利要求3所述的混合内存系统的管理方法,其特征在于,所述方法还包括:
根据所述内存分组映射关系获取当前程序对应的当前分组内存库,并获取当前分组内存库对应的当前分组内存库内存页面物理地址;
获取所述当前分组内存库内存页面物理地址对应的当前内存标注位信息,根据所述当前内存标注位信息选取特定的当前内存页面;
将所述当前内存页面对应的动态随机存取内存页面分配给所述当前程序的写频繁数据页;并将所述当前内存页面对应的非易失性内存页面分配给所述当前程序的读频繁数据页。
7.根据权利要求2所述的混合内存系统的管理方法,其特征在于,生成内存分组映射关系,包括:
将各个内存程序的程序ID信息与所有分组内存库的内存总组数分别进行取余计算,将取余计算结果作为各个内存程序可以访问的分组内存库组号,并将取余计算结果相同的内存程序分为一组。
8.根据权利要求2所述的混合内存系统的管理方法,其特征在于,按照预设冷热数据页迁移策略进行数据迁移,包括:
当所述写热度页面迁移标志信息、所述访问热度页面迁移标志信息均置位时,若所述当前访问内存页不属于动态随机存取存储区、且所述当前访问内存页对应的内存地址特定位不符合当前运行程序的特定值时,则获取所述当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到所述更新内存页。
9.根据权利要求2所述的混合内存系统的管理方法,其特征在于,按照预设冷热数据页迁移策略进行数据迁移,包括:
当所述写热度页面迁移标志信息置位,所述访问热度页面迁移标志信息未置位时,若所述当前访问内存页不属于动态随机存取存储区,则获取所述当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到所述更新内存页。
10.根据权利要求2所述的混合内存系统的管理方法,其特征在于,按照预设冷热数据页迁移策略进行数据迁移,包括:
当所述写热度页面迁移标志信息未置位、而所述访问热度页面迁移标志信息置位时,若所述当前访问内存页分配的最低内存读写属性等级大于预设最低内存读写属性等级阈值,则判断所述当前访问内存页是否属于动态随机存取存储区、以及所述当前访问内存页对应的内存地址特定位是否符合程序分组的特定值;
当至少其中之一不符合时,则获取所述当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到所述更新内存页。
11.根据权利要求2所述的混合内存系统的管理方法,其特征在于,按照预设冷热数据页迁移策略进行数据迁移,包括:
当所述写热度页面迁移标志信息未置位、而所述访问热度页面迁移标志信息置位时,若所述当前访问内存页分配的最高内存读写属性等级大于预设最高内存读写属性等级阈值,则判断所述当前访问内存页是否属于动态随机存取存储区、以及所述当前访问内存页对应的内存地址特定位是否符合程序分组的特定值;
当至少其中之一不符合时,则获取所述当前访问内存页所在的分组内存库的动态随机存取存储区、并从中查询内存地址符合程序分组要求的更新内存页,将数据迁移到所述更新内存页。
12.根据权利要求1所述的混合内存系统的管理方法,其特征在于,按照预设冷热数据页迁移策略进行数据迁移,包括:
当所述写热度页面迁移标志信息、所述访问热度页面迁移标志信息均未置位时,保持所述当前访问内存页不变。
13.根据权利要求1所述的混合内存系统的管理方法,其特征在于,在获取当前访问内存页的写热度值以及访问热度值之前,所述方法还包括:
根据每个分组内存库的信息设置对应的高频写访问页链表、高频访问内存链表。
14.根据权利要求13所述的混合内存系统的管理方法,其特征在于,将所述写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息,包括:
若所述写热度值大于所述指定写热度阈值、且所述当前访问内存页位于对应的分组内存库的高频写访问页链表中,则清空写热度页面迁移标志、生成所述写热度页面迁移标志信息。
15.根据权利要求13所述的混合内存系统的管理方法,其特征在于,将所述写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息,包括:
若所述写热度值大于所述指定写热度阈值、且所述当前访问内存页不在对应的分组内存库的高频写访问页链表中,则判断高频写访问页链表成员数量是否达到指定阈值;
若未达到所述指定阈值,则对写热度页面迁移标志进行置位、生成所述写热度页面迁移标志信息;
若已达到所述指定阈值,则将高频写访问页链表中所有成员的写访问热度值、所述当前访问内存页对应的所述写热度值进行比较;当所述写热度值小于所述写访问热度值时,则清空写热度页面迁移标志、生成所述写热度页面迁移标志信息;当所述写热度值不小于所述写访问热度值时,则对写热度页面迁移标志进行置位、生成所述写热度页面迁移标志信息。
16.根据权利要求13所述的混合内存系统的管理方法,其特征在于,将所述写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息,包括:
若所述写热度值不超过所述指定写热度阈值,则清空写热度页面迁移标志、生成所述写热度页面迁移标志信息。
17.根据权利要求1所述的混合内存系统的管理方法,其特征在于,获取当前访问内存页的写热度值以及访问热度值,包括:
所述当前访问内存页的写热度值通过如下公式计算得到:
Hotwrite=a11f0+ a12f1+ a13f2+ a14f3+ a15f4
其中:
f0为写访问统计器中M次中该页面写访问请求比例;
f1为写访问统计器中最近N次中该页面写访问请求比例;
f2为写访问统计器中最近P次中该页面写访问请求比例;
f3为写访问统计器中最近Q次中该页面写访问请求比例;
f4为写访问统计器中最近R次中该页面写访问请求比例;
a11、a12、a13、a14、a15为权重参数,a11+a12+a13+a14+a15=1;
所述当前访问内存页的读访问热度值通过如下公式计算得到:Hotread=a21f’0+ a22f’1+a23f’2+ a24f’3+ a25f’4,其中:
f’0为读访问统计器中M次中该页面读访问请求比例;
f’1为读访问统计器中最近N次中该页面读访问请求比例;
f’2为读访问统计器中最近P次中该页面读访问请求比例;
f’3为读访问统计器中最近Q次中该页面读访问请求比例;
f’4为读访问统计器中最近R次中该页面读访问请求比例;
a21、a22、a23、a24、a25为权重参数,且a21+a22+a23+a24+a25=1;
所述当前访问内存页的访问热度值通过如下公式计算得到:Hotaccess= Hotread+Hotwrite。
18.一种混合内存系统的管理装置,其特征在于,用于实现如权利要求1-17任一项所述的混合内存系统的管理方法;所述管理装置包括:
热度值获取单元,用于:获取当前访问内存页的写热度值以及访问热度值;
写热度页面迁移标志信息生成单元,用于:将写热度值与指定写热度阈值进行比较,并生成写热度页面迁移标志信息;
访问热度页面迁移标志信息生成单元,用于:将访问热度值与指定访问热度阈值进行比较,并生成访问热度页面迁移标志信息;
混合内存分组单元,用于:将所述混合内存系统中的混合内存进行分组,根据所有分组内存库的内存页信息生成所述混合内存对应的内存页管理信息;
数据迁移单元,用于:根据写热度页面迁移标志信息、访问热度页面迁移标志信息、以及当前访问内存页对应的当前内存页管理信息,判断当前访问内存页是否为热数据页,并按照预设冷热数据页迁移策略进行数据迁移。
19.一种计算机设备,包括存储器、处理器及计算机程序,所述计算机程序存储在所述存储器上并可在所述处理器上运行,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-17中任一项所述的混合内存系统的管理方法的步骤。
20.一种计算机可读存储介质,其存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-17中任一项所述的混合内存系统的管理方法的步骤。
21.一种混合内存系统,其特征在于,包括混合内存;所述混合内存通过如权利要求1-17任一项所述的混合内存系统的管理方法进行内存管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311511069.6A CN117234432B (zh) | 2023-11-14 | 2023-11-14 | 一种混合内存系统的管理方法、管理装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311511069.6A CN117234432B (zh) | 2023-11-14 | 2023-11-14 | 一种混合内存系统的管理方法、管理装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117234432A true CN117234432A (zh) | 2023-12-15 |
CN117234432B CN117234432B (zh) | 2024-02-23 |
Family
ID=89097021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311511069.6A Active CN117234432B (zh) | 2023-11-14 | 2023-11-14 | 一种混合内存系统的管理方法、管理装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117234432B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118051189A (zh) * | 2024-04-15 | 2024-05-17 | 阿里云计算有限公司 | 内存访存的优化方法、装置、设备、介质及程序产品 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346284A (zh) * | 2013-08-02 | 2015-02-11 | 华为技术有限公司 | 一种内存管理方法及内存管理设备 |
CN104881369A (zh) * | 2015-05-11 | 2015-09-02 | 中国人民解放军国防科学技术大学 | 面向混合存储系统的低内存开销热点数据识别方法 |
CN105786725A (zh) * | 2014-12-25 | 2016-07-20 | 研祥智能科技股份有限公司 | 基于异构混合内存的内存管理方法和系统 |
US20160378655A1 (en) * | 2015-06-26 | 2016-12-29 | Advanced Micro Devices, Inc. | Hot page selection in multi-level memory hierarchies |
CN107193646A (zh) * | 2017-05-24 | 2017-09-22 | 中国人民解放军理工大学 | 一种基于混合主存架构的高效动态页面调度方法 |
US20170277640A1 (en) * | 2016-03-22 | 2017-09-28 | Huazhong University Of Science And Technology | Dram/nvm hierarchical heterogeneous memory access method and system with software-hardware cooperative management |
CN108804350A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种内存访问方法及计算机系统 |
CN109901800A (zh) * | 2019-03-14 | 2019-06-18 | 重庆大学 | 一种混合内存系统及其操作方法 |
CN109960471A (zh) * | 2019-03-29 | 2019-07-02 | 深圳大学 | 数据存储方法、装置、设备以及存储介质 |
CN110532200A (zh) * | 2019-08-26 | 2019-12-03 | 北京大学深圳研究生院 | 一种基于混合内存架构的内存系统 |
CN111984188A (zh) * | 2020-06-30 | 2020-11-24 | 重庆大学 | 混合内存数据的管理方法、装置及存储介质 |
CN112015669A (zh) * | 2019-05-31 | 2020-12-01 | 华为技术有限公司 | 一种混合内存管理方法及设备 |
CN112148486A (zh) * | 2020-09-17 | 2020-12-29 | 重庆大学 | 内存页面管理方法、装置、设备及可读存储介质 |
CN112181870A (zh) * | 2020-09-17 | 2021-01-05 | 重庆大学 | 内存页面管理方法、装置、设备及可读存储介质 |
CN115905049A (zh) * | 2022-12-29 | 2023-04-04 | 天翼云科技有限公司 | 一种基于傲腾内存的冷热内存分级迁移方法 |
CN116578409A (zh) * | 2023-03-31 | 2023-08-11 | 上海交通大学 | 内存热页识别与迁移的方法、系统及介质 |
CN117056087A (zh) * | 2023-10-11 | 2023-11-14 | 深圳云天畅想信息科技有限公司 | 云数据中心混合内存优化方法、计算机装置及存储介质 |
-
2023
- 2023-11-14 CN CN202311511069.6A patent/CN117234432B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346284A (zh) * | 2013-08-02 | 2015-02-11 | 华为技术有限公司 | 一种内存管理方法及内存管理设备 |
CN105786725A (zh) * | 2014-12-25 | 2016-07-20 | 研祥智能科技股份有限公司 | 基于异构混合内存的内存管理方法和系统 |
CN104881369A (zh) * | 2015-05-11 | 2015-09-02 | 中国人民解放军国防科学技术大学 | 面向混合存储系统的低内存开销热点数据识别方法 |
US20160378655A1 (en) * | 2015-06-26 | 2016-12-29 | Advanced Micro Devices, Inc. | Hot page selection in multi-level memory hierarchies |
US20170277640A1 (en) * | 2016-03-22 | 2017-09-28 | Huazhong University Of Science And Technology | Dram/nvm hierarchical heterogeneous memory access method and system with software-hardware cooperative management |
CN108804350A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种内存访问方法及计算机系统 |
CN107193646A (zh) * | 2017-05-24 | 2017-09-22 | 中国人民解放军理工大学 | 一种基于混合主存架构的高效动态页面调度方法 |
CN109901800A (zh) * | 2019-03-14 | 2019-06-18 | 重庆大学 | 一种混合内存系统及其操作方法 |
CN109960471A (zh) * | 2019-03-29 | 2019-07-02 | 深圳大学 | 数据存储方法、装置、设备以及存储介质 |
CN112015669A (zh) * | 2019-05-31 | 2020-12-01 | 华为技术有限公司 | 一种混合内存管理方法及设备 |
CN110532200A (zh) * | 2019-08-26 | 2019-12-03 | 北京大学深圳研究生院 | 一种基于混合内存架构的内存系统 |
CN111984188A (zh) * | 2020-06-30 | 2020-11-24 | 重庆大学 | 混合内存数据的管理方法、装置及存储介质 |
CN112148486A (zh) * | 2020-09-17 | 2020-12-29 | 重庆大学 | 内存页面管理方法、装置、设备及可读存储介质 |
CN112181870A (zh) * | 2020-09-17 | 2021-01-05 | 重庆大学 | 内存页面管理方法、装置、设备及可读存储介质 |
CN115905049A (zh) * | 2022-12-29 | 2023-04-04 | 天翼云科技有限公司 | 一种基于傲腾内存的冷热内存分级迁移方法 |
CN116578409A (zh) * | 2023-03-31 | 2023-08-11 | 上海交通大学 | 内存热页识别与迁移的方法、系统及介质 |
CN117056087A (zh) * | 2023-10-11 | 2023-11-14 | 深圳云天畅想信息科技有限公司 | 云数据中心混合内存优化方法、计算机装置及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118051189A (zh) * | 2024-04-15 | 2024-05-17 | 阿里云计算有限公司 | 内存访存的优化方法、装置、设备、介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN117234432B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11093137B2 (en) | Memory system and method for controlling nonvolatile memory | |
US10379746B2 (en) | Information processing apparatus, storage device, and computer program product | |
US11416387B2 (en) | Memory system and method for controlling nonvolatile memory | |
CN105930282B (zh) | 一种用于nand flash的数据缓存方法 | |
US8261010B2 (en) | Methods for distributing log block associativity for real-time system and flash memory devices performing the same | |
US11797436B2 (en) | Memory system and method for controlling nonvolatile memory | |
US20160253259A1 (en) | Mixed cache management | |
CN108804350A (zh) | 一种内存访问方法及计算机系统 | |
CN117234432B (zh) | 一种混合内存系统的管理方法、管理装置、设备及介质 | |
CN109783398A (zh) | 一种基于相关感知页面级ftl固态硬盘性能优化方法 | |
CN111984188B (zh) | 混合内存数据的管理方法、装置及存储介质 | |
CN110888600B (zh) | 一种面向nand闪存的缓冲区管理方法 | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
US20230359380A1 (en) | Memory system and method for controlling nonvolatile memory | |
CN110795363A (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
KR20160121819A (ko) | 이종 메모리 기반 데이터 관리 장치 | |
CN110968527B (zh) | Ftl提供的缓存 | |
Liu et al. | Efficient wear leveling for PCM/DRAM-based hybrid memory | |
KR101353967B1 (ko) | 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법 | |
Kwon | Address translation layer for byte-addressable non-volatile memory-based solid state drives | |
KR20210106597A (ko) | Ssd를 위한 요구 기반 ftl 캐시 분리 방법 및 그 컴퓨팅 장치 | |
Gao et al. | A Novel Hybrid Address Mapping Strategy of NAND Flash |
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 |