CN115550235A - 面向神经网络平台的单周期路由器 - Google Patents
面向神经网络平台的单周期路由器 Download PDFInfo
- Publication number
- CN115550235A CN115550235A CN202211014355.7A CN202211014355A CN115550235A CN 115550235 A CN115550235 A CN 115550235A CN 202211014355 A CN202211014355 A CN 202211014355A CN 115550235 A CN115550235 A CN 115550235A
- Authority
- CN
- China
- Prior art keywords
- virtual channel
- slice
- router
- input
- arbitration
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 26
- 239000000872 buffer Substances 0.000 claims abstract description 87
- 230000005540 biological transmission Effects 0.000 claims abstract description 49
- 238000000034 method Methods 0.000 claims abstract description 7
- 238000011144 upstream manufacturing Methods 0.000 claims description 15
- 238000013461 design Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 8
- 230000003139 buffering effect Effects 0.000 claims description 4
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 20
- 230000009365 direct transmission Effects 0.000 description 12
- 230000002829 reductive effect Effects 0.000 description 11
- 230000000903 blocking effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 235000008694 Humulus lupulus Nutrition 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000007306 turnover Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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/60—Router architectures
-
- 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/54—Organization of routing tables
-
- 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/58—Association of routers
- H04L45/586—Association of routers of virtual routers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种面向神经网络平台的单周期路由器,属于片上网络技术领域。本发明基于XY维序路由算法,根据切片可能前往的输出方向为不同端口的输入缓冲区分配异构的虚通道;在路由器中设有虚通道标识更新单元,通过虚通道标识更新提前判断切片在下一跳路由写入的虚通道即下一跳路由的输出方向,并更新其通道标识位,该逻辑时序开销隐藏在切片的线传输延时中。本发明通过对不同向通信流量的异构处理,简化了仲裁单元的数量和结构,降低了仲裁逻辑的时序开销,优化了路由流水线,有效降低片上网络的通信延时,改善网络扩展带来的延时上升情况,实现了单切片快速通行的方案,具有良好的使用价值和广泛的应用前景。
Description
技术领域
本发明涉及片上网络(Network on chip,NoC)技术领域,更具体地说,涉及一种面向神经网络平台的单周期路由器。
背景技术
片上网络(Network on Chip,NoC)已经成为了现代多核体统互连的主要范式。随着处理核数的不断增多,片上网络规模的不断扩大,通信时间已经成为了限制片上网络性能进一步提高的瓶颈。在核心数扩展的同时,核心与核心之间的通信跳数不断扩大,路由器流水线周期对整体片上网络的通信影响愈来愈大,设计单周期流水线路由器能够有效降低通信跳数进一步增大时片上网络的通信延时上升情况。
随着人工智能芯片的不断发展,传统路由设计应在两种通信场景下的问题不断暴露。首先,映射在片上网络的神经网络应用的网络规模非常大,数据在多跳传输过程中路由的流水线延时开销会严重影响网络整体的通信延时。其次,映射在片上网络中的神经网络应用处理核之间传输的单包数据负载非常小,通常每个包只含有一个切片,然而传统路由器对单切片包的通信往往进行了冗余的控制,造成了对硬件资源的浪费。
发明内容
要解决的技术问题
针对现有技术中存在的对于片上网络扩展时路由器流水线对通信延时造成的影响急剧上升以及传统路由器不能很好地满足单切片包的通信需求的情况,本发明提供一种面向神经网络平台的单周期路由器,它可以完全避免网络传输过程中的包首阻塞,并且能够有效降低片上网络路由的流水线周期,提供了一种能在网络规模扩大时抑制延时急剧上升的单切片包通信方案。
技术方案
本发明公开一种能够避免路由通信包首阻塞,降低路由器流水线,支持单切片包快速通行的片上网络路由器优化方案。
本发明的目的通过以下技术方案实现,一种面向神经网络平台的单周期路由器,包括:
异构输入缓冲区,包括三个第一输入缓冲单元和两个第二输入缓冲冲单元,每个第一输入缓冲单元包含四条独立输入虚通道,每个第二输入缓冲单元包含两条独立输入虚通道;所述第一输入缓冲单元用于接收缓存来自东西方向和本地网络接口的、目的地为其他四个输出端口的输入数据;所述第二输入缓冲单元用于接收缓存南北方向的、目的地为本地网络接口和相对方向输出端口的输入数据;
通道标识更新单元,用于提前判断输入的数据切片下一跳要写入的输入虚通道,并更新数据切片中的虚通道标识位;
仲裁单元,与异构输入缓冲区信号连接,包括三个第一仲裁单元和两个第二仲裁单元,所述第一仲裁单元分别用于对流向南北方向和本地网络接口的数据切片进行仲裁,所述第二仲裁单元分别用于对流向东西方向的数据切片进行仲裁;
信用更新单元;与仲裁单元信号连接,用于将当前缓冲区空位数以及对应方向虚通道切片是否获得仲裁优先权的情况发往上游路由器。
根据本申请的一个方面,所述第一输入缓冲单元包括西向输入缓冲单元、东向输入缓冲单元和本地输入缓冲单元,
所述西向输入缓冲单元包括去往东向、南向、北向和本地网络接口的独立的输入虚通道;输入数据切片中的虚通道标识表示其将要写入的缓冲区,同时表示了切片的传输方向;用00表示去往路由器北向切片缓存的虚通道,用01表示去往路由器东向切片缓存的虚通道,用10表示去往路由器本地网络接口切片缓存的虚通道,用11表示去往路由器南向切片缓存的虚通道;
所述东向输入缓冲单元包括去往西向、南向、北向和本地网络接口的独立的输入虚通道;输入数据切片中的虚通道标识表示其将要写入的缓冲区,同时表示了切片的传输方向;用00表示去往路由器北向切片缓存的虚通道,用01表示去往路由器西向切片缓存的虚通道,用10表示去往路由器本地网络接口切片缓存的虚通道,用11表示去往路由器南向切片缓存的虚通道;
所述本地输入缓冲单元包括去往东向、西向、南向和北向的独立的输入虚通道;输入数据切片中的虚通道标识表示其将要写入的缓冲区,同时表示了切片的传输方向;用00表示去往路由器东向切片缓存的虚通道,用01表示去往路由器西向切片缓存的虚通道,用10表示去往路由器北向切片缓存的虚通道,用11表示去往路由器南向切片缓存的虚通道。
根据本申请的一个方面,所述第二输入缓冲单元包括南向输入缓冲单元和北向输入缓冲单元,
所述南向输入缓冲单元包括去往北向和本地网络接口的独立的输入虚通道,输入数据切片中的虚通道标识表示其将要写入的缓冲区,同时表示了切片的传输方向;用00表示去往路由器本地网络接口切片缓存的虚通道,用10表示去往路由器北向切片缓存的虚通道;
所述北向输入缓冲单元包括去往南向和本地网络接口的独立的输入虚通道,输入数据切片中的虚通道标识表示其将要写入的缓冲区,同时表示了切片的传输方向;用00表示去往路由器本地网络接口切片缓存的虚通道,用01表示去往路由器南向切片缓存的虚通道。
根据本申请的一个方面,通道标识更新单元包括比较器和加法器,通过比较器和加法器判断数据切片在下一跳路由要写入的输入虚通道,并更新切片中的虚通道标识,该逻辑时序隐藏在切片传输的链路延时中。
根据本申请的一个方面,对于东向、西向输入的数据切片,路由算法模块读取数据切片的输入虚通道标识,并做如下处理:
若该数据切片的输入虚通道标识为01,则其前往西向、东向输出端口;
对当前路由横轴坐标加一或减一并与切片中的目的地址横坐标比较,若小于目的地址横坐标,则虚通道标识不变,继续往东、西向传输;若等于目的地址横坐标则判断其纵坐标与切片中目的地址纵坐标的关系,若大于目的地址纵坐标,则输入虚通道标识更新为11,
切片在下一跳写入标识为11的输入虚通道并向南传输,若等于目的地址纵坐标则虚通道标识更新为10,切片在下一跳写入标识为10的输入虚通道并向本地网络接口传输,若大于目的地址纵坐标则虚通道标识更新为00,切片在下一跳写入标识为00的输入虚通道并向北传输;
若该切片输入虚通道标识为00或11,则其前往北向、南向输出端口;
对当前路由纵坐标加一或减一,并与切片中目的地址纵坐标进行比较,若相等则切片在下一跳写入向网络本地接口传输的虚通道,并更新虚通道标识为00;若不等,则切片在下一跳写入向北、南传输的虚通道,并更新虚通道标识为10、01;
若该切片输入虚通道标识为10,则其前往本地网络接口输出端口,不进行虚通道标识更新。
根据本申请的一个方面,对于南向、北向输入的数据切片,读取数据切片的输入虚通道标识,并做如下处理:
若该数据切片的输入虚通道标识为00,则其前往本地网络接口输出端口,不进行虚通道标识更新;
若该数据切片的输入虚通道标识为10或01,则其前往北、南向输出端口,对当前路由纵坐标加一或减一,并与切片中目的地址纵坐标进行比较,
若相等,则切片在下一跳写入向网络本地接口传输的虚通道,并更新虚通道标识为00;若不等,则切片在下一跳写入向北向、南传输的虚通道,并更新虚通道标识为10、01。
根据本申请的一个方面,对于本地网络接口输入的数据切片,读取数据切片的输入虚通道标识,并做如下处理:
若虚通道标识为00、01,则其前往东、西向输出端口,对当前路由横轴坐标加一或减一并与切片中的目的地址横坐标比较,若小于目的地址横坐标,则虚通道标识不变,继续往东、西向传输;若等于目的地址横坐标则判断其纵坐标与切片中目的地址纵坐标的关系,若大于目的地址纵坐标则虚通道更新为11,切片在下一跳写入11所标识的虚通道并向南传输,若等于目的地址纵坐标则虚通道更新为10,切片在下一跳写入10所标识的虚通道并向本地网络接口传输,若大于目的地址纵坐标则虚通道更新为00,切片在下一跳写入00所标识的虚通道并向北传输;
若虚通道标识为10、11,则其前往北、南向输出端口,对当前路由纵坐标加一或减一,并与切片中目的地址纵坐标进行比较;
若相等,则切片在下一跳写入向网络本地接口传输的虚通道,并更新虚通道标识为00;
若不等,则切片在下一跳写入向北、南传输的虚通道,并更新虚通道标识为10、01。
根据本申请的一个方面,根据切片在XY维序路由算法下可能申请的传输方向,仲裁单元对东西向输出端口进行2输入1输出仲裁,对南北向与通向本地网络接口的输出端口进行4输入1输出仲裁,因为输入虚通道被分配给对应的传输方向,所以不需要进行虚通道仲裁;该设计下仲裁器逻辑时序开销很小,切片获得仲裁优先权与写入输出寄存器在1个周期内完成。
根据本申请的一个方面,各方向输出端口仲裁器会根据输入缓冲区中是否存在仲裁需求判断是否开启,若仲裁器开启,则采取轮询仲裁逻辑,输出获得仲裁优先权的切片;若仲裁器不开启,则判断东西向和南北向切片能否直行,可以直行的切片跳过路由流水线并在更新虚通道标识后直接写入路由输出寄存器,不能直行的切片则被写入路由缓冲区。
根据本申请的一个方面,信用更新单元每个周期不仅将缓冲区中虚通道对应的空位数发往上游路由器,同时将对应虚通道的仲裁结果发往上游路由器,上游路由器根据输出寄存器中的虚通道标识和下游路由器信用及仲裁结果判断是否能够进行切片仲裁和写入输出寄存器阶段,将下游路由器对应标识的虚通道空位数作为基础信用值,若下游路由器对应标识虚通道中的切片未获得仲裁优先权,则基础信用值不变,若获得仲裁优先权,则基础信用值加一;若当前路由器输出寄存器存在切片且其虚通道标识为该通道对应标识,则基础信用值减一;否则基础信用值不变,若最终信用值等于0则不能继续写入该虚通道;若最终信用值大于0,则能够继续写入该虚通道。
本发明通过异构的缓冲区对数据包进行虚通道分配,完全避免了包首阻塞;通过提前更新判断下一跳路由路径更新虚通道标识,将通道标识更新逻辑与数据缓冲区写入周期隐藏在线延时周期中,减少了路由流水线周期;用输出端口仲裁完成传统存在虚通道路由器的两级仲裁,减少了路由流水线周期;通过直传的方式跳过该跳路由流水线,进一步减少了数据在网络中的传输延时。
有益效果
相比于现有技术,本发明的优点在于:
(1)本发明采用根据XY维序路由的特点形成的异构缓冲区,完全避免了包首阻塞的情况,与传统同构路由器相比降低了路由器的硬件开销;
(2)通过提前判断下一跳数据包路由路径,并更新虚通道标识,减少了路由器的流水线周期;
(3)通过异构的输出端口仲裁器在一个周期内完成数据的仲裁和传输工作,减少了路由器的流水线周期且降低了仲裁器的硬件开销;
(4)通过直传的方式可以跳过当前路由流水线,进一步降低了数据包在网络中的传输延时;
(4)本发明面向神经网络平台能够实现单切片包的快速通行,能够有效降低网络规模扩展时带来的延时开销;
综上,本发明面向神经网络平台,对单包数据负载小,通信需求大且网络规模易扩展的情况,采用XY维序路由避免路由死锁;通过异构的缓冲区和仲裁器降低了路由器流水线周期,减少了硬件开销;通过直传的方式进一步降低了数据包在网络中的传输延时,具有良好的使用价值和广泛的应用前景。
附图说明
图1为单切片包数据结构示意图。
图2是本发明的路由通信架构示意图。
图3是非直传数据包传输延时示意图。
图4是本发明的直传数据包传输延时示意图。
图5是本发明的DC综合结果示意图。
图6是本发明的数据传输拓扑图。
具体实施方式
下面结合说明书附图和具体的实施例,对本发明作详细描述。本发明提供一种面向神经网络平台的单周期路由器,主要软硬件模块包括异构输入缓冲区、通道标识更新单元、异构的仲裁单元和信用更新单元。
其中,路由器对本地网络接口与东西向缓冲区分配了4条独立的输入虚通道,对南北向缓冲区分配了2条独立的输入虚通道;通道标识更新单元提前判断切片下一节点的路由路径;优化的仲裁单元以输出端口仲裁完成所有仲裁任务;信用更新单元配合通道标识更新单元能够实现不同向数据包的快速通行。
在本实施例中,数据传输流程如下:
①、数据切片(数据包)在到达路由器输入端口后,由通道标识更新单元判断数据包发往的输出端口以及数据包在下一节点的路由路径,并更新数据包中的虚通道标识。
②、数据包在更新虚通道标识后,会根据其输出端口方向的仲裁器是否开启以及该方向下游路由器的信用值是否达到阈值判断能否直传,如果可以直传则写入该方向输出寄存器并跳过路由流水线,若不能直传则写入对应方向的虚通道。
③、当前虚通道写入或读出数据切片时会更新该虚通道信用值,由于通道信用值更新需要1个周期,路由与路由间的信用传输为组合逻辑,缓冲区周转时间为1个周期,切片在浅深度虚通道下仍然能够续传。
④、当前路由将下游路由器发回的信用值作为基础信用值,若下游路由器对应标识虚通道获得仲裁优先权则基础信用值加一,若输出寄存器通道标识为对应标识则基础信用值减一。
⑤、对应传输方向的虚通道中存在数据切片且其更新后的虚通道标识所对应的下游路由器该方向最终信用值大于0,则该方向的数据切片申请参与仲裁。
⑥、对应本地网络接口,南北向输出端口的仲裁器仲裁4个虚通道的数据包传输需求,东西向输出端口的仲裁器仲裁2个虚通道的数据包传输需求,只要仲裁器对应的虚通道有一个存在数据传输需求则仲裁器开启。
本实施例采用异构的缓冲区和仲裁器,完全避免了包首阻塞。以路由器东向输入端口为例,对于不存在虚通道的路由器设计,当东向端口中前一周期需要前往西向路由器的数据切片因为存在拥塞而无法通行时,该切片被存储在路由器东向输入端口缓冲区中,而接下来东向输入端口所接收的前往北向,南向与网络端口向的数据切片都只能被存储在东向输入端口缓冲区中,无法通行,即产生包首阻塞;对于存在虚通道的路由器设计,当东向端口中前一周期需要前往西向路由器的数据切片因为存在拥塞而无法通行时,该切片被存储在路由器东向输入端口缓冲区中,而接下来东向输入端口所接收的前往北向,南向与网络端口向的数据切片可以存储在其他虚通道中,然而会产生多个虚通道存储同一方向数据切片的情况,仍有可能发生包首阻塞,且虚通道设计引入了两级仲裁,并对提高了数据切片快速通行的门槛;对于本设计来说,当东向端口中前一周期需要前往西向路由器的数据切片因为存在拥塞而无法通行时,该切片被存储在路由器东向输入端口缓冲区中,而接下来东向输入端口所接收的前往北向,南向与网络端口向的数据切片都会存储在其对应方向的虚通道中,单向拥塞并不会影响其他方向数据切片的通行,且只要对应方向的虚通道中不存在数据切片和拥塞,该方向的数据切片就可以快速通行跳过路由流水线。且本实施例通过一级仲裁完成所有仲裁需求,减少了路由流水线周期,对于一个8乘8的片上网络拓扑来说,其运行应用的数据切片平均跳数为5-6跳,如果采用两级仲裁,一个数据切片从源节点到目的节点的周期延时为15-18个周期,而采用一级仲裁为10-12个周期。数据的选择分配阶段和数据的选择传输阶段合并为1个周期,路由器每个周期同时完成数据仲裁和传输工作,获得仲裁优先权的数据会写入输出寄存器,消除上一级组合逻辑的时序影响。数据的缓冲区写入周期隐藏在线传输周期中,能够直传的数据包在该跳路由延时为1个周期,即线传输延时;不能直传的数据包在该跳延时为2个周期,即线传输延时和路由流水线延时。所述路由器在0-1个周期内完成数据传输工作。所述路由器面向神经网络平台,有效降低单切片包在网络中的存储转发延时,减轻了了网络进一步扩展时带来的延时代价。
实施例
本实施例公开一种面向神经网络平台的单周期异构路由器,该路由器能在0-1个周期内完成单切片包的快速通行;在路由器中设有异构的输入缓冲区;在路由器中设有提前判断下一跳路由路径的的通道标识更新单元,判断从端口输入的数据包是否能够直传并更新虚通道标识;在路由器中设有异构的仲裁器,通过轮询仲裁逻辑判断发生冲突的数据包的传输优先权;路由器中的信用更新单元会根据虚通道中数据的写入写出向上游路由器更新其基础信用值并发送仲裁结果。
本实施例用于在功能可重构的片上网络架构中映射神经网络应用。实验采用MINIST数据集,使用全连接的网络模型,在软件上训练900张图的准确率为98.22%,在片上网络硬件上训练900张图的准确率为98.00%。对于权重及配置初始化,使用本实施例的通信延时为5371个周期,之后根据网络映射及层与层之间通信和计算设计,能够以每2100个周期训练完一张图片。
本实施例中的异构缓冲区对东向端口进来的数据包分配四个浅深度虚通道,其对应标识为:向北为00,向西为01,向本地网络接口为10,向南为11。
对西向端口进来的数据包分配四个浅深度虚通道,其对应标识为:向北(00),向东(01),向本地网络接口(10),向南(11)。
对处理本地网络接口进来的数据包分配四个浅深度虚通道,其对应标识为:向东(00),向西(01),向北(10),向南(11)。
对北向端口进来的数据包分配两个浅深度虚通道,其对应标识为:向本地网络接口(00),向南(01)。
对南向端口进来的数据包分配两个浅深度虚通道,其对应标识为:向本地网络接口(00),向北(10)。
数据包之间完全不会出现包首阻塞。另外,由于路由流水线周期非常小,并且采用信用反压的流控方式,路由间的缓冲区周转时间非常小,路由器的缓冲区虚通道的深度即使设置的较小也能够在没有拥塞的情况下续传所有数据包。
路由器中的通道标识更新单元根据输入端口传入的数据包中的2bit虚通道标识位判断当前数据包要前往哪个方向的输出端口,并判断其在下一跳的路由路径,更新其虚通道标识位;同时,通道标识更新单元会根据数据包要去的输出端口对应的仲裁器是否开启,判断当前数据包能否进行直传,能够直传的数据包会在更新虚通道标识后直接写入输出寄存器,不能够直传的数据包会在更新虚通道标识后写入对应的输入虚通道。
由于东西向输出端口的仲裁器只需要仲裁来自两个输入端口的数据包传输需求,而本地网络接口与南北向的仲裁器则需要仲裁来自四个输入端口的数据包传输要求,因此我们采用两种不同的仲裁结构对数据包进行仲裁;只有在输入虚通道存在数据传输需求时仲裁器才会开启,否则仲裁器关闭。
信用更新单元在路由器写入数据与读出数据的同时更新其值,它表示了当前虚通道中存在的空位数并将其与当前仲裁结果发往上游路由器,上游路由器会根据基础信用值、下游路由器仲裁结果、输出寄存器切片虚通道标识计算最终信用值,并根据最终信用值判断是否能够向该方向传输数据。
图1是单切片包的数据结构示意图。本实施例所述网络连线带宽为32bit,[31:30]位闲置,[29:28]位用来表示数据包的虚通道标识,[27:22]用来表示数据包的目的地址信息,[21:12]位表示数据负载的偏置信息以及神经网络中的一些控制信号,[11:0]位用来表示数据负载。
本实施例公开的路由通信架构如图2所示,从输入端口传入的数据先经过通道标识更新单元,通过数据包的虚通道标识位判断数据包要传输的方向,并通过判断下一跳路由路径更新虚通道标识,通道标识更新单元根据该传输方向的仲裁器是否开启和下游路由器信用值判断当前数据包能否进行直传,能够直传的数据包在更新虚通道标识后直接写入输出寄存器,不能直传的数据包则在更新虚通道标识后写入输入缓冲区中对应的虚通道;东向,西向和本地网络接口输入端口输入的数据包在XY维序路由下可能会前往四个输出方向,缓冲区为每个输出方向分配了一个浅深度虚通道,南向北向输入端口输入的数据包在XY维序路由下可能会前往两个输出方向,缓冲区为每个方向分配了一个浅深度虚通道;信用更新单元根据虚通道的写入和读出操作更新当前虚通道信用值并发往上游路由器,路由器根据当前虚通道是否存在需要传输的数据包和下游路由器信用值判断当前虚通道是否有仲裁需求,异构的仲裁器根据每个虚通道的仲裁需求在每周期内完成数据仲裁和传输工作,将获得优先权的数据包从虚通道写入输出寄存器。
所述路由器非直传数据包传输延时如图3所示,当数据包从输入端口传进路由器时,被判断不能直行的数据包被更新虚通道标识后写入缓冲区中对应的虚通道,NVC(虚通道标识更新)和BW(缓冲区写入)延时均隐藏在LT(线延时中);仲裁器根据最终信用值判断是否有数据仲裁需求,并在1周期内完成数据仲裁并将获得仲裁优先权的数据写入输出寄存器。
如图4所示,根据冲裁器是否开启和下游路由器最终信用值判断能够直传的数据包从输入端口传进路由器时,经过NVC(虚通道标识更新)后跳过路由流水线直接写入输出寄存器,NVC过程被隐藏在数据包传输的线延时中。
图5是在28nm工艺下的DC综合结果示意图,所述路由器在时序约束为1Ghz的情况下仍有较大的时序裕量,如图所示,单路由器总面积为8672um2,缓冲区所占面积为7808um2,仲裁器所占面积为150.4 um2,其他组合逻辑和输出寄存器为713.6 um2,单路由器总功耗为1.366mW。
现有技术(例如本申请人在先专利101808032)中采用的是单通道缓冲区,虫孔流控策略,根据XY路由算法对二维片上网络边缘,角落与非边缘角落的路由器进行了异构设计,简化了输入端口的传输逻辑。然而,单通道缓冲区路由器对于不断演进的存在大量通信的神经网络应用来说,会产生大量的包首阻塞,极大地影响了网络的通信效率;此外,面向神经网络应用,在网络上中传输的包多为单切片数据包,传统路由器对于单切片包的流控往往存在冗余逻辑;最后,对于核数不断变多的片上网络系统,路由流水线周期数决定了网络规模在进一步增大时延时是否会急剧上升。
而由于工艺的演进与对片上网络通信带宽需求的不断增加,本发明与之相比,不仅在多虚通道路由器对于包首阻塞现象的缓解功能的基础上完全避免了包首阻塞,并且没有引入多虚通道对于虚通道仲裁的延时与面积开销;其次,本发明的流控方式与传统路由器流控方式有很大区别,其面向单切片数据包能够快速反馈上游拥塞信息并且适应快速通行策略;并且本发明采用通过虚通道标识提前判断下一跳路由路径的方式配合路由流控实现单切片包跳过路由流水线的快速通行且正常模式下单切片包的路由流水线为1个周期,极大地减小了网络规模进一步扩大时带来的数据包延时急剧上升的情况。
总之,针对现有技术中存在的路由器流水线周期长,仲裁逻辑复杂,单切片流控支持差,网络规模扩展困难等问题。本发明将存在虚通道的传统路由器的多对多2级仲裁优化为不同向异构仲裁单元,将仲裁和数据写入输出寄存器放在一个周期内完成;信用更新单元向上游路由器发送缓冲区对应虚通道的空位数和仲裁结果,上游路由器根据对应虚通道空位数,下游路由仲裁结果及输出寄存器中切片的通道标识判断该虚通道能否接收切片;在路由器中设有直传机制,满足直传条件的切片会跳过路由流水线,不能满足直传条件的切片在单周期内通过路由器。
Claims (10)
1.一种面向神经网络平台的单周期路由器,其特征包括:
异构输入缓冲区,包括三个第一输入缓冲单元和两个第二输入缓冲冲单元,每个第一输入缓冲单元包含四条独立输入虚通道,每个第二输入缓冲单元包含两条独立输入虚通道;所述第一输入缓冲单元用于接收缓存来自东西方向和本地网络接口的、目的地为其他四个输出端口的输入数据;所述第二输入缓冲单元用于接收缓存南北方向的、目的地为本地网络接口和相对方向输出端口的输入数据;
通道标识更新单元,用于提前判断输入的数据切片下一跳要写入的输入虚通道,并更新数据切片中的虚通道标识位;
仲裁单元,与异构输入缓冲区信号连接,包括三个第一仲裁单元和两个第二仲裁单元,所述第一仲裁单元分别用于对流向南北方向和本地网络接口的数据切片进行仲裁,所述第二仲裁单元分别用于对流向东西方向的数据切片进行仲裁;
信用更新单元;与仲裁单元信号连接,用于将当前缓冲区空位数以及对应方向虚通道切片是否获得仲裁优先权的情况发往上游路由器。
2.根据权利要求1所述的一种面向神经网络平台的单周期路由器,其特征在于,所述第一输入缓冲单元包括西向输入缓冲单元、东向输入缓冲单元和本地输入缓冲单元,
所述西向输入缓冲单元包括去往东向、南向、北向和本地网络接口的独立的输入虚通道;输入数据切片中的虚通道标识表示其将要写入的缓冲区,同时表示了切片的传输方向;用00表示去往路由器北向切片缓存的虚通道,用01表示去往路由器东向切片缓存的虚通道,用10表示去往路由器本地网络接口切片缓存的虚通道,用11表示去往路由器南向切片缓存的虚通道;
所述东向输入缓冲单元包括去往西向、南向、北向和本地网络接口的独立的输入虚通道;输入数据切片中的虚通道标识表示其将要写入的缓冲区,同时表示了切片的传输方向;用00表示去往路由器北向切片缓存的虚通道,用01表示去往路由器西向切片缓存的虚通道,用10表示去往路由器本地网络接口切片缓存的虚通道,用11表示去往路由器南向切片缓存的虚通道;
所述本地输入缓冲单元包括去往东向、西向、南向和北向的独立的输入虚通道;输入数据切片中的虚通道标识表示其将要写入的缓冲区,同时表示了切片的传输方向;用00表示去往路由器东向切片缓存的虚通道,用01表示去往路由器西向切片缓存的虚通道,用10表示去往路由器北向切片缓存的虚通道,用11表示去往路由器南向切片缓存的虚通道。
3.根据权利要求1所述的一种面向神经网络平台的单周期路由器,其特征在于,
所述第二输入缓冲单元包括南向输入缓冲单元和北向输入缓冲单元,
所述南向输入缓冲单元包括去往北向和本地网络接口的独立的输入虚通道,输入数据切片中的虚通道标识表示其将要写入的缓冲区,同时表示了切片的传输方向;用00表示去往路由器本地网络接口切片缓存的虚通道,用10表示去往路由器北向切片缓存的虚通道;
所述北向输入缓冲单元包括去往南向和本地网络接口的独立的输入虚通道,输入数据切片中的虚通道标识表示其将要写入的缓冲区,同时表示了切片的传输方向;用00表示去往路由器本地网络接口切片缓存的虚通道,用01表示去往路由器南向切片缓存的虚通道。
4.根据权利要求1所述的一种面向神经网络平台的单周期路由器,其特征在于,通道标识更新单元包括比较器和加法器,通过比较器和加法器判断数据切片在下一跳路由要写入的输入虚通道,并更新切片中的虚通道标识,该逻辑时序隐藏在切片传输的链路延时中。
5.根据权利要求2所述的一种面向神经网络平台的单周期路由器,其特征在于,对于东向、西向输入的数据切片,路由算法模块读取数据切片的输入虚通道标识,并做如下处理:
若该数据切片的输入虚通道标识为01,则其前往西向、东向输出端口;
对当前路由横轴坐标加一或减一并与切片中的目的地址横坐标比较,若小于目的地址横坐标,则虚通道标识不变,继续往东、西向传输;若等于目的地址横坐标则判断其纵坐标与切片中目的地址纵坐标的关系,若大于目的地址纵坐标,则输入虚通道标识更新为11,
切片在下一跳写入标识为11的输入虚通道并向南传输,若等于目的地址纵坐标则虚通道标识更新为10,切片在下一跳写入标识为10的输入虚通道并向本地网络接口传输,若大于目的地址纵坐标则虚通道标识更新为00,切片在下一跳写入标识为00的输入虚通道并向北传输;
若该切片输入虚通道标识为00或11,则其前往北向、南向输出端口;
对当前路由纵坐标加一或减一,并与切片中目的地址纵坐标进行比较,若相等则切片在下一跳写入向网络本地接口传输的虚通道,并更新虚通道标识为00;若 不等,则切片在下一跳写入向北、南传输的虚通道,并更新虚通道标识为10、01;
若该切片输入虚通道标识为10,则其前往本地网络接口输出端口,不进行虚通道标识更新。
6.根据权利要求3所述的一种面向神经网络平台的单周期路由器,其特征在于,对于南向、北向输入的数据切片,读取数据切片的输入虚通道标识,并做如下处理:
若该数据切片的输入虚通道标识为00,则其前往本地网络接口输出端口,不进行虚通道标识更新;
若该数据切片的输入虚通道标识为10或01,则其前往北、南向输出端口,对当前路由纵坐标加一或减一,并与切片中目的地址纵坐标进行比较,
若相等,则切片在下一跳写入向网络本地接口传输的虚通道,并更新虚通道标识为00;若不等,则切片在下一跳写入向北向、南传输的虚通道,并更新虚通道标识为10、01。
7.根据权利要求2所述的一种面向神经网络平台的单周期路由器,其特征在于,对于本地网络接口输入的数据切片,读取数据切片的输入虚通道标识,并做如下处理:
若虚通道标识为00、01,则其前往东、西向输出端口,对当前路由横轴坐标加一或减一并与切片中的目的地址横坐标比较,若小于目的地址横坐标,则虚通道标识不变,继续往东、西向传输;若等于目的地址横坐标则判断其纵坐标与切片中目的地址纵坐标的关系,若大于目的地址纵坐标则虚通道更新为11,切片在下一跳写入11所标识的虚通道并向南传输,若等于目的地址纵坐标则虚通道更新为10,切片在下一跳写入10所标识的虚通道并向本地网络接口传输,若大于目的地址纵坐标则虚通道更新为00,切片在下一跳写入00所标识的虚通道并向北传输;
若虚通道标识为10、11,则其前往北、南向输出端口,对当前路由纵坐标加一或减一,并与切片中目的地址纵坐标进行比较;
若相等,则切片在下一跳写入向网络本地接口传输的虚通道,并更新虚通道标识为00;
若不等,则切片在下一跳写入向北、南传输的虚通道,并更新虚通道标识为10、01。
8.根据权利要求1所述的一种面向神经网络平台的单周期路由器,其特征在于,根据切片在XY维序路由算法下可能申请的传输方向,仲裁单元对东西向输出端口进行2输入1输出仲裁,对南北向与通向本地网络接口的输出端口进行4输入1输出仲裁,因为输入虚通道被分配给对应的传输方向,所以不需要进行虚通道仲裁;该设计下仲裁器逻辑时序开销很小,切片获得仲裁优先权与写入输出寄存器在1个周期内完成。
9.根据权利要求8所述的一种面向神经网络平台的单周期路由器,其特征在于,各方向输出端口仲裁器会根据输入缓冲区中是否存在仲裁需求判断是否开启,若仲裁器开启,则采取轮询仲裁逻辑,输出获得仲裁优先权的切片;若仲裁器不开启,则判断东西向和南北向切片能否直行,可以直行的切片跳过路由流水线并在更新虚通道标识后直接写入路由输出寄存器,不能直行的切片则被写入路由缓冲区。
10.根据权利要求1所述的一种面向神经网络平台的单周期路由器,其特征在于,信用更新单元每个周期不仅将缓冲区中虚通道对应的空位数发往上游路由器,同时将对应虚通道的仲裁结果发往上游路由器,上游路由器根据输出寄存器中的虚通道标识和下游路由器信用及仲裁结果判断是否能够进行切片仲裁和写入输出寄存器阶段,将下游路由器对应标识的虚通道空位数作为基础信用值,若下游路由器对应标识虚通道中的切片未获得仲裁优先权,则基础信用值不变,若获得仲裁优先权,则基础信用值加一;若当前路由器输出寄存器存在切片且其虚通道标识为该通道对应标识,则基础信用值减一;否则基础信用值不变,若最终信用值等于0则不能继续写入该虚通道;若最终信用值大于0,则能够继续写入该虚通道。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022107105653 | 2022-06-22 | ||
CN202210710565 | 2022-06-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115550235A true CN115550235A (zh) | 2022-12-30 |
CN115550235B CN115550235B (zh) | 2024-02-09 |
Family
ID=84726414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211014355.7A Active CN115550235B (zh) | 2022-06-22 | 2022-08-23 | 面向神经网络平台的单周期路由器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115550235B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185751A (zh) * | 2010-12-13 | 2011-09-14 | 中国人民解放军国防科学技术大学 | 一种基于快速通道技术的单周期片上路由器 |
CN105871730A (zh) * | 2016-03-22 | 2016-08-17 | 广东工业大学 | 基于网络编码的新型紧凑、高效、快速的片上网络路由器 |
CN105871742A (zh) * | 2016-03-24 | 2016-08-17 | 合肥工业大学 | 一种片上网络中基于虚拟输出队列机制的自适应路由器 |
CN106453109A (zh) * | 2016-10-28 | 2017-02-22 | 南通大学 | 一种片上网络通信方法及路由器 |
CN113114593A (zh) * | 2021-04-12 | 2021-07-13 | 合肥工业大学 | 一种片上网络中双信道路由器及其路由方法 |
-
2022
- 2022-08-23 CN CN202211014355.7A patent/CN115550235B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185751A (zh) * | 2010-12-13 | 2011-09-14 | 中国人民解放军国防科学技术大学 | 一种基于快速通道技术的单周期片上路由器 |
CN105871730A (zh) * | 2016-03-22 | 2016-08-17 | 广东工业大学 | 基于网络编码的新型紧凑、高效、快速的片上网络路由器 |
CN105871742A (zh) * | 2016-03-24 | 2016-08-17 | 合肥工业大学 | 一种片上网络中基于虚拟输出队列机制的自适应路由器 |
CN106453109A (zh) * | 2016-10-28 | 2017-02-22 | 南通大学 | 一种片上网络通信方法及路由器 |
CN113114593A (zh) * | 2021-04-12 | 2021-07-13 | 合肥工业大学 | 一种片上网络中双信道路由器及其路由方法 |
Non-Patent Citations (1)
Title |
---|
王荣阳;袁泉;陈栋;王科;: "基于FPGA的32位片上网络设计与验证", 航空电子技术, no. 03 * |
Also Published As
Publication number | Publication date |
---|---|
CN115550235B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102823214B (zh) | 知晓性能和话务的异类性互联网络 | |
CN111104775B (zh) | 一种片上网络拓扑结构及其实现方法 | |
CN107454003B (zh) | 一种可动态切换工作模式的片上网络路由器及方法 | |
EP2227749B1 (en) | Bus enhanced network on chip | |
CN104158738A (zh) | 一种低缓冲区片上网络路由器及路由方法 | |
US10944693B2 (en) | Routing flits in a network-on-chip based on operating states of routers | |
CN112152932B (zh) | 片上网络路由控制方法、片上网络路由器及可读存储介质 | |
CN109873771B (zh) | 一种片上网络系统及其通信方法 | |
CN101834789B (zh) | 面向包-电路交换片上路由器的回退转向路由算法及所用路由器 | |
JP5552196B2 (ja) | 中継装置、中継装置の制御方法、およびコンピュータプログラム | |
US20110286422A1 (en) | Electronic device and method of communication resource allocation | |
CN114844827B (zh) | 一种用于片上网络芯片的基于共享存储的生成树路由硬件架构及方法 | |
CN113114593B (zh) | 一种片上网络中双信道路由器及其路由方法 | |
US11730325B2 (en) | Dual mode interconnect | |
US20070253410A1 (en) | Integrated Circuit and Method for Packet Switching Control | |
CN111245730B (zh) | 一种片上网络的路由系统及通信方法 | |
KR20080030330A (ko) | 온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크인터페이스 회로 및 그 시스템 | |
CN110096475B (zh) | 一种基于混合互连架构的众核处理器 | |
US11934334B2 (en) | CCIX port management for PCI express traffic | |
Ouyang et al. | Fault-tolerant design for data efficient retransmission in WiNoC | |
CN103220230A (zh) | 支持报文交叉存储的动态共享缓冲方法 | |
CN115550235B (zh) | 面向神经网络平台的单周期路由器 | |
US20120008620A1 (en) | Connection arrangement | |
US7254139B2 (en) | Data transmission system with multi-memory packet switch | |
US20230244626A1 (en) | Parallel dataflow routing scheme systems and methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |