导论
1.1 多核时代
不断增加的功耗和单处理器架构性能回报递减的综合压力导致了多核芯片的出现。随着每一代新技术中可用的晶体管数量不断增加,再加上多核芯片的模块化设计降低了设计复杂性,这种多核浪潮将长久存在。这种多核浪潮可能会导致在单个芯片上集成数百甚至数千个核心。
就片上集成组件的类型而言,异构性现在在许多细分市场中很常见,这进一步增加了片上互连结构的复杂性。除了处理器内核之外,片上结构也越来越需要互连嵌入式存储器、DSP 模块、视频处理器和图形处理器等加速器。
1.1.1 多核架构的通信需求
随着片上内核数量的增加,连接它们的可扩展的低延迟和高带宽通信结构变得至关重要。
- 总线 - 在四个或八个核心的场景下,总线和交叉开关是主要的互连方式。总线是共享的多位(bit)物理通道,每个核心都连接在总线上并监听总线,在一个时刻只允许一个核心进行传输,总线提供低延迟但带宽较差。
- 交叉开关(crossbar)可以为任意一对核心提供非阻塞连接,具有高带宽和相当低的延迟,但在面积和功率方面扩展性较差。
因此,片上网络正在快速取代总线和交叉开关,成为多核芯片中普遍的通信结构。这种片上网络的每个节点都有路由器,通过短的本地片上链路连接到邻居;多个通信流在这些链路上复用,以提供可扩展性和高带宽。
1.2 片上片外网络的比较
- 虽然片上网络可以利用超级计算机、工作站集群和互联网路由器中使用的先前多机箱互连网络的思想,但片上网络面临的设计要求却截然不同。因此,迫切需要新颖的设计。幸运的是,通过转移到片上,先前多机箱互连网络面临的 I/O 瓶颈得到了显着缓解:丰富的片上布线提供的带宽比片外 I/O 高出几个数量级,同时避免了固有的与片外 I/O 传输相关的延迟开销。
- 另一方面,许多严格的技术限制给片上网络设计带来了挑战。具体来说,针对高性能多核处理器的片上网络必须以超低延迟提供高带宽,并具有严格的功率范围和面积预算。对于多核和众核芯片,缓存和互连与内核争夺相同的芯片空间。在有限的面积和功率限制下集成大量组件给架构师带来了在这些组件之间实现平衡的重大挑战。
- 片上网络的创新可以使通信延迟与交叉开关相媲美。此外,尽管片上网络所需的功耗比总线和交叉开关少得多,但它们需要仔细设计。
1.3 网络基础知识
NoC为片上网络最为常见和流行的缩略词。
1.3.1 NoC的演变
片上网络作为更广泛的互连网络的子集,可以被视为促进节点之间数据传输的可编程系统。片上网络可以是被视为一个系统,因为它集成了许多组件,包括通道、缓冲器、交换单元(switch)和控制。
对于少量节点,可以使用专用的临时布线来互连它们。然而,随着我们增加片上组件的数量,使用专用电线会产生问题:直接连接每个组件所需的接线量将变得令人望而却步。
低核心数的设计可以利用总线和交叉开关。在传统的多处理器系统和较新的多核架构中,基于总线的系统只能扩展到适度数量的处理器。这种有限的可扩展性是因为随着更多内核添加到总线,总线流量很快达到饱和,因此很难获得高带宽。驱动具有许多内核的长总线所需的功率也非常高。此外,随着核心数量的增加,集中仲裁器会增加仲裁延迟。为了解决这些问题,复杂的总线设计结合了分段、分布式仲裁、分割事务,越来越类似于基于开关结构的片上网络。
交叉开关解决了总线的带宽问题,并已用于少量节点的片上互连。然而,对于大量核心来说,交叉开关的扩展性很差。它们需要大面积占地面积并消耗高功率。
出于多种原因,片上网络是总线和交叉开关的有吸引力的替代品。首先也是最重要的是,网络代表了片上通信的可扩展解决方案,因为它们能够以较低的面积和与节点数量呈次线性相关的功率开销提供可扩展的带宽。其次,片上网络在布线使用方面非常高效,在同一链路上复用不同的通信流,从而实现高带宽。最后,具有常规拓扑的片上网络具有长度固定的本地短互连,可以使用可复用结构进行优化和模块化构建,从而减轻验证的负担。
1.3.2 片上网络的基本构建模块
片上网络的设计可以分为不同的构建块:拓扑、路由、流量控制、路由器微体系结构和设计以及链路体系结构。
- 拓扑
片上网络由通道和路由器节点组成。网络拓扑决定了网络中节点和通道之间的物理布局和连接。 - 路由
对于给定的拓扑,路由算法确定消息到达目的地所采用的网络路径。路由算法平衡流量(或负载)的能力对网络的吞吐量和性能有直接影响。 - 流量控制
流量控制决定了消息在网络中传输时如何分配资源。流量控制机制负责为等待数据包分配(和取消分配)缓冲区和通道带宽。与基于以太网技术的片外网络相比,大多数片上网络在设计上被认为是无损的,不可以丢包。 - 路由器微架构
通用路由器微体系结构由以下组件组成:输入缓冲区、路由器状态、路由逻辑、分配器和交叉开关(或交换机)。路由器功能通常采用流水线方式来提高吞吐量。通过片上网络中每个路由器的延迟是造成通信延迟的主要因素。因此,人们花费了大量的研究精力来减少路由器流水线级数来降低网络延迟。 - 链接架构
大多数片上网络原型使用传统的全摆幅逻辑和带有中继器(repeater)的连线。当传输 1 时,全摆幅导线从 0 V(地)转换到电源电压,当传输 0 时,转换到接地。在长导线上等间隔的中继器(反相器或缓冲器)是减少延迟的有效技术,使延迟与中继器的数量成线性关系,而不是与长度成二次方关系。
1.3.3 性能和成本
当我们讨论不同的片上设计点和相关研究时,重要的是要考虑网络的性能和成本。
性能通常根据网络延迟或接受的流量来衡量。
- 对于粗略的性能计算,通常使用零负载延迟(zero-load latency),即当网络中没有其他数据包传输时,数据包经历网络所需要的时间。零负载延迟提供了平均消息延迟的下限。零负载延迟是通过将消息传输的平均距离(以网络跳数给出)乘以每一跳跳的延迟,来计算具体数值。
- 高饱和吞吐量表明,网络可以在所有数据包经历非常高的延迟之前,接受大量流量,从而维持更高的带宽。下图展示了片上网络的延迟和吞吐量的关系曲线,标注了零负载延迟和饱和吞吐量。
与片上网络相关的两个主要成本是面积和功耗。如前所述,多核架构在非常紧张的功耗预算下运行。