一种面向低功耗的多核共享Cache混合划分方法

文档序号:6655060阅读:317来源:国知局
专利名称:一种面向低功耗的多核共享Cache混合划分方法
技术领域
本发明属于计算机体系结构领域,具体涉及一种面向低功耗的多核共享Cache混 合划分方法。
背景技术
随着片上集成的核心数目的增加,处理器表面温度也变得越来越高并呈指数增 长。高功耗不仅仅意味着大量的能源消耗,热堆积和不断增加的功耗密度还将威胁到系统 的稳定性。过高的功耗会限制处理器性能的提升,而如果进一步提高频率或增加缓存的容 量,又会使处理器的功耗继续向上攀升,进而走入一个恶性循环。面对处理器的功耗压力, 低功耗设计已经成为未来微处理器设计中的核心问题。然而,目前对多核共享二级Cache划分策略的研究几乎都是面向吞吐量或者公平 性的,面向低功耗的研究极少。仅有的面向低功耗的划分方法是在牺牲性能的基础上实现 的,并没有对划分方法进行实质性的改进。

发明内容
本发明利用程序运行的局部性原理,通过私有和共享两种资源分配方式相结合来 实施Cache划分,从而实现在运行同一个应用时,使用尽可能少的Cache列,关闭剩余列,达 到降低系统功耗的目的。在保证系统性能方面,本发明采用了系统IPC作为评价系统性能 的指标,IPC是每个时钟执行的指令数(Instruction Per Cycle)。本发明提供技术方案如下本发明所述的动态划分策略主要分成三个步骤初始化、划分和回溯。在算法中, 有四个基本的参数差异度阈值Rshm、回溯阈值IPC[initial]、性能损失阈值PLT和时间片t。 Rshare 一般取值在50% 200%,IPC[initial]取值在试验中取得,PLT取值在0 3%之间,t 取值在100000 5000000个时钟周期之间。算法的主要过程如下1、一种面向低功耗的多核共享Cache混合划分方法,其特征在于包含以下步骤(1)初始化1. 1)将每个线程作为一个单独的划分单位,给每个划分单位划分一列二级 Cache ;1.2) 一个时间片t后,判断程序是否运行结束,结束则跳转到步骤0),否则继续 执行步骤1. 3);时间片t是指将应用程序的运行时间均勻分块,每块时间称为一个时间片 t ;1.3)根据公式①计算系统性能IPC[pari,IPC是每个时钟执行的指令数 (Instruction Per Cycle);
_] iPC[par]=pPC[am] = ia+^xm 其中,η表示应用程序所包含的线程总数,示线程i (1彡i彡η)的每个时钟执行的指令数,用来表征线程i的性能,根据下式②计算得到 [。。14] ΙΡ€^ = α + β\θχχ) ②式中的α和β计算公式如下式③,θ Αχ)是根据栈距离特性获取的线程i的 失效率,表示当为线程i分配χ大小的二级Cache时,线程i在时间片t内的缺失次数;α = CPI^+Ei+MiXE^ β = E3③③式中的CPI[base]为平均每条指令的执行周期数,E1为访问一级Cache的命中开 销,M1为一级Cache的缺失次数,E2为一级Cache缺失时访问二级Cache的命中开销,E3为 二级Cache缺失时访问主存的命中开销;Mp Ep E2、E3和CPI[base]的值由所使用的计算机体 系结构决定;1. 4)若此时系统性能IPC[pari彡(I-PLT) IPC[initial],则关闭剩余的Cache列,执行 步骤⑶;否则执行步骤⑵;其中,回溯阈值IPC[initial]表示Cache进行单纯列划分时的系 统性能,PLT表示性能损失阈值;(2)划分阶段令所有未合并的线程T组成线程集TS,TS = ITi I 1彡i彡η}2. 1)若I TS I彡2,执行步骤2. 2),否则跳转到步骤2. 5);2. 2)根据公式④计算TS中任意两个线程访问Cache列的差异度Iidiff ;Rdiff = I Pi-Pj I,(1 彡 i 彡 n,1 彡 j 彡 η 且 i 乒 j)④其中P是线程访问偏度,由式⑤计算得到,P = Uup; U-"⑤
used本发明将Cache的每一列均分为上下两部分,Uup表示在线程所分得的一列Cache 中,上半部分访问过的Cache块数,Ud_表示下半部分访问过的块数,Uused表示这一列中访 问过的Cache块总数;2. 3)对于所有差异度Rdiff满足Iidiff彡Rshare的线程对,将Iidiff取得最大值的两个 线程<Ti; Tj>合并为一个划分单位,TS = TS-ITi, Tjl ;其中,Rshare表示差异度阈值;2. 4)若I TS I彡2,则执行步骤2. 3),否则执行步骤2. 5);2. 5)判断是否有未划分的Cache列,是则执行2. 6),否则执行步骤(3);2. 6)计算所有划分单位的IPC增加量Plus_IPCk(X)值,Plus_IPCk(χ)是指当划分 单位k(l彡k彡η)分配的Cache列从χ (χ e
(x + l) -IPC[am]{X),当划分单位Α只含有一个线程Plus 7 (^0) = <|二「1⑥
—Σ[炉和+1)—7忙⑶],当划分单位砲含两个线程其中,函数的计算公式如上式②;2. 7)划分一列Cache给取的最大Plus_IPCk (χ)的划分单位;2. 8)根据式①计算系统划分性能IPC[pari ;2. 9)如果此时IPC[pari彡(I-PLT) IPC[initial],则划分阶段结束,关闭剩余的Cache 列,转到步骤⑶;否则执行2. 5);(3)回溯阶段程序运行一个时间片t后,
5
3. 1)程序是否运行结束,是则转到步骤(4),否则执行步骤3. 2);3. 2)根据式①计算系统划分性能IPC[pari ;3.3)如果此时IPC[pari彡(I-PLT) IPC[initial],转到步骤(3),否则,恢复初始划分, 执行⑵;(4)输出运行结果,用功耗评估工具评估系统所节省的功耗。在上述划分策略的执行过程中,本发明采用了 IPCanstruction Per Cycle 每个 时钟运行的命令条数)作为系统性能的度量标准,用失效率和理想IPC的合式来表征系统 的性能,如式①。综上述,本划分算法的主旨是将面向低功耗的多核Cache划分问题转化为 了在满足式⑦求解式⑧的问题。t^j^-p咖
权利要求
1. 一种面向低功耗的多核共享Cache混合划分方法,其特征在于包含以下步骤(1)初始化1.1)将每个线程作为一个单独的划分单位,给每个划分单位划分一列二级Cache ;1.2)—个时间片t后,判断程序是否运行结束,结束则跳转到步骤G),否则继续执行 步骤1. 3);时间片t是指将应用程序的运行时间均勻分块,每块时间称为一个时间片t ;1.3)根据公式①计算系统性能IPC[pari,IPC是每个时钟执行的指令数(Instruction Per Cycle);
全文摘要
本发明涉及一种面向低功耗的多核共享Cache混合划分方法,属于计算机体系结构领域。随着片上集成的核心数目的增加,低功耗设计成为必然趋势,然而目前的Cache划分方法大都是面向吞吐量或者公平性的,忽视了功耗问题。本发明提供了一种新的面向低功耗的划分方法。划分方法利用程序的局部性原理,将在二级Cache中访问差异度较大的线程合并为一个划分单位来实现Cache列划分,从而在运行同一个应用时,使用较少的Cache列,关闭剩余的Cache列,在满足性能的基础上达到降低功耗的目的。
文档编号G06F1/32GK102135793SQ20111007672
公开日2011年7月27日 申请日期2011年3月29日 优先权日2011年3月29日
发明者方娟, 杜文娟 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1