Bootstrap

片内互联中常用的拓扑结构

主要的拓扑结构有星型(Star)、交叉(Crossbar)、总线(Bus)、环型(Ring)和网格(Mesh)等。

星型(Star)结构,主控处理器放在中心位置,其他各个模块均与其连接,而模块彼此之间并不直接交互,必须通过主控中转,结构如图1所示。这种结构简单高效,在早期片内模块数量较少、结构单一时经常被使用。但随着多核的出现,该结构面临连接复杂、拓展困难等问题。

图片

图1 星型结构

交叉(Crossbar)结构,可以同时实现多个主从设备的数据传输,也能实现一个主设备对多个从设备进行数据广播,如图2所示。主要面向对超高带宽要求的系统,或者是主设备有经常向多个从设备发送广播数据需求的系统。但这种互连技术的互连线很复杂,对数字后端设计带来很大挑战。

图片

图2 交叉结构

总线(Bus)结构,所有数据主从模块都连接在同一个互连矩阵上,如图3所示。当有多个模块同时需要使用总线传输数据时,采用仲裁方式来确定总线的使用权,获得使用权的设备在完成数据传输后释放总线。ARM的AXI、AHB和APB都采用该结构。

图片

图3 总线结构

环型(Ring)结构,将网络中的节点首尾相连,形成一个环状,各个模块之间交互方便,不需要主控中转,功能单元通过网络接口将信息送上环,消息在环上逐个节点进行传递,每次只能前进一个节点,消息到达与目的功能单元连接的节点后被送下环,转到网络接口,进而传递给目的功能单元。环型互联进一步划分为单环和双环,单环只有一个方向(顺时针或逆时针),如图4所示,即使是相邻节点,也可能需要经过所有节点才能到达;而双环有两个方向(顺时针和逆时针),如图5所示,消息可以根据源和目的的距离自动选择最近的方向,这样的设计可以保证任意两个节点之间的距离不超过总数的一半。因此,有效降低延迟(相邻节点之间延迟不超过60ns),并极大提高性能(最高吞吐量可达数百G),同时方便扩展(只需在环上增加一个节点即可)。但随着内核数量的增加,环会越来越长,从而导致延迟越来越大,当内核数多于12个以后,整体性能下降明显。

图片

图4 环型结构(单环)

图片

图5 环型结构(双环)

网格(Mesh)互联,其中的节点排成规则的网格,每个节点只与其同行和同列的相邻节点连接。如图6所示,共有16个节点,每个节点连接一个网络接口,16个节点排列成4x4的网格。网格属于多维拓扑,至少是2维,并可以逐步扩展到3维或更高维,如图7所示的3维网格中,27个节点排列成3x3x3的网络。

图片

图6 网格结构(2维)

图片

图7 网格结构(3维)

还有一种环面(Torus)拓扑,与网格类似,区别在于提供了同行和同列的最远端的两个节点的连线,即每行和每列都是一个环,如图8所示。

图片

图8 环面结构

网格结构通过增加网络维度,提高传输带宽,降低网络延迟,也有利于新模块和节点的增加,从而可支持更多内核。

;