CN103729332A - 一种基于MoT结构的低功耗NoC路由方法 - Google Patents
一种基于MoT结构的低功耗NoC路由方法 Download PDFInfo
- Publication number
- CN103729332A CN103729332A CN201310717527.1A CN201310717527A CN103729332A CN 103729332 A CN103729332 A CN 103729332A CN 201310717527 A CN201310717527 A CN 201310717527A CN 103729332 A CN103729332 A CN 103729332A
- 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.)
- Granted
Links
Images
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从选择的输出端口转发给相应的路由器。
步骤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或
(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,公式如下:
(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.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 true CN103729332A (zh) | 2014-04-16 |
CN103729332B 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104780122A (zh) * | 2015-03-23 | 2015-07-15 | 中国人民解放军信息工程大学 | 基于缓存再分配的层次化片上网络路由器的控制方法 |
WO2015176646A1 (zh) * | 2014-05-21 | 2015-11-26 | 华为技术有限公司 | 片上网络的Flit传输方法及装置 |
US20200236052A1 (en) * | 2020-03-04 | 2020-07-23 | Arvind Srinivasan | Improving end-to-end congestion reaction using adaptive routing and congestion-hint based throttling for ip-routed datacenter networks |
CN115250251A (zh) * | 2021-04-26 | 2022-10-28 | 北京希姆计算科技有限公司 | 片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110069612A1 (en) * | 2009-03-12 | 2011-03-24 | Takao Yamaguchi | Best path selecting device, best path selecting method, and program |
JP2011082964A (ja) * | 2009-09-08 | 2011-04-21 | Nec Corp | 集積回路およびデータ転送方法 |
CN102148763A (zh) * | 2011-04-28 | 2011-08-10 | 南京航空航天大学 | 一种应用于片上网络的动态路径分配方法及系统 |
CN102437953A (zh) * | 2011-12-14 | 2012-05-02 | 清华大学 | 片上网络中的低功耗自适应路由方法 |
-
2013
- 2013-12-23 CN CN201310717527.1A patent/CN103729332B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110069612A1 (en) * | 2009-03-12 | 2011-03-24 | Takao Yamaguchi | Best path selecting device, best path selecting method, and program |
JP2011082964A (ja) * | 2009-09-08 | 2011-04-21 | Nec Corp | 集積回路およびデータ転送方法 |
CN102148763A (zh) * | 2011-04-28 | 2011-08-10 | 南京航空航天大学 | 一种应用于片上网络的动态路径分配方法及系统 |
CN102437953A (zh) * | 2011-12-14 | 2012-05-02 | 清华大学 | 片上网络中的低功耗自适应路由方法 |
Non-Patent Citations (2)
Title |
---|
SAHU P.K. ET AL: ""A New Application Mapping Strategy for Mesh-of-Tree based Network-on-Chip"", 《2011 INTERNATIONAL CONFERENCE ON EMERGING TRENDS IN ELECTRICAL AND COMPUTER TECHNOLOGY (ICETECT)》 * |
张碧霞: ""面向应用片上网络映射研究"", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015176646A1 (zh) * | 2014-05-21 | 2015-11-26 | 华为技术有限公司 | 片上网络的Flit传输方法及装置 |
US10129147B2 (en) | 2014-05-21 | 2018-11-13 | Huawei Technologies Co., Ltd. | Network-on-chip flit transmission method and apparatus |
CN104780122A (zh) * | 2015-03-23 | 2015-07-15 | 中国人民解放军信息工程大学 | 基于缓存再分配的层次化片上网络路由器的控制方法 |
CN104780122B (zh) * | 2015-03-23 | 2018-09-11 | 中国人民解放军信息工程大学 | 基于缓存再分配的层次化片上网络路由器的控制方法 |
US20200236052A1 (en) * | 2020-03-04 | 2020-07-23 | Arvind Srinivasan | Improving end-to-end congestion reaction using adaptive routing and congestion-hint based throttling for ip-routed datacenter networks |
US12074799B2 (en) * | 2020-03-04 | 2024-08-27 | Intel Corporation | Improving end-to-end congestion reaction using adaptive routing and congestion-hint based throttling for IP-routed datacenter networks |
CN115250251A (zh) * | 2021-04-26 | 2022-10-28 | 北京希姆计算科技有限公司 | 片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质 |
CN115250251B (zh) * | 2021-04-26 | 2023-07-28 | 北京希姆计算科技有限公司 | 片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103729332B (zh) | 2016-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5276220B2 (ja) | バス制御装置およびバス制御装置に指示を出力する制御装置 | |
US8819616B2 (en) | Asymmetric mesh NoC topologies | |
JP5083464B2 (ja) | ネットワークオンチップとネットワークルーティング方法とシステム | |
CN104158738A (zh) | 一种低缓冲区片上网络路由器及路由方法 | |
JP2016527636A (ja) | ネットワークオンチップアーキテクチャにおけるシステムレベルシミュレーション | |
CN102437953B (zh) | 片上网络中的低功耗自适应路由方法 | |
CN102368739A (zh) | 面向包-电路交换片上路由器的广播机制路由算法 | |
CN103729332A (zh) | 一种基于MoT结构的低功耗NoC路由方法 | |
CN104919763A (zh) | 通信装置、具有通信装置的路由器、总线系统以及具有总线系统的半导体电路的电路基板 | |
CN101834789A (zh) | 面向包-电路交换片上路由器的回退转向路由算法及所用路由器 | |
US10063496B2 (en) | Buffer sizing of a NoC through machine learning | |
WO2022213817A1 (zh) | 路由方法和路由装置 | |
Uma et al. | Network-on-chip (noc)-routing techniques: A study and analysis | |
CN101883055A (zh) | 路由转发表容量扩展实现方法、装置及交换设备 | |
CN106888492A (zh) | 负载感知缓存受限断续连通的卫星网络路由方法 | |
CN106105282B (zh) | 利用链路缓冲区状态进行流量工程的系统和方法 | |
JP2009141425A (ja) | ネットワークに含まれるノード間の経路を探索するためのシステムおよび方法 | |
CN103096411A (zh) | 基于反向能量限制路由协议的物联网通信方法 | |
CN108881049A (zh) | 一种基于Epidemic路由的拥塞控制策略 | |
JP5943109B1 (ja) | 半導体チップ、集積回路、及びデータ転送方法 | |
Adamu et al. | Review of deterministic routing algorithm for network-on-chip | |
CN102882778A (zh) | 节点缓存受限的dtn网络路由方法 | |
Wang et al. | Flow control mechanism for wireless network-on-chip | |
CN107612829A (zh) | 一种数据报文的路径信息获取方法及设备 | |
Du et al. | Deep learning empowered QoS-aware adaptive routing algorithm in wireless networks |
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 |