一种基于二维网格片上网络的双接入结构的制作方法

文档序号:7822832阅读:443来源:国知局
一种基于二维网格片上网络的双接入结构的制作方法
【专利摘要】本发明公开了一种基于二维网格的片上网络的双接入结构,其特征是:任意一个路由节点可以连接两个资源节点,任意一个路由节点可以同时传输两路数据到达与其相连接的两个资源节点,同时任意一个资源节连接两个路由节点,可以同时通过两个路由节点传输两路数据至片上网络,这两路数据通过片上网路中的路由节点最终传输至目的资源节点。本发明能让每个资源节点同时接收或发送两路数据,大幅度提升片上网络吞吐量,减少资源节点间数据传输时间,同时使得每个资源节点可以在流模式下进行双目运算,减少资源节点的运算时间,达到提高片上资源节点运算效率的目的。
【专利说明】-种基于二维网格片上网络的双接入结构

【技术领域】
[0001] 本发明设及一种基于二维网格片上网络的双接入设计,属于片上网络领域。

【背景技术】
[0002] 相较于传统单核系统,多核系统具有计算能力强,功耗低等优点。片内多核并行既 给系统带来了极其强大的运算能力,同时也给片上通讯技术带来了高吞吐量,高并行的挑 战。因此片上网络技术应运而生,成为解决多核系统片上通讯的最佳方案。随着片上网络 技术的发展,研究者们提出了各式各样的网络拓扑结构。
[0003] 2D-mesh网络拓扑由于其结构简单,可拓展性好,便于实现和分析,因此在片上网 络领域得到了广泛的应用。如图1所示,由于传统的2D-mesh的路由节点都只能接入一个 运算单元或存储单元,该样当运算单元在处理双目运算时,就很大程度的降低了处理运算 的速度,影响多核系统的运行效率。因此传统的2D-mesh应用已经不能满足如今高速系统 对网络中数据的高并行高吞吐的需求。因此如何高并行度和吞吐量成为片上网络设计的关 键问题。


【发明内容】

