CN102437953A - 片上网络中的低功耗自适应路由方法 - Google Patents

片上网络中的低功耗自适应路由方法 Download PDF

Info

Publication number
CN102437953A
CN102437953A CN2011104184208A CN201110418420A CN102437953A CN 102437953 A CN102437953 A CN 102437953A CN 2011104184208 A CN2011104184208 A CN 2011104184208A CN 201110418420 A CN201110418420 A CN 201110418420A CN 102437953 A CN102437953 A CN 102437953A
Authority
CN
China
Prior art keywords
passage
evc
dimension
offset
route
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011104184208A
Other languages
English (en)
Other versions
CN102437953B (zh
Inventor
向东
许华珍
王新玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201110418420.8A priority Critical patent/CN102437953B/zh
Publication of CN102437953A publication Critical patent/CN102437953A/zh
Application granted granted Critical
Publication of CN102437953B publication Critical patent/CN102437953B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及片上网络技术领域,公开了一种片上网络中的低功耗自适应路由方法,包括以下步骤:S1、计算消息的源节点与目的节点在x维和y维两个方向的距离,如果距离之和为零,则路由完成,否则执行步骤S2;S2、把网络划分为两个虚拟子网x+y*和x-y*;S3、消息进入虚拟子网x+y*或x-y*中路由。本发明通过将物理网络划分为两个虚拟子网x+y*和x-y*,虚拟子网x+y*和x-y*内部均采用最短路径的完全自适应路由算法和新的EVC流量控制技术,根据数据包目的节点相对于源节点的偏移值将其注入对应的虚拟网络,在该虚拟网络中自适应路由直至目的地。数据包在路由时优先使用EVC通道,当没有空闲EVC通道可用时才使用NVC通道,按照正常的流水线阶段前进,有效提高了性能并减少了功耗。

Description

片上网络中的低功耗自适应路由方法
技术领域
本发明涉及片上网络技术领域,尤其涉及一种片上网络中的低功耗自适应路由方法。
背景技术
由于片上多核之间通信带宽不断增加的需求,片上网络(Networkon Chips,NoC)的概念被提出来,用于专门研究处理多核之类的片上部件之间的通信问题。在片上网络领域,除了影响性能的带宽问题外,功耗问题也是影响片上网络设计的一个关键因素。功耗主要是由于网络中数据的移动产生的,带宽越高势必会产生更多的功耗,因此,如何平衡带宽和功耗这两个相互冲突的因素,对于设计高性能的片上网络至关重要。构造一个系统级的功耗模型以及提出一种低功耗的路由方法是非常重要而紧迫的问题。
峰值功耗是片上网络设计中不得不考虑的重要因素,因而制冷机制和供电部件都必须满足任意始终周期中的最坏情况。ORION作为一种流行的功耗估算模型,已经被学术界和工业界广泛应用在初级阶段对路由器进行功耗估算,ORION 2.0作为其升级版本,在功耗模型、面积模型和其它方面做了进一步的改进和提高。
Mullin等人提出一种NoC路由器设计方案,使用高效的全局数据链路,降低了通信延迟。Seo等人提出了O1TURN路由方案,通过使用X-Y或者Y-X路由算法取得了较好的吞吐率。Kim等人提出了一种低延迟并且能感知拥塞的路由方案,能有效减少每个数据包传输产生的功耗。Ascia等人针对片上网络的自适应路由算法提出了拥塞敏感的选择函数。
通过增加额外的物理通道来构造的旁侧立方体拓扑,有效减少了k元n立方拓扑结构的直径和网络平均距离。Kumar等人提出了EVC(Express Virtual Channel,可译为旁侧虚拟通道)流量控制机制,通过绕过EVC通道上的多个中间路由器的相关流水线阶段来降低由网络中的路由器产生的功耗,数据包在通过这些被绕过相关流水线阶段的路由器时只涉及到物理链路的功耗。EVC技术是高效的片上网络低功耗路由设计方案,它不需要像旁侧立方体拓扑那样添加额外的物理通道,因而其可以保持网络的原有拓扑结构不变。
现有的EVC方案中每个路由器需要太多的缓冲区,每个输入端口含有太多的虚拟通道。ORION功耗估算模型只能估算片上网络的整体能耗,缺乏衡量片上网络实际运行过程中的峰值功耗的机制。
发明内容
(一)要解决的技术问题
本发明所要解决的技术问题是:如何在路由过程中提升片上网络的性能,同时降低网络的功耗。
(二)技术方案
为解决上述技术问题,本发明提供了一种片上网络中的低功耗自适应路由方法,包括以下步骤:
S1、计算消息的源节点与目的节点在x维和y维两个方向的距离,如果距离之和为零,则路由完成,否则执行步骤S2;
S2、把网络划分为两个虚拟子网x+y*和x-y*,虚拟子网x+y*用于路由x维上偏移为正的消息,虚拟子网x-y*用于路由x维上偏移为负的消息;
S3、消息进入虚拟子网x+y*或x-y*中路由。
优选地,步骤S2中把网络划分为两个虚拟子网x+y*和x-y*之后,y维上的每条物理通道被划分为两条虚拟通道:cy,1和cy,2,x维上的每条物理通道仅有一条虚拟通道cx
优选地,步骤S3具体包括:
S3.1、计算消息的目的节点d和源节点s在x维上的偏移xoffset=xd-xs
S3.2、判断xoffset是否大于或等于0,如果xoffset≥0,则消息进入虚拟子网x+y*中路由;否则进入虚拟子网x-y*中路由。
优选地,步骤S3.2中消息进入虚拟子网x+y*或x-y*中路由时,首先根据有限的全局控制信号方案确认周围节点EVC开关的可用状态,并计算源节点和目的节点x维和y维上可用的EVC通道的最长长度,若存在可用的EVC通道,则选取最长的EVC通道进行路由;否则使用NVC通道进行路由,所述有限的全局控制信号方案为:每个节点与其周围k跳距离的节点都用控制信号线直接连接,其中k为网络设计中的EVC通道的最大长度,即EVC通道的最大跳步数;所述每个节点能够在一个时钟周期内确认它k-距离范围内所有节点缓存及输入端口是否可用,并立刻预定相应的EVC通道。
优选地,步骤S3.2中,当消息进入虚拟子网x+y*中路由时,路由的步骤具体包括:
S3.2.1、当消息到达虚拟子网x+y*中的任一节点时,计算目的节点和源节点之间在x维和y维上的偏移xoffset=xd-xs和yoffset=yd-ys
S3.2.3、如果xoffset≠0并且yoffset≠0,当存在可用的EVC通道时,则选取x维和y维上最长的EVC通道进行路由;否则将虚拟通道cx或者cy,1作为NVC通道使用,并进行路由;
S3.2.4、如果xoffset=0并且yofffset≠0,当y维上存在可用的EVC通道时,则选取y维上最长的EVC通道进行路由;否则将虚拟通道cy,1作为NVC通道使用,并进行路由;
S3.2.5、如果xoffset≠0并且yoffset=0,当x维上存在可用的EVC通道时,则选取x维上最长的EVC通道进行路由;否则将虚拟通道cx作为NVC通道使用,并进行路由;
S3.2.6、如果xoffset=0并且yoffset=0,则使用目的节点的内部通道进行路由。
优选地,步骤S3.2中,当消息进入虚拟子网x-y*中路由时,路由的步骤具体包括:
S3.2.1’、当消息到达虚拟子网x-y*中的任一节点时,计算目的节点和源节点之间在x维和y维上的偏移xoffset=xd-xs和yoffset=yd-ys
S3.2.3’、如果xoffset≠0并且yoffset≠0,当存在可用的EVC通道时,则选取x维和y维上最长的EVC通道进行路由;否则将虚拟通道cx或者cy,2作为NVC通道使用,并进行路由;
S3.2.4’、如果xoffset=0并且yoffset≠0,当y维上存在可用的EVC通道时,则选取y维上最长的EVC通道进行路由;否则将虚拟通道cy,2作为NVC通道使用,并进行路由;
S3.2.5’、如果xoffset≠0并且yoffset=0,当x维上存在可用的EVC通道时,则选取x维上最长的EVC通道进行路由;否则将虚拟通道cx作为NVC通道使用,并进行路由;
S3.2.6’、如果xoffset=0并且yoffset=0,则使用目的节点的内部通道进行路由。
优选地,步骤S3.2中消息进入虚拟子网x+y*或x-y*中路由时,首先分别计算源节点和目的节点在x维和y维上可用的EVC通道的最长长度lx和ly、由x维偏转到y维的可用的EVC通道的最长长度lxy,以及y维偏转到x维的可用的EVC通道的最长长度lyx;若存在可用的EVC通道,则选取最长的EVC通道进行路由,否则使用NVC通道进行路由。
优选地,步骤S3.2中,当消息进入虚拟子网x+y*中路由时,路由的步骤具体包括:
S3.2.1”、当消息到达虚拟子网x+y*中的任一节点时,计算目的节点和源节点之间在x维和y维上的偏移xoffset=xd-xs和yoffset=yd-ys
S3.2.3”、如果xoffset≠0并且yoffset≠0,当存在可用的EVC通道时,则使用选择函数选取最长的EVC通道进行路由;否则将虚拟通道cx或者cy,1作为NVC通道使用,并进行路由;
S3.2.4”、如果xoffset=0并且yoffset≠0,当y维上存在可用的EVC通道时,则选取y维上最长的EVC通道进行路由;否则将虚拟通道cy,1作为NVC通道使用,并进行路由;
S3.2.5”、如果xoffset≠0并且yoffset=0,当x维上存在可用的EVC通道时,则选取x维上最长的EVC通道进行路由;否则将虚拟通道cx作为NVC通道使用,并进行路由;
S3.2.6”、如果xoffset=0并且yoffset=0,则使用目的节点的内部通道进行路由;
其中,所述选择函数描述如下:
如果lx>ly,lx>lxy,且lx>lyx,则消息使用x维上预设的长为lx的EVC通道进行路由;
如果ly>lx,ly>lxy,且ly>lyx,则消息使用y维上预设的长为ly的EVC通道进行路由;
如果lx和ly都不是最大的,则消息使用预设的长为lxy的EVC通道或者长为lyx的EVC通道进行路由;
如果lx=ly,lx>lxy,且lx>lyx,则消息使用x维上预定的长为lx的EVC通道;
如果lx>ly,lx=lxy,且lx=lyx,或者ly>lx,ly=lxy,且ly=lyx,则消息使用预设的长为lxy的EVC通道或者长为lyx的EVC通道进行路由。
优选地,步骤S3.2中,当消息进入虚拟子网x-y*中路由时,路由的步骤具体包括:
S3.2.1’”、当消息到达虚拟子网x-y*中的任一节点时,计算目的节点和源节点之间在x维和y维上的偏移xoffset=xd-xs和yoffset=yd-ys
S3.2.3’”、如果xoffset≠0并且yoffset≠0,当存在可用的EVC通道时,则用选择函数选取最长的EVC通道进行路由;否则将虚拟通道cx或者cy,2作为NVC通道使用,并进行路由;
S3.2.4’”、如果xoffset=0并且yoffset≠0,当y维上存在可用的EVC通道时,则选取y维上最长的EVC通道进行路由;否则将虚拟通道cy,2作为NVC通道使用,并进行路由;
S3.2.5’”、如果xoffset≠0并且yoffset=0,当x维上存在可用的EVC通道时,则选取x维上最长的EVC通道进行路由;否则将虚拟通道cx作为NVC通道使用,并进行路由;
S3.2.6’”、如果xoffset=0并且yoffset=0,则使用目的节点的内部通道进行路由;
其中,所述选择函数描述如下:
如果lx>ly,lx>lxy,且lx>lyx,则消息使用x维上预设的长为lx的EVC通道进行路由;
如果ly>lx,ly>lxy,且ly>lyx,则消息使用y维上预设的长为ly的EVC通道进行路由;
如果lx和ly都不是最大的,则消息使用预设的长为lxy的EVC通道或者长为lyx的EVC通道进行路由;
如果lx=ly,lx>lxy,且lx>lyx,则消息使用x维上预定的长为lx的EVC通道;
如果lx>ly,lx=lxy,且lx=lyx,或者ly>lx,ly=lxy,且ly=lyx,则消息使用预设的长为lxy的EVC通道或者长为lyx的EVC通道进行路由。
优选地,所述EVC通道为新的EVC通道,其包含X维跳步+Y维跳步或者Y跳步+X跳步,或者仅包含X跳步或仅包含Y跳步;且相同的物理通道能够同时被多条所述新的EVC通道复用。
(三)有益效果
本发明通过将物理网络划分为两个虚拟子网x+y*和x-y*,虚拟子网x+y*和x-y*内部均采用最短路径的完全自适应路由算法和新的EVC流量控制技术(也就是本发明所设计的新的EVC通道),根据数据包目的节点相对于源节点的偏移值将其注入对应的虚拟网络,在该虚拟网络中自适应路由直至目的地。数据包在路由时优先使用EVC通道,当没有空闲EVC通道可用时才使用NVC通道,按照正常的流水线阶段前进,有效提高了性能并减少了功耗。
附图说明
图1是依据本发明实施例的二维mesh网络中的低功耗自适应路由方法流程图;
图2是8×8mesh网络(网状网络)中传统路由算法使用传统EVC通道示例;
图3是8×8mesh网络中本发明的方法使用传统EVC通道示例;
图4是本发明使用的有限的全局控制信号方案示意图;
图5是本发明使用的新的EVC通道示意图;
图6是低功耗路由器缓冲区设计示意图;
图7是低功耗路由器体系结构设计示意图。
具体实施方式
下面对于本发明所提出的一种片上网络中的低功耗自适应路由方法,结合附图和实施例详细说明。
本发明实施例基于二维网状网络提出,其主要思想为:将物理网络划分为两个虚拟子网x+y*和x-y*,虚拟子网x+y*和x-y*内部均采用最短路径的完全自适应路由算法和新的EVC流量控制技术,根据数据包目的节点相对于源节点的偏移值将其注入对应的虚拟网络,在该虚拟网络中自适应路由直至目的地。数据包在路由时优先使用EVC通道,这样,当数据包的微片经过EVC通道上的中间节点时,传输至EVC锁存器,直接跳过不必要的中间流水线阶段,有效提高了性能并减少了功耗。当没有空闲EVC通道可用时才使用NVC(NormalVirtual Channel,普通虚拟通道)通道,按照正常的流水线阶段前进。本发明显著提高了网络的传输性能并有效降低了网络功耗。本发明也可应用于torus网络及非规则网络。
如图1所示,本发明实施例提供的一种片上网络中的低功耗自适应路由方法,包括以下步骤:
S1、计算消息的源节点与目的节点在x维和y维两个方向的距离,如果距离之和为零,则路由完成,否则执行步骤S2;
S2、把二维网状网络划分为两个虚拟子网x+y*和x-y*,即y维上的每条物理通道被划分为两条虚拟通道:cy,1和cy,2,x维上的每条物理通道仅有一条虚拟通道cx,虚拟子网x+y*用于路由x维上偏移为正的消息,虚拟子网x-y*用于路由x维上偏移为负的消息;
S3、消息进入虚拟子网x+y*或x-y*中路由。
步骤S3具体包括:
S3.1、计算消息的目的节点d和源节点s在x维上的偏移xoffset=xd-xs,xd表示消息的目的节点的x维坐标,xs表示消息的源节点的x维坐标;
S3.2、判断xoffset是否大于或等于0,如果xoffset≥0,则消息进入虚拟子网x+y*中路由;否则进入虚拟子网x-y*中路由。
值得注意的是,本发明既可以建立在传统的EVC通道之上实现,也可以建立在本发明中提出的新的EVC通道之上实现,两者相对于传统的EVC算法都有效提升了性能和降低了功耗。如果在传统的EVC通道基础上来实现本算法,则同一条物理链路不能同时被多条EVC通道复用,而且EVC通道不能跨维偏转,结合本发明中提出的新的EVC通道来实现本发明,可以进一步解决传统EVC通道的这些问题,从而使得性能可以进一步提高。下面分别介绍利用传统EVC通道来实现本发明,以及利用本发明中提出的在新的EVC通道基础上来实现本发明的步骤S3.2的具体步骤。
当使用采用传统的EVC通道(传统EVC通道全部由x维或者全部由y维上的节点构成)时,消息在虚拟子网x+y中的路由具体步骤如下:
步骤S3.2中消息进入虚拟子网x+y*中路由时,首先根据有限的全局控制信号方案感知周围节点EVC开关的可用状态,并计算源节点和目的节点x维和y维上可用的EVC通道的最长长度,NVC通道的长度恒为1,若存在可用的EVC通道,则选取最长的EVC通道进行路由;否则使用NVC通道进行路由。具体包括:
S3.2.1、当消息到达虚拟子网x+y*中的任一节点时,计算目的节点和源节点之间在x维和y维上的偏移xoffset=xd-xs和yoffset=yd-ys
S3.2.3、如果xoffset≠0并且yoffset≠0,当存在可用的EVC通道时,则选取x维和y维上最长的EVC通道进行路由;否则将虚拟通道cx或者cy,1作为NVC通道使用,并进行路由;
S3.2.4、如果xoffset=0并且yoffset≠0,当y维上存在可用的EVC通道时,则选取y维上最长的EVC通道进行路由;否则将虚拟通道cy,1作为NVC通道使用,并进行路由;
S3.2.5、如果xoffset≠0并且yoffset=0,当x维上存在可用的EVC通道时,则选取x维上最长的EVC通道进行路由;否则将虚拟通道cx作为NVC通道使用,并进行路由;
S3.2.6、如果xoffset=0并且yoffset=0,则使用目的节点的内部通道进行路由。
当使用采用传统的EVC通道时,消息在虚拟子网x-y中的路由具体步骤如下:
步骤S3.2中消息进入虚拟子网x-y*中路由时,首先计算源节点和目的节点x维和y维上可用的EVC通道的最长长度,NVC通道的长度恒为1,若存在可用的EVC通道,则选取最长的EVC通道进行路由;否则使用NVC通道进行路由。具体包括:
S3.2.1’、当消息到达虚拟子网x-y*中的任一节点时,计算目的节点和源节点之间在x维和y维上的偏移xoffset=xd-xs和yoffset=yd-ys
S3.2.3’、如果xoffset≠0并且yoffset≠0,当存在可用的EVC通道时,则选取x维和y维上最长的EVC通道进行路由;否则将虚拟通道cx或者cy,2作为NVC通道使用,并进行路由;
S3.2.4’、如果xoffset=0并且yoffset≠0,当y维上存在可用的EVC通道时,则选取y维上最长的EVC通道进行路由;否则将虚拟通道cy,2作为NVC通道使用,并进行路由;
S3.2.5’、如果xoffset≠0并且yoffset=0,当x维上存在可用的EVC通道时,则选取x维上最长的EVC通道进行路由;否则将虚拟通道cx作为NVC通道使用,并进行路由;
S3.2.6’、如果xoffset=0并且yoffset=0,则使用目的节点的内部通道进行路由。
图3显示了在二维网状网络中,本发明提出的路由方法即使采用传统的EVC通道,也能为消息路由提供更多的传统EVC通道,从而提高性能,这与图2中的路由方法形成显明对比,因为图2中的消息路由示例所能使用的EVC通道数量非常有限。
当使用采用本发明设计的EVC通道(本发明设计的新的EVC通道除了包括x维或者y维上的节点,还可以包含从x维偏转到y维或者从y维偏转到x维的节点,如图5所示)时,消息在虚拟子网x+y中的路由具体步骤如下:
步骤S3.2中消息进入虚拟子网x+y*中路由时,首先分别计算源节点和目的节点在x维和y维上可用的EVC通道的最长长度lx和ly、由x维偏转到y维的可用的EVC通道的最长长度lxy,以及y维偏转到x维的可用的EVC通道的最长长度lyx,NVC通道的长度恒为1;若存在可用的EVC通道,则选取最长的EVC通道进行路由,否则使用NVC通道进行路由。具体包括:
S3.2.1”、当消息到达虚拟子网x+y*中的任一节点时,计算目的节点和源节点之间在x维和y维上的偏移xoffset=xd-xs和yoffset=yd-ys
S3.2.3”、如果xoffset≠0并且yoffset≠0,当存在可用的EVC通道时,则使用选择函数选取最长的EVC通道进行路由;否则将虚拟通道cx或者cy,1作为NVC通道使用,并进行路由;
S3.2.4”、如果xoffset=0并且yoffset≠0,当y维上存在可用的EVC通道时,则选取y维上最长的EVC通道进行路由;否则将虚拟通道cy,1作为NVC通道使用,并进行路由;
S3.2.5”、如果xoffset≠0并且yoffset=0,当x维上存在可用的EVC通道时,则选取x维上最长的EVC通道进行路由;否则将虚拟通道cx作为NVC通道使用,并进行路由;
S3.2.6”、如果xoffset=0并且yoffset=0,则使用目的节点的内部通道进行路由;
当使用采用本发明设计的EVC通道时,消息在虚拟子网x-y中的路由具体步骤如下:
步骤S3.2中消息进入虚拟子网x-y*中路由时,首先分别计算源节点和目的节点在x维和y维上可用的EVC通道的最长长度lx和ly、由x维偏转到y维的可用的EVC通道的最长长度lxy,以及y维偏转到x维的可用的EVC通道的最长长度lyx,NVC通道的长度恒为1;若存在可用的EVC通道,则选取最长的EVC通道进行路由,否则使用NVC通道进行路由。具体包括:
S3.2.1’”、当消息到达虚拟子网x-y*中的任一节点时,计算目的节点和源节点之间在x维和y维上的偏移xoffset=xd-xs和yoffset=yd-ys
S3.2.3’”、如果xoffset≠0并且yoffset≠0,当存在可用的EVC通道时,则用选择函数选取最长的EVC通道进行路由;否则将虚拟通道cx或者cy,2作为NVC通道使用,并进行路由;
S3.2.4’”、如果xoffset=0并且yoffset≠0,当y维上存在可用的EVC通道时,则选取y维上最长的EVC通道进行路由;否则将虚拟通道cy,2作为NVC通道使用,并进行路由;
S3.2.5’”、如果xoffset≠0并且yoffset=0,当x维上存在可用的EVC通道时,则选取x维上最长的EVC通道进行路由;否则将虚拟通道cx作为NVC通道使用,并进行路由;
S3.2.6’”、如果xoffset=0并且yoffset=0,则使用目的节点的内部通道进行路由;
其中,所述选择函数描述如下:
如果lx>ly,lx>lxy,且lx>lyx,则消息使用x维上预设的长为lx的EVC通道进行路由;
如果ly>lx,ly>lxy,且ly>lyx,则消息使用y维上预设的长为ly的EVC通道进行路由;
如果lx和ly都不是最大的,则消息使用预设的长为lxy的EVC通道或者长为lyx的EVC通道进行路由;
如果lx=ly,lx>lxy,且lx>lyx,则消息使用x维上预定的长为lx的EVC通道;
如果lx>ly,lx=lxy,且lx=lyx,或者ly>lx,ly=lxy,且ly=lyx,则为了获得更多的自适应性,消息使用预设的长为lxy的EVC通道或者长为lyx的EVC通道进行路由。
图6示出了本发明中的路由器的缓冲区组织方式,从中可以看出本发明中的路由器所需要的缓冲区个数非常少。其中,x+、x-、y+、y-分别表示消息从对应维的对应方向上传递过来,以x+为例,其表示消息从x维正方向传递过来,即该消息目的节点和源节点在x维上的偏移为正。 
Figure BDA0000120114770000121
Figure BDA0000120114770000122
分别是各个虚拟通道的标识符。每个小方块表示一个缓冲区。由于虚拟通道是跟缓冲区对应相关的,因而各个虚通道的标识符分别对应各自的缓冲区。
图7示出了本发明的路由方法对应的路由器的体系结构。其中,VC allocator的全称是Virtual Channel Allocator,中文可以译为“虚拟通道分配器”;switch allocator就是switch分配器,可以译为“开关分配器”;switch是路由器的一个组件,可以根据需要动态接通各个端口之间的内部物理链路,用来将消息从路由器的一个端口传递到另外一个端口,可以译为“开关”。
由以上实施例可以看出,本发明中,使用了有限的全局控制信号方案(如图4所示):每个节点与其周围k跳距离的节点都用信号线直接连接,以使得该节点可以在一个时钟周期内获取半径为k范围内的所有相邻节点的EVC开关状态,其中k为网络设计中的EVC通道的最大长度,即EVC通道的最大跳步数。而且本发明中,一条物理链路能够同时被多条EVC通道复用,使得消息能够申请到空闲EVC通道的机率大为增加。在计算功耗时,除了采用传统方法统计平均功耗和整体功耗外,本发明还提出了峰值功耗的定义:峰值功耗为所有的单个时钟周期的功耗值的最大值。该定义对于指导设计符合条件的安全稳定的片上网络具有重要意义,有效弥补了传统的功耗计算模式无法得到片上网络峰值功耗的缺点。
峰值功耗的计算方法如下:
a)每个时钟周期T内网络中所有NVC通道的功耗Pt(nvc)
Pt(nvc)=∑Pnvc,b+∑Pnvc,d
Pnvc,b=Pb+Prc+Pva+Psa+Pss+Plt
Pnvc,d=Pb+Pss+Plt
其中,Pb,Pnc,Pva,Psa,Pst,Plt分别对应路由器的BW、RC、VA、SA、ST、LT六级流水线的每个阶段所产生的功耗。
b)每个时钟周期T内网络中所有EVC通道的功耗:
Pt(evc)=∑Pt(evc,b)+∑Pt(evc,d)
Pt(evc,h)-∑Pevc,f+∑Pevc,t+∑Pevc,l
Pevc,f=Pb,w+Prc+Pva+Psa+Pst+Plt
Pevc,l=Plt
Pevc,l=Pb,xy+Plt
Pt(evc,d)=∑P′evc,t+∑P′evc,f+∑P′evc,l
Pevc,f=Prc+Pst+Plt
P′evc,t=Plt
P′evc,l=Pb,xy+Plt
其中,Pb,xy,Prc,Pva,Psa,Pst,Plt分别对应路由器的BW,RC,VA,SA,ST,LT六级流水线的每个阶段所产生的功耗,Pbr为从缓冲中读取数据的功耗。
c)每个时钟周期T内网络的整体功耗:
Pt=Pt(nvc)+Pt(evc)
d)每个时钟周期T内网络的峰值功耗:
Figure BDA0000120114770000141
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (10)

