一种改进的多核共享cache替换方法技术

技术编号:8801063 阅读:225 留言:0更新日期:2013-06-13 05:44
本发明专利技术涉及一种改进的多核共享cache替换方法,主要分成三个阶段:初始化,替换策略,回溯。初始化是指平均划分cache列,保证每个核拥有属于自己的cache列;替换策略又细分为选择逐出单元,插入访问单元,提升优先级。其中选择逐出单元表示根据一定的原则,尽可能选择效益最小的单元替换出去;插入访问单元是将从内存取出的cache单元放置到cache组的合适位置;优先级提升,则是当cache单元命中时,提高cache单元的优先级,以利于下次利用局部性原理访问。本发明专利技术在cache划分的基础上,尽可能将部分当前使用的工作集保留在cache内,从而提高cache的命中率。

【技术实现步骤摘要】

本专利技术属于计算机体系结构领域,具体涉及。
技术介绍
随着片上多核逐渐成为高性能微处理器的主流设计,多核处理器所面临的一系列问题成为了人们研究的重点。而替换方法的优劣是处理器性能的一个重要指标,传统的LRU替换方法在单核处理器中得到广泛应用,而多核环境大都采用多核共享最后一级cache (LLC),应用的工作集越来越大,L2cache容量不断增加,cache相联度不断提高,存储墙以及线程干扰等问题都使得多核处理器性能受到严重影响,多核环境的这一系列变化都使得LRU替换方法和理论最优替换方法之间的差距越来越大。因此,如何有效的管理片上L2cache,尽可能的降低缺失率、提高性能已成为多核领域研究的重点。然而,目前多核领域cache的替换方法都还是基于传统的单核情况下的LRU替换方法,部分研究考虑到cache的访问频率,以及在cache的插入推举策略上进行改进,但也并没有考虑到多核情况下的大工作集、线程干扰和当前多核共享L2cache所采用的chche列划分的现状。
技术实现思路
本专利技术在cache划分的基础上,考虑到cache列的访问频率以及LRU信息,利用cache列的插入推举策略,尽可能将部分当前使用的工作集保留在cache内,从而提高cache的命中率。同时方法还考虑到各个核的利用率不同的问题,提出了 cache列窃取方案,使得多核之间更加有效的利用cache资源。本专利技术采用缺失率和系统IPC作为评价系统性能的指标,IPC是每个时钟 执行的指令数(Instruction Per Cycle)。本专利技术提供技术方案如下:本专利技术,所述的cache替换策略主要分成三个阶段:初始化,替换策略,回溯。初始化是指平均划分cache列,保证每个核拥有属于自己的cache列;替换方法又细分为选择逐出单元,插入访问单元,提升优先级。其中选择逐出单元表示根据一定的原则,尽可能选择效益最小的单元替换出去;插入访问单元是将从内存取出的cache单元放置到cache组的合适位置;优先级提升,贝1J是当cache单元命中时,提高cache单元的优先级,以利于下次利用局部性原理访问。Cache替换方法中,每个cache单元通过计数器记录该单元的访问频率信息,同时有两个基本的参数:LRU候选范围M和时间片t。M—般取值在3-5,t取值在100000 5000000个时钟周期之间。方法的主要过程如下:假设当前访问核Corei,划分给该核的列π ^ = (Lil, Li2..., Lik),要访问的cache组为s,M个LRU候选列分别为(C1,C2…,Cm),候选列由组s中访问频率最低的M个列组成,MRU列为最近访问的列。每一组的候选列跟核划分信息无关,得出候选列后,根据当前访问核的列划分信息表,cache列的访问频率以及核窃取信息表,选择相应的替换策略。—种改进的多核共享cache替换方法,其特征在于包含以下步骤:1、初始化:1.1)初始化cache列划分信息表和路窃取信息表,以核为单位将cache列平均划分,保证每个核拥有自己的cache列,列划分信息表为矩阵IAXB,々表示核的个数,B表示能访问的所有cache列的个数,其中Iu为矩阵Iaxb中第i行第j列的元素,Iij表示cache的第j列是否属于第i个核Corei ;路窃取信息表为矩阵Laxa,A表示核的个数,Lij为矩阵Laxa中第i行第j列的元素,Lij包含两类信息,其一为核Corei是否窃取了核Corej对应的cache的存储单元,其二为被窃取的核COl^的存储单元对应的组号集合;1.2)当处理器核Corei发出一个L2Cache的访问请求时,根据所要访问的地址确定地址所映射的Cache组q和Corei的列划分信息表确定属于Corei的cache存储单元集合,并在存储单元集合中判断是否命中,1.2.1)如果命中,存取cache存储单元,命中单元即为请求所要访问的单元,继续执行步骤3 ;1.2.2)如果未命中,判断核Corei是否窃取了其他核的列;1.2.2.1)如果核Corei窃取了核Coreni的列,根据路窃取信息表确定被窃取的核Coreffl的存储单元对应的组号集合Q ;并判断q是否属于Q ; 1.2.2.1.1)如果q属于Q,则搜索组q中核corej^应的存储单元;判断是否命中;1.2.2.1.1.1)如果命中,存取cache存储单元,继续执行步骤4 ;1.2.2.1.1.2)未命中,顺序执行步骤2 ;1.2.2.1.2)如果q不属于Q,顺序执行步骤2 ;1.2.2.2、如果核Corei并未窃取其他核的列,顺序执行步骤2 ;2、cache 替换方法:2.1)根据Cache组q对应的候选路信息Mq,核Corei的列划分信息,以及核Corei对应的cache路窃取信息选择逐出单元,所述的候选路Mq表示Cache组q中按访问频率升序排列中的前M个存储单元对应的Cache列号,选择逐出单元的步骤如下:2.1.1)如果候选路信息Mq对应的存储单元存在属于Corei的存储单元Ci,则Ci为逐出单元,继续执行步骤(2.2);否则顺序执行步骤2.1.2);2.1.2)根据路窃取信息表,判断corek是否窃取了核Corei的存储单元;2.1.2.1)如果存在corek窃取了核Corei的存储单元,判断窃取的是否是组q中的cache存储单元;2.1.2.1.1)如果是,将组q中所对应的存储单元选为逐出单元,更新路窃取信息表,继续执行步骤(2.2),2.1.2.1.2)如果不是,顺序执行步骤2.1.3)2.1.2.2)如果Corek没有窃取其他核的存储单元,顺序执行步骤2.1.3)2.1.3)选择候选路信息Mq中访问频率最低的存储单元作为逐出单元,顺序执行步骤(2.2);(2.2)将要存取的数据块插入到cache中优先级为M的存储单元f中,更新存储单元f的访问频率信息,继续执行步骤4,其中用LRU信息排列优先级;3、提升优先级:当cache存储单元命中时,更新命中的cache存储单元的优先级,更新步骤如下:如果命中的存储单元属于候选路信息M,,则将命中的存储单元的优先级提升为最近访问的路MRU,继续下一步;如果命中的存储单元不属于候选路信息Mq,则将命中的cache存储单元的优先级提升一级,继续下一步;4、回溯阶段,程序运行时间t后,如果程序结束继续执行步骤5,否则,清除所有cache存储单元访问频率信息和路窃取信息表,并返回步骤1.2);5、输出运行结果,分析缺失率,功耗,以及整体IPC。本专利技术将新插入的cache单元插入到M位置,有效地防止了无用单元长时间占据cache空间;候选列命中时将其直接推举到MRU位,满足了 cache局部性原理,防止出现重用块的抖动现象。当不是后选列命中时,使用逐级推举策略,也是为了中和无用单元长时间占据cache空间,尽量将当前工作集保留在cache中的一个有效方法。之所以采用这种分类推举策略,是考虑到cache单元的访问模式,对于属于候选列的cache单元,是最近从内存插入到L2cache的单元,根据程序的局部性访问原理,很有可能下次也会访问到此cache单元,因此退居到MRU位置。对于不属于候选列的cache单元,意味着已经访问了不止一本文档来自技高网...

