CN105830416B - 一种片上网络、通信控制方法及控制器 - Google Patents
一种片上网络、通信控制方法及控制器 Download PDFInfo
- Publication number
- CN105830416B CN105830416B CN201480037238.XA CN201480037238A CN105830416B CN 105830416 B CN105830416 B CN 105830416B CN 201480037238 A CN201480037238 A CN 201480037238A CN 105830416 B CN105830416 B CN 105830416B
- Authority
- CN
- China
- Prior art keywords
- router
- transmitted
- data
- routers
- output
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种片上网络NoC、通信控制方法及控制器,能够避免数据传输延迟。该NoC包括多个路由器和多个网络接口NI,该多个路由器中的每一个路由器通过一个NI连接一个本地节点设备,该每一个路由器,包含一个连接NI的输出端口、一个连接NI的输入端口、多个连接其它路由器的输出端口和多个连接其它路由器的输入端口;该每一个路由器的连接NI的输出端口,与该路由器的每一个连接其它路由器的输入端口之间,均具有输入旁路通道;该每一个路由器的连接NI的输入端口,与该路由器的每一个连接其它路由器的输出端口之间,均具有输出旁路通道。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种片上网络、通信控制方法及控制器。
背景技术
片上网络(NoC,Network on Chip)借用了计算机通信网络的概念,采用交换和路由技术替代总线技术,逐渐成为了芯片内部的主流互连方案,传统的NoC其架构如图1所示,包括多个路由器和网络接口(NI,Network Interface),每个路由器对应一个本地节点设备,路由器和对应本地节点设备之间通过NI相连。以图1中示出的第二行第二个路由器为例,路由器及NI的具体结构如图2所示,其中,路由器主要包括路由计算(RC,RoutingComputation)模块、虚通道分配器和交叉开关分配器(VA&SA,Virtual Channel Allocatorand Switch Allocator)、交叉开关矩阵(Crossbar)和先入先出队列(FIFO,First InputFirst Output),端口X+i、X-i、Y+i、Y-i为该路由器用于连接X+、X-、Y+、Y-四个方向上其它路由器的输入端口,端口X+o、X-o、Y+o、Y-o为该路由器用于连接X+、X-、Y+、Y-四个方向上其它路由器的输出端口,端口NIi为该路由器用于连接NI的输入端口,端口NIo为该路由器用于连接NI的输出端口;NI主要包括缓存器和核心电路。
NoC中,路由器的功耗在整个NoC功耗中占据了很大一部分比例,为了减小NoC功耗,可以采用功率门控技术,在路由器空闲时切断路由器中各部分的电源,使路由器处于非工作状态,通过减小路由器的功耗达到减小NoC功耗的目的。当该路由器存在待传输数据时,再唤醒该路由器,即控制该路由器中各部分重新上电,使路由器重新开启处于工作状态。
然而,上述控制方案虽然能够减小NoC功耗,但若数据传输路径中存在处于非工作状态的路由器,则需要等待该路由器重新开启,导致数据传输延迟严重。
发明内容
本发明实施例提供一种片上网络NoC、通信控制方法及控制器,能够避免数据传输延迟。
第一方面,提供一种片上网络NoC,包括多个路由器和多个网络接口NI,所述多个路由器中的每一个路由器通过一个NI连接一个本地节点设备;
所述每一个路由器,包含一个连接NI的输出端口、一个连接NI的输入端口、多个连接其它路由器的输出端口和多个连接其它路由器的输入端口;
所述每一个路由器的连接NI的输出端口,与该路由器的每一个连接其它路由器的输入端口之间,均具有输入旁路通道;
所述每一个路由器的连接NI的输入端口,与该路由器的每一个连接其它路由器的输出端口之间,均具有输出旁路通道。
结合第一方面,在第一种可能的实现方式中,还包括:
所述多个NI中的每一个NI,包含一个连接路由器的输入端口和一个连接路由器的输出端口;
所述每一个NI的连接路由器的输入端口,与该NI的连接路由器的输出端口之间,具有NI旁路通道。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述输入旁路通道、所述输出旁路通道和所述NI旁路通道中包括链路缓存器;
当所述链路缓存器断电时,所述链路缓存器进行数据存储;当所述链路缓存器上电时,所述链路缓存器进行数据传输。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述链路缓存器具体包括第一P型开关管、第二P型开关管、第一N型开关管、第二N型开关管和反相器,其中:
第一P型开关管、第二P型开关管、第一N型开关管和第二N型开关管顺次相连;第一P型开关管的输入端作为所述链路缓存器的电源接线端,第二N型开关管的输出端作为所述链路缓存器的接地端,第二P型开关管和第一N型开关管间的接线端作为所述链路缓存器的输出端;
第一P型开关管的控制端和反相器的输入端相连,相连后的接线端作为所述链路缓存器的控制端;反相器的输出端和第二N型开关管的控制端相连;
第二P型开关管和第一N型开关管的控制端相连,相连后的接线端作为所述链路缓存器的输入端。
第二方面,提供一种片上网络NoC的通信控制方法,所述NoC包括多个路由器和多个网络接口NI,所述多个路由器中的每一个路由器通过一个NI连接一个本地节点设备,所述控制方法,包括:
确定所述NoC中的路由器是否处于工作状态;
当所述路由器处于非工作状态时,控制所述路由器的待传输数据通过所述路由器的旁路通道进行传输;其中,所述路由器,包含一个连接NI的输出端口、一个连接NI的输入端口、多个连接其它路由器的输出端口和多个连接其它路由器的输入端口;所述路由器的连接NI的输出端口,与所述路由器的每一个连接其它路由器的输入端口之间,均具有输入旁路通道;所述路由器的连接NI的输入端口,与所述路由器的每一个连接其它路由器的输出端口之间,均具有输出旁路通道;所述路由器的旁路通道包括所述输入旁路通道和所述输出旁路通道。
结合第二方面,在第一种可能的实现方式中,控制所述路由器的待传输数据通过所述路由器的旁路通道进行传输,具体包括:
当所述路由器的待传输数据来自于所述路由器的连接其它路由器的输入端口时,将该待传输数据通过所述路由器的旁路通道中该输入端口对应的输入旁路通道传输至所述路由器的连接NI的输出端口;
当所述路由器的待传输数据来自于所述路由器的连接NI的输入端口时,基于该待传输数据的目的地址,确定所述路由器的下一跳路由器;将该待传输数据通过所述路由器的旁路通道中所述下一跳路由器对应的输出旁路通道传输至所述路由器的连接其它路由器的输出端口。
结合第二方面,或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,当所述路由器处于非工作状态时,还包括:
当所述路由器连接的NI的待传输数据来自于所述NI的连接路由器的输入端口时,判断该待传输数据的目的地址是否和所述NI连接的本地节点设备的地址相同;
当该待传输数据的目的地址和所述NI连接的本地节点设备的地址不相同时,将该待传输数据通过所述NI的NI旁路通道传输至所述NI的连接路由器的输出端口;其中,所述NI,包含一个连接路由器的输入端口和一个连接路由器的输出端口;所述NI的NI旁路通道,位于所述NI的连接路由器的输入端口与所述NI的连接路由器的输出端口之间。
第三方面,提供一种片上网络NoC的控制器,所述NoC包括多个路由器和多个网络接口NI,所述多个路由器中的每一个路由器通过一个NI连接一个本地节点设备,所述控制器,包括:
确定单元,用于确定所述NoC中的路由器是否处于工作状态;
控制单元,用于当所述路由器处于非工作状态时,控制所述路由器的待传输数据通过所述路由器的旁路通道进行传输;其中,所述路由器,包含一个连接NI的输出端口、一个连接NI的输入端口、多个连接其它路由器的输出端口和多个连接其它路由器的输入端口;所述路由器的连接NI的输出端口,与所述路由器的每一个连接其它路由器的输入端口之间,均具有输入旁路通道;所述路由器的连接NI的输入端口,与所述路由器的每一个连接其它路由器的输出端口之间,均具有输出旁路通道;所述路由器的旁路通道包括所述输入旁路通道和所述输出旁路通道。
结合第三方面,在第一种可能的实现方式中,所述控制单元,具体用于当所述路由器的待传输数据来自于所述路由器的连接其它路由器的输入端口时,将该待传输数据通过所述路由器的旁路通道中该输入端口对应的输入旁路通道传输至所述路由器的连接NI的输出端口;
当所述路由器的待传输数据来自于所述路由器的连接NI的输入端口时,基于该待传输数据的目的地址,确定所述路由器的下一跳路由器;将该待传输数据通过所述路由器的旁路通道中所述下一跳路由器对应的输出旁路通道传输至所述路由器的连接其它路由器的输出端口。
结合第三方面,或者第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述控制单元,还用于当所述路由器处于非工作状态时,当所述路由器连接的NI的待传输数据来自于所述NI的连接路由器的输入端口时,判断该待传输数据的目的地址是否和所述NI连接的本地节点设备的地址相同;当该待传输数据的目的地址和所述NI连接的本地节点设备的地址不相同时,将该待传输数据通过所述NI的NI旁路通道传输至所述NI的连接路由器的输出端口;其中,所述NI,包含一个连接路由器的输入端口和一个连接路由器的输出端口;所述NI的NI旁路通道,位于所述NI的连接路由器的输入端口与所述NI的连接路由器的输出端口之间。
根据第一方面提供的片上网络NoC,第二方面提供的片上网络NoC的通信控制方法,第三方面提供的片上网络NoC的控制器,NoC中的路由器设置了旁路通道,当路由器处于非工作状态时,可以通过该路由器的旁路通道进行数据的传输,从而避免了数据传输延迟。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为传统的NoC的架构示意图;
图2为传统的NoC中路由器及NI的结构示意图;
图3为本发明实施例1提供的NoC的架构示意图;
图4为本发明实施例1提供的NoC中路由器的结构示意图;
图5为本发明实施例1提供的NoC中NI的结构示意图;
图6为本发明实施例1提供的链路缓存器的结构示意图;
图7为本发明实施例2提供的NoC的通信控制方法的流程示意图;
图8为本发明实施例3提供的NoC的控制器的结构示意图。
具体实施方式
为了给出避免数据传输延迟的实现方案,本发明实施例提供了一种NoC、通信控制方法及控制器,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1:
本发明实施例提供了一种NoC,其架构如图3所示,包括多个路由器和多个NI,该多个路由器中的每一个路由器通过一个NI连接一个本地节点设备,即每个路由器对应一个本地节点设备,相比于传统NoC,本发明实施例提供的NoC还包括旁路通道(如图3中虚线所示)。具体的,如图4所示,本发明实施例提供的NoC中,每一个路由器,包含一个连接NI的输出端口、一个连接NI的输入端口、多个连接其它路由器的输出端口和多个连接其它路由器的输入端口;每一个路由器的连接NI的输出端口,与该路由器的每一个连接其它路由器的输入端口之间,均具有输入旁路通道;每一个路由器的连接NI的输入端口,与该路由器的每一个连接其它路由器的输出端口之间,均具有输出旁路通道。
以图3中示出的第二行第二个路由器为例,该路由器共具有8条旁路通道,包括4条输入旁路通道和4条输出旁路通道:
该路由器的每个连接其它路由器的输入端口X+i、X-i、Y+i、Y-i,与该路由器的连接NI的输出端口NIo之间均具有输入旁路通道;该路由器的每个连接其它路由器的输出端口X+o、X-o、Y+o、Y-o,与该路由器的连接NI的输入端口NIi之间均具有输出旁路通道。
较佳的,为保证拥塞时数据不被丢弃,上述输入旁路通道、输出旁路通道中具体可以包括链路缓存器。
采用本发明实施例提供的NoC,在路由器空闲、路由器中各部分断电,路由器处于非工作状态时,可以控制该路由器的待传输数据通过该路由器的旁路通道进行传输,在本发明实施例中,该控制步骤具体可以由现有技术中控制路由器各部分通断电的控制器执行,具体的:
当该路由器的待传输数据来自于该路由器的连接其它路由器的输入端口时,将该待传输数据通过该路由器的旁路通道中该输入端口对应的输入旁路通道传输至该路由器的连接NI的输出端口;即在该路由器处于非工作状态时,通过输入旁路通道,NoC中的其它路由器传输给该路由器的数据仍然能够传输到该路由器连接的NI,进而能够传输到该路由器对应的本地节点设备;
当该路由器的待传输数据来自于该路由器的连接NI的输入端口时,基于该待传输数据的目的地址,确定该路由器的下一跳路由器,将该待传输数据通过该路由器的旁路通道中该下一跳路由器对应的输出旁路通道传输至该路由器的连接其它路由器的输出端口;即在该路由器处于非工作状态时,通过输出旁路通道,该路由器连接的NI传输给该路由器的数据仍然能够传输到NoC中的其它路由器,即该路由器对应的本地节点设备的数据能够传输到NoC中,并且能够保证以最短路径传输数据。
实际实施时,控制器可以从待传输数据的包头信息中获取待传输数据的目的地址。
其中,上述控制器确定下一跳路由器时,可以由控制器自身基于待传输数据的目的地址,根据待传输数据的最短传输路径,计算出下一跳路由器;较佳的,由于路由器的RC模块具有该计算功能,因此,在路由器空闲时,可以控制路由器中的RC模块不断电,控制路由器中的其它部分VA&SA、Crossbar、FIFO断电,控制器将待传输数据的目的地址发送给路由器中的RC,由路由器中的RC计算下一跳路由器,控制器从路由器中的RC模块直接获取计算结果。
进一步的,本发明实施例提供的NoC,如图5所示,多个NI中的每一个NI,包含一个连接路由器的输入端口和一个连接路由器的输出端口;每一个NI的连接路由器的输入端口,与该NI的连接路由器的输出端口之间,具有NI旁路通道。
较佳的,为保证拥塞时数据不被丢弃,该NI旁路通道中具体也可以包括链路缓存器。上述控制器还可以用于:
当路由器处于非工作状态时,若该路由器连接的NI的待传输数据来自于该NI的连接路由器的输入端口,判断该待传输数据的目的地址是否和该NI连接的本地节点设备的地址相同,即判断该NI连接的本地节点设备是否为目的节点;
当该待传输数据的目的地址和该NI连接的本地节点设备的地址相同时,说明该NI连接的本地节点设备是目的节点,将该待传输数据传输至该本地节点设备;
当该待传输数据的目的地址和该NI连接的本地节点设备的地址不相同时,说明该NI连接的本地节点设备不是目的节点,将该待传输数据通过该NI的NI旁路通道传输至该NI的连接路由器的输出端口,需要将该待传输数据重新注入到NoC中进行路由;后续控制器会基于该待传输数据的目的地址,确定下一跳路由器,将该待传输数据通过对应的输出旁路通道传输至下一跳路由器。
当该路由器连接的NI的待传输数据来自于该NI的连接本地节点设备的输入端口时,将该待传输数据传输至该NI的连接路由器的输出端口;同样,后续控制器会基于该待传输数据的目的地址,确定下一跳路由器,将该待传输数据通过对应的输出旁路通道传输至下一跳路由器。
当多路数据发生冲突时,也可以由上述控制器进行仲裁。
进一步的,为了减小输入旁路通道、输出旁路通道以及NI旁路通道中的链路缓存器的功耗,可以采用带门控的链路缓存器。当该链路缓存器断电时,该链路缓存器进行数据存储,不进行数据传输,即对应旁路通道不进行数据传输;当该链路缓存器上电时,该链路缓存器进行数据传输,即对应旁路通道进行数据传输。
该带门控的链路缓存器可以有多种实现形式,例如图6所示,该链路缓存器具体包括第一P型开关管、第二P型开关管、第一N型开关管、第二N型开关管和反相器,其中:
第一P型开关管、第二P型开关管、第一N型开关管和第二N型开关管顺次相连,即第一P型开关管的输出端连接第二P型开关管的输入端,第二P型开关管的输出端连接第一N型开关管的输入端,第一N型开关管的输出端连接第二N型开关管的输入端;第一P型开关管的输入端作为该链路缓存器的电源接线端Vd,第二N型开关管的输出端作为该链路缓存器的接地端,第二P型开关管和第一N型开关管间的接线端作为该链路缓存器的输出端O;第一P型开关管的控制端和反相器的输入端相连,相连后的接线端作为该链路缓存器的控制端L_Ctrl;反相器的输出端和第二N型开关管的控制端相连;第二P型开关管和第一N型开关管的控制端相连,相连后的接线端作为该链路缓存器的输入端I。
图6所示的带门控的链路缓存器,当控制端L_Ctrl输入高电平信号时,该链路缓存器断电,即该链路缓存器关闭,可对传输数据进行暂存,且对应旁路通道不进行数据传输;当控制端L_Ctrl输入低电平信号时,该链路缓存器上电,即该链路缓存器开启,对应旁路通道进行数据传输。
该链路缓冲器由两方面控制:
当路由器处于工作状态时,输入旁路通道、输出旁路通道、NI旁路通道均关闭,链路缓冲器关闭;
当路由器处于非工作状态时,输入旁路通道、输出旁路通道、NI旁路通道用于传输数据,若存在数据拥塞,则控制相应的链路缓冲器关闭,对数据进行暂存,否则链路缓冲器开启,进行数据传输。
图6所示的链路缓存器仅为一个示例,并不用于限定本发明。
路由器空闲关闭后,可以当该路由器的待传输数据的数据量较大,例如当该路由器的待传输数据的数据量大于预设数据量时,再唤醒该路由器,且在路由器完全被唤醒前,数据仍然通过旁路通道进行传输。较佳的,若该路由器的下一跳路由器也处于非工作状态,还可以唤醒该下一跳路由器,即控制路由器中断电的各部分重新上电,使路由器重新开启处于工作状态。
实际实施时,控制器可以从待传输数据的包头信息中获取待传输数据的数据量。
即在路由器重新处于工作状态之前,该路由器的待传输数据均由该路由器的旁路通道以最短路径进行传输,从而避免了数据传输延迟,兼顾了功耗和数据传输效果。
实施例2:
本发明实施例还提供一种NoC中的通信控制方法,该NoC包括多个路由器和多个网络接口NI,多个路由器中的每一个路由器通过一个NI连接一个本地节点设备;针对每一个路由器,该路由器,包含一个连接NI的输出端口、一个连接NI的输入端口、多个连接其它路由器的输出端口和多个连接其它路由器的输入端口;该路由器的连接NI的输出端口,与该路由器的每一个连接其它路由器的输入端口之间,均具有输入旁路通道;该路由器的连接NI的输入端口,与该路由器的每一个连接其它路由器的输出端口之间,均具有输出旁路通道;该路由器的旁路通道包括该输入旁路通道和该输出旁路通道。上述NoC中的通信控制方法如图7所示,具体包括如下步骤:
步骤701、确定该NoC中的路由器是否处于工作状态;
步骤702、当该路由器处于非工作状态时,控制该路由器的待传输数据通过该路由器的旁路通道进行传输。
进一步的,步骤702中控制该路由器的待传输数据通过该路由器的旁路通道进行传输,具体包括:
当该路由器的待传输数据来自于该路由器的连接其它路由器的输入端口时,将该待传输数据通过该路由器的旁路通道中该输入端口对应的输入旁路通道传输至该路由器的连接NI的输出端口;即在该路由器处于非工作状态时,通过输入旁路通道,NoC中的其它路由器传输给该路由器的数据仍然能够传输到该路由器连接的NI,进而能够传输到该路由器对应的本地节点设备;
当该路由器的待传输数据来自于该路由器的连接NI的输入端口时,基于该待传输数据的目的地址,确定该路由器的下一跳路由器,将该待传输数据通过该路由器的旁路通道中该下一跳路由器对应的输出旁路通道传输至该路由器的连接其它路由器的输出端口;即在该路由器处于非工作状态时,通过输出旁路通道,该路由器连接的NI传输给该路由器的数据仍然能够传输到NoC中的其它路由器,即该路由器对应的本地节点设备的数据能够传输到NoC中,并且能够保证以最短路径传输数据。
实际实施时,可以从待传输数据的包头信息中获取待传输数据的目的地址。
其中,在确定下一跳路由器时,可以基于待传输数据的目的地址,根据待传输数据的最短传输路径,计算出下一跳路由器;较佳的,由于路由器的RC模块具有该计算功能,因此,在路由器空闲时,可以控制路由器中的RC模块不断电,控制路由器中的其它部分VA&SA、Crossbar、FIFO断电,将待传输数据的目的地址发送给路由器中的RC,由路由器中的RC计算下一跳路由器,从路由器中的RC模块直接获取计算结果。
进一步的,针对上述NoC中的每一个NI,该NI,包含一个连接路由器的输入端口和一个连接路由器的输出端口;该NI的NI旁路通道,位于该NI的连接路由器的输入端口与该NI的连接路由器的输出端口之间。当路由器处于非工作状态时,上述通信控制方法还包括:
当该路由器连接的NI的待传输数据来自于该NI的连接路由器的输入端口时,判断该待传输数据的目的地址是否和该NI连接的本地节点设备的地址相同;即判断该NI连接的本地节点设备是否为目的节点;
当该待传输数据的目的地址和该NI连接的本地节点设备的地址相同时,说明该NI连接的本地节点设备是目的节点,将该待传输数据传输至该本地节点设备;
当该待传输数据的目的地址和该NI连接的本地节点设备的地址不相同时,将该待传输数据通过该NI的NI旁路通道传输至该NI的连接路由器的输出端口,需要将该待传输数据重新注入到NoC中进行路由;后续基于该待传输数据的目的地址,确定下一跳路由器,将该待传输数据通过对应的输出旁路通道传输至下一跳路由器。
进一步的,当该路由器连接的NI的待传输数据来自于该NI的连接本地节点设备的输入端口时,将该待传输数据传输至该NI的连接路由器的输出端口;同样,后续会基于该待传输数据的目的地址,确定下一跳路由器,将该待传输数据通过对应的输出旁路通道传输至下一跳路由器。
较佳的,上述输入旁路通道、输出旁路通道、NI旁路通道中还可以包括带门控的链路缓存器,当通过控制该链路缓存器的控制端控制该链路缓存器断电时,该链路缓存器关闭,可对传输数据进行暂存,该链路缓存器不进行数据传输,即对应旁路通道不进行数据传输;当通过控制该链路缓存器的控制端控制该链路缓存器上电时,该链路缓存器开启,进行数据传输,即对应旁路通道进行数据传输。
实施例3:
基于同一发明构思,根据本发明上述实施例提供的通信控制方法,相应地,本发明实施例还提供一种NoC中的控制器,其结构示意图如图8所示,具体包括:
确定单元801,用于确定该NoC中的路由器是否处于工作状态;
控制单元802,用于当该路由器处于非工作状态时,控制该路由器的待传输数据通过该路由器的旁路通道进行传输;其中,该路由器,包含一个连接NI的输出端口、一个连接NI的输入端口、多个连接其它路由器的输出端口和多个连接其它路由器的输入端口;该路由器的连接NI的输出端口,与该路由器的每一个连接其它路由器的输入端口之间,均具有输入旁路通道;该路由器的连接NI的输入端口,与该路由器的每一个连接其它路由器的输出端口之间,均具有输出旁路通道;该路由器的旁路通道包括该输入旁路通道和该输出旁路通道。
进一步的,控制单元802,具体用于当该路由器的待传输数据来自于该路由器的连接其它路由器的输入端口时,将该待传输数据通过该路由器的旁路通道中该输入端口对应的输入旁路通道传输至该路由器的连接NI的输出端口;
当该路由器的待传输数据来自于该路由器的连接NI的输入端口时,基于该待传输数据的目的地址,确定该路由器的下一跳路由器;将该待传输数据通过该路由器的旁路通道中该下一跳路由器对应的输出旁路通道传输至该路由器的连接其它路由器的输出端口。
较佳的,控制单元802,还用于当该路由器处于非工作状态时,当该路由器连接的NI的待传输数据来自于该NI的连接路由器的输入端口时,判断该待传输数据的目的地址是否和该NI连接的本地节点设备的地址相同;当该待传输数据的目的地址和该NI连接的本地节点设备的地址不相同时,将该待传输数据通过该NI的NI旁路通道传输至该NI的连接路由器的输出端口;其中,该NI,包含一个连接路由器的输入端口和一个连接路由器的输出端口;该NI的NI旁路通道,位于该NI的连接路由器的输入端口与该NI的连接路由器的输出端口之间。
上述各单元的功能可对应于上述通信控制方法流程中的相应处理步骤,在此不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中特定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中特定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中特定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种片上网络NoC,包括多个路由器和多个网络接口NI,所述多个路由器中的每一个路由器通过一个NI连接一个本地节点设备,其特征在于:
所述每一个路由器,包含一个连接NI的输出端口、一个连接NI的输入端口、多个连接其它路由器的输出端口和多个连接其它路由器的输入端口;
所述每一个路由器的连接NI的输出端口,与该路由器的每一个连接其它路由器的输入端口之间,均具有输入旁路通道;
所述每一个路由器的连接NI的输入端口,与该路由器的每一个连接其它路由器的输出端口之间,均具有输出旁路通道;
所述多个NI中的每一个NI,包含一个连接路由器的输入端口和一个连接路由器的输出端口;
所述每一个NI的连接路由器的输入端口,与该NI的连接路由器的输出端口之间,具有NI旁路通道。
2.如权利要求1所述的NoC,其特征在于,所述输入旁路通道、所述输出旁路通道和所述NI旁路通道中包括链路缓存器;
当所述链路缓存器断电时,所述链路缓存器进行数据存储;当所述链路缓存器上电时,所述链路缓存器进行数据传输。
3.如权利要求2所述的NoC,其特征在于,所述链路缓存器具体包括第一P型开关管、第二P型开关管、第一N型开关管、第二N型开关管和反相器,其中:
第一P型开关管、第二P型开关管、第一N型开关管和第二N型开关管顺次相连;第一P型开关管的输入端作为所述链路缓存器的电源接线端,第二N型开关管的输出端作为所述链路缓存器的接地端,第二P型开关管和第一N型开关管间的接线端作为所述链路缓存器的输出端;
第一P型开关管的控制端和反相器的输入端相连,相连后的接线端作为所述链路缓存器的控制端;反相器的输出端和第二N型开关管的控制端相连;
第二P型开关管和第一N型开关管的控制端相连,相连后的接线端作为所述链路缓存器的输入端。
4.一种片上网络NoC中的通信控制方法,所述NoC包括多个路由器和多个网络接口NI,所述多个路由器中的每一个路由器通过一个NI连接一个本地节点设备,其特征在于,包括:
确定所述NoC中的路由器是否处于工作状态;
当所述路由器处于非工作状态时,控制所述路由器的待传输数据通过所述路由器的旁路通道进行传输;其中,所述路由器,包含一个连接NI的输出端口、一个连接NI的输入端口、多个连接其它路由器的输出端口和多个连接其它路由器的输入端口;所述路由器的连接NI的输出端口,与所述路由器的每一个连接其它路由器的输入端口之间,均具有输入旁路通道;所述路由器的连接NI的输入端口,与所述路由器的每一个连接其它路由器的输出端口之间,均具有输出旁路通道;所述路由器的旁路通道包括所述输入旁路通道和所述输出旁路通道;
其中,当所述路由器处于非工作状态时,还包括:
当所述路由器连接的NI的待传输数据来自于所述NI的连接路由器的输入端口时,判断该待传输数据的目的地址是否和所述NI连接的本地节点设备的地址相同;
当该待传输数据的目的地址和所述NI连接的本地节点设备的地址不相同时,将该待传输数据通过所述NI的NI旁路通道传输至所述NI的连接路由器的输出端口;其中,所述NI,包含一个连接路由器的输入端口和一个连接路由器的输出端口;所述NI的NI旁路通道,位于所述NI的连接路由器的输入端口与所述NI的连接路由器的输出端口之间。
5.如权利要求4所述的方法,其特征在于,控制所述路由器的待传输数据通过所述路由器的旁路通道进行传输,具体包括:
当所述路由器的待传输数据来自于所述路由器的连接其它路由器的输入端口时,将该待传输数据通过所述路由器的旁路通道中该输入端口对应的输入旁路通道传输至所述路由器的连接NI的输出端口;
当所述路由器的待传输数据来自于所述路由器的连接NI的输入端口时,基于该待传输数据的目的地址,确定所述路由器的下一跳路由器;将该待传输数据通过所述路由器的旁路通道中所述下一跳路由器对应的输出旁路通道传输至所述路由器的连接其它路由器的输出端口。
6.一种片上网络NoC中的控制器,所述NoC包括多个路由器和多个网络接口NI,所述多个路由器中的每一个路由器通过一个NI连接一个本地节点设备,其特征在于,包括:
确定单元,用于确定所述NoC中的路由器是否处于工作状态;
控制单元,用于当所述路由器处于非工作状态时,控制所述路由器的待传输数据通过所述路由器的旁路通道进行传输;其中,所述路由器,包含一个连接NI的输出端口、一个连接NI的输入端口、多个连接其它路由器的输出端口和多个连接其它路由器的输入端口;所述路由器的连接NI的输出端口,与所述路由器的每一个连接其它路由器的输入端口之间,均具有输入旁路通道;所述路由器的连接NI的输入端口,与所述路由器的每一个连接其它路由器的输出端口之间,均具有输出旁路通道;所述路由器的旁路通道包括所述输入旁路通道和所述输出旁路通道;
所述控制单元,还用于当所述路由器处于非工作状态时,当所述路由器连接的NI的待传输数据来自于所述NI的连接路由器的输入端口时,判断该待传输数据的目的地址是否和所述NI连接的本地节点设备的地址相同;当该待传输数据的目的地址和所述NI连接的本地节点设备的地址不相同时,将该待传输数据通过所述NI的NI旁路通道传输至所述NI的连接路由器的输出端口;其中,所述NI,包含一个连接路由器的输入端口和一个连接路由器的输出端口;所述NI的NI旁路通道,位于所述NI的连接路由器的输入端口与所述NI的连接路由器的输出端口之间。
7.如权利要求6所述的控制器,其特征在于,所述控制单元,具体用于当所述路由器的待传输数据来自于所述路由器的连接其它路由器的输入端口时,将该待传输数据通过所述路由器的旁路通道中该输入端口对应的输入旁路通道传输至所述路由器的连接NI的输出端口;
当所述路由器的待传输数据来自于所述路由器的连接NI的输入端口时,基于该待传输数据的目的地址,确定所述路由器的下一跳路由器;将该待传输数据通过所述路由器的旁路通道中所述下一跳路由器对应的输出旁路通道传输至所述路由器的连接其它路由器的输出端口。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/092532 WO2016082198A1 (zh) | 2014-11-28 | 2014-11-28 | 一种片上网络、通信控制方法及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105830416A CN105830416A (zh) | 2016-08-03 |
CN105830416B true CN105830416B (zh) | 2020-06-02 |
Family
ID=56073392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480037238.XA Active CN105830416B (zh) | 2014-11-28 | 2014-11-28 | 一种片上网络、通信控制方法及控制器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10554581B2 (zh) |
EP (1) | EP3214822B1 (zh) |
CN (1) | CN105830416B (zh) |
WO (1) | WO2016082198A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11165717B2 (en) * | 2015-10-26 | 2021-11-02 | Western Digital Technologies, Inc. | Fabric interconnection for memory banks based on network-on-chip methodology |
US10142258B2 (en) * | 2016-04-08 | 2018-11-27 | Advanced Micro Devices, Inc. | Methods and apparatus for processing in a network on chip (NOC) |
CN106850440B (zh) * | 2017-01-16 | 2020-02-04 | 北京中科睿芯科技有限公司 | 一种面向多地址共享数据路由包的路由器、路由方法及其芯片 |
US11398980B2 (en) | 2019-11-19 | 2022-07-26 | Advanced Micro Devices, Inc. | Packet router with virtual channel hop buffer control |
CN111597141B (zh) * | 2020-05-13 | 2022-02-08 | 中国人民解放军国防科技大学 | 一种面向超高阶互连芯片的分级交换结构及死锁避免方法 |
CN112363612B (zh) * | 2020-10-21 | 2022-07-08 | 海光信息技术股份有限公司 | 一种降低片上网络功耗的方法、装置、cpu芯片及服务器 |
CN113079100A (zh) * | 2021-03-03 | 2021-07-06 | 桂林电子科技大学 | 一种用于高速数据采集的NoC路由器 |
CN113542140B (zh) * | 2021-07-26 | 2023-04-07 | 合肥工业大学 | 无线片上网络中可重构高能效的路由器及功率门控方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101485147A (zh) * | 2006-07-05 | 2009-07-15 | Nxp股份有限公司 | 电子装置、片上系统以及监控数据流通量的方法 |
CN103283192A (zh) * | 2011-03-28 | 2013-09-04 | 松下电器产业株式会社 | 中继器、中继器的控制方法以及程序 |
CN103368931A (zh) * | 2012-03-30 | 2013-10-23 | 富士通株式会社 | 数据处理设备、计算装置、用于数据处理设备的控制方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838684A (en) * | 1996-02-22 | 1998-11-17 | Fujitsu, Ltd. | Low latency, high clock frequency plesioasynchronous packet-based crossbar switching chip system and method |
US7917703B2 (en) * | 2007-12-13 | 2011-03-29 | International Business Machines Corporation | Network on chip that maintains cache coherency with invalidate commands |
US8255443B2 (en) * | 2008-06-03 | 2012-08-28 | International Business Machines Corporation | Execution unit with inline pseudorandom number generator |
US8531943B2 (en) * | 2008-10-29 | 2013-09-10 | Adapteva Incorporated | Mesh network |
CN101534251B (zh) * | 2009-04-13 | 2011-04-06 | 浙江大学 | 一种在处理器中添加旁路来优化片上网络架构的方法 |
CN101808032B (zh) * | 2010-03-04 | 2012-07-25 | 南京大学 | 面向静态XY路由算法的二维网格NoC路由器优化设计方法 |
JP5543894B2 (ja) * | 2010-10-21 | 2014-07-09 | ルネサスエレクトロニクス株式会社 | NoCシステム及び入力切替装置 |
EP2466809B1 (en) * | 2010-12-20 | 2013-05-01 | Alcatel Lucent | Method and network node for configuring a network for optimized transport of packet traffic |
JP5895202B2 (ja) * | 2011-10-14 | 2016-03-30 | パナソニックIpマネジメント株式会社 | 中継器、中継器の制御方法、およびコンピュータプログラム |
EP2592800A1 (en) * | 2011-11-09 | 2013-05-15 | STMicroelectronics (Grenoble 2) SAS | Networks on-chip router |
US9178797B2 (en) * | 2012-06-30 | 2015-11-03 | Juniper Networks, Inc. | Selective BGP graceful restart in redundant router deployments |
US20150109024A1 (en) * | 2013-10-22 | 2015-04-23 | Vaughn Timothy Betz | Field Programmable Gate-Array with Embedded Network-on-Chip Hardware and Design Flow |
US9948587B2 (en) * | 2014-08-08 | 2018-04-17 | Oracle International Corporation | Data deduplication at the network interfaces |
-
2014
- 2014-11-28 WO PCT/CN2014/092532 patent/WO2016082198A1/zh active Application Filing
- 2014-11-28 EP EP14907107.8A patent/EP3214822B1/en active Active
- 2014-11-28 CN CN201480037238.XA patent/CN105830416B/zh active Active
-
2017
- 2017-05-26 US US15/606,609 patent/US10554581B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101485147A (zh) * | 2006-07-05 | 2009-07-15 | Nxp股份有限公司 | 电子装置、片上系统以及监控数据流通量的方法 |
CN103283192A (zh) * | 2011-03-28 | 2013-09-04 | 松下电器产业株式会社 | 中继器、中继器的控制方法以及程序 |
CN103368931A (zh) * | 2012-03-30 | 2013-10-23 | 富士通株式会社 | 数据处理设备、计算装置、用于数据处理设备的控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105830416A (zh) | 2016-08-03 |
US10554581B2 (en) | 2020-02-04 |
WO2016082198A1 (zh) | 2016-06-02 |
US20170272381A1 (en) | 2017-09-21 |
EP3214822B1 (en) | 2020-05-27 |
EP3214822A4 (en) | 2017-10-11 |
EP3214822A1 (en) | 2017-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105830416B (zh) | 一种片上网络、通信控制方法及控制器 | |
US10613616B2 (en) | Systems and methods for facilitating low power on a network-on-chip | |
US9825887B2 (en) | Automatic buffer sizing for optimal network-on-chip design | |
US10324509B2 (en) | Automatic generation of power management sequence in a SoC or NoC | |
US10074053B2 (en) | Clock gating for system-on-chip elements | |
US9444702B1 (en) | System and method for visualization of NoC performance based on simulation output | |
US9825809B2 (en) | Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip | |
US9477280B1 (en) | Specification for automatic power management of network-on-chip and system-on-chip | |
RU2012145865A (ru) | Гетерогенная сеть межсоединений с учетом производительности и трафика | |
US20170068628A1 (en) | Reducing ethernet latency in a multi-server chassis | |
JP5881264B2 (ja) | I/o相互接続を介するマルチプロトコルのトンネリング | |
US10206175B2 (en) | Communications fabric with split paths for control and data packets | |
US20180302293A1 (en) | Generation of network-on-chip layout based on user specified topological constraints | |
JP5965464B2 (ja) | バッファを有しないnocのデータ処理方法、及びnoc電子素子 | |
US9699118B2 (en) | System for flexible dynamic reassignment of throughput | |
KR101061187B1 (ko) | 버스 시스템 및 그 제어 장치 | |
US9336172B2 (en) | Parallel computer system, data transfer device, and method for controlling parallel computer system for performing arbitration | |
TWI730476B (zh) | 路由器及路由方法 | |
US11144457B2 (en) | Enhanced page locality in network-on-chip (NoC) architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |