CN103150266B - 一种改进的多核共享cache替换方法 - Google Patents

一种改进的多核共享cache替换方法 Download PDF

Info

Publication number
CN103150266B
CN103150266B CN201310055097.1A CN201310055097A CN103150266B CN 103150266 B CN103150266 B CN 103150266B CN 201310055097 A CN201310055097 A CN 201310055097A CN 103150266 B CN103150266 B CN 103150266B
Authority
CN
China
Prior art keywords
core
cache
storage unit
row
steal
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.)
Expired - Fee Related
Application number
CN201310055097.1A
Other languages
English (en)
Other versions
CN103150266A (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.)
Beijing University of Technology
Original Assignee
Beijing University of 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 Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201310055097.1A priority Critical patent/CN103150266B/zh
Publication of CN103150266A publication Critical patent/CN103150266A/zh
Application granted granted Critical
Publication of CN103150266B publication Critical patent/CN103150266B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

一种改进的多核共享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组的合适位置;优先级提升,则是当cache单元命中时,提高cache单元的优先级,以利于下次利用局部性原理访问。Cache替换方法中,每个cache单元通过计数器记录该单元的访问频率信息,同时有两个基本的参数:LRU候选范围M和时间片t。M一般取值在3-5,t取值在100000~5000000个时钟周期之间。方法的主要过程如下:
假设当前访问核corei,划分给该核的列πi=(Li1,Li2…,Lik),要访问的cache组为s,M个LRU候选列分别为(C1,C2…,Cm),候选列由组s中访问频率最低的M个列组成,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发出一个L2 Cache的访问请求时,根据所要访问的地址确定地址所映射的Cache组q,根据cache组q和corei的列划分信息表确定属于corei的cache存储单元集合,并在存储单元集合中判断是否命中,
1.2.1)如果命中,存取cache存储单元,命中单元即为请求所要访问的单 元,继续执行步骤3;
1.2.2)如果未命中,判断核corei是否窃取了其他核的cache列;
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没有窃取其他核的存储单元,顺序执行步骤2.1.3)
2.1.3)选择候选路信息Mq中访问频率最低的存储单元作为逐出单元,顺序执行步骤(2.2);
(2.2)将要存取的数据块插入到cache中优先级为M的存储单元f中,更 新存储单元f的访问频率信息,继续执行步骤4,其中用LRU信息排列优先级;
3、提升优先级:当cache存储单元命中时,更新命中的cache存储单元的优先级,更新步骤如下:
如果命中的存储单元属于候选路信息Mq,则将命中的存储单元的优先级提升为最近访问的路MRU,继续下一步;
如果命中的存储单元不属于候选路信息Mq,则将命中的cache存储单元的优先级提升一级,继续下一步;
4、回溯阶段,程序运行时间t后,如果程序结束继续执行步骤5,否则,清除所有cache存储单元访问频率信息和路窃取信息表,并返回步骤1.2);
5、输出运行结果,分析缺失率,功耗,以及整体IPC。
本发明将新插入的cache单元插入到M位置,有效地防止了无用单元长时间占据cache空间;候选列命中时将其直接推举到MRU位,满足了cache局部性原理,防止出现重用块的抖动现象。当不是后选列命中时,使用逐级推举策略,也是为了中和无用单元长时间占据cache空间,尽量将当前工作集保留在cache中的一个有效方法。之所以采用这种分类推举策略,是考虑到cache单元的访问模式,对于属于候选列的cache单元,是最近从内存插入到L2cache的单元,根据程序的局部性访问原理,很有可能下次也会访问到此cache单元,因此退居到MRU位置。对于不属于候选列的cache单元,意味着已经访问了不止一次,下次被访问到的可能性有所降低,因此采用逐级推举策略,而不是直接推举到MRU位置。
本发明还为在一定时间周期后清零计数器,有效地降低了开销。同时核与核之间增加了一个路窃取信息表,来存放各个核之间的窃取情况,利用率高的核可以充分利用属于利用率低的核的单元。这些窃取信息可以通过cache替换进行清除,同时每隔一个时间片t进行全部清除,有效地进行维护。在cache替换时充分考虑属于各个核的单元的利用情况,有效利用存在闲置单元的核,从而提高cache命中率。
附图说明
图1是本发明所述的cache列划分以示意图;
图2是本发明所述的窃取信息表示意图
图3是本发明流程图;
图4是本发明所述cache替换方法流程图;
图5.1.1访问M中的单元的优先级提升方法示意图—提升前;
图5.1.2访问M中的单元的优先级提升方法示意图—提升后;
图5.2.1访问M之外的单元的优先级提升方法示意图—提升前;
图5.2.2访问M之外的单元的优先级提升方法示意图—提升后;
具体实施方式:
下面以一个两级Cache结构的片上多核处理器为例,对本发明所述的替换方法进行详细的描述。
配置如表1:
表1
在该处理器上参数分别取值:四核处理器,候选路有4列,时间片t=100000。其具体步骤如下:
假设当前访问核为core3,所属列为(12,13,14,15),根据图1访问的cache组为64,4个最少访问候选单元由组64中访问频率最低的4个存储单元组成,即(3,4,7,13),其中7为访问频率最低的存储单元,MRU存储单元为最近访问的存储单元,这里为组64中15。
1、初始化: 
1.1)如图1,初始化cache划分表,cache列平均划分,保证每个核拥有自己的cache列,core3对应列(12,13,14,15),核窃取信息表如图2所示,其中core3窃取了core2的存储单元,且被窃取的存储单元属于64组。
1.2)当处理器核发出一个L2 Cache的访问时,获取该处理器核的编号PID设为3,设访问第64组,根据core3的列划分信息去访问64组的(12,13,14,15),如果命中,访问命中的存储单元,继续执行步骤3。缺失则查看cache窃取信息表,如果此处core3窃取了core2的列,根据图2可知core2被窃取的存储单元对应于64组,因此依次搜索64组属于core2的存储单元,命中则访问对应的存储单元,并执继续行步骤4,否则顺序执行cache替换方法2。
2、cache替换方法:
(2.1)选择逐出存储单元:
2.1.1)如果4个访问频率最低的候选单元中,有属于core3的单元,这里13属于core3,则直接选为逐出单元,跳到步骤(2.2),否则顺序执行步骤2.1.2;
2.1.2)如果其他核有窃取当前核所属的存储单元,假设Core2只窃取了Core3的一个存储单元,则查看窃取的是否是64组里的cache存储单元,如果是则选为逐出单元,并更新core3对应core2的窃取信息,如果核2分别窃取了核3的63、64组中的一个存储单元,则路窃取信息更新前为(1,63,64),更新后变为(1,63),继续执行步骤(2.2),否则顺序执行步骤2.1.3;
如果corek没有窃取核corei的存储单元,顺序执行步骤2.1.3)
2.1.3)选择候选路信息中访问频率最低的存储单元7作为逐出单元,更新路窃取信息表,继续执行步骤(2.2);
(2.2)插入访问块 
2.2.1)将访问块插入到优先级为4的存储单元中;
2.2.2)更新插入后的存储单元的访问频率信息,访问频率加一,执行步骤4;
3.提升优先级 
(3.1)假设要访问的core3单元属于4个候选存储单元中的,如13,则将其插入到MRU单元,如图5.1.1-5.1.2,继续下一步;
(3.2)否则,假设访问的不是4个候选单元,而是单元0,则将该单元优先级提升一级,插入到相应位置,如图5.2.1-5.2.2,继续下一步;
4、回溯阶段,程序运行一个时间片100000后,
(3.1)程序是否运行结束,是则转到步骤5,否则,
(3.2)清除列访问频率信息和核窃取信息,跳转至步骤1.2)
5、输出运行结果,分析功耗,缺失率以及整体IPC,本步骤属于常规方法。
本cache替换方法综合考虑访问频率,cache划分,核窃取信息,综合各种影响因素,最终提高cache命中率,达到提高IPC的目的。