【技术保护点】
一种改进的多核共享cache替换方法,其特征在于包含以下步骤:1)、初始化:1.1)初始化cache列划分信息表和路窃取信息表,以核为单位将cache列平均划分,保证每个核拥有自己的cache列,列划分信息表为矩阵IA×B,A表示核的个数,B表示能访问的所有cache列的个数,其中Iij为矩阵IA×B中第i行第j列的元素,Iij表示cache的第j列是否属于第i个核corei;路窃取信息表为矩阵LA×A,A表示核的个数,Lij为矩阵LA×A中第i行第j列的元素,Lij包含两类信息,其一为核corei是否窃取了核corej对应的cache的存储单元,其二为被窃取的核corej的存储单元对应的组号集合;1.2)当处理器核corei发出一个L2Cache的访问请求时,根据所要访问的地址确定地址所映射的Cache组q和corei的列划分信息表确定属于corei的cache存储单元集合,并在存储单元集合中判断是否命中,1.2.1)如果命中,存取cache存储单元,命中单元即为请求所要访问的单元,继续执行步骤3;1.2.2)如果未命中,判断核corei是否窃取了其他核的列;1.2.2.1)如果核corei窃取了核corem的列,根据路窃取信息表确定被窃取的核corem的存储单元对应的组号集合Q;并判断q是否属于Q;1.2.2.1.1)如果q属于Q,则搜索组q中核corem对应的存储单元;判断是否命中;1.2.2.1.1.1)如果命中,存取cache存储单元,继续执行步骤4;1.2.2.1.1.2)如果未命中,顺序执行步骤2;1.2.2.1.2)如果q不属于Q,顺序执行步骤2;1.2.2.2)如果核corei并未窃取其他核的列,顺序执行步骤2;2)、cache替换算法:(2.1)根据Cache组q对应的候选路信息Mq,核corei的列划分信息,以及核corei对应的cache路窃取信息选择逐出单元,所述的候选路Mq表示Cache组q中按访问频率升序排列中的前M个存储单元对应的Cache列号,选择逐 出单元的步骤如下:2.1.1)如果候选路信息Mq对应的存储单元存在属于corei的存储单元Ci,则Ci为逐出单元,继续执行步骤(2.2);否则顺序执行步骤2.1.2);2.1.2)根据路窃取信息表,判断corek是否窃取了核corei的存储单元;2.1.2.1)如果存在corek窃取了核corei的存储单元,判断窃取的是否是组q中的cache存储单元;2.1.2.1.1)如果是,将组q中所对应的存储单元选为逐出单元,更新路窃取信息表,继续执行步骤(2.2),2.1.2.1.2)如果不是,顺序执行步骤2.1.3)2.1.2.2)如果corek没有窃取核corei的存储单元,顺序执行步骤2.1.3);2.1.3)选择候选路信息Mq中访问频率最低的存储单元作为逐出单元,更新路窃取信息表,顺序执行步骤(2.2);(2.2)将要存取的数据块插入到cache组q中优先级为M的存储单元f中,更新存储单元f的访问频率信息,继续执行步骤4,其中用访问频率信息排列优先级;3)、提升优先级:当cache存储单元命中时,更新命中的cache存储单元的优先级,更新步骤如下:如果命中的存储单元属于候选路Mq,则将命中的存储单元的优先级提升为最近访问的列的优先级,继续下一步;如果命中的存储单元不属于候选路Mq,则将命中的cache存储单元的优先级提升一级继续下一步;4)、回溯阶段,程序运行时间t后,如果程序结束继续执行步骤5,否则,清除所有cache存储单元访问频率信息和路窃取信息表,并返回步骤1.2);5)、输出运行结果,分析缺失率,功耗,以及整体IPC,本步骤属于常规方法。...

