CN102193875B - 多核下基于Cache划分的自适应路预测算法 - Google Patents
多核下基于Cache划分的自适应路预测算法 Download PDFInfo
- Publication number
- CN102193875B CN102193875B CN2011101062020A CN201110106202A CN102193875B CN 102193875 B CN102193875 B CN 102193875B CN 2011101062020 A CN2011101062020 A CN 2011101062020A CN 201110106202 A CN201110106202 A CN 201110106202A CN 102193875 B CN102193875 B CN 102193875B
- Authority
- CN
- China
- Prior art keywords
- road
- l2cache
- data
- cache
- tag
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
多核下基于Cache划分的自适应路预测算法,属于计算机体系结构领域。目前,低功耗和热优化设计已经成为微处理器研究中的核心问题。多核处理器的多核心结构决定了其相关的功耗研究是一个至关重要的课题。本发明利用程序运行的局部性原理,并针对多核处理器环境,将Cache划分与Cache的路预测相结合,在Cache划分的结果上采用自适应的路预测算法,在保持原有的系统性能水平的前提下,达到进一步降低Cache功耗的目的。
Description
技术领域
本发明属于计算机体系结构领域,具体涉及多核下基于Cache划分的自适应路预测算法。
背景技术
半导体工艺的迅速发展使微处理器的集成度越来越高,同时处理器表面温度也变得越来越高并呈指数增长,每三年处理器的功耗密度就能翻一番。目前,低功耗和热优化设计已经成为微处理器研究中的核心问题。多核处理器的多核心结构决定了其相关的功耗研究是一个至关重要的课题。目前,针对处理器体系结构级的功耗节省主要针对Cache,通过降低Cache的动态和静态能耗来达到降低系统功耗的目的。
在降低Cache的动态能耗方面,Cache路预测是较早提出的优化Cache性能和降低Cache动态功耗的方法,并且该方法已经在嵌入式系统领域得到了较为成熟的应用。但是,目前在多核处理器环境下并没有采用路预测方法来降低Cache的动态能耗。
发明内容
本发明利用程序运行的局部性原理,通过把程序访问过的数据路存放在路预测表中,以便下次再访问该路数据时,可以由路预测表给出预测路,然后直接访问该路数据,达到减少访问的Cache路数从而降低Cache访问功耗的效果。本发明针对多核处理器环境,将Cache划分与Cache的路预测相结合,在Cache划分的结果上采用自适应的路预测算法,在保持原有的系统性能水平的前提下,达到进一步降低Cache功耗的目的。
本发明为了达到上述目的,本发明在传统的L2Cache结构中增加了路划分表和路预测表两个模块,路划分表存放多核处理器中各处理器核被划分得到的L2Cache路的路编号,路预测表存放着对L2Cache中各Cache组的数据tag和预测路的路编号。本发明所述的自适应路预测算法是在对L2Cache进行划分后,根据划分情况,决定是否进行路预测。算法的流程如下:
(1)初始化路预测表和路划分表:设定L2Cache是N路组相联的且大小为R kb,L2Cache line的大小为L b,则路预测表存放组数据;使用的L2Cache划分算法是LRU替换算法(也可用PLRU算法或者其他动态Cache划分算法),将对L2Cache划分的结果存放在一个路划分表中,路划分表存放L2Cache中的Cache路被划分给每个处理器核的情况,每个处理器核至少会被划分得到1路Cache,则将每个处理器核所得到的Cache路的路编号存放在路划分表中;
(2)当处理器核发出一个L2Cache的访问时,获取该处理器核的编号PID,再以此编号为索引检索路划分表,得到该处理器核对L2Cache路的占有情况,即占有的路编号way_num和数量way_count;
(3)如果该处理器核拥有的L2Cache路数量way_count为1,则不需进行路预测,跳转到(9);如果way_count>1,则进行路预测(4);
(4)将L2Cache访问的地址tag与路预测表中的tag表项进行比较,如果两个tag相等,则取出对应预测路的编号way_num;其中路预测表中存放着对各L2Cache组的预测路信息,路预测表用一个Cache表实现,表项内容为L2Cache数据块地址的tag和数据块所在的路编号way_num,数据块地址的tag标识是地址编码中除去块内地址offset和组号set外的地址位,以上述假设L2Cache line的大小为L b,则块内地址需要log2L bit,L2Cache共有组,则需要bit位来标识组号,剩余的地址位就是访问地址的tag标识;因为L2Cache有N路,则需要log2N bit位来标识路编号;
(5)由给出的way_num直接定位到该路数据,将访问地址的tag与该路数据地址的tag进行比较,若tag相等则说明路预测命中,则读出数据,完成此次L2Cache访问;否则到(6);
(6)将访问地址的tag与属于该处理器核的除预测路外的Cache路中的数据地址tag进行比较,如果有相等的tag,则读取该路数据,进入(7),否则进入(8)。
(7)数据在L2Cache中,更新路预测表,即用命中的数据路编号替换掉在步骤(5)中的未命中的预测路编号;读出数据,完成此次数据访问;
(8)如果访问的数据并不在L2Cache中,则发生Cache缺失,需要从内存中寻找所需数据,采用LRU算法进行Cache替换,将需要的数据读入L2Cache中;更新路预测表中的内容,即将内存数据读入L2Cache后所在的Cache路编号替换掉(5)中的未命中的预测路编号;
(9)根据路划分表得出该处理器核所占有的1路cache路的路编号way_num,直接比较该路数据地址的tag是否与访问地址tag相等,若相等,则读取数据完成访问,否则,跳转到(8)。
采用自适应路预测算法的L2Cache能耗分析:
对组相联Cache的访问总的能耗ECache可以由以下几项的和近似给出:
●EDecode:驱动地址总线以及解码内存地址所需要的能耗;
●EMemory:访问Cache中的tag和data,主要是使能数据块以及传感放大器等所需要的能耗;
●EI/O:当发生Cache缺失,进行Cache替换时导致的I/O驱动能耗。
由于EDecode远远小于EMemory,而当Cache有较高的命中率时,EI/O对Cache总体能耗的影响是非常小的,所以ECache的计算可简化为:
ECache≈EMemory
=NTag×ETag+NData×EData (1)
其中NTag、NData表示Cache访问时访问到的tag数量和data数量,ETag、EData则表示访问一个tag和一个data时所需的能耗。传统的组相联Cache访问时,无论是否命中,Cache组中的所有路上的tag和data都要被使能,假设Cache访问可以在一个时钟周期(cycle)内完成,则用传统的访问方式L2Cache的能耗与时间公式为:
ECSACache=NTag×ETag+NData×EData (2)
TCSACache=1 (3)
加路预测技术后的L2Cache访问的能耗与时间公式:
EWPSACache=(ETag+EData)+(1-PHR)×{(NTag-1)×ETag+(NData-1)×EData} (4)
TWPSACache=1+(1-PHR)×1 (5)
其中,PHR是路预测的命中率。
使用自适应路预测算法后的L2Cache访问的能耗与时间公式:
EAWPSACache=(ETag+EData)+(1-PHR)×{(way_count-1)×ETag+(way_count-1)×EData}
(6)
TAWPSACache=1+(1-PHR)×1 (7)
其中,PHR是路预测的命中率,way_count是发出Cache访问的处理器核所分配到的Cache路的路数量,因为每个处理器核至少需要分配一路Cache才能保证该处理器核的正常工作,所以一个处理器核最多可以拥有的Cache路数为(N-C)+1,N是L2Cache的相联度,C是处理器核总数,而通常C>2,所以(N-C)+1<(N-1),则way_count<(NTag–1)。由此,可以得出理论上,自适应的路预测算法在同样的访问效率下,可以取得比一般路预测算法更多的能耗节省。
附图说明
图1是采用本发明所述算法的L2Cache结构示意图;
图2是本发明所述算法的流程图。
具体实施方式:
下面以两级Cache结构的片上多核处理器为例,对本发明所述的自适应路预测算法进行详细的描述。
配置如表1:
表1
具体的算法流程:
(1)初始化路划分表和路预测表:使用的L2Cache划分算法是LRU替换算法,将对L2Cache划分的结果存放在路划分表中。路划分表行的大小由多核处理器包含的处理器核数决定,如图1所示,路划分表共有4行5列,每一行对应一个处理器核,每列存放该处理器核所占有的L2Cache中的路的编号,图1中处理器核core0被划分得到编号为000、001、010的共3路L2Cache路;以表1的多核处理器为例,则路预测表有组数据,每次L2Cache访问后都要根据此次访问数据的访问频度,对路预测表内容进行MRU替换,其中MRU(Most RecentlyUsed)算法会选择最近最常使用的数据替换出路预测表,采用该算法的理由是:当文件在顺序访问时,MRU算法是最佳选择;
(2)当处理器核发出一个L2Cache的访问时,以该处理器核的编号PID(processor_ID)为索引检索路划分表,得到该处理器核对L2Cache中路的占有情况,即占有的路编号way_num和数量way_count,以图1为例,如果PID为0,则way_num分别为000、001、010,而way_count=3;
(3)如果该处理器核拥有的L2Cache路数量way_count=1,如图1中core2处理器核只占有编号为101的L2Cache路,则处理器核core2不需要进行路预测,跳转到(9);如果way_count>1,则进行路预测(4)。
(4)将L2Cache访问的地址tag与路预测表中的tag进行比较,如果相等,得出对应的预测路编号way_num。其中路预测表中存放着对各L2Cache组的预测路信息,路预测表用一个Cache表实现,以表1的多核处理器为例,则路预测表有组数据,表项内容为L2Cache数据块地址的tag和数据块所在的路编号way_num。其中数据块地址的tag标识是地址编码中除去块内地址(offset)和组号(set)外的地址位,则32位的数据地址中,其中块内地址需要log2L=log264=6bit,而L2Cache共有1K组,则需要标识组号,剩余的32-6-10=16bit就是访问地址的tag标识。因为L2Cache有8路,则需要3bit位来标识路编号。
(5)由给出的way_num直接定位到该路数据,将访问地址的tag与该路数据地址的tag进行比较,若tag相等则说明路预测命中,则读出数据,完成此次L2Cache访问;否则到(6)。
(6)将访问地址的tag与属于该处理器核的除预测路外的Cache路中的数据地址tag进行比较,以图1中的处理器核core0为例,如果步骤(5)给出的预测路为000路即way0没有命中,则用访问地址的tag与属于core0的除000路外的剩余两路Cache路即001、010路中的tag进行比较,如果有相等的tag,则读取该路数据,进入(7),否则进入(8)。
(7)数据在L2Cache中,更新路预测表,即用命中的数据路编号,假设步骤(6)中core0访问的数据在001路Cache中,则在路预测表中,用001路编号替换掉在步骤(5)中的未命中的预测路编号000;读出数据,完成此次数据访问;如果,数据不在L2Cache中,则进入(8)。
(8)如果访问的数据并不在L2Cache中,则发生Cache缺失,需要从内存中寻找所需数据,采用LRU算法进行Cache替换(也可用PLRU或者其他动态Cache划分算法),将需要的数据读入L2Cache中;更新路预测表中的内容,即将内存数据读入L2Cache后所在的Cache路编号替换掉(5)中的未命中的预测路编号;。
(9)根据路划分表中得出该处理器核所占有的1路Cache路的路编号way_num,如图1中core2处理器核就只拥有一路Cache,路编号为101即way5,则直接判断way5路中数据地址的tag是否与访问地址tag相等,如果相等,则读取数据完成访问,否则,跳转到(8)。
能耗分析:
假设Cache访问可以在一个时钟周期(cycle)内完成,则以上述多核处理器的模拟为例用传统的访问方式L2Cache的能耗与时间公式为:
ECSACache=8×ETag+8×EData (8)
TCSACache=1 (9)
加路预测技术后的L2Cache访问的能耗与时间公式:
EWPSACache=(ETag+EData)+(1-PHR)×{7×ETag+7×EData} (10)
TWPSACache=1+(1-PHR)×1
(11)
其中,PHR是路预测的命中率。
自适应路预测L2Cache访问的能耗与时间公式:
EAWPSACache=(ETag+EData)+(1-PHR)×{(way_coun-1)×ETag+(way_count-1)×EData}
(12)
TAWPSACache=1+(1-PHR)×1 (13)
其中,PHR是路预测的命中率,way_count是发出Cache访问的处理器核所分配到的Cache路的路数量,而这个way_count≤5<7,即EAWPSACache<EWPSACache。理论上,采用基于Cache划分的自适应路预测算法后,预计L2Cache的动态能耗可以节省20%~40%。
Claims (1)
1.多核下基于Cache划分的自适应路预测算法,其特征在于步骤如下:
(1)初始化路预测表和路划分表:设定L2Cache是N路组相联的且大小为R kb,L2Cache line的大小为L b,则路预测表存放组数据;使用L2Cache划分算法,将对L2Cache划分的结果存放在一个路划分表中,路划分表存放L2Cache中的Cache路被划分给每个处理器核的情况,每个处理器核至少会被划分得到1路Cache,则将每个处理器核所得到的Cache路的路编号存放在路划分表中;
(2)当处理器核发出一个L2Cache的访问时,获取该处理器核的编号PID,再以此编号PID为索引检索路划分表,得到该处理器核对L2Cache路的占有情况,即占有的路编号way_num和数量way_count;
(3)如果该处理器核拥有的L2Cache路数量way_count为1,则不需进行路预测,跳转到(9);如果占有的路数量way_count>1,则进行路预测(4);
(4)将L2Cache访问的地址tag与路预测表中的tag表项进行比较,如果两个tag相等,则取出对应预测路的编号way_num;其中路预测表中存放着对各L2Cache组的预测路信息,路预测表用一个Cache表实现,表项内容为L2Cache数据块地址的tag和数据块所在的路编号way_num,数据块地址的tag标识是地址编码中除去块内地址offset和组号set外的地址位,上述设定L2Cache line的大小为L b,则块内地址需要log2L bit,L2Cache共有 组,则需要bit位来标识组号,剩余的地址位就是访问地址的tag标识;L2Cache有N路,则需要log2N bit位来标识路编号;
(5)由给出的way_num直接定位到该路数据,将访问地址的tag与该路数据地址的tag进行比较,若tag相等则说明路预测命中,则读出数据,完成此次L2Cache访问;否则到(6);
(6)将访问地址的tag与属于该处理器核的除预测路外的Cache路中的数据地址tag进行比较,如果有相等的tag,则读取该路数据,进入(7),否则进入(8);
(7)数据在L2Cache中,更新路预测表,即用命中的数据路编号替换掉在步骤(5)中的未命中的预测路编号;读出数据,完成此次数据访问;
(8)如果访问的数据并不在L2Cache中,则发生Cache缺失,需要从内存中寻找所需数据,进行Cache替换,将需要的数据读入L2Cache中;更新 路预测表中的内容,即将内存数据读入L2Cache后所在的Cache路编号替换掉(5)中的未命中的预测路编号;
(9)根据路划分表得出该处理器核所占有的1路cache路的路编号way_num,直接比较该路数据地址的tag是否与访问地址tag相等,若相等,则读取数据完成访问,否则,跳转到(8)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101062020A CN102193875B (zh) | 2011-04-26 | 2011-04-26 | 多核下基于Cache划分的自适应路预测算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101062020A CN102193875B (zh) | 2011-04-26 | 2011-04-26 | 多核下基于Cache划分的自适应路预测算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102193875A CN102193875A (zh) | 2011-09-21 |
CN102193875B true CN102193875B (zh) | 2013-08-14 |
Family
ID=44601970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101062020A Expired - Fee Related CN102193875B (zh) | 2011-04-26 | 2011-04-26 | 多核下基于Cache划分的自适应路预测算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102193875B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150266B (zh) * | 2013-02-20 | 2015-10-28 | 北京工业大学 | 一种改进的多核共享cache替换方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1415092A (zh) * | 2000-01-03 | 2003-04-30 | 先进微装置公司 | 当预测路线失败时从非预测路线提供局部标记以指导搜索的高速缓存 |
CN1518700A (zh) * | 2001-06-22 | 2004-08-04 | 皇家菲利浦电子有限公司 | 高速和准确的高速缓存通路选择 |
CN1675626A (zh) * | 2002-08-12 | 2005-09-28 | 皇家飞利浦电子股份有限公司 | 用于转移目标的指令高速缓冲存储器通路预测 |
-
2011
- 2011-04-26 CN CN2011101062020A patent/CN102193875B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1415092A (zh) * | 2000-01-03 | 2003-04-30 | 先进微装置公司 | 当预测路线失败时从非预测路线提供局部标记以指导搜索的高速缓存 |
CN1518700A (zh) * | 2001-06-22 | 2004-08-04 | 皇家菲利浦电子有限公司 | 高速和准确的高速缓存通路选择 |
CN1675626A (zh) * | 2002-08-12 | 2005-09-28 | 皇家飞利浦电子股份有限公司 | 用于转移目标的指令高速缓冲存储器通路预测 |
Also Published As
Publication number | Publication date |
---|---|
CN102193875A (zh) | 2011-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8103894B2 (en) | Power conservation in vertically-striped NUCA caches | |
Wang et al. | Figaro: Improving system performance via fine-grained in-dram data relocation and caching | |
Meza et al. | Enabling efficient and scalable hybrid memories using fine-granularity DRAM cache management | |
Stuecheli et al. | The virtual write queue: Coordinating DRAM and last-level cache policies | |
Kumar et al. | Amoeba-cache: Adaptive blocks for eliminating waste in the memory hierarchy | |
KR101532289B1 (ko) | 메모리 내 cpu 캐시 아키텍처 | |
US20140281248A1 (en) | Read-write partitioning of cache memory | |
Basu et al. | Scavenger: A new last level cache architecture with global block priority | |
US11221665B2 (en) | Static power reduction in caches using deterministic naps | |
Kim et al. | Partitioned instruction cache architecture for energy efficiency | |
US20060143400A1 (en) | Replacement in non-uniform access cache structure | |
Park et al. | A multistep tag comparison method for a low-power L2 cache | |
CN102193875B (zh) | 多核下基于Cache划分的自适应路预测算法 | |
Zhang et al. | Design and optimization of large size and low overhead off-chip caches | |
Sleiman et al. | Embedded way prediction for last-level caches | |
Park et al. | A novel tag access scheme for low power L2 cache | |
CN103150266B (zh) | 一种改进的多核共享cache替换方法 | |
Kong et al. | Towards refresh-optimized EDRAM-based caches with a selective fine-grain round-robin refresh scheme | |
Wen et al. | Reducing cache leakage energy for hybrid SPM-cache architectures | |
Keramidas et al. | Revisiting cache resizing | |
Chang et al. | OCMAS: online page clustering for multibank scratchpad memory | |
Wang et al. | ULV-Turbo cache for an instantaneous performance boost on asymmetric architectures | |
He et al. | TCache: An energy-efficient DRAM cache design | |
Ting et al. | Cycle-time-aware sequential way-access set-associative cache for low energy consumption | |
Panda et al. | Power-efficient Memory and 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: 20130814 Termination date: 20180426 |