Claims (1)

1.一种改进的多核共享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,根据cache组q和corei的列划分信息表确定属于corei的cache存储单元集合,并在存储单元集合中判断是否命中,
1.2.1)如果命中,存取cache存储单元,命中单元即为请求所要访问的单元,继续执行步骤3;
1.2.2)如果未命中,判断核corei是否窃取了其他核的cache列;
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。
CN201310055097.1A 2013-02-20 2013-02-20 一种改进的多核共享cache替换方法 Expired - Fee Related CN103150266B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310055097.1A CN103150266B (zh) 2013-02-20 2013-02-20 一种改进的多核共享cache替换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310055097.1A CN103150266B (zh) 2013-02-20 2013-02-20 一种改进的多核共享cache替换方法

Publications (2)

Publication Number Publication Date
CN103150266A CN103150266A (zh) 2013-06-12
CN103150266B true CN103150266B (zh) 2015-10-28

Family

ID=48548359

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310055097.1A Expired - Fee Related CN103150266B (zh) 2013-02-20 2013-02-20 一种改进的多核共享cache替换方法

Country Status (1)

Country Link
CN (1) CN103150266B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105359116B (zh) * 2014-03-07 2018-10-19 华为技术有限公司 缓存器、共享缓存管理方法及控制器
CN111221749A (zh) * 2019-11-15 2020-06-02 新华三半导体技术有限公司 数据块写入方法、装置、处理器芯片及Cache

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739299A (zh) * 2009-12-18 2010-06-16 北京工业大学 一种基于片上多核处理器共享cache的动态公平划分方法
CN102135793A (zh) * 2011-03-29 2011-07-27 北京工业大学 一种面向低功耗的多核共享Cache混合划分方法
CN102193875A (zh) * 2011-04-26 2011-09-21 北京工业大学 多核下基于Cache划分的自适应路预测算法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739299A (zh) * 2009-12-18 2010-06-16 北京工业大学 一种基于片上多核处理器共享cache的动态公平划分方法
CN102135793A (zh) * 2011-03-29 2011-07-27 北京工业大学 一种面向低功耗的多核共享Cache混合划分方法
CN102193875A (zh) * 2011-04-26 2011-09-21 北京工业大学 多核下基于Cache划分的自适应路预测算法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
一种多核Cache低功耗动态混合划分算法研究;方娟等;《小型微型计算机系统》;20111130;第32卷(第11期);第2295-2298页 *
多核处理器预取策略的研究;方娟等;《微电子学与计算机》;20100831;第27卷(第8期);第74-76页 *
片上多核处理器共享Cache划分的公平性研究;方娟等;《计算机工程与设计》;20100816;第31卷(第15期);第3413-3417页 *

Also Published As

Publication number Publication date
CN103150266A (zh) 2013-06-12

Similar Documents

Publication Publication Date Title
CN103246613B (zh) 缓存装置及用于缓存装置的缓存数据获取方法
CN103885728B (zh) 一种基于固态盘的磁盘缓存系统
US8103894B2 (en) Power conservation in vertically-striped NUCA caches
KR101761301B1 (ko) 메모리 자원 최적화 방법 및 장치
US8140758B2 (en) Data reorganization in non-uniform cache access caches
CN102663115B (zh) 基于页面染色技术的内存数据库访问优化方法
US8171220B2 (en) Cache architecture with distributed state bits
CN106569960B (zh) 一种混合主存的末级缓存管理方法
Sembrant et al. Tlc: A tag-less cache for reducing dynamic first level cache energy
CN103678571B (zh) 应用于单台多核处理器主机的多线程网络爬虫执行方法
CN102110073B (zh) 一种片上共享高速缓存的替换装置和方法以及相应处理器
CN107315694B (zh) 一种缓存一致性管理方法及节点控制器
Dublish et al. Cooperative caching for GPUs
CN104598394A (zh) 一种可动态分配的数据缓存方法及系统
US20180113815A1 (en) Cache entry replacement based on penalty of memory access
CN103150266B (zh) 一种改进的多核共享cache替换方法
Guz et al. Utilizing shared data in chip multiprocessors with the Nahalal architecture
CN108664217A (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
CN105988720A (zh) 数据存储装置和方法
US11934307B2 (en) Apparatus and method for providing coherence data for use when implementing a cache coherency protocol
Yoon et al. Self-learnable cluster-based prefetching method for DRAM-flash hybrid main memory architecture
Das et al. Dynamic associativity management in tiled CMPs by runtime adaptation of fellow sets
Das et al. Towards a better cache utilization by selective data storage for CMP last level caches
Lee et al. Dirty-block tracking in a direct-mapped DRAM cache with self-balancing dispatch
CN102193875B (zh) 多核下基于Cache划分的自适应路预测算法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151028

Termination date: 20180220