【技术特征摘要】
1.一种改进的多核共享cache替换方法,其特征在于包含以下步骤: 1)、初始化: 1.0初始化cache列划分信息表和路窃取信息表,以核为单位将cache列平均划分,保证每个核拥有自己的cache列,列划分信息表为矩阵IAXB,A表示核的个数,B表示能访问的所有cache列的个数,其中Iu为矩阵Iaxb中第i行第j列的元素,Iij表示cache的第j列是否属于第i个核Corei ; 路窃取信息表为矩阵Laxa,A表示核的个数,Lu为矩阵Laxa中第i行第j列的元素,Lij包含两类信息,其一为核Corei是否窃取了核Corej对应的cache的存储单元,其二为被窃取的核Corej的存储单元对应的组号集合; 1.2)当处理器核Corei发出一个L2Cache的访问请求时,根据所要访问的地址确定地址所映射的Cache组q和Corei的列划分信息表确定属于Corei的cache存储单元集合,并在存储单元集合中判断是否命中, 1.2.1)如果命中,存取cache存储单元,命中单元即为请求所要访问的单元,继续执行步骤3 ; 1.2.2)如果未命中,判断核Corei是否窃取了其他核的列; 1.2.2.1)如果核Corei窃取了核corem的列,根据路窃取信息表确定被窃取的核corem的存储单元对应的组号集合Q ;并判断q是否属于Q ; 1.2.2.1.1)如果q属于Q,则搜索组q中核Corem对应的存储单元;判断是否命中; 1.2.2.1.1.1)如果命中,存取cache存储单元,继续执行步骤4 ; 1.2.2.1.1.2)如果未命中,顺序执行步骤2 ; 1.2.2.1.2)如果q不属于Q,顺序执行步骤2 ; 1.2.2.2)如果核Corei并未窃取其他核的列,顺序执行步骤2 ; 2)、cache替换算法: (2.1)根据Cache组q对应的候选路信息Mq,核Co...

【专利技术属性】
技术研发人员:方娟李成艳
申请(专利权)人:北京工业大学
类型:发明
国别省市:

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

1