1.1 多核时代的出现
多核浪潮原因:
单处理器架构功耗不断增大,性能回报减少;多核芯片模块化设计范式降低多核设计难度。
片上网络的发展:
在4个计算核心或8个计算核心的情况下,总线(bus)和交叉开关(crossbar)是主要的互连结构。
总线可以提供较低的传输延迟,但是无法提供足够的带宽。交叉开关(将在第6章中详细介绍)(通常被实现为二维矩阵结构,交叉点可视为开关实现不同输入和不同输出之间的连接)可以为任何一对计算核心提供非阻塞的连接。交叉开关具有大的带宽和相对较低的延迟,但是受限于面积和功率方面的表现,交叉开关的规模扩展性不佳。
交叉开关有扁平交叉开关,层级交叉开关(hierarchical crossbar)。
片上网络成为多计算核心芯片中普遍存在的通信结构。
每个节点都有路由器,节点间通过短距离的本地片上链路连接,通信流在链路上时分复用。
特性 | 总线(Bus) | 交叉开关(Crossbar Switch) | 网络-on-Chip(NoC) |
---|---|---|---|
带宽 | 低 | 高 | 高 |
扩展性 | 差 | 差(随规模增加成本和复杂度增加) | 设计灵活,易于扩展 |
设计复杂性 | 低 | 高,需要复杂的控制逻辑来管理多条并发连接 | 高,需要设计网络拓扑、路由算法和流量管理策略,涉及多方面的技术和优化 |
成本 | 低 | 高,不适合大规模集成电路 | 中等至高,虽然NoC的设计和实现成本较高,但可以通过模块化设计和标准化接口降低复杂性和成本,适合高性能和多核系统。 |
延迟 | 高(因共享和仲裁) | 低(支持并行传输) | 中等至低(取决于网络设计) |
适用场景 | 小型和简单系统 | 中型和高性能系统:需要高速数据传输和并行计算但对成本和面积敏感度较低 | 大规模多核处理器和复杂系统:适用于需要高吞吐量,可扩展性和灵活性的现代处理器架构 |
灵活性 | 结构固定 | 通过控制逻辑改变连接,难以应对动态和复杂而当通信模式 | 高,通过编程配置网络路由和拓扑,适合动态复杂和多种应用场景 |
1.2 片上网路和片外网络的比较
特性 | 片上网络(NoC) | 片外网络(Off-Chip Network) |
---|---|---|
位置 | 集成在单一芯片内部,用于连接芯片上的多个处理器核、内存模块和其他组件。 | 位于芯片外部,用于连接多个独立的芯片或计算单元,如主板上的CPU、GPU、内存、I/O设备等。 |
带宽 | 极高:利用丰富的片上布线资源,可以提供大幅度超出片外网络的带宽,支持高并行数据传输 | 较低:受限于芯片引脚数目和物理接口速度,带宽有限,难以与片上网络相比。 |
延迟 | 极低:由于数据传输发生在同一芯片内部,传输距离短且不需要跨越物理边界,延迟非常小。 | 较高:由于需要通过物理连接器和电缆传输数据,传输距离远,涉及更多的接口和信号转换,延迟增加。 |
功耗 | 需精心设计以避免高功耗;通常在高性能应用中,NoC可以占用芯片功耗的较大部分。 | 外网络由于需要驱动较长的物理链路和多个接口转换,功耗更高 |
使用场景 | 多核处理器、GPU、AI加速器等芯片内部通信密集的应用;适用于大规模集成和高性能计算场景。 | 多芯片系统、分布式计算系统、数据中心服务器等需要跨芯片或跨设备通信的场景;适用于连接不同类型的硬件组件。 |
1.3 网络基础:快速入门
片上网络
可以看作是用于芯片内实现节点之间数据传输的可编程系统。集成了许多组件,包括通道、缓冲区(buffer)、交换单元(switch)(例如路由器就是一种switch)和控制(control)。
片上网络的设计分解为各种构建模块:
1.拓扑
确定了网络中节点和通道之间的物理布局和连接。
2.路由
对于给定的拓扑,路由算法确定消息从源节点到达其目的节点所通过的网络路径。路由算法平衡流量的能力直接影响了片上网络的吞吐量和性能。
3.流控制
流控制是指在消息通过网络时如何为消息分配资源。流控制机制负责为等待的数据包分配(和解除分配)缓冲区和通道带宽。与基于以太网技术的片外网络相比,大多数片上网络设计被认为是无损设计(lossless:不能丢包)。
4.路由器微体系结构
常见的路由器微体系结构由以下组件组成:输入缓冲区(input buffer)、路由器状态(router state)、路由逻辑(routing logic)、分配器(allocator)和交叉开关(crossbar)。路由器功能通常设计成流水线结构,以提高吞吐量。片上网络中经过路由器产生的延迟是通信延迟的主要.分。因此,大量的研究工作通过减少路由器流水线级数来降低网络延迟。5.链路结构
大多数片上网络原型使用传统的全摆幅逻辑(电源电压为1,接地0V为0)和带有中继器(repeater:相当于放大器,减少信号失真和衰减)的连线。
对于较长的连线,降低延迟的有效方法是插入等间隔的中继器(反相器或缓冲区),使延迟能够与中继器的数量(而不是长度的二次方)成线性关系。为什么是长度的二次方?以及插入中继器为什么可以降低传播时延?
答:在电路中,RC延迟是由电阻和电容的乘积引起的信号传播延迟。这种延迟是与R(电阻)与C(电容)的乘积也就是当前连线的长度平方成正比的。插入中继器将信号在长导线中的传输切断并“重置”,使每段导线的延迟单独计算而不相互累积,从而降低了总的RC延迟。总体上,中继器通过将长连线的平方延迟转变为多段短连线的线性延迟,这显著减少了信号的传播时间。
片上网络性能和成本指标
性能:
零负载延迟:零负载延迟提供了平均消息延迟的下限。可以通过平均传输距离(以网络跳数给出)乘以每一跳所需要的延迟,来计算零负载延迟的具体数值。
饱和吞吐量 :在所有数据包经历非常高的延迟之前(未饱和时),网络可以接受的最大流量
成本:
面积与功耗