专利名称:具有容错功能的热量均衡片上网络路径选择方法
技术领域:
本发明属于网络通信技术领域,涉及片上网络NoC通信,特别是一种具有容错功能的热量均衡片上网络路径选择方法。该方法可实现片上网络数据的高效传输,确保片上网络热量均衡,提高芯片的使用寿命,同时可满足容错、负载均衡与服务质量的多方面要求。
背景技术:
随着半导体集成电路技术的飞速发展与新型半导体材料技术的不断进步,片上系统SoC已成为了微电子领域的焦点。但随着芯片集成度的急剧增加,片上系统越发的复杂,在时延、吞吐、能耗、可靠性与可扩展性等方面受到了巨大的挑战。片上网络的提出有效的解决了片上系统的诸多问题,受到了业界的广泛关注。代表性产品有Tilera公司的64核芯片Tile 64,英特尔公司的80核芯片Teraflop与单芯片48核云计算机SCC等,这些产品均采用了最常见的Mesh拓扑结构。路径选择方法确定分组从源节点到目的节点的传输路径,是设计高性能片上网络的关键问题之一。路径选择方法的优劣在很大程度决定了片上网络的性能。国内外研究人员已经对片上网络路径选择方法做出了大量的研究,但对于热量这一关键问题并没有太多研究。热量均衡是影响芯片性能的重要因素之一,热量过高时半导体器件无法正常工作,导致芯片性能下降甚至损坏。Zhiliang Qian 等人在文章"A thermal-aware application specific routingalgorithm for Network-on-Chip design,, (the 16th Asia and South Pacific DesignAutomation Conference, 2011)中提出了一种降低节点峰值温度的负载均衡路径选择方法。该方法根据业务流量及链路带宽限制得到流量在多条最短路径上的最优分配比例与选择下一跳节点的概率,并写入路由表。通过均衡网络负载,降低节点的峰值温度,防止芯片因温度过高受损。该方法的不足之处是第一,源路由不能适应网络状态的变化,流量发生变化会导致网络性能下降;第二,片上网络的面积与能耗受到严格限制,路由表将增加面积与能耗的开销,不适合片上网络;第三,整个工作时间内的负载均衡不等价于温度均衡,短时间内处理大量的分组也会导致节点温度过高;第四,不具备容错功能,节点发生故障后整个芯片无法工作。Chih-Hao, Chao 等人在文章"TrafTic-and Thermal-Aware Run-Time ThermalManagement Scheme for 3D NoC Systems,, (the Fourth ACM/IEEE InternationalSymposium on Networks-on-Chip, 2010)中提出了一种根据温度实现负载控制的三维片上网络路径选择方法。该方法在温度过高时逐层关闭节点以降低芯片温度。当某一节点层被关闭后,该层所有分组垂直向下传输后在正常工作的节点层上水平传输,最后垂直向上传输到达目的节点。该方法的不足之处是第一,关闭整个节点层具有一定的盲目性;第二,被关闭的节点层上的分组时延较大;第三,温度检测器增加面积开销与路由器结构的复杂度。
发明内容
本发明的目的在于克服上述已有方法的不足,提出一种具有容错功能的热量均衡片上网络路径选择方法,以确保片上网络的热量均衡、增加容错功能并降低高优先级分组的时延。实现本发明目的的技术思路是,综合考虑输出端口对应的下一跳节点的历史状态与当前状态以避免节点状态信息过时或不全面,并结合故障节点的位置信息得到输出端口选择代价,选择代价小的端口以实现片上网络的热量均衡。当出现故障节点时,将部分正常工作的节点关闭,形成规则的矩形故障区域,采用最短绕道路径选择方法绕过故障区域以实现容错功能。对于温度超过晶体管工作范围的高温节点,仅允许高优先级分组通过高温节点以降低高优先级分组的时延。该路径选择方法包括如下步骤(1)从当前节点寄存器中读取当前节点的坐标(Cx,Cy)与当前节点类型值N;根据节点类型值判断节点类型^N = OW,当前节点为伪故障环上的节点,当N = 2时,当前节点为故障环上节点,当N = 1时,当前节点为普通节点;所述的伪故障环为温度超过晶体管工作范围的高温节点外围由节点与链路组成的环路,所述的故障环为故障节点外围由节点与链路组成的环路;(2)从到达当前节点的分组头微片中读取目的节点坐标(Dx,Dy)与该分组的优先级值P ;根据该分组优先级值判断分组优先级当P = 0时,分组为低优先级分组,当P = 1时,分组为高优先级分组;(3)根据当前节点坐标(Cx,Cy)、目的节点坐标(Dx,Dy)、当前节点类型和分组优先级确定最短路径输出端口集合O = Hoc(东,西,南,北,本地)}: 3a)如果Cx = Dx且Cy = Dy,则0 = {本地},执行步骤(5),否则执行步骤3b);3b)如果N = 0,当P = O时,执行步骤3c);当P = 1时,执行步骤3d);3c)如果N = 2,从当前节点寄存器中读取故障环或伪故障环的东北角节点坐标(Rx, Ry)和西南角节点坐标(R' x,R' y);根据当前节点坐标(Cx, Cy)、目的节点坐标(Dx,Dy)、故障环或伪故障环的东北角节点坐标(Rx,Ry)和西南角节点坐标(R' x,R' y)确定最短绕道路径的输出端口3cl)当 Cx = Rx,R' y < Cy < Ry 且 Dx 彡 R‘ x,R' y < Dy < Ry 时,或者当 Cx =R' X,R' 7<(;<民且1)!£彡艮,1 ' 7<07<民时,如果(;+0厂民-1 ' y>0,则0= {北},否则0 = {南};3c2)iCy = R' y,R' x < Cx < Rx 且 Dy 彡 Ry,R' x < Dx < Rx 时,或者当 Cy = Ry,R' x < Cx < Rx 且 Dy 彡 R' y, R' x < Dx < Rx 时,如果 Cx+Dx-Rx-R' x>0jlj0={*},否则0 = {西};满足上述3cl)或3d)时,执行步骤(5);其它情况下执行步骤3d);3d)如果N = 1,根据当前节点坐标(Cx,Cy)和目的节点坐标(Dx,Dy)确定最短路径输出端口集合O = {o|oc(东,西,南,北,本地)}:3dl)当 Cx = Dx 且 Cy > Dy 时,0 = {南},当 Cx = Dx 且 Cy < Dy 时,0 = {北},当Cy = Dy 且 Cx > Dx 时,0 = {西},当 Cy = Dy 且 Cx < Dx 时,0 = {东};执行步骤(5);3d2)当 Cx > Dx 且 Cy > Dy 时,0= {西,南},当 Cx > Dx 且 Cy < Dy 时,0 = {西,
5北},当Cx < Dx且Cy > Dy时,0 = {东,南},当Cx < Dx且Cy < Dy时,0 = {东,北};执行步骤⑷;(4)从当前节点寄存器中读取输出端口对应的下一跳节点的状态参数并计算输出端口选择代价4a)从当前节点寄存器中读取输出端口对应的下一跳节点在T时间内产生的热量值Ei与输入端口可用缓存值Bi, i = 1,2,将Ei与Bi归一化得到节点的归一化热量值瓦和输入端口的归一化可用缓存值瓦五= £;/ΣΑ, =马/Σ巧,i,j = 1,2;4b)根据当前节点坐标(Cx,Cy)和输出端口判断输出端口对应的下一跳节点坐标(Nx, Ny):当输出端口为东时,(Nx,Ny) = (Cx+1,Cy),当输出端口为西时,(Nx,Ny) = (Cx-I,Cy),当输出端口为南时,(Nx, Ny) = (Cx,Cy-I),当输出端口为北时,(Nx, Ny) = (Cx,Cy+l);4c)根据输出端口对应的下一跳节点坐标(Nx,Ny)、故障环或伪故障环的东北角节点坐标(Rx,Ry)和西南角节点坐标(R' X,R' y),判断下一跳节点是否属于故障节点或高温节点当R' !£<^<艮且『y< Ny < Ry时,下一跳节点为故障节点或高温节点,令W3 =9999,否则,令 w3 = 1 ;4d)定义输出端口选择代价函数 =(ΜΧ瓦= 1,2,其中W1为归一化热量值瓦的权重,W2为归一化可用缓存值瓦的权重,= 1 ;通过该代价函数计算从当前节点到目的节点的输出端口选择代价值Ci ;(5)确定输出端口 如果最短路径输出端口集合中仅存在一个输出端口,选择该端口作为输出端口 ;如果最短路径输出端口集合中存在两个输出端口,选择输出端口选择代价小的作为输出端口。本发明与现有技术相比具有以下优点1.本发明采用基于热量均衡的完全自适应路径选择方法,克服了现有技术对路由表的依赖,能很好的适应网络状态的变化,实现热量均衡并减小面积和能耗的开销。2.本发明综合考虑节点的热量值和输入端口可用缓存值,兼顾节点的历史状态和当前状态,能避免由于参数单一造成节点状态信息过时或不全面,避免网络性能下降。3.本发明由于引入了高温节点和伪故障环的概念,半关闭高温节点,能避免芯片因温度过高受损,提高芯片使用寿命,同时由于允许高优先级分组通过高温节点,能有效的降低高优先级分组的时延。
图1为本发明使用的片上网络Mesh拓扑结构示意图;图2本发明使用的片上网络微片结构示意图;图3为本发明路径选择方法流程图;图4为本发明的故障环与伪故障环示意图。
具体实施例方式下面结合附图对本发明作进一步的描述。参照图1,本发明使用的片上网络Mesh拓扑结构,包括本地IP核、网络接口和路
6由器,每个路由器通过网络接口分别与一个本地IP核相连接组成一个节点101。其中本地IP核可为存储器或处理器等,用来产生或处理数据;网络接口匹配本地IP核与通信网络的工作频率,实现网络通信与本地IP核计算的分离;路由器根据路径选择方法实现分组的转发。该拓扑结构以左下角路由器为坐标原点,正东方向为X维正方向,正北方向为Y维正方向,建立二维坐标系。参照图3,本发明一种具有容错功能的热量均衡片上网络路径选择方法,包括如下步骤步骤1,从当前节点寄存器中读取当前节点的坐标(Cx,Cy)与当前节点类型值N,根据节点类型值判断节点类型。本发明根据节点所处的位置将正常工作的节点分为故障环上的节点、伪故障环上节点和普通节点三类。参照图4,故障环为故障节点外围由节点与链路组成的环路401,伪故障环为温度超过晶体管工作范围的高温节点外围由节点与链路组成的环路402,其它位置上的节点为普通节点。根据节点类型值判断节点类型当N = 0时,当前节点为伪故障环上的节点;当N = 2时,当前节点为故障环上的节点;当N = 1时,当前节点为普通节点。步骤2,从到达当前节点的分组头微片中读取目的节点坐标(Dx,Dy)与该分组的优先级值P,根据该分组优先级值判断分组优先级。本发明根据分组的重要程度将分组分为高优先级和低优先级两类。参照图2,本发明使用虫孔交换,将一个分组分割成一个头微片、多个体微片和一个尾微片;头微片中包括分组号、分组优先级、微片类型、目的节点坐标和数据;头微片到达节点后,节点读取头微片中分组的目的节点坐标(Dx,Dy)和分组优先级值P。根据该分组优先级值判断分组优先级当ρ = 0时,分组为低优先级分组;当ρ = 1时,分组为高优先级分组。步骤3,根据当前节点坐标(Cx,Cy)、目的节点坐标(Dx,Dy)、当前节点类型与分组优先级确定最短路径输出端口集合O = Ho^(东,西,南,北,本地)}。本发明将输出端口分为东、西、南、北和本地五类,如图1所示,其中东表示输出端口为正东方向,西表示输出端口为正西方向,南表示输出端口为正南方向,北表示输出端口为正北方向,本地表示输出端口为与本地IP核相连的端口。3a)如果Cx = Dx且Cy = Dy,则0 = {本地},执行步骤5,否则执行步骤3b);3b)如果N = 0,当P = 0时,执行步骤3c);当P = 1时,执行步骤3e);3c)如果N = 2,从当前节点寄存器中读取故障环或伪故障环的东北角节点坐标(Rx, Ry)和西南角节点坐标(R' x,R' y);3d)根据当前节点坐标(Cx,Cy)、目的节点坐标(Dx,Dy)、故障环或伪故障环的东北角节点坐标(Rx,Ry)和西南角节点坐标(R' X,R' y),确定最短绕道路径的输出端口3dl)当 Cx = Rx,R' y < Cy < Ry 且 Dx 彡 R‘ x, R' y < Dy < Ry 时,或者当 Cx =R' X,R' 7<(;<民且1)!£彡艮,1 ' 7<07<民时,如果(;+0厂民-1 ' y>0,则0= {北},否则0 = {南};3d2)iCy = R' y,R' x < Cx < Rx 且 Dy 彡 Ry,R' x < Dx < Rx 时,或者当 Cy = Ry,R' x < Cx < Rx 且 Dy 彡 R' y, R' x < Dx < Rx 时,如果 Cx+Dx-Rx-R' x>0jlj0={*},否则0 = {西};满足上述3dl)或3业)时,执行步骤5 ;其它情况下执行步骤!Be);3e)如果N = 1,根据当前节点坐标(Cx,Cy)和目的节点坐标(Dx,Dy)确定最短路径输出端口集合O = {o|oc(东,西,南,北,本地)}:3el)当 Cx = Dx 且 Cy > Dy 时,0 = {南},当 Cx = Dx 且 Cy < Dy 时,0 = {北},当Cy = Dy 且 Cx > Dx 时,0 = {西},当 Cy = Dy 且 Cx < Dx 时,0 = {东};执行步骤 5 ;3e2)当 Cx > Dx 且 Cy > Dy 时,0 = {西,南},当 Cx > Dx 且 Cy < Dy 时,0 = {西,北},当Cx < Dx且Cy > Dy时,0 = {东,南},当Cx < Dx且Cy < Dy时,0 = {东,北};执行步骤4。步骤4,从当前节点寄存器中读取输出端口对应的下一跳节点的状态参数并计算输出端口选择代价。本发明中综合节点的热量值Ei与输入端口可用缓存值Bi,兼顾节点的历史状态和当前状态,避免由于参数单一造成节点状态信息过时或不全面。4a)从当前节点寄存器中读取输出端口对应的下一跳节点在T时间内产生的热量值Ei与输入端口可用缓存值Bi, i = 1,2,将Ei与Bi归一化得到节点的归一化热量值瓦和输入端口的归一化可用缓存值瓦五= £;/ΣΑ, =马/Σ巧,i,j = 1,2;所述的热量值Ei,由以下公式计算Ei = ((Ewrite+Eread+Esa+Est) X Nflit+Erc+Ej X Npacket,i = 1,2其中Ewite为写缓存一次节点产生的热量,Eread为读缓存一次节点产生的热量,Esa为分配交叉开关一次节点产生的热量,Est为交叉开关传输一个微片节点产生的热量,Nflit为每个分组包含的微片数,Erc为选择路径一次节点产生的热量,Eva为分配虚信道一次节点产生的热量,Npacket为节点已经处理的分组数;所述的可用缓存值Bi为输出端口对应的下一跳节点的输入端口当前空闲的缓存数目;4b)根据当前节点坐标(Cx,Cy)和输出端口判断输出端口对应的下一跳节点坐标(Nx, Ny):当输出端口为东时,(Nx,Ny) = (Cx+1,Cy),当输出端口为西时,(Nx,Ny) = (Cx-I,Cy),当输出端口为南时,(Nx, Ny) = (Cx,Cy-I),当输出端口为北时,(Nx, Ny) = (Cx,Cy+l);4c)根据输出端口对应的下一跳节点坐标(Nx,Ny)、故障环或伪故障环的东北角节点坐标(Rx,Ry)和西南角节点坐标(R' X,R' y),判断下一跳节点是否属于故障节点或高温节点当R' !£<^<艮且『y< Ny < Ry时,下一跳节点为故障节点或高温节点,令W3 =9999,否则,令 w3 = 1 ;4d)定义输出端口选择代价函数 =(ΜΧ瓦= 1,2,其中W1为归一化热量值瓦的权重,W2为归一化可用缓存值瓦的权重,= 1 ;通过该代价函数计算从当前节点到目的节点的输出端口选择代价值Q。步骤5,确定输出端口 如果最短路径输出端口集合中仅存在一个输出端口,选择该端口作为输出端口 ;如果最短路径输出端口集合中存在两个输出端口,选择输出端口选择代价小的作为输出端口。
权利要求
1. 一种具有容错功能的热量均衡片上网络路径选择方法,包括如下步骤(1)从当前节点寄存器中读取当前节点的坐标(Cx,Cy)与当前节点类型值N;根据节点类型值判断节点类型^N = OW,当前节点为伪故障环上的节点,当N = 2时,当前节点为故障环上节点,当N = 1时,当前节点为普通节点;所述的伪故障环为温度超过晶体管工作范围的高温节点外围由节点与链路组成的环路,所述的故障环为故障节点外围由节点与链路组成的环路;(2)从到达当前节点的分组头微片中读取目的节点坐标(Dx,Dy)与该分组的优先级值P ;根据该分组优先级值判断分组优先级当P = 0时,分组为低优先级分组,当P = 1时,分组为高优先级分组;(3)根据当前节点坐标(Cx,Cy)、目的节点坐标(Dx,Dy)、当前节点类型和分组优先级确定最短路径输出端口集合0 = (东,西,南,北,本地)}:3a)如果Cx = Dx且Cy = Dy,则O = {本地},执行步骤(5),否则执行步骤北);3b)如果N = 0,当P = O时,执行步骤3c);当P = 1时,执行步骤3d);3c)如果N = 2,从当前节点寄存器中读取故障环或伪故障环的东北角节点坐标(Rx,Ry)和西南角节点坐标(R' x,R' y);根据当前节点坐标(Cx,Cy)、目的节点坐标(Dx,Dy)、故障环或伪故障环的东北角节点坐标( , Ry)和西南角节点坐标(R' X,R' y)确定最短绕道路径的输出端口3cl)当 Cx = Rx,R' y < Cy < 民且^ 彡 R' X,R' y < Dy < Ry 时,或者当 Cx = R' x,R' y < Cy < Ry 且 Dx 彡 Rx,R' y < Dy < Ry 时,如果 Cy+Dy-Ry-R' y 彡 0,则 0 = {北},否则0= {南};3c2)iCy = R' y,R' x < Cx < Rx 且 Dy 彡 Ry,R' x < Dx < Rx 时,或者当 Cy = Ry,R' x< Cx < Rx 且 Dy 彡 R' y,R' x < Dx < Rx 时,如果 Cx+Dx-Rx-R' x 彡 0,则 0 = {东},否则 0={西};满足上述3cl)或3d)时,执行步骤(5);其它情况下执行步骤3d);3d)如果N = 1,根据当前节点坐标(Cx,Cy)和目的节点坐标(Dx,Dy)确定最短路径输出端口集合O = {o|o c (东,西,南,北,本地)}:3dl)当 Cx = Dx 且 Cy > Dy 时,0= {南},当(;=0!£且(;<07时,0= {北},当(;=Dy 且 Cx > Dx 时,0 = {西},当 Cy = Dy 且 Cx < Dx 时,0 = {东};执行步骤(5);3d2)当 Cx > Dx 且 Cy > Dy 时,0 = {西,南},当 Cx > Dx 且 Cy < Dy 时,0 = {西,北},当Cx < Dx且Cy > Dy时,0 = {东,南},当Cx < Dx且Cy < Dy时,0 = {东,北};执行步骤⑷;(4)从当前节点寄存器中读取输出端口对应的下一跳节点的状态参数并计算输出端口选择代价4a)从当前节点寄存器中读取输出端口对应的下一跳节点在T时间内产生的热量值Ei与输入端口可用缓存值Bi, i = 1,2,将Ei与Bi归一化得到节点的归一化热量值瓦和输入端口的归一化可用缓存值瓦五= £;/ΣΑ, =马/Σ巧,i,j = 1,2;4b)根据当前节点坐标(Cx,Cy)和输出端口判断输出端口对应的下一跳节点坐标(Nx,Ny)当输出端口为东时,(Nx, Ny) = (Cx+l,Cy),当输出端口为西时,(Nx, Ny) = (Cx-l,Cy),当输出端口为南时,(Nx, Ny) = (Cx,Cy-I),当输出端口为北时,(Nx, Ny) = (Cx,Cy+l);4c)根据输出端口对应的下一跳节点坐标(Nx,Ny)、故障环或伪故障环的东北角节点坐标(Rx,Ry)和西南角节点坐标(R' X,R' y),判断下一跳节点是否属于故障节点或高温节点当R' x < Nx < Rx且R' y < Ny < Ry时,下一跳节点为故障节点或高温节点,令W3 =.9999,否则,令 w3 = 1 ;4d)定义输出端口选择代价函数 =O^1X瓦-W2i = 1,2,其中W1为归一化热量值瓦的权重,W2为归一化可用缓存值瓦的权重,= 1 ;通过该代价函数计算从当前节点到目的节点的输出端口选择代价值Ci ;(5)确定输出端口 如果最短路径输出端口集合中仅存在一个输出端口,选择该端口作为输出端口 ;如果最短路径输出端口集合中存在两个输出端口,选择输出端口选择代价小的作为输出端口。
2.根据权利1所述的具有容错功能的热量均衡片上网络路径选择方法,其中步骤如)所述的热量值Ei,由以下公式计算Ei = ((Ewrite+Eread+Esa+Est) XNflit+Erc+Eva) XNpacket, i = 1,2其中Ewite为写缓存一次节点产生的热量,E_d为读缓存一次节点产生的热量,Esa为分配交叉开关一次节点产生的热量,Est为交叉开关传输一个微片节点产生的热量,Nflit为每个分组包含的微片数,Erc为选择路径一次节点产生的热量,Eva为分配虚信道一次节点产生的热量,Npacket为节点已经处理的分组数。
3.根据权利1所述的具有容错功能的热量均衡片上网络路径选择方法,其中步骤如)所述的可用缓存值Bi为输出端口对应的下一跳节点的输入端口当前空闲的缓存数目。
全文摘要
本发明公开了一种具有容错功能的热量均衡片上网络路径选择方法,主要解决现有技术依赖路由表,不具备容错功能和无法保证分组时延性能的问题。其实现步骤为(1)读取当前节点地址信息并判断当前节点类型;(2)读取分组目的节点地址信息并判断分组优先级;(3)根据节点地址信息、节点类型与分组优先级确定最短路径路由输出端口集合(4)定义输出端口选择代价函数i=1,2,读取代价函数计算参数并计算输出端口选择代价;(5)确定输出端口。本发明具有提高片上网络热量均衡、可靠性与使用寿命的优点,能够有效的满足实际应用对片上网络性能的要求。
文档编号H04L12/56GK102387077SQ201110318458
公开日2012年3月21日 申请日期2011年10月19日 优先权日2011年10月19日
发明者杨银堂, 王军辉, 王琨, 顾华玺 申请人:西安电子科技大学