基础架构 | Noxim
本文介绍了 Noxim 的主要架构。
Tile Node = PE + Router
- 一般使用网格结构
- 每个 tile 包含一个路由器和一个 PE
- 每个非边界 tile 连接东南西北四个临近的 tile
- (可选)当允许无线传输时,一些节点可以和 Radio-hub 相连
Wormhole & Flits
- 从源到目的地的传输过程中,每个中间节点无法存储数据包
- 需要很多 buffer
- 会有存储和还原以重新传输的延迟
- 可以使用 Wormhole 技术解决
Wormhole 寻径技术
- Wormhole 寻径技术的思想来源于自然中一个极普通的现象:一个 worm 在沙土中爬行,用其头部开辟一条路径,同时放弃其尾部之后爬过的路径。在 Wormhole 寻径技术中,把一个消息包分成多个微片(flits)。一个消息的头微片(head flit)包含了这个消息的所有寻址信息。尾微片(tailor flit)是一个在其最后包含了消息结束符的数据微片。中间的微片均为数据微片。一个微片是通信队列和通道所能接受或拒绝的最小信息单位。对一个消息来讲,在每个节点上只需能缓冲其一个微片就能满足要求。而不像存储转发那样,把一个消息的全部都存储到一个节点上后,再把它向下一个节点传送。Wormhole 寻径通过用一个消息的头部直接开辟一条从输入链路到输出链路的路径的方法来进行操作。每个消息中的微片以流水的方式在网络中向前”蠕动”。每一个微片相当于 worm 的一个关节,”蠕动”是以关节为单位顺序地向前爬行
- 当消息的头微片到达一个节点 A 的路由器后,路由器根据头微片的寻径信息立即做出路由选择:
- 如果所选择的通道空闲且所选择的节点 B 的通信缓冲可用,那么这个头微片就不必等待,直接通过节点 A 传向下一个节点 B;随后的其它的微片跟着相应地向前”蠕动”一个节点。当消息的尾微片向前”蠕动”一个节点之后,它刚才所占有的节点就被放弃了
- 如果所选择的通道非空闲或所选择的节点的通信缓冲器非可用时,那么这个头微片就必须在此节点的通信缓冲器中等待,直到上两者均为可用时为止;其它微片也在原来的节点上等待。此时,被阻塞的消息不从网络中移去,微片不放弃它所占有的节点和通道。这是 Wormhole 寻径技术与其它流控制技术的不同之处
- 当一个消息的头微片到达某个节点时,节点为它选择了下一个通道并且把它沿着这条通道向前传送。消息向前传送时,其各个微片顺序地从源节点爬向目的节点。可能其头微片已到达目的节点了,还有后继的微片仍在源节点上。因除头微片外其它的微片都不含寻径信息,所以微片序列必须保持网络中连续的通道,不能被其它消息的微片所打断
基础架构 | Noxim