CN105530206A - 一种基于Torus网络的双接入结构及其工作方式 - Google Patents
一种基于Torus网络的双接入结构及其工作方式 Download PDFInfo
- Publication number
- CN105530206A CN105530206A CN201510981455.0A CN201510981455A CN105530206A CN 105530206 A CN105530206 A CN 105530206A CN 201510981455 A CN201510981455 A CN 201510981455A CN 105530206 A CN105530206 A CN 105530206A
- Authority
- CN
- China
- Prior art keywords
- node
- state machine
- route
- signal
- routing
- 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
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
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种基于Torus网络的双接入结构及其工作方式,其特征是:任意一个路由节点提供两个本地接口,两个本地接口连接两个不同的资源节点;任意一个资源节点以对角线的方式接入到网络中的两个路由节点上,可以同时通过两个相连的路由节点发送两路数据至片上网络,同时接收来自两个路由节点的数据;若与资源节点相连接的一个路由节点被占用时,数据可从与资源节点相连的另外一个路由节点进入资源节点。本发明可以缩短节点间的平均距离,减少网络直径,充分的利用片上网络的并行性,提高资源节点间的并行通信能力,大幅提升片上网络的吞吐量,减少资源节点数据传输时间,同时使得每个资源节点在流模式下进行双目运算,提高资源节点运算效率。
Description
技术领域
本发明涉及一种基于Torus网络的双接入结构及其工作方式,属于片上网络通讯技术领域
背景技术
与传统的单核系统相比,多核系统在计算能力、功耗方面带来了较大的优势,但随着运算能力的提高,也给片上通讯带来了吞吐量、并行性、速度的挑战。针对以上问题,片上网络技术作为一种以通信为中心的集成电路互联结构被提出,成为解决多核系统片上通讯的最佳方案。随着片上网络技术的发展,研究者们提出了各式各样的网络拓扑结构。
图2所示的Torus网络与图1所示的传统的mesh网络相比较,不仅继承了其结构简单,可拓展性好,便于实现和分析的特点,同时还具有较小的网络半径,较低的功耗等优点,因此在片上网络得到了广泛的应用。如图1所示,在传统的片上网络中,每个路由节点只能接入一个运算单元或存储单元,当运算单元处理双目运算时,需要等待两路数据准备完毕后才能开始运算,很大程度的降低了运算处理的速度,影响多核系统的运行效率。因此如何提高并行度和网络的吞吐量成为片上网络设计的关键问题。
发明内容
本发明为克服现有技术的不足之处,提出一种基于Torus网络的双接入结构及其工作方式,以期能在具有双接入结构的Torus网络中进行数据传输,从而能缩短节点间的平均距离,减小网络半径,提高网络的吞吐量和并行性,实现资源节点的双目流运算的工作方式,提高片上网络的运算效率。
本发明为达到上述目的所采用的技术方案是:
本发明一种基于Torus网络的双接入结构的特点是,所述Torus网络包括若干个路由节点、若干个资源节点和若干条路由通道;
任意一个路由节点具有两个本地接口,两个本地接口分别连接两个对角线方向上的资源节点,任意一个资源节点以对角线的方式接入到两个路由节点上,任意两个相邻的路由节点通过所述路由通道相连接,任意行和任意列首尾的两个路由节点通过所述路由通道连接,从而形成所述Torus网络的双接入结构。
本发明一种基于Torus网络的双接入结构的特点也在于,所述路由节点的组成包括:输入状态机模块、优先级编码器模块、译码器模块、仲裁器模块、交叉开关模块和输出状态机模块;
所述输入状态机模块用于控制数据有序输入,并由四个方向上的输入状态机和两个对角线方向上的输入状态机组成,包括:东向输入状态机、西向输入状态机、北向输入状态机、南向输入状态机、本地0方向输入状态机和本地1方向输入状态机;
任意一个输入状态机的工作状态包括:空闲状态F_IDLE、请求状态F_REQ、预锁定状态F_PRELOCK、锁定状态F_LOCK和失败状态F_FAIL
任意一个输入状态机的初始状态为空闲状态F_IDLE;
所述输出状态机模块用于控制数据有序输出,并由四个方向上的输出状态机和两个对角线方向上的输出状态机组成,包括:东向输出状态机、西向输出状态机、北向输出状态机、南向输出状态机、本地0方向输出状态机和本地1方向输出状态机;
任意一个输出状态机的工作状态包括:空闲状态F_IDLE和锁定状态F_LOCK;
任意一个输出状态机的初始状态为空闲状态F_IDLE;
所述优先级编码器模块用于根据所设定的优先级顺序控制路由请求的处理顺序;
所述译码器模块用于根据输入的路由请求产生数据传输的路由方向;
所述仲裁器模块用于判断所产生的路由方向在相应的输出状态机上是否被占据;若被占据,则向所述输入状态机模块返回“拒绝分配”信号,若不被占据,则向所述输入状态机模块返回“允许分配”信号,并向所述交叉开关模块发送connection互连信号;
所述交叉开关模块根据connection互连信号实现相应输入状态机与相应输出状态机的互联。
本发明一种基于Torus网络的双接入结构的工作方式的特点是应用于任意两个资源节点之间数据进行传输的过程中;所传输的数据包括:路由包、数据包和结束包;所述路由包包含目的节点地址;定义发送所述路由包的资源节点为请求方源节点,接收所述路由包的资源节点为目的节点;根据所传输的数据沿着所经过路由节点的顺序,定义数据当前所经过的路由节点为当前节点,则数据所经过的上一个路由节点为上游节点,数据将要经过的下一个路由节点为下游节点;
以所述Torus网络的任一顶点上的路由节点为原点O,与所述顶点上的路由节点相连的两条互连的路由通道分别为X轴和Y轴,建立坐标系OXY;并以X轴正方向为东向,以X轴的负方向为西向,以Y轴的正方向为北向,以Y轴的负方向为南向;则在所述坐标系OXY中的各个路由节点的位置坐标即为相应路由节点地址;
所述数据传输的过程是按如下步骤进行:
步骤1、所述请求方源节点向与其相连的路由节点的输入状态机模块发送路由请求和路由包,则接收到所述路由请求和路由包的路由节点变为当前节点;
步骤2、所述当前节点的输入状态机模块接收到所述路由包和路由请求;则所述当前节点在所接收方向上的输入状态机的工作状态由空闲状态F_IDLE跳转到请求状态F_REQ;所述接收方向上的输入状态机将路由请求以及路由包中的目的节点地址发送到所述优先级编码器模块;
步骤3、所述当前节点的优先级编码器模块接收到所述路由请求,并根据所设定的优先级顺序处理来自不同方向上的路由请求;从而选出最高优先级的路由请求,并用select信号表示;再将所述select信号及其所对应的路由包中的目的节点地址发送到译码器模块;
步骤4、所述当前节点的译码器模块根据所接收的select信号,根据目的节点切换方法将所述select信号所对应方向的路由包中的目的节点地址与所述当前节点地址进行比较,从而产生可能的路由方向,并用dest信号表示;再将dest信号和select信号发送给仲裁器模块;
步骤5、所述仲裁器模块接收到所述select信号和dest信号后,根据优先级从高到低的顺序依次判断dest信号中对应方向上的输出状态机的工作状态是否为空闲状态F_IDLE;若为空闲状态F_IDLE,则向所述当前节点的向对应方向上的输入状态机返回“允许分配”信号,向所述交叉开关模块发送connection互连信号;同时向对应方向上的输出状态机发送“占用”信号,若不为空闲状态F_IDLE,则向对应方向上的输入状态机返回“拒绝分配”信号;
步骤6、所述对应方向上的输入状态机若接收到所述“允许分配”信号;则对应方向上的输入状态机的工作状态由所述请求状态F_REQ跳转到预锁定状态F_PRELOCK;
所述当前节点的交叉开关模块根据所接收到所述connection互连信号将相应输入状态机与对应的输出状态机进行互连;
所述对应方向上的输出状态机根据所接收的“占用”信号由所述空闲状态F_IDLE跳转到锁定状态F_LOCK,并产生一个新的路由请求;
同时,所述对应方向上的输入状态机将所述路由包通过所述交叉开关发送到对应方向上的输出状态机;并执行步骤10;
所述对应方向上的输入状态机若接收到所述“拒绝分配”信号,则对应方向上的输入状态机的工作状态由所述请求状态F_REQ跳转到失败状态F_FAIL;并向上游节点的对应方向上输出状态机模块发送“路由失败”信号后,再由失败状态F_FAIL跳转到空闲状态F_IDLE,并执行步骤7;
步骤7、所述上游节点对应方向上的输出状态机接收到“路由失败”信号由所述锁定状态F_LOCK跳转到空闲状态F_IDLE,同时将“路由失败”传输到所述上游节点对应方向上的输入状态机;
步骤8、所述上游节点对应方向上的输入状态机根据接收到“路由失败”信号由所述预锁定状态F_PRELOCK跳转到所述失败状态F_FAIL,同时返回“路由失败”信号至所述上游节点的上游后,再由失败状态F_FAIL跳转到空闲状态F_IDLE,直到所述“路由失败”信号返回到所述请求方源节点为止;
步骤9、所述请求方源节点接收到“路由失败”信号后,返回执行步骤1;
步骤10、所述对应方向上的输出状态机将新的路由请求以及接收到的路由包发送到下游节点或所述目的节点;
步骤11、判断所述当前节点是否为与目的节点相连的路由节点,若为与所述目的节点相连的路由节点,则执行步骤12;否则,所述当前节点变为上游节点,与接收到所述“占用”信号的输出状态机相连的下游节点变为当前节点,并返回步骤2执行;
步骤12、所述目的节点接收到新的路由请求和路由包后,产生“通道锁定”信号并返回到与所述目的节点相连的路由节点相应方向上的输出状态机;
步骤13、接收到所述“通道锁定”信号的路由节点对应方向上的输出状态机将所述“通道锁定”通过交叉开关模块返回到所述对应方向上的输入状态机;
步骤14、接收到所述“通道锁定”信号的对应方向上的输入状态机的工作状态由所述预锁定状态F_PRELOCK跳转到锁定状态F_LOCK,同时将“通道锁定”传输到对应方向上的上游节点输出状态机;直到所述“通道锁定”信号返回到所述请求方源节点为止;
步骤15、所述请求方源节点接收到“通道锁定”后,表示从所述请求方源节点到所述目的节点间的数据传输通道建立完成,所述请求方源节点将数据包通过所述数据传输通道传输到所述目的节点;
步骤16、所述请求方源节点发送完数据包后,再发送结束包;
步骤17、当所述目的节点接收到结束包后产生“通道撤销”信号并返回到与所述目的节点相连的输出状态机;
步骤18、与所述目的节点相连的相应方向上的输出状态机接收到“通道撤销”信号将工作状态从锁定状态F_LOCK跳转到空闲状态F_IDLE,同时通过所述交叉开关模块将“通道撤销”信号发送到对应方向的输入状态机;
步骤19、所述当前节点对应方向上的输入状态机若接收到“通道撤销”信号;则对应方向上的输入状态机的工作状态由所述锁定状态F_LOCK跳转到空闲状态F_IDLE;同时返回“通道撤销”信号至所述上游节点的对应方向上的输出状态机后,直到所述“通道撤销”信号返回到所述请求方源节点为止;
步骤20、所述请求方源节点接收到“通道撤销”信号后,表示所述请求方源节点与所述目的节点之间的数据传输通道已撤销,且数据传输已完成。
本发明所述的基于Torus网络的双接入结构的工作方式的特点也在于,所述目的节点切换方法为:
任意一个路由节点具有两个位置坐标;包括一级坐标和二级坐标;
在所述坐标系OXY中,假设当前路由节点的一级坐标为(x1,y1)、二级坐标为(x2,y2);则与所述当前路由节点在本地0方向上相连接的资源节点的位置坐标为(x1,y1);与所述当前路由节点在本地1方向上相连接的资源节点的位置坐标为(x2,y2);假设目的节点的位置坐标为(x,y);则按如下方式产生可能的路由方向:
当x>x1时,则路由请求可能的路由方向为东向;
当x<x1-1时,则路由请求可能的路由方向为西向;
当y>y1时,则当前请求可能的路由方向为南向;
当y<y1-1时,则当前路由请求可能的方向为北向;
当x=x1且y=y1-1时,
若路由请求来自南向,则可能的路由方向为东向和北向;
若路由请求来自西向,则可能的路由方向为东向和北向;
若路由请求来自东向,则可能的路由方向为北向;
若路由请求来自北向,则可能的路由方向为东向;
当x=x1-1且y=y1时,
若路由请求来自东向,则可能的路由方向为南向和西向;
若路由请求来自北向,则可能的路由方向为南向和西向;
若路由请求来自南向,则可能的路由方向为西向;
若路由请求来自西向,则可能的路由方向为南向;
当x=x1且y=y1时,
若路由请求来自东向,则可能的路由方向为本地0方向和南向;
若路由请求来自南向,则可能的路由方向为本地0方向和东向;
若路由请求来自西向,则可能的路由方向为本地0方向、东向和南向;
若路由请求来自北向,则可能的路由方向为本地0方向、东向和南向;
当x=x2且y=y2时,
若路由请求来自东向,则可能的路由方向为本地1方向、北向和西向;
若路由请求来自南向,则可能的路由方向为本地1方向、北向和西向;
若路由请求来自西向,则可能的路由方向为本地1方向和北向;
若路由请求来自北向,则可能的路由方向为本地1方向和西向。
与现有技术相比,本发明的有益技术效果体现在:
1、本发明由于使用了Torus网络,将每行和每列首尾的两个路由节点直接相连,使所有的路由节点形成一个环路,提供了更多的路由选择,将处于边界上的路由节点直接相连,数据可以直接从网络的一段传输到另一端,而不需要经过两个端点中间相连的各节点,缩短了节点间的平均距离,大大减少了网络直径;由于网络直径的减少,可以减少数据的传输时间,减小了传输延时,提高了网络的吞吐量。
2、本发明设计了一种基于Torus网络的双接入结构,由于所采用的双接入结构将网络中的每个路由节点与两个资源节点相连,两个资源节点可以同时通过该路由节点向外发送数据,提高了单个路由节点的吞吐量;同时网络中的每个资源节点都连接两个路由节点,使得每个资源节点可以同时处理两路数据,进而使得资源节点在进行双目运算时可以采用全流模式,减少了资源节点的数据准备时间,提高了资源节点的运算速度,提高了多核系统的计算缓存比;由此可见双接入网络在整体上提高了整个系统的运行效率。
3、本发明中所使用的工作方式在任意两个节点间进行数据传输时,首先通过路由包在两个节点间建立一条从请求方源节点到目的节点的数据传输通道,通道建立后保持锁定状态,直到数据传输完成撤销数据传输通道,可以有效的避免与其他的数据传输产生冲突而形成死锁,提高网络中数据传输的并行性,同时在数据传输的过程中,数据以流水线的形式进行传输,数据通过每个路由节点只需一个周期,提高了网络的吞吐量,减少了传输延时。
4、本发明由于使用了目的节点切换方法,可以为路由请求提供所有可能的路由方向,在其中一个路由方向被占用时,可以转向另一个没有被占用的方向继续路由到达目的节点,避免了网络拥堵,减少了网络拥塞发生的概率;当资源节点的一个方向通道被占用时,数据可通过另外一个路由节点的本地通道进入资源节点,使得通道建立更加灵活,减少数据传输的等待时间,保证了双目流运算的正常进行;提高了通道建立的成功率;同时当网络中有大量数据传输时,可以使数据通过更多的路由节点传输,避免了数据集中经过网络中的特定几个节点,而使网络出现“热点”,使得数据流量在网络中均匀分布,从而充分的利用网络资源,提高系统的整体性。
附图说明
图1为传统的mesh网络的结构示意图;
图2为现有技术中Torus网络的结构示意图;
图3为本发明实施例中4X4Torus网络双接入结构图;
图4为本发明实施例中单个路由节点的结构图;
图5为本发明实施例中路由节点的六个方位分布图;
图6为本发明实施例中目的节点切换方式一示意图;
图7为本发明实施例中目的节点切换方式二示意图;
图8为本发明实施例中目的节点切换方式三示意图。
具体实施方式
在本实施例中,一种基于Torus网络的双接入结构中的Torus网络包括若干个路由节点、若干个资源节点和若干条路由通道;
任意一个路由节点具有两个本地接口,两个本地接口分别连接两个对角线方向上的资源节点,任意一个资源节点以对角线的方式接入到两个路由节点上,任意两个相邻的路由节点通过路由通道相连接,任意行和任意列首尾的两个路由节点通过路由通道连接,从而形成Torus网络的双接入结构。
以Torus网络的任一顶点上的路由节点为原点O,与顶点上的路由节点相连的两条互连的路由通道分别为X轴和Y轴,建立坐标系OXY;并以X轴正方向为东向,以X轴的负方向为西向,以Y轴的正方向为北向,以Y轴的负方向为南向;则在坐标系OXY中的各个路由节点的位置坐标即为相应路由节点地址;任意一个路由节点具有两个位置坐标;包括一级坐标和二级坐标;图3所示为本实施例中的一个4X4的双接入Torus网络,其中方块代表路由节点,圆圈代表资源节点;同时根据所建立的坐标系为每个路由节点和资源节点设置相应坐标。
如图4所示,路由节点的组成包括:输入状态机模块、优先级编码器模块、译码器模块、仲裁器模块、交叉开关模块和输出状态机模块;
输入状态机模块用于控制数据有序输入,并由四个方向上的输入状态机和两个对角线方向上的输入状态机组成,包括:东向输入状态机、西向输入状态机、北向输入状态机、南向输入状态机、本地0方向输入状态机和本地1方向输入状态机;路由节点的6个方向的分布图如图5所示,本地0方向输入状态机和本地1方向输入状态机分别连接两个不同的资源节点,用于实现路由节点与资源节点的通信,其余四个方向的输入状态分别与相邻的节点通信;
任意一个输入状态机的工作状态包括:空闲状态F_IDLE、请求状态F_REQ、预锁定状态F_PRELOCK、锁定状态F_LOCK和失败状态F_FAIL
任意一个输入状态机的初始状态为空闲状态F_IDLE;
输出状态机模块用于控制数据有序输出,并由四个方向上的输出状态机和两个对角线方向上的输出状态机组成,包括:东向输出状态机、西向输出状态机、北向输出状态机、南向输出状态机、本地0方向输出状态机和本地1方向输出状态机;
任意一个输出状态机的工作状态包括:空闲状态F_IDLE和锁定状态F_LOCK;
任意一个输出状态机的初始状态为空闲状态F_IDLE;
优先级编码器模块用于根据所设定的优先级顺序控制路由请求的处理顺序;本实施例中的优先级顺序为本地0方向>本地1方向>东向>南向>西向>北向,只有当优先级高的路由请求处理完成后,才处理低优先级的请求。
译码器模块用于根据输入的路由请求产生数据传输的路由方向;
仲裁器模块用于判断所产生的路由方向在相应的输出状态机上是否被占据;若被占据,则向输入状态机模块返回“拒绝分配”信号,若不被占据,则向输入状态机模块返回“允许分配”信号,并向交叉开关模块发送connection互连信号;connection互连信号用三十六位二进制表示,connection互连信号每六位分成一组,每组表示本地0方向、本地1方向、东向、南向、西向、北向六个输出状态机与六个输入状态机的连接关系。例如connection互连信号为000001000010000100001000010000100000时表示,本地0输出状态机与北向输入状态机相连,本地1输出状态机与西向输入状态机相连,东向输出状态机与南向输入状态机相连,南向输出状态机与东向输入状态机相连,西向输出状态机与本地1输入状态机相连,北向输出状态机与本地0输入状态机相连。
交叉开关模块根据connection互连信号实现相应输入状态机与相应输出状态机的互联。
一种基于Torus网络的双接入结构的工作方式,是应用于任意两个资源节点之间数据进行传输的过程中;所传输的数据包括:路由包、数据包和结束包;路由包包含目的节点地址;定义发送路由包的资源节点为请求方源节点,接收路由包的资源节点为目的节点;根据所传输的数据沿着所经过路由节点的顺序,定义数据当前所经过的路由节点为当前节点,则数据所经过的上一个路由节点为上游节点,数据将要经过的下一个路由节点为下游节点;
数据传输的过程是按如下步骤进行:
步骤1、请求方源节点向与其相连的路由节点的输入状态机模块发送路由请求和路由包,则接收到路由请求和路由包的路由节点变为当前节点;
步骤2、当前节点的输入状态机模块接收到路由包和路由请求;则当前节点在所接收方向上的输入状态机的工作状态由空闲状态F_IDLE跳转到请求状态F_REQ;接收方向上的输入状态机将路由请求以及路由包中的目的节点地址发送到优先级编码器模块;
步骤3、当前节点的优先级编码器模块接收到路由请求,并根据所设定的优先级顺序处理来自不同方向上的路由请求;从而选出最高优先级的路由请求,并用select信号表示;select以六位二进制表示,从低位到高位分别表示本地0方向、本地1方向、东向、南向、西向、北向,根据所选出的最高优先级的方向,将相应为置为1;再将select信号及其所对应的路由包中的目的节点地址发送到译码器模块;
步骤4、当前节点的译码器模块根据所接收的select信号,根据目的节点切换方法将select信号所对应方向的路由包中的目的节点地址与当前节点地址进行比较,从而产生可能的路由方向,并用dest信号表示;dest以六位二进制表示,从低位到高位分别表示本地0方向、本地1方向、东向、南向、西向、北向;当其中一个方向被占用时,可以选择其他的方向继续路由到达目的节点,提高数据传输通道建立的成功率。具体的说,目的节点切换方法为:
在坐标系OXY中,假设当前路由节点的一级坐标为(x1,y1)、二级坐标为(x2,y2);则与当前路由节点在本地0方向上相连接的资源节点的位置坐标为(x1,y1);与当前路由节点在本地1方向上相连接的资源节点的位置坐标为(x2,y2);假设目的节点的位置坐标为(x,y);则按如下方式产生可能的路由方向:
若当前节点不是与目的节点所相邻的4个路由节点,则不需要考虑路由请求的方向,按如下方式进行:
当x>x1时,则路由请求可能的路由方向为东向;
当x<x1-1时,则路由请求可能的路由方向为西向;
当y>y1时,则当前请求可能的路由方向为南向;
当y<y1-1时,则当前路由请求可能的方向为北向;
若当前节点为目的节点相邻的4个路由节点中的其中一个,则需要选择与目的节点相连的两个路由节点,同时考虑路由请求的方向,可分为三种方式:
方式一:当x=x1且y=y1时,
若路由请求来自东向,则可能的路由方向为本地0方向和南向;
若路由请求来自南向,则可能的路由方向为本地0方向和东向;
若路由请求来自西向,则可能的路由方向为本地0方向、东向和南向;
若路由请求来自北向,则可能的路由方向为本地0方向、东向和南向;
当x=x2且y=y2时,
若路由请求来自东向,则可能的路由方向为本地1方向、北向和西向;
若路由请求来自南向,则可能的路由方向为本地1方向、北向和西向;
若路由请求来自西向,则可能的路由方向为本地1方向和北向;
若路由请求来自北向,则可能的路由方向为本地1方向和西向。
若x=x1且y=y1时;除了选择本地0方向外,还会根据请求是否来自西向和北向而选择东向和南向作为可能的路由方向;若路由请求来自东向则只能选择南向,路由请求来自南向则只能东向;这样可以避免请求方向与路由方向相同而造成重复路由;若当前节点的本地方向被占用,则可以与资源节点相连的另外一个路由节点到达目的节点;若x=x2且y=y2时的情况与其相同;例如在图6中当前节点为22,若22的本地0方向被占用,则同通过东向的23节点路由到33节点从而到达目的节点,或者通过32节点路由到33节点二进入目的节点,为了避免重复路由而出现“活锁”,要避免请求方向与路由方向相同。
方式二:当x=x1且y=y1-1时,
若路由请求来自南向,则可能的路由方向为东向和北向;
若路由请求来自西向,则可能的路由方向为东向和北向;
若路由请求来自东向,则可能的路由方向为北向;
若路由请求来自北向,则可能的路由方向为东向;
若x=x1且y=y1-1时,可以同时选择东向和北向作为可能的路由方向,但若路由请求来自东向和北向,为避免重复路由,东向的路由请求只能选择北向;北向的路由请求只能选择东向;如图7所示,当前节点为32,目的节点为22,路由请求可已通过33节点进入目的节点,也可以通过22节点进入目的节点;
方式三:当x=x1-1且y=y1时,
若路由请求来自东向,则可能的路由方向为南向和西向;
若路由请求来自北向,则可能的路由方向为南向和西向;
若路由请求来自南向,则可能的路由方向为西向;
若路由请求来自西向,则可能的路由方向为南向;
若x=x1-1且y=y1时,可以同时选择南向和西向作为可能的路由方向,但若路由请求来自西向和南向,为避免重复路由,西向的路由请求只能选择南向;南向的路由请求只能选择西向;如图8所示,当前节点为23,目的节点为22,路由请求可已通过33节点进入目的节点,也可以通过22节点进入目的节点;
译码器模块产生dest信号后,再将dest信号和select信号发送给仲裁器模块;
步骤5、仲裁器模块接收到select信号和dest信号后,根据优先级从高到低的顺序依次判断dest信号中对应方向上的输出状态机的工作状态是否为空闲状态F_IDLE;若优先级高方向上的输出状态机为空闲状态则不再判断地优先机的路由方向;若为空闲状态F_IDLE,则向当前节点的向对应方向上的输入状态机返回“允许分配”信号,向交叉开关模块发送connection互连信号;同时向对应方向上的输出状态机发送“占用”信号,若不为空闲状态F_IDLE,则向对应方向上的输入状态机返回“拒绝分配”信号;
步骤6、对应方向上的输入状态机若接收到“允许分配”信号;则对应方向上的输入状态机的工作状态由请求状态F_REQ跳转到预锁定状态F_PRELOCK;
当前节点的交叉开关模块根据所接收到connection互连信号将相应输入状态机与对应的输出状态机进行互连;
对应方向上的输出状态机根据所接收的“占用”信号由空闲状态F_IDLE跳转到锁定状态F_LOCK,并产生一个新的路由请求;
同时,对应方向上的输入状态机将路由包通过交叉开关发送到对应方向上的输出状态机;并执行步骤10;
对应方向上的输入状态机若接收到“拒绝分配”信号,则对应方向上的输入状态机的工作状态由请求状态F_REQ跳转到失败状态F_FAIL;并向上游节点的对应方向上输出状态机模块发送“路由失败”信号后,再由失败状态F_FAIL跳转到空闲状态F_IDLE,并执行步骤7;
步骤7、上游节点对应方向上的输出状态机接收到“路由失败”信号由锁定状态F_LOCK跳转到空闲状态,同时将“路由失败”传输到上游节点对应方向上的输入状态机;
步骤8、上游节点对应方向上的输入状态机根据接收到“路由失败”信号由预锁定状态F_PRELOCK跳转到失败状态F_FAIL,同时返回“路由失败”信号至上游节点的上游后,再由失败状态F_FAIL跳转到空闲状态F_IDLE,直到“路由失败”信号返回到请求方源节点为止;
步骤9、请求方源节点接收到“路由失败”信号后,返回执行步骤1;
步骤10、对应方向上的输出状态机将新的路由请求以及接收到的路由包发送到下游节点或目的节点;
步骤11、判断当前节点是否为与目的节点相连的路由节点,若为与目的节点相连的路由节点,则执行步骤12;否则,当前节点变为上游节点,与接收到“占用”信号的输出状态机相连的下游节点变为当前节点,并返回步骤2执行;
步骤12、目的节点接收到新的路由请求和路由包后,产生“通道锁定”信号并返回到与目的节点相连的路由节点相应方向上的输出状态机;
步骤13、接收到“通道锁定”信号的路由节点对应方向上的输出状态机将“通道锁定”通过交叉开关模块返回到对应方向上的输入状态机;
步骤14、接收到“通道锁定”信号的对应方向上的输入状态机的工作状态由预锁定状态F_PRELOCK跳转到锁定状态F_LOCK,同时将“通道锁定”传输到对应方向上的上游节点输出状态机;直到“通道锁定”信号返回到请求方源节点为止;
步骤15、请求方源节点接收到“通道锁定”后,表示从请求方源节点到目的节点间的数据传输通道建立完成,请求方源节点将数据包通过路由传输通道传输到目的节点;
步骤16、请求方源节点发送完数据包后,再发送结束包;
步骤17、当目的节点接收到结束包后产生“通道撤销”信号并返回到与目的节点相连的输出状态机;
步骤18、与目的节点相连的相应方向上的输出状态机接收到“通道撤销”信号将工作状态从锁定状态F_LOCK跳转到空闲状态F_IDLE,同时通过交叉开关模块将“通道撤销”信号发送到对应方向的输入状态机;
步骤19、当前节点对应方向上的输入状态机若接收到“通道撤销”信号;则对应方向上的输入状态机的工作状态由锁定状态F_LOCK跳转到空闲状态F_IDLE;同时返回“通道撤销”信号至上游节点的对应方向上的输出状态机后,直到“通道撤销”信号返回到请求方源节点为止;
步骤20、请求方源节点接收到“通道撤销”信号后,表示请求方源节点与目的节点之间的数据传输通道已撤销,且数据传输已完成。
本发明在XilinxFPGA开发板Vertex6760上通过了VerilogHDL实现,网络尺寸为4*4Torus双接入网络的资源消耗如表1所示。
表1
资源类型 | 查找表(LUT) | 寄存器(Register) |
资源消耗 | 5524 | 10358 |
综上所述,本发明可以缩短节点间的平均距离,减少了网络直径,充分的利用片上网络的并行性,提高了资源节点间的并行通信能力,大幅提升了片上网络的吞吐量,减少了资源节点数据传输时间,同时使得每个资源节点在流模式下进行双目运算,提高了资源节点运算效率。
Claims (4)
1.一种基于Torus网络的双接入结构,其特征是,所述Torus网络包括若干个路由节点、若干个资源节点和若干条路由通道;
任意一个路由节点具有两个本地接口,两个本地接口分别连接两个对角线方向上的资源节点,任意一个资源节点以对角线的方式接入到两个路由节点上,任意两个相邻的路由节点通过所述路由通道相连接,任意行和任意列首尾的两个路由节点通过所述路由通道连接,从而形成所述Torus网络的双接入结构。
2.一种基于Torus网络的双接入结构,其特征是,所述路由节点的组成包括:输入状态机模块、优先级编码器模块、译码器模块、仲裁器模块、交叉开关模块和输出状态机模块;
所述输入状态机模块用于控制数据有序输入,并由四个方向上的输入状态机和两个对角线方向上的输入状态机组成,包括:东向输入状态机、西向输入状态机、北向输入状态机、南向输入状态机、本地0方向输入状态机和本地1方向输入状态机;
任意一个输入状态机的工作状态包括:空闲状态F_IDLE、请求状态F_REQ、预锁定状态F_PRELOCK、锁定状态F_LOCK和失败状态F_FAIL
任意一个输入状态机的初始状态为空闲状态F_IDLE;
所述输出状态机模块用于控制数据有序输出,并由四个方向上的输出状态机和两个对角线方向上的输出状态机组成,包括:东向输出状态机、西向输出状态机、北向输出状态机、南向输出状态机、本地0方向输出状态机和本地1方向输出状态机;
任意一个输出状态机的工作状态包括:空闲状态F_IDLE和锁定状态F_LOCK;
任意一个输出状态机的初始状态为空闲状态F_IDLE;
所述优先级编码器模块用于根据所设定的优先级顺序控制路由请求的处理顺序;
所述译码器模块用于根据输入的路由请求产生数据传输的路由方向;
所述仲裁器模块用于判断所产生的路由方向在相应的输出状态机上是否被占据;若被占据,则向所述输入状态机模块返回“拒绝分配”信号,若不被占据,则向所述输入状态机模块返回“允许分配”信号,并向所述交叉开关模块发送connection互连信号;
所述交叉开关模块根据connection互连信号实现相应输入状态机与相应输出状态机的互联。
3.一种基于Torus网络的双接入结构的工作方式,其特征是应用于任意两个资源节点之间数据进行传输的过程中;所传输的数据包括:路由包、数据包和结束包;所述路由包包含目的节点地址;定义发送所述路由包的资源节点为请求方源节点,接收所述路由包的资源节点为目的节点;根据所传输的数据沿着所经过路由节点的顺序,定义数据当前所经过的路由节点为当前节点,则数据所经过的上一个路由节点为上游节点,数据将要经过的下一个路由节点为下游节点;
以所述Torus网络的任一顶点上的路由节点为原点O,与所述顶点上的路由节点相连的两条互连的路由通道分别为X轴和Y轴,建立坐标系OXY;并以X轴正方向为东向,以X轴的负方向为西向,以Y轴的正方向为北向,以Y轴的负方向为南向;则在所述坐标系OXY中的各个路由节点的位置坐标即为相应路由节点地址;
所述数据传输的过程是按如下步骤进行:
步骤1、所述请求方源节点向与其相连的路由节点的输入状态机模块发送路由请求和路由包,则接收到所述路由请求和路由包的路由节点变为当前节点;
步骤2、所述当前节点的输入状态机模块接收到所述路由包和路由请求;则所述当前节点在所接收方向上的输入状态机的工作状态由空闲状态F_IDLE跳转到请求状态F_REQ;所述接收方向上的输入状态机将路由请求以及路由包中的目的节点地址发送到所述优先级编码器模块;
步骤3、所述当前节点的优先级编码器模块接收到所述路由请求,并根据所设定的优先级顺序处理来自不同方向上的路由请求;从而选出最高优先级的路由请求,并用select信号表示;再将所述select信号及其所对应的路由包中的目的节点地址发送到译码器模块;
步骤4、所述当前节点的译码器模块根据所接收的select信号,根据目的节点切换方法将所述select信号所对应方向的路由包中的目的节点地址与所述当前节点地址进行比较,从而产生可能的路由方向,并用dest信号表示;再将dest信号和select信号发送给仲裁器模块;
步骤5、所述仲裁器模块接收到所述select信号和dest信号后,根据优先级从高到低的顺序依次判断dest信号中对应方向上的输出状态机的工作状态是否为空闲状态F_IDLE;若为空闲状态F_IDLE,则向所述当前节点的向对应方向上的输入状态机返回“允许分配”信号,向所述交叉开关模块发送connection互连信号;同时向对应方向上的输出状态机发送“占用”信号,若不为空闲状态F_IDLE,则向对应方向上的输入状态机返回“拒绝分配”信号;
步骤6、所述对应方向上的输入状态机若接收到所述“允许分配”信号;则对应方向上的输入状态机的工作状态由所述请求状态F_REQ跳转到预锁定状态F_PRELOCK;
所述当前节点的交叉开关模块根据所接收到所述connection互连信号将相应输入状态机与对应的输出状态机进行互连;
所述对应方向上的输出状态机根据所接收的“占用”信号由所述空闲状态F_IDLE跳转到锁定状态F_LOCK,并产生一个新的路由请求;
同时,所述对应方向上的输入状态机将所述路由包通过所述交叉开关发送到对应方向上的输出状态机;并执行步骤10;
所述对应方向上的输入状态机若接收到所述“拒绝分配”信号,则对应方向上的输入状态机的工作状态由所述请求状态F_REQ跳转到失败状态F_FAIL;并向上游节点的对应方向上输出状态机模块发送“路由失败”信号后,再由失败状态F_FAIL跳转到空闲状态F_IDLE,并执行步骤7;
步骤7、所述上游节点对应方向上的输出状态机接收到“路由失败”信号由所述锁定状态F_LOCK跳转到空闲状态F_IDLE,同时将“路由失败”传输到所述上游节点对应方向上的输入状态机;
步骤8、所述上游节点对应方向上的输入状态机根据接收到“路由失败”信号由所述预锁定状态F_PRELOCK跳转到所述失败状态F_FAIL,同时返回“路由失败”信号至所述上游节点的上游后,再由失败状态F_FAIL跳转到空闲状态F_IDLE,直到所述“路由失败”信号返回到所述请求方源节点为止;
步骤9、所述请求方源节点接收到“路由失败”信号后,返回执行步骤1;
步骤10、所述对应方向上的输出状态机将新的路由请求以及接收到的路由包发送到下游节点或所述目的节点;
步骤11、判断所述当前节点是否为与目的节点相连的路由节点,若为与所述目的节点相连的路由节点,则执行步骤12;否则,所述当前节点变为上游节点,与接收到所述“占用”信号的输出状态机相连的下游节点变为当前节点,并返回步骤2执行;
步骤12、所述目的节点接收到新的路由请求和路由包后,产生“通道锁定”信号并返回到与所述目的节点相连的路由节点相应方向上的输出状态机;
步骤13、接收到所述“通道锁定”信号的路由节点对应方向上的输出状态机将所述“通道锁定”通过交叉开关模块返回到所述对应方向上的输入状态机;
步骤14、接收到所述“通道锁定”信号的对应方向上的输入状态机的工作状态由所述预锁定状态F_PRELOCK跳转到锁定状态F_LOCK,同时将“通道锁定”传输到对应方向上的上游节点输出状态机;直到所述“通道锁定”信号返回到所述请求方源节点为止;
步骤15、所述请求方源节点接收到“通道锁定”后,表示从所述请求方源节点到所述目的节点间的数据传输通道建立完成,所述请求方源节点将数据包通过所述数据传输通道传输到所述目的节点;
步骤16、所述请求方源节点发送完数据包后,再发送结束包;
步骤17、当所述目的节点接收到结束包后产生“通道撤销”信号并返回到与所述目的节点相连的输出状态机;
步骤18、与所述目的节点相连的相应方向上的输出状态机接收到“通道撤销”信号将工作状态从锁定状态F_LOCK跳转到空闲状态F_IDLE,同时通过所述交叉开关模块将“通道撤销”信号发送到对应方向的输入状态机;
步骤19、所述当前节点对应方向上的输入状态机若接收到“通道撤销”信号;则对应方向上的输入状态机的工作状态由所述锁定状态F_LOCK跳转到空闲状态F_IDLE;同时返回“通道撤销”信号至所述上游节点的对应方向上的输出状态机后,直到所述“通道撤销”信号返回到所述请求方源节点为止;
步骤20、所述请求方源节点接收到“通道撤销”信号后,表示所述请求方源节点与所述目的节点之间的数据传输通道已撤销,且数据传输已完成。
4.根据权利要求3所述的基于Torus网络的双接入结构的工作方式,其特征是,所述目的节点切换方法为:
任意一个路由节点具有两个位置坐标;包括一级坐标和二级坐标;
在所述坐标系OXY中,假设当前路由节点的一级坐标为(x1,y1)、二级坐标为(x2,y2);则与所述当前路由节点在本地0方向上相连接的资源节点的位置坐标为(x1,y1);与所述当前路由节点在本地1方向上相连接的资源节点的位置坐标为(x2,y2);假设目的节点的位置坐标为(x,y);则按如下方式产生可能的路由方向:
当x>x1时,则路由请求可能的路由方向为东向;
当x<x1-1时,则路由请求可能的路由方向为西向;
当y>y1时,则当前请求可能的路由方向为南向;
当y<y1-1时,则当前路由请求可能的方向为北向;
当x=x1且y=y1-1时,
若路由请求来自南向,则可能的路由方向为东向和北向;
若路由请求来自西向,则可能的路由方向为东向和北向;
若路由请求来自东向,则可能的路由方向为北向;
若路由请求来自北向,则可能的路由方向为东向;
当x=x1-1且y=y1时,
若路由请求来自东向,则可能的路由方向为南向和西向;
若路由请求来自北向,则可能的路由方向为南向和西向;
若路由请求来自南向,则可能的路由方向为西向;
若路由请求来自西向,则可能的路由方向为南向;
当x=x1且y=y1时,
若路由请求来自东向,则可能的路由方向为本地0方向和南向;
若路由请求来自南向,则可能的路由方向为本地0方向和东向;
若路由请求来自西向,则可能的路由方向为本地0方向、东向和南向;
若路由请求来自北向,则可能的路由方向为本地0方向、东向和南向;
当x=x2且y=y2时,
若路由请求来自东向,则可能的路由方向为本地1方向、北向和西向;
若路由请求来自南向,则可能的路由方向为本地1方向、北向和西向;
若路由请求来自西向,则可能的路由方向为本地1方向和北向;
若路由请求来自北向,则可能的路由方向为本地1方向和西向。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510981455.0A CN105530206B (zh) | 2015-12-22 | 2015-12-22 | 一种具有双接入结构的Torus网络系统及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510981455.0A CN105530206B (zh) | 2015-12-22 | 2015-12-22 | 一种具有双接入结构的Torus网络系统及其工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105530206A true CN105530206A (zh) | 2016-04-27 |
CN105530206B CN105530206B (zh) | 2019-01-29 |
Family
ID=55772196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510981455.0A Active CN105530206B (zh) | 2015-12-22 | 2015-12-22 | 一种具有双接入结构的Torus网络系统及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105530206B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953853A (zh) * | 2017-03-10 | 2017-07-14 | 桂林电子科技大学 | 一种片上网络千兆以太网资源节点及其工作方法 |
CN107018071A (zh) * | 2017-03-29 | 2017-08-04 | 合肥工业大学 | 一种基于“包‑电路”交换技术的路由模式切换配置器 |
CN107770018A (zh) * | 2016-08-18 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 用于串行通信系统的通信方法及设备 |
CN110505168A (zh) * | 2019-08-22 | 2019-11-26 | 合肥工业大学 | 一种ni接口控制器及数据传输方法 |
CN112613266A (zh) * | 2020-12-02 | 2021-04-06 | 海光信息技术股份有限公司 | 一种片上网络拓扑结构、路由路径确定方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787478A (zh) * | 2004-12-09 | 2006-06-14 | 电子科技大学 | 一种多维交换结构中的无死锁自适应路由方法 |
CN102170402A (zh) * | 2011-05-31 | 2011-08-31 | 清华大学 | Torus网络中的无死锁自适应路由算法 |
CN104104736A (zh) * | 2014-08-06 | 2014-10-15 | 曙光信息产业(北京)有限公司 | 一种云服务器及其使用方法 |
-
2015
- 2015-12-22 CN CN201510981455.0A patent/CN105530206B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787478A (zh) * | 2004-12-09 | 2006-06-14 | 电子科技大学 | 一种多维交换结构中的无死锁自适应路由方法 |
CN102170402A (zh) * | 2011-05-31 | 2011-08-31 | 清华大学 | Torus网络中的无死锁自适应路由算法 |
CN104104736A (zh) * | 2014-08-06 | 2014-10-15 | 曙光信息产业(北京)有限公司 | 一种云服务器及其使用方法 |
Non-Patent Citations (2)
Title |
---|
DUOLI ZHANG等: "Design and Implementation of Dual-port Network on Chip", 《12TH IEEE INTERNATIONAL CONFERENCE ON SOLID STATE AND INTEGRATED CIRCUIT TECHNOLOGY (ICSICT)》 * |
欧阳一鸣等: "基于双端口RNI的容错NoC", 《计算机工程》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107770018A (zh) * | 2016-08-18 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 用于串行通信系统的通信方法及设备 |
CN106953853A (zh) * | 2017-03-10 | 2017-07-14 | 桂林电子科技大学 | 一种片上网络千兆以太网资源节点及其工作方法 |
CN106953853B (zh) * | 2017-03-10 | 2020-12-04 | 桂林电子科技大学 | 一种片上网络千兆以太网资源节点及其工作方法 |
CN107018071A (zh) * | 2017-03-29 | 2017-08-04 | 合肥工业大学 | 一种基于“包‑电路”交换技术的路由模式切换配置器 |
CN107018071B (zh) * | 2017-03-29 | 2020-05-12 | 合肥工业大学 | 一种基于“包-电路”交换技术的路由模式切换配置器 |
CN110505168A (zh) * | 2019-08-22 | 2019-11-26 | 合肥工业大学 | 一种ni接口控制器及数据传输方法 |
CN112613266A (zh) * | 2020-12-02 | 2021-04-06 | 海光信息技术股份有限公司 | 一种片上网络拓扑结构、路由路径确定方法、装置及电子设备 |
CN112613266B (zh) * | 2020-12-02 | 2023-01-31 | 海光信息技术股份有限公司 | 具有网络拓扑结构的片上系统、路由路径确定方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105530206B (zh) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105530206A (zh) | 一种基于Torus网络的双接入结构及其工作方式 | |
CN103986664B (zh) | 一种用于片上网络的混合互连Mesh拓扑结构及其路由算法 | |
CN105450555B (zh) | 一种片上网络系统,及片上网络通信链路的建立方法 | |
CN1322452C (zh) | 环形和树形网络中的算术函数 | |
CN105007226B (zh) | 一种基于包电路交换技术的多播路由器及其工作方式 | |
CN101834789B (zh) | 面向包-电路交换片上路由器的回退转向路由算法及所用路由器 | |
CN101778049A (zh) | 包-电路交换片上路由器及其传输方法 | |
Agrawal et al. | Simulation of network on chip for 3D router architecture | |
CN102413039B (zh) | 实现光片上网络的低阻塞通信路由器及通信方法 | |
CN104794100A (zh) | 基于片上网络的异构多核处理系统 | |
CN104158738A (zh) | 一种低缓冲区片上网络路由器及路由方法 | |
KR20140139032A (ko) | 패킷플로우 상호연결 패브릭 | |
CN102780628B (zh) | 面向多核微处理器的片上互连网络路由方法 | |
CN105871730B (zh) | 基于网络编码的片上网络路由器 | |
CN103729331A (zh) | 片上网络通信死锁避免方法、路由器及通信网络 | |
EP3226490B1 (en) | Optical network-on-chip, optical router and signal transmission method | |
US20180302293A1 (en) | Generation of network-on-chip layout based on user specified topological constraints | |
CN102546417B (zh) | 基于网络信息的片上网络路由器调度方法 | |
CN104683242B (zh) | 一种二维片上网络的拓扑结构以及路由方法 | |
CN104486221A (zh) | 一种基于二维网格片上网络的双接入结构 | |
US10547514B2 (en) | Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation | |
Lit et al. | Comparative performance evaluation of routing algorithm and topology size for wireless network-on-chip | |
CN105844014B (zh) | 基于芯片设计流程和应用设计流程的片上网络编码优化方法 | |
US20120170488A1 (en) | Modified tree-based multicast routing schema | |
Lusala et al. | Combining SDM-Based circuit switching with packet switching in a router for on-chip 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |