CN101694640A - 多核架构下共享二级Cache的替换策略的实现方法 - Google Patents
多核架构下共享二级Cache的替换策略的实现方法 Download PDFInfo
- Publication number
- CN101694640A CN101694640A CN200910154021A CN200910154021A CN101694640A CN 101694640 A CN101694640 A CN 101694640A CN 200910154021 A CN200910154021 A CN 200910154021A CN 200910154021 A CN200910154021 A CN 200910154021A CN 101694640 A CN101694640 A CN 101694640A
- Authority
- CN
- China
- Prior art keywords
- cache
- group
- piece
- formation
- disappearance
- 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
- 238000000034 method Methods 0.000 title claims abstract description 13
- 230000015572 biosynthetic process Effects 0.000 claims description 37
- 230000008034 disappearance Effects 0.000 claims description 33
- 238000003860 storage Methods 0.000 abstract description 4
- 238000012217 deletion Methods 0.000 abstract 1
- 230000037430 deletion Effects 0.000 abstract 1
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 230000014759 maintenance of location Effects 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及存储器层次结构设计领域,旨在提供一种多核架构下共享二级Cache的替换策略的实现方法。该方法包括下述步骤:对Cache组的进行分割、亲近替换策略的实施、在多核架构下根据在每个核上运行的程序的访问模式的不同对不同的程序采用不同的替换策略实施。本发明有益效果是:在多核环境下,本发明针对最近最少使用替换策略存在的问题,对Cache组中的Cache块进行分组,每个小组实施不同的替换策略,可以降低Cache缺失,大大减少了存储开销,同时也降低电路的复杂性,提高系统的性能。在多核环境下,不同的程序或者线程可能偏爱不同的替换策略,因此提出在不同的分割组中实施不同的Cache替换策略。
Description
技术领域
本发明涉及存储器层次结构设计领域,特别是涉及一种多核架构下共享二级Cache的替换策略的实现方法。
背景技术
对于共享二级Cache来说,发生Cache缺失的代价是相当大的:需要花费几百个周期访问主存。通常情况下,采用的Cache替换策略是最近最少使用替换策略,但是最近最少使用替换策略存在着很多缺点:首先,最近最少使用替换策略仅仅考虑的是Cache访问的最近信息,却没有考虑Cache访问的频率信息;其次,当Cache容量小于程序的工作集时,Cache会表现出抖动现象,发生冲突缺失,会导致计算机性能下降;再者,最近最少使用替换策略的硬件实施是相当昂贵的。为了克服最近最少使用替换策略存在的缺点,目前提出了不少替换策略:比如说最优替换策略,考虑将来的信息,它是把将来最远访问的Cache块替换出去,但是这种实施不太实际;亲密替换策略,它能够同时考虑Cache访问的最近信息和Cache访问的频率信息,与最近最少使用替换策略和最优替换策略相比,亲密替换策略可以减少硬件开销,电路复杂性也明显降低,但是目前提出的亲密替换策略只是在单核情况下实施,并没有在多核情况下实施;等等。
发明内容
本发明要解决的技术问题是,提供一种多核架构下共享二级Cache的替换策略的实现方法。
为解决上述技术问题,本发明提供的方法如下:
1)对Cache组的进行分割:
每个Cache组set分成k个小组group,k=n/m,0<k<n+1且k、m、n为整数,n为Cache的相联度,0<m<n+1。对Cache组的进行分割的目的在于对不同的小组实施相应的Cache替换策略。在多核架构下,根据在每个核上运行的程序的访问模式的不同,对不同的程序采用不同的替换策略。并不是每个程序的访问行为都是相同的,而且分配给每个程序的空间容量也不同,合适的采用Cache替换策略,有助于提高程序的运行的效率。
每个小组设置一个缺失计数器和一个策略选择器,缺失计数器用来记录小组发生的缺失数miss,策略选择器决定小组所采取的Cache替换策略。
2)亲近替换策略,与最近最少使用替换策略相比,除了考虑访问的最新信息之外还关注访问频率,其实施过程如下:
第一步:每个Cache组设置一个组命中标签,组命中标签用来决定逐出的Cache块是从亲近队列的顶部选择还是从亲近队列的底部选择,在访问这个Cache组之前,组命中标签被初始化为1。每个Cache组也设置一个亲近队列,亲近队列中的Cache块初始位置和最近最少使用LRU栈中的Cache块位置相同。
第二步:当发生Cache命中时,在该组的亲近队列中,命中的Cache块和与其上面临近的Cache块交换位置,如果组命中标签为0,则更新为1,如果组命中标签为1,则不更新仍为1,如果命中的Cache块已经在亲近队列的顶部,不改变其位置;当发生Cache缺失时,在该组的亲近队列中,如果组命中标签为0,亲近队列顶部的Cache块作为要替换的Cache块,其余所有的Cache块向亲近队列顶部移动一个位置,组命中标签的值仍为0,进入到Cache的Cache块插在亲近队列的底部;如果组命中标签为1,则亲近队列底部的Cache块作为要替换的Cache块,组命中标签的值更新为0,进入到Cache的Cache块插在亲近队列的底部;当有两个小组group都采用亲近替换策略时,被替换出去的候选Cache块就有两个,块选择器从要被替换出去的候选Cache块中随机的选择一个作为要被替换的Cache块。
3)当发生一级Cache缺失时,共享二级Cache中的Cache组的工作过程如下:
当发生共享二级Cache缺失或命中时,发生Cache缺失或命中的小组的缺失计数器根据其所记录的Cache缺失数目,来决定本小组所采取的Cache替换策略,如果本小组发生的Cache缺失的数目miss不超过某个指定的值z,策略选择器就采用最近最少使用替换策略,反之,策略选择器采用亲近替换策略。
所述最近最少使用替换策略是指从Cache中替换出最近最少使用的Cache块,进入Cache的Cache块放在最近最多使用的位置MRU上,当一个Cache块发生命中时,则把该块放在最近最多使用的位置,其余所有的Cache块在最近最少使用LRU栈中下移一个位置。
与背景技术相比,本发明具有的有益的效果是:
在多核环境下,本发明针对最近最少使用替换策略存在的问题,对Cache组中的Cache块进行分组,每个小组实施不同的替换策略,可以降低Cache缺失,大大减少了存储开销,同时也降低电路的复杂性,提高系统的性能。在多核环境下,不同的程序或者线程可能偏爱不同的替换策略,因此提出在不同的分割组中实施不同的Cache替换策略。
附图说明
图1是采用亲近替换策略发生Cache缺失且更新组命中标签的实例;
图2是采用亲近替换策略发生Cache缺失且不需更新组命中标签的实例;
图3是采用亲近替换策略发生Cache命中且更新组命中标签的实例;
图4是采用亲近替换策略发生Cache命中且不需更新组命中标签的实例;
图5是某Cache组中某2个小组采用亲近替换策略时块选择器的工作过程;
图中:VICTIM为选择的要被替换的Cache块,VSEL为块选择器,D和H为候选要替换出的Cache块;
图6是某Cache组中某个小组的Cache替换策略的选择过程。
具体实施方式
本发明中所述的缺失计数器、策略选择器、块选择器均为内置于共享二级Cache中的软件模块,其实现属于本领域技术人员的基本技能,故不再赘述。
本方法的具体过程及实例如下:
1)对Cache组的进行分割:
每个Cache组set分成k个小组group,k=n/m,0<k<n+1且k、m、n为整数,n为Cache的相联度,0<m<n+1。假设Cache的相联度n为16,当没m=4时,k=16/4=4,即每个Cache组分成4个小组。
每个小组设置一个缺失计数器和一个策略选择器,缺失计数器用来记录小组发生的缺失数miss,策略选择器决定小组所采取的Cache替换策略。
2)亲近替换策略,其实施过程如下:
第一步:每个Cache组设置一个组命中标签和一个亲近队列,组命中标签用来决定逐出的Cache块是从亲近队列的顶部选择还是从亲近队列的底部选择,在访问这个Cache组之前,组命中标签被初始化为1,亲近队列中的Cache块初始位置和最近最少使用LRU栈中的Cache块位置相同。
第二步:当发生Cache命中时,在该组的亲近队列中,命中的Cache块和与其上面临近的Cache块交换位置,如果组命中标签为0,则更新为1,如果组命中标签为1,则不更新仍为1,如果命中的Cache块已经在亲近队列的顶部,不改变其位置,假设一个组的当前队列中的Cache块位置为:A,B,C,D,当发生Cache块C命中时,则块B和块C交换位置,当发生Cache块A命中时,则不改变其位置,如果组命中标签为0,则更新为1,如果组命中标签为1,则不更新仍为1;当发生Cache缺失时,在该组的亲近队列中,如果组命中标签为0,亲近队列顶部的Cache块作为要替换的Cache块,其余所有的Cache块向亲近队列顶部移动一个位置,组命中标签的值仍为0,进入到Cache的Cache块插在亲近队列的底部;如果组命中标签为1,则亲近队列底部的Cache块作为要替换的Cache块,组命中标签的值更新为0,进入到Cache的Cache块插在亲近队列的底部,假设一个小组当前队列中Cache块位置为:A,B,C,D,如果组命中标签值是1,下一次要访问块E,但是块E不在当前队列中,就发生缺失,块D将是要被替换掉的块,而且组命中标签要更新为0;如果组命中标签值是0,下一次同样要访问块E,但是块E不在当前队列中,就发生缺失,A将是要被替换掉的块,块B、块C、块D分别向上移动一个位置,组命中标签仍为0。当有两个小组group都采用亲近替换策略时,被替换出去的候选Cache块就有两个,块选择器从要被替换出去的候选Cache块中随机的选择一个作为要被替换的Cache块,假设有两个小组实施亲近替换策略,其队列分别为Q1和Q2。Q1:A,B,C,D和Q2:H,I,J,K,块D和块H是两个候选要替换掉的Cache块,块选择器随机的从块D和块H中选择一个做为要被替换的Cache块。
3)在多核架构下,根据在每个核上运行的程序的访问模式的不同,对不同的程序采用不同的替换策略,当发生一级Cache缺失时,共享二级Cache中的Cache组的工作过程如下:
当发生共享二级Cache缺失或命中时,发生Cache缺失或命中的小组的缺失计数器根据其所记录的Cache缺失数目,来决定本小组所采取的Cache替换策略,如果本小组发生的Cache缺失的数目miss不超过某个指定的值z,策略选择器就采用最近最少使用替换策略,反之,策略选择器采用亲近替换策略。假设z=50,当miss<z时,策略选择器就采用最近最少使用替换策略,反之,策略选择器采用亲近替换策略。
所述最近最少使用替换策略是指从Cache中替换出最近最少使用的Cache块,进入Cache的Cache块放在最近最多使用的位置MRU上,当一个Cache块发生命中时,则把该块放在最近最多使用的位置,其余所有的Cache块在最近最少使用LRU栈中下移一个位置;最近最少使用替换策略仅仅考虑了Cache块被访问的最近最新的信息,并没有考虑Cache块被访问的频率信息。
Claims (1)
1.一种多核架构下共享Cache的替换策略的实现方法,其特征在于:
1)对Cache组的进行分割:
每个Cache组set分成k个小组group,k=n/m,0<k<n+1且k、m、n为整数,n为Cache的相联度,0<m<n+1;
每个小组设置一个缺失计数器和一个策略选择器,缺失计数器用来记录小组发生的缺失数miss,策略选择器决定小组所采取的Cache替换策略;
2)亲近替换策略,其实施过程如下:
第一步:每个Cache组设置一个组命中标签和一个亲近队列,组命中标签用来决定逐出的Cache块是从亲近队列的顶部选择还是从亲近队列的底部选择,在访问这个Cache组之前,组命中标签被初始化为1,亲近队列中的Cache块初始位置和最近最少使用LRU栈中的Cache块位置相同;
第二步:当发生Cache命中时,在该组的亲近队列中,命中的Cache块和与其上面临近的Cache块交换位置,如果组命中标签为0,则更新为1,如果组命中标签为1,则不更新仍为1,如果命中的Cache块已经在亲近队列的顶部,不改变其位置;当发生Cache缺失时,在该组的亲近队列中,如果组命中标签为0,亲近队列顶部的Cache块作为要替换的Cache块,其余所有的Cache块向亲近队列顶部移动一个位置,组命中标签的值仍为0,进入到Cache的Cache块插在亲近队列的底部;如果组命中标签为1,则亲近队列底部的Cache块作为要替换的Cache块,组命中标签的值更新为0,进入到Cache的Cache块插在亲近队列的底部;当有两个小组group都采用亲近替换策略时,被替换出去的候选Cache块就有两个,块选择器从要被替换出去的候选Cache块中随机的选择一个作为要被替换的Cache块;
3)在多核架构下,根据在每个核上运行的程序的访问模式的不同,对不同的程序采用不同的替换策略,当发生一级Cache缺失时,共享二级Cache中的Cache组的工作过程如下:
当发生共享二级Cache缺失或命中时,发生Cache缺失或命中的小组的缺失计数器根据其所记录的Cache缺失数目,来决定本小组所采取的Cache替换策略,如果本小组发生的Cache缺失的数目miss不超过某个指定的值z,策略选择器就采用最近最少使用替换策略,反之,策略选择器采用亲近替换策略;
所述最近最少使用替换策略是指从Cache中替换出最近最少使用的Cache块,进入Cache的Cache块放在最近最多使用的位置MRU上,当一个Cache块发生命中时,则把该块放在最近最多使用的位置,其余所有的Cache块在最近最少使用LRU栈中下移一个位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910154021.8A CN101694640B (zh) | 2009-10-22 | 2009-10-22 | 多核架构下共享二级Cache的替换策略的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910154021.8A CN101694640B (zh) | 2009-10-22 | 2009-10-22 | 多核架构下共享二级Cache的替换策略的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101694640A true CN101694640A (zh) | 2010-04-14 |
CN101694640B CN101694640B (zh) | 2011-04-27 |
Family
ID=42093613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910154021.8A Expired - Fee Related CN101694640B (zh) | 2009-10-22 | 2009-10-22 | 多核架构下共享二级Cache的替换策略的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101694640B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989236A (zh) * | 2010-11-04 | 2011-03-23 | 浙江大学 | 一种指令缓存锁实现方法 |
CN102231139A (zh) * | 2011-06-29 | 2011-11-02 | 内蒙古大学 | 基于子组的自适应高速缓冲存储器块替换策略 |
CN102314397A (zh) * | 2011-09-23 | 2012-01-11 | 浙江大学 | 缓存数据块的处理方法 |
CN104977860A (zh) * | 2014-04-04 | 2015-10-14 | 发那科株式会社 | 使用多核心处理器执行顺序程序的控制装置 |
CN106383792A (zh) * | 2016-09-20 | 2017-02-08 | 北京工业大学 | 一种基于缺失感知的异构多核缓存替换方法 |
TWI585583B (zh) * | 2011-12-19 | 2017-06-01 | 英特爾股份有限公司 | 快取更換策略 |
CN107608910A (zh) * | 2011-09-30 | 2018-01-19 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
CN107704401A (zh) * | 2017-11-02 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种存储系统中缓存数据的置换方法、系统及存储系统 |
US9928179B2 (en) | 2011-12-16 | 2018-03-27 | Intel Corporation | Cache replacement policy |
-
2009
- 2009-10-22 CN CN200910154021.8A patent/CN101694640B/zh not_active Expired - Fee Related
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989236A (zh) * | 2010-11-04 | 2011-03-23 | 浙江大学 | 一种指令缓存锁实现方法 |
CN101989236B (zh) * | 2010-11-04 | 2012-05-09 | 浙江大学 | 一种指令缓存锁实现方法 |
CN102231139A (zh) * | 2011-06-29 | 2011-11-02 | 内蒙古大学 | 基于子组的自适应高速缓冲存储器块替换策略 |
CN102314397A (zh) * | 2011-09-23 | 2012-01-11 | 浙江大学 | 缓存数据块的处理方法 |
CN102314397B (zh) * | 2011-09-23 | 2014-03-19 | 浙江大学 | 缓存数据块的处理方法 |
CN107608910A (zh) * | 2011-09-30 | 2018-01-19 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
US11132298B2 (en) | 2011-09-30 | 2021-09-28 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes |
US9928179B2 (en) | 2011-12-16 | 2018-03-27 | Intel Corporation | Cache replacement policy |
TWI585583B (zh) * | 2011-12-19 | 2017-06-01 | 英特爾股份有限公司 | 快取更換策略 |
CN104977860B (zh) * | 2014-04-04 | 2017-11-17 | 发那科株式会社 | 使用多核心处理器执行顺序程序的控制装置 |
CN104977860A (zh) * | 2014-04-04 | 2015-10-14 | 发那科株式会社 | 使用多核心处理器执行顺序程序的控制装置 |
US10127045B2 (en) | 2014-04-04 | 2018-11-13 | Fanuc Corporation | Machine tool controller including a multi-core processor for dividing a large-sized program into portions stored in different lockable instruction caches |
CN106383792A (zh) * | 2016-09-20 | 2017-02-08 | 北京工业大学 | 一种基于缺失感知的异构多核缓存替换方法 |
CN106383792B (zh) * | 2016-09-20 | 2019-07-12 | 北京工业大学 | 一种基于缺失感知的异构多核缓存替换方法 |
CN107704401A (zh) * | 2017-11-02 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种存储系统中缓存数据的置换方法、系统及存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101694640B (zh) | 2011-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101694640B (zh) | 多核架构下共享二级Cache的替换策略的实现方法 | |
CN103885728B (zh) | 一种基于固态盘的磁盘缓存系统 | |
CN101158928B (zh) | 在mru分配期间采用软i-mru成员保护的方法和高速缓存系统 | |
CN103246613B (zh) | 缓存装置及用于缓存装置的缓存数据获取方法 | |
US20150052309A1 (en) | Combining associativity and cuckoo hashing | |
US20110238919A1 (en) | Control of processor cache memory occupancy | |
KR102453192B1 (ko) | 다른 캐시에서의 엔트리들의 가용성을 기반으로 한 캐시 엔트리 교체 | |
CN101571835B (zh) | 基于程序的需求来改变Cache组相联度的实现方法 | |
CN108762671A (zh) | 基于pcm和dram的混合内存系统及其管理方法 | |
CN102521158B (zh) | 一种实现数据预取的方法及装置 | |
Quan et al. | Prediction table based management policy for STT-RAM and SRAM hybrid cache | |
CN106569960A (zh) | 一种混合主存的末级缓存管理方法 | |
Mittal et al. | EqualWrites: Reducing intra-set write variations for enhancing lifetime of non-volatile caches | |
CN103902473A (zh) | 一种数据处理方法及数据缓存系统 | |
CN104504076A (zh) | 一种高并发和高空间利用率的分布式缓存方法 | |
US20080059714A1 (en) | System, method and storage medium for prefetching via memory block tags | |
CN101520751B (zh) | Cache的自适应插入策略的实现方法 | |
Hameed et al. | Adaptive cache management for a combined SRAM and DRAM cache hierarchy for multi-cores | |
CN101853218B (zh) | 用于磁盘阵列的读取方法和系统 | |
CN106126434B (zh) | 中央处理器的缓存区的缓存行的替换方法及其装置 | |
CN102521161B (zh) | 一种数据的缓存方法、装置和服务器 | |
Swain et al. | Analysis and predictability of page replacement techniques towards optimized performance | |
Appuswamy et al. | Cache, cache everywhere, flushing all hits down the sink: On exclusivity in multilevel, hybrid caches | |
Chen et al. | Efficient buffer management for PCM-enhanced hybrid memory architecture | |
KR101546707B1 (ko) | 하이브리드 메인 메모리 기반의 메모리 접근 관리방법 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110427 Termination date: 20121022 |