CN104486221A - 一种基于二维网格片上网络的双接入结构 - Google Patents
一种基于二维网格片上网络的双接入结构 Download PDFInfo
- Publication number
- CN104486221A CN104486221A CN201410768220.9A CN201410768220A CN104486221A CN 104486221 A CN104486221 A CN 104486221A CN 201410768220 A CN201410768220 A CN 201410768220A CN 104486221 A CN104486221 A CN 104486221A
- Authority
- CN
- China
- Prior art keywords
- node
- signal
- priority
- route
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于二维网格的片上网络的双接入结构,其特征是:任意一个路由节点可以连接两个资源节点,任意一个路由节点可以同时传输两路数据到达与其相连接的两个资源节点,同时任意一个资源节连接两个路由节点,可以同时通过两个路由节点传输两路数据至片上网络,这两路数据通过片上网路中的路由节点最终传输至目的资源节点。本发明能让每个资源节点同时接收或发送两路数据,大幅度提升片上网络吞吐量,减少资源节点间数据传输时间,同时使得每个资源节点可以在流模式下进行双目运算,减少资源节点的运算时间,达到提高片上资源节点运算效率的目的。
Description
技术领域
本发明涉及一种基于二维网格片上网络的双接入设计,属于片上网络领域。
背景技术
相较于传统单核系统,多核系统具有计算能力强,功耗低等优点。片内多核并行既给系统带来了极其强大的运算能力,同时也给片上通讯技术带来了高吞吐量,高并行的挑战。因此片上网络技术应运而生,成为解决多核系统片上通讯的最佳方案。随着片上网络技术的发展,研究者们提出了各式各样的网络拓扑结构。
2D-mesh网络拓扑由于其结构简单,可拓展性好,便于实现和分析,因此在片上网络领域得到了广泛的应用。如图1所示,由于传统的2D-mesh的路由节点都只能接入一个运算单元或存储单元,这样当运算单元在处理双目运算时,就很大程度的降低了处理运算的速度,影响多核系统的运行效率。因此传统的2D-mesh应用已经不能满足如今高速系统对网络中数据的高并行高吞吐的需求。因此如何高并行度和吞吐量成为片上网络设计的关键问题。
发明内容
本发明为克服现有技术存在的不足之处,提出了一种基于二维网格片上网络的双接入结构,使得网络中的每个路由节点能同时发送两路数据至于其相连接的资源节点,每个资源节点可以通过与其相连接的两个路由节点同时收或者发两路数据,从而能提高网络的吞吐量和并行度,实现资源节点的双目流工作方式,进而提高片上网络系统的运算速度。
本发明为达到上述目的所采用的技术方案是:
本发明一种基于二维网格的片上网络的双接入结构的特点是,所述片上网络包括:若干个路由节点、若干个资源节点和若干条路由通道;任意一个资源节点能通过所述路由通道连接在两个相邻的路由节点上,一个路由节点能通过所述路由通道同时与两个不同的资源节点相连;任意两个相邻的路由节点通过所述路由通道相邻接;由所述邻接的路由节点形成二维网格;并在每个路由节点上挂接第一资源节点和第二资源节点,且所述资源节点所连接的两个路由节点在同一维度上;以所述二维网格任一顶点上的路由节点为原点O,与所述顶点上的路由节点相通连的两条路由通道分别X轴和Y轴,建立坐标系OXY;并以X轴的正方向为E方向,以X轴的负方向为W方向,以Y轴的正方向为N方向,以Y轴的负方向为S方向;
当任意两个路由节点进行通信时,定义发送路由包的资源节点为请求方节点,接收所述路由包的资源节点为目的方节点;所述路由包沿着所经过的路由节点的顺序,定义所经过的任意一个路由节点均是以上一个路由节点为上游节点,以下一个路由节点为下游节点的当前路由节点;
所述路由节点的组成包括:输入状态机模块,优先级编码器模块,地址译码器模块,仲裁器模块,交叉开关模块和输出状态机模块;所述输入状态机模块包括地址寄存器;
所述输入状态机模块的工作状态包括:空闲状态IDLE、请求状态REQ、半锁定状态PRELOCK、锁定状态LOCK和失败状态FAIL;所述输入状态机的初始状态为所述空闲状态IDLE;
当请求方节点向目的方节点发送路由请求时,所述路由请求包括请求路由stb信号,数据Pcc_data信号和数据有效Fwd信号,并通过所述数据Pcc_data信号发送包含目的地址(x,y)的路由包;所述路由请求依次经过连接所述请求方节点和目的方节点的各路由节点;若在所述路由通道上所经过的当前路由节点的输入状态机接收到上游节点发送的请求路由stb信号为高电平,则所述当前路由节点的输入状态机模块的工作状态由初始的空闲状态IDLE变为请求状态REQ并将所述路由包中包含的目的地址(x,y)存入所述地址寄存器中;在请求状态REQ下,所述输入状态机模块向所述优先级编码器模块转发请求路由stb信号;并将所述目的地址(x,y)发送给所述地址译码器模块;
若所述当前路由节点的输入状态机模块接收到所述仲裁器模块返回的无法分配Deny信号,则所述输入状态机模块的工作状态由请求状态REQ变为失败状态FAIL并向上游节点的输出状态机模块发送路由失败Fail信号;所述上游节点接收到所述路由失败fail信号后将所述请求路由stb信号变为低电平,从而取消路由请求,所述当前路由节点的输入状态机由失败状态FAIL变为空闲状态IDLE;
若所述当前路由节点的输入状态机模块接收到所述当前路由节点的仲裁器模块返回的已分配Grant信号,则所述当前路由节点的输入状态机模块的工作状态由请求状态REQ变为半锁定状态PRELOCK并等待下游节点返回的路由成功Pack信号;
若所述当前路由节点的输入状态机模块接收到当前路由节点的交叉开关模块返回的路由成功Pack信号;则所述当前路由节点的输入状态机模块的工作状态由半锁定状态PRELOCK变为锁定状态LOCK并向上游节点转发所述路由成功Pack信号;所述上游节点接收并依次传递所述路由成功Pack信至请求方节点,由此建立一条通过各路由节点连接所述请求方节点和目的方节点的通讯链路,当所述请求方接收到所述路由成功Pack信号后,将所述数据有效Fwd信号变为高电平,并利用所述数据Pcc_data信号通过所述通讯链路将数据包发送至目的方节点;所述目的方节点接收完所述数据包后,通过所述通讯链路返回取消链路Cancel信号至请求方节点;所述当前路由节点通过自身的输出状态机模块接收到所述取消链路Cancel信号时,所述当前路由节点的输入状态机模块的工作状态由锁定状态LOCK变为空闲状态IDLE;所述请求方节点接收到所述取消链路Cancel信号后,将所述请求路由stb信号变为低电平以及数据有效Fwd信号变为低电平,从而取消所述通讯链路;
所述当前路由节点的优先级编码器接收上游节点的路由请求以及与所述当前路由节点相连的第一资源节点和第二资源节点的路由请求时,则根据所定义的优先级顺序获得路由权,所述优先级顺序为:定义第一资源节点没有优先级,则所述第一资源节点在请求时能立即获得路由权,定义第二资源节点的优先级高于上游节点,且所述上游节点的优先级不同;所述路由权以六位的选择select信号表示,并通过所述优先级编码器传输至所述当前路由节点的地址译码器模块;所述六位选择select信号的每一位通过“1”和“0”分别表示所述上游节点的路由请求和资源节点的路由请求是否获得路由权;
所述当前路由节点的地址译码器模块包含第一地址和第二地址、有优先级译码模块和无优先级译码模块;所述第一地址和第二地址分别为与所述当前路由节点相连的第一资源节点的位置坐标(x1,y1)和第二资源节点的位置坐标(x2,y2);所述第一资源节点相对于所述当前路由节点的方向为L1方向,所述第二资源节点相对于所述当前路由方向为L2方向;所述地址译码器模块将所接收的选择select信号转发至所述当前路由节点的仲裁器模块,当选择select信号中表示所述第二资源节点的路由请求或上游节点的路由请求获得路由权时,则所述有优先级地址译码器模块寄存所述第二资源节点的路由包中的目的地址(x,y)或上游节点的路由包中的目的地址(x,y)并对所述目的地址(x,y)进行译码,获得的译码结果以六位的有优先级目的方向Dest1信号表示并传递给所述当前路由节点的仲裁器模块进行仲裁;当选择select信号中表示所述第一资源节点的路由请求获得路有权时,则所述无优先级地址译码器模块寄存所述第一资源节点的路由包中的目的地址(x,y)并对所述目的地址进行译码,获得的译码结果以六位的无优先级目的方向Dest2信号表示并传递给所述当前路由节点的仲裁器模块进行仲裁;所述六位的有优先级目的方向Dest1信号和六位的无优先级目的方向Dest2信号的每一位分别表示目的地址相对于所述当前路由节点为L1方向、L2方向、E方向、N方向、W方向和S方向;所述地址译码器模块根据所述第一地址的位置坐标(x1,y1)和第二地址的位置坐标(x2,y2)对目的地址(x,y)根据情况一或情况二进行译码;
所述当前路由节点的仲裁器模块接收所述选择select信号、有优先级目的方向Dest1信号和无优先级目的方向Dest2信号;并根据XY优先级顺序对目标地址进行路由通道分配,分配的结果用36位的连接connection信号表示;
所述连接connection信号以每隔六位分别表示目的地址(X,Y)相对所述当前路由节点的方向为L1方向、L2方向、E方向、N方向、W方向和S方向;所述每隔六位中的每一位表示上游节点和第一资源节点和第二资源节点相对于所述当前路由节点的方向为L1方向、L2方向、E方向、N方向、W方向和S方向;当所述连接connection信号有一位变为高电平,则表示变为高电平的一位所代表方向上的路由通道被占据,并以六位的占据occupied信号表示;所述六位占据occupied信号的每一位通过“1”和“0”分别表示所述目的地址(X,Y)相对于所述当前路由节点方向的路由通道是否被占据;所述当前路由节点的仲裁器模块将所述占据occupied信号传递给所述当前路由节点的输出状态机模块;
当所述路由通道分配结束后,所述当前路由节点的仲裁器模块将所述连接connection信号传输至所述当前路由节点的交叉开关模块,并将所述占据occupied信号送入所述当前路由节点的输出状态机模块;
所述当前路由节点的仲裁器模块在进行路由通道分配前,将所述选择select信号通过一级缓存获得仲裁选择select_r信号,所述选择select信号表示所述当前路由节点的仲裁器模块在进行路由通道分配时的路由权,所述仲裁选择select_r表示所述当前路由节点的仲裁器模块在进行上一次路由通道分配时的路由权;
若所述选择select信号中表示所述第一资源节点的当前路由权与所述仲裁选择select_r信号中表示第一资源节点的上一次路由权不同时,用无优先级路由权变化select_change0信号表示;
若所述选择select信号中表示第二资源节点或上游节点的当前路由权与所述仲裁选择select_r信号中表示第二资源节或上游节点的上一次路由权不同时,用有优先级路由权变化select_change1信号表示;
若所述无优先级路由权变化select_change0信号和所述有优先级路由权变化select_change1信号同时变为高电平时,则用路由权同时变化select_change2信号表示;
所述仲裁器模块根据所述无优先级路由权变化select_change0信号、有优先级路由权变化select_change1信号和路由权同时变化select_change2信号,对获得路有权的上游节点或资源节点的请求按方式a或方式b进行路由通道的分配;
用6位的已分配grant信号和未分配deny信号表示是否分配了通道,所述已分配grant信号和未分配deny信号中每一位对应所述当前路由节点上游节点和资源节点的方向;通道分配结束后向被授权仲裁且成功分配通道的请求方向的输入状态机反馈已分配grant信号,向被授权仲裁但没有分配通道的请求方向的输入状态机反馈未分配deny信号;如果所述仲裁器模块接受到下游节点返回的失败fail信号或者取消cancel信号,则将所述connection信号中代表所述下游节点方向的6位信号全部拉低;同时接受到失败fail信号时,根据connection信号向上游节点和资源节点返回deny信号;
所述交叉开关模块包含3个的交叉开关分别为交叉开关0,交叉开关1,交叉开关2,所述3个交叉开关均接6个所述输入状态机模块和6个所述输出状态机,所述交叉开关0根据所述connection信号将6个所述输入状态机模块各自的数据Pcc_data信号传输至6个所述输出状态机模块;所述交叉开关1根据所述connection信号将6个所述输入状态机模块各自的数据有效fwd信号传输至6个所述输出状态机模块;所述交叉开关2根据所述connection信号将6个所述输出状态机模块各自的路由成功Pack信号和取消链路Cancel信号传输至6个所述输入状态机模块;
所述输出状态机模块的工作状态包括:空闲态IDLE,锁定态LOCK;所述输出状态机的初始状态为所述空闲态IDLE;
当所述输出状态机模块所对应的所述占据occupied信号被拉高时,表示所述输出状态机已经被分配为一个路由请求的输出端口,所述输出状态机模块的工作状态由初始的空闲态IDLE变为锁定态LOCK;当所述输出状态机模块的工作状态为锁定态LOCK时,则拉高请求路由stb信号;同时将所述交叉开关模块传输过来的数据Pcc_data信号和数据有效fwd信号传输至与其相连接的下游节点或第一资源节点或第二资源节点的输入状态机模块;所述输出状态机接收到下游节点的输入状态机模块传输的取消链路Cancel信号或路由失败Fail信号时,工作状态由锁定态LOCK变为空闲态IDLE;并将下游节点的输入状态机返回的路由成功pack信号和取消链路Cancel信号传输至所述交叉开关模块;所述输出状态机模块还将下游节点返回的取消链路Cancel信号和路由失败Fail信号传输至所述仲裁器模块用于释放通讯链路。
本发明所述的基于二维网格的片上网络的双接入结构的特点也在于,
所述情况一为:当所有资源节点所连接的两个路由节点均在Y维上,则按照方式一或方式二进行译码:
所述方式一为:
当y1-y2=1,且x1=x2时;若X>X2;则判断目标地址(X,Y)的方向相对于所述当前路由节点为E方向,若X<X2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为W方向,若Y>Y2,则判断目的地址(X,Y)的方向相对于所述当前路由节点为N方向,若Y<Y2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为S方向;当目标地址(X,Y)与第一地址的位置坐标(X1,Y1)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L1方向和N方向;当目标地址(X,Y)与第二地址的位置坐标(X2,Y2)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L2方向和S方向;
所述方式二为:
当Y2-Y1=1,且X1=X2时;若X>X2;则判断目标地址(X,Y)的方向相对于所述当前路由节点为E方向,若X<X2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为W方向,若Y>Y2,则判断目的地址(X,Y)的方向相对于所述当前路由节点为N方向,若Y<Y2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为S方向;当目标地址(X,Y)与第一地址的位置坐标(X1,Y1)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L1方向和S方向;当目标地址(X,Y)与第二地址的位置坐标(X2,Y2)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L2方向和N方向;
所述情况二为:当所有资源节点所连接的两个路由节点均在X维上,则按照方式三或方式四进行译码:
所述方式三为:
当X1-X2=1,且Y1=Y2时;若X>X2;则判断目标地址(X,Y)的方向相对于所述当前路由节点为E方向,若X<X2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为W方向,若Y>Y2,则判断目的地址(X,Y)的方向相对于所述当前路由节点为N方向,若Y<Y2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为S方向;当目标地址(X,Y)与第一地址的位置坐标(X1,Y1)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L1方向和W方向;当目标地址(X,Y)与第二地址的位置坐标(X2,Y2)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L2方向和E方向;
所述方式四为:
当X2-X1=1,且Y1=Y2时;若X>X2;则判断目标地址(X,Y)的方向相对于所述当前路由节点为E方向,若X<X2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为W方向,若Y>Y2,则判断目的地址(X,Y)的方向相对于所述当前路由节点为N方向,若Y<Y2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为S方向;当目标地址(X,Y)与第一地址的位置坐标(X1,Y1)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L1方向和E方向;当目标地址(X,Y)与第二地址的位置坐标(X2,Y2)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L2方向和W方向。
所述XY优先级顺序为如下方式1和方式2:
所述方式1为:
所述第一资源节点和所述第二资源节点在进行路由通道分配时,若其中有一方优先分配X方向路由通道则另一方优先分配Y方向路由通道;若所述上游节点的路由请求来自X轴方向,则所述当前路由节点在进行路由通道分配时,优先分配X轴方向的路由通道;若所述上游节点的路由请求来自Y轴方向,则所述当前路由节点在进行通道分配时,优先分配Y轴方向的路由通道;
所述方式2为:
所述第一资源节点和所述第二资源节点在进行路由通道分配时,若其中有一方优先分配X方向路由通道则另一方优先分配Y方向路由通道;若所述上游节点的路由请求来自X轴方向,则所述当前路由节点在进行路由通道分配时,优先分配Y轴方向的路由通道;若所述上游节点的路由请求来自Y轴方向,则所述当前路由节点在进行通道分配时,优先分配X轴方向的路由通道。
所述方式a为:
若所述无优先级路由权变化select_change0变为高电平且所述路由权同时变化select_change2信号为低电平时,则检测所述选择select信号中表示第一资源节点的路由权是否获得路由权,对获得路由权的第一资源节点的路由请求,根据所述占据occupied信号和所述无优先级目的方向Dest2信号按照所述XY优先级顺序对第一资源节点所请求的目的地址(X,Y)进行路由通道分配;
若所述无优先级路由权变化select_change0变为高电平且所述路由权同时变化select_change2信号也变为高电平时,则根据所述占据occupied信号、所述有优先级目的方向Dest1信号和所述无优先级目的方向Dest2信号按照所述XY优先级顺序进行路由通道分配;若没有被占据的通道能够让第二资源节点或上游节点所请求的目的地址(X,Y)和第一资源节点所请求的目的地址(X,Y)进行同时分配,则同时进行分配;
如果没有被占据的通道不能够让有优先级的资源节点或路由节点的请求的目的地址和无优先级的资源节点请求的目的地址同时分配,则只为有优先级的资源节点或路由节点的请求的目的地址分配通道;若所述有优先级路由权变化select_change1信号变为高电平,则检测所述选择select信号中表示有优先级的资源节点或路由节点的路由权,若被授权就根据所述占据occupied信号和所述有优先级目的方向Dest1信号按照所述XY优先级顺序对有优先级的资源节点或路由节点的请求的目的地址进行通道分配;
所述方式b为:
若所述无优先级路由权变化select_change0变为高电平且所述路由权同时变化select_change2信号保持低电平,则检测所述选择select信号中表示当前无优先级的资源节点的路由权,若被授权就根据所述占据occupied信号和所述无优先级目的方向Dest2信号按照所述XY优先级顺序对无优先级的资源节点请求的目的地址进行通道分配;若所述有优先级路由权变化select_change1信号变为高电平,则检测所述选择select信号中表示有优先级的资源节点或路由节点的路由权,若被授权就根据所述占据occupied信号和所述有优先级目的方向Dest1信号按照所述XY优先级顺序对有优先级的资源节点或路由节点的请求的目的地址进行通道分配;若所述有优先级路由权变化select_change1变为高电平且所述路由权同时变化select_change2信号也变为高电平,则根据所述占据occupied信号和所述有优先级目的方向Dest1信号和所述无优先级目的方向Dest2信号按照所述XY优先级顺序进行通道分配;如果没有被占据的通道能够让有优先级的资源节点或路由节点请求的目的地址和无优先级的资源节点请求的目的地址同时分配通道,则同时进行分配;若果没有被占据的通道不能够让有优先级的资源节点或路由节点的请求的目的地址和无优先级的资源节点请求的目的地址同时分配,则只为无优先级的资源节点的请求的目的地址分配通道。
采用所述方式a或方式b的过程中是按如下步骤判定没有被占据的通道能否同时分配给两个请求:
步骤1、将有优先级目的方向dest1和无优先级目的方向dest2相或获得结果一;
步骤2、将占据occupied信号取反,与所述结果一进行相与获得6位的所有通道all_channel信号;
步骤3、统计所述所有通道all_channel信号中“1”的个数;若“1”的个数大于或等于2个,则表示未被占据的通道可能同时分配给两个请求;
步骤4、将占据occupied信号取反,分别与有优先级目的方向dest1信号和无优先级目的方向dest2信号相与获得结果三和结果四,如果结果三和结果四都含有“1”,则表示所述未被占据的通道可以同时分配给两个请求。
与现有技术相比,本发明的有益技术效果体现在:
1、本发明设计了一种基于2维网格(2D-mesh)的双接入片上网络,由于它的每个路由节点都连接两个资源节点,因此两个资源节点可以同时通过该路由节点向外发数据,从而提高了单个路由节点的吞吐量;同时又由于每个资源节点都连接两个路由节点,使得每个资源节点可以同时进入两路数据,进而使得资源节点在做双目运算时可以采用全流模式,提高了资源节点的运算速度,减少资源节点间数据传输时间;由此可见双接入片上网路在整体上提高了整个系统的运行效率。
2、本发明由于使用了优先级编码器模块,其优先级设计方式,使得每个通讯节点可以同对L1方向请求和L2,E,N,W,S五个方向请求中的一路请求总共两路进行授权译码和仲裁;这种结构设计使得每个通讯节点可以同时处理两个来自资源节点的请求,或者是一个来自资源节点一个来自上游路由节点的请求。
3、本发明由于使用了地址译码器模块,设计了一种适用于双接入的译码方式;该译码模块使用了两个译码模块,使得每个路由节点可以同时对两个已授权请求的目的地址进行译码;保证了两个资源节点可以同时使用同一个路由节点向外发送数据;同时在译码时采用了一种遍历方法,即在译码时判定目标地址为L1方向时同时判定目标地址在N方向,在判定目标地址为L2方向时同时判定目标地址在S方向;这样使得两路数据在同时进入一个资源节点时会遍历该资源节点所连接的两个路由节点;保证了网络上目的相同的两路数据可以通过遍历与目的节点相连接的两个路由节点使这两路数据可以同时到达同一个目的节点。
4、本发明由于使用了仲裁器模块,设计了一种适用于双接入的仲裁方式;该仲裁方式包括了路由权监控机制和特殊的优先级级设定;路由权监控机制通过对选择select信号的监控来区分请求的类型,避免了由于目的地址到达仲裁器模块的时间不同以及目的地址之间的竞争而产生输出路由通道的误分配或者是不能分配输出路由通道的情况;特殊的优先级设计在输出路由通道的分配过程中针对不同的请求为其优先分配某个方向的输出路由通道;使得当一个通讯节点在同时传输两路数据时,避免了这两路数据在传输过程中互相堵塞而导致不能同时到达目的节点的情况,进而使得两路数据都能安全的到达目的节点;进而实现一个通讯节点同时传输两路数据的目的。
附图说明
图1位传统的2D-mesh网络的结构示意图;
图2为本发明实施例中4x4双端口网络的结构示意图;
图3为本发明实施例中单个路由节点的结构图;
图4为本发明实施例中路由节点和资源节点之间的方位示意图;
图5为本发明实施例中适用于双接入的译码方式示意图;
图6为本发明仲裁器中connection信号的低6位示意图;
图7为本发明仲裁器中路由权监控方式a示意图;
图8为本发明仲裁器中路由权监控方式b示意图;
图9为本发明单个方向路由请求处理流程示意图。
具体实施方式
本实施例中,片上网络包括:若干个路由节点、若干个资源节点和若干条路由通道;任意一个资源节点能通过路由通道连接在两个相邻的路由节点上,一个路由节点能通过路由通道同时与两个不同的资源节点相连;任意两个相邻的路由节点通过路由通道相邻接;由邻接的路由节点形成二维网格;并在每个路由节点上挂接第一资源节点和第二资源节点,且资源节点所连接的两个路由节点在同一维度上;以二维网格任一顶点上的路由节点为原点O,与顶点上的路由节点相通连的两条路由通道分别X轴和Y轴,建立坐标系OXY;并以X轴的正方向为E方向,以X轴的负方向为W方向,以Y轴的正方向为N方向,以Y轴的负方向为S方向;如图2所示,在本实施例中设计了一个4X4的双接入片上网络,其中方块代表路由节点,圆圈代表资源节点;同时根据所建立的坐标系为每个路由节点和资源节点规定对应的坐标。如图4所示,每个路由节点都有六个方向,其中E,N,W,S四个方向连接的是路由节点,L1方向连接的是第一资源节点,L2方向连接的是第二资源节点。
在本实施例中,当任意两个路由节点进行通信时,定义发送路由包的资源节点为请求方节点,由该资源节点首先发送路由请求包至于其连接的路由节点,该路由请求包经过路由节点的路由会在片上网络上形成一条到达连接目的资源节点的路由节点的路由通路,接收路由包的资源节点为目的方节点;路由包沿着所经过的路由节点的顺序,定义所经过的任意一个路由节点均是以上一个路由节点为上游节点,以下一个路由节点为下游节点的当前路由节点;当路由请求包将从请求方节点到目的方节点的路由通路建立后,请求方节点通过该路由通路向目的方节点发送有效数据,待数据发送完毕后由目的方节点通过路由通路逐级返回链路撤销信号,从而将已建立的路由通路取消掉,一次通信完毕。
如图3所示,路由节点的组成包括:6个输入状态机模块,优先级编码器模块,地址译码器模块,仲裁器模块,交叉开关模块和6个输出状态机模块;输入状态机模块包括地址寄存器;
输入状态机模块的工作状态包括:空闲状态IDLE、请求状态REQ、半锁定状态PRELOCK、锁定状态LOCK和失败状态FAIL;输入状态机的初始状态为空闲状态IDLE;
当请求方节点向目的方节点发送路由请求时,路由请求包括请求路由stb信号,数据Pcc_data信号和数据有效Fwd信号,并通过数据Pcc_data信号发送包含目的地址(x,y)的路由包;此时路由请求中请求路由stb信号拉高,数据Pcc_data信号传输的是路由包,数据有效fwd信号拉低标志此时传输的并非有效数据;路由请求依次经过连接请求方节点和目的方节点的各路由节点;若在路由通道上所经过的当前路由节点的输入状态机接收到上游节点发送的请求路由stb信号为高电平,则当前路由节点的输入状态机模块的工作状态由初始的空闲状态IDLE变为请求状态REQ并将路由包中包含的目的地址(x,y)存入地址寄存器中;在请求状态REQ下,输入状态机模块向优先级编码器模块转发请求路由stb信号;并将目的地址(x,y)发送给地址译码器模块;
若当前路由节点的输入状态机模块接收到仲裁器模块返回的无法分配Deny信号,则输入状态机模块的工作状态由请求状态REQ变为失败状态FAIL并向上游节点的输出状态机模块发送路由失败Fail信号;上游节点接收到路由失败fail信号后将请求路由stb信号变为低电平,从而取消路由请求,当前路由节点的输入状态机由失败状态FAIL变为空闲状态IDLE;路由失败Fail信号通过请求方节点与当前路由节点建立的半锁定路由通道逐级返回直至请求方节点,并逐级将这条半锁定路由通路撤销掉,当请求方节点接受到路由失败Fail信号后会拉低路由请求stb信号,在等待若干个周期后再次拉高请求路由stb信号,再次发送路由请求。
若当前路由节点的输入状态机模块接收到当前路由节点的仲裁器模块返回的已分配Grant信号,则当前路由节点的输入状态机模块的工作状态由请求状态REQ变为半锁定状态PRELOCK并等待下游节点返回的路由成功Pack信号;至此当前路由节点与请求方节点之间已经建立了一条半锁定链路。
若当前路由节点的输入状态机模块接收到当前路由节点的交叉开关模块返回的路由成功Pack信号;交叉开关模块返回的路由成功Pack信号是由下游节点或目的节点返回至当前路由节点的输出状态机模块,再通过输出状态机模块发送至交叉开关模块的;则当前路由节点的输入状态机模块的工作状态由半锁定状态PRELOCK变为锁定状态LOCK并向上游节点转发路由成功Pack信号;上游节点接收并通过之前建立的半锁定路依次传递路由成功Pack信至请求方节点,将之前建立的半锁定路由通路全部变为锁定路由通路,由此建立一条通过各路由节点连接请求方节点和目的方节点的通讯链路,当请求方接收到路由成功Pack信号后,将数据有效Fwd信号变为高电平,此时路由请求包中请求路由stb信号和数据有效fwd信号同时拉高,并利用数据Pcc_data信号通过通讯链路将数据包发送至目的方节点;目的方节点接收完数据包后,数据包中包括尾包,尾包标志数据传输完毕,当目的节点接收到尾包后通过通讯链路返回取消链路Cancel信号至请求方节点;当前路由节点通过自身的输出状态机模块接收到取消链路Cancel信号时,取消链路Cancel信号通过交叉开关模块发送至对应的输入状态机模块,当前路由节点的输入状态机模块的工作状态由锁定状态LOCK变为空闲状态IDLE;请求方节点接收到取消链路Cancel信号后,将请求路由stb信号变为低电平以及数据有效Fwd信号变为低电平,从而取消通讯链路;
如图4所示,由于每个路由节点连接六个方向,分别为East,North,West,South四个方向的路由节点和L1,L2方向的资源节点。所以在进行路由时必须设定一定的优先级防止各个方向的请求在同一时刻到来时发生竞争,所谓的优先级为当有多个方向同时请求时只给优先级高的请求路由权;当前路由节点的优先级编码器接收上游节点(上游节点指的是来自East,North,West,South方向的路由节点)的路由请求以及与当前路由节点相连的第一资源节点(L1方向的资源节点)和第二资源节点(L2方向的资源节点)的路由请求时,则根据所定义的优先级顺序获得路由权,优先级顺序为:定义第一资源节点没有优先级,则第一资源节点在请求时能立即获得路由权,定义第二资源节点的优先级高于上游节点,且上游节点的优先级不同,本实施例中,优先级设定为L2>East>North>West>South;这样的优先级设计能保证每个路由节点在某一时刻可以同时让两个方向的请求获得路由请求,L1方向的请求和L2,East,North,West,South中一个方向的请求,路由权以六位的选择select信号表示,并通过优先级编码器传输至当前路由节点的地址译码器模块;六位选择select信号的每一位通过“1”和“0”分别表示上游节点的路由请求和资源节点的路由请求是否获得路由权,本实施例中,select信号从第0位到第5位分别表示L1,L2,East,North,West,South方向,用1来表示获得路由权;
译码器模块接受从6个输入状态机传输过来的目的地址,根据优先级编码器的编码结果对获得路由权的方向传过来的目的地址进行译码;由于每个路由节点会连接至两个资源节点,为了让数据能通过一个路由节点分别到达与它连接两个资源节点则译码模块因该有两个地址分别表示与其相连接的两个资源节点同时又由于优先级编码器可能同时让两个方向的请求同时获得路由权,因此译码器模块也因包含两个译码模块同时对这两个方向的目的地址进行译码,所以当前路由节点的地址译码器模块包含第一地址和第二地址、有优先级译码模块和无优先级译码模块;第一地址和第二地址分别为与当前路由节点相连的第一资源节点的位置坐标(x1,y1)和第二资源节点的位置坐标(x2,y2);第一资源节点相对于当前路由节点的方向为L1方向,第二资源节点相对于当前路由方向为L2方向;地址译码器模块将所接收的选择select信号转发至当前路由节点的仲裁器模块,当选择select信号中表示第二资源节点的路由请求或上游节点的路由请求获得路由权时,则有优先级地址译码器模块寄存第二资源节点的路由包中的目的地址(x,y)或上游节点的路由包中的目的地址(x,y)并对目的地址(x,y)进行译码,获得的译码结果以六位的有优先级目的方向Dest1信号表示并传递给当前路由节点的仲裁器模块进行仲裁;当选择select信号中表示第一资源节点的路由请求获得路有权时,则无优先级地址译码器模块寄存第一资源节点的路由包中的目的地址(x,y)并对目的地址进行译码,获得的译码结果以六位的无优先级目的方向Dest2信号表示并传递给当前路由节点的仲裁器模块进行仲裁;六位的有优先级目的方向Dest1信号和六位的无优先级目的方向Dest2信号的每一位分别表示目的地址相对于当前路由节点为L1方向、L2方向、E方向、N方向、W方向和S方向;本实施例中,Dest1和Dest2信号从第0位到第5位分别表示目的地址相对于当前路由节点分别为L1,L2,East,North,West,South方向;地址译码器模块根据第一地址的位置坐标(x1,y1)和第二地址的位置坐标(x2,y2)对目的地址(x,y)根据情况一或情况二进行译码;
情况一为:当所有资源节点所连接的两个路由节点均在Y维上,则按照方式一或方式二进行译码:
方式一为:
当y1-y2=1,且x1=x2时;若x>x2;则判断目标地址(x,y)的方向相对于当前路由节点为E方向,若x<x2,则判断目标地址(x,y)的方向相对于当前路由节点为W方向,若y>y2,则判断目的地址(x,y)的方向相对于当前路由节点为N方向,若y<y2,则判断目标地址(x,y)的方向相对于当前路由节点为S方向;当目标地址(x,y)与第一地址的位置坐标(x1,y1)相同时,则判断目标地址(x,y)的方向相对于当前路由节点为L1方向和N方向;当目标地址(x,y)与第二地址的位置坐标(x2,y2)相同时,则判断目标地址(x,y)的方向相对于当前路由节点为L2方向和S方向;
方式二为:
当y2-y1=1,且x1=x2时;若x>x2;则判断目标地址(x,y)的方向相对于当前路由节点为E方向,若x<x2,则判断目标地址(x,y)的方向相对于当前路由节点为W方向,若y>y2,则判断目的地址(x,y)的方向相对于当前路由节点为N方向,若y<y2,则判断目标地址(x,y)的方向相对于当前路由节点为S方向;当目标地址(x,y)与第一地址的位置坐标(x1,y1)相同时,则判断目标地址(x,y)的方向相对于当前路由节点为L1方向和S方向;当目标地址(x,y)与第二地址的位置坐标(x2,y2)相同时,则判断目标地址(x,y)的方向相对于当前路由节点为L2方向和N方向;
情况二为:当所有资源节点所连接的两个路由节点均在X维上,则按照方式三或方式四进行译码:
方式三为:
当x1-x2=1,且y1=y2时;若X>X2;则判断目标地址(x,y)的方向相对于当前路由节点为E方向,若x<x2,则判断目标地址(x,y)的方向相对于当前路由节点为W方向,若y>y2,则判断目的地址(x,y)的方向相对于当前路由节点为N方向,若y<y2,则判断目标地址(x,y)的方向相对于当前路由节点为S方向;当目标地址(x,y)与第一地址的位置坐标(x1,y1)相同时,则判断目标地址(x,y)的方向相对于当前路由节点为L1方向和W方向;当目标地址(x,y)与第二地址的位置坐标(x2,y2)相同时,则判断目标地址(x,y)的方向相对于当前路由节点为L2方向和E方向;
方式四为:
当x2-x1=1,且y1=y2时;若X>X2;则判断目标地址(x,y)的方向相对于当前路由节点为E方向,若x<x2,则判断目标地址(x,y)的方向相对于当前路由节点为W方向,若y>y2,则判断目的地址(x,y)的方向相对于当前路由节点为N方向,若y<y2,则判断目标地址(x,y)的方向相对于当前路由节点为S方向;当目标地址(x,y)与第一地址的位置坐标(x1,y1)相同时,则判断目标地址(x,y)的方向相对于当前路由节点为L1方向和E方向;当目标地址(x,y)与第二地址的位置坐标(x2,y2)相同时,则判断目标地址(x,y)的方向相对于当前路由节点为L2方向和W方向;
这种译码方式可以保证两路数据在传输至同一个目的节点时,可以遍历与这目的节点相连接的两个路由节点;如图5所示,当路由请求req2经过译码仲裁后已经占据了router1的L1方向路由通路,此时req1获得了路由权,他的目的地址和req2一样,但此时L1方向的路由通路已经被req2占据,此时使用这种路由方式的话,req1会向router1的N方向传递,通过router0的L2方向路由通路到达目的节点;
当前路由节点的仲裁器模块接收选择select信号、有优先级目的方向Dest1信号和无优先级目的方向Dest2信号;并根据XY优先级顺序对目标地址进行路由通道分配,分配的结果用36位的连接connection信号表示;
XY优先级顺序为如下方式1和方式2:
方式1为:
第一资源节点和第二资源节点在进行路由通道分配时,若其中有一方优先分配X方向路由通道则另一方优先分配Y方向路由通道;若上游节点的路由请求来自X轴方向,则当前路由节点在进行路由通道分配时,优先分配X轴方向的路由通道;若上游节点的路由请求来自Y轴方向,则当前路由节点在进行通道分配时,优先分配Y轴方向的路由通道;
方式2为:
第一资源节点和第二资源节点在进行路由通道分配时,若其中有一方优先分配X方向路由通道则另一方优先分配Y方向路由通道;若上游节点的路由请求来自X轴方向,则当前路由节点在进行路由通道分配时,优先分配Y轴方向的路由通道;若上游节点的路由请求来自Y轴方向,则当前路由节点在进行通道分配时,优先分配X轴方向的路由通道。
连接connection信号以每隔六位分别表示输出路由通道相对当前路由节点的方向为L1方向、L2方向、E方向、N方向、W方向和S方向;本实施例中,用第0位到第5位,第6位到第11位,第12位到第17位,第18位到第23位,第24位到第29位,第30位到第35位,分别表示方向为L1,L2,East,North,West,South的输出通道;每隔六位中的每一位表示请求输入的方向相对于当前路由节点为L1方向、L2方向、E方向、N方向、W方向和S方向;本实施例中,用第0位,第6位,第12位,第18位,第24位,第30位表示请求输入的方向为L1方向;第1位,第7位,第13位,第19位,第25位,第31位表示请求输入的方向为L2方向,第2位,第8位,第14位,第20位,第26位,第32位表示请求输入的方向为E方向;第3位,第9位,第15位,第21位,第27位,第33位表示请求输入的方向为N方向;第4位,第10位,第16位,第22位,第28位,第34位表示请求输入的方向为W方向,第5位,第11位,第17位,第23位,第29位,第35位表示请求输入的方向为S方向。如图6所示为连接connection信号的低6位,用这六位表示输出方向为L1方向而其中的每一位又分别表示输入方向,用第0位到第5位分别表示输入方向为L1,L2,E,N,W,S。当连接connection信号有一位变为高电平,则表示变为高电平的一位所代表方向上的路由通道被占据,connection信号中这一位表示了请求时从哪个方向来同时这个请求要往哪个方向去,并以六位的占据occupied信号表示;将connection信号的每六位自或,做为occupied信号的每一位;例如若connection信号中第0位到第5位中有一位被拉高,则这六位自或的结果为“1”,表示通向L1方向的路由通道已经被占据;六位占据occupied信号的每一位通过“1”和“0”分别表示目的地址(X,Y)相对于当前路由节点方向的路由通道是否被占据;本实施例中,用“1”表示被占据“0”表示未被占据;当前路由节点的仲裁器模块将占据occupied信号传递给当前路由节点的输出状态机模块;其中第0位表示L1方向输出路由通道被占据,第1位代表L2方向输出路由通道被占据,第2位代表E方向输出路由通道被占据,第3位代表N方向输出路由通道被占据,第4位代表W方向输出路由通道被占据,第5位代表S方向输出路由通道被占据。
连接connection信号和占据occupied信号初始状态全部为0;每次仲裁时都会对连接connection信号和占据occupied信号进行刷新;当路由通道分配结束后,当前路由节点的仲裁器模块将连接connection信号传输至当前路由节点的交叉开关模块,并将占据occupied信号送入当前路由节点的输出状态机模块;6位occupied信号分别送入6个输出状态机模块;
当前路由节点的仲裁器模块在进行路由通道分配前,将选择select信号通过一级缓存获得仲裁选择select_r信号,缓存后的select_r信号会存储在一个寄存器中,比select信号晚一个周期,即select信号变化后一个周期select_r信号才会变化,所以选择select信号表示当前路由节点的仲裁器模块在进行路由通道分配时的路由权,仲裁选择select_r表示当前路由节点的仲裁器模块在进行上一次路由通道分配时的路由权;根据select信号来分配输出路由通道,根据select和select_r是否一致来判定当前是否有新的请求获得了路由权从而要进行输出路由通道的分配;
若选择select信号中表示第一资源节点的当前路由权与仲裁选择select_r信号中表示第一资源节点的上一次路由权不同时,用无优先级路由权变化select_change0信号表示;
若选择select信号中表示第二资源节点或上游节点的当前路由权与仲裁选择select_r信号中表示第二资源节或上游节点的上一次路由权不同时,用有优先级路由权变化select_change1信号表示;
若无优先级路由权变化select_change0信号和有优先级路由权变化select_change1信号同时变为高电平时,则用路由权同时变化select_change2信号表示;
仲裁器模块根据无优先级路由权变化select_change0信号、有优先级路由权变化select_change1信号和路由权同时变化select_change2信号,对获得路有权的上游节点或资源节点的请求按方式a或方式b进行路由通道的分配;方式a和方式b是两种路由权监控机制,由于仲裁器在某一时刻可能同时为两个请求分配路由通道,这种监控方式能够很好的避免这两个方向请求之间的竞争;
如图7所示,方式a为:
若无优先级路由权变化select_change0变为高电平且路由权同时变化select_change2信号为低电平时,则检测选择select信号中表示第一资源节点的路由权是否获得路由权,对获得路由权的第一资源节点的路由请求,根据占据occupied信号和无优先级目的方向Dest2信号按照XY优先级顺序对第一资源节点所请求的目的地址(x,y)进行路由通道分配;
若无优先级路由权变化select_change0变为高电平且路由权同时变化select_change2信号也变为高电平时,则根据占据occupied信号、有优先级目的方向Dest1信号和无优先级目的方向Dest2信号按照XY优先级顺序进行路由通道分配;若没有被占据的通道能够让第二资源节点或上游节点所请求的目的地址(x,y)和第一资源节点所请求的目的地址(x,y)进行同时分配,则同时进行分配;若果没有被占据的通道不能够让有优先级的资源节点或路由节点的请求的目的地址和无优先级的资源节点请求的目的地址同时分配,则只为有优先级的资源节点或路由节点的请求的目的地址分配通道;
若有优先级路由权变化select_change1信号变为高电平,则检测选择select信号中表示有优先级的资源节点或路由节点的路由权,若被授权就根据占据occupied信号和有优先级目的方向Dest1信号按照XY优先级顺序对有优先级的资源节点或路由节点的请求的目的地址进行通道分配;
如图8所示,方式b为:
若无优先级路由权变化select_change0变为高电平且路由权同时变化select_change2信号保持低电平,则检测选择select信号中表示当前无优先级的资源节点的路由权,若被授权就根据占据occupied信号和无优先级目的方向Dest2信号按照XY优先级顺序对无优先级的资源节点请求的目的地址进行通道分配;
若有优先级路由权变化select_change1信号变为高电平且路由权同时变化select_change2信号保持低电平,,则检测选择select信号中表示有优先级的资源节点或路由节点的路由权,若被授权就根据占据occupied信号和有优先级目的方向Dest1信号按照XY优先级顺序对有优先级的资源节点或路由节点的请求的目的地址进行通道分配;
若有优先级路由权变化select_change1变为高电平且路由权同时变化select_change2信号也变为高电平,则根据占据occupied信号和有优先级目的方向Dest1信号和无优先级目的方向Dest2信号按照XY优先级顺序进行通道分配;如果没有被占据的通道能够让有优先级的资源节点或路由节点请求的目的地址和无优先级的资源节点请求的目的地址同时分配通道,则同时进行分配;若果没有被占据的通道不能够让有优先级的资源节点或路由节点的请求的目的地址和无优先级的资源节点请求的目的地址同时分配,则只为无优先级的资源节点的请求的目的地址分配通道。
采用方式a时或方式b的过程中,通过采用如下的方法来判定没有被占据的通道能不能同时分配给两个请求:
第一步将有优先级目的方向dest1和无优先级目的方向dest2相或;表示两个请求的所有可能输出方向有几个;
第二步将占据occupied信号取反,与第一步的结果相与得到6位的所有通道all_channel信号;表示在可能的输出方向中未被占据的方向的输出通道有几个;
第三步统计所有通道all_channel信号中“1”的个数;如果为1的个数大于或等于2则表示未被占据的通道可能同时分配给两个路由请求;
第四步将占据occupied信号取反,分别与有优先级目的方向dest1信号和无优先级目的方向dest2信号相与,如果两个相与得结果都有“1”则表示没有被占据的通道可以同时分配给这两个请求。
另外也可以用所有all_channel信号中“1”的个数大于或者等于3作为可分配的路由通道能同时分配给两个请求的标志。
用6位的已分配grant信号和未分配deny信号表示是否分配了通道,已分配grant信号和未分配deny信号中每一位对应当前路由节点上游节点和资源节点的方向;即grant信号和deny信号分别连接至6个输入状态机;通道分配结束后向被授权仲裁且成功分配通道的请求方向的输入状态机反馈已分配grant信号,将grant信号中连接这一方向输入状态机的那一位拉高;向被授权仲裁但没有分配通道的请求方向的输入状态机反馈未分配deny信号;将deny信号中连接这一方向输入状态机的那一位拉高;如果仲裁器模块接受到下游节点返回的失败fail信号或者取消cancel信号,则将connection信号中代表下游节点方向的6位信号全部拉低为0;同时接受到失败fail信号时,根据connection信号向上游节点和资源节点返回deny信号;例如,接受到来自L1方向的fail信号,则根据connection信号中的第0位至第5位向相应的请求输入方向返回deny信号;
交叉开关模块包含3个6X6的交叉开关分别为交叉开关0,交叉开关1,交叉开关2,3个交叉开关均接6个输入状态机模块和6个输出状态机,因为connection信号中的每一位都对应固定的输入方向和固定的输出方向,则交叉开关0根据connection信号将6个输入状态机模块各自的数据Pcc_data信号传输至6个输出状态机模块;交叉开关1根据connection信号将6个输入状态机模块各自的数据有效fwd信号传输至6个输出状态机模块;交叉开关2根据connection信号将6个输出状态机模块各自的路由成功Pack信号和取消链路Cancel信号传输至6个输入状态机模块;
输出状态机模块的工作状态包括:空闲态IDLE,锁定态LOCK;输出状态机的初始状态为空闲态IDLE;
当输出状态机模块所对应的占据occupied信号被拉高时,表示输出状态机已经被分配为一个路由请求的输出端口,输出状态机模块的工作状态由初始的空闲态IDLE变为锁定态LOCK;当输出状态机模块的工作状态为锁定态LOCK时,则拉高请求路由stb信号;同时将交叉开关模块传输过来的数据Pcc_data信号和数据有效fwd信号传输至与其相连接的下游节点或第一资源节点或第二资源节点的输入状态机模块;输出状态机接收到下游节点的输入状态机模块传输的取消链路Cancel信号或路由失败Fail信号时;将下游节点的输入状态机返回的取消链路Cancel信号和路由失败Fail信号传输至仲裁器模块用于释放通讯链路;当通讯链路被释放后,与这条链路相对应的connection信号中的某一位从“1”变为“0”,从而相对应的占据occupied信号中的相对应的某一位从“1”变为“0”;通讯链路被释放后输出状态机的工作状态由锁定态LOCK变为空闲态IDLE;输出状态机模块还将下游节点的输入状态机返回的路由成功pack信号和取消链路Cancel信号传输至交叉开关模块;通过交叉开关模块将这些信号转发至相对应的输入状态机,进而转发至上游节点(请求方);
图9所示为单个输入状态机模块和单个输出状态机模块与优先级编码器模块,地址译码器模块,仲裁器模块相连接的详细结构图,将输入状态机模块和输出状态机模块复制为6个同时将输入状态机模块和输出状态机模块的输入输出信号复制6倍,就能得到完整的一个路由节点的详细结构图。
本发明方法在Xilinx FPGA开发板Vertex5110t上通过Verilog HDL实现。测试时使用4*4的网络,改变每个资源节点的发包长度package和发包间隔interval记录平均吞吐量和平均包延时;表1给出了双接入结构片上网络的平均吞吐量测试结果;表2给出了传统2D-mesh片上网络的平均吞吐量测试结果;
表1
表2
由表1和表2可以看出:与传统的2D-mesh相比在相同的发包间隔和包长下吞吐量明显上升,平均上升约46.4%;
表3给出了双接入结构片上网络的平均包延时测试结果;表4给出了传统2D-mesh片上网络的平均包延时测试结果;
表3
表4
由表3和表4可以看出:与传统的2D-mesh相比在相同的发包间隔和包长下功耗也上升了,平均上升约16.5%。但是相比较于吞吐量上升的幅度,牺牲点功耗是值得的。同时双端口的设计还使得网络中的数据并行度提高,提升了系统的速度。
表5给出了4X4双接入结构片上网络的硬件资源消耗;表6给出了4X4传统2D-mesh片上网络的硬件资源消耗;
表5
Register | LUTs |
7891 | 17892 |
表6
Register | LUTs |
6264 | 11483 |
由表5和表6可以看出:虽然相较于传统2D-mesh网络硬件资源消耗有所增加,但是增加的量相对于整个系统来说微不足道。因此这种双接入结构的片上网络具有广泛的应用前景,可以应用在对运行速度要求很高的多核发展领域中,如高速实时图像处理、网络通信等。
Claims (5)
1.一种基于二维网格的片上网络的双接入结构,其特征是,所述片上网络包括:若干个路由节点、若干个资源节点和若干条路由通道;任意一个资源节点能通过所述路由通道连接在两个相邻的路由节点上,一个路由节点能通过所述路由通道同时与两个不同的资源节点相连;任意两个相邻的路由节点通过所述路由通道相邻接;由所述邻接的路由节点形成二维网格;并在每个路由节点上挂接第一资源节点和第二资源节点,且所述资源节点所连接的两个路由节点在同一维度上;以所述二维网格任一顶点上的路由节点为原点O,与所述顶点上的路由节点相通连的两条路由通道分别X轴和Y轴,建立坐标系OXY;并以X轴的正方向为E方向,以X轴的负方向为W方向,以Y轴的正方向为N方向,以Y轴的负方向为S方向;
当任意两个路由节点进行通信时,定义发送路由包的资源节点为请求方节点,接收所述路由包的资源节点为目的方节点;所述路由包沿着所经过的路由节点的顺序,定义所经过的任意一个路由节点均是以上一个路由节点为上游节点,以下一个路由节点为下游节点的当前路由节点;
所述路由节点的组成包括:输入状态机模块,优先级编码器模块,地址译码器模块,仲裁器模块,交叉开关模块和输出状态机模块;所述输入状态机模块包括地址寄存器;
所述输入状态机模块的工作状态包括:空闲状态IDLE、请求状态REQ、半锁定状态PRELOCK、锁定状态LOCK和失败状态FAIL;所述输入状态机的初始状态为所述空闲状态IDLE;
当请求方节点向目的方节点发送路由请求时,所述路由请求包括请求路由stb信号,数据Pcc_data信号和数据有效Fwd信号,并通过所述数据Pcc_data信号发送包含目的地址(x,y)的路由包;所述路由请求依次经过连接所述请求方节点和目的方节点的各路由节点;若在所述路由通道上所经过的当前路由节点的输入状态机接收到上游节点发送的请求路由stb信号为高电平,则所述当前路由节点的输入状态机模块的工作状态由初始的空闲状态IDLE变为请求状态REQ并将所述路由包中包含的目的地址(x,y)存入所述地址寄存器中;在请求状态REQ下,所述输入状态机模块向所述优先级编码器模块转发请求路由stb信号;并将所述目的地址(x,y)发送给所述地址译码器模块;
若所述当前路由节点的输入状态机模块接收到所述仲裁器模块返回的无法分配Deny信号,则所述输入状态机模块的工作状态由请求状态REQ变为失败状态FAIL并向上游节点的输出状态机模块发送路由失败Fail信号;所述上游节点接收到所述路由失败fail信号后将所述请求路由stb信号变为低电平,从而取消路由请求,所述当前路由节点的输入状态机由失败状态FAIL变为空闲状态IDLE;
若所述当前路由节点的输入状态机模块接收到所述当前路由节点的仲裁器模块返回的已分配Grant信号,则所述当前路由节点的输入状态机模块的工作状态由请求状态REQ变为半锁定状态PRELOCK并等待下游节点返回的路由成功Pack信号;
若所述当前路由节点的输入状态机模块接收到当前路由节点的交叉开关模块返回的路由成功Pack信号;则所述当前路由节点的输入状态机模块的工作状态由半锁定状态PRELOCK变为锁定状态LOCK并向上游节点转发所述路由成功Pack信号;所述上游节点接收并依次传递所述路由成功Pack信至请求方节点,由此建立一条通过各路由节点连接所述请求方节点和目的方节点的通讯链路,当所述请求方接收到所述路由成功Pack信号后,将所述数据有效Fwd信号变为高电平,并利用所述数据Pcc_data信号通过所述通讯链路将数据包发送至目的方节点;所述目的方节点接收完所述数据包后,通过所述通讯链路返回取消链路Cancel信号至请求方节点;所述当前路由节点通过自身的输出状态机模块接收到所述取消链路Cancel信号时,所述当前路由节点的输入状态机模块的工作状态由锁定状态LOCK变为空闲状态IDLE;所述请求方节点接收到所述取消链路Cancel信号后,将所述请求路由stb信号变为低电平以及数据有效Fwd信号变为低电平,从而取消所述通讯链路;
所述当前路由节点的优先级编码器接收上游节点的路由请求以及与所述当前路由节点相连的第一资源节点和第二资源节点的路由请求时,则根据所定义的优先级顺序获得路由权,所述优先级顺序为:定义第一资源节点没有优先级,则所述第一资源节点在请求时能立即获得路由权,定义第二资源节点的优先级高于上游节点,且所述上游节点的优先级不同;所述路由权以六位的选择select信号表示,并通过所述优先级编码器传输至所述当前路由节点的地址译码器模块;所述六位选择select信号的每一位通过“1”和“0”分别表示所述上游节点的路由请求和资源节点的路由请求是否获得路由权;
所述当前路由节点的地址译码器模块包含第一地址和第二地址、有优先级译码模块和无优先级译码模块;所述第一地址和第二地址分别为与所述当前路由节点相连的第一资源节点的位置坐标(x1,y1)和第二资源节点的位置坐标(x2,y2);所述第一资源节点相对于所述当前路由节点的方向为L1方向,所述第二资源节点相对于所述当前路由方向为L2方向;所述地址译码器模块将所接收的选择select信号转发至所述当前路由节点的仲裁器模块,当选择select信号中表示所述第二资源节点的路由请求或上游节点的路由请求获得路由权时,则所述有优先级地址译码器模块寄存所述第二资源节点的路由包中的目的地址(x,y)或上游节点的路由包中的目的地址(x,y)并对所述目的地址(x,y)进行译码,获得的译码结果以六位的有优先级目的方向Dest1信号表示并传递给所述当前路由节点的仲裁器模块进行仲裁;当选择select信号中表示所述第一资源节点的路由请求获得路有权时,则所述无优先级地址译码器模块寄存所述第一资源节点的路由包中的目的地址(x,y)并对所述目的地址进行译码,获得的译码结果以六位的无优先级目的方向Dest2信号表示并传递给所述当前路由节点的仲裁器模块进行仲裁;所述六位的有优先级目的方向Dest1信号和六位的无优先级目的方向Dest2信号的每一位分别表示目的地址相对于所述当前路由节点为L1方向、L2方向、E方向、N方向、W方向和S方向;所述地址译码器模块根据所述第一地址的位置坐标(x1,y1)和第二地址的位置坐标(x2,y2)对目的地址(x,y)根据情况一或情况二进行译码;
所述当前路由节点的仲裁器模块接收所述选择select信号、有优先级目的方向Dest1信号和无优先级目的方向Dest2信号;并根据XY优先级顺序对目标地址进行路由通道分配,分配的结果用36位的连接connection信号表示;
所述连接connection信号以每隔六位分别表示目的地址(X,Y)相对所述当前路由节点的方向为L1方向、L2方向、E方向、N方向、W方向和S方向;所述每隔六位中的每一位表示上游节点和第一资源节点和第二资源节点相对于所述当前路由节点的方向为L1方向、L2方向、E方向、N方向、W方向和S方向;当所述连接connection信号有一位变为高电平,则表示变为高电平的一位所代表方向上的路由通道被占据,并以六位的占据occupied信号表示;所述六位占据occupied信号的每一位通过“1”和“0”分别表示所述目的地址(X,Y)相对于所述当前路由节点方向的路由通道是否被占据;所述当前路由节点的仲裁器模块将所述占据occupied信号传递给所述当前路由节点的输出状态机模块;
当所述路由通道分配结束后,所述当前路由节点的仲裁器模块将所述连接connection信号传输至所述当前路由节点的交叉开关模块,并将所述占据occupied信号送入所述当前路由节点的输出状态机模块;
所述当前路由节点的仲裁器模块在进行路由通道分配前,将所述选择select信号通过一级缓存获得仲裁选择select_r信号,所述选择select信号表示所述当前路由节点的仲裁器模块在进行路由通道分配时的路由权,所述仲裁选择select_r表示所述当前路由节点的仲裁器模块在进行上一次路由通道分配时的路由权;
若所述选择select信号中表示所述第一资源节点的当前路由权与所述仲裁选择select_r信号中表示第一资源节点的上一次路由权不同时,用无优先级路由权变化select_change0信号表示;
若所述选择select信号中表示第二资源节点或上游节点的当前路由权与所述仲裁选择select_r信号中表示第二资源节或上游节点的上一次路由权不同时,用有优先级路由权变化select_change1信号表示;
若所述无优先级路由权变化select_change0信号和所述有优先级路由权变化select_change1信号同时变为高电平时,则用路由权同时变化select_change2信号表示;
所述仲裁器模块根据所述无优先级路由权变化select_change0信号、有优先级路由权变化select_change1信号和路由权同时变化select_change2信号,对获得路有权的上游节点或资源节点的请求按方式a或方式b进行路由通道的分配;
用6位的已分配grant信号和未分配deny信号表示是否分配了通道,所述已分配grant信号和未分配deny信号中每一位对应所述当前路由节点上游节点和资源节点的方向;通道分配结束后向被授权仲裁且成功分配通道的请求方向的输入状态机反馈已分配grant信号,向被授权仲裁但没有分配通道的请求方向的输入状态机反馈未分配deny信号;如果所述仲裁器模块接受到下游节点返回的失败fail信号或者取消cancel信号,则将所述connection信号中代表所述下游节点方向的6位信号全部拉低;同时接受到失败fail信号时,根据connection信号向上游节点和资源节点返回deny信号;
所述交叉开关模块包含3个的交叉开关分别为交叉开关0,交叉开关1,交叉开关2,所述3个交叉开关均接6个所述输入状态机模块和6个所述输出状态机,所述交叉开关0根据所述connection信号将6个所述输入状态机模块各自的数据Pcc_data信号传输至6个所述输出状态机模块;所述交叉开关1根据所述connection信号将6个所述输入状态机模块各自的数据有效fwd信号传输至6个所述输出状态机模块;所述交叉开关2根据所述connection信号将6个所述输出状态机模块各自的路由成功Pack信号和取消链路Cancel信号传输至6个所述输入状态机模块;
所述输出状态机模块的工作状态包括:空闲态IDLE,锁定态LOCK;所述输出状态机的初始状态为所述空闲态IDLE;
当所述输出状态机模块所对应的所述占据occupied信号被拉高时,表示所述输出状态机已经被分配为一个路由请求的输出端口,所述输出状态机模块的工作状态由初始的空闲态IDLE变为锁定态LOCK;当所述输出状态机模块的工作状态为锁定态LOCK时,则拉高请求路由stb信号;同时将所述交叉开关模块传输过来的数据Pcc_data信号和数据有效fwd信号传输至与其相连接的下游节点或第一资源节点或第二资源节点的输入状态机模块;所述输出状态机接收到下游节点的输入状态机模块传输的取消链路Cancel信号或路由失败Fail信号时,工作状态由锁定态LOCK变为空闲态IDLE;并将下游节点的输入状态机返回的路由成功pack信号和取消链路Cancel信号传输至所述交叉开关模块;所述输出状态机模块还将下游节点返回的取消链路Cancel信号和路由失败Fail信号传输至所述仲裁器模块用于释放通讯链路。
2.根据权利要求1所述的基于二维网格的片上网络的双接入结构,其特征是,
所述情况一为:当所有资源节点所连接的两个路由节点均在Y维上,则按照方式一或方式二进行译码:
所述方式一为:
当y1-y2=1,且x1=x2时;若X>X2;则判断目标地址(X,Y)的方向相对于所述当前路由节点为E方向,若X<X2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为W方向,若Y>Y2,则判断目的地址(X,Y)的方向相对于所述当前路由节点为N方向,若Y<Y2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为S方向;当目标地址(X,Y)与第一地址的位置坐标(X1,Y1)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L1方向和N方向;当目标地址(X,Y)与第二地址的位置坐标(X2,Y2)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L2方向和S方向;
所述方式二为:
当Y2-Y1=1,且X1=X2时;若X>X2;则判断目标地址(X,Y)的方向相对于所述当前路由节点为E方向,若X<X2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为W方向,若Y>Y2,则判断目的地址(X,Y)的方向相对于所述当前路由节点为N方向,若Y<Y2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为S方向;当目标地址(X,Y)与第一地址的位置坐标(X1,Y1)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L1方向和S方向;当目标地址(X,Y)与第二地址的位置坐标(X2,Y2)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L2方向和N方向;
所述情况二为:当所有资源节点所连接的两个路由节点均在X维上,则按照方式三或方式四进行译码:
所述方式三为:
当X1-X2=1,且Y1=Y2时;若X>X2;则判断目标地址(X,Y)的方向相对于所述当前路由节点为E方向,若X<X2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为W方向,若Y>Y2,则判断目的地址(X,Y)的方向相对于所述当前路由节点为N方向,若Y<Y2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为S方向;当目标地址(X,Y)与第一地址的位置坐标(X1,Y1)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L1方向和W方向;当目标地址(X,Y)与第二地址的位置坐标(X2,Y2)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L2方向和E方向;
所述方式四为:
当X2-X1=1,且Y1=Y2时;若X>X2;则判断目标地址(X,Y)的方向相对于所述当前路由节点为E方向,若X<X2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为W方向,若Y>Y2,则判断目的地址(X,Y)的方向相对于所述当前路由节点为N方向,若Y<Y2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为S方向;当目标地址(X,Y)与第一地址的位置坐标(X1,Y1)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L1方向和E方向;当目标地址(X,Y)与第二地址的位置坐标(X2,Y2)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点为L2方向和W方向。
3.根据权利要求1所述的基于二维网格的片上网络的双接入结构,其特征是,所述XY优先级顺序为如下方式1和方式2:
所述方式1为:
所述第一资源节点和所述第二资源节点在进行路由通道分配时,若其中有一方优先分配X方向路由通道则另一方优先分配Y方向路由通道;若所述上游节点的路由请求来自X轴方向,则所述当前路由节点在进行路由通道分配时,优先分配X轴方向的路由通道;若所述上游节点的路由请求来自Y轴方向,则所述当前路由节点在进行通道分配时,优先分配Y轴方向的路由通道;
所述方式2为:
所述第一资源节点和所述第二资源节点在进行路由通道分配时,若其中有一方优先分配X方向路由通道则另一方优先分配Y方向路由通道;若所述上游节点的路由请求来自X轴方向,则所述当前路由节点在进行路由通道分配时,优先分配Y轴方向的路由通道;若所述上游节点的路由请求来自Y轴方向,则所述当前路由节点在进行通道分配时,优先分配X轴方向的路由通道。
4.根据权利要求1所述的基于二维网格的片上网络的双接入结构,其特征是,
所述方式a为:
若所述无优先级路由权变化select_change0变为高电平且所述路由权同时变化select_change2信号为低电平时,则检测所述选择select信号中表示第一资源节点的路由权是否获得路由权,对获得路由权的第一资源节点的路由请求,根据所述占据occupied信号和所述无优先级目的方向Dest2信号按照所述XY优先级顺序对第一资源节点所请求的目的地址(X,Y)进行路由通道分配;
若所述无优先级路由权变化select_change0变为高电平且所述路由权同时变化select_change2信号也变为高电平时,则根据所述占据occupied信号、所述有优先级目的方向Dest1信号和所述无优先级目的方向Dest2信号按照所述XY优先级顺序进行路由通道分配;若没有被占据的通道能够让第二资源节点或上游节点所请求的目的地址(X,Y)和第一资源节点所请求的目的地址(X,Y)进行同时分配,则同时进行分配;
如果没有被占据的通道不能够让有优先级的资源节点或路由节点的请求的目的地址和无优先级的资源节点请求的目的地址同时分配,则只为有优先级的资源节点或路由节点的请求的目的地址分配通道;若所述有优先级路由权变化select_change1信号变为高电平,则检测所述选择select信号中表示有优先级的资源节点或路由节点的路由权,若被授权就根据所述占据occupied信号和所述有优先级目的方向Dest1信号按照所述XY优先级顺序对有优先级的资源节点或路由节点的请求的目的地址进行通道分配;
所述方式b为:
若所述无优先级路由权变化select_change0变为高电平且所述路由权同时变化select_change2信号保持低电平,则检测所述选择select信号中表示当前无优先级的资源节点的路由权,若被授权就根据所述占据occupied信号和所述无优先级目的方向Dest2信号按照所述XY优先级顺序对无优先级的资源节点请求的目的地址进行通道分配;若所述有优先级路由权变化select_change1信号变为高电平,则检测所述选择select信号中表示有优先级的资源节点或路由节点的路由权,若被授权就根据所述占据occupied信号和所述有优先级目的方向Dest1信号按照所述XY优先级顺序对有优先级的资源节点或路由节点的请求的目的地址进行通道分配;若所述有优先级路由权变化select_change1变为高电平且所述路由权同时变化select_change2信号也变为高电平,则根据所述占据occupied信号和所述有优先级目的方向Dest1信号和所述无优先级目的方向Dest2信号按照所述XY优先级顺序进行通道分配;如果没有被占据的通道能够让有优先级的资源节点或路由节点请求的目的地址和无优先级的资源节点请求的目的地址同时分配通道,则同时进行分配;若果没有被占据的通道不能够让有优先级的资源节点或路由节点的请求的目的地址和无优先级的资源节点请求的目的地址同时分配,则只为无优先级的资源节点的请求的目的地址分配通道。
5.根据权利要求4所述的基于二维网格的片上网络的双接入结构,其特征是,
采用所述方式a或方式b的过程中是按如下步骤判定没有被占据的通道能否同时分配给两个请求:
步骤1、将有优先级目的方向dest1和无优先级目的方向dest2相或获得结果一;
步骤2、将占据occupied信号取反,与所述结果一进行相与获得6位的所有通道all_channel信号;
步骤3、统计所述所有通道all_channel信号中“1”的个数;若“1”的个数大于或等于2个,则表示未被占据的通道可能同时分配给两个请求;
步骤4、将占据occupied信号取反,分别与有优先级目的方向dest1信号和无优先级目的方向dest2信号相与获得结果三和结果四,如果结果三和结果四都含有“1”,则表示所述未被占据的通道可以同时分配给两个请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410768220.9A CN104486221B (zh) | 2014-12-12 | 2014-12-12 | 一种基于二维网格片上网络的双接入结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410768220.9A CN104486221B (zh) | 2014-12-12 | 2014-12-12 | 一种基于二维网格片上网络的双接入结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104486221A true CN104486221A (zh) | 2015-04-01 |
CN104486221B CN104486221B (zh) | 2017-06-06 |
Family
ID=52760727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410768220.9A Active CN104486221B (zh) | 2014-12-12 | 2014-12-12 | 一种基于二维网格片上网络的双接入结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104486221B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007226A (zh) * | 2015-07-23 | 2015-10-28 | 合肥工业大学 | 一种基于包电路交换技术的多播路由器及其工作方式 |
CN106209518A (zh) * | 2016-08-08 | 2016-12-07 | 合肥工业大学 | 一种基于“包‑电路”交换技术的动态转向路由算法 |
CN109995652A (zh) * | 2019-04-15 | 2019-07-09 | 中北大学 | 一种基于冗余通道构筑的片上网络感知预警路由方法 |
CN113900978A (zh) * | 2021-10-27 | 2022-01-07 | 海光信息技术股份有限公司 | 数据传输方法、装置和芯片 |
CN114745345A (zh) * | 2022-04-07 | 2022-07-12 | 中国人民解放军国防科技大学 | 一种片上网络动态调节背压的高效路由方法及装置 |
CN115665041A (zh) * | 2022-11-18 | 2023-01-31 | 北京红山微电子技术有限公司 | 片上网络结构、数据传输方法、电子设备及存储介质 |
CN115883447A (zh) * | 2023-02-06 | 2023-03-31 | 极芯通讯技术(南京)有限公司 | 基于包路由建立的临时电路上数据传输方法及系统 |
CN113900978B (zh) * | 2021-10-27 | 2024-05-10 | 海光信息技术股份有限公司 | 数据传输方法、装置和芯片 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101383712A (zh) * | 2008-10-16 | 2009-03-11 | 电子科技大学 | 一种片上网络的路由节点微结构 |
TW201001990A (en) * | 2008-06-20 | 2010-01-01 | Yuan-Long Jeang | A hierarchical mesh-tree architecture for network-on-a-chip and method thereof for transmitting packets |
CN101778049A (zh) * | 2010-03-04 | 2010-07-14 | 南京大学 | 包-电路交换片上路由器及其传输方法 |
US8601423B1 (en) * | 2012-10-23 | 2013-12-03 | Netspeed Systems | Asymmetric mesh NoC topologies |
CN104202241A (zh) * | 2014-08-06 | 2014-12-10 | 长春理工大学 | 2D-Mesh拓补结构下的片上网络偏转容错路由算法 |
-
2014
- 2014-12-12 CN CN201410768220.9A patent/CN104486221B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201001990A (en) * | 2008-06-20 | 2010-01-01 | Yuan-Long Jeang | A hierarchical mesh-tree architecture for network-on-a-chip and method thereof for transmitting packets |
CN101383712A (zh) * | 2008-10-16 | 2009-03-11 | 电子科技大学 | 一种片上网络的路由节点微结构 |
CN101778049A (zh) * | 2010-03-04 | 2010-07-14 | 南京大学 | 包-电路交换片上路由器及其传输方法 |
US8601423B1 (en) * | 2012-10-23 | 2013-12-03 | Netspeed Systems | Asymmetric mesh NoC topologies |
CN104202241A (zh) * | 2014-08-06 | 2014-12-10 | 长春理工大学 | 2D-Mesh拓补结构下的片上网络偏转容错路由算法 |
Non-Patent Citations (1)
Title |
---|
DUOLI ZHANG ET.AL: "Design and Implementation of Dual-port Network on Chip", 《2014 12TH IEEE INTERNATIONAL CONFERENCE ON SOLID-STATE AND INTEGRATED CIRCUIT TECHNOLOGY(ICSICT)》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007226A (zh) * | 2015-07-23 | 2015-10-28 | 合肥工业大学 | 一种基于包电路交换技术的多播路由器及其工作方式 |
CN105007226B (zh) * | 2015-07-23 | 2018-01-19 | 合肥工业大学 | 一种基于包电路交换技术的多播路由器及其工作方式 |
CN106209518A (zh) * | 2016-08-08 | 2016-12-07 | 合肥工业大学 | 一种基于“包‑电路”交换技术的动态转向路由算法 |
CN106209518B (zh) * | 2016-08-08 | 2019-01-11 | 合肥工业大学 | 一种基于“包-电路”交换技术的动态转向路由算法 |
CN109995652A (zh) * | 2019-04-15 | 2019-07-09 | 中北大学 | 一种基于冗余通道构筑的片上网络感知预警路由方法 |
CN109995652B (zh) * | 2019-04-15 | 2021-03-19 | 中北大学 | 一种基于冗余通道构筑的片上网络感知预警路由方法 |
CN113900978A (zh) * | 2021-10-27 | 2022-01-07 | 海光信息技术股份有限公司 | 数据传输方法、装置和芯片 |
CN113900978B (zh) * | 2021-10-27 | 2024-05-10 | 海光信息技术股份有限公司 | 数据传输方法、装置和芯片 |
CN114745345A (zh) * | 2022-04-07 | 2022-07-12 | 中国人民解放军国防科技大学 | 一种片上网络动态调节背压的高效路由方法及装置 |
CN114745345B (zh) * | 2022-04-07 | 2023-10-20 | 中国人民解放军国防科技大学 | 一种片上网络动态调节背压的高效路由方法及装置 |
CN115665041A (zh) * | 2022-11-18 | 2023-01-31 | 北京红山微电子技术有限公司 | 片上网络结构、数据传输方法、电子设备及存储介质 |
CN115665041B (zh) * | 2022-11-18 | 2023-03-28 | 北京红山微电子技术有限公司 | 片上网络结构、数据传输方法、电子设备及存储介质 |
CN115883447A (zh) * | 2023-02-06 | 2023-03-31 | 极芯通讯技术(南京)有限公司 | 基于包路由建立的临时电路上数据传输方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104486221B (zh) | 2017-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104486221A (zh) | 一种基于二维网格片上网络的双接入结构 | |
CN103345461B (zh) | 基于fpga的带有加速器的多核处理器片上网络系统 | |
CN105007226B (zh) | 一种基于包电路交换技术的多播路由器及其工作方式 | |
CN105450555B (zh) | 一种片上网络系统,及片上网络通信链路的建立方法 | |
CN107454003B (zh) | 一种可动态切换工作模式的片上网络路由器及方法 | |
KR20200135780A (ko) | 인터커넥트와 연관된 가상 채널을 통한 트랜잭션의 부분들 중재하기 | |
CN101335770B (zh) | 一种网络地址端口转换方法和装置 | |
CN102970247B (zh) | 一种有效的时间触发网络通信时间调度方法 | |
CN103986664A (zh) | 一种用于片上网络的混合互连Mesh拓扑结构及其路由算法 | |
Agrawal et al. | Simulation of network on chip for 3D router architecture | |
CN105022717A (zh) | 附加请求数优先级的片上网络资源仲裁方法及仲裁单元 | |
CN101383712A (zh) | 一种片上网络的路由节点微结构 | |
CN102546417B (zh) | 基于网络信息的片上网络路由器调度方法 | |
CN102685017A (zh) | 一种基于fpga的片上网络路由器 | |
CN104901899A (zh) | 二维片上网络拓扑结构的自适应路由方法 | |
CN105530206A (zh) | 一种基于Torus网络的双接入结构及其工作方式 | |
KR20160054007A (ko) | 메모리 모듈 액세스 방법 및 장치 | |
CN104683242A (zh) | 一种二维片上网络的拓扑结构以及路由方法 | |
US20070140280A1 (en) | Computer chip for connecting devices on the chip utilizing star-torus topology | |
CN105871730A (zh) | 基于网络编码的新型紧凑、高效、快速的片上网络路由器 | |
CN110505168B (zh) | 一种ni接口控制器及数据传输方法 | |
CN111193971A (zh) | 一种面向机器学习的分布式计算互连网络系统及通信方法 | |
US20100238942A1 (en) | Lookup engine with programmable memory topology | |
CN101072175A (zh) | 一种基于定长分组的高速交换仲裁调度方法 | |
WO2023109445A1 (zh) | 一种基于时间触发以太网的业务调度方法 |
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 |