[发明专利]多核下基于Cache划分的自适应路预测算法有效
申请号: | 201110106202.0 | 申请日: | 2011-04-26 |
公开(公告)号: | CN102193875A | 公开(公告)日: | 2011-09-21 |
发明(设计)人: | 方娟;郭媚 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 刘萍 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多核 基于 cache 划分 自适应 预测 算法 | ||
技术领域
本发明属于计算机体系结构领域,具体涉及多核下基于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)中的未命中的预测路编号;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110106202.0/2.html,转载请声明来源钻瓜专利网。