1.一种片上网络中的低功耗自适应路由方法,其特征在于,包括以下步骤:
S1、计算消息的源节点与目的节点在x维和y维两个方向的距离,如果距离之和为零,则路由完成,否则执行步骤S2;
S2、把网络划分为两个虚拟子网x+y*和x-y*,虚拟子网x+y*用于路由x维上偏移为正的消息,虚拟子网x-y*用于路由x维上偏移为负的消息;
S3、消息进入虚拟子网x+y*或x-y*中路由。
2.如权利要求1所述的方法,其特征在于,步骤S2中把网络划分为两个虚拟子网x+y*和x-y*之后,y维上的每条物理通道被划分为两条虚拟通道:cy,1和cy,2,x维上的每条物理通道仅有一条虚拟通道cx
3.如权利要求2所述的方法,其特征在于,步骤S3具体包括:
S3.1、计算消息的目的节点d和源节点s在x维上的偏移xoffset=xd-xs
S3.2、判断xoffset是否大于或等于0,如果xoffset≥0,则消息进入虚拟子网x+y*中路由;否则进入虚拟子网x-y*中路由。
4.如权利要求3所述的方法,其特征在于,步骤S3.2中消息进入虚拟子网x+y*或x-y*中路由时,首先根据有限的全局控制信号方案确认周围节点EVC开关的可用状态,并计算源节点和目的节点x维和y维上可用的EVC通道的最长长度,若存在可用的EVC通道,则选取最长的EVC通道进行路由;否则使用NVC通道进行路由,所述有限的全局控制信号方案为:每个节点与其周围k跳距离的节点都用控制信号线直接连接,其中k为网络设计中的EVC通道的最大长度,即EVC通道的最大跳步数;所述每个节点能够在一个时钟周期内确认它k-距离范围内所有节点缓存及输入端口是否可用,并立刻预定相应的EVC通道。
5.如权利要求4所述的方法,其特征在于,步骤S3.2中,当消息进入虚拟子网x+y*中路由时,路由的步骤具体包括:
S3.2.1、当消息到达虚拟子网x+y*中的任一节点时,计算目的节点和源节点之间在x维和y维上的偏移xoffset=xd-xs和yoffset=yd-ys
S3.2.3、如果xoffset≠0并且yoffset≠0,当存在可用的EVC通道时,则选取x维和y维上最长的EVC通道进行路由;否则将虚拟通道cx或者cy,1作为NVC通道使用,并进行路由;
S3.2.4、如果xoffset=0并且yoffset≠0,当y维上存在可用的EVC通道时,则选取y维上最长的EVC通道进行路由;否则将虚拟通道cy,1作为NVC通道使用,并进行路由;
S3.2.5、如果xoffset≠0并且yoffset=0,当x维上存在可用的EVC通道时,则选取x维上最长的EVC通道进行路由;否则将虚拟通道cx作为NVC通道使用,并进行路由;
S3.2.6、如果xoffset=0并且yoffset=0,则使用目的节点的内部通道进行路由。
6.如权利要求4所述的方法,其特征在于,步骤S3.2中,当消息进入虚拟子网x-y*中路由时,路由的步骤具体包括:
S3.2.1’、当消息到达虚拟子网x-y*中的任一节点时,计算目的节点和源节点之间在x维和y维上的偏移xoffset=xd-xs和yoffset=yd-ys
S3.2.3’、如果xoffset≠0并且yoffset≠0,当存在可用的EVC通道时,则选取x维和y维上最长的EVC通道进行路由;否则将虚拟通道cx或者cy,2作为NVC通道使用,并进行路由;
S3.2.4’、如果xoffset=0并且yoffset≠0,当y维上存在可用的EVC通道时,则选取y维上最长的EVC通道进行路由;否则将虚拟通道cy,2作为NVC通道使用,并进行路由;
S3.2.5’、如果xoffset≠0并且yoffset=0,当x维上存在可用的EVC通道时,则选取x维上最长的EVC通道进行路由;否则将虚拟通道cx作为NVC通道使用,并进行路由;
S3.2.6’、如果xoffset=0并且yoffset=0,则使用目的节点的内部通道进行路由。
7.如权利要求3所述的方法,其特征在于,步骤S3.2中消息进入虚拟子网x+y*或x-y*中路由时,首先分别计算源节点和目的节点在x维和y维上可用的EVC通道的最长长度lx和ly、由x维偏转到y维的可用的EVC通道的最长长度lxy,以及y维偏转到x维的可用的EVC通道的最长长度lyx;若存在可用的EVC通道,则选取最长的EVC通道进行路由,否则使用NVC通道进行路由。
8.如权利要求7所述的方法,其特征在于,步骤S3.2中,当消息进入虚拟子网x+y*中路由时,路由的步骤具体包括:
S3.2.1”、当消息到达虚拟子网x+y*中的任一节点时,计算目的节点和源节点之间在x维和y维上的偏移xoffset=xd-xs和yoffset=yd-ys
S3.2.3”、如果xoffset≠0并且yoffset≠0,当存在可用的EVC通道时,则使用选择函数选取最长的EVC通道进行路由;否则将虚拟通道cx或者cy,1作为NVC通道使用,并进行路由;
S3.2.4”、如果xoffset=0并且yoffset≠0,当y维上存在可用的EVC通道时,则选取y维上最长的EVC通道进行路由;否则将虚拟通道cy,1作为NVC通道使用,并进行路由;
S3.2.5”、如果xoffset≠0并且yoffset=0,当x维上存在可用的EVC通道时,则选取x维上最长的EVC通道进行路由;否则将虚拟通道cx作为NVC通道使用,并进行路由;
S3.2.6”、如果xoffset=0并且yoffset=0,则使用目的节点的内部通道进行路由;
其中,所述选择函数描述如下:
如果lx>ly,lx>lxy,且lx>lyx,则消息使用x维上预设的长为lx的EVC通道进行路由;
如果ly>lx,ly>lxy,且ly>lyx,则消息使用y维上预设的长为ly的EVC通道进行路由;
如果lx和ly都不是最大的,则消息使用预设的长为lxy的EVC通道或者长为lyx的EVC通道进行路由;
如果lx=ly,lx>lxy,且lx>lyx,则消息使用x维上预定的长为lx的EVC通道;
如果lx>ly,lx=lxy,且lx=lyx,或者ly>lx,ly=lxy,且ly=lyx,则消息使用预设的长为lxy的EVC通道或者长为lyx的EVC通道进行路由。
9.如权利要求7所述的方法,其特征在于,步骤S3.2中,当消息进入虚拟子网x-y*中路由时,路由的步骤具体包括:
S3.2.1’”、当消息到达虚拟子网x-y*中的任一节点时,计算目的节点和源节点之间在x维和y维上的偏移xoffset=xd-xs和yoffset=yd-ys
S3.2.3’”、如果xoffset≠0并且yoffset≠0,当存在可用的EVC通道时,则用选择函数选取最长的EVC通道进行路由;否则将虚拟通道cx或者cy,2作为NVC通道使用,并进行路由;
S3.2.4’”、如果xoffset=0并且yoffset≠0,当y维上存在可用的EVC通道时,则选取y维上最长的EVC通道进行路由;否则将虚拟通道cy,2作为NVC通道使用,并进行路由;
S3.2.5’”、如果xoffset≠0并且yoffset=0,当x维上存在可用的EVC通道时,则选取x维上最长的EVC通道进行路由;否则将虚拟通道cx作为NVC通道使用,并进行路由;
S3.2.6’”、如果xoffset=0并且yoffset=0,则使用目的节点的内部通道进行路由;
其中,所述选择函数描述如下:
如果lx>ly,lx>lxy,且lx>lyx,则消息使用x维上预设的长为lx的EVC通道进行路由;
如果ly>lx,ly>lxy,且ly>lyx,则消息使用y维上预设的长为ly的EVC通道进行路由;
如果lx和ly都不是最大的,则消息使用预设的长为lxy的EVC通道或者长为lyx的EVC通道进行路由;
如果lx=ly,lx>lxy,且lx>lyx,则消息使用x维上预定的长为lx的EVC通道;
如果lx>ly,lx=lxy,且lx=lyx,或者ly>lx,ly=lxy,且ly=lyx,则消息使用预设的长为lxy的EVC通道或者长为lyx的EVC通道进行路由。
10.如权利要求7~9中任一项所述的方法,其特征在于,所述EVC通道为新的EVC通道,其包含X维跳步+Y维跳步或者Y跳步+X跳步,或者仅包含X跳步或仅包含Y跳步;且相同的物理通道能够同时被多条所述新的EVC通道复用。
CN201110418420.8A 2011-12-14 2011-12-14 片上网络中的低功耗自适应路由方法 Active CN102437953B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110418420.8A CN102437953B (zh) 2011-12-14 2011-12-14 片上网络中的低功耗自适应路由方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110418420.8A CN102437953B (zh) 2011-12-14 2011-12-14 片上网络中的低功耗自适应路由方法

