用于源同步电路交换片上网络(NoC)的方法、装置和系统的制作方法_3

文档序号:9493960阅读:来源:国知局
号来撤销其请求,并且将其"批准输出"端口切换到先前的路由器,以指 示分组的成功传送。同时,输入端口 400打开输入锁存器410,由此允许新的分组进入路由 器。
[0049] 电路交换数据通过消除内部路由数据触发器及其时钟功率来降低能量消耗。源同 步操作和电路交换数据的组合提供了进一步的益处。对于完全同步操作,用于电路传送的 时钟针对最坏情况的角对角网络遍历留有边限。在没有源同步技术的情况下,相邻IP块与 在NoC的相对端处的两个IP块具有相同的电路交换延迟。利用源同步操作,电路交换活动 是基于事件的相对IP到IP延迟,例如,在具有随机流量的16x16网格中产生65%的延迟降 低。利用结合近阈值电压的电路交换,操作通过互补金属氧化物半导体(CMOS)设计,接近 能量效率的限制,该限制由仅包含电线的点到点互连以及以低电压运行的组合中继器来进 行定义。实施例还可以包括多路解复用器(解复合器)、多路复用器(复合器)、以及仲裁 电路以控制理想的点对点情况的顶部上的NoC流。
[0050] 在一个混合源同步NoC实现方式中,请求分组建立源IP和目的地IP之间的电路 交换通道。为了开始数据传送,源IP向目的地IP发送预留分组(例如,在实施例中,包括 1位(b)请求、8b地址以及可选分组数据)。所述分组在每一个路由器上被触发一次,并且 被向下游转发。路径上的每一个路由器将批准信号(例如,Ib批准)发送回先前的路由器, 以释放基于信用的系统中的上游链路。在一个实施例中,如上文所讨论的,信用系统可以被 实现为信用-2系统。当建立电路交换通道时,数据在通道上从源被传递到目的地。对于该 电路交换通信,一旦接收到电路交换数据,目的地路由器将确认一直发送回源核心。
[0051] 现在参考图8,示出了根据本发明的实施例的方法的流程图。如图8所示,方法 850可以通过遍及NoC存在的各种逻辑执行。这样的逻辑可以分布在位于期望数据通信路 径的源逻辑和目的地逻辑之间的多个路由器内。如图所示,方法850开始于框860,其中,在 路由器中接收到来自源逻辑的预留请求,并且将其存储在缓冲器(例如,FIFO缓冲器)中。 该预留请求可以是经由NoC的分组交换部分通信的预留分组,所述NoC具有或不具有存储 多个预留分组的缓冲器,每一个预留分组对应于源逻辑和目的地逻辑之间的数据通信的预 留。接下来,在框870处,将预留分组发送到路径上的路由器以到目的地逻辑。例如,基于 在给定路由器中执行的查找或其它路由协议,将该预留分组沿着从源逻辑到目的地逻辑的 路径转发。
[0052] 仍参考图8,接下来,可以确定该预留请求在从源逻辑到目的地逻辑的路径上是否 具有最高优先级(菱形880)。如果否,则该预留等待直到其是最高优先级为止。当预留具 有最高优先级时,则在源逻辑和目的地逻辑之间建立电路交换通道(框885)。在建立该通 道之后,发生数据通信。更具体地,在框890处,在源逻辑和目的地逻辑之间对电路交换数 据传送进行通信。每一个传送可以包括一个或多个数据段,其大小由数据总线来进行设置。 在具有电路流的实施例中,可以在通道关闭之前,将多个段从源逻辑传递到目的地逻辑。在 实施例中,利用具有前向(流、尾)和反向(确认)握手信号的2阶握手来执行通信。源逻 辑接收指示成功接收到被传送的每一个电路交换段传送的确认。在实施例中,电路交换传 送使用信用-1系统,而分组交换传送使用信用-2系统。在更一般的意义上,它们二者都可 以具有其它独立的基于信用的协议。虽然在图8的实施例中以高层次进行了描述,但可以 理解的是本发明的范围在此方面不受限制。
[0053] 现在参考图9,示出了包括多个路由器510a_510c的NoC 500的框图。如图所示, 每一个输入端口和输出端口以有序方式来提供数据传送。当到来的预留被加入队列并且不 同的预留被输入到不同路由器时,它们在不同的路由器处分叉。由此可见,在路由器510a 内,在输出端口的FIFO中,较早的预留被放置在预留5和6之前。然后在路由器510b中, 预留4和6分叉,并且因此预留5进入该输出端口的FIFO的头部。在被输入到路由器510c 的输入端口的FIFO之后,由于输出端口的FIFO已满,所以预留5被停止。
[0054] 在每一个路由器端口,预留将方向?目息存储到FIFO中的最尚可用槽中。最尚整体 槽控制电路通道多路复用器(复合器)和多路解复用器(解复合器)。预留可以在路径的 每组出-入端口处具有不同的优先级。也就是,预留可以在其遍历源和目的地之间的路由 时改变槽优先级,只要保持全局顺序即可。如果FIFO已满,则预留被阻塞。当预留在从源 到目的地的所有FIFO中具有最高优先级时,源和目的地IP使用电路交换协议来进行通信。 在实施例中,该通信包括在具有2段握手协议的组合通道上的指示数据段的开始的Ib流信 号、指示数据传送结束的Ib尾信号、80b数据和Ib确认的传送控制信号。当通道保持打开 时,可以流送电路数据以发送多个数据段(例如,80b数据中的每一个),每一个段具有其自 己的确认。这在大得多的数据传送上摊销了电路交换仲裁开销。当完成数据流送时,最终 确认通过增加沿着路径的所有FIFO中的优先级而使通道解除分配。这从FIFO移除了完成 的最高优先级预留,允许后续电路交换传送发生。
[0055] 现在参考图10A,示出了根据本发明的一个实施例的路由器的输入和输出端口的 框图。除了处理预留分组以及电路交换控制和数据信息,路由器将到来的边带数据从每一 个入端口发送到正确的出端口。在图IOA中,在左边示出入端口 600,并且在右边示出出端 口 700。首先考虑分组交换部分601/701。在信用-2分组系统中,被发送的请求的数量可以 比接收到的批准的数量超出2个。请求和批准是跃迀编码的。在入端口中,请求被转换为电 平敏感信号,利用地址信息来进行解复合,并且被发送到正确的出端口。当路由器忙时,锁 存器和C元件阻塞到来的分组。从入端口 600的分组部分601开始,到来的请求经由C元 件605被接收,该C元件605还接收批准信号,并且驱动异或门610的一个输入。图IOB示 出了根据本发明的一个实施例的C元件的框图。另一输入来自异或门620的批准输出,该 异或门620接收多个批准信号。接着,门610的输出被耦合到多路解复用器615,并且还驱 动锁存器630,该锁存器630接收到来的分组数据、以及地址信息和电路使能信号。门610 的输出是中间电平敏感请求信号,其由路由器用于处理到达输入端口的请求。
[0056] 在FIFO 650中存储关于预留分组的信息。更具体地,可以经由解码器625的输出 将该信息存储于条目中。在实施例中,地址可以与每一个核心相关联(并且因此在核心和 路由器之间是1:1映射的情况下与路由器相关联)。接着,该地址可以用于生成每一个路 由器本地的方向信息,以识别用于发送信息的路由器的合适端口。在实施例中,该方向信息 (其可以是用于识别四个方向中的一个方向的两个位)存储于FIFO中。
[0057] 当给定的输入端口打开时,到来的数据和地址信息通过锁存器630被一直传递到 出端口 700的多路复用器735。注意,经由通过耦合到另一异或门675的异或门665和670 接收到的电路确认信号来控制用于电路交换通信的各种元件。尾信号指示数据传送的结 束,并且被提供到XOR门655、多路解复用器660、以及随后的切换触发器745和XOR门765。 到来的电路流信号(经由异或门680)被提供,并且通过多路解复用器690 (用于流信号) 并到达出端口 700上,并且更具体地,到达切换触发器750上。切换触发器750的输出驱动 双边沿触发器760,并且还是异或门770的输入,由此输出针对电路流数据的控制信号。接 着,电路数据本身经由多路复用器锁存器755通过入端口 600并通过出端口 700被传递。
[0058] 对应的FIFO 740存在于出端口 700中,并且被配置为经由方向仲裁器705来接收 输入。多路复用器735耦合到双边沿触发的触发器730。在方向仲裁器705中确定数据流 的方向,仲裁器705接着驱动切换触发器710以输出批准信号。现在参考图10C,示出了根 据本发明的一个实施例的切换触发器的框图。还应注意到,存在另一 C元件725,其输出耦 合到互斥NOR门715的输入。
[0059] 来自出端口的批准被向上游发送,返回到源。在出端口,方向仲裁器705从入端口 请求中进行选择。所述请求被使用切换触发器710转换为跃迀。所述跃迀用作针对先前路 由器的外出请求和批准。该外出请求使用双边沿触发的触发器来触发地址和数据信息。现 在参考图10D,示出了根据本发明的一个实施例的双边沿触发的触发器的框图。C元件跟踪 信用,并且在信用被超出时禁用切换触发器。
[0060] 由此,分组被用于使用图IOA的电路部分602/702来建立电路交换通道。分组将 方向信息存储到所有端口中最高可用的FIFO槽中。最高整体优先级FIFO槽控制用于电路 交换控制信号和数据的解复合和复合。锁存器用于电路数据,仅用于防止数据链路上不必 要的故障(glitch)。在实施例中,锁存器在电路传送期间保持打开,并且对每一个流仅开 关一次,以获得比分组交换显著降低的时钟功率。在实施例中,实现二者都指定数据传送的 两个转发控制信号(流和尾)。流信号表示电路数据与要更随的更多数据(如额外的段) 的通信,并且因此保持电路通道打开,以用于(一个或多个段的)完整的电路数据传送,并 且尾信号表示电路数据传送的结束,并且通过增加 FIFO优先级来对电路交换通道进行解 除分配。接着,在相反方向上,针对电路数据传送的每段,从目的地向源发送反向控制信号 (确认)。
[0061] 现在参考图11,示出了根据本发明的实施例的FIFO 800的框图。在实施例中, FIFO 800被实现为具有旋转写入和读取指针的4-深度寄存器。如图11所示,FIFO组810 经由由写入指针820控制的多路解复用器805将到来的数据接收到其条目中相对应的一 个,所述写入指针820又包括Gray计数器822和解码器824。以防止所有故障的方式来在 FIFO中执行解码。在实施例中,FIFO指针是Gray编码的,并且FIFO作为循环FIFO进行操 作,以确保没有故障。这种编码还使得能够在读取指针和写入指针之间进行比较,而没有任 何故障,以确定FIFO是满的还是空的。
[0062] FIFO组810的条目耦合到输出多路复用器815,其输出将经由Gray计数器832和 解码器834控制的读取指针830读取的所选择的条目。还应注意,用于提供空信号和满信 号的FIFO状态逻辑840的存在。
[0063] FIFO 800由此被配置为分组交换预留和电路交换传送之间的接口。指针被实现为 Gray计数器,以允许无故障的异步写入和读取操作。由于可以对用于电路传送的预留进行 入队,所以预留分组比电路交换传送传播的更快,并且提前建立下游电路交换通道以隐藏 地址解码和方向仲裁延迟。
[0064] 维序路由(先是X然后是Y)防止分组网络中的死锁。通过电路传送,当分组分配 电路交换通道,但电路传送形成周期性优先级循环并且永不到达时,可能发生额外的死锁 场景。实施例可以通过仅在转向处停止请求直到电路控制信号到达为止来避免该死锁。当 请求和电路传送从E或W改变方向到N或S时,发生转向。当从任意基本方向向下转向到 核心端口时,发生类似情形。在该场景中,由于下游端口是最终目的地,所以不需要维持传 送次序,并且选择最早到达的电路传送。因此,使用本发明的实施例,通过在转向(E、W->N、 S)处停止请求直到有效电路传送到达为止,而避免了死锁。
[0065] 本文所描述的路由器实现可以用于多种不同类型的系统中。现在参照图12,示出 了在16x16网格中实现的NoC 900的框图。在实施例中,每一个路由器910具有唯一
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1