CN103729332B - 一种基于MoT结构的低功耗NoC路由方法 - Google Patents
一种基于MoT结构的低功耗NoC路由方法 Download PDFInfo
- Publication number
- CN103729332B CN103729332B CN201310717527.1A CN201310717527A CN103729332B CN 103729332 B CN103729332 B CN 103729332B CN 201310717527 A CN201310717527 A CN 201310717527A CN 103729332 B CN103729332 B CN 103729332B
- Authority
- CN
- China
- Prior art keywords
- router
- flit
- addr
- output port
- row
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于MoT(mesh‑of‑tree,网状树)结构的低功耗NoC(Network‑on‑chip,片上网络)路由方法,包括针对叶子层路由器的自适应路由方法和针对树干路由器的路由方法。本发明所述的路由方法在每个flit进行路径选择时,通过计算每个临近路由器的拥塞系数,选择位于最短路径上拥塞系数较低的路由器进行转发,既能保证核间通信时的最短路径,又会减少网络中非自适应算法产生的拥塞现象。本发明同时采用了一种简化的地址模式以减小路由器的缓存中flit的大小。从而在运行同一个应用时,使用较小的缓存存储flit,在满足性能的基础上达到降低功耗的目的。
Description
技术领域
本发明属于计算机体系结构领域,具体涉及一种基于mesh-of-tree(MoT)结构的低功耗NoC路由方法。
背景技术
随着半导体技术的发展,越来越多的部件被集成到单一芯片上来,因此片上网络的通信质量很大程度地影响整体的性能。片上网络NoC(Network-on-chip)作为一种可扩展的片上结构,已经成为解决片上系统核间通信的有效方案。而NoC的拓扑结构和相应路由方法的选择对系统的延迟、功耗等性能有至关重要的影响。
MoT结构拥有较小的直径和较低的节点度,是一种较为理想的拓扑结构。K.Manna等基于MoT结构提出了确定性路由策略,其原理是消息在源节点路由到目的节点的过程中,根据目的节点地址确定出一条最短路径,并按照此路径将消息传递到目的节点。此方法虽然能够确保核间通信的最短路径,但却极易造成网络拥塞现象,增加通信延迟,从而影响系统的性能。
发明内容
本发明提出了一种基于MoT结构的低功耗NoC路由方法,这种算法在每个flit(网络中数据传输的基本单元)进行路径选择时,通过计算每个临近路由器的拥塞系数,选择位于最短路径上系数较低的路由器进行转发,既能保证核间通信时的最短路径,又会减少网络中非自适应算法产生的拥塞现象。并采用一种简化的地址模式以减小路由器的缓存中flit的大小。从而在运行同一个应用时,使用较小的缓存存储flit,在满足性能的基础上达到降低功耗的目的。
为达到上述目的,本发明采用以下技术方案。
本发明所述的部分适应路由方法采用的是MoT拓扑结构。在MoT中,将NoC网络中的路由器分为三种类型:叶子层路由器(Leaf_Router),树干层路由器(Row_Router&&Col_Router)和根路由器(Root_Router)。每个Leaf_Router连接两个IP核,并且向上连接一个Row_Router和一个Col_Router,树干层路由器向上连接一个Root_Router。图1是一个32核的MoT拓扑结构。
本发明采用一种简化的地址模式,例如在32核的MoT中,数据包的地址位数为5位:Core_id(IP核的ID号)1位,Col_ADDR(IP核的列地址)2位,Row_ADDR(IP核的行地址)2位。
一种基于MoT结构的低功耗NoC路由方法,其特征在于包含以下步骤:
针对叶子层路由器的自适应路由方法如下:
步骤1,路由器接收flit,将该flit存储在相应输入端口的buffer中。
步骤2,计算最优的输出端口。
步骤2.1,计算数据包从当前节点到达目的节点所经过的Row_Router个数Δx和所经过的Col_Router个数Δy。
步骤2.2,若Δx≠0,且Δy≠0,即源节点与目的节点位于不同的行和列上,选择某一邻居路由器作为flit的下一跳,方法如下:
(1)计算数据包从源节点到达目的节点的最短路径的数目Palgorithm。在MoT结构中,Palgorithm=2。
(2)计算在每个叶子节点L,一个flit转发到每一个邻居路由器Row_Router或Col_Router的概率P1和P2,公式如下:
(3)计算除flit转发来的路由器外的每一个邻居路由器的拥塞系数,公式如下:
式中,Coni为第i个叶子节点邻居路由器的拥塞系数,Pi为第i个叶子节点邻居路由器一个flit转发到Row_Router或Col_Router的概率,i=1,2;Buf_SIZEout1和Buf_SIZEout2分别为行或列方向输出端口和下一个可能输出端口的可用buffer数。
(4)选择拥塞系数Coni最低的邻居路由器作为flit的下一跳,确定相应的输出端口。
步骤2.3,若Δx=0,且Δy≠0,即源节点与目的节点在同一行上,选择Row_Router作为flit的下一跳,确定相应的输出端口。
步骤2.4,若Δx≠0,且Δy=0,即源节点与目的节点在同一列上,选择Col_Router作为flit的下一跳,确定相应的输出端口。
步骤2.5,若Δx=0,且Δy=0,即源节点与目的节点连接在同一路由器上,当Core_id=0时,发送flit至L_Core;当Core_id=1时,发送flit至R_Core。
步骤2.6,如果两个或者更多的flit想要经过同一个输出端口转发出去,则优先权高的即跳数更多的flit优先转发出去。
步骤3,将flit从选择的输出端口转发给相应的路由器。
针对第l层(N为一个MoT结构中的列数)树干路由器的路由方法如下:
步骤1,路由器接收flit,将该flit存储在相应输入端口的buffer中。
步骤2,选择输出端口阶段:
步骤2.1,计算目的地址Des_ADDR的l层组地址Gro_ADDR,公式如下:
步骤2.2,判断路由器的地址Cur_ADDR与Gro_ADDR是否相同,如果相同,转下一步;否则,转步骤2.5。
步骤2.3,计算目的地址Des_ADDR的l-1层组地址Up_ADDR,公式如下:
Up_ADDR=return_groupaddr(Des_ADDR,l-1) (5)
步骤2.4,若Up_ADDR=0,发送flit至L_Router;若Up_ADDR=1,发送flit至R_Router。
步骤2.5,将l+1层路由器作为flit的下一跳,确定相应的输出端口。
步骤3,转发flit:将flit从选择的输出端口转发到相应的路由器。
与现有技术相比,本发明具有以下优点:
在源节点路由到目的节点的过程中,在可选的最短路径的范围内,比较和衡量每个临近路由器的可用buffer数及下一个可能输入出口的可用buffer数,选择位于最短路径上较不易产生拥塞的路由器进行转发,既能保证核间通信时的最短路径,又会减少网络中非自适应算法产生的拥塞现象。并采用一种简化的地址模式表示网络中节点的地址,从而减小路由器的缓存中flit的大小,在满足性能的基础上达到降低功耗的目的。
附图说明
图1为一个32核的MoT拓扑结构示意图;
图2为本发明所涉及的叶子层路由器路由方法流程图;
图3为本发明所涉及的树干层路由器路由方法流程图。
具体实施方式:
下面结合附图和实施例对本发明做进一步说明。
一个32核的MoT结构如图1所示,假设某个数据包的源地址是10000,其目的地址为10111。本发明的方法流程图如图2和图3所示,具体步骤如下:
步骤1,Leaf_Router接收flit:core1首先将数据包转发到0000(Leaf_Router),0000(Leaf_Router)将该flit存储在相应输入端口的buffer中。
步骤2,计算最优的输出端口。
步骤2.1,计算Δx和Δy得:Δx=1,Δy=2。
步骤2.2,Δx≠0,且Δy≠0,即源节点与目的节点位于不同的行和列上,选择某一邻居路由器作为flit的下一跳,方法如下:
(1)计算数据包从源节点到达目的节点的最短路径的数目Palgorithm=2。
(2)根据公式(1)和(2)分别计算flit转发到每一个邻居路由器即Row_Router或
Col_Router的概率为P1和P2。计算得
(3)根据公式(3)计算Row_Router或Col_Router的拥塞系数Coni。假设Row_Router的Buf_SIZEout1=4,Buf_SIZEout2=6,Col_Router的Buf_SIZEout1=3,Buf_SIZEout2=3,可求得:
(4)根据Con1>Con2,选择列路由器作为flit的下一跳,确定相应的输出端口。
步骤3,转发flit:将flit从选择的输出端口转发到列路由器。
步骤4,Col_Router接收flit:将接收到的flit存储在相应输入端口的buffer中。
步骤5,选择输出端口:
步骤5.1,根据公式(4)计算目的地址Des_ADDR的组地址Gro_ADDR,这里,Gro_ADDR=1。
步骤5.2,该路由器的地址是0≠1,转下一步。
步骤5.3,将R_Router作为flit的下一跳,确定相应的输出端口。
步骤6,转发flit:将flit从选择的输出端口转发到Root_Router,Root_Router直接将flit转发到连接在该路由器上的另一个Col_Router。
步骤7,Col_Router:接收flit:将接收到的flit存储在相应输入端口的buffer中。
步骤8,选择输出端口阶段:
步骤8.1,根据公式(4)计算目的地址Des_ADDR的组地址Gro_ADDR,这里,Gro_ADDR=1。
步骤8.2,该路由器的地址是1=1,转下一步。
步骤8.3,根据公式(5)计算目的地址Des_ADDR的l-1层即叶子层组地址Up_ADDR,这里,Up_ADDR=1。
步骤8.4,将R_Router即0011(Leaf_Router)作为flit的下一跳,确定相应的输出端口。
步骤9,转发flit:将flit从选择的输出端口转发到0011(Leaf_Router)。
步骤10,0011(Leaf_Router)接收flit:0011(Leaf_Router)将该flit存储在相应输入端口的buffer中。
步骤11,计算最优的输出端口:
步骤11.1,计算Δx和Δy的值,此时Δx=1且Δy=0,说明源节点与目的节点在同一行上,转下一步。
步骤11.2,选择Row_Router作为flit的下一跳,确定相应的输出端口。
步骤12,Row_Router接收flit:将接收到的flit存储在相应输入端口的buffer中。
步骤13,选择输出端口阶段:
步骤13.1,根据公式(4)计算目的地址Des_ADDR的组地址Gro_ADDR,这里,Gro_ADDR=0。
步骤13.2,该路由器的地址是0=0,转下一步。
步骤13.3,根据公式(5)计算目的地址Des_ADDR的l-1层即叶子层组地址Up_ADDR,这里,Up_ADDR=1。
步骤13.4,将R_Router即0111(Leaf_Router)作为flit的下一跳,确定相应的输出端口。
步骤14,转发flit阶段:将flit从选择的输出端口转发到0111(Leaf_Router)。
步骤15,0111(Leaf_Router)接收flit阶段:将接收到的flit存储在相应输入端口的buffer中。
步骤16,计算最优的输出端口。
步骤16.1,计算Δx和Δy的值,此时Δx=0,Δy=0则说明源节点与目的节点连接在同一路由器上,转下一步。
步骤16.2,判断目的地址的Core_id,此时Core_id=1,则将flit转发给R_Core。此时该flit到达目的地10111。
Claims (3)
1.一种基于MoT结构的低功耗NoC路由方法,其特征在于,在每个flit进行路径选择时,通过计算每个临近路由器的拥塞系数,选择位于最短路径上拥塞系数较低的路由器进行转发,以保证核间通信时的最短路径,减少网络中非自适应算法产生的拥塞现象;所述方法包括针对叶子层路由器的自适应路由方法和针对树干路由器的路由方法;其中,
针对叶子层路由器的自适应路由方法包括以下步骤;
步骤1,路由器接收flit,将该flit存储在相应输入端口的buffer中;
步骤2,计算最优的输出端口;
步骤2.1,计算数据包从当前节点到达目的节点所经过的Row_Router个数Δx和所经过的Col_Router个数Δy;
步骤2.2,若Δx≠0,且Δy≠0,即源节点与目的节点位于不同的行和列上,选择某一邻居路由器作为flit的下一跳,方法如下:
(1)计算数据包从源节点到达目的节点的最短路径的数目Palgorithm;在MoT结构中,Palgorithm=2;
(2)计算在每个叶子节点L,一个flit转发到每一个邻居路由器Row_Router或Col_Router的概率P1和P2,Row_Router&&Col_Router为树干层路由器,公式如下:
(3)计算除flit转发来的路由器外的每一个邻居路由器的拥塞系数,公式如下:
式中,Coni为第i个叶子节点邻居路由器的拥塞系数,Pi为第i个叶子节点邻居路由器一个flit转发到Row_Router或Col_Router的概率,i=1,2;Buf_SIZEout1和Buf_SIZEout2分别为行或列方向输出端口和下一个可能输出端口的可用buffer数;
(4)选择拥塞系数Coni最低的邻居路由器作为flit的下一跳,确定相应的输出端口;
步骤2.3,若Δx=0,且Δy≠0,即源节点与目的节点在同一行上,选择Row_Router作为flit的下一跳,确定相应的输出端口;
步骤2.4,若Δx≠0,且Δy=0,即源节点与目的节点在同一列上,选择Col_Router作为flit的下一跳,确定相应的输出端口;
步骤2.5,若Δx=0,且Δy=0,即源节点与目的节点连接在同一路由器上,当Core_id=0时,发送flit至L_Core;当Core_id=1时,发送flit至R_Core;
步骤2.6,如果两个或者更多的flit想要经过同一个输出端口转发出去,则优先权高的即跳数更多的flit优先转发出去;
步骤3,将flit从选择的输出端口转发给相应的路由器;
针对树干路由器的路由方法包括以下步骤:
步骤1,路由器接收flit,将该flit存储在相应输入端口的buffer中;
步骤2,选择输出端口;
步骤2.1,计算目的地址Des_ADDR的l层组地址Gro_ADDR,N为一个MoT结构中的列数,公式如下:
步骤2.2,判断路由器的地址Cur_ADDR与Gro_ADDR是否相同,如果相同,转下一步;否则,转步骤2.5;
步骤2.3,计算目的地址Des_ADDR的l-1层组地址Up_ADDR,公式如下:
Up_ADDR=return_groupaddr(Des_ADDR,l-1)
步骤2.4,若Up_ADDR=0,发送flit至L_Router;若Up_ADDR=1,发送flit至R_Router;
步骤2.5,将l+1层路由器作为flit的下一跳,确定相应的输出端口;
步骤3,转发flit:将flit从选择的输出端口转发到相应的路由器。
2.根据权利要求1所述的一种基于MoT结构的低功耗NoC路由方法,其特征在于,在MoT中,将NoC网络中的路由器分为三种类型:叶子层路由器Leaf_Router,树干层路由器Row_Router&&Col_Router和根路由器Root_Router;每个Leaf_Router连接两个IP核,并且向上连接一个Row_Router和一个Col_Router,树干层路由器向上连接一个Root_Router。
3.根据权利要求1所述的一种基于MoT结构的低功耗NoC路由方法,其特征在于,采用一种简化的地址模式,在32核的MoT中,数据包的地址位数为5位:1位Core_id,2位Col_ADDR,2位Row_ADDR。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310717527.1A CN103729332B (zh) | 2013-12-23 | 2013-12-23 | 一种基于MoT结构的低功耗NoC路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310717527.1A CN103729332B (zh) | 2013-12-23 | 2013-12-23 | 一种基于MoT结构的低功耗NoC路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103729332A CN103729332A (zh) | 2014-04-16 |
CN103729332B true CN103729332B (zh) | 2016-09-14 |
Family
ID=50453411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310717527.1A Active CN103729332B (zh) | 2013-12-23 | 2013-12-23 | 一种基于MoT结构的低功耗NoC路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103729332B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095147B (zh) | 2014-05-21 | 2018-03-13 | 华为技术有限公司 | 片上网络的Flit传输方法及装置 |
CN104780122B (zh) * | 2015-03-23 | 2018-09-11 | 中国人民解放军信息工程大学 | 基于缓存再分配的层次化片上网络路由器的控制方法 |
CN115250251B (zh) * | 2021-04-26 | 2023-07-28 | 北京希姆计算科技有限公司 | 片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148763A (zh) * | 2011-04-28 | 2011-08-10 | 南京航空航天大学 | 一种应用于片上网络的动态路径分配方法及系统 |
CN102437953A (zh) * | 2011-12-14 | 2012-05-02 | 清华大学 | 片上网络中的低功耗自适应路由方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4592800B2 (ja) * | 2009-03-12 | 2010-12-08 | パナソニック株式会社 | 経路選択装置、経路選択方法、およびプログラム |
JP5534444B2 (ja) * | 2009-09-08 | 2014-07-02 | 日本電気株式会社 | 集積回路およびデータ転送方法 |
-
2013
- 2013-12-23 CN CN201310717527.1A patent/CN103729332B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148763A (zh) * | 2011-04-28 | 2011-08-10 | 南京航空航天大学 | 一种应用于片上网络的动态路径分配方法及系统 |
CN102437953A (zh) * | 2011-12-14 | 2012-05-02 | 清华大学 | 片上网络中的低功耗自适应路由方法 |
Non-Patent Citations (2)
Title |
---|
"A New Application Mapping Strategy for Mesh-of-Tree based Network-on-Chip";Sahu P.K. et al;《2011 International Conference on Emerging Trends in Electrical and Computer Technology (ICETECT)》;20110324;第518-522页 * |
"面向应用片上网络映射研究";张碧霞;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20131215(第S2期);第21-44页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103729332A (zh) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6216454B2 (ja) | ネットワークオンチップアーキテクチャにおけるシステムレベルシミュレーション | |
JP5551253B2 (ja) | 複数の等コストパスから選択するための方法および装置 | |
JP5276220B2 (ja) | バス制御装置およびバス制御装置に指示を出力する制御装置 | |
Bolotin et al. | Routing table minimization for irregular mesh NoCs | |
CN102437953B (zh) | 片上网络中的低功耗自适应路由方法 | |
CN104158738A (zh) | 一种低缓冲区片上网络路由器及路由方法 | |
CN106254254B (zh) | 一种基于Mesh拓扑结构的片上网络通信方法 | |
CN102036337B (zh) | 基于改进aodv协议的通信方法 | |
CN101834789B (zh) | 面向包-电路交换片上路由器的回退转向路由算法及所用路由器 | |
Xin et al. | A low-latency NoC router with lookahead bypass | |
CN103729332B (zh) | 一种基于MoT结构的低功耗NoC路由方法 | |
CN103380597A (zh) | 用于在片上环形网络中减少时延的非对称环形网拓扑 | |
CN102368739A (zh) | 面向包-电路交换片上路由器的广播机制路由算法 | |
CN102693213B (zh) | 应用于片上网络的系统级传输延时模型的建立方法 | |
Rahmati et al. | A performance and power analysis of WK-recursive and mesh networks for network-on-chips | |
CN103826282B (zh) | 基于剩余能量的集合划分多跳路由方法 | |
CN116886591A (zh) | 片上网络的拓扑结构及路由方法 | |
CN104486212B (zh) | 三维片上光网络拓扑及路由路径计算方法 | |
AU2020101176A4 (en) | Exploring a new adaptive routing based on dijkstra algorithm in optical networks-on-chip | |
Adamu et al. | Review of deterministic routing algorithm for network-on-chip | |
Yanez-Marquez et al. | BDD-based algorithm for the minimum spanning tree in wireless ad-hoc network routing | |
CN102685011A (zh) | 一种trill网络中的路由计算方法和设备 | |
Qin et al. | A Novel Shortest-distance Path-based Multicast Routing Algorithm for Network-on-Chips | |
Wang et al. | Flow control mechanism for wireless network-on-chip | |
Dong et al. | An efficient hardware routing algorithms for NoC |
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 |