首页> 中国专利> 多核下基于Cache划分的自适应路预测算法

多核下基于Cache划分的自适应路预测算法

摘要

多核下基于Cache划分的自适应路预测算法,属于计算机体系结构领域。目前,低功耗和热优化设计已经成为微处理器研究中的核心问题。多核处理器的多核心结构决定了其相关的功耗研究是一个至关重要的课题。本发明利用程序运行的局部性原理,并针对多核处理器环境,将Cache划分与Cache的路预测相结合,在Cache划分的结果上采用自适应的路预测算法,在保持原有的系统性能水平的前提下,达到进一步降低Cache功耗的目的。

著录项

  • 公开/公告号CN102193875A

    专利类型发明专利

  • 公开/公告日2011-09-21

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN201110106202.0

  • 发明设计人 方娟;郭媚;

    申请日2011-04-26

  • 分类号G06F12/08;

  • 代理机构北京思海天达知识产权代理有限公司;

  • 代理人刘萍

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2023-12-18 03:13:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-12

    未缴年费专利权终止 IPC(主分类):G06F12/08 授权公告日:20130814 终止日期:20180426 申请日:20110426

    专利权的终止

  • 2013-08-14

    授权

    授权

  • 2011-11-23

    实质审查的生效 IPC(主分类):G06F12/08 申请日:20110426

    实质审查的生效

  • 2011-09-21

    公开

    公开

说明书

技术领域

本发明属于计算机体系结构领域,具体涉及多核下基于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共有组,则需要位来标识组号,剩余的地址位就是访问地址的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 Recently Used)算法会选择最近最常使用的数据替换出路预测表,采用该算法的理由是:当文件在顺序访问时,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%。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号