[发明专利]一种基于片上多核处理器共享cache的动态公平划分方法有效
申请号: | 200910243653.1 | 申请日: | 2009-12-18 |
公开(公告)号: | CN101739299A | 公开(公告)日: | 2010-06-16 |
发明(设计)人: | 方娟;蒲江 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 刘萍 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 多核 处理器 共享 cache 动态 公平 划分 方法 | ||
1.一种基于片上多核处理器共享cache的动态公平划分方法,其特征在 于,包括以下步骤:初始化、回溯和重划分;将应用程序的运行时间均匀分 块,每一块时间称为一个时间片t;初始化只在应用程序运行前执行一次,回 溯和重划分步骤则在每个时间片t结束后执行;设S2t为时间片t的公平性指 标,回溯阶段是若公平性指标S2t大于前一时间片的公平性指标S2t-1,且S2t与 S2t-1的差大于回溯阈值,则撤销前一次重划分;重划分阶段是若未发生回溯且 S2t大于重划分阈值,则对所有线程重新划分高速缓存Cache;
在该方法中,有四个基本的参数:回溯阈值Srollback、重划分阈值Srepartition、 划分粒度gran和时间片t;Srollback取值在1%~50%之间,Srepartition取值在1%~10% 之间,划分粒度gran即是划分的最小单位取值在64B~64KB之间,t取值在 100000~5000000个时钟周期之间;具体过程如下:
(1)初始化:
1.1)所有线程等分高速缓存Cache,Pi=Cache总容量/n,Pi表示线 程i所分配的Cache大小,n表示线程总数,Pti表示时间片t时线程i所分 配的Cache大小;
1.2)设M1为每指令的一级Cache缺失次数,E1为访问一级Cache命 中开销,E2为一级Cache缺失时访问二级Cache的命中开销,E3为二级 Cache缺失时访问主存的命中开销,CPIbase为平均每指令执行周期数;M1、 E1、E2、E3和CPIbase的值由所使用的计算机体系结构决定;
1.3)令α=CPIbase+E1+M1×E2,β=E3,计算出α和β;
(2)回溯阶段:在时间片t结束时,
2.1)计算时间片t时划分方案的公平性指标S2t:
2.1.1)读指令计数器获得时间片t内各线程执行的指令数Inum,读 独占缺失计数器获得各线程独占cache状态下的缺失数Missdi;
2.1.2)根据公式(I)计算出Tdedi,Tshri等于时间片t的长度,公 式(I)如下:
Tdedi=α×Inum+β×Missdi (I)
2.1.3)根据公式(II)计算Xi和Xi的均值,公式(II)如下:
2.1.4)根据公式(III)计算S2t,公式(III)如下:
2.2)若S2t<S2t-1,或|S2t-S2t-1|/S2t<Srollback则转到步骤(3);
2.3)若S2t≥S2t-1,且|S2t-S2t-1|/S2t≥Srollback,令Pt+1i=Pt-1i, 转到步骤(4);
(3)重划分阶段:回溯阶段结束后,
3.1)若S2t<Srepartition,则转到步骤(4);
3.2)若S2t≥Srepartition,则设Yi=Xi-∑Xi/n,划分集PS={Pt1,Pt2,…, Ptn}和候选集CS={1,2,…,n};
3.3)如|CS|≥2,选出Yi中的最大值m axYk和最小值minYj,k和j 分别是最大值和最小值的线程号;若maxYk≤0或minYj≥0则转到步骤 3.6);
3.4)如Ptj=gran,则CS′=CS-{j},转到步骤3.3);
3.5)Pt+1k=Ptk+gran,Pt+1j=Ptj-gran,CS′=CS-{k,j},转到 步骤3.3);
3.6)若CS′中还有剩余的线程号i,则令Pt+1i=Pti;
(4)转到步骤(2),直至n个线程运行结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910243653.1/1.html,转载请声明来源钻瓜专利网。