互连多个处理引擎的芯片上路由器的矩阵及使用其进行路由的方法_5

文档序号:9238044阅读:来源:国知局
例涉及单个芯片上的多个处理引擎的可扩展的互连方案,该互连方案使用芯片上的可配置路由器。该互连方案支持通过该处理引擎通信的数据包的单播路由和多播路由。在每个芯片上可配置路由器包括路由表,该路由表是通过软件可编程的,并且被配置为以公平且无死锁的方式将进入的数据包正确地递送至其输出端口。特别地,芯片上可配置路由器的每个输出端口包括输出端口仲裁器,以当在该芯片上可配置路由器的输出端口处存在争夺时避免死锁,并且保证在所转移的数据包之间的递送的公平性。
[0094]本领域的普通技术人员将认识到也存在的其他使用和优点。虽然本发明已参考许多特定细节进行描述,本领域的普通技术人员将认识到,不脱离本发明的精神,本发明能够以其他特定形式被体现。因此,本领域的普通技术人员将会理解,本发明不受前述的示例性细节所限制,但反而由所附权利要求定义。
【主权项】
1.一种包括网络的芯片,其中所述网络包括: 多个处理引擎;以及 芯片上路由器的矩阵,其中每个所述芯片上路由器均与所述处理引擎的不同组可通信地耦接,并且与所述芯片上路由器的矩阵中最接近于该芯片上路由器的芯片上路由器可通信地耦接,以及其中每个所述芯片上路由器均包括输入端口、输出端口和输出端口仲裁器,所述输出端口仲裁器位于每个所述输出端口处,其中所述输出端口仲裁器使用全局授权矢量和局部授权矢量,所述全局授权矢量由所述芯片上路由器的所有输出端口仲裁器所共用,所述局部授权矢量是输出端口仲裁器独有的,用于授权来自所述输入端口中的一个输入端口的查询请求。2.如权利要求1所述的芯片,其中所述多个处理引擎一起通过所述芯片上路由器的矩阵进行通信。3.如权利要求1所述的芯片,其中所述网络是可扩展的,以支持附加的处理引擎。4.如权利要求3所述的芯片,其中所述附加的处理引擎与多个芯片上路由器耦接。5.如权利要求3所述的芯片,其中附加的芯片上路由器被加入至所述矩阵,并且所述附加的处理引擎与所述附加的芯片上路由器耦接。6.如权利要求1所述的芯片,其中连接两个芯片上路由器的链接比连接芯片上路由器和处理引擎的链接宽数倍,使得路由器对路由器链接能够并行地传输多个数据包,用于减少网络拥塞。7.如权利要求1所述的芯片,其中位于所述网络的边沿的芯片上路由器能够连接至所述网络之外的部件,用于简化所述网络的线路物理布局。8.如权利要求1所述的芯片,其中所述芯片上路由器是通过软件可配置的。9.一种芯片上路由器,包括: M个输入端口,其中所述M个输入端口中的每个输入端口均包括: 输入队列,用于存储输入数据包,所述输入数据包从上游芯片上路由器或从与该输入端口连接的处理引擎接收; 路由块,用于标识位于所述输入队列的头部的数据包的至少一个期望输出端口 ;以及 转发控制块,用于将查询请求发送至所述至少一个期望输出端口中的每个期望输出端口,并从所述至少一个期望输出端口中的每个期望输出端口接收授权,并且将所述数据包转发至所述至少一个期望输出端口中的每个期望输出端口; N个输出端口,其中所述N个输出端口中的每个输出端口均包括输出端口仲裁器,用于收集从至少一个输入端口到该输出端口的查询请求,并且用于授权所述查询请求中的一个;以及 交叉开关,用于连接所述M个输入端口和所述N个输出端口,其中所述交叉开关由所述输出端口仲裁器的输出进行控制。10.如权利要求9所述的芯片上路由器,其中所述交叉开关包括N个M输入多路器的组,其中M和N分别是所述芯片上路由器的输入端口和输出端口的数量。11.如权利要求10所述的芯片上路由器,其中每个M输入多路器是M-1个通用2输入多路器的二进制树,并且具有2输入多路器的延迟的1g2(M)倍的延迟。12.如权利要求9所述的芯片上路由器,其中所述数据包包括控制位,所述控制位表示所述数据包是否是单播数据包和多播数据包中的一个。13.如权利要求9所述的芯片上路由器,进一步包括: 可重新配置的单播路由表和多播路由表,用于标识数据包的一个或多个期望输出端□ O14.如权利要求13所述的芯片上路由器,其中所述M个输入端口中的每个输入端口被配置为具有其自身的单播路由表和多播路由表。15.如权利要求13所述的芯片上路由器,其中所述M个输入端口被配置为共用所述路由表。16.如权利要求9所述的芯片上路由器,其中所述芯片上路由器执行两种可配置模式中的一种模式,用于从输入端口向输出端口转发多播数据包。17.如权利要求9所述的芯片上路由器,其中所述输出端口仲裁器被配置为,对来自所述M个输入端口中的一个或多个输入端口的多播数据包和单播数据包的到达该输出端口的多个查询请求的授权进行仲裁。18.如权利要求17所述的芯片上路由器,其中所述输出端口仲裁器使用: 全局优先级矢量变量,由所有的输出端口仲裁器共用,所述全局优先级矢量变量用于分配多播数据包之间的授权; 局部优先级矢量变量,由每个输出端口仲裁器维护,所述局部优先级矢量变量用于分配单播数据包之间的授权;以及 优先级矢量变量,也由每个输出端口仲裁器维护,所述优先级矢量变量被动态地分配以所述全局优先级矢量和所述局部优先级矢量中的一个矢量的值。19.如权利要求18所述的芯片上路由器,其中为每个输出端口仲裁器的优先级矢量值分配的值取决于转发模式和该输出端口仲裁器是否已从任何多播数据包接收到查询请求。20.如权利要求18所述的芯片上路由器,其中每个输出端口仲裁器基于对应的优先级矢量值,仅对一个查询请求进行授权。21.如权利要求18所述的芯片上路由器,其中基于授权输出,所述共用的全局优先级矢量变量和所有的局部优先级矢量变量在每个循环之后被更新,从而所有的数据包总是有机会获得授权,并且保证无死锁。22.—种在芯片上路由器上执行的方法,所述方法包括: 初始化全局优先级矢量变量,以将优先级给予多个输入端口中的一个输入端口,所述全局优先级矢量变量由所述芯片上路由器的所有N个输出端口仲裁器所共用,其中所述全局优先级矢量变量用于在多播数据包之间分配授权; 初始化N个局部优先级矢量变量中的每个变量到所述多个输入端口中的一个输入端口,所述局部优先级矢量变量由N个输出端口仲裁器所维护,其中所述N个局部优先级矢量变量中的每个变量用于在单播数据包之间分配授权; 确定转发模式; 在所述N个输出端口仲裁器的每个输出端口仲裁器处: 确定查询请求是否来自多播数据包; 基于所述转发模式是第一模式的确定,或者基于所述查询请求并不来自多播数据包的确定,设置优先级矢量的值为所述局部优先级矢量的值; 基于所述转发模式是第二模式的确定,或者基于所述查询请求是来自多播数据包的确定,设置优先级矢量的值为所述全局优先级矢量的值,以及 根据对应的输出端口的可用性,基于所述优先级矢量将授权发送至输入端口 ;以及 更新所述全局优先级矢量变量和所述N个局部优先级矢量变量。23.如权利要求22所述的方法,其中当所述转发模式是所述第一模式或者没有输入端口得到授权时,不更新所述全局优先级矢量变量。24.如权利要求22所述的方法,当所述转发模式是所述第二模式并且至少一个输入端口得到授权时,所述全局优先级矢量变量被更新为具有次高优先级的输入端口。25.如权利要求22所述的方法,其中当所述对应的输出端口仲裁器从多播数据包接收至少一个查询请求或者没有授权被发送时,不更新局部优先级矢量变量。26.如权利要求22所述的方法,其中当所述对应的输出端口仲裁器没有从任何多播数据包接收查询请求并且授权被发送时,更新局部优先级矢量变量。27.如权利要求22所述的方法,其中所述第一模式在接收授权时就发送副本,即便输入端口并未从所有期望输出端口收到信息,并且其中所述第二模式在同时向期望输出端口中的所有端口发送副本之前,等待从所有期望输出端口接收所有授权。
【专利摘要】本发明涉及互连多个处理引擎的芯片上路由器的矩阵及使用其进行路由的方法,具体地,本发明的实施例涉及使用芯片上可配置路由器的单个芯片上的多个处理引擎的可扩展的互连方案。该互连方案支持通过该处理引擎通信的数据包的单播和多播路由。每个芯片上可配置路由器包括路由表,该路由表是通过软件可编程的,并且可被配置为以公平且无死锁的方式将进入的数据包正确地递送至其输出端口。特别地,芯片上可配置路由器的每个输出端口均包括输出端口仲裁器,以在该芯片上可配置路由器的输出端口处存在争夺时避免死锁,并且保证在所转移的数据包之间的递送的公平性。
【IPC分类】H04L12/721, H04L12/771
【公开号】CN104954254
【申请号】CN201410838063
【发明人】A·T·特兰, G·施密特, T·丹尼尔, N·希瓦
【申请人】凯为公司
【公开日】2015年9月30日
【申请日】2014年12月29日
【公告号】US20150188848
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1