一种基于Torus网络的双接入结构及其工作方式的制作方法

文档序号:9767775阅读:404来源:国知局
一种基于Torus网络的双接入结构及其工作方式的制作方法
【技术领域】
[0001] 本发明涉及一种基于Torus网络的双接入结构及其工作方式,属于片上网络通讯
技术领域
【背景技术】
[0002] 与传统的单核系统相比,多核系统在计算能力、功耗方面带来了较大的优势,但随 着运算能力的提高,也给片上通讯带来了吞吐量、并行性、速度的挑战。针对以上问题,片上 网络技术作为一种以通信为中心的集成电路互联结构被提出,成为解决多核系统片上通讯 的最佳方案。随着片上网络技术的发展,研究者们提出了各式各样的网络拓扑结构。
[0003] 图2所示的Toru S网络与图1所示的传统的me sh网络相比较,不仅继承了其结构简 单,可拓展性好,便于实现和分析的特点,同时还具有较小的网络半径,较低的功耗等优点, 因此在片上网络得到了广泛的应用。如图1所示,在传统的片上网络中,每个路由节点只能 接入一个运算单元或存储单元,当运算单元处理双目运算时,需要等待两路数据准备完毕 后才能开始运算,很大程度的降低了运算处理的速度,影响多核系统的运行效率。因此如何 提高并行度和网络的吞吐量成为片上网络设计的关键问题。

【发明内容】

