具体实施方式
现在结合附图和实施例对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成,且其不应理解为对本发明的限制。
NoC动态功耗模型
在NoC中,路由器的功率与其电压和频率有关,所以构建路由器的功率和其频率之间的量化关系是有必要的。在给定路由器结构和电路实现情况下,可得到一个结构层的参数化NoC路由器功耗模型。例如,NoC中有4个路由器,其功耗可以表示为:Power=2·f1+f2+f3+2f4。则每个路由器的功耗可以表示为:
pi=g(fi)(1);
其中1≤i≤4,pi第i路由器的功率,fi表示第i个路由器的频率,g是路由器工作频率和路由器功率之间的函数关系式。
NoC性能模型
在NoC中,一个数据包由多个帧(flit)构成,第一个帧被称作为帧头(head-flit),其它帧被称作为数据帧(body-flit)。一个数据包的延迟包括帧头的等待时间和数据帧的传输时间。NoC的性能可以用数据包的网络延迟表示,延迟低则表明NoC性能好。如上述含4个路由器的NoC的例子,其性能可以表示为:LNoC=1/f1+2/f2+4/f3+3/f4,其中fi∈{2,4,6}。NoC延迟可以由公式(2)和公式(3)表示。
其中s表示源路由器,d表示目的路由器,Ps→d表示一个数据包从源路由器s产生并发送到目的路由器d的概率,n表示网络中路由器数目,Φs→d表示某个数据包从s到d所经过的路由器集合,wi表示路由器i中head-flit的等待时间,ti表示路由器i中body-flit的传输时间。
帧头head-flit的等待时间和数据帧body-flit的传输时间分别可以由如下的公式(4)和(5)表示:
其中λi表示路由器i的帧到达率,μi表示路由器i的服务率,Xi表示路由器i的服务时间分布,fi表示路由器i的工作频率,V表示路由器的平均剩余服务时间分布(当且仅当时钟周期有效的时候,一个帧的服务才有效,否则就需要等待),Si表示数据包的大小(依赖于应用特征),W表示网络带宽。于是NoC中所有数据包的网络延迟可表示为:
其中 h(fi)=wi,ai和bi独立于路由器的工作频率,可以周期性地计算得到。通过监测路由器帧的到达率等参数,公式(6)可以周期性地得到更新。
问题定义
假设NoC有n个路由器,路由器的频率定义为f1,f2,…,fn,每个路由器有M个可调频率F1,F2,…,FM,即fi∈{F1,F2,…,FM}。假设路由器的功耗可以由公式(1)表示,路由器的性能可以由公式(6)表示。那么在给定功率P的限制条件下,最大化NoC的性能(NoC网络延迟最小)问题可以转化成如下的问题:片上网络NoC中每个路由器分别从F1,F2,…,FM中选择一个合适的工作频率使得NoC的网络延迟最小(性能最优),且所有的路由器消耗的功率之和不能超过给定的功率P。例如,上述含4个路由器的NoC的例子中,假设功耗限制为P=20,那么在功耗限制条件下求取最优性能可以表示为:
在2·f1+f2+f3+2f4≤20时,求minLNoC=1/f1+2/f2+4/f3+3/f4,其中fi∈{2,4,6}。该问题在数学意义上就可以简单的表述为:
其中fi∈{F1,F2,…,FM},M表示频率级别。
NoC功率分配方法
方法总体设计
根据上述定义的问题,该问题类似于一个多选择的背包问题,n个路由器对应于n组物品,第i组中有m个物品,对应于路由器i有m个可选频率,背包的容量即是NoC的可分配功率P。一旦从某一组中选定一个物品装入背包,对应于某个路由器工作在某一个频率下。第i组中的物品j有唯一的价值Vi,j和唯一的重量Wi,j对应于在NoC中第i个路由器工作在频率j的时候有唯一的网络延迟值Li,j和唯一的功率消耗Pi,j。
然而,背包问题可以利用动态规划算法在多项式时间来内求得最优解,动态规划算法的求解过程实际上可以看作是一个求解多阶段网络的过程。鉴于此,也可以通过先构建网络然后采用动态规划的思想来求解。其求解思想如下:
设(fj∈{F1,F2,…,FM})表示前i个路由器的总功率为p的条件下产生的最小网络延迟。表示前i个路由器的功率之和。当第i个路由器设定频率为fk时,
如果 则Li,p=Li-1,p
否则
Fm∈{F1,F2,…,FM}。
通过上面两步迭代n次后得到Ln,p,即求得功率限制P下,n个路由器的网络最小延迟。
为了能快速地求解上述问题,我们提出了一个ReFiFS(Real-timeFine-grainedFrequencyScaling,实时细颗粒度的功率分配方法)方法,在该方法中,通过使用动态功率分配网络PBN(PowerBudgetNetwork,PBN)来实现实时功率计算和分配,其整体框架如图1所示。
图1中每一个路由器配置一个PBN单元(主要负责在线功率计算和分配),所有的PBN单元构成一个PBN。每一个PBN单元主要负责:
(1)实时更新边的权重:在线监测Ps→d和λi,PBN单元中的计算单元按照公式(8)实时计算网络延迟,并更新本PBN单元和下一个PBN单元之间相应边权重w;
(2)求解PBN的最优解:NoC功率分配问题可以使用功率分配网络(PBN)来解决,寻求路由器的最优频率等价于在PBN中遍历一条权重最短的路径;
(3)在线完成功率分配。功率分配单元按照求解所得的频率值计算各自对应路由器的功率并进行功率分配。
在PBN中,每个节点表示不同的功率分配值。若路由器分配一个频率值产生的功耗等于相邻两个阶段中任意两个节点的功率分配值之差,则在这两点间加一条边。该边的权重是aih(fi)+bi(该频率之下得到的网络延迟,由公式(8)得到)。此时在PBN中遍历的一条路径对应于一个在功率限制条件下可行的功率分配方案,则遍历一条最短路径对应在功率限制条件下能得到性能最优(延迟最小)的功率分配方案。
最短路径方法求解该类问题最优解是十分有效的。如对上述的含4个路由器的NoC的例子,若NoC平均分配功率,则频率只能取f1=f2=f3=f4=2,得到的网络延迟是5;若用分块管理功率的方法,频率可为f1=f2=2,f3=f4=4,得到的延迟是3.25;但是若用最短路径方法求得频率为f1=2,f2=4,f3=4,f4=4,得到的网络延迟是2.5。
定义功率分配网络(PBN)
功率分配网络(PBN)是一个带权重的有向无环图DAG(V,E,w),V代表图的节点集,E代表边集,w代表边的权重,如图2所示。
·DAG(V,E,w)中有n+2个阶段,用si(1≤i≤n)表示,si表示第i个PBN单元,即每个PBN单元包含PBN的一列节点,s0和sn+1是虚拟阶段。
·DAG(V,E,w)有(pk+1)×n+2个节点,pk为不同的功率分配值,n表示有n个路由器。图中每一列表示一个阶段,共有n+2个阶段。其中阶段0和阶段n+1是虚拟阶段。节点用vi,j表示,其含义是从阶段0到阶段i总功耗等于j的节点。
·相邻两个阶段si和阶段si+1中的任意两个节点vi,j和vi+1,j,如果(0≤i≤n-1且1≤m≤M),那么在节点vi,j和vi+1,j之间加一条边e(i,j),(i+1,k)。同时这条边的权重w(i,j),(i+1,k)=ai+1.h(fi+1)+bi+1,即表示路由器i+1在此频率下产生的网络延迟为ai+1.h(fi+1)+bi+1。
·虚拟节点S和D。阶段0中只有一个节点S,用v0,0表示,阶段n中只有一个节点D,用表示。
图2中,边上的权重是相应路由器在某个频率f下产生的网络延迟,若要得到NoC最小网络延迟,仅需要找一条从节点S到节点D的最短路径,同时记录下该路径上每条边上的频率,从而求得每个路由器的频率值,根据该频率值计算并分配每个路由器的功率。
当NoC给定功率P发生变化时,PBN的结构不会发生变化(硬件设计的时候按照功耗模型(公式7)已固化),但是需要对网络的不同部分进行遍历求解最短路径,来更新一次所有的PBN单元的功率。例如在图2中,当功率从pk变化至pk-1时,仅仅需要对虚线pk-1以上的点以及相连的边求解最短路径即可。NoC功率限制类似于图中的虚线。通过将虚线向上或者向下移动来满足功率预算,虚线以上部分的最短路径即是问题的解。
更新PBN边的权重
由于网络中通信量有可能发生变化,就导致路由器工作负载(帧的到达率)发生变化,所以网络延迟模型中的第一阶段包的注入率Ps→d和第二阶段中路由器帧的到达率λi需要在线监测和计算,每个时间间隔更新PBN中每个边的权重L。PBN更新边的权重如算法1所示。
算法1.PBN更新边的权重
1.Input:Ps→d,λi.
Ps→d:theprobabilityofapacketisgeneratedinnodesanddeliveredtod.
λi:theflitarrivalrateofrouteri.
2.Output:w(n,j),(n+1,k):theweightofeachedgeafterassigningfi.
3.foreachstageifrom0ton-1do:
4.foreachnodevi,jparalleldo:
5.Foreache(i,j),(i+1,k)connectedtostageiandstagei+1do:
6.ifPs→dorλichangedthen
7.w(i,j),(i+1,k)=ai+1.h(fi+1)+bi+1
8.returnw(n,j),(n+1,k)
在算法1中,共有n个阶段,每个阶段最多有P+1个节点(P为不同的功率分配值),P+1个节点可在多个功率分配单元中并行计算。每个节点最多有M条边(M表示频率级别个数,是常数且远远小于n),所以该算法的时间复杂度为O(n)。
求解最优解
在得到PBN后,问题转化为在其中找从S到D的最短路径。为了加快求解速度,我们利用最短路径并行算法从目的节点D到源节点S反向并行搜索。在一次迭代中,当前阶段的每一个节点选择一条边,这条边的权重和后一个阶段中与该边相连节点已得到的最小延迟之和最小,同时用该最小值更新当前阶段中该节点的延迟。在下一次迭代中,该最小值被传递给前一个阶段中的所有节点。每个阶段中的所有节点被划分到PBN中的计算单元同时计算,该搜索可以在n次迭代内完成。每个阶段的所有节点同时并行计算下面的值。
其中Lmin(vn+1,k)=0,且w(n,j),(n+1,k)=0,即与虚拟节点D相连的边权重为0。最终,计算可以表示为:
PATHS,D表示从原节点S到目的节点D的路径集合。那么在最优路径上的每一个节点vi,j,从vi,j到vi+1,j的最优路径(对应于最优的频率f),可以由下面的公式得到:
算法2.最短路径并行算法
1.Input:w(i,j),(i+1,k):weightofeachedge.
2.Output:L(vi,j):theminimumcycleofeachnodeafterassigningfi.
3.Initialize:AllnodesL(vi,j)=∞,exceptLmin(D)=Lmin(vn+1,j)=0andw(n,j),(n+1,P)=0
4.foreachstageifromn-1to0do:
5.foreachnodevi,jparalleldo:
6.foreachedgee(i,j),(i+1,k)connectedtostageiandstagei+1do:
7.ifL(vi+1,j)+w(i,j),(i+1,k)<L(vi,j)then
8.L(vi,j)=L(vi+1,j)+w(i,j),(i+1,k)
9.fi=Fm(1≤i≤n,1≤m≤M)
10.returnashortweightpathfromStoDandcorrespondingtotheoptimalsolution.
并行求解最短路径如算法2所示。共有n个阶段,每个阶段最多有P+1个节点(P为不同的功率分配值),P+1个节点被划分到多个功率分配单元并行计算。每个节点最多有M条边(M表示频率级别个数,M是常数且远远小于n)。每次迭代仅仅涉及到“加”和“比较”操作符,可以在一个周期内完成,所以该算法的时间复杂度为O(n)。
本发明所进行的实验及结果如下:
实验环境设置
实验验证仿真环境是两个基于Alpha架构的CMP(ChipMulti-Processor,单芯片多处理器)和一个网络组成的2D(二维)NoC拓扑结构,每个CMP里面都集成了Orion2.0、McPAT和CACTI6.0,分别用来模拟NoC、处理器和存储器的功耗,该仿真平台的详细参数配置如表1所示。
表1仿真器参数配置
表2列出了三个典型的评测算法,SSSP(Single-SourceShortestPath,在图中求解单源最短路径并行算法)、BFS(BreadthFirstSearch,图宽度优先并行搜索算法)-图宽度优先并行搜索算法和FastSort(快速排序并行算法)。
表2评测算法
NoC延迟模型精确性分析
精确的性能模型在问题的解决中起到了重要作用。为了验证公式(6)中的网络延迟模型的精确性,我们设置不同的包的注入率,比较仿真器模拟结果和延迟模型计算结果,利用公式(12)计算,结果如图3所示。
Lm是模型延迟,Ls是仿真器延迟。可以看出当包的注入率小于0.04flits/cycle的时候,模型的相对误差小于8%,所以,在包到达率较低的情况下,该延迟模型比较精确。
NoC性能评估
在下面的实验里,通过将评测算法加载到仿真器上面运行,仿真器记录算法执行时间(正比于网络延迟),并将它作为一个量化指标来验证比较我们提出的功率分配方法和其他方法对***性能的影响,算法执行时间归一化到我们提出的方法ReFiFS。(1)VFIs方法是将路由器分组,每组路由器同一个电压/频率。(2)SAPP方法同构地调整路由器的频率。
在输入功率为120W条件下,当网络中通信量不同的时候(SSSP输入的DAG图的节点数目不同),评测算法SSSP归一化执行时间比较如图4所示。结果显示,相比VFIs和SAPP,ReFiFS分别平均减少了26.3%和22.3%的应用执行时间(最大分别减少了32.4%和28.6%)。
当NoC输入功率从120W减少到60W时,BFS归一化执行时间比较如图5所示。可见,相比VFIs和SAPP,ReFiFS平均分别减少了30.1%和28.6%的应用执行时间(最大分别减少了33.8%和31%)。
在相同输入功率件下,三个不同评测应用SSSP、BFS和FastSort归一化执行时间如图6所示。可以看出在相同的输入功率条件下,针对不同的测评应用,相比VFIs和SAPP,ReFiFS平均分别减少了29.9%和32.6%的应用执行时间(最大分别减少了48.4%和25.4%)。
硬件开销
本方法的硬件开销主要是由于PBN中的节点,在65nm下使用SynopsysDesignCompilerTSMC库,得到每个节点的面积是121μm2且消耗20μW功率(假设switchingactivity是0.5)。PBN中总共有(pk+1)×n个节点,实验平台一共有164个路由器节点,pk归一化为10,那么总共需要的芯片面积是218284μm2,需要的功率大约为36mW。实验证明,在一个8×8的2D网络里面,PBN仅仅占了很少一部分的芯片面积和功耗,硬件开销较低。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。