《片上网络》原书英文名为 On-Chip Networks,和《处理器微架构实现》一样隶属于Synthesis Lectures on Computer Architecture系列,简单介绍了片上网络设计的一些关键概念。
按照维基百科的描述,片上网络(NoC)是一种基于传统计算机网络概念的通信系统电路,最常见于SoC的各个模块之间,NoC技术将计算机网络的理论和方法应用于片上通信,提高了SoC的可扩展性和复杂SoC的能效。
多核时代
Intel Pentium 4的失败已经证明了越来越大的单核架构无法适应日益增长的性能和功耗要求,多核芯片随之出现,我们注意到现在有些面向高性能计算的处理器上已经有几十个甚至几百个核。
随着内核数量增加,内核间可扩展、低延迟、高带宽的通信结构也非常重要。总线(Bus)是共享的物理通道,延迟低但带宽也低。Crossbar(交叉开关矩阵)延迟低且带宽高,但面积大且功耗高。片上网络兼顾了两者的优点,提供了可扩展性和高带宽。在多处理器片上系统(MPSoC)中,利用NoC可以帮助实现设计隔离,通过标准接口实现各个IP的即插即用的通信。
基础概念
NoC作为更广泛的互联网络概念的一个子集,可以看成是帮助处理器节点之间数据传输的一个可编程系统,包括各种通道、缓冲区、开关和控制器。NoC可以以低面积和低功耗的开销提供可扩展的网络,且开销和节点的数量有亚线性关系。NoC在布线方面也非常高效,可以复用同一线路传输不同的信号,提升带宽。NoC的拓扑结构通常比较规则,可以使用重复性结构进行构建和优化,减轻验证的负担。
片上网络的设计可以分解为以下一些组件:
拓扑结构:网络中节点和通道之间的物理布局和连接。
路由:对一个给定的拓扑结构,路由算法决定了一个信号通过网络到达目的地的路径,直接影响了网络的吞吐量和性能。
流量控制:信号通过网络时如何分配资源,如缓冲和通道带宽。
路由器微架构:一个通用的路由器微架构由输入缓冲、路由器状态、路由逻辑、分配器和一个Crossbar(或开关)组成,通常包括一个流水线以提高吞吐量,通过片上网络中每个路由器的延迟是通信延迟的主要因素。
链接结构:节点之间如何被连接的结构。
我们也需要综合考虑网络的性能和成本。性能通常由网络延迟和带宽来衡量,成本主要包括面积和功耗。