片上网络的输入 / 输出节点 技术领域 本发明涉及片上网络 (Network on Chip, NoC) 拓扑结构,且尤其涉及网格状 (meshed) 网络中输入 / 输出节点的布置。
背景技术 图 1 代表如欧洲专利 EP1701274 所述的矩阵 ( 或网格状 )NoC 拓扑结构的例子。
这种网络包含按行 ( 水平总线 Bh) 和列 ( 垂直总线 Bv) 布置的多条总线。 路由 器 RTR 位于水平总线与垂直总线之间的每个交点上,使到达它的每个总线区段 ( 水平和 垂直 ) 之间形成点对点连接。 每个路由器 RTR 进一步与可以是数据产生器或使用器的本 地资源 RSC 连接。
这种类型的网络被设计成使任何资源 RSC 与任何其它资源通信。 一次通信可以 跨过负责将数据路由到最终目的地的几个路由器。
为了限制一次通信可以跨过的节点的数量,该网络最好是环形的。 如所示,位 于矩阵的一个边缘上的路由器与位于该矩阵的相对边缘上的路由器连接。 这进一步使相 同路由器结构可以在矩阵的边缘上和矩阵的中心两者中使用。
图 2 示意性地代表可用在这种环境下的路由器。 该路由器管理五个信道,即, 与总线区段相对应的四个方向即北 (N)、南 (S)、东 (E)、和西 (W)、以及与本地资源相 对应的链路 L。
将四输入多路复用器 MX 与每个路由器输出方向相关联。 这四个输入对应于不 与多路复用器的方向相关联的路由器输入。 例如,北输出多路复用器 MXN 接收路由器 输入 L、S、E 和 W。 换句话说,该路由器防止经由一个方向输入的分组经由相同方向出 去。
每个多路复用器输入的前面进一步接着意欲存储等待输出数据的 FIFO( 先进先 出 ) 队列 20。
控制器 22 进行判优 (arbitration),并控制多路复用器所作的选择以及将经由五个 信道进入的数据写入队列 20。
图 1 的类型的网络的一种设想应用是并行计算。 在这种情况下,每个资源 RSC 是一群处理器。 然后,将这样的网络与至少能够为计算提供数据以及提取计算结果的输 入 / 输出外设相关联。
一种直接的解决方案是使用一些资源 RSC 进行所需的输入 / 输出操作,最好是 处在矩阵边缘上的资源,以便于与将芯片与外界链接的触片连接。
对于相同矩阵大小,这种解决方案以 NoC 的计算能力为代价。 一定数量的处理 器群被这样的输入 / 输出单元所取代,这些输入 / 输出单元具有比该处理器群可以提供的 计算要求低得多的计算要求,但它们的特性,尤其是与外界连接的事实,造成它们的功 能不能由处理器群来完成,即使在共享时间内。
因此,如果改变矩阵的大小以提供给定计算能力,则不得不将输入 / 输出单元
添加在网络周围。 取决于设计人员所作的选择,这种添加可能使网络的等待时间显著延 长并 / 或使芯片的表面区域无意义地增大。
一种可以设想成将输入 / 输出单元加入给定矩阵中的解决方案包括将两行两列 的路由器添加在矩阵的外围并将输入 / 输出单元与之连接。 然后,路由器矩阵大小从 n×n 增大到 (n+2)×(n+2),这有可能使通信跨过的节点的数量增加,从而使网络的等待 时间延长。
另一种解决方案可包括使用六信道外围路由器,第六信道用于连接输入 / 输出 单元的目的。 例如在专利申请 WO 89/03564 中描述的这种解决方案存在外围路由器具有 比内部路由器大的表面区域的缺点,这样引起了路由器的布局布线 (place-and-route) 问 题。 为了设计简单化原因,最好是所有路由器都相同,因此都具有六信道。 在这种情况 下,内部路由器将具有将占据不必要表面区域的未用功能。
为了说明目的,与图 2 的路由器相比,六信道路由器包含不止一个多路复用 器,并且每个多路复用器具有五个输入端以及它们的相应 FIFO 存储器。
图 3 例示了如专利 US5689647 提出的解决这些缺点的解决方案。 它示出了像图 1 的那样的环形 (torus) 网络。 有资格成为 “输入 / 输出路由器”的三信道路由器 IOR 被 插在矩阵的外围上。 有资格成为内部的、这些路由器 IOR 的每一个的两个信道用于保证 路由器所处的行或列的连续性的目的。 有资格成为外部的第三信道用于经由输入 / 输出 单元 IOM 插入数据和从网络中提取数据的目的。 与叫做 “基础架构路由器” 的内部路由器 RTR 不同,处在行上的路由器 IOR 不 与相同列的路由器连接。 同样,处在列上的路由器 IOR 不与相同行的路由器连接。
假设初始矩阵具有 n×n 的尺度,按照图 3 添加路由器 IOR 使矩阵的大小增大到 (n+2)×(n+2)。 因此,图 3 的网络有可能具有比图 1 的网络更长的等待时间。
发明内容 因此,希望在存在处理器群的 NoC 中,不会使网络的等待时间显著延长地或使 芯片表面区域不必要增大地添加输入 / 输出单元。
为了满足这种需要,提供了一种环形网格状网络,包括 :基础架构路由器的矩 阵,每一个基础架构路由器与属于相同行的两个其它路由器和属于相同列的两个其它路 由器连接 ;以及输入 / 输出路由器,每一个输入 / 输出路由器通过两个内部输入端与属于 相同行或相同列的两个其它路由器连接,并且包含将数据供应给网络的外部输入端。 每 个输入 / 输出路由器没有用于它的内部输入端的队列,且包含指定给它受判优器管理的 外部输入端的队列,所述判优器被配置成也管理与所述输入 / 输出路由器连接的基础架 构路由器的队列。
按照一个实施例,所述判优器被配置成与所述基础架构路由器的队列结合地管 理所述输入 / 输出路由器的队列,以便两个路由器的组合相当于六信道路由器。
附图说明 其它优点和特征将从通过附图例示的示范性实施例的如下描述中变得更清楚明 显,在附图中 :
- 图 1 示意性地代表传统环形片上网络 ; - 图 2 示意性地代表图 1 的网络的路由器的结构 ; - 图 3 示意性地代表含有输入 / 输出路由器的环形网络的实施例 ; - 图 4 代表路由器的实施例 ;以及 - 图 5 示意性地代表图 3 的网络的优化。具体实施方式
图 4 示意性地代表输入 / 输出路由器 IOR 和基础架构路由器 RTR 的组合实施例, 以保证图 3 的输入 / 输出路由器 IOR 不引入等待时间。 具体为它的多路复用器 MXE 和 控制电路 22 的东基础架构路由器 RTR 部分,被示出为连接到整体示出的输入 / 输出路由 器 IOR。
当路由器 IOR 是三信道路由器时,它包含三个双输入多路复用器。 西多路复用 器 mxw 在第一输入端上接收来自输入 / 输出单元 IOM 的数据,并且在第二输入端上接收 来自未示出的东面路由器的数据。 东多路复用器 mxe 在第一输入端上接收来自输入 / 输 出单元 IOM 的数据,并且在第二输入端上接收来自所示路由器 RTR 的东多路复用器 MXE 的数据。
来自输入 / 输出单元 IOM 的数据经由 FIFO 队列 24 到达多路复用器 mxw 和 mxe 的相应输入端。
但是,如图所示,路由器 IOR 的多路复用器的所有其它输入端都没有 FIFO 队 列。 这样,跨过路由器 IOR 的数据不会经历任何等待时间。
下面参照表示在图 4 中的元件,即路由器 IOR 与它西面的路由器 RTR 之间的链 路,对路由器 RTR 与路由器 IOR 之间的协作加以描述。 该操作对于网络中的其它可能组 合是类似的。
为了保证没有数据在跨过路由器 IOR 时因不存在 FIFO 队列而丢失,使路由器 IOR 和 RTR 的控制电路 CTRL 以这样的方式交互,即让多路复用器 MXE 和 mxe 的所示 组合相当于具有提供给 FIFO 队列的五个信道的单个多路复用器。 这五个信道由多路复用 器 MXE 的四个输入端和多路复用器 mxe 指定给单元 IOM 的输入端形成。 换句话说,输 入 / 输出路由器和基础架构路由器的组合相当于六信道路由器。
当单元 IOM 在 IOR 路由器的东输出端上没有要供应的数据时,多路复用器 mxe 可以定位成选择路由器 RTR 的多路复用器 MXE 的输出。 多路复用器 MXE 按传统方式 控制,并且没有等待时间地将它供应的数据直接发送给路由器 IOR 的东输出端。
当单元 IOM 开始供应数据时,将数据堆叠在多路复用器 mxe 的队列 24 中。 然 后,路由器 IOR 的控制电路 22′使请求信号 RQIO 能够引起路由器 RTR 的控制电路 22 的 注意。 然后,后者切换到在五个信道之间而不是在四个信道之间进行判优的模式,第五 信道是指定给多路复用器 mxe 的队列 24 的那一个。
当判优器决定为第五信道服务时,路由器 RTR 的控制电路为路由器 IOR 的控制 电路启用确认信号 AQIO。 后者将多路复用器 mxe 定位成输出来自队列 24 的数据单元, 例如分组。
只要队列 24 包含数据,信号 RQIO 就保持有效,并且路由器 RTR 的控制电路保持于在五个信道之间进行判优的模式。 每当判优器决定为第五信道服务时,就逐个分组 地激活信号 AQIO。
原则上,只有与输入 / 输出路由器 IOR 连接的基础架构路由器 RTR 才需要实现 刚才所述的机制。 不过,由于这种机制牵涉到占据可忽略不计表面区域的逻辑,所以可 以将这种逻辑配备在所有基础架构路由器中,以便所有这些路由器都是相同的。 从而简 化了网络设计。 不使用该功能的路由器将具有它们与布线到无效逻辑电平的信号 RQIO 相关联的输入端。
在如图 3 所示的环形网络中,在矩阵边缘之间的链路中两个 IOR 路由器是相继 的。 因此,这些 IOR 路由器应该相互中继信号 RQIO 和 AQIO。 不过,为了清楚,图 3 对应于一种简化表示。 实际上,期望避免与连接矩阵边缘的那些一样长的链路。
图 5 代表节点之间的链路长度得到优化的环形网络。 矩阵大小例如是 4×4。 基 础架构路由器用细线示出,而输入 / 输出路由器用粗线示出。
基础架构路由器逐行和逐列地交错,即,一行或一列中排行 n 的路由器与排行 n+2 的路由器连接 ( 外围路由器对于它们的链路之一不遵守这条规则 )。 输入 / 输出路由 器被插入在从外围基础架构路由器出来的链路中。
借助于这种配置,路由器之间的所有链路基本上都具有相同长度,并且每个输 入 / 输出路由器都处在两个基础架构路由器之间。