[0004] 本发明为克服现有技术存在的不足之处,提出了一种基于二维网格片上网络的双 接入结构,使得网络中的每个路由节点能同时发送两路数据至于其相连接的资源节点,每 个资源节点可W通过与其相连接的两个路由节点同时收或者发两路数据,从而能提高网络 的吞吐量和并行度,实现资源节点的双目流工作方式,进而提高片上网络系统的运算速度。
[0005] 本发明为达到上述目的所采用的技术方案是:
[0006] 本发明一种基于二维网格的片上网络的双接入结构的特点是,所述片上网络包 括:若干个路由节点、若干个资源节点和若干条路由通道;任意一个资源节点能通过所述 路由通道连接在两个相邻的路由节点上,一个路由节点能通过所述路由通道同时与两个不 同的资源节点相连;任意两个相邻的路由节点通过所述路由通道相邻接;由所述邻接的路 由节点形成二维网格;并在每个路由节点上挂接第一资源节点和第二资源节点,且所述资 源节点所连接的两个路由节点在同一维度上;W所述二维网格任一顶点上的路由节点为原 点0,与所述顶点上的路由节点相通连的两条路由通道分别X轴和Y轴,建立坐标系OXY ;并 W X轴的正方向为E方向,W X轴的负方向为W方向,W Y轴的正方向为N方向,W Y轴的 负方向为S方向;
[0007] 当任意两个路由节点进行通信时,定义发送路由包的资源节点为请求方节点,接 收所述路由包的资源节点为目的方节点;所述路由包沿着所经过的路由节点的顺序,定义 所经过的任意一个路由节点均是W上一个路由节点为上游节点,W下一个路由节点为下游 节点的当前路由节点;
[000引所述路由节点的组成包括;输入状态机模块,优先级编码器模块,地址译码器模 块,仲裁器模块,交叉开关模块和输出状态机模块;所述输入状态机模块包括地址寄存器;
[0009] 所述输入状态机模块的工作状态包括:空闲状态IDLE、请求状态REQ、半锁定状 态PRELOCK、锁定状态LOCK和失败状态FAIL ;所述输入状态机的初始状态为所述空闲状态 IDLE ;
[0010] 当请求方节点向目的方节点发送路由请求时,所述路由请求包括请求路由stb信 号,数据^c_data信号和数据有效Fwd信号,并通过所述数据化c_data信号发送包含目的 地址(x,y)的路由包;所述路由请求依次经过连接所述请求方节点和目的方节点的各路由 节点;若在所述路由通道上所经过的当前路由节点的输入状态机接收到上游节点发送的请 求路由stb信号为高电平,则所述当前路由节点的输入状态机模块的工作状态由初始的空 闲状态IDLE变为请求状态REQ并将所述路由包中包含的目的地址(X,y)存入所述地址寄 存器中;在请求状态REQ下,所述输入状态机模块向所述优先级编码器模块转发请求路由 stb信号;并将所述目的地址(X,y)发送给所述地址译码器模块;
[0011] 若所述当前路由节点的输入状态机模块接收到所述仲裁器模块返回的无法分配 Deny信号,则所述输入状态机模块的工作状态由请求状态REQ变为失败状态FAIL并向上游 节点的输出状态机模块发送路由失败化il信号;所述上游节点接收到所述路由失败化il 信号后将所述请求路由stb信号变为低电平,从而取消路由请求,所述当前路由节点的输 入状态机由失败状态FAIL变为空闲状态IDLE ;
[0012] 若所述当前路由节点的输入状态机模块接收到所述当前路由节点的仲裁器模块 返回的已分配Grant信号,则所述当前路由节点的输入状态机模块的工作状态由请求状态 REQ变为半锁定状态PRELOCK并等待下游节点返回的路由成功化ck信号;
[0013] 若所述当前路由节点的输入状态机模块接收到当前路由节点的交叉开关模块返 回的路由成功化ck信号;则所述当前路由节点的输入状态机模块的工作状态由半锁定状 态PRELOCK变为锁定状态LOCK并向上游节点转发所述路由成功化ck信号;所述上游节点 接收并依次传递所述路由成功Pack信至请求方节点,由此建立一条通过各路由节点连接 所述请求方节点和目的方节点的通讯链路,当所述请求方接收到所述路由成功化ck信号 后,将所述数据有效Fwd信号变为高电平,并利用所述数据化c_data信号通过所述通讯链 路将数据包发送至目的方节点;所述目的方节点接收完所述数据包后,通过所述通讯链路 返回取消链路Cancel信号至请求方节点;所述当前路由节点通过自身的输出状态机模块 接收到所述取消链路Cancel信号时,所述当前路由节点的输入状态机模块的工作状态由 锁定状态LOCK变为空闲状态IDLE ;所述请求方节点接收到所述取消链路Cancel信号后, 将所述请求路由stb信号变为低电平W及数据有效Fwd信号变为低电平,从而取消所述通 讯链路;
[0014] 所述当前路由节点的优先级编码器接收上游节点的路由请求W及与所述当前路 由节点相连的第一资源节点和第二资源节点的路由请求时,则根据所定义的优先级顺序获 得路由权,所述优先级顺序为:定义第一资源节点没有优先级,则所述第一资源节点在请求 时能立即获得路由权,定义第二资源节点的优先级高于上游节点,且所述上游节点的优先 级不同;所述路由权W六位的选择select信号表示,并通过所述优先级编码器传输至所述 当前路由节点的地址译码器模块;所述六位选择select信号的每一位通过"1"和"0"分别 表示所述上游节点的路由请求和资源节点的路由请求是否获得路由权;
[0015] 所述当前路由节点的地址译码器模块包含第一地址和第二地址、有优先级译码模 块和无优先级译码模块;所述第一地址和第二地址分别为与所述当前路由节点相连的第一 资源节点的位置坐标(XI,yl)和第二资源节点的位置坐标(x2, y2);所述第一资源节点相 对于所述当前路由节点的方向为L1方向,所述第二资源节点相对于所述当前路由方向为 L2方向;所述地址译码器模块将所接收的选择select信号转发至所述当前路由节点的仲 裁器模块,当选择select信号中表示所述第二资源节点的路由请求或上游节点的路由请 求获得路由权时,则所述有优先级地址译码器模块寄存所述第二资源节点的路由包中的目 的地址(x,y)或上游节点的路由包中的目的地址(x,y)并对所述目的地址(x,y)进行译 码,获得的译码结果W六位的有优先级目的方向Destl信号表示并传递给所述当前路由节 点的仲裁器模块进行仲裁;当选择select信号中表示所述第一资源节点的路由请求获得 路有权时,则所述无优先级地址译码器模块寄存所述第一资源节点的路由包中的目的地址 (X,y)并对所述目的地址进行译码,获得的译码结果W六位的无优先级目的方向Dest2信 号表示并传递给所述当前路由节点的仲裁器模块进行仲裁;所述六位的有优先级目的方向 Destl信号和六位的无优先级目的方向Dest2信号的每一位分别表示目的地址相对于所述 当前路由节点为L1方向、L2方向、E方向、N方向、W方向和S方向;所述地址译码器模块根 据所述第一地址的位置坐标(xl,yl)和第二地址的位置坐标(x2,y2)对目的地址(x,y)根 据情况一或情况二进行译码;
[0016] 所述当前路由节点的仲裁器模块接收所述选择select信号、有优先级目的方向 Destl信号和无优先级目的方向Dest2信号;并根据XY优先级顺序对目标地址进行路由通 道分配,分配的结果用36位的连接connection信号表示;
[0017] 所述连接connection信号W每隔六位分别表示目的地址化Y)相对所述当前路 由节点的方向为L1方向、L2方向、E方向、N方向、W方向和S方向;所述每隔六位中的每一 位表示上游节点和第一资源节点和第二资源节点相对于所述当前路由节点的方向为L1方 向、L2方向、E方向、N方向、W方向和S方向;当所述连接connection信号有一位变为高电 平,则表示变为高电平的一位所代表方向上的路由通道被占据,并W六位的占据occupied 信号表示;所述六位占据occupied信号的每一位通过"1"和"0"分别表示所述目的地址 狂,巧相对于所述当前路由节点方向的路由通道是否被占据;所述当前路由节点的仲裁器 模块将所述占据occupied信号传递给所述当前路由节点的输出状态机模块;
[001引当所述路由通道分配结束后,所述当前路由节点的仲裁器模块将所述连接 connection信号传输至所述当前路由节点的交叉开关模块,并将所述占据occupied信号 送入所述当前路由节点的输出状态机模块;
[0019] 所述当前路由节点的仲裁器模块在进行路由通道分配前,将所述选择select信 号通过一级缓存获得仲裁选择select_r信号,所述选择select信号表示所述当前路由节 点的仲裁器模块在进行路由通道分配时的路由权,所述仲裁选择select_r表示所述当前 路由节点的仲裁器模块在进行上一次路由通道分配时的路由权;
[0020] 若所述选择select信号中表示所述第一资源节点的当前路由权与所述仲裁选 择select_r信号中表示第一资源节点的上一次路由权不同时,用无优先级路由权变化 select-ChangeO 信号表不;
[0021] 若所述选择select信号中表示第二资源节点或上游节点的当前路由权与所述仲 裁选择select_r信号中表示第二资源节或上游节点的上一次路由权不同时,用有优先级 路由权变化select_changel信号表示;
[0022] 若所述无优先级路由权变化select_changeO信号和所述有优先级路由权变化 select_changel信号同时变为高电平时,贝Ij用路由权同时变化select_change2信号表示;
[0023] 所述仲裁器模块根据所述无优先级路由权变化select_changeO信号、有优先级 路由权变化select_changel信号和路由权同时变化select_change2信号,对获得路有权 的上游节点或资源节点的请求按方式a或方式b进行路由通道的分配;
[0024] 用6位的已分配grant信号和未分配deny信号表示是否分配了通道,所述已分 配grant信号和未分配deny信号中每一位对应所述当前路由节点上游节点和资源节点的 方向;通道分配结束后向被授权仲裁且成功分配通道的请求方向的输入状态机反馈已分配 grant信号,向被授权仲裁但没有分配通道的请求方向的输入状态机反馈未分配deny信 号;如果所述仲裁器模块接受到下游节点返回的失败化il信号或者取消cancel信号,贝U 将所述connection信号中代表所述下游节点方向的6位信号全部拉低;同时接受到失败 化il信号时,根据connection信号向上游节点和资源节点返回deny信号;
[0025] 所述交叉开关模块包含3个的交叉开关分别为交叉开关0,交叉开关1,交叉开关 2,所述3个交叉开关均接6个所述输入状态机模块和6个所述输出状态机,所述交叉开关0 根据所述connection信号将6个所述输入状态机模块各自的数据^c_data信号传输至6 个所述输出状态机模块;所述交叉开关1根据所述connection信号将6个所述输入状态机 模块各自的数据有效fwd信号传输至6个所述输出状态机模块;所述交叉开关2根据所述 connection信号将6个所述输出状态机模块各自的路由成功化ck信号和取消链路Cancel 信号传输至6个所述输入状态机模块;
[0026] 所述输出状态机模块的工作状态包括;空闲态IDLE,锁定态LOCK ;所述输出状态 机的初始状态为所述空闲态IDLE ;
[0027] 当所述输出状态机模块所对应的所述占据occupied信号被拉高时,表示所述输 出状态机已经被分配为一个路由请求的输出端口,所述输出状态机模块的工作状态由初始 的空闲态IDLE变为锁定态LOCK ;当所述输出状态机模块的工作状态为锁定态LOCK时,贝U 拉高请求路由stb信号;同时将所述交叉开关模块传输过来的数据^c_data信号和数据有 效fwd信号传输至与其相连接的下游节点或第一资源节点或第二资源节点的输入状态机 模块;所述输出状态机接收到下游节点的输入状态机模块传输的取消链路Cancel信号或 路由失败化il信号时,工作状态由锁定态LOCK变为空闲态IDLE ;并将下游节点的输入状 态机返回的路由成功pack信号和取消链路Cancel信号传输至所述交叉开关模块;所述输 出状态机模块还将下游节点返回的取消链路Cancel信号和路由失败化il信号传输至所述 仲裁器模块用于释放通讯链路。
[002引本发明所述的基于二维网格的片上网络的双接入结构的特点也在于,
[0029] 所述情况一为:当所有资源节点所连接的两个路由节点均在Y维上,则按照方式 一或方式二进行译码:
[0030] 所述方式一为:
[003U 当yl-y2 = 1,且xl = x2时龙X〉X2 ;则判断目标地址化Y)的方向相对于所述 当前路由节点为E方向,若X<X2,则判断目标地址化巧的方向相对于所述当前路由节点为 W方向,若Y〉Y2,则判断目的地址化Y)的方向相对于所述当前路由节点为N方向,若Y<Y2, 则判断目标地址化巧的方向相对于所述当前路由节点为s方向;当目标地址化巧与第 一地址的位置坐标狂1,Y1)相同时,则判断目标地址化Y)的方向相对于所述当前路由节 点为L1方向和N方向;当目标地址化Y)与第二地址的位置坐标狂2, Y2)相同时,则判断 目标地址化巧的方向相对于所述当前路由节点为L2方向和S方向;
[0032] 所述方式二为;
[003引 当Y2-Y1 = 1,且XI = X2时龙X〉X2 ;则判断目标地址化Y)的方向相对于所述 当前路由节点为E方向,若X<X2,则判断目标地址化巧的方向相对于所述当前路由节点为 W方向,若Y〉Y2,则判断目的地址化Y)的方向相对于所述当前路由节点为N方向,若Y<Y2, 则判断目标地址化巧的方向相对于所述当前路由节点为S方向;当目标地址化巧与第 一地址的位置坐标狂1,Y1)相同时,则判断目标地址化Y)的方向相对于所述当前路由节 点为L1方向和S方向;当目标地址化Y)与第二地址的位置坐标狂2, Y2)相同时,则判断 目标地址化巧的方向相对于所述当前路由节点为L2方向和N方向;
[0034] 所述情况二为:当所有资源节点所连接的两个路由节点均在X维上,则按照方式 =或方式四进行译码:
[0035] 所述方式S为:
[0036] 当X1-X2 = 1,且Y1 = Y2时龙X〉X2 ;则判断目标地址化Y)的方向相对于所述 当前路由节点为E方向,若X<X2,则判断目标地址化巧的方向相对于所述当前路由节点为 W方向,若Y〉Y2,则判断目的地址化Y)的方向相对于所述当前路由节点为N方向,若Y<Y2, 则判断目标地址化巧的方向相对于所述当前路由节点为S方向;当目标地址化巧与第 一地址的位置坐标狂1,Y1)相同时,则判断目标地址化Y)的方向相对于所述当前路由节 点为L1方向和W方向;当目标地址化Y)与第二地址的位置坐标狂2, Y2)相同时,则判断 目标地址化巧的方向相对于所述当前路由节点为L2方向和E方向;
[0037] 所述方式四为:
[0038] 当X2-X1 = 1,且Y1 = Y2时;若X〉X2 ;则判断目标地址化Y)的方向相对于所述 当前路由节点为E方向,若X<X2,则判断目标地址化巧的方向相对于所述当前路由节点为 W方向,若Y〉Y2,则判断目的地址化Y)的方向相对于所述当前路由节点为N方向,若Y<Y2, 则判断目标地址化巧的方向相对于所述当前路由节点为S方向;当目标地址化巧与第 一地址的位置坐标狂1,Y1)相同时,则判断目标地址化Y)的方向相对于所述当前路由节 点为L1方向和E方向;当目标地址化Y)与第二地址的位置坐标狂2, Y2)相同时,则判断 目标地址化巧的方向相对于所述当前路由节点为L2方向和W方向。
[0039] 所述XY优先级顺序为如下方式1和方式2 ;
[0040] 所述方式1为:
[0041] 所述第一资源节点和所述第二资源节点在进行路由通道分配时,若其中有一方优 先分配X方向路由通道则另一方优先分配Y方向路由通道;若所述上游节点的路由请求来 自X轴方向,则所述当前路由节点在进行路由通道分配时,优先分配X轴方向的路由通道; 若所述上游节点的路由请求来自Y轴方向,则所述当前路由节点在进行通道分配时,优先 分配Y轴方向的路由通道;
[0042] 所述方式2为:
[0043] 所述第一资源节点和所述第二资源节点在进行路由通道分配时,若其中有一方优 先分配X方向路由通道则另一方优先分配Y方向路由通道;若所述上游节点的路由请求来 自X轴方向,则所述当前路由节点在进行路由通道分配时,优先分配Y轴方向的路由通道; 若所述上游节点的路由请求来自Y轴方向,则所述当前路由节点在进行通道分配时,优先 分配X轴方向的路由通道。
[0044] 所述方式a为;
[0045] 若所述无优先级路由权变化select_changeO变为高电平且所述路由权同时变化 select_change2信号为低电平时,贝Ij检测所述选择select信号中表示第一资源节点的路 由权是否获得路由权,对获得路由权的第一资源节点的路由请求,根据所述占据occupied 信号和所述无优先级目的方向Dest2信号按照所述XY优先级顺序对第一资源节点所请求 的目的地址化巧进行路由通道分配;
[0046] 若所述无优先级路由权变化select_changeO变为高电平且所述路由权同时变化 select_change2信号也变为高电平时,则根据所述占据occupied信号、所述有优先级目的 方向Destl信号和所述无优先级目的方向Dest2信号按照所述XY优先级顺序进行路由通 道分配;若没有被占据的通道能够让第二资源节点或上游节点所请求的目的地址化巧和 第一资源节点所请求的目的地址化Y)进行同时分配,则同时进行分配;
[0047] 如果没有被占据的通道不能够让有优先级的资源节点或路由节点的请求的目的 地址和无优先级的资源节点请求的目的地址同时分配,则只为有优先级的资源节点或路由 节点的请求的目的地址分配通道;若所述有优先级路由权变化select_changel信号变为 高电平,则检测所述选择select信号中表示有优先级的资源节点或路由节点的路由权,若 被授权就根据所述占据occupied信号和所述有优先级目的方向Destl信号按照所述XY优 先级顺序对有优先级的资源节点或路由节点的请求的目的地址进行通道分配;
[0048] 所述方式b为:
[0049] 若所述无优先级路由权变化select_changeO变为高电平且所述路由权同时变化 select_change2信号保持低电平,则检测所述选择select信号中表示当前无优先级的资 源节点的路由权,若被授权就根据所述占据occupied信号和所述无优先级目的方向Dest2 信号按照所述XY优先级顺序对无优先级的资源节点请求的目的地址进行通道分配;若所 述有优先级路由权变化select_changel信号变为高电平,贝ij检测所述选择select信号中 表示有优先级的资源节点或路由节点的路由权,若被授权就根据所述占据occupied信号 和所述有优先级目的方向Destl信号按照所述XY优先级顺序对有优先级的资源节点或 路由节点的请求的目的地址进行通道分配;若所述有优先级路由权变化select_changel 变为高电平且所述路由权同时变化select_change2信号也变为高电平,则根据所述占据 occupied信号和所述有优先级目的方向Destl信号和所述无优先级目的方向Dest2信号按 照所述XY优先级顺序进行通道分配;如果没有被占据的通道能够让有优先级的资源节点 或路由节点请求的目的地址和无优先级的资源节点请求的目的地址同时分配通道,则同时 进行分配;若果没有被占据的通道不能够让有优先级的资源节点或路由节点的请求的目的 地址和无优先级的资源节点请求的目的地址同时分配,则只为无优先级的资源节点的请求 的目的地址分配通道。
[0化0] 采用所述方式a或方式b的过程中是按如下步骤判定没有被占据的通道能否同时 分配给两个请求:
[0051] 步骤1、将有优先级目的方向destl和无优先级目的方向dest2相或获得结果一;
[0052] 步骤2、将占据occupied信号取反,与所述结果一进行相与获得6位的所有通道 all_channel 信号;
[0化3] 步骤3、统计所述所有通道all_channel信号中"1"的个数;若"1"的个数大于或 等于2个,则表示未被占据的通道可能同时分配给两个请求;
[0化4] 步骤4、将占据occupied信号取反,分别与有优先级目的方向destl信号和无优先 级目的方向dest2信号相与获得结果S和结果四,如果结果S和结果四都含有"1",则表示 所述未被占据的通道可W同时分配给两个请求。
[0化5] 与现有技术相比,本发明的有益技术效果体现在:
[0056] 1、本发明设计了一种基于2维网格(2D-mesh)的双接入片上网络,由于它的每个 路由节点都连接两个资源节点,因此两个资源节点可W同时通过该路由节点向外发数据, 从而提高了单个路由节点的吞吐量;同时又由于每个资源节点都连接两个路由节点,使得 每个资源节点可W同时进入两路数据,进而使得资源节点在做双目运算时可W采用全流模 式,提高了资源节点的运算速度,减少资源节点间数据传输时间;由此可见双接入片上网路 在整体上提高了整个系统的运行效率。
[0化7] 2、本发明由于使用了优先级编码器模块,其优先级设计方式,使得每个通讯节点 可W同对L1方向请求和L2, E,N,W,S五个方向请求中的一路请求总共两路进行授权译码 和仲裁;该种结构设计使得每个通讯节点可W同时处理两个来自资源节点的请求,或者是 一个来自资源节点一个来自上游路由节点的请求。
[0化引 3、本发明由于使用了地址译码器模块,设计了一种适用于双接入的译码方式;该 译码模块使用了两个译码模块,使得每个路由节点可W同时对两个已授权请求的目的地址 进行译码;保证了两个资源节点可W同时使用同一个路由节点向外发送数据;同时在译码 时采用了一种遍历方法,即在译码时判定目标地址为L1方向时同时判定目标地址在N方 向,在判定目标地址为L2方向时同时判定目标地址在S方向;该样使得两路数据在同时进 入一个资源节点时会遍历该资源节点所连接的两个路由节点;保证了网络上目的相同的两 路数据可W通过遍历与目的节点相连接的两个路由节点使该两路数据可W同时到达同一 个目的节点。
[0化9] 4、本发明由于使用了仲裁器模块,设计了一种适用于双接入的仲裁方式;该仲裁 方式包括了路由权监控机制和特殊的优先级级设定;路由权监控机制通过对选择select 信号的监控来区分请求的类型,避免了由于目的地址到达仲裁器模块的时间不同W及目的 地址之间的竞争而产生输出路由通道的误分配或者是不能分配输出路由通道的情况;特殊 的优先级设计在输出路由通道的分配过程中针对不同的请求为其优先分配某个方向的输 出路由通道;使得当一个通讯节点在同时传输两路数据时,避免了该两路数据在传输过程 中互相堵塞而导致不能同时到达目的节点的情况,进而使得两路数据都能安全的到达目的 节点;进而实现一个通讯节点同时传输两路数据的目的。

【专利附图】

【附图说明】
[0060] 图1位传统的2D-mesh网络的结构示意图;
[0061] 图2为本发明实施例中4x4双端口网络的结构示意图;
[0062] 图3为本发明实施例中单个路由节点的结构图;
[0063] 图4为本发明实施例中路由节点和资源节点之间的方位示意图;
[0064] 图5为本发明实施例中适用于双接入的译码方式示意图;
[00化]图6为本发明仲裁器中connection信号的低6位不意图;
[0066] 图7为本发明仲裁器中路由权监控方式a示意图;
[0067] 图8为本发明仲裁器中路由权监控方式b示意图;
[0068] 图9为本发明单个方向路由请求处理流程示意图。

【具体实施方式】
[0069] 本实施例中,片上网络包括:若干个路由节点、若干个资源节点和若干条路由通 道;任意一个资源节点能通过路由通道连接在两个相邻的路由节点上,一个路由节点能通 过路由通道同时与两个不同的资源节点相连;任意两个相邻的路由节点通过路由通道相邻 接;由邻接的路由节点形成二维网格;并在每个路由节点上挂接第一资源节点和第二资源 节点,且资源节点所连接的两个路由节点在同一维度上;W二维网格任一顶点上的路由节 点为原点0,与顶点上的路由节点相通连的两条路由通道分别X轴和Y轴,建立坐标系0XY ; 并W X轴的正方向为E方向,W X轴的负方向为W方向,W Y轴的正方向为N方向,W Y轴 的负方向为S方向;如图2所示,在本实施例中设计了一个4X4的双接入片上网络,其中方 块代表路由节点,圆圈代表资源节点;同时根据所建立的坐标系为每个路由节点和资源节 点规定对应的坐标。如图4所示,每个路由节点都有六个方向,其中E,N,W,S四个方向连 接的是路由节点,L1方向连接的是第一资源节点,L2方向连接的是第二资源节点。
[0070] 在本实施例中,当任意两个路由节点进行通信时,定义发送路由包的资源节点为 请求方节点,由该资源节点首先发送路由请求包至于其连接的路由节点,该路由请求包经 过路由节点的路由会在片上网络上形成一条到达连接目的资源节点的路由节点的路由通 路,接收路由包的资源节点为目的方节点;路由包沿着所经过的路由节点的顺序,定义所经 过的任意一个路由节点均是W上一个路由节点为上游节点,W下一个路由节点为下游节点 的当前路由节点;当路由请求包将从请求方节点到目的方节点的路由通路建立后,请求方 节点通过该路由通路向目的方节点发送有效数据,待数据发送完毕后由目的方节点通过路 由通路逐级返回链路撤销信号,从而将已建立的路由通路取消掉,一次通信完毕。
[0071] 如图3所示,路由节点的组成包括;6个输入状态机模块,优先级编码器模块,地址 译码器模块,仲裁器模块,交叉开关模块和6个输出状态机模块;输入状态机模块包括地址 寄存器;
[0072] 输入状态机模块的工作状态包括;空闲状态IDLE、请求状态REQ、半锁定状态 PRELOCK、锁定状态LOCK和失败状态FAIL ;输入状态机的初始状态为空闲状态IDLE ;
[0073] 当请求方节点向目的方节点发送路由请求时,路由请求包括请求路由S忧信号, 数据化c_data信号和数据有效Fwd信号,并通过数据^c_data信号发送包含目的地址 (X,y)的路由包;此时路由请求中请求路由S忧信号拉高,数据^c_data信号传输的是路 由包,数据有效fwd信号拉低标志此时传输的并非有效数据;路由请求依次经过连接请求 方节点和目的方节点的各路由节点;若在路由通道上所经过的当前路由节点的输入状态机 接收到上游节点发送的请求路由S忧信号为高电平,则当前路由节点的输入状态机模块的 工作状态由初始的空闲状态IDLE变为请求状态REQ并将路由包中包含的目的地址(X,y) 存入地址寄存器中;在请求状态REQ下,输入状态机模块向优先级编码器模块转发请求路 由S忧信号;并将目的地址(X,y)发送给地址译码器模块;
[0074] 若当前路由节点的输入状态机模块接收到仲裁器模块返回的无法分配Deny信 号,则输入状态机模块的工作状态由请求状态REQ变为失败状态FAIL并向上游节点的输 出状态机模块发送路由失败化il信号;上游节点接收到路由失败化il信号后将请求路由 stb信号变为低电平,从而取消路由请求,当前路由节点的输入状态机由失败状态FAIL变 为空闲状态IDLE ;路由失败化il信号通过请求方节点与当前路由节点建立的半锁定路由 通道逐级返回直至请求方节点,并逐级将该条半锁定路由通路撤销掉,当请求方节点接受 到路由失败化il信号后会拉低路由请求stb信号,在等待若干个周期后再次拉高请求路由 S忧信号,再次发送路由请求。
[0075] 若当前路由节点的输入状态机模块接收到当前路由节点的仲裁器模块返回的已 分配Grant信号,则当前路由节点的输入状态机模块的工作状态由请求状态REQ变为半锁 定状态PRELOCK并等待下游节点返回的路由成功化ck信号;至此当前路由节点与请求方节 点之间已经建立了一条半锁定链路。
[0076] 若当前路由节点的输入状态机模块接收到当前路由节点的交叉开关模块返回的 路由成功化ck信号;交叉开关模块返回的路由成功化ck信号是由下游节点或目的节点返 回至当前路由节点的输出状态机模块,再通过输出状态机模块发送至交叉开关模块的;贝。 当前路由节点的输入状态机模块的工作状态由半锁定状态PRELOCK变为锁定状态LOCK并 向上游节点转发路由成功化ck信号;上游节点接收并通过之前建立的半锁定路依次传递 路由成功化ck信至请求方节点,将之前建立的半锁定路由通路全部变为锁定路由通路,由 此建立一条通过各路由节点连接请求方节点和目的方节点的通讯链路,当请求方接收到路 由成功化ck信号后,将数据有效Fwd信号变为高电平,此时路由请求包中请求路由S忧信 号和数据有效fwd信号同时拉高,并利用数据^c_data信号通过通讯链路将数据包发送至 目的方节点;目的方节点接收完数据包后,数据包中包括尾包,尾包标志数据传输完毕,当 目的节点接收到尾包后通过通讯链路返回取消链路Cancel信号至请求方节点;当前路由 节点通过自身的输出状态机模块接收到取消链路Cancel信号时,取消链路Cancel信号通 过交叉开关模块发送至对应的输入状态机模块,当前路由节点的输入状态机模块的工作状 态由锁定状态LOCK变为空闲状态IDLE ;请求方节点接收到取消链路Cancel信号后,将请 求路由stb信号变为低电平化及数据有效Fwd信号变为低电平,从而取消通讯链路;
[0077] 如图4所示,由于每个路由节点连接六个方向,分别为East, No;rth,West, South 四个方向的路由节点和L1,L2方向的资源节点。所W在进行路由时必须设定一定的优先级 防止各个方向的请求在同一时刻到来时发生竞争,所谓的优先级为当有多个方向同时请求 时只给优先级高的请求路由权;当前路由节点的优先级编码器接收上游节点(上游节点指 的是来自East, Ncxrth,West, South方向的路由节点)的路由请求W及与当前路由节点相 连的第一资源节点(L1方向的资源节点)和第二资源节点(L2方向的资源节点)的路由请 求时,则根据所定义的优先级顺序获得路由权,优先级顺序为;定义第一资源节点没有优先 级,则第一资源节点在请求时能立即获得路由权,定义第二资源节点的优先级高于上游节 点,且上游节点的优先级不同,本实施例中,优先级设定为L2〉East〉Ncxrth〉West乂outh ;该 样的优先级设计能保证每个路由节点在某一时刻可w同时让两个方向的请求获得路由请 求,L1方向的请求和L2, East, Ncxrth,West, South中一个方向的请求,路由权W六位的选 择select信号表示,并通过优先级编码器传输至当前路由节点的地址译码器模块;六位选 择select信号的每一位通过"1"和"0"分别表示上游节点的路由请求和资源节点的路由 请求是否获得路由权,本实施例中,select信号从第0位到第5位分别表示11,12, East, Ncxrth,West, South方向,用1来表示获得路由权;
[007引译码器模块接受从6个输入状态机传输过来的目的地址,根据优先级编码器的编 码结果对获得路由权的方向传过来的目的地址进行译码;由于每个路由节点会连接至两个 资源节点,为了让数据能通过一个路由节点分别到达与它连接两个资源节点则译码模块因 该有两个地址分别表示与其相连接的两个资源节点同时又由于优先级编码器可能同时让 两个方向的请求同时获得路由权,因此译码器模块也因包含两个译码模块同时对该两个方 向的目的地址进行译码,所W当前路由节点的地址译码器模块包含第一地址和第二地址、 有优先级译码模块和无优先级译码模块;第一地址和第二地址分别为与当前路由节点相连 的第一资源节点的位置坐标(XI,yl)和第二资源节点的位置坐标(x2, y2);第一资源节 点相对于当前路由节点的方向为L1方向,第二资源节点相对于当前路由方向为L2方向; 地址译码器模块将所接收的选择select信号转发至当前路由节点的仲裁器模块,当选择 select信号中表示第二资源节点的路由请求或上游节点的路由请求获得路由权时,则有优 先级地址译码器模块寄存第二资源节点的路由包中的目的地址(x,y)或上游节点的路由 包中的目的地址(x,y)并对目的地址(x,y)进行译码,获得的译码结果W六位的有优先级 目的方向Destl信号表示并传递给当前路由节点的仲裁器模块进行仲裁;当选择select信 号中表示第一资源节点的路由请求获得路有权时,则无优先级地址译码器模块寄存第一资 源节点的路由包中的目的地址(x,y)并对目的地址进行译码,获得的译码结果W六位的无 优先级目的方向Dest2信号表示并传递给当前路由节点的仲裁器模块进行仲裁;六位的有 优先级目的方向Destl信号和六位的无优先级目的方向Dest2信号的每一位分别表示目的 地址相对于当前路由节点为L1方向、L2方向、E方向、N方向、W方向和S方向;本实施例 中,Destl和Dest2信号从第0位到第5位分别表示目的地址相对于当前路由节点分别为 11,L2, East, No;rth,West, South方向;地址译码器模块根据第一地址的位置坐标(xl,yl) 和第二地址的位置坐标(x2, y2)对目的地址(x,y)根据情况一或情况二进行译码;
[0079] 情况一为:当所有资源节点所连接的两个路由节点均在Y维上,则按照方式一或 方式二进行译码:
[0080] 方式一为;
[0081] 当yl-y2 = 1,且xl = x2时龙x〉x2 ;则判断目标地址(X,y)的方向相对于当前 路由节点为E方向,若x<x2,则判断目标地址(x,y)的方向相对于当前路由节点为W方向, 若y〉y2,则判断目的地址(X,y)的方向相对于当前路由节点为N方向,若y<y2,则判断目标 地址(x,y)的方向相对于当前路由节点为S方向;当目标地址(x,y)与第一地址的位置坐 标(xl,yl)相同时,则判断目标地址(X,y)的方向相对于当前路由节点为L1方向和N方向; 当目标地址(x,y)与第二地址的位置坐标(x2, y2)相同时,则判断目标地址(x,y)的方向 相对于当前路由节点为L2方向和S方向;
[0082] 方式二为;
[008引 当y2-yl = 1,且xl = x2时龙x〉x2 ;贝ij判断目标地址(X, y)的方向相对于当前 路由节点为E方向,若x<x2,则判断目标地址(x,y)的方向相对于当前路由节点为W方向, 若y〉y2,贝ij判断目的地址(X, y)的方向相对于当前路由节点为N方向,若y<y2,贝ij判断目标 地址(x,y)的方向相对于当前路由节点为S方向;当目标地址(x,y)与第一地址的位置坐 标(xl,yl)相同时,贝Ij判断目标地址(X, y)的方向相对于当前路由节点为L1方向和S方向; 当目标地址(x,y)与第二地址的位置坐标(x2, y2)相同时,则判断目标地址(x,y)的方向 相对于当前路由节点为L2方向和N方向;
[0084] 情况二为:当所有资源节点所连接的两个路由节点均在X维上,则按照方式S或 方式四进行译码:
[0085] 方式S为;
[0086] 当xl-x2 = 1,且yl = y2时龙XXK2 ;则判断目标地址(X, y)的方向相对于当前 路由节点为E方向,若x<x2,则判断目标地址(x,y)的方向相对于当前路由节点为W方向, 若y〉y2,贝Ij判断目的地址(X, y)的方向相对于当前路由节点为N方向,若y<y2,贝Ij判断目标 地址(x,y)的方向相对于当前路由节点为S方向;当目标地址(x,y)与第一地址的位置坐 标(xl,yl)相同时,贝Ij判断目标地址(X, y)的方向相对于当前路由节点为L1方向和W方向; 当目标地址(x,y)与第二地址的位置坐标(x2, y2)相同时,则判断目标地址(x,y)的方向 相对于当前路由节点为L2方向和E方向;
[0087] 方式四为;
[00能]当x2-xl = 1,且yl = y2时龙X〉X2 ;则判断目标地址(X,y)的方向相对于当前 路由节点为E方向,若x<x2,则判断目标地址(x,y)的方向相对于当前路由节点为W方向, 若y〉y2,贝Ij判断目的地址(X, y)的方向相对于当前路由节点为N方向,若y<y2,贝Ij判断目标 地址(x,y)的方向相对于当前路由节点为S方向;当目标地址(x,y)与第一地址的位置坐 标(xl,yl)相同时,贝Ij判断目标地址(X, y)的方向相对于当前路由节点为L1方向和E方向; 当目标地址(x,y)与第二地址的位置坐标(x2, y2)相同时,则判断目标地址(x,y)的方向 相对于当前路由节点为L2方向和W方向;
[0089] 该种译码方式可W保证两路数据在传输至同一个目的节点时,可W遍历与该目的 节点相连接的两个路由节点;如图5所示,当路由请求req2经过译码仲裁后已经占据了 routerl的L1方向路由通路,此时reql获得了路由权,他的目的地址和req2 -样,但此时 L1方向的路由通路已经被req2占据,此时使用该种路由方式的话,reql会向routerl的N 方向传递,通过routerO的L2方向路由通路到达目的节点;
[0090] 当前路由节点的仲裁器模块接收选择select信号、有优先级目的方向Destl信号 和无优先级目的方向Dest2信号;并根据XY优先级顺序对目标地址进行路由通道分配,分 配的结果用36位的连接connection信号表示;
[0091] XY优先级顺序为如下方式1和方式2 ;
[0092] 方式1为;
[0093] 第一资源节点和第二资源节点在进行路由通道分配时,若其中有一方优先分配X 方向路由通道则另一方优先分配Y方向路由通道;若上游节点的路由请求来自X轴方向,贝U 当前路由节点在进行路由通道分配时,优先分配X轴方向的路由通道;若上游节点的路由 请求来自Y轴方向,则当前路由节点在进行通道分配时,优先分配Y轴方向的路由通道;
[0094] 方式2为;
[0095] 第一资源节点和第二资源节点在进行路由通道分配时,若其中有一方优先分配X 方向路由通道则另一方优先分配Y方向路由通道;若上游节点的路由请求来自X轴方向,贝U 当前路由节点在进行路由通道分配时,优先分配Y轴方向的路由通道;若上游节点的路由 请求来自Y轴方向,则当前路由节点在进行通道分配时,优先分配X轴方向的路由通道。
[0096] 连接connection信号W每隔六位分别表示输出路由通道相对当前路由节点的方 向为L1方向、L2方向、E方向、N方向、W方向和S方向;本实施例中,用第0位到第5位, 第6位到第11位,第12位到第17位,第18位到第23位,第24位到第29位,第30位到 第35化分别表示方向为L1,L2, East, No;rth,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信号中该一位表示了请求时从哪个方向来同时该个请求要往哪个方向 去,并W六位的占据occupied信号表示;将connection信号的每六位自或,做为occupied 信号的每一位;例如若connection信号中第0位到第5位中有一位被拉高,则该六位自或 的结果为"1",表示通向L1方向的路由通道已经被占据;六位占据occupied信号的每一位 通过"1"和"0"分别表示目的地址化Y)相对于当前路由节点方向的路由通道是否被占 据;本实施例中,用"1"表示被占据"0"表示未被占据;当前路由节点的仲裁器模块将占据 occupied信号传递给当前路由节点的输出状态机模块;其中第0位表示L1方向输出路由 通道被占据,第1位代表L2方向输出路由通道被占据,第2位代表E方向输出路由通道被 占据,第3位代表N方向输出路由通道被占据,第4位代表W方向输出路由通道被占据,第 5位代表S方向输出路由通道被占据。
[0097] 连接connection信号和占据occupied信号初始状态全部为0 ;每次仲裁时都会 对连接connection信号和占据occupied信号进行刷新;当路由通道分配结束后,当前路由 节点的仲裁器模块将连接connection信号传输至当前路由节点的交叉开关模块,并将占 据occupied信号送入当前路由节点的输出状态机模块;6位occupied信号分别送入6个 输出状态机模块;
[009引当前路由节点的仲裁器模块在进行路由通道分配前,将选择select信号通过一 级缓存获得仲裁选择select_r信号,缓存后的select_r信号会存储在一个寄存器中,比 select信号晚一个周期,即select信号变化后一个周期select_r信号才会变化,所W选 择select信号表示当前路由节点的仲裁器模块在进行路由通道分配时的路由权,仲裁选 择select_r表示当前路由节点的仲裁器模块在进行上一次路由通道分配时的路由权;根 据select信号来分配输出路由通道,根据select和select_r是否一致来判定当前是否有 新的请求获得了路由权从而要进行输出路由通道的分配;
[0099] 若选择select信号中表示第一资源节点的当前路由权与仲裁选择select_r信号 中表示第一资源节点的上一次路由权不同时,用无优先级路由权变化select_changeO信 号表不;
[0100] 若选择select信号中表示第二资源节点或上游节点的当前路由权与仲裁选择 3616(3*_1'信号中表示第二资源节或上游节点的上一次路由权不同时,用有优先级路由权变 化select_changel信号表示;
[0101] 若无优先级路由权变化select_changeO信号和有优先级路由权变化select_ changel信号同时变为高电平时,则用路由权同时变化select_change2信号表示;
[0102] 仲裁器模块根据无优先级路由权变化select_changeO信号、有优先级路由权变 化select_changel信号和路由权同时变化select_change2信号,对获得路有权的上游节 点或资源节点的请求按方式a或方式b进行路由通道的分配;方式a和方式b是两种路由 权监控机制,由于仲裁器在某一时刻可能同时为两个请求分配路由通道,该种监控方式能 够很好的避免该两个方向请求之间的竞争;
[0103] 如图7所示,方式a为;
[0104] 若无优先级路由权变化select_changeO变为高电平且路由权同时变化select_ change2信号为低电平时,则检测选择select信号中表示第一资源节点的路由权是否获得 路由权,对获得路由权的第一资源节点的路由请求,根据占据occupied信号和无优先级目 的方向Dest2信号按照XY优先级顺序对第一资源节点所请求的目的地址(X,y)进行路由 通道分配;
[01化]若无优先级路由权变化select_changeO变为高电平且路由权同时变化select_ changes信号也变为高电平时,则根据占据occupied信号、有优先级目的方向Destl信号和 无优先级目的方向Dest2信号按照XY优先级顺序进行路由通道分配;若没有被占据的通道 能够让第二资源节点或上游节点所请求的目的地址(x,y)和第一资源节点所请求的目的 地址(x,y)进行同时分配,则同时进行分配;若果没有被占据的通道不能够让有优先级的 资源节点或路由节点的请求的目的地址和无优先级的资源节点请求的目的地址同时分配, 则只为有优先级的资源节点或路由节点的请求的目的地址分配通道;
[0106] 若有优先级路由权变化select_changel信号变为高电平,贝Ij检测选择select信 号中表示有优先级的资源节点或路由节点的路由权,若被授权就根据占据occupied信号 和有优先级目的方向Destl信号按照XY优先级顺序对有优先级的资源节点或路由节点的 请求的目的地址进行通道分配;
[0107] 如图8所示,方式b为;
[010引若无优先级路由权变化select_changeO变为高电平且路由权同时变化select_ change2信号保持低电平,则检测选择select信号中表示当前无优先级的资源节点的路由 权,若被授权就根据占据occupied信号和无优先级目的方向Dest2信号按照XY优先级顺 序对无优先级的资源节点请求的目的地址进行通道分配;
[0109] 若有优先级路由权变化select_changel信号变为高电平且路由权同时变化 select_change2信号保持低电平,,则检测选择select信号中表示有优先级的资源节点或 路由节点的路由权,若被授权就根据占据occupied信号和有优先级目的方向Destl信号按 照XY优先级顺序对有优先级的资源节点或路由节点的请求的目的地址进行通道分配;
[0110] 若有优先级路由权变化select_changel变为高电平且路由权同时变化select_ changes信号也变为高电平,则根据占据occupied信号和有优先级目的方向Destl信号和 无优先级目的方向Dest2信号按照XY优先级顺序进行通道分配;如果没有被占据的通道能 够让有优先级的资源节点或路由节点请求的目的地址和无优先级的资源节点请求的目的 地址同时分配通道,则同时进行分配;若果没有被占据的通道不能够让有优先级的资源节 点或路由节点的请求的目的地址和无优先级的资源节点请求的目的地址同时分配,则只为 无优先级的资源节点的请求的目的地址分配通道。
[0111] 采用方式a时或方式b的过程中,通过采用如下的方法来判定没有被占据的通道 能不能同时分配给两个请求:
[0112] 第一步将有优先级目的方向destl和无优先级目的方向dest2相或;表示两个请 求的所有可能输出方向有几个;
[0113] 第二步将占据occupied信号取反,与第一步的结果相与得到6位的所有通道all_ channel信号;表不在可能的输出方向中未被占据的方向的输出通道有几个;
[0114] 第S步统计所有通道all_channel信号中"1"的个数;如果为1的个数大于或等 于2则表示未被占据的通道可能同时分配给两个路由请求;
[0115] 第四步将占据occupied信号取反,分别与有优先级目的方向destl信号和无优先 级目的方向dest2信号相与,如果两个相与得结果都有"1"则表示没有被占据的通道可W 同时分配给该两个请求。
[0116] 另外也可W用所有all_channel信号中"1"的个数大于或者等于3作为可分配的 路由通道能同时分配给两个请求的标志。
[0117] 用6位的已分配grant信号和未分配deny信号表示是否分配了通道,已分配 grant信号和未分配deny信号中每一位对应当前路由节点上游节点和资源节点的方向;即 grant信号和deny信号分别连接至6个输入状态机;通道分配结束后向被授权仲裁且成功 分配通道的请求方向的输入状态机反馈已分配grant信号,将grant信号中连接该一方向 输入状态机的那一位拉高;向被授权仲裁但没有分配通道的请求方向的输入状态机反馈未 分配deny信号;将deny信号中连接该一方向输入状态机的那一位拉高;如果仲裁器模块 接受到下游节点返回的失败化il信号或者取消cancel信号,则将connection信号中代表 下游节点方向的6位信号全部拉低为0 ;同时接受到失败化il信号时,根据connection信 号向上游节点和资源节点返回deny信号;例如,接受到来自L1方向的化il信号,则根据 connection信号中的第0位至第5位向相应的请求输入方向返回deny信号;
[0118] 交叉开关模块包含3个6X6的交叉开关分别为交叉开关0,交叉开关1,交叉开关 2, 3个交叉开关均接6个输入状态机模块和6个输出状态机,因为connection信号中的每 一位都对应固定的输入方向和固定的输出方向,贝ij交叉开关0根据connection信号将6个 输入状态机模块各自的数据^c_data信号传输至6个输出状态机模块;交叉开关1根据 connection信号将6个输入状态机模块各自的数据有效fwd信号传输至6个输出状态机模 块;交叉开关2根据connection信号将6个输出状态机模块各自的路由成功化ck信号和 取消链路Cancel信号传输至6个输入状态机模块;
[0119] 输出状态机模块的工作状态包括;空闲态IDLE,锁定态LOCK ;输出状态机的初始 状态为空闲态IDLE ;
[0120] 当输出状态机模块所对应的占据occupied信号被拉高时,表示输出状态机已经 被分配为一个路由请求的输出端口,输出状态机模块的工作状态由初始的空闲态IDLE变 为锁定态LOCK ;当输出状态机模块的工作状态为锁定态LOCK时,则拉高请求路由S忧信 号;同时将交叉开关模块传输过来的数据化c_data信号和数据有效fwd信号传输至与其相 连接的下游节点或第一资源节点或第二资源节点的输入状态机模块;输出状态机接收到下 游节点的输入状态机模块传输的取消链路Cancel信号或路由失败化il信号时;将下游节 点的输入状态机返回的取消链路Cancel信号和路由失败化il信号传输至仲裁器模块用于 释放通讯链路;当通讯链路被释放后,与该条链路相对应的connection信号中的某一位从 "1"变为"0",从而相对应的占据occupied信号中的相对应的某一位从"1"变为"0通讯 链路被释放后输出状态机的工作状态由锁定态LOCK变为空闲态IDLE ;输出状态机模块还 将下游节点的输入状态机返回的路由成功pack信号和取消链路Cancel信号传输至交叉开 关模块;通过交叉开关模块将该些信号转发至相对应的输入状态机,进而转发至上游节点 (请求方);
[0121] 图9所示为单个输入状态机模块和单个输出状态机模块与优先级编码器模块,地 址译码器模块,仲裁器模块相连接的详细结构图,将输入状态机模块和输出状态机模块复 制为6个同时将输入状态机模块和输出状态机模块的输入输出信号复制6倍,就能得到完 整的一个路由节点的详细结构图。
[0122] 本发明方法在Xilinx FPGA开发板Ve;rtex5110t上通过Verilog皿L实现。测试 时使用4*4的网络,改变每个资源节点的发包长度package和发包间隔interval记录平均 吞吐量和平均包延时;表1给出了双接入结构片上网络的平均吞吐量测试结果;表2给出 了传统2D-mesh片上网络的平均吞吐量测试结果;
[012引表1
[0124]
[0125]

【权利要求】
1. 一种基于二维网格的片上网络的双接入结构,其特征是,所述片上网络包括:若干 个路由节点、若干个资源节点和若干条路由通道;任意一个资源节点能通过所述路由通道 连接在两个相邻的路由节点上,一个路由节点能通过所述路由通道同时与两个不同的资源 节点相连;任意两个相邻的路由节点通过所述路由通道相邻接;由所述邻接的路由节点形 成二维网格;并在每个路由节点上挂接第一资源节点和第二资源节点,且所述资源节点所 连接的两个路由节点在同一维度上;以所述二维网格任一顶点上的路由节点为原点0,与 所述顶点上的路由节点相通连的两条路由通道分别X轴和Y轴,建立坐标系0XY ;并以X轴 的正方向为E方向,以X轴的负方向为W方向,以Y轴的正方向为N方向,以Y轴的负方向 为S方向; 当任意两个路由节点进行通信时,定义发送路由包的资源节点为请求方节点,接收所 述路由包的资源节点为目的方节点;所述路由包沿着所经过的路由节点的顺序,定义所经 过的任意一个路由节点均是以上一个路由节点为上游节点,以下一个路由节点为下游节点 的当前路由节点; 所述路由节点的组成包括:输入状态机模块,优先级编码器模块,地址译码器模块,仲 裁器模块,交叉开关模块和输出状态机模块;所述输入状态机模块包括地址寄存器; 所述输入状态机模块的工作状态包括:空闲状态IDLE、请求状态REQ、半锁定状态 PREL0CK、锁定状态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"分别表示 所述上游节点的路由请求和资源节点的路由请求是否获得路由权; 所述当前路由节点的地址译码器模块包含第一地址和第二地址、有优先级译码模块和 无优先级译码模块;所述第一地址和第二地址分别为与所述当前路由节点相连的第一资 源节点的位置坐标(xl,yl)和第二资源节点的位置坐标(x2, y2);所述第一资源节点相 对于所述当前路由节点的方向为L1方向,所述第二资源节点相对于所述当前路由方向为 L2方向;所述地址译码器模块将所接收的选择select信号转发至所述当前路由节点的仲 裁器模块,当选择select信号中表示所述第二资源节点的路由请求或上游节点的路由请 求获得路由权时,则所述有优先级地址译码器模块寄存所述第二资源节点的路由包中的目 的地址(X,y)或上游节点的路由包中的目的地址(X,y)并对所述目的地址(X,y)进行译 码,获得的译码结果以六位的有优先级目的方向Destl信号表示并传递给所述当前路由节 点的仲裁器模块进行仲裁;当选择select信号中表示所述第一资源节点的路由请求获得 路有权时,则所述无优先级地址译码器模块寄存所述第一资源节点的路由包中的目的地址 (x,y)并对所述目的地址进行译码,获得的译码结果以六位的无优先级目的方向Dest2信 号表示并传递给所述当前路由节点的仲裁器模块进行仲裁;所述六位的有优先级目的方向 Destl信号和六位的无优先级目的方向Dest2信号的每一位分别表示目的地址相对于所述 当前路由节点为L1方向、L2方向、E方向、N方向、W方向和S方向;所述地址译码器模块根 据所述第一地址的位置坐标(xl,yl)和第二地址的位置坐标(x2,y2)对目的地址(x,y)根 据情况一或情况二进行译码; 所述当前路由节点的仲裁器模块接收所述选择select信号、有优先级目的方向Destl 信号和无优先级目的方向Dest2信号;并根据XY优先级顺序对目标地址进行路由通道分 配,分配的结果用36位的连接connection信号表示; 所述连接connection信号以每隔六位分别表示目的地址(X,Y)相对所述当前路由节 点的方向为L1方向、L2方向、E方向、N方向、W方向和S方向;所述每隔六位中的每一位表示 上游节点和第一资源节点和第二资源节点相对于所述当前路由节点的方向为L1方向、L2 方向、E方向、N方向、W方向和S方向;当所述连接connection信号有一位变为高电平,贝1J 表示变为高电平的一位所代表方向上的路由通道被占据,并以六位的占据occupied信号 表示;所述六位占据occupied信号的每一位通过" 1"和"0"分别表示所述目的地址(X,Y) 相对于所述当前路由节点方向的路由通道是否被占据;所述当前路由节点的仲裁器模块将 所述占据occupied信号传递给所述当前路由节点的输出状态机模块; 当所述路由通道分配结束后,所述当前路由节点的仲裁器模块将所述连接connection 信号传输至所述当前路由节点的交叉开关模块,并将所述占据occupied信号送入所述当 前路由节点的输出状态机模块; 所述当前路由节点的仲裁器模块在进行路由通道分配前,将所述选择select信号通 过一级缓存获得仲裁选择select_r信号,所述选择select信号表示所述当前路由节点的 仲裁器模块在进行路由通道分配时的路由权,所述仲裁选择select^表示所述当前路由 节点的仲裁器模块在进行上一次路由通道分配时的路由权; 若所述选择select信号中表示所述第一资源节点的当前路由权与所述仲裁选 择select^信号中表示第一资源节点的上一次路由权不同时,用无优先级路由权变化 select_changeO 信号表不; 若所述选择select信号中表示第二资源节点或上游节点的当前路由权与所述仲裁选 择select^信号中表示第二资源节或上游节点的上一次路由权不同时,用有优先级路由 权变化select_changel信号表示; 若所述无优先级路由权变化select_changeO信号和所述有优先级路由权变化 select_changel信号同时变为高电平时,贝1」用路由权同时变化select_change2信号表示; 所述仲裁器模块根据所述无优先级路由权变化seleCt_ChangeO信号、有优先级路由 权变化select_changel信号和路由权同时变化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个所述输入状态机 模块各自的数据有效fVd信号传输至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维上,则按照方式一或 方式二进行译码: 所述方式一为: 当yl-y2 = 1,且xl = x2时;若X>X2 ;则判断目标地址(X,Y)的方向相对于所述当前 路由节点为E方向,若X〈X2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为W方 向,若Y>Y2,则判断目的地址(X,Y)的方向相对于所述当前路由节点为N方向,若Y〈Y2,则 判断目标地址(X,Y)的方向相对于所述当前路由节点为S方向;当目标地址(X,Y)与第一 地址的位置坐标(XI,Y1)相同时,则判断目标地址(X,Y)的方向相对于所述当前路由节点 为L1方向和N方向;当目标地址(X,Y)与第二地址的位置坐标(X2, Y2)相同时,则判断目 标地址(X,Y)的方向相对于所述当前路由节点为L2方向和S方向; 所述方式二为: 当Y2-Y1 = 1,且XI = X2时;若X>X2 ;则判断目标地址(X,Y)的方向相对于所述当前 路由节点为E方向,若X〈X2,则判断目标地址(X,Y)的方向相对于所述当前路由节点为W方 向,若Y>Y2,则判断目的地址(X,Y)的方向相对于所述当前路由节点为N方向,若Y〈Y2,则 判断目标地址(X,Y)的方向相对于所述当前路由节点为S方向;当目标地址(X,Y)与第一 地址的位置坐标(XI,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)与第一 地址的位置坐标(XI,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)与第一 地址的位置坐标(XI,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_changeO变为高电平且所述路由权同时变化 select_change2信号为低电平时,则检测所述选择select信号中表示第一资源节点的路 由权是否获得路由权,对获得路由权的第一资源节点的路由请求,根据所述占据occupied 信号和所述无优先级目的方向Dest2信号按照所述XY优先级顺序对第一资源节点所请求 的目的地址(X,Y)进行路由通道分配; 若所述无优先级路由权变化select_changeO变为高电平且所述路由权同时变化 select_change2信号也变为高电平时,则根据所述占据occupied信号、所述有优先级目的 方向Destl信号和所述无优先级目的方向Dest2信号按照所述XY优先级顺序进行路由通 道分配;若没有被占据的通道能够让第二资源节点或上游节点所请求的目的地址(X,Y)和 第一资源节点所请求的目的地址(X,Y)进行同时分配,则同时进行分配; 如果没有被占据的通道不能够让有优先级的资源节点或路由节点的请求的目的地址 和无优先级的资源节点请求的目的地址同时分配,则只为有优先级的资源节点或路由节点 的请求的目的地址分配通道;若所述有优先级路由权变化select_changel信号变为高电 平,则检测所述选择select信号中表示有优先级的资源节点或路由节点的路由权,若被授 权就根据所述占据occupied信号和所述有优先级目的方向Destl信号按照所述XY优先级 顺序对有优先级的资源节点或路由节点的请求的目的地址进行通道分配; 所述方式b为: 若所述无优先级路由权变化select_changeO变为高电平且所述路由权同时变化 select_change2信号保持低电平,则检测所述选择select信号中表示当前无优先级的资 源节点的路由权,若被授权就根据所述占据occupied信号和所述无优先级目的方向Dest2 信号按照所述XY优先级顺序对无优先级的资源节点请求的目的地址进行通道分配;若所 述有优先级路由权变化select_changel信号变为高电平,贝1」检测所述选择select信号中 表示有优先级的资源节点或路由节点的路由权,若被授权就根据所述占据occupied信号 和所述有优先级目的方向Destl信号按照所述XY优先级顺序对有优先级的资源节点或 路由节点的请求的目的地址进行通道分配;若所述有优先级路由权变化select_changel 变为高电平且所述路由权同时变化seleCt_Change2信号也变为高电平,则根据所述占据 occupied信号和所述有优先级目的方向Destl信号和所述无优先级目的方向Dest2信号按 照所述XY优先级顺序进行通道分配;如果没有被占据的通道能够让有优先级的资源节点 或路由节点请求的目的地址和无优先级的资源节点请求的目的地址同时分配通道,则同时 进行分配;若果没有被占据的通道不能够让有优先级的资源节点或路由节点的请求的目的 地址和无优先级的资源节点请求的目的地址同时分配,则只为无优先级的资源节点的请求 的目的地址分配通道。
5.根据权利要求4所述的基于二维网格的片上网络的双接入结构,其特征是, 采用所述方式a或方式b的过程中是按如下步骤判定没有被占据的通道能否同时分配 给两个请求: 步骤1、将有优先级目的方向destl和无优先级目的方向dest2相或获得结果一; 步骤2、将占据occupied信号取反,与所述结果一进行相与获得6位的所有通道all_ channel 信号; 步骤3、统计所述所有通道all_channel信号中"1"的个数;若"1"的个数大于或等于 2个,则表示未被占据的通道可能同时分配给两个请求; 步骤4、将占据occupied信号取反,分别与有优先级目的方向destl信号和无优先级目 的方向dest2信号相与获得结果三和结果四,如果结果三和结果四都含有" 1",则表示所述 未被占据的通道可以同时分配给两个请求。
【文档编号】H04L12/725GK104486221SQ201410768220
【公开日】2015年4月1日 申请日期:2014年12月12日 优先权日:2014年12月12日
【发明者】张多利, 李世元, 宋宇鲲, 杜高明 申请人:合肥工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1