Publications (2)

Publication Number Publication Date
CN102437953A true CN102437953A (zh) 2012-05-02
CN102437953B CN102437953B (zh) 2014-07-30

Family

ID=45985836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110418420.8A Active CN102437953B (zh) 2011-12-14 2011-12-14 片上网络中的低功耗自适应路由方法

Country Status (1)

Country Link
CN (1) CN102437953B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401858A (zh) * 2013-07-29 2013-11-20 北京交通大学 片上路由器拥塞感知范围的扩大方法
CN103729332A (zh) * 2013-12-23 2014-04-16 北京工业大学 一种基于MoT结构的低功耗NoC路由方法
CN105262705A (zh) * 2015-11-02 2016-01-20 中国人民解放军国防科学技术大学 一种基于当值缓存降低片上网络静态功耗的方法
CN105550159A (zh) * 2015-12-16 2016-05-04 广州中国科学院先进技术研究所 多核处理器片上网络的功率分配方法
US9842180B2 (en) 2014-11-24 2017-12-12 Industrial Technology Research Institute NoC timing power estimating device and method thereof
CN110048947A (zh) * 2019-03-06 2019-07-23 清华大学 二维Mesh网络中数据包的自适应路由方法与电子设备
CN110365579A (zh) * 2019-08-09 2019-10-22 合肥工业大学 无线片上网络中拥塞与故障感知无线路由器及其路由方法
CN114745345A (zh) * 2022-04-07 2022-07-12 中国人民解放军国防科技大学 一种片上网络动态调节背压的高效路由方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262444A (zh) * 2008-03-10 2008-09-10 清华大学 基于通道交叠的容错mesh网避免死锁的路由方法
CN101978659A (zh) * 2008-04-02 2011-02-16 英特尔公司 分组交换的片上互连网络中的快速虚拟通道

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262444A (zh) * 2008-03-10 2008-09-10 清华大学 基于通道交叠的容错mesh网避免死锁的路由方法
CN101978659A (zh) * 2008-04-02 2011-02-16 英特尔公司 分组交换的片上互连网络中的快速虚拟通道

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401858B (zh) * 2013-07-29 2016-01-13 北京交通大学 片上路由器拥塞感知范围的扩大方法
CN103401858A (zh) * 2013-07-29 2013-11-20 北京交通大学 片上路由器拥塞感知范围的扩大方法
CN103729332B (zh) * 2013-12-23 2016-09-14 北京工业大学 一种基于MoT结构的低功耗NoC路由方法
CN103729332A (zh) * 2013-12-23 2014-04-16 北京工业大学 一种基于MoT结构的低功耗NoC路由方法
US9842180B2 (en) 2014-11-24 2017-12-12 Industrial Technology Research Institute NoC timing power estimating device and method thereof
CN105262705A (zh) * 2015-11-02 2016-01-20 中国人民解放军国防科学技术大学 一种基于当值缓存降低片上网络静态功耗的方法
CN105262705B (zh) * 2015-11-02 2018-06-26 中国人民解放军国防科学技术大学 一种基于当值缓存降低片上网络静态功耗的方法
CN105550159A (zh) * 2015-12-16 2016-05-04 广州中国科学院先进技术研究所 多核处理器片上网络的功率分配方法
CN105550159B (zh) * 2015-12-16 2018-08-31 深圳先进技术研究院 多核处理器片上网络的功率分配方法
CN110048947A (zh) * 2019-03-06 2019-07-23 清华大学 二维Mesh网络中数据包的自适应路由方法与电子设备
CN110048947B (zh) * 2019-03-06 2020-06-16 清华大学 二维Mesh网络中数据包的自适应路由方法与电子设备
CN110365579A (zh) * 2019-08-09 2019-10-22 合肥工业大学 无线片上网络中拥塞与故障感知无线路由器及其路由方法
CN114745345A (zh) * 2022-04-07 2022-07-12 中国人民解放军国防科技大学 一种片上网络动态调节背压的高效路由方法及装置
CN114745345B (zh) * 2022-04-07 2023-10-20 中国人民解放军国防科技大学 一种片上网络动态调节背压的高效路由方法及装置

