目标:

  • 硬件结构连接
  • 基本通信开销
  • 数据如何流动

基本知识

  • 术语:node、interface、switch(router)、link
  • 直接网络、间接网络:每个节点是否属于网络的端点
  • 阻塞网络、非阻塞网络:任意时刻任意两节点是否能通信

互连拓扑结构

bus

  • 容易实现缓存一致性
  • 所有节点产生竞争;有限带宽

crossbar

  • 非阻塞、间接
  • 不可扩展
  • $O(N^2)$开销
  • $O(1)$延迟

ring

  • 简单,$O(N)$开销
  • $O(N)$高延迟,有限带宽

Mesh

  • 直接,阻塞
  • $O(N)$开销
  • $O(sqrt(N))$延迟
  • 节点路径不唯一

Torus

  • 和Mesh类似,更加复杂

Tree

  • $O(log(N))$延迟
  • 适合局部通信较多场景

Multi stage logarithmic

  • 间接,阻塞
  • $O(Nlog(N))$开销
  • $O(log(N))$延迟

缓冲区与控制流

包(packet)格式:

  • 头:路由、控制信息
  • 数据
  • 尾:控制信息,如纠错码等

竞争:

  • 来源:两个包同时经过link时
  • 解决:
    • store-and-forward:每个router处有packet buffer,每个packet需要缓存,增加延迟
    • cut-through flow control:和上面类似,packet以流水线方式传输。最坏情况下,如果总线忙,无法流水线,就会退化成上面一种方式。
    • wormhole flow control:
      • 把packet拆分成更小单元flit进行传输。flit以流水线进行传输,当头flit阻塞时,所有flit同时停止。信息足够长时,延迟与节点距离无关。
      • 问题:head-of-line blocking,头结点被其他flit阻塞
      • 解决:virtual channel,将buffer分成多个buffer共享一个物理单元

ShengYg

Step after step the ladder is ascended.


Tags •