CN105007226A - 一种基于包电路交换技术的多播路由器及其工作方式 - Google Patents
一种基于包电路交换技术的多播路由器及其工作方式 Download PDFInfo
- Publication number
- CN105007226A CN105007226A CN201510444327.2A CN201510444327A CN105007226A CN 105007226 A CN105007226 A CN 105007226A CN 201510444327 A CN201510444327 A CN 201510444327A CN 105007226 A CN105007226 A CN 105007226A
- Authority
- CN
- China
- Prior art keywords
- state machine
- signal
- node
- module
- input state
- 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
技术领域
本发明属于片上网络通信技术领域,具体地说是一种基于“包电路”交换技术的多播路由器设计。
背景技术
随着集成电路集成度的不断扩大,芯片也由单一功能逐渐发展到多功能的系统芯片。如今,多功能的片上系统(SoC,System on Chip)已经得到了广泛的应用。然而随着工艺特征尺寸越来越小,工作频率迅速上升,基于总线架构的片上系统的缺点也渐渐显露出来。主要表现在:
(1)可扩展性差;
(2)资源利用率低,不能提供良好的并行处理能力;
(3)单一时钟全局同步而引起的功耗和面积的大幅度提高。
为了克服总线架构所带来的不利影响,片上网络(NoC,Network on Chip)的概念被提了出来。片上网络由路由节点、网络资源接口、互连通道、资源节点构成,如图1所示。
路由节点:根据路由算法来计算数据的传输方向,并且对数据的流动加以控制,以此来实现资源节点之间的数据通信。
网络资源接口:实现资源节点和路由节点之间的连接,负责其之间的协议转换。
互连通道:把NoC中各个路由节点连接起来,构成完整的通信网络。
资源节点:承担着系统的各种功能任务。它可以是处理器、存储器等单个IP,也可以是SoC。资源节点之间通过网络进行数据交互,全部的资源节点协同工作,共同完成系统任务。
根据系统任务的需求,片上网络不仅需要实现单播通信方式,还需要支持多播通信方式。目前,大多数片上网络是通过“包”交换技术实现多播通信功能。“包”交换技术数据分为多个数据包,其中路由信息由头包携带,其余的数据包跟随头包在网络中进行传输。因此,当数据包在网络中传输时,片上网络需要较大的缓冲器将所有数据包缓存,需要消耗大量的缓存资源。
“包电路”交换技术将一次数据传输事务分为三个阶段进行:建立链路阶段、数据传输阶段、撤销链路阶段。这种交换技术首先锁定链路,然后进行数据传输,不需要较多的缓存资源来缓存数据包。然而,目前“包电路”交换技术的研究只限于单播通信功能。若使用单播通信功能实现一个请求方节点向多个目的方节点发送相同批次的数据,请求方节点向每个目的方节点发送数据都要经过建立链路阶段、数据传输阶段、撤销链路阶段,严重浪费网络带宽,消耗较多的数据传输时间。
发明内容
本发明为克服现有技术存在的不足之处,提出一种基于包电路交换技术的多播路由器及其工作方式,以期能使用“包电路”交换技术实现片上网络多播数据传输事务,从而能充分利用片上网络并行性特征节省单个请求方节点向多个目的方节点发送相同批次数据事务的时间花费,并且减少片上网络中多播路由器的缓存资源的消耗。
本发明为达到上述目的所采用的技术方案是:
本发明一种基于“包电路”交换技术的多播路由器的特点是应用于包含若干个多播路由器、若干个资源节点和若干条互连通道所组成的片上网络中,每个资源节点通过所述互连通道连接在一个多播路由器上;任意两个相邻的多播路由器通过所述互连通道相邻接;由所述邻接的多播路由器形成二维网格;以所述二维网格任一顶点上的多播路由器为起始坐标点(1,1);以所述顶点上的多播路由器相连通的两条互连通道分别为X轴和Y轴,建立坐标系OXY;并以X轴的正方向为东向,以X轴的负方向为西向,以Y轴的正方向为北向,以Y轴的负方向为南向;
定义发送数据的资源节点为请求方节点,接收所述数据的资源节点为目的方节点;根据所述数据沿着所经过的多播路由器的顺序,定义所经过的任意一个多播路由器均是以上一个多播路由器为上游节点,以下一个多播路由器为下游节点的当前节点;所述负载包括:负载包、路由包和结束包;所述负载包、路由包和结束包通过不同的包头区分;所述路由包中包含一个包头和不大于八个目的方节点地址;定义每个目的方节点地址和与目的方节点相连的多播路由器坐标相同,并用八位二进制表示,前四位表示所述目的方节点地址的X坐标,后四位表示所述目的方节点地址的Y坐标,且目的方节点地址的X坐标和Y坐标均不为零;
所述多播路由器包括:输入状态机模块、优先级编码器模块、解码器模块、地址过滤模块、仲裁器模块、交叉开关模块和输出状态机模块;
所述输入状态机模块用于控制数据的有序输入,并分为本地输入状态机、东向输入状态机、西向输入状态机、北向输入状态机和南向输入状态机;所述输入状态机模块的工作状态包括空闲状态F_IDLE、请求状态B_REQ、预锁定状态B_PRELOCK和锁定状态B_LOCK;所述输入状态机模块的初始状态为空闲状态F_IDLE;
所述优先级编码器模块用于根据数据请求的优先级顺序控制所述数据请求的处理顺序;
所述解码器模块包含八个解码单元,并用于产生数据传输的路由方向;
所述地址过滤模块用于避免所述路由包向所述目的方节点重复路由;
所述仲裁器模块用于判断所述数据传输的路由方向是否可用;
所述交叉开关模块用于实现所述输入状态机模块和所述输出状态机模块的全互连;
所述输出状态机模块用于控制数据的有序输出,并分为本地输出状态机、东向输出状态机、西向输出状态机、北向输出状态机和南向输出状态机;所述输出状态机模块的工作状态包括空闲态IDLE和锁定态LOCK;所述输出状态机模块的初始状态为空闲态IDLE。
本发明一种基于“包电路”交换技术的多播路由器的工作方式的特点是应用于多播数据传输事务中,所述多播数据传输事务为所述请求方节点将一批数据同时发送给不大于八个目的方节点的传输任务;所述多播路由器是按如下步骤执行多播数据传输事务:
步骤1、所述请求方节点发送请求信号和路由包给与所述请求方节点相连的多播路由器的输入状态机模块中;则接收到所述请求信号和路由包的多播路由器变为当前节点;
步骤2、所述当前节点的输入状态机模块中相应方向上的输入状态机接收到所述请求信号和路由包后,将其工作状态从空闲状态F_IDLE跳转到请求状态B_REQ;所述相应方向上的输入状态机将多播请求信号以及路由包中的目的方节点地址发送给所述优先级编码器模块;
步骤3、所述当前节点的所述优先级编码器模块对所述当前节点中相应方向上的输入状态机的多播请求信号进行优先级排序,当所述多播请求信号获得最高优先级时,将所述多播请求信号对应的目的方节点地址发送给所述解码器模块;
步骤4、所述解码器模块根据XY路由算法将所接收到的目的方节点地址进行解码,获得所述多播请求信号的路由方向和请求方向;并将所述路由方向和请求方向发送给所述仲裁器;将所述请求方向和所述目的方节点地址发送给所述地址过滤模块;将所述路由方向发送给所述多播请求信号所对应的输入状态机;
步骤5、所述地址过滤模块根据约束规则对所接收到的目的方节点地址进行过滤,获得有效目的方节点地址并发送给所述多播请求信号所对应的输入状态机;
步骤6、所述仲裁器模块根据所述路由方向和请求方向,判断与所述路由方向相对应的输出状态机的工作状态:
若与所述路由方向相对应的输出状态机的工作状态均为空闲态IDLE,则所述仲裁器产生“允许”信号并分别发送给与所述多播请求信号所对应的输入状态机以及优先级编码器模块;同时,产生“占用”信号并发送给与所述路由方向相对应的输出状态机;产生“互连”信号并发送给所述交叉开关模块;所述“互连”信号用二十五位二进制表示,且每五位二进制数分别表示所述输入状态机模块中的任意一个输入状态机与所述输出状态机模块中五个输出状态机的连接关系;
若与所述路由方向相对应的输出状态机的工作状态不均为空闲态IDLE,则所述仲裁器模块产生“拒绝”信号并发送给优先级编码器模块;
步骤7、所述多播请求信号所对应的输入状态机根据所接收到“允许”信号将其工作状态从请求状态B_REQ跳转到预锁定状态B_PRELOCK;并将所述多播请求信号置为“无效”;
所述交叉开关根据所接收的“互连”信号将所述输入状态机模块中与所述多播请求信号所对应的输入状态机和所述输出状态机中与路由方向相对应的输出状态机进行互连;
所述路由方向相对应的输出状态机根据所接收的“占用”信号,将其工作状态从空闲态IDLE跳转为锁定态LOCK,并产生新的多播请求信号;
同时,所述多播请求信号所对应的输入状态机将接收到的所述有效目的方节点地址重新打包为新的路由包并通过交叉开关模块发送给接收到所述“占用”信号的输出状态机;
步骤8、接收到所述“占用”信号的输出状态机将新的多播请求信号以及接收到的新的路由包发送到下游节点或所述目的方节点;
步骤9、判断所述当前节点是否为与目的方节点相连的多播路由器,若为与所述目的方节点相连的多播路由器,则执行步骤10;否则,所述当前节点变为上游节点,与接收到所述“占用”信号的输出状态机相连的下游节点变为当前节点,并返回步骤2执行;
步骤10、所述目的方节点接收到所述新的多播请求信号和新的路由包并产生“锁定”信号反馈给与所述目的方节点相连的多播路由器相应方向上的输出状态机;
步骤11、接收到所述“锁定”信号的多播路由器相应方向上的输出状态机将所述“锁定”信号通过交叉开关模块发送给与接收到所述“锁定”信号的输出状态机相连的输入状态机;
步骤12、接收到“锁定”信号的输入状态机将所接收的“锁定”信号进行锁存,并将锁存结果与已接收的路由方向相比较;
若“锁定”信号的锁存结果与已接收的路由方向相同,则将接收到“锁定”信号的输入状态机的工作状态由预锁定状态B_PRELOCK转换为锁定状态B_LOCK;同时把“锁定”信号的锁存结果清零,并产生新的“锁定”信号;
若“锁定”信号的锁存结果与已接收的路由方向不相同,则接收到“锁定”信号的输入状态机等待其他输出状态机反馈的“锁定”信号,当接收到其他“锁定”信号后,重复步骤12;
步骤13、判断所产生的新的“锁定”信号的输入状态机是否与请求方节点相连;
若与请求方节点相连,则表示所述多播数据传输事务的路径已经锁定完成,并将新的“锁定”信号发送给请求方节点并执行步骤14;
否则将新的“锁定”信号发送给与产生新的“锁定”信号的输入状态机相连的多播路由器相应的输出状态机;并返回步骤11执行;
步骤14、请求方节点接收到“锁定”信号将需要发送的数据打包为负载包并通过已锁定 的路径发送给各个目的方节点;
步骤15、请求方节点发送完负载包后,再发送一个结束包;
步骤16、目的方节点接收到所述结束包后产生“撤销”信号并反馈给与所述目的方节点相连的多播路由器相应的输出状态机;
步骤17、所述相应的输出状态机将所接收到“撤销”信号将其工作状态从锁定态LOCK跳转为空闲态IDLE,并通过所述交叉开关模块发送给与接收到所述“撤销”信号的输出状态机相连的输入状态机;
步骤18、接收到“撤销”信号的输入状态机将所接收的“撤销”信号进行锁存,并将锁存结果与已接收的路由方向相比较;
若“撤销”信号的锁存结果与已接收的路由方向相同,则将接收到“撤销”信号的输入状态机的工作状态由锁定状态B_LOCK转换为空闲状态F_IDLE;同时把“撤销”信号的锁存结果和已接收的路由方向清零,并产生新的“撤销”信号;
若“撤销”信号的锁存结果与已接收的路由方向不相同,则接收到“撤销”信号的输入状态机等待其他输出状态机反馈的“撤销”信号,当接收到其他“撤销”信号后,重复步骤18;
步骤19、判断产生新的“撤销”信号的输入状态机是否与请求方节点相连;
若与请求方节点相连,则将新的“撤销”信号发送给请求方节点,表示完成所述多播数据传输事务的传输;
否则将新的“撤销”信号发送给与产生新的“撤销”信号的输入状态机相连的多播路由器相应的输出状态机;并返回步骤17执行。
本发明所述的基于“包电路”交换技术的多播路由器的工作方式的特点也在于:
所述优先级排序是按如下步骤进行:
步骤1、对所述东向、南向、西向、北向和本地方向的优先级预先进行设定;
步骤2、根据预先设定的优先级对所述当前节点中相应方向上的输入状态机的多播请求信号进行优先级排序,获得优先级最高的多播请求信号对应的多播请求;
步骤3、所述优先级编码器模块发送优先级最高的多播请求信号对应的多播请求,并且等待所述优先级最高的多播请求信号对应的多播请求经过所述解码器模块、地址过滤模块、仲裁器模块的处理结果,若接收到的处理结果为“允许”信号,则表示所述优先级最高的多播请求信号对应的多播请求被置为“无效”,并返回步骤2;
若接收到的处理结果为“拒绝”信号,则所述优先级编码器模块仍然发送所述优先级最高的多播请求信号对应的多播请求。
所述约束规则为:
在所述坐标系OXY中,假设所述目的方节点地址为(xd,yd),所述当前节点的地址为(x,y);
约束1:若优先级最高的多播请求信号来自本地输入状态机,则保留所有目的方节点地址;
约束2:若优先级最高的多播请求信号来自东向输入状态机,则保留所有xd<x的目的方节点地址;
约束3:若优先级最高的多播请求信号来自南向输入状态机,则保留所有xd=x且yd>y的目的方节点地址;
约束4:若优先级最高的多播请求信号来自西向输入状态机,则保留所有xd>x的目的方节点地址;
约束5:若优先级最高的多播请求信号来自北向输入状态机,则保留所有xd=x且yd<y的目的方节点地址。
与现有技术相比,本发明的有益技术效果体现在:
1、本发明设计一种基于“包电路”交换技术的多播路由器;在基于“包电路”交换技术的多播路由器构成的片上网络中,单个请求方节点向多个目的方节点发送相同批次数据时,首先通过路由包将请求方节点和所有目的方节点锁定在一起,然后一次性将负载包发送给所有目的方节点,最后撤销请求方节点和所有目的方节点之间锁定的链路;因此,基于“包电路”交换技术的多播路由器构成的片上网络在处理这种类型的数据传输时充分利用片上网络的并行性特征,节省大量的数据传输时间;同时,“包电路”交换技术通过“包”交换技术的形式锁定链路,通过“电路”交换的形式进行数据传输;当数据传输链路锁定后,请求方节点和所有目的方节点之间以流水线的形式进行数据传输,每个中间节点同一时刻只需缓存一个数据包,因此,基于“包电路”交换技术的多播路由器消耗较少的缓存资源。
2、本发明中地址解码器模块中设计八个解码单元,八个解码单元根据XY路由算法可同时对八个目的方节点地址进行解码,确定各自的路由方向;因为在本设计中多播数据传输事务中单个请求方节点最多可同时支持向八个目的方节点同时发送相同批次的数据,因此解码器模块一个周期就可以得到全部目的方节点的路由方向,提高了地址解码的处理效率。
3、本发明使用了优先级编码器模块;当一个多播请求获得最高优先级时,优先级编码器模块接收到仲裁器模块的发送的“允许”信号,该请求才能处理完成,优先级 编码器才允许其他的请求获得最高优先级,否则该多播请求将一直占有最高优先级;由此可见,优先级编码器模块提高了多播数据传输事务的链路建立成功率。
4、本发明提出一种路由包中目的方节点地址过滤的约束规则;这种约束规则通过比较当前路由节点的地址和多播路由包中的各个目的方节点地址,根据多播请求输入方向和路由算法过滤多播路由包中通过当前节点会重复路由的目的方节点坐标;因此,采用这种约束规则避免了在多播的过程中对路由包中的目的方节点进行重复路由而建立多余链路而造成网络拥塞的问题。
附图说明
图1为现有技术中典型片上网络结构图;
图2为本发明中4×4片上网络中多播路由器坐标编码示意图;
图3为本发明中多播数据传输事务负载包格式;
图4为本发明基于“包电路”交换多播路由器结构图;
图5为本发明输入状态机状态转移图;
图6为本发明为本发明输出状态机状态转移图;
图7为本发明多播路由器的各个信号互连图;
图8为本发明单播与多播的性能比较图。
具体实施方式
本实施例中,一种基于“包电路”交换技术的多播路由器,是应用于包含若干个多播路由器、若干个资源节点和若干条互连通道所组成的片上网络中,每个资源节点通过互连通道连接在一个多播路由器上;任意两个相邻的多播路由器通过互连通道相邻接;由邻接的多播路由器形成二维网格;以二维网格任一顶点上的多播路由器为起始坐标点(1,1);以顶点上的多播路由器相连通的两条互连通道分别为X轴和Y轴,建立坐标系OXY;并以X轴的正方向为东向,以X轴的负方向为西向,以Y轴的正方向为北向,以Y轴的负方向为南向;如图2为本发明实施例中4×4片上网络中多播路由器坐标编码示意图,其中方格代表多播路由器,方格中的数字代表多播路由器的坐标,第一个数字表示X坐标,第二个数字表示Y坐标。
在本实施例中,当数据在片上网络中进行传输时,定义发送数据的资源节点为请求方节点,接收数据的资源节点为目的方节点,请求方节点和目的方节点之间通过中间多播路由节点和互连通道进行相连;根据数据沿着所经过的多播路由器的顺序,定义所经过的任意一个多播路由器均是以上一个多播路由器为上游节点,以下一个多播路由器为下游节点的当前节点;负载包括:负载包、路由包和结束包;负载包、路由包和结束包通过不同的包头区分; 路由包中包含一个包头和不大于八个目的方节点地址;定义每个目的方节点地址和与目的方节点相连的多播路由器坐标相同,并用八位二进制表示,前四位表示目的方节点地址的X坐标,后四位表示目的方节点地址的Y坐标,且目的方节点地址的X坐标和Y坐标均不为零;如图3所示为本发明实施例中多播数据传输事务负载包格式,每个数据包由66位二进制数表示,其中第66位和第65位为数据包的包头,用于区分不同类型的数据包;若最高两位为2’b11,表示该数据包为路由包,最多可携带八个目的方节点坐标;若最高两位为2’b00,表示该数据包为负载包,携带有效数据信息,每个负载包可携带64位;若最高两位为2’b01,表示该数据包为结束包,用于标记一批数据传输完毕。
多播路由器包括:输入状态机模块、优先级编码器模块、解码器模块、地址过滤模块、仲裁器模块、交叉开关模块和输出状态机模块;各个模块的连接关系如图4所示。
输入状态机模块用于控制数据的有序输入,并分为本地输入状态机、东向输入状态机、西向输入状态机、北向输入状态机和南向输入状态机;本地输入状态机负责接收请求方节点的请求信号、路由包、负载包、结束包,并且将反馈信号发送给请求方节点;其余四个输入状态机分别与上游节点进行通信,并且反馈信号到上游节点;输入状态机模块的工作状态包括空闲状态F_IDLE、请求状态B_REQ、预锁定状态B_PRELOCK和锁定状态B_LOCK;输入状态机模块的初始状态为空闲状态F_IDLE;各个状态的跳转顺序如图5所示。
优先级编码器模块用于根据数据请求的优先级顺序控制数据请求的处理顺序;当有多个请求同时到达当前节点时,优先级编码器模块控制请求信号逐个被其他模块处理,其处理步骤为:
步骤1、对东向、南向、西向、北向和本地方向的优先级预先进行设定;
步骤2、根据预先设定的优先级对当前节点中相应方向上的输入状态机的多播请求信号进行优先级排序,获得优先级最高的多播请求信号对应的多播请求;
步骤3、优先级编码器模块发送优先级最高的多播请求信号对应的多播请求,并且等待优先级最高的多播请求信号对应的多播请求经过解码器模块、地址过滤模块、仲裁器模块的处理结果,若接收到的处理结果为“允许”信号,则表示优先级最高的多播请求信号对应的多播请求被置为“无效”,并返回步骤2;
若接收到的处理结果为“拒绝”信号,则优先级编码器模块仍然发送优先级最高的多播请求信号对应的多播请求。
解码器模块包含八个解码单元,八个解码单元可同时并行处理八个目的方节点,并用于根据路由算法产生数据传输的路由方向;本实施例中每个解码单元根据XY路由算法确定目的方节点的路由方向,假设dest_x、dest_y分别表示目的方节点的X坐标和Y坐标,Local_x、 Local_y分别表示当前节点的X坐标和Y坐标XY路由算法描述如下:
地址过滤模块用于避免路由包向目的方节点重复路由;因为多播数据传输事务中某些路由器会由于与多个路由器同时进行通信而产生分支,在分支处若不滤除重复的目的方节点,每个分支就都会向相同的目的方节点路由,因此会在网络中建立多余路径,造成网络拥塞;针对XY路由算法,地址过滤模块的约束规则如下:
在坐标系OXY中,假设目的方节点地址为(xd,yd),当前节点的地址为(x,y);
约束1:若优先级最高的多播请求信号来自本地输入状态机,则保留所有目的方节点地址;
约束2:若优先级最高的多播请求信号来自东向输入状态机,则保留所有xd<x的目的方节点地址;
约束3:若优先级最高的多播请求信号来自南向输入状态机,则保留所有xd=x且yd>y的目的方节点地址;
约束4:若优先级最高的多播请求信号来自西向输入状态机,则保留所有xd>x的目的方节点地址;
约束5:若优先级最高的多播请求信号来自北向输入状态机,则保留所有xd=x且yd<y的目的方节点地址。
仲裁器模块用于判断数据传输的路由方向是否可用;在多播数据传输事务中,为了一次性锁定请求方节点和所有目的方节点之间的链路,仲裁器模块只有当接收的路由方向对应的输出状态机均空闲才产生“允许”信号,否则会造成某些多播分支链路不能被锁定,从而接收不到数据。
交叉开关模块用于实现输入状态机模块和输出状态机模块的全互连。由于在多播数据传输事务中,数据包的复制是在交叉开关中进行,即每个方向的输入状态机均可同时与五个方向的输出状态机相连接。
输出状态机模块用于控制数据的有序输出,并分为本地输出状态机、东向输出状态机、西向输出状态机、北向输出状态机和南向输出状态机;本地输出状态机负责发送所接收的请求信号、路由包、负载包、结束包到目的方节点,并且接收目的方节点的反馈信号;其余四个输出状态机分别与下游节点进行通信,并且接收下游节点的反馈信号;输出状态机模块的工作状态包括空闲态IDLE和锁定态LOCK;输出状态机模块的初始状态为空闲态IDLE;各个状态的跳转顺序如图6所示;
本实施例中,基于以上模块构成的多播路由器构成的片上网络是按如下步骤执行多播数据传输事务:
步骤1、请求方节点发送请求信号和路由包给与请求方节点相连的多播路由器的输入状态机模块;则接收到请求信号和路由包的多播路由器变为当前节点;此时多播数据传输事务进入到建立链路阶段。
步骤2、当前节点的输入状态机模块中相应方向上的输入状态机接收到请求信号和路由包后,将其工作状态从空闲状态F_IDLE跳转到请求状态B_REQ;相应方向上的输入状态机将多播请求信号以及路由包中的目的方节点地址发送给优先级编码器模块;
步骤3、当前节点的优先级编码器模块对当前节点中相应方向上的输入状态机的多播请求信号进行优先级排序,当步骤2中的多播请求信号获得最高优先级时,将多播请求信号对应的目的方节点地址发送给解码器模块;
步骤4、解码器模块根据XY路由算法将所接收到的目的方节点地址进行解码,获得多播请求信号的路由方向和请求方向;并将路由方向和请求方向发送给仲裁器;将请求方向和目的方节点地址发送给地址过滤模块;将路由方向发送给多播请求信号所对应的输入状态机;
步骤5、地址过滤模块根据约束规则对所接收到的目的方节点地址进行过滤,获得有效目的方节点地址并发送给多播请求信号所对应的输入状态机;
步骤6、仲裁器模块根据路由方向和请求方向,判断与路由方向相对应的输出状态机的工作状态:
若与路由方向相对应的输出状态机的工作状态均为空闲态IDLE,则仲裁器产生“允许”信号并分别发送给与多播请求信号所对应的输入状态机以及优先级编码器模块;同时,产生“占用”信号并发送给与路由方向相对应的输出状态机;产生“互连”信号并发送给交叉开关模块;“互连”信号用二十五位二进制表示,“互连”信号每五位分成一组,每组表示本地、 东向、南向、西向、北向五个输出状态机与五个输入状态机的连接关系。例如connections信号为00001 00010 00100 01000 10000时,表示本地输出状态机与北向输入状态机相连,东向输出状态机与西向输入状态机相连,南向输出状态机与南向输入状态机相连,西向输出状态机与东向输入状态机相连,北向输出状态机与本地输入状态机相连。
若与路由方向相对应的输出状态机的工作状态不均为空闲态IDLE,则仲裁器模块产生“拒绝”信号并发送给优先级编码器模块;
步骤7、多播请求信号所对应的输入状态机根据所接收到“允许”信号将其工作状态从请求状态B_REQ跳转到预锁定状态B_PRELOCK;并将多播请求信号置为“无效”,与此同时,接收到“允许”信号优先级编码器模块可相应其他多播请求信号;
交叉开关根据所接收的“互连”信号将输入状态机模块中与多播请求信号所对应的输入状态机和输出状态机中与路由方向相对应的输出状态机进行互连;
路由方向相对应的输出状态机根据所接收的“占用”信号,将其工作状态从空闲态IDLE跳转为锁定态LOCK,并产生新的多播请求信号;
同时,多播请求信号所对应的输入状态机将接收到的有效目的方节点地址重新打包为新的路由包并通过交叉开关模块发送给接收到“占用”信号的输出状态机;
步骤8、接收到“占用”信号的输出状态机将新的多播请求信号以及接收到的新的路由包发送到下游节点或目的方节点;
步骤9、判断当前节点是否为与目的方节点相连的多播路由器,若为与目的方节点相连的多播路由器,则执行步骤10,此时表示请求方节点和该目的方节点之间的路径已经被找到;否则,当前节点变为上游节点,与接收到“占用”信号的输出状态机相连的下游节点变为当前节点,并返回步骤2执行;
步骤10、目的方节点接收到新的多播请求信号和新的路由包并产生“锁定”信号反馈给与目的方节点相连的多播路由器相应方向上的输出状态机;
步骤11、接收到“锁定”信号的多播路由器相应方向上的输出状态机将“锁定”信号通过交叉开关模块发送给与接收到“锁定”信号的输出状态机相连的输入状态机;
步骤12、接收到“锁定”信号的输入状态机将所接收的“锁定”信号进行锁存,并将锁存结果与已接收的路由方向相比较;之所以对锁定信号进行锁存,是因为一个输入状态可能与多个输出状态机相连,每个输出状态机的反馈的“锁定”信号不同时。
若“锁定”信号的锁存结果与已接收的路由方向相同,则将接收到“锁定”信号的输入状态机的工作状态由预锁定状态B_PRELOCK转换为锁定状态B_LOCK;同时把“锁定”信号的锁存结果清零,并产生新的“锁定”信号;
若“锁定”信号的锁存结果与已接收的路由方向不相同,则接收到“锁定”信号的输入状态机等待其他输出状态机反馈的“锁定”信号,当接收到其他“锁定”信号后,重复步骤12;
步骤13、判断所产生的新的“锁定”信号的输入状态机是否与请求方节点相连;
若与请求方节点相连,则表示多播数据传输事务的路径已经锁定完成,并将新的“锁定”信号发送给请求方节点并执行步骤14;此时,数据链路建立阶段完成。
否则将新的“锁定”信号发送给与产生新的“锁定”信号的输入状态机相连的多播路由器相应的输出状态机;并返回步骤11执行;
步骤14、请求方节点接收到“锁定”信号将需要发送的数据打包为负载包并通过已锁定的路径发送给各个目的方节点;此时,多播数据传输事务进入数据传输阶段。
步骤15、请求方节点发送完负载包后,再发送一个结束包;
步骤16、目的方节点接收到结束包后产生“撤销”信号并反馈给与目的方节点相连的多播路由器相应的输出状态机;此时,多播数据传输事务进入撤销链路阶段。
步骤17、相应的输出状态机将所接收到“撤销”信号将其工作状态从锁定态LOCK跳转为空闲态IDLE,并通过交叉开关模块发送给与接收到“撤销”信号的输出状态机相连的输入状态机;
步骤18、接收到“撤销”信号的输入状态机将所接收的“撤销”信号进行锁存,并将锁存结果与已接收的路由方向相比较;
若“撤销”信号的锁存结果与已接收的路由方向相同,则将接收到“撤销”信号的输入状态机的工作状态由锁定状态B_LOCK转换为空闲状态F_IDLE;同时把“撤销”信号的锁存结果和已接收的路由方向清零,并产生新的“撤销”信号;
若“撤销”信号的锁存结果与已接收的路由方向不相同,则接收到“撤销”信号的输入状态机等待其他输出状态机反馈的“撤销”信号,当接收到其他“撤销”信号后,重复步骤18;
步骤19、判断产生新的“撤销”信号的输入状态机是否与请求方节点相连;
若与请求方节点相连,则将新的“撤销”信号发送给请求方节点,表示完成多播数据传输事务的传输;
否则将新的“撤销”信号发送给与产生新的“撤销”信号的输入状态机相连的多播路由器相应的输出状态机;并返回步骤17执行。
由多播数据传输事务步骤可知,有多播路由器构成的片上网络将一次多播数据传输事务分为三个阶段:链路建立阶段、数据传输阶段和撤销链路阶段。
图7为本发明中多播路由器的各个信号互连图,图中多播路由器的本地、东向、南向、西向、北向具有相同的信号。stb_i表示输入状态机的输入请求信号,fwd_i用来标记输入状态机的输入数据包有效,data_i表示输入状态机的输入数据包,pack_o和cancel_o分别表示输入状态机发送的“锁定”信号和“撤销”信号;stb_o表示输出状态机的输出请求信号,fwd_o用来标记输出状态机的输出数据包有效,data_o表示输出状态机的输出数据包,pack_i和cancel_i分别表示输出状态机接收的“锁定”信号和“撤销”信号。
在本实施例使用Verilog HDL描述实现其各个模块的设计,使用Xilinx ise开发套件对多播路由器的综合结果如表1所示。
表1
资源类型 | 查找表(LUT) | 寄存器(Register) |
资源消耗 | 2753 | 1404 |
如图8为多播路由器构成的4*4片上网络中,目的方节点为8的多播数据传输事务和目的方节点分别为1、2、3情况下的单播通信时,使用Modelsim 10.1a的实验结果。由图可知:(1)随着单播通信目的方节点数增加,多播数据传输事务节省的周期数越多;(2)随着包长的增加,当目的方节点数大于1时,多播数据传输事务节省的周期数越多。
Claims (4)
1.一种基于“包电路”交换技术的多播路由器,其特征是应用于包含若干个多播路由器、若干个资源节点和若干条互连通道所组成的片上网络中,每个资源节点通过所述互连通道连接在一个多播路由器上;任意两个相邻的多播路由器通过所述互连通道相邻接;由所述邻接的多播路由器形成二维网格;以所述二维网格任一顶点上的多播路由器为起始坐标点(1,1);以所述顶点上的多播路由器相连通的两条互连通道分别为X轴和Y轴,建立坐标系OXY;并以X轴的正方向为东向,以X轴的负方向为西向,以Y轴的正方向为北向,以Y轴的负方向为南向;
定义发送数据的资源节点为请求方节点,接收所述数据的资源节点为目的方节点;根据所述数据沿着所经过的多播路由器的顺序,定义所经过的任意一个多播路由器均是以上一个多播路由器为上游节点,以下一个多播路由器为下游节点的当前节点;所述负载包括:负载包、路由包和结束包;所述负载包、路由包和结束包通过不同的包头区分;所述路由包中包含一个包头和不大于八个目的方节点地址;定义每个目的方节点地址和与目的方节点相连的多播路由器坐标相同,并用八位二进制表示,前四位表示所述目的方节点地址的X坐标,后四位表示所述目的方节点地址的Y坐标,且目的方节点地址的X坐标和Y坐标均不为零;
所述多播路由器包括:输入状态机模块、优先级编码器模块、解码器模块、地址过滤模块、仲裁器模块、交叉开关模块和输出状态机模块;
所述输入状态机模块用于控制数据的有序输入,并分为本地输入状态机、东向输入状态机、西向输入状态机、北向输入状态机和南向输入状态机;所述输入状态机模块的工作状态包括空闲状态F_IDLE、请求状态B_REQ、预锁定状态B_PRELOCK和锁定状态B_LOCK;所述输入状态机模块的初始状态为空闲状态F_IDLE;
所述优先级编码器模块用于根据数据请求的优先级顺序控制所述数据请求的处理顺序;
所述解码器模块包含八个解码单元,并用于产生数据传输的路由方向;
所述地址过滤模块用于避免所述路由包向所述目的方节点重复路由;
所述仲裁器模块用于判断所述数据传输的路由方向是否可用;
所述交叉开关模块用于实现所述输入状态机模块和所述输出状态机模块的全互连;
所述输出状态机模块用于控制数据的有序输出,并分为本地输出状态机、东向输出状态机、西向输出状态机、北向输出状态机和南向输出状态机;所述输出状态机模块的工作状态包括空闲态IDLE和锁定态LOCK;所述输出状态机模块的初始状态为空闲态IDLE。
2.一种基于“包电路”交换技术的多播路由器的工作方式,其特征是应用于多播数据传输事务中,所述多播数据传输事务为所述请求方节点将一批数据同时发送给不大于八个目的方节点的传输任务;所述多播路由器是按如下步骤执行多播数据传输事务:
步骤1、所述请求方节点发送请求信号和路由包给与所述请求方节点相连的多播路由器的输入状态机模块中;则接收到所述请求信号和路由包的多播路由器变为当前节点;
步骤2、所述当前节点的输入状态机模块中相应方向上的输入状态机接收到所述请求信号和路由包后,将其工作状态从空闲状态F_IDLE跳转到请求状态B_REQ;所述相应方向上的输入状态机将多播请求信号以及路由包中的目的方节点地址发送给所述优先级编码器模块;
步骤3、所述当前节点的所述优先级编码器模块对所述当前节点中相应方向上的输入状态机的多播请求信号进行优先级排序,当所述多播请求信号获得最高优先级时,将所述多播请求信号对应的目的方节点地址发送给所述解码器模块;
步骤4、所述解码器模块根据XY路由算法将所接收到的目的方节点地址进行解码,获得所述多播请求信号的路由方向和请求方向;并将所述路由方向和请求方向发送给所述仲裁器;将所述请求方向和所述目的方节点地址发送给所述地址过滤模块;将所述路由方向发送给所述多播请求信号所对应的输入状态机;
步骤5、所述地址过滤模块根据约束规则对所接收到的目的方节点地址进行过滤,获得有效目的方节点地址并发送给所述多播请求信号所对应的输入状态机;
步骤6、所述仲裁器模块根据所述路由方向和请求方向,判断与所述路由方向相对应的输出状态机的工作状态:
若与所述路由方向相对应的输出状态机的工作状态均为空闲态IDLE,则所述仲裁器产生“允许”信号并分别发送给与所述多播请求信号所对应的输入状态机以及优先级编码器模块;同时,产生“占用”信号并发送给与所述路由方向相对应的输出状态机;产生“互连”信号并发送给所述交叉开关模块;所述“互连”信号用二十五位二进制表示,且每五位二进制数分别表示所述输入状态机模块中的任意一个输入状态机与所述输出状态机模块中五个输出状态机的连接关系;
若与所述路由方向相对应的输出状态机的工作状态不均为空闲态IDLE,则所述仲裁器模块产生“拒绝”信号并发送给优先级编码器模块;
步骤7、所述多播请求信号所对应的输入状态机根据所接收到“允许”信号将其工作状态从请求状态B_REQ跳转到预锁定状态B_PRELOCK;并将所述多播请求信号置为“无效”;
所述交叉开关根据所接收的“互连”信号将所述输入状态机模块中与所述多播请求信号所对应的输入状态机和所述输出状态机中与路由方向相对应的输出状态机进行互连;
所述路由方向相对应的输出状态机根据所接收的“占用”信号,将其工作状态从空闲态IDLE跳转为锁定态LOCK,并产生新的多播请求信号;
同时,所述多播请求信号所对应的输入状态机将接收到的所述有效目的方节点地址重新打包为新的路由包并通过交叉开关模块发送给接收到所述“占用”信号的输出状态机;
步骤8、接收到所述“占用”信号的输出状态机将新的多播请求信号以及接收到的新的路由包发送到下游节点或所述目的方节点;
步骤9、判断所述当前节点是否为与目的方节点相连的多播路由器,若为与所述目的方节点相连的多播路由器,则执行步骤10;否则,所述当前节点变为上游节点,与接收到所述“占用”信号的输出状态机相连的下游节点变为当前节点,并返回步骤2执行;
步骤10、所述目的方节点接收到所述新的多播请求信号和新的路由包并产生“锁定”信号反馈给与所述目的方节点相连的多播路由器相应方向上的输出状态机;
步骤11、接收到所述“锁定”信号的多播路由器相应方向上的输出状态机将所述“锁定”信号通过交叉开关模块发送给与接收到所述“锁定”信号的输出状态机相连的输入状态机;
步骤12、接收到“锁定”信号的输入状态机将所接收的“锁定”信号进行锁存,并将锁存结果与已接收的路由方向相比较;
若“锁定”信号的锁存结果与已接收的路由方向相同,则将接收到“锁定”信号的输入状态机的工作状态由预锁定状态B_PRELOCK转换为锁定状态B_LOCK;同时把“锁定”信号的锁存结果清零,并产生新的“锁定”信号;
若“锁定”信号的锁存结果与已接收的路由方向不相同,则接收到“锁定”信号的输入状态机等待其他输出状态机反馈的“锁定”信号,当接收到其他“锁定”信号后,重复步骤12;
步骤13、判断所产生的新的“锁定”信号的输入状态机是否与请求方节点相连;
若与请求方节点相连,则表示所述多播数据传输事务的路径已经锁定完成,并将新的“锁定”信号发送给请求方节点并执行步骤14;
否则将新的“锁定”信号发送给与产生新的“锁定”信号的输入状态机相连的多播路由器相应的输出状态机;并返回步骤11执行;
步骤14、请求方节点接收到“锁定”信号将需要发送的数据打包为负载包并通过已锁定的路径发送给各个目的方节点;
步骤15、请求方节点发送完负载包后,再发送一个结束包;
步骤16、目的方节点接收到所述结束包后产生“撤销”信号并反馈给与所述目的方节点相连的多播路由器相应的输出状态机;
步骤17、所述相应的输出状态机将所接收到“撤销”信号将其工作状态从锁定态LOCK跳转为空闲态IDLE,并通过所述交叉开关模块发送给与接收到所述“撤销”信号的输出状态机相连的输入状态机;
步骤18、接收到“撤销”信号的输入状态机将所接收的“撤销”信号进行锁存,并将锁存结果与已接收的路由方向相比较;
若“撤销”信号的锁存结果与已接收的路由方向相同,则将接收到“撤销”信号的输入状态机的工作状态由锁定状态B_LOCK转换为空闲状态F_IDLE;同时把“撤销”信号的锁存结果和已接收的路由方向清零,并产生新的“撤销”信号;
若“撤销”信号的锁存结果与已接收的路由方向不相同,则接收到“撤销”信号的输入状态机等待其他输出状态机反馈的“撤销”信号,当接收到其他“撤销”信号后,重复步骤18;
步骤19、判断产生新的“撤销”信号的输入状态机是否与请求方节点相连;
若与请求方节点相连,则将新的“撤销”信号发送给请求方节点,表示完成所述多播数据传输事务的传输;
否则将新的“撤销”信号发送给与产生新的“撤销”信号的输入状态机相连的多播路由器相应的输出状态机;并返回步骤17执行。
3.根据权利要求2所述的基于“包电路”交换技术的多播路由器的工作方式,其特征是所述优先级排序是按如下步骤进行:
步骤1、对所述东向、南向、西向、北向和本地方向的优先级预先进行设定;
步骤2、根据预先设定的优先级对所述当前节点中相应方向上的输入状态机的多播请求信号进行优先级排序,获得优先级最高的多播请求信号对应的多播请求;
步骤3、所述优先级编码器模块发送优先级最高的多播请求信号对应的多播请求,并且等待所述优先级最高的多播请求信号对应的多播请求经过所述解码器模块、地址过滤模块、仲裁器模块的处理结果,若接收到的处理结果为“允许”信号,则表示所述优先级最高的多播请求信号对应的多播请求被置为“无效”,并返回步骤2;
若接收到的处理结果为“拒绝”信号,则所述优先级编码器模块仍然发送所述优先级最高的多播请求信号对应的多播请求。
4.根据权利要求2所述的一种基于“包电路”交换技术的多播路由器的工作方式,其特征是,所述约束规则为:
在所述坐标系OXY中,假设所述目的方节点地址为(xd,yd),所述当前节点的地址为(x,y);
约束1:若优先级最高的多播请求信号来自本地输入状态机,则保留所有目的方节点地址;
约束2:若优先级最高的多播请求信号来自东向输入状态机,则保留所有xd<x的目的方节点地址;
约束3:若优先级最高的多播请求信号来自南向输入状态机,则保留所有xd=x且yd>y的目的方节点地址;
约束4:若优先级最高的多播请求信号来自西向输入状态机,则保留所有xd>x的目的方节点地址;
约束5:若优先级最高的多播请求信号来自北向输入状态机,则保留所有xd=x且yd<y的目的方节点地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510444327.2A CN105007226B (zh) | 2015-07-23 | 2015-07-23 | 一种基于包电路交换技术的多播路由器及其工作方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510444327.2A CN105007226B (zh) | 2015-07-23 | 2015-07-23 | 一种基于包电路交换技术的多播路由器及其工作方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105007226A true CN105007226A (zh) | 2015-10-28 |
CN105007226B CN105007226B (zh) | 2018-01-19 |
Family
ID=54379752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510444327.2A Active CN105007226B (zh) | 2015-07-23 | 2015-07-23 | 一种基于包电路交换技术的多播路由器及其工作方式 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105007226B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209518A (zh) * | 2016-08-08 | 2016-12-07 | 合肥工业大学 | 一种基于“包‑电路”交换技术的动态转向路由算法 |
CN107018071A (zh) * | 2017-03-29 | 2017-08-04 | 合肥工业大学 | 一种基于“包‑电路”交换技术的路由模式切换配置器 |
CN109150731A (zh) * | 2018-09-19 | 2019-01-04 | 合肥工业大学 | 基于卷积神经网络的多播包连接电路及其路由方法 |
CN109873771A (zh) * | 2019-01-21 | 2019-06-11 | 佛山市顺德区中山大学研究院 | 一种片上网络系统及其通信方法 |
CN110011938A (zh) * | 2019-04-09 | 2019-07-12 | 合肥工业大学 | 一种应用于片上网络中级数可变的重排序电路及方法 |
CN111832048A (zh) * | 2020-07-09 | 2020-10-27 | 郑州信大捷安信息技术股份有限公司 | 一种基于双端口ram的数据包排序方法和系统 |
CN113114593A (zh) * | 2021-04-12 | 2021-07-13 | 合肥工业大学 | 一种片上网络中双信道路由器及其路由方法 |
CN114363246A (zh) * | 2020-09-30 | 2022-04-15 | 北京灵汐科技有限公司 | 众核的片上网络数据传输方法、装置、设备及介质 |
CN114363245A (zh) * | 2020-09-30 | 2022-04-15 | 北京灵汐科技有限公司 | 众核的片上网络数据传输方法、装置、设备及介质 |
CN114745395A (zh) * | 2022-04-07 | 2022-07-12 | 深圳大学 | 一种p2p广播超团转发方法、装置、设备及存储介质 |
CN117215520A (zh) * | 2023-11-08 | 2023-12-12 | 中电科申泰信息科技有限公司 | 一种基于双端口fifo的交叉开关广播路由结构 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778049A (zh) * | 2010-03-04 | 2010-07-14 | 南京大学 | 包-电路交换片上路由器及其传输方法 |
CN102368739A (zh) * | 2011-12-02 | 2012-03-07 | 南京大学 | 面向包-电路交换片上路由器的广播机制路由算法 |
CN104486221A (zh) * | 2014-12-12 | 2015-04-01 | 合肥工业大学 | 一种基于二维网格片上网络的双接入结构 |
-
2015
- 2015-07-23 CN CN201510444327.2A patent/CN105007226B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778049A (zh) * | 2010-03-04 | 2010-07-14 | 南京大学 | 包-电路交换片上路由器及其传输方法 |
CN102368739A (zh) * | 2011-12-02 | 2012-03-07 | 南京大学 | 面向包-电路交换片上路由器的广播机制路由算法 |
CN104486221A (zh) * | 2014-12-12 | 2015-04-01 | 合肥工业大学 | 一种基于二维网格片上网络的双接入结构 |
Non-Patent Citations (1)
Title |
---|
方芳,董建波,韩银和等: ""支持多播路径传输的片上网络并行测试方法"", 《电子测量与仪器学报》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209518A (zh) * | 2016-08-08 | 2016-12-07 | 合肥工业大学 | 一种基于“包‑电路”交换技术的动态转向路由算法 |
CN106209518B (zh) * | 2016-08-08 | 2019-01-11 | 合肥工业大学 | 一种基于“包-电路”交换技术的动态转向路由算法 |
CN107018071A (zh) * | 2017-03-29 | 2017-08-04 | 合肥工业大学 | 一种基于“包‑电路”交换技术的路由模式切换配置器 |
CN107018071B (zh) * | 2017-03-29 | 2020-05-12 | 合肥工业大学 | 一种基于“包-电路”交换技术的路由模式切换配置器 |
CN109150731A (zh) * | 2018-09-19 | 2019-01-04 | 合肥工业大学 | 基于卷积神经网络的多播包连接电路及其路由方法 |
CN109150731B (zh) * | 2018-09-19 | 2020-09-18 | 合肥工业大学 | 基于卷积神经网络的多播包连接电路及其路由方法 |
CN109873771A (zh) * | 2019-01-21 | 2019-06-11 | 佛山市顺德区中山大学研究院 | 一种片上网络系统及其通信方法 |
CN109873771B (zh) * | 2019-01-21 | 2022-04-12 | 佛山市顺德区中山大学研究院 | 一种片上网络系统及其通信方法 |
CN110011938A (zh) * | 2019-04-09 | 2019-07-12 | 合肥工业大学 | 一种应用于片上网络中级数可变的重排序电路及方法 |
CN111832048B (zh) * | 2020-07-09 | 2022-02-11 | 郑州信大捷安信息技术股份有限公司 | 一种基于双端口ram的数据包排序方法和系统 |
CN111832048A (zh) * | 2020-07-09 | 2020-10-27 | 郑州信大捷安信息技术股份有限公司 | 一种基于双端口ram的数据包排序方法和系统 |
CN114363246A (zh) * | 2020-09-30 | 2022-04-15 | 北京灵汐科技有限公司 | 众核的片上网络数据传输方法、装置、设备及介质 |
CN114363245A (zh) * | 2020-09-30 | 2022-04-15 | 北京灵汐科技有限公司 | 众核的片上网络数据传输方法、装置、设备及介质 |
CN114363245B (zh) * | 2020-09-30 | 2024-04-26 | 北京灵汐科技有限公司 | 众核的片上网络数据传输方法、装置、设备及介质 |
CN113114593A (zh) * | 2021-04-12 | 2021-07-13 | 合肥工业大学 | 一种片上网络中双信道路由器及其路由方法 |
CN113114593B (zh) * | 2021-04-12 | 2022-03-15 | 合肥工业大学 | 一种片上网络中双信道路由器及其路由方法 |
CN114745395A (zh) * | 2022-04-07 | 2022-07-12 | 深圳大学 | 一种p2p广播超团转发方法、装置、设备及存储介质 |
CN114745395B (zh) * | 2022-04-07 | 2023-12-26 | 深圳大学 | 一种p2p广播超团转发方法、装置、设备及存储介质 |
CN117215520A (zh) * | 2023-11-08 | 2023-12-12 | 中电科申泰信息科技有限公司 | 一种基于双端口fifo的交叉开关广播路由结构 |
CN117215520B (zh) * | 2023-11-08 | 2024-02-13 | 中电科申泰信息科技有限公司 | 一种基于双端口fifo的交叉开关广播路由结构 |
Also Published As
Publication number | Publication date |
---|---|
CN105007226B (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105007226A (zh) | 一种基于包电路交换技术的多播路由器及其工作方式 | |
Abadal et al. | OrthoNoC: A broadcast-oriented dual-plane wireless network-on-chip architecture | |
CN1322452C (zh) | 环形和树形网络中的算术函数 | |
US7555001B2 (en) | On-chip packet-switched communication system | |
CN101834789B (zh) | 面向包-电路交换片上路由器的回退转向路由算法及所用路由器 | |
CN104158738A (zh) | 一种低缓冲区片上网络路由器及路由方法 | |
CN101778049A (zh) | 包-电路交换片上路由器及其传输方法 | |
Chen et al. | Reducing wire and energy overheads of the SMART NoC using a setup request network | |
CN103729331A (zh) | 片上网络通信死锁避免方法、路由器及通信网络 | |
CN105871730B (zh) | 基于网络编码的片上网络路由器 | |
CN105530206A (zh) | 一种基于Torus网络的双接入结构及其工作方式 | |
CN104052663A (zh) | 一种大规模片上芯片互联方法及实现互联结构的路由算法 | |
Lin et al. | Making-a-stop: A new bufferless routing algorithm for on-chip network | |
Effiong et al. | Scalable and power-efficient implementation of an asynchronous router with buffer sharing | |
CN106209518B (zh) | 一种基于“包-电路”交换技术的动态转向路由算法 | |
Shubha et al. | FPGA implementation of network on chip framework using HDL | |
Sun et al. | Design and implementation of the wormhole virtual channel NoC router | |
Ramani et al. | A case study on NoC router architecture for optimizing the latency | |
Sethuraman et al. | Multi2 router: A novel multi local port router architecture with broadcast facility for FPGA-based networks-on-chip | |
Aslam et al. | An efficient router architecture and its FPGA prototyping to support junction based routing in NoC platforms | |
Kaushal et al. | Network on Chip Architecture and Routing Techniques: A survey | |
Alimi et al. | Network-on-Chip Topologies: Potentials, Technical Challenges, Recent Advances and Research Direction | |
Chemli et al. | Architecture and performances comparison of network on chip router for hierarchical mesh topology | |
Zhang et al. | A cellular NoC architecture based on butterfly network coding (CBNoC) | |
CN103761211A (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 |