[0004] 本发明为克服现有技术的不足之处,提出一种基于Torus网络的双接入结构及其 工作方式,以期能在具有双接入结构的Torus网络中进行数据传输,从而能缩短节点间的平 均距离,减小网络半径,提高网络的吞吐量和并行性,实现资源节点的双目流运算的工作方 式,提尚片上网络的运算效率。
[0005] 本发明为达到上述目的所采用的技术方案是:
[0006] 本发明一种基于Torus网络的双接入结构的特点是,所述Torus网络包括若干个路 由节点、若干个资源节点和若干条路由通道;
[0007] 任意一个路由节点具有两个本地接口,两个本地接口分别连接两个对角线方向上 的资源节点,任意一个资源节点以对角线的方式接入到两个路由节点上,任意两个相邻的 路由节点通过所述路由通道相连接,任意行和任意列首尾的两个路由节点通过所述路由通 道连接,从而形成所述Torus网络的双接入结构。
[0008] 本发明一种基于Torus网络的双接入结构的特点也在于,所述路由节点的组成包 括:输入状态机模块、优先级编码器模块、译码器模块、仲裁器模块、交叉开关模块和输出状 态机模块;
[0009] 所述输入状态机模块用于控制数据有序输入,并由四个方向上的输入状态机和两 个对角线方向上的输入状态机组成,包括:东向输入状态机、西向输入状态机、北向输入状 态机、南向输入状态机、本地〇方向输入状态机和本地1方向输入状态机;
[0010]任意一个输入状态机的工作状态包括:空闲状态F_IDLE、请求状态?_1^〇、预锁定 状态F_PREL0CK、锁定状态?_030(和失败状态F_FAIL
[0011] 任意一个输入状态机的初始状态为空闲状态?_101^;
[0012] 所述输出状态机模块用于控制数据有序输出,并由四个方向上的输出状态机和两 个对角线方向上的输出状态机组成,包括:东向输出状态机、西向输出状态机、北向输出状 态机、南向输出状态机、本地0方向输出状态机和本地1方向输出状态机;
[0013 ]任意一个输出状态机的工作状态包括:空闲状态F_IDLE和锁定状态F_L0CK;
[0014] 任意一个输出状态机的初始状态为空闲状态?_101^;
[0015] 所述优先级编码器模块用于根据所设定的优先级顺序控制路由请求的处理顺序;
[0016] 所述译码器模块用于根据输入的路由请求产生数据传输的路由方向;
[0017] 所述仲裁器模块用于判断所产生的路由方向在相应的输出状态机上是否被占据; 若被占据,则向所述输入状态机模块返回"拒绝分配"信号,若不被占据,则向所述输入状态 机模块返回"允许分配"信号,并向所述交叉开关模块发送connection互连信号;
[0018] 所述交叉开关模块根据connection互连信号实现相应输入状态机与相应输出状 态机的互联。
[0019] 本发明一种基于Torus网络的双接入结构的工作方式的特点是应用于任意两个资 源节点之间数据进行传输的过程中;所传输的数据包括:路由包、数据包和结束包;所述路 由包包含目的节点地址;定义发送所述路由包的资源节点为请求方源节点,接收所述路由 包的资源节点为目的节点;根据所传输的数据沿着所经过路由节点的顺序,定义数据当前 所经过的路由节点为当前节点,则数据所经过的上一个路由节点为上游节点,数据将要经 过的下一个路由节点为下游节点;
[0020] 以所述T 〇 ru s网络的任一顶点上的路由节点为原点0,与所述顶点上的路由节点相 连的两条互连的路由通道分别为X轴和Y轴,建立坐标系0ΧΥ;并以X轴正方向为东向,以X轴 的负方向为西向,以Y轴的正方向为北向,以Y轴的负方向为南向;则在所述坐标系0ΧΥ中的 各个路由节点的位置坐标即为相应路由节点地址;
[0021 ]所述数据传输的过程是按如下步骤进行:
[0022 ]步骤1、所述请求方源节点向与其相连的路由节点的输入状态机模块发送路由请 求和路由包,则接收到所述路由请求和路由包的路由节点变为当前节点;
[0023] 步骤2、所述当前节点的输入状态机模块接收到所述路由包和路由请求;则所述当 前节点在所接收方向上的输入状态机的工作状态由空闲状态F_IDLE跳转到请求状态?_ REQ;所述接收方向上的输入状态机将路由请求以及路由包中的目的节点地址发送到所述 优先级编码器模块;
[0024] 步骤3、所述当前节点的优先级编码器模块接收到所述路由请求,并根据所设定的 优先级顺序处理来自不同方向上的路由请求;从而选出最高优先级的路由请求,并用 select信号表示;再将所述select信号及其所对应的路由包中的目的节点地址发送到译码 器模块;
[0025] 步骤4、所述当前节点的译码器模块根据所接收的select信号,根据目的节点切换 方法将所述select信号所对应方向的路由包中的目的节点地址与所述当前节点地址进行 比较,从而产生可能的路由方向,并用dest信号表示;再将dest信号和select信号发送给仲 裁器模块;
[0026]步骤5、所述仲裁器模块接收到所述select信号和dest信号后,根据优先级从高到 低的顺序依次判断dest信号中对应方向上的输出状态机的工作状态是否为空闲状态F_ IDLE;若为空闲状态F_IDLE,则向所述当前节点的向对应方向上的输入状态机返回"允许分 配"信号,向所述交叉开关模块发送connect ion互连信号;同时向对应方向上的输出状态机 发送"占用"信号,若不为空闲状态F_IDLE,则向对应方向上的输入状态机返回"拒绝分配" 信号;
[0027]步骤6、所述对应方向上的输入状态机若接收到所述"允许分配"信号;则对应方向 上的输入状态机的工作状态由所述请求状跳转到预锁定状态F_PREL0CK;
[0028]所述当前节点的交叉开关模块根据所接收到所述connect ion互连信号将相应输 入状态机与对应的输出状态机进行互连;
[0029] 所述对应方向上的输出状态机根据所接收的"占用"信号由所述空闲状态F_IDLE 跳转到锁定状态?_11)0(,并产生一个新的路由请求;
[0030] 同时,所述对应方向上的输入状态机将所述路由包通过所述交叉开关发送到对应 方向上的输出状态机;并执行步骤10;
[0031] 所述对应方向上的输入状态机若接收到所述"拒绝分配"信号,则对应方向上的输 入状态机的工作状态由所述请求状跳转到失败状并向上游节点的对应 方向上输出状态机模块发送"路由失败"信号后,再由失败状跳转到空闲状态?_ IDLE,并执行步骤7;
[0032] 步骤7、所述上游节点对应方向上的输出状态机接收到"路由失败"信号由所述锁 定状态F_L0CK跳转到空闲状态?_101^,同时将"路由失败"传输到所述上游节点对应方向上 的输入状态机;
[0033] 步骤8、所述上游节点对应方向上的输入状态机根据接收到"路由失败"信号由所 述预锁定状态F_PREL0CK跳转到所述失败状态F_FAIL,同时返回"路由失败"信号至所述上 游节点的上游后,再由失败状跳转到空闲状态?_101^,直到所述"路由失败"信号 返回到所述请求方源节点为止;
[0034] 步骤9、所述请求方源节点接收到"路由失败"信号后,返回执行步骤1;
[0035]步骤10、所述对应方向上的输出状态机将新的路由请求以及接收到的路由包发送 到下游节点或所述目的节点;
[0036] 步骤11、
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1