CN104834608A - 一种异构内存环境下的缓存替换方法 - Google Patents

一种异构内存环境下的缓存替换方法 Download PDF

Info

Publication number
CN104834608A
CN104834608A CN201510239127.3A CN201510239127A CN104834608A CN 104834608 A CN104834608 A CN 104834608A CN 201510239127 A CN201510239127 A CN 201510239127A CN 104834608 A CN104834608 A CN 104834608A
Authority
CN
China
Prior art keywords
cache lines
dram
pcm
cache
hit
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
Application number
CN201510239127.3A
Other languages
English (en)
Other versions
CN104834608B (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of 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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201510239127.3A priority Critical patent/CN104834608B/zh
Publication of CN104834608A publication Critical patent/CN104834608A/zh
Application granted granted Critical
Publication of CN104834608B publication Critical patent/CN104834608B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种异构内存环境下的缓存替换方法,其特征在于,包括:在缓存行硬件结构中增加一位来源标志位,用于标记该缓存行数据是来源于DRAM还是PCM;在CPU中新增采样存储单元,用于记录程序访存行为,记录数据重用距离信息;还包括采样方法、等效位置计算方法和替换方法三个子方法,采样子方法用于对访问缓存的行为进行采样统计,等效位置计算子方法用于计算等效位置,替换子方法用于确定需要被替换出去的缓存行。本发明针对异构内存环境下程序的访存特性,对传统缓存替换策略进行了优化,实施本发明能减少因为缓存不命中而需要访问PCM内存的高昂时延代价,从而提升系统整体的访存性能。

Description

一种异构内存环境下的缓存替换方法
技术领域
本发明属于计算机科学技术领域,更具体地,涉及一种异构内存环境下的缓存替换方法。
背景技术
以动态随机存储器(DRAM)为代表的传统内存技术的发展近年来遇到了瓶颈。受限于制造工艺,在较低的成本上获得更大容量的DRAM内存变得越发困难;且随着容量的不断增大,DRAM内存的高能耗问题也日益凸显。新型非易失性存储(Non-Volatile Memory,简称NVM)技术的兴起与发展为打破传统DRAM内存这一系统性能与能耗瓶颈提供了契机。以相变存储器(Phase Change Memory,简称PCM)为代表的非易失性存储器件有着良好的可扩展性、比闪存(Flash Memory)更加接近DRAM的时延与带宽特性、非易失性、以及极低的静态功耗等一系列优良的特性。另一方面,它们同样也有着使用寿命短、写时延与功耗过高等一些尚未克服的缺陷。因此,尚不具备利用非易失性存储完全替代DRAM作为内存的技术条件。目前比较通行的做法是利用新型非易失性存储器件与传统DRAM构建异构内存,以期达到充分发挥两者自身优势同时避免各自缺陷这一目的。
设计精良、管理得当的高速缓存可以极大地弥补慢速内存与高速CPU之间的速度差异,使整个计算机系统获得近乎于高速缓存的访存性能。缓存替换算法的好坏直接影响着缓存的使用效率,进而可以影响系统的整体性能。以LRU及其衍生算法为代表的传统缓存替换算法在传统DRAM内存环境下取得了不错的性能效果,但是在异构内存环境下,缓存不命中代价(Miss Penalty)不一致,亦即DRAM以及PCM的访问时延不一致这一新的特性并没有在传统缓存替换算法中被充分考虑,这就提出了异构内存环境下的缓存使用效率提升问题。本发明旨在充分挖掘异构内存环境下的程序访存特性,将缓存不命中代价这一重要因素纳入缓存替换算法的考虑范畴,做出更加切合异构内存实际的缓存替换决策,从而提升系统的访存性能。
发明内容
本发明要解决的技术问题是:提供一种异构内存环境下的缓存替换方法,使得装配了新型异构内存的计算机系统更加有效地管理使用高速缓存,更具体地,在缓存替换时能充分利用缓存不命中时访问不同内存介质的时延代价不一致这一特性,做出更加合理的替换决策,从而提升系统的整体性能。
本发明提供了一种异构内存环境下的缓存替换方法,包括:在缓存行硬件结构中增加一位来源标志位,用于标记该缓存行数据是来源于DRAM还是PCM;在CPU中新增采样存储单元,统计数据重用距离信息;还包括采样方法、等效位置计算方法和替换方法三个子方法,采样子方法用于对访问缓存的行为进行采样统计,等效位置计算子方法用于计算等效位置,替换子方法用于确定需要被替换出去的缓存行。
来源标志位计为I,其置位方法是:当缓存不命中需要从内存读取数据时,根据缓存收到数据块与缓存发出读请求的时间差值tt的大小来判定收到的数据块是来自哪一种内存介质,若tt小于50纳秒,则判定收到的数据块来自DRAM,将数据块插入的缓存行的来源标志位置0;若tt不小于50纳秒,则判定收到的数据块来自PCM,将数据块插入的缓存行的来源标志位置1。
采样存储单元分DRAM、PCM两个区,其中DRAM区存储标志位为0的缓存行的标记位组,PCM区存储标志位为1的缓存行的标记位组;其中标记位组指的是64位地址中代表缓存行标记Tag的二进制位组;存储过程采用LRU替换算法,两个区都是组相连的,相联度都与LLC自身的相联度相同。所述采样存储单元还包含一张DRAM重用距离统计表和一张PCM重用距离统计表,DRAM重用距离统计表跟DRAM区对应,PCM重用距离统计表跟PCM区对应,大小均为LLC相联度加1行,均包含位置字段以及与其相对应的次数字段,分别用于记录DRAM、PCM两个CPU内部采样存储单元中的位置和命中对应位置上标记位组的次数。
采样子方法周期性执行,每次采样时,若持续时间太短则不足以获取充分的样本信息,若持续时间太长则会耗费过多的处理器资源,因而需要折中地确定采样的周期与每次采样的持续时间,本方法规定每0.5至5秒采样一次,每次采样持续时间为T,T等于5-15毫秒,持续时间约占采样周期的1%,详细步骤如下:
(1.1)将统计表DT和统计表PT的命中次数字段清零;
(1.2)每次采样,读入每次LLC访存信息,计算访问地址中的缓存组号N,对缓存组号N以采样组间隔数L为模,进行取模运算,判别运算结果是否为0,是则表明该访存行为需要采样,转(1.3);否则转子步骤(1.4);其中采样组间隔数L指的是需要采样的相邻缓存组之间的组号差,取值为128,对组号为0、128、256…的缓存组进行采样;
(1.3)判别该次访问LLC是否命中,是则转(1.5);否则转(1.7);
(1.4)判别采样时间是否大于T,是则转等效位置计算子方法;否则转(1.2)等待下一次LLC访存;
(1.5)将N/L的商作为需要访问的DRAM采样区或PCM采样区的组号,进行子步骤(1.6);
(1.6)判别标志位I是否为0,是则按LRU算法将该命中的缓存行标记位组插入DRAM采样区,更新统计表DT;否则按LRU算法将命中的缓存行标记位组插入PCM采样区,更新统计表PT;更新时,若命中某标记位组,则将对应的次数字段加1,若不命中,则将相联度+1下标对应的次数字段加1;
更新完成后,判别采样时间是否大于T,是则当次采样结束,转等效位置计算子方法;否则转步骤(1.2);
(1.7)判定收到的数据块是否来自DRAM,是则将标志位I赋值为0,否则将标志位I赋值为1,转步骤(1.6);
等效位置计算子方法在每次采样结束时执行,详细步骤如下:
(2.1)分别计算Pd(X)、Pp(X)、λd和λp
其中,Pd(X)、Pp(X)分别为DRAM重用距离概率分布和PCM重用距离概率分布,分别通过统计表DT和统计表PT每一个位置对应的命中次数字段除以命中次数字段总和求得;重用距离统计表的位置字段即代表重用距离;
λd和λp分别为访问DRAM缓存行次数占采样总次数的百分比和访问PCM缓存行次数占采样总次数的百分比;
(2.2)记LLC的相联度为assoc,缓存组中缓存行的位置下标为n,n=1代表MRU位置,n=assoc代表LRU位置,当n分别取{1,2,3,…,assoc-1}中的值时,根据Pd(X)、Pp(X)、λd、λp以及选定的n计算平均访存时间AMAT:
AMAT=λd×(Th+Td×(1-Hd))+λp×(Th+Tp×(1-Hp)),
式中,Th、Td、Tp分别为缓存的命中时延,DRAM的访问时延和PCM的访问时延,三个参数可查询硬件的技术手册获得;Hd和Hp分别为DRAM缓存行和PCM缓存行的命中率:
H d = Σ i = 1 assoc ( Σ j = i assoc α j , i × P d ( X = i ) ) ,
H p = Σ i = 1 assoc ( Σ j = i assoc β j , i × P p ( X = i ) ) ,
式中,αj,i为缓存组第j个位置上恰好为该组中第i个DRAM缓存行的概率,βj,i为缓存组第j个位置上恰好为该组中第i个PCM缓存行的概率;
若i=j=1,则αj,i=λd,βj,i=λp
若j<i或i<1,则αj,i=0,βj,i=0;
若j≤n+1,则
&alpha; j , i = &alpha; j - 1 , i &times; &lambda; p &times; &Sigma; k = j - i assoc + 1 P p ( X = k ) + &alpha; j - 1 , i - 1 &times; &lambda; d &times; &Sigma; k = i assoc + 1 P d ( X = k ) 1 - &lambda; d &times; &Sigma; k = 1 i - 1 P d ( X = k ) - &lambda; p &times; &Sigma; k = 1 j - i P p ( X = k ) ,
&beta; j , i = &beta; j - 1 , i &times; &lambda; d &times; &Sigma; k = j - i assoc + 1 P d ( X = k ) + &beta; j - 1 , i - 1 &times; &lambda; p &times; &Sigma; k = i assoc + 1 P p ( X = k ) 1 - &lambda; p &times; &Sigma; k = 1 i - 1 P p ( X = k ) - &lambda; d &times; &Sigma; k = 1 j - i P d ( X = k ) ;
若j>n+1,则αj,i=0,βj,i=βn+1,i-j+n+1
(2.3)找出assoc-1个平均访存时间中的最小值,其对应的缓存行下标n所指的位置就是所求等效位置;
替换子方法详细步骤如下:
(3.1)在缓存中查找所要访问的数据,若命中,则转子步骤(3.2);若未命中,转子步骤(3.3);
(3.2)将命中缓存行在缓存组中由当前位置移至MRU位置,转子步骤(3.7);
(3.3)判别等效位置是否已初始化,是则转子步骤(3.4);否则清除LRU缓存行,转子步骤(3.6);
(3.4)判别缓存组LRU缓存行的来源标志位是否为0,是则清除该缓存行,转子步骤(3.6);否则转子步骤(3.5);
(3.5)由次LRU位置向MRU位置方向依次检查每一个缓存行,判别是否在抵达等效位置之前发现来源标志位为0的缓存行,是则清除该缓存行并停止检查,转子步骤(3.6);否则清除LRU缓存行,转子步骤(3.6);
(3.6)新数据插入MRU位置,转子步骤(3.7);
(3.7)结束。
本发明所述缓存替换方法中的数据重用距离指的是两次连续访问同一数据之间访问的不同数据的数量。
本发明所述缓存替换方法中的等效位置指的是LRU缓存组中的一个位置,在这个位置上的DRAM缓存行和LRU位置上的PCM缓存行具有相同的替换优先级,亦即该位置到LRU位置之间的DRAM缓存行比LRU位置上的PCM缓存行优先替换。
本发明所述缓存替换方法中的MRU位置指的是LRU算法中最近刚被使用的缓存行在LRU队列中所处的位置。
本发明所述的缓存替换方法,使得计算机系统在新型异构内存环境下管理高速缓存时能够更加全面地考虑新的内存结构的访存特性,由于PCM的访问时延是DRAM的数倍,因此本方法在缓存不命中需要替换缓存行时给予来自PCM的缓存行更多的留存机会,无形中增大了PCM缓存行在缓存中占有的空间大小,进而提升PCM缓存行的命中率,节约了因为缓存不命中而需要访问PCM内存的高昂时延代价,从而提升了系统整体的访存性能。
附图说明
图1为本发明缓存替换方法中的缓存行结构图;
图2为本发明缓存替换方法中的采样映射关系图;
图3为本发明缓存替换方法中的重用距离统计表格式图;
图4为本发明缓存替换方法的总体步骤图;
图5为本发明缓存替换方法中的替换子方法工作流程图。
具体实施方式
下面结合附图及实施例对本发明进行详细说明。
实施例一:
本实施例记载了一种异构内存环境下的缓存替换方法。如图1所示,所述缓存替换方法包括:在缓存行硬件结构中增加一位来源标志位,用于标记该缓存行数据是来源于DRAM还是PCM;如图2所示,所述缓存替换方法还包括:在CPU中新增采样存储单元,统计数据重用距离信息;图3所示即为所述缓存替换方法中的重用距离统计表的格式;如图4所示,所述缓存替换方法还包括采样方法、等效位置计算方法和替换方法三个子方法,采样子方法用于对访问缓存的行为进行采样统计,等效位置计算子方法用于计算等效位置,替换子方法用于确定需要被替换出去的缓存行。
来源标志位计为I,其置位方法是:当缓存不命中需要从内存读取数据时,根据缓存收到数据块与缓存发出读请求的时间差值tt的大小来判定收到的数据块是来自哪一种内存介质,若tt小于50纳秒,则判定收到的数据块来自DRAM,将数据块插入的缓存行的来源标志位置0;若tt不小于50纳秒,则判定收到的数据块来自PCM,将数据块插入的缓存行的来源标志位置1。
采样存储单元分DRAM、PCM两个区,其中DRAM区存储标志位为0的缓存行的标记位组,PCM区存储标志位为1的缓存行的标记位组;其中标记位组指的是64位地址中代表缓存行标记Tag的二进制位组;存储过程采用LRU替换算法,两个区都是组相连的,相联度都与LLC自身的相联度相同。所述采样存储单元还包含一张DRAM重用距离统计表和一张PCM重用距离统计表,DRAM重用距离统计表跟DRAM区对应,PCM重用距离统计表跟PCM区对应,大小均为LLC相联度加1行,均包含位置字段以及与其相对应的次数字段,分别用于记录DRAM、PCM两个CPU内部采样存储单元中的位置和命中对应位置上标记位组的次数。
采样子方法周期性执行,每次采样时,若持续时间太短则不足以获取充分的样本信息,若持续时间太长则会耗费过多的处理器资源,因而需要折中地确定采样的周期与每次采样的持续时间,本实施例规定每隔1秒采样一次,每次采样持续时间为T,T等于10毫秒,持续时间占采样周期的1%,详细步骤如下:
(1.1)将统计表DT和统计表PT的命中次数字段清零;
(1.2)每次采样,读入每次LLC访存信息,计算访问地址中的缓存组号N,对缓存组号N以采样组间隔数L为模,进行取模运算,判别运算结果是否为0,是则表明该访存行为需要采样,转(1.3);否则转子步骤(1.4);其中采样组间隔数L指的是需要采样的相邻缓存组之间的组号差,取值为128,对组号为0、128、256…的缓存组进行采样;
(1.3)判别该次访问LLC是否命中,是则转(1.5);否则转(1.7);
(1.4)判别采样时间是否大于T,是则转等效位置计算子方法;否则转(1.2)等待下一次LLC访存;
(1.5)将N/L的商作为需要访问的DRAM采样区或PCM采样区的组号,进行子步骤(1.6);
(1.6)判别标志位I是否为0,是则按LRU算法将该命中的缓存行标记位组插入DRAM采样区,更新统计表DT;否则按LRU算法将命中的缓存行标记位组插入PCM采样区,更新统计表PT;更新时,若命中某标记位组,则将对应的次数字段加1,若不命中,则将相联度+1下标对应的次数字段加1;
更新完成后,判别采样时间是否大于T,是则当次采样结束,转等效位置计算子方法;否则转步骤(1.2);
(1.7)判定收到的数据块是否来自DRAM,是则将标志位I赋值为0,否则将标志位I赋值为1,转步骤(1.6);
等效位置计算子方法在每次采样结束时执行,详细步骤如下:
(2.1)分别计算Pd(X)、Pp(X)、λd和λp
其中,Pd(X)、Pp(X)分别为DRAM重用距离概率分布和PCM重用距离概率分布,分别通过统计表DT和统计表PT每一个位置对应的命中次数字段除以命中次数字段总和求得;重用距离统计表的位置字段即代表重用距离;
λd和λp分别为访问DRAM缓存行次数占采样总次数的百分比和访问PCM缓存行次数占采样总次数的百分比;
(2.2)记LLC的相联度为assoc,缓存组中缓存行的位置下标为n,n=1代表MRU位置,n=assoc代表LRU位置,当n分别取{1,2,3,…,assoc-1}中的值时,根据Pd(X)、Pp(X)、λd、λp以及选定的n计算平均访存时间AMAT:
AMAT=λd×(Th+Td×(1-Hd))+λp×(Th+Tp×(1-Hp)),
式中,Th、Td、Tp分别为缓存的命中时延,DRAM的访问时延和PCM的访问时延,三个参数可查询硬件的技术手册获得;Hd和Hp分别为DRAM缓存行和PCM缓存行的命中率:
H d = &Sigma; i = 1 assoc ( &Sigma; j = i assoc &alpha; j , i &times; P d ( X = i ) ) ,
H p = &Sigma; i = 1 assoc ( &Sigma; j = i assoc &beta; j , i &times; P p ( X = i ) ) ,
式中,αj,i为缓存组第j个位置上恰好为该组中第i个DRAM缓存行的概率,βj,i为缓存组第j个位置上恰好为该组中第i个PCM缓存行的概率;
若i=j=1,则αj,i=λd,βj,i=λp
若j<i或i<1,则αj,i=0,βj,i=0;
若j≤n+1,则
&alpha; j , i = &alpha; j - 1 , i &times; &lambda; p &times; &Sigma; k = j - i assoc + 1 P p ( X = k ) + &alpha; j - 1 , i - 1 &times; &lambda; d &times; &Sigma; k = i assoc + 1 P d ( X = k ) 1 - &lambda; d &times; &Sigma; k = 1 i - 1 P d ( X = k ) - &lambda; p &times; &Sigma; k = 1 j - i P p ( X = k ) ,
&beta; j , i = &beta; j - 1 , i &times; &lambda; d &times; &Sigma; k = j - i assoc + 1 P d ( X = k ) + &beta; j - 1 , i - 1 &times; &lambda; p &times; &Sigma; k = i assoc + 1 P p ( X = k ) 1 - &lambda; p &times; &Sigma; k = 1 i - 1 P p ( X = k ) - &lambda; d &times; &Sigma; k = 1 j - i P d ( X = k ) ;
若j>n+1,则αj,i=0,βj,i=βn+1,i-j+n+1
(2.3)找出assoc-1个平均访存时间中的最小值,其对应的缓存行下标n所指的位置就是所求等效位置;
如图5所示,替换子方法详细步骤如下:
(3.1)在缓存中查找所要访问的数据,若命中,则转子步骤(3.2);若未命中,转子步骤(3.3);
(3.2)将命中缓存行在缓存组中由当前位置移至MRU位置,转子步骤(3.7);
(3.3)判别等效位置是否已初始化,是则转子步骤(3.4);否则清除LRU缓存行,转子步骤(3.6);
(3.4)判别缓存组LRU缓存行的来源标志位是否为0,是则清除该缓存行,转子步骤(3.6);否则转子步骤(3.5);
(3.5)由次LRU位置向MRU位置方向依次检查每一个缓存行,判别是否在抵达等效位置之前发现来源标志位为0的缓存行,是则清除该缓存行并停止检查,转子步骤(3.6);否则清除LRU缓存行,转子步骤(3.6);
(3.6)新数据插入MRU位置,转子步骤(3.7);
(3.7)结束。
本发明记载的缓存替换方法,使得计算机系统在新型异构内存环境下管理高速缓存时能够更加全面地考虑新的内存结构的访存特性,由于PCM的访问时延是DRAM的数倍,因此本方法在缓存不命中需要替换缓存行时给予来自PCM的缓存行更多的留存机会,无形中增大了PCM缓存行在缓存中占有的空间大小,进而提升PCM缓存行的命中率,节约了因为缓存不命中而需要访问PCM内存的高昂时延代价,从而提升了系统整体的访存性能。
以上实施方式仅用于说明本发明,而非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (2)

1.一种异构内存环境下的缓存替换方法,其特征在于,包括如下步骤:
(1)设置步骤,包括下述子步骤:
(1.1)在缓存行硬件结构中增加一位来源标志位I,用于标记该缓存行数据是来源于DRAM还是PCM:该位为1表示数据来自PCM,为0表示数据来自DRAM;
(1.2)在CPU内部新增采样存储单元,其包含DRAM采样区、PCM采样区,其中PCM采样区存储标志位为1的缓存行的标记位组,DRAM采样区存储标志位为0的缓存行的标记位组;其中标记位组指的是64位地址中代表缓存行标记Tag的二进制位组;
(1.3)在CPU内部新增采样存储单元,分别建立一张DRAM重用距离统计表DT和一张PCM重用距离统计表PT,大小均为LLC相联度加上1,均包含位置字段及相应的命中次数字段,分别用于记录标记位组在DRAM采样区、PCM采样区的位置和命中对应位置上标记位组的次数;
(2)采样并填写重用距离统计表,包括如下子步骤:
(2.1)将统计表DT和统计表PT的命中次数字段清零;每0.5至5秒采样一次,每次采样持续时间为T,T等于5-15毫秒;
(2.2)每次采样,读入每次LLC访存信息,计算访问地址中的缓存组号N,对缓存组号N以采样组间隔数L为模,进行取模运算,判别运算结果是否为0,是则表明该访存行为需要采样,转(2.3);否则转子步骤(2.4);其中采样组间隔数L指的是需要采样的相邻缓存组之间的组号差,取值为128,对组号为0、128、256…的缓存组进行采样;
(2.3)判别该次访问LLC是否命中,是则转(2.5);否则转(2.7);
(2.4)判别采样时间是否大于T,是则转步骤(3);否则转(2.2)等待下一次LLC访存;
(2.5)将N/L的商作为需要访问的DRAM采样区或PCM采样区的组号,进行子步骤(2.6);
(2.6)判别标志位I是否为0,是则按LRU算法将该命中的缓存行标记位组插入DRAM采样区,更新统计表DT;否则按LRU算法将命中的缓存行标记位组插入PCM采样区,更新统计表PT;更新时,若命中某标记位组,则将对应的次数字段加1,若不命中,则将相联度+1下标对应的次数字段加1;
更新完成后,判别采样时间是否大于T,是则当次采样结束,转步骤(3);否则转步骤(2.2);
(2.7)判定收到的数据块是否来自DRAM,是则将标志位I赋值为0,否则将标志位I赋值为1,转步骤(2.6);
(3)计算等效位置,其子步骤如下:
(3.1)分别计算Pd(X)、Pp(X)、λd和λp
其中,Pd(X)、Pp(X)分别为DRAM重用距离概率分布和PCM重用距离概率分布,分别通过统计表DT和统计表PT每一个位置对应的命中次数字段除以命中次数字段总和求得;重用距离统计表的位置字段即代表重用距离;
λd和λp分别为访问DRAM缓存行次数占采样总次数的百分比和访问PCM缓存行次数占采样总次数的百分比;
(3.2)记LLC的相联度为assoc,缓存组中缓存行的位置下标为n,n=1代表MRU位置,n=assoc代表LRU位置,当n分别取{1,2,3,…,assoc-1}中的值时,根据Pd(X)、Pp(X)、λd、λp以及选定的n计算平均访存时间AMAT:
AMAT=λd×(Th+Td×(1-Hd))+λp×(Th+Tp×(1-Hp)),
式中,Th、Td、Tp分别为缓存的命中时延,DRAM的访问时延和PCM的访问时延,三个参数可查询硬件的技术手册获得;Hd和Hp分别为DRAM缓存行和PCM缓存行的命中率:
H d = &Sigma; i = 1 assoc ( &Sigma; j = i assoc &alpha; j , i &times; P a ( X = i ) ) ,
H p = &Sigma; i = 1 assoc ( &Sigma; j = i assoc &beta; j , i &times; P p ( X = i ) ) ,
式中,αj,i为缓存组第j个位置上恰好为该组中第i个DRAM缓存行的概率,βj,i为缓存组第j个位置上恰好为该组中第i个PCM缓存行的概率;
若i=j=1,则αj,i=λd,βj,i=λp
若j<i或i<1,则αj,i=0,βj,i=0;
若j≤n+1,则
&alpha; j , i = &alpha; j - 1 , i &times; &lambda; p &times; &Sigma; k - j - i assoc + 1 P p ( X = k ) + &alpha; j - 1 , i - 1 &times; &lambda; d &times; &Sigma; k = i assoc + 1 P d ( X = k ) 1 - &lambda; d &times; &Sigma; k = 1 i - 1 P d ( X = k ) - &lambda; p &times; &Sigma; k = 1 j - i P p ( X = k ) ,
&beta; j , i = &beta; j - 1 , i &times; &lambda; d &times; &Sigma; k - j - i assoc + 1 P d ( X = k ) + &beta; j - 1 , i - 1 &times; &lambda; p &times; &Sigma; k = i assoc + 1 P p ( X = k ) 1 - &lambda; p &times; &Sigma; k = 1 i - 1 P p ( X = k ) - &lambda; d &times; &Sigma; k = 1 j - i P d ( X = k ) ,
若j>n+1,则αj,i=0,βj,i=βn+1,i-j+n+1
(3.3)找出assoc-1个平均访存时间中的最小值,其对应的缓存行下标n所指的位置就是所求等效位置;
(4)缓存替换,包括以下子步骤:
(4.1)在缓存中查找所要访问的数据,若命中,则转子步骤(4.2);若未命中,转子步骤(4.3);
(4.2)将命中缓存行在缓存组中由当前位置移至MRU位置,转子步骤(4.7);
(4.3)判别等效位置是否已初始化,是则转子步骤(4.4);否则清除LRU缓存行,转子步骤(4.6);
(4.4)判别缓存组LRU缓存行的来源标志位是否为0,是则清除该缓存行,转子步骤(4.6);否则转子步骤(4.5);
(4.5)由次LRU位置向MRU位置方向依次检查每一个缓存行,判别是否在抵达等效位置之前发现来源标志位为0的缓存行,是则清除该缓存行并停止检查,转子步骤(4.6);否则清除LRU缓存行,转子步骤(4.6);
(4.6)新数据插入MRU位置,转子步骤(4.7);
(4.7)结束。
2.根据权利要求1所述的方法,其特征在于,步骤(2.7)判定收到的数据块是否来自DRAM,依据是判定缓存收到数据块与缓存发出读请求的时间差值tt是否小于50纳秒,是则判定收到的数据块来自DRAM,否则判定收到的数据块来自PCM。
CN201510239127.3A 2015-05-12 2015-05-12 一种异构内存环境下的缓存替换方法 Active CN104834608B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510239127.3A CN104834608B (zh) 2015-05-12 2015-05-12 一种异构内存环境下的缓存替换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510239127.3A CN104834608B (zh) 2015-05-12 2015-05-12 一种异构内存环境下的缓存替换方法

Publications (2)

Publication Number Publication Date
CN104834608A true CN104834608A (zh) 2015-08-12
CN104834608B CN104834608B (zh) 2017-09-29

Family

ID=53812512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510239127.3A Active CN104834608B (zh) 2015-05-12 2015-05-12 一种异构内存环境下的缓存替换方法

Country Status (1)

Country Link
CN (1) CN104834608B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677584A (zh) * 2015-12-29 2016-06-15 东南大学—无锡集成电路技术研究所 一种基于统计推演的期望堆栈距离快速提取方法
CN105677581A (zh) * 2016-01-05 2016-06-15 上海斐讯数据通信技术有限公司 一种内存访问装置和方法
CN105824737A (zh) * 2016-03-31 2016-08-03 华中科技大学 用于大数据处理系统的内存数据集置换系统与置换方法
CN106126443A (zh) * 2016-06-23 2016-11-16 清华大学 区分脏程度的cache替换方法及装置
CN106909515A (zh) * 2017-02-11 2017-06-30 郑州云海信息技术有限公司 面向混合主存的多核共享末级缓存管理方法及装置
CN107463509A (zh) * 2016-06-05 2017-12-12 华为技术有限公司 缓存管理方法、缓存控制器以及计算机系统
CN108021514A (zh) * 2016-10-28 2018-05-11 华为技术有限公司 一种缓存替换的方法和设备
CN108073527A (zh) * 2016-11-07 2018-05-25 华为技术有限公司 一种缓存替换的方法和设备
CN108399145A (zh) * 2018-02-08 2018-08-14 山东大学 一种cpu-gpu异构平台共享末级缓存管理方法、架构及装置
CN109086224A (zh) * 2018-07-10 2018-12-25 暨南大学 一种自适应分类重用距离来捕捉热数据的缓存方法
CN113505087A (zh) * 2021-06-29 2021-10-15 中国科学院计算技术研究所 一种兼顾服务质量和利用率的缓存动态划分方法及系统
CN117806992A (zh) * 2024-02-29 2024-04-02 山东云海国创云计算装备产业创新中心有限公司 数据块替换方法、装置、电子设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107861819B (zh) * 2017-12-07 2021-07-16 郑州云海信息技术有限公司 一种缓存组负载均衡的方法、装置和计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101989183A (zh) * 2010-10-15 2011-03-23 浙江大学 混合主存储器实现节能存储的方法
US20120284587A1 (en) * 2008-06-18 2012-11-08 Super Talent Electronics, Inc. Super-Endurance Solid-State Drive with Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear
US20130138892A1 (en) * 2011-11-30 2013-05-30 Gabriel H. Loh Dram cache with tags and data jointly stored in physical rows
CN103810113A (zh) * 2014-01-28 2014-05-21 华中科技大学 一种非易失存储器和动态随机存取存储器的融合内存系统
CN104317739A (zh) * 2014-10-28 2015-01-28 清华大学 一种混合内存页面调度方法及装置
CN104375895A (zh) * 2013-08-13 2015-02-25 华为技术有限公司 用于多种存储器间的数据存储调度方法以及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120284587A1 (en) * 2008-06-18 2012-11-08 Super Talent Electronics, Inc. Super-Endurance Solid-State Drive with Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear
CN101989183A (zh) * 2010-10-15 2011-03-23 浙江大学 混合主存储器实现节能存储的方法
US20130138892A1 (en) * 2011-11-30 2013-05-30 Gabriel H. Loh Dram cache with tags and data jointly stored in physical rows
CN104375895A (zh) * 2013-08-13 2015-02-25 华为技术有限公司 用于多种存储器间的数据存储调度方法以及装置
CN103810113A (zh) * 2014-01-28 2014-05-21 华中科技大学 一种非易失存储器和动态随机存取存储器的融合内存系统
CN104317739A (zh) * 2014-10-28 2015-01-28 清华大学 一种混合内存页面调度方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘东等: "面向混合内存体系结构的模拟器", 《华东师范大学学报(自然科学版)》 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677584A (zh) * 2015-12-29 2016-06-15 东南大学—无锡集成电路技术研究所 一种基于统计推演的期望堆栈距离快速提取方法
CN105677584B (zh) * 2015-12-29 2019-01-04 东南大学—无锡集成电路技术研究所 一种基于统计推演的期望堆栈距离快速提取方法
CN105677581A (zh) * 2016-01-05 2016-06-15 上海斐讯数据通信技术有限公司 一种内存访问装置和方法
CN105824737B (zh) * 2016-03-31 2018-08-17 华中科技大学 用于大数据处理系统的内存数据集置换系统与置换方法
CN105824737A (zh) * 2016-03-31 2016-08-03 华中科技大学 用于大数据处理系统的内存数据集置换系统与置换方法
CN107463509B (zh) * 2016-06-05 2020-12-15 华为技术有限公司 缓存管理方法、缓存控制器以及计算机系统
CN107463509A (zh) * 2016-06-05 2017-12-12 华为技术有限公司 缓存管理方法、缓存控制器以及计算机系统
CN106126443B (zh) * 2016-06-23 2019-03-01 清华大学 区分脏程度的cache替换方法及装置
CN106126443A (zh) * 2016-06-23 2016-11-16 清华大学 区分脏程度的cache替换方法及装置
CN108021514A (zh) * 2016-10-28 2018-05-11 华为技术有限公司 一种缓存替换的方法和设备
CN108021514B (zh) * 2016-10-28 2020-11-06 华为技术有限公司 一种缓存替换的方法和设备
CN108073527A (zh) * 2016-11-07 2018-05-25 华为技术有限公司 一种缓存替换的方法和设备
CN108073527B (zh) * 2016-11-07 2020-02-14 华为技术有限公司 一种缓存替换的方法和设备
CN106909515A (zh) * 2017-02-11 2017-06-30 郑州云海信息技术有限公司 面向混合主存的多核共享末级缓存管理方法及装置
CN108399145B (zh) * 2018-02-08 2021-07-30 山东大学 一种cpu-gpu异构平台共享末级缓存管理方法、架构及装置
CN108399145A (zh) * 2018-02-08 2018-08-14 山东大学 一种cpu-gpu异构平台共享末级缓存管理方法、架构及装置
CN109086224A (zh) * 2018-07-10 2018-12-25 暨南大学 一种自适应分类重用距离来捕捉热数据的缓存方法
CN109086224B (zh) * 2018-07-10 2022-10-21 暨南大学 一种自适应分类重用距离来捕捉热数据的缓存方法
CN113505087A (zh) * 2021-06-29 2021-10-15 中国科学院计算技术研究所 一种兼顾服务质量和利用率的缓存动态划分方法及系统
CN113505087B (zh) * 2021-06-29 2023-08-22 中国科学院计算技术研究所 一种兼顾服务质量和利用率的缓存动态划分方法及系统
CN117806992A (zh) * 2024-02-29 2024-04-02 山东云海国创云计算装备产业创新中心有限公司 数据块替换方法、装置、电子设备及存储介质
CN117806992B (zh) * 2024-02-29 2024-06-07 山东云海国创云计算装备产业创新中心有限公司 数据块替换方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN104834608B (zh) 2017-09-29

Similar Documents

Publication Publication Date Title
CN104834608A (zh) 一种异构内存环境下的缓存替换方法
CN105242871B (zh) 一种数据写入方法及装置
CN101236530B (zh) 高速缓存替换策略的动态选择方法
CN102843396B (zh) 一种分布式缓存系统中的数据写入及读取方法及装置
CN102567184B (zh) 一种基于Flash的日志存储方法
US20110252215A1 (en) Computer memory with dynamic cell density
CN101853217B (zh) 缓存控制装置、信息处理装置和计算机可读记录介质
CN102981971B (zh) 一种快速响应的相变存储器损耗均衡方法
CN104699424A (zh) 一种基于页面热度的异构内存管理方法
CN106775476A (zh) 混合内存系统及其管理方法
CN105095116A (zh) 缓存替换的方法、缓存控制器和处理器
WO2013163956A1 (zh) 用于处理器的动态组相联高速缓存装置及其访问方法
CN101944068A (zh) 一种共享高速缓存的性能优化方法
CN106021128B (zh) 一种基于步幅和数据相关性的数据预取器及其预取方法
CN103455449B (zh) 非易失性存储介质访问方法、数据更新方法及设备
CN106569960B (zh) 一种混合主存的末级缓存管理方法
CN106909515A (zh) 面向混合主存的多核共享末级缓存管理方法及装置
CN110888600B (zh) 一种面向nand闪存的缓冲区管理方法
CN107015763A (zh) 混合存储系统中ssd管理方法及装置
CN105389135A (zh) 一种固态盘内部缓存管理方法
Quan et al. Prediction table based management policy for STT-RAM and SRAM hybrid cache
CN110297787A (zh) I/o设备访问内存的方法、装置及设备
CN108572799B (zh) 一种双向哈希链表的异构内存系统数据页迁移方法
CN102999443B (zh) 一种计算机缓存系统的管理方法
CN104714898B (zh) 一种Cache的分配方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant