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

文档序号:8502139阅读:342来源:国知局
一种异构内存环境下的缓存替换方法
【技术领域】
[0001] 本发明属于计算机科学技术领域,更具体地,涉及一种异构内存环境下的缓存替 换方法。
【背景技术】
[0002] 以动态随机存储器(DRAM)为代表的传统内存技术的发展近年来遇到了瓶颈。受 限于制造工艺,在较低的成本上获得更大容量的DRAM内存变得越发困难;且随着容量的不 断增大,DRAM内存的高能耗问题也日益凸显。新型非易失性存储(Non-Volatile Memory, 简称NVM)技术的兴起与发展为打破传统DRAM内存这一系统性能与能耗瓶颈提供了契机。 以相变存储器(Phase Change Memory,简称PCM)为代表的非易失性存储器件有着良好的可 扩展性、比闪存(Flash Memory)更加接近DRAM的时延与带宽特性、非易失性、以及极低的 静态功耗等一系列优良的特性。另一方面,它们同样也有着使用寿命短、写时延与功耗过高 等一些尚未克服的缺陷。因此,尚不具备利用非易失性存储完全替代DRAM作为内存的技术 条件。目前比较通行的做法是利用新型非易失性存储器件与传统DRAM构建异构内存,以期 达到充分发挥两者自身优势同时避免各自缺陷这一目的。
[0003] 设计精良、管理得当的高速缓存可以极大地弥补慢速内存与高速CPU之间的速度 差异,使整个计算机系统获得近乎于高速缓存的访存性能。缓存替换算法的好坏直接影响 着缓存的使用效率,进而可以影响系统的整体性能。以LRU及其衍生算法为代表的传统缓 存替换算法在传统DRAM内存环境下取得了不错的性能效果,但是在异构内存环境下,缓存 不命中代价(Miss Penalty)不一致,亦即DRAM以及PCM的访问时延不一致这一新的特性 并没有在传统缓存替换算法中被充分考虑,这就提出了异构内存环境下的缓存使用效率提 升问题。本发明旨在充分挖掘异构内存环境下的程序访存特性,将缓存不命中代价这一重 要因素纳入缓存替换算法的考虑范畴,做出更加切合异构内存实际的缓存替换决策,从而 提升系统的访存性能。

【发明内容】

[0004] 本发明要解决的技术问题是:提供一种异构内存环境下的缓存替换方法,使得装 配了新型异构内存的计算机系统更加有效地管理使用高速缓存,更具体地,在缓存替换时 能充分利用缓存不命中时访问不同内存介质的时延代价不一致这一特性,做出更加合理的 替换决策,从而提升系统的整体性能。
[0005] 本发明提供了一种异构内存环境下的缓存替换方法,包括:在缓存行硬件结构中 增加一位来源标志位,用于标记该缓存行数据是来源于DRAM还是PCM ;在CPU中新增采样 存储单元,统计数据重用距离信息;还包括采样方法、等效位置计算方法和替换方法三个子 方法,采样子方法用于对访问缓存的行为进行采样统计,等效位置计算子方法用于计算等 效位置,替换子方法用于确定需要被替换出去的缓存行。
[0006] 来源标志位计为I,其置位方法是:当缓存不命中需要从内存读取数据时,根据缓 存收到数据块与缓存发出读请求的时间差值tt的大小来判定收到的数据块是来自哪一种 内存介质,若tt小于50纳秒,则判定收到的数据块来自DRAM,将数据块插入的缓存行的来 源标志位置0 ;若tt不小于50纳秒,则判定收到的数据块来自PCM,将数据块插入的缓存行 的来源标志位置1。
[0007] 采样存储单元分DRAM、PCM两个区,其中DRAM区存储标志位为0的缓存行的标记 位组,PCM区存储标志位为1的缓存行的标记位组;其中标记位组指的是64位地址中代表 缓存行标记Tag的二进制位组;存储过程采用LRU替换算法,两个区都是组相连的,相联度 都与LLC自身的相联度相同。所述采样存储单元还包含一张 DRAM重用距离统计表和一张 PCM重用距离统计表,DRAM重用距离统计表跟DRAM区对应,PCM重用距离统计表跟PCM区 对应,大小均为LLC相联度加1行,均包含位置字段以及与其相对应的次数字段,分别用于 记录DRAM、PCM两个CPU内部采样存储单元中的位置和命中对应位置上标记位组的次数。
[0008] 采样子方法周期性执行,每次采样时,若持续时间太短则不足以获取充分的样本 信息,若持续时间太长则会耗费过多的处理器资源,因而需要折中地确定采样的周期与每 次采样的持续时间,本方法规定每0. 5至5秒采样一次,每次采样持续时间为T,T等于5-15 毫秒,持续时间约占采样周期的1%,详细步骤如下:
[0009] (I. 1)将统计表DT和统计表PT的命中次数字段清零;
[0010] (1. 2)每次采样,读入每次LLC访存信息,计算访问地址中的缓存组号N,对缓存组 号N以采样组间隔数L为模,进行取模运算,判别运算结果是否为0,是则表明该访存行为需 要采样,转(1.3);否则转子步骤(1.4);其中采样组间隔数L指的是需要采样的相邻缓存 组之间的组号差,取值为128,对组号为0、128、256…的缓存组进行采样;
[0011] (1. 3)判别该次访问LLC是否命中,是则转(1. 5);否则转(1. 7);
[0012] (1. 4)判别采样时间是否大于T,是则转等效位置计算子方法;否则转(1. 2)等待 下一次LLC访存;
[0013] (1. 5)将N/L的商作为需要访问的DRAM采样区或PCM采样区的组号,进行子步骤 (1.6);
[0014] (1. 6)判别标志位I是否为0,是则按LRU算法将该命中的缓存行标记位组插入 DRAM采样区,更新统计表DT ;否则按LRU算法将命中的缓存行标记位组插入PCM采样区,更 新统计表PT ;更新时,若命中某标记位组,则将对应的次数字段加1,若不命中,则将相联度 +1下标对应的次数字段加1 ;
[0015] 更新完成后,判别采样时间是否大于T,是则当次采样结束,转等效位置计算子方 法;否则转步骤(1. 2);
[0016] (1. 7)判定收到的数据块是否来自DRAM,是则将标志位I赋值为0,否则将标志位 I赋值为1,转步骤(1.6);
[0017] 等效位置计算子方法在每次采样结束时执行,详细步骤如下:
[0018] (2· 1)分别计算 Pd(X)、Pp(X)、λ ,和 λ p;
[0019] 其中,Pd⑴、PJX)分别为DRAM重用距离概率分布和PCM重用距离概率分布,分别 通过统计表DT和统计表PT每一个位置对应的命中次数字段除以命中次数字段总和求得; 重用距离统计表的位置字段即代表重用距离;
[0020] λ#Ρ λ p分别为访问DRAM缓存行次数占采样总次数的百分比和访问PCM缓存行 次数占采样总次数的百分比;
[0021] (2. 2)记LLC的相联度为assoc,缓存组中缓存行的位置下标为n,n = 1代表MRU 位置,n = assoc代表LRU位置,当η分别取{1,2, 3,...,aSS〇c-l}中的值时,根据Pd⑴、 Pp(X)、λ d、λ
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1