Also Published As

Publication number Publication date
CN102437953B (zh) 2014-07-30

Similar Documents

Publication Publication Date Title
CN102437953B (zh) 片上网络中的低功耗自适应路由方法
JP6216454B2 (ja) ネットワークオンチップアーキテクチャにおけるシステムレベルシミュレーション
Farsi et al. A congestion-aware clustering and routing (CCR) protocol for mitigating congestion in WSN
WO2011148583A1 (ja) バス制御装置およびバス制御装置に指示を出力する制御装置
CN109189720B (zh) 层次化片上网络拓扑结构及其路由方法
CN106254254B (zh) 一种基于Mesh拓扑结构的片上网络通信方法
CN103124420B (zh) 一种无线片上网络架构方法
CN103647714A (zh) 一种基于社交能量的移动社交容迟网络路由方法
US10050843B2 (en) Generation of network-on-chip layout based on user specified topological constraints
EP3442172B1 (en) Network topology system and building methods for topologies and routing tables thereof
CN105959221A (zh) 软件定义卫星网络中的流表更新及流表一致性优化的方法
CN103281708B (zh) 无线传感器节点部署方法
Lei et al. Multipath routing in SDN-based data center networks
Wang et al. An adaptive partition-based multicast routing scheme for mesh-based networks-on-chip
CN104994508A (zh) 一种认知无线mesh网络资源分配及路由方法
CN105844014B (zh) 基于芯片设计流程和应用设计流程的片上网络编码优化方法
Zhu et al. Efficient hybrid multicast approach in wireless data center network
CN104469874A (zh) 一种基于概率中心度的机会网络的消息转发方法
CN103729332B (zh) 一种基于MoT结构的低功耗NoC路由方法
JP2009141425A (ja) ネットワークに含まれるノード間の経路を探索するためのシステムおよび方法
CN102076049B (zh) 基于势能场的能量平衡的路由方法
CN102083167A (zh) 一种基于查询的多汇聚节点无线传感器网络路由方法
CN113203940B (zh) 3D NoC测试规划中的并行测试方法
CN104244423A (zh) 基于无线传感器网络多路径传输的时隙调度算法
US10084725B2 (en) Extracting features from a NoC for machine learning construction

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant