公开了用于在包括多个处理元件的计算芯片上路由数据的路由器,路由器包括:分组处理流水线;丢弃的分组缓冲器;以及一个或多个电路,被配置为:确定分组处理流水线中的数据分组要被丢弃;将要被丢弃的数据分组从分组处理流水线移动到丢弃的分组缓冲器;并且将丢弃的数据分组从丢弃的分组缓冲器重新插入到分组处理流水线中用于重新处理。处理流水线中用于重新处理。处理流水线中用于重新处理。
【技术实现步骤摘要】
【国外来华专利技术】片上路由器
[0001]本申请涉及用于在包括多个处理元件的计算芯片上路由数据的路由器以及用于由路由器处理数据分组的对应的方法。
技术介绍
[0002]当今许多更有力的包括用于诸如天气预报、药物发现、神经模拟和自动驾驶车辆等要求高的科学应用的高性能计算机的计算机,都使用大量通过某种处理器间网络连接在一起的处理器。对这些机器至关重要的是它们的通信网络不会由于通过网络传输的信息分组之间的循环依赖而死锁。死锁是指分组A因为其路径被分组B阻塞而不能继续,并且分组B因为其路径被分组A阻塞而不能继续的情况。两个以上的分组可能参与这种循环依赖,但是原理保持相同。
[0003]为了避免循环依赖导致死锁的任何风险,通常的做法是设计这样的网络,使得循环依赖永远不会出现。这可以通过多个网络层的使用或虚拟通道的使用或其他已知技术来实现。这样的技术有效地消除循环依赖的任何可能性,但是它们在支持另外的通信功能所需的硬件方面产生显著的另外的成本。正因如此,期望提供防止处理器间网络中死锁的改进的方法。
技术实现思路
[0004]根据第一方面,提供了用于在包括多个处理元件的计算芯片上路由数据的路由器,路由器包括:分组处理流水线;丢弃的分组缓冲器;和一个或多个电路,一个或多个电路被配置为:确定分组处理流水线中的数据分组要被丢弃;将要被丢弃的数据分组从分组处理流水线移动到丢弃的分组缓冲器;以及将丢弃的数据分组从丢弃的分组缓冲器重新插入到分组处理流水线中用于重新处理。
[0005]如上所述,现有方法试图设计处理器间网络使得可以导致死锁的循环依赖永远不会出现。然而,这样的技术在支持所需的另外的通信特征所需的硬件方面产生显著的另外的成本。本专利技术通过允许将可能被阻塞的分组从网络结构中临时移除(“丢弃”)并保存在缓冲器中,从而移除任何循环依赖,来允许更简单的无死锁网络。分组随后可以被重新插入网络中并被正常传送。使用用于分组丢弃和重新插入的硬件机制允许网络即使在拥塞时也保持良好的吞吐量,从而确保从低成本网络结构快速且可靠地传送分组。
[0006]在一些其他现有技术方法中,用于丢弃数据分组的过程在软件中执行。例如,在一种现有技术方法中,芯片上的处理元件被指定为监控处理器。当确定分组要被丢弃时,中断信号被发送到监控处理器。然后监控处理器可以复制丢弃的分组并重新传输复制的分组。然而,鉴于监控处理器服务于中断所需的时间,这个过程很慢。通过网络复制和重新传输分组所带来的延迟进一步增加了处理丢弃的分组所需的时间。本专利技术提供了基于硬件的分组丢弃和重新插入机制作为路由器的一部分。因此,处理丢弃的分组所需的时间被显著地减少,并且路由器在拥塞下的吞吐量可以被增加。由于分组丢弃和重新插入完全发生在路由
器内,而不需要将丢弃的分组传输到监控处理器并重新传输到路由器,因此过程也更加节能。另外,由于不需要监控处理器,因此芯片的处理元件可以完全专注于执行它们各自的任务。
[0007]将理解,路由器可以在同一芯片的处理元件之间路由数据分组,并且芯片可以被连接使得数据分组可以在不同芯片的处理元件之间路由。也将理解,路由器包括基于硬件的分组丢弃和重新插入机制,该机制包括丢弃的分组缓冲器和一个或多个电路。
[0008]一个或多个电路可以包括分组重新插入模块,该分组重新插入模块包括丢弃的分组缓冲器,并且被配置为将丢弃的数据分组从丢弃的分组缓冲器重新插入到分组处理流水线中用于重新处理。
[0009]一个或多个电路可以被配置为基于指示数据分组的目的地不能接收数据分组的信号来确定分组处理流水线中的数据分组要被丢弃。将理解,目的地可能不一定是数据分组的最终目的地,而是目的地可以包括片上数据网络的中间节点或者可以是路由器的输出端口。为了避免阻塞分组处理流水线,数据分组可能会被丢弃。
[0010]分组处理流水线可以进一步包括无序分组缓冲器,并且一个或多个电路可以被配置为将要被丢弃的数据分组从无序分组缓冲器移动到丢弃的分组缓冲器。一个或多个电路可以进一步被配置为选择由分组处理流水线处理的数据分组;确定数据分组的一个或多个目的地;确定数据分组的一个或多个目的地中的目的地不能接收数据分组;以及将数据分组移动到无序分组缓冲器。
[0011]无序分组缓冲器可以使停滞的数据分组(即,还不能传输的数据分组)排队,使得分组处理流水线可以继续处理进一步的分组,而无需在继续之前等待停滞的数据分组被丢弃。在数据分组不能被传输的情况下,数据分组可以被存储在无序分组缓冲器中,直到数据分组可以被传输到它的目的地或应该从无序缓冲器中移除以被丢弃。
[0012]无序分组缓冲器可以是流水线队列。当新的数据分组变得停滞时,无序分组缓冲器中现有的停滞的数据分组可以在队列中进一步移动以容纳新的停滞的分组。要被丢弃的数据分组可以是无序分组缓冲器中最老的数据分组。
[0013]一个或多个电路可以被配置为基于定时器的期满来确定分组处理流水线中的数据分组要被丢弃。例如,在使用无序分组缓冲器的情况下,当数据分组到达缓冲器的末端槽时可以启动定时器。这可能表明缓冲器已满,并且数据分组将要被丢弃以确保分组处理流水线不会过度延迟。在不使用无序分组缓存器的情况下,可以在确定数据分组不能被传输时启动定时器。定时器提供最小等待时间使得分组不会被不必要地丢弃。
[0014]一个或多个电路可以被配置为基于定时器将丢弃的数据分组从丢弃的分组缓冲器重新插入到分组处理流水线中用于重新处理。例如,定时器可以在分组被移入丢弃的分组缓冲器中并且丢弃的分组缓冲器不再为空时启动。当丢弃的分组从丢弃的分组缓冲器移除并重新插入到分组处理流水线中时,定时器可以被重置。如果丢弃的分组缓冲器不为空,则定时器可以被重新启动。定时器因此在丢弃的分组重新插入之间强制执行最小时间间隔。最小时间间隔可以基于丢弃的分组缓冲器的当前负载和/或路由器的当前状态和/或片上网络的当前状态被动态地配置。
[0015]一个或多个电路可以被配置为基于分组处理流水线的负载将丢弃的数据分组从丢弃的分组缓冲器重新插入到分组处理流水线中用于重新处理。例如,重新插入请求可以
被发送到分组处理流水线,并且当请求被准予时执行重新插入。请求的准予可以基于分组处理流水线的负载和/或当在流水线的开始处有空闲槽时和/或当没有用于处理的新数据分组到达时和/或在与新到达的数据分组周期性或交织的基础上和/或本领域技术人员认为适当的其他条件。一个或多个电路可以包括作为用于处理重新插入请求的分组重新插入模块的一部分的重新插入请求器,并且该重新插入请求器可以连接到重新插入定时器,该重新插入定时器用信号通知何时生成重新插入请求。
[0016]路由器可以被配置为提供基于软件的分组卸载操作以移除存储在丢弃的分组缓冲器中的数据分组,以用于在路由器的外部重新处理数据分组。例如,如果丢弃的分组缓冲器已满或接近已满,则可以使用基于软件的机制从丢弃的分组缓冲器移除分组以存储在芯片上的诸如与处理元件相关联的本地存储器的其他地方。然后移除的分组可以在片上网络上被重新传输。路由器可以包括通本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种用于在包括多个处理元件的计算芯片上路由数据的路由器,所述路由器包括:分组处理流水线;和基于硬件的分组丢弃和重新插入机制,包括:丢弃的分组缓冲器;和一个或多个电路,被配置为:确定所述分组处理流水线中的数据分组要被丢弃;将所述要被丢弃的数据分组从所述分组处理流水线移动到所述丢弃的分组缓冲器;以及将丢弃的数据分组从所述丢弃的分组缓冲器重新插入到所述分组处理流水线中用于重新处理。2.根据权利要求1所述的路由器,其中,所述一个或多个电路被配置为:基于指示所述数据分组的目的地不能接收所述数据分组的信号来确定所述分组处理流水线中的数据分组要被丢弃。3.根据权利要求1或2所述的路由器,其中,所述分组处理流水线进一步包括无序分组缓冲器,并且其中,所述一个或多个电路被配置为将所述要被丢弃的数据分组从所述无序分组缓冲器移动到所述丢弃的分组缓冲器。4.根据权利要求3所述的路由器,其中,所述一个或多个电路进一步被配置为:选择由所述分组处理流水线处理的数据分组;确定所述数据分组的一个或多个目的地;确定所述数据分组的所述一个或多个目的地中的目的地不能接收所述数据分组;以及将所述数据分组移动到所述无序分组缓冲器。5.根据权利要求3或4所述的路由器,其中,所述要被丢弃的数据分组是所述无序分组缓冲器中最老的数据分组。6.根据前述权利要求中任一项所述的路由器,其中,所述一个或多个电路被配置为:基于定时器的期满确定所述分组处理流水线中的数据分组要被丢弃。7.根据前述权利要求中任一项所述的路由器,其中,所述一个或多个电路被配置为:基于定时器将所述丢弃的数据分组从所述丢弃的分组缓冲器重新插入到所述分组处理流水线中用于重新处理。8.根据前述权利要求中任一项所述的路由器,其中,所述一个或多个电路被配置为:基于所述分组处理流水线的负载将所述丢弃的数据分组从所述丢弃的分组缓冲器重新插入到所述分组处理流水线中用于重新处理。9.根据前述权利要求中任一项所述的路由器,其中,所述路由器被配置为:提供基于软件的分组卸载操作以移除存储在所述丢弃的分组缓冲器中的数据分组,以用于在所述路由器的外部重新处理所述数据分组。10.根据前述权利要求中任一项所述的路由器,其中,所述分组处理流水线被配置为处理多播数据分组。11.根据前述权利要求中任一项所述的路由器,其中,所述丢弃的分组缓冲器被配置为存储多个丢弃的数据分组。12.根...
【专利技术属性】
技术研发人员:史蒂文,
申请(专利权)人:考科尼散思有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。