4.1 简介
未来的高性能嵌入式 SoC 将基于多核和众核方法,采用由数百个处理和存储元件组成的纳米级技术。这些新范例正在成为当今纳米电子设计问题的关键设计解决方案。支持此类系统的互连结构将更接近于复杂的网络,而不是当前基于总线的解决方案。这样的网络必须提供高吞吐量和低延迟,同时保持低面积和低功耗。
片上网络 (NoC) [1-4] 提供了一种在硅片上实现互连的好方法,并在很大程度上减轻了基于总线的解决方案的局限性。深亚微米处理技术实现了新的特定应用架构,将多个软件可编程内核和专用硬件组件集成到一个芯片上。最近,这种架构已成为当今设计挑战的关键设计解决方案,这些挑战受到各种新兴应用的推动,例如无线通信、宽带/分布式网络、分布式计算和多媒体计算。
NoC 是一种可扩展互连,具有处理当前和未来多核 SoC 日益增加的复杂性的巨大潜力。在这种范例中,内核通过单个芯片上的数据包交换通信网络连接。这种方案类似于计算机连接到 Internet 的方式。包交换网络在网络客户端(例如,PE、存储器和定制逻辑设备)之间路由信息。图 4.1 说明了一个点对点网络和一个片上网络模型。
图 4.1 典型范例:a 电路交换,b 分组交换
分组交换方法支持异步数据传输,并通过在多个交换机之间分配传播延迟并有效地流水线化分组传输来提供极高的带宽。此外,它还提供了其他几个有前途的功能。首先,它传输数据包而不是文字。因此,专用地址线(如在基于总线的系统中使用的地址线)是不必要的,因为给定数据包的目标地址包含在数据包的标头中。其次,如果网络在发送方和接收方之间提供多个传输通道,则传输可以并行进行。因此,与基于总线的系统不同,NoC 提供了理论上无限的可扩展性,促进了 IP 核重用,并具有更高的并行度。在 [5-9] 中开发了一种名为 OASIS NoC (ONoC) 的 NoC 架构。上述网络基于网状拓扑[10] ,并使用类似虫洞的交换、先来先服务 (FCFS) 调度程序和类似于传统 ACK/NACK 流量控制的重传流量控制。
NoC 研究问题包括许多权衡,例如拓扑、路由、交换、调度、流量控制、缓冲区大小、数据包大小和任何优化技术。仅使用高级模拟很难分析这些参数。因此,NoC 原型是在实际应用中评估 NoC 架构性能的重要设计阶段[11]。
本章的其余部分介绍了 2D mesh NoC 架构的架构和设计细节。本章还描述了所谓的短通链路 (SPL) ,通过减少(在某些情况下)经历大流量的节点之间的希望数量来优化网状拓扑。
4.2 片上网络体系结构
正如我们之前所说,NoC 体系结构通常以其拓扑、路由、交换、流量控制和仲裁器技术为特征。选择这些参数时需要进行各种权衡。因此,设计师需要注意并深刻理解所有的设计选择。
4.2.1 拓扑
拓扑定义了路由器和链路互连的方式。拓扑是一个重要的设计选择,因为它定义了通信距离及其一致性。图 4.2 描绘了一些最常用的拓扑结构。拓扑的选择取决于其优点和缺点。通常,规则拓扑(图 4.2a-e)优于不规则拓扑(图 4.2f),因为它们具有可扩展性和可重用模式。否则,不规则或混合拓扑可以更方便地适应应用程序的特定需求。这取决于可能需要某些面积、功率或时序限制的目标应用需要严格满足。在这种情况下,规则拓扑可能不是实现此类特殊应用的正确方法,而定制的不规则拓扑可提供更好的灵活性来满足所需要求。另一方面,不规则拓扑的主要问题之一是分析应用程序和确定满足这些设计要求的最佳拓扑布局所需的设计时间。
网状和基于圆环的拓扑被认为是最常用的片上网络拓扑。它们共同构成了超过 60% 的 2D-NOC 拓扑案例 [12]。Mesh 和 Torus 分别如图 4.2a、b 所示。它们都可以有四个相邻连接;但是,只有 Torus 具有连接网络边缘节点的环绕链路。其他拓扑如蝶形、胖树和环形(分别如图 4.2c-e 所示)的比例大致相等。
图 4.2 典型的 NoC 拓扑结构
与其他片上网络拓扑相比,尤其是网状拓扑可以实现更好的应用可扩展性。网状拓扑中路由功能的实现也更简单,并且可以很好地表征。在片上多处理器系统的片上互连网络中,网状结构被广泛使用和优选。使用网状拓扑的片上多核系统的一个例子是 Intel-Teraflops 系统。80 个同类计算元素通过 2D 网状 8×10 网络拓扑中的 NoC 路由器互连。
路由方法的选择取决于拓扑 [13、14]。路由算法可以在标准拓扑中轻松实现(例如,Mesh、Torus、Star)因为每个路由器向其相邻节点发送相同的路由路径。但是对于定制的拓扑结构,路由一般比较困难,需要设计特定的路由机制。因此,设计时间可能比标准时间长 [15, 16]。图 4.3 说明了一个基于 3 × 3 网格的 NoC 系统的示例。
图 4.3基于网状拓扑的 3 × 3 NoC 示例。R:路由器/交换机,PE:处理单元,NI:网络接口
4.2.2 交换
在NoC 互连中存在两种主要类型的交换方法:(1) 电路交换和(2) 分组(或flit)交换。在第一种方法中,在开始发送实际数据之前,应首先建立和保留给定源和目标对之间的路径。这提供了一些性能保证,因为消息肯定会传输到其目的地,而无需缓冲、重复或重新生成。此外,如果在路径建立过程中检测到问题(例如故障或高度拥塞),源节点可以重新计算另一条更安全的路径以再次保留。但是,每个所需的路径设置消息增加了延迟开销,此外还增加了由不同的控制数据在网络中传输并与网络资源的实际数据竞争引起的额外拥塞。因此,它最适合于足够长的可预测传输来分摊设置延迟。
分组交换更常见,它广泛用于NoC 系统。在数据包交换中,路由器通过在网络中传输数据包/flit 进行通信。给定数据包的传输不应阻塞网络中其他数据包的通信。为了解决这个问题,可以选择一种转发方法(交换策略)来定义网络资源(链路和交换)如何保留以及在传输完成后如何拆除。转发方法对 NoC 性能有很大影响,每种方法都有其优点和缺点。在分组交换中,存储转发(SF)、虫洞(WH)和虚拟直通(VCT)被认为是主要的交换方法。
4.2.2.1 存储转发(SF)
在这种交换方法中,每个消息应该被分成几个包。如图4.4 所示,每个数据包在转发到下一个路由器之前都完全存储在FIFO 缓冲区中。因此,路由器中FIFO缓冲区的大小(深度)设置得与数据包的大小相近,以便能够完整地存储数据包。这代表了这种交换策略的主要缺点,因为它需要大量的缓冲区资源,随着我们增加数据包大小而增加。分配的缓冲槽数量对NoC 系统的面积和功耗有巨大影响。此外,如图 4.4 所示,节点 (0,2)有两个空时隙,因为 Packet-4 的前两个片段(P4F1 和 P4F2)已经被传输。尽管有两个可用时隙,节点 (0,1) 中的 Packet-5 (P5)仍然停滞。这是因为为了转发,节点 (0,2) 中的所有四个槽都应该被释放;因此,只有当 P4 也被转发并且缓冲槽被释放时,P5 才能被转发。存储转发是第一种在许多并行机中使用的交换方法 [17-19]。它也出现在NoC 的第一个原型和设计中 [20-24]。
图 4.4 存储转发交换
4.2.2.2 虫洞 (WH)
虫洞交换 (WH) 是最流行、使用最广泛且非常适合NoC 系统的一种。在 WH 交换方法中,如图 4.5 所示,数据包被分成许多片段。如图 4.5 所示,Packet-1 的四个 flit(P1F1、P1F2、P1F3 和 P1F4)分散在四个不同的路由器中。因此,不需要缓冲区资源来托管整个数据包。虫洞切换的主要优点是可以将缓冲区大小设置得尽可能小,以降低缓冲区成本。这响应了 SF 的面积和功率开销。但是,阻塞是其主要缺点之一。如图 4.5 所示,P1 的最后一个迁移位于节点 (1,0) 的南输入缓冲区的头部。
在同一个输入缓冲区的尾部,Packet-2 (P2) 的第一个 flit 请求将授权转发到北输出端口(指向节点 (2,0))。在这种情况下,第一个 P1F4 和第二个 P2F1 之间存在紧密的依赖关系。换句话说,如果转发P1F4,那么也可以转发P2F1;但是,如果 P1F4 由于下游节点中的拥塞或故障原因而被阻塞,则 P2F1 也会被阻塞。因此,P2 的剩余迁移和相关的其他迁移也将被阻止。这将导致部分或整个系统死锁和显着的性能下降。解决方案之一,为了解决 WH 切换中的这个问题,可以使用Virtual-channels [25]。这将成为;这将是本章稍后将讨论(第 2.1.5 节)。
图 4.5 虫洞切换
虫洞切换方法首先在 [26] 中被引入。[27] 中的工作还介绍了 k 元 n 立方体互连网络中虫洞切换的性能。
4.2.2.3 虚拟直通 (VCT)
图 4.6 演示了虚拟直通 (VCT) 切换。VCT是一种中间转发方式,同时具有SF和WH的特性。如图4.6 所示,使用 VCT 可以一个接一个地转发迁移。因此,来自不同数据包的迁移可以共享相同的输入缓冲区,从而消除由SF 引起的停顿。为了解决WH切换中发现的阻塞问题,VCT要求缓冲区深度应等于数据包大小(数据包中的flit数)。需要此缓冲区大小来存储阻塞的迁移。
图 4.6 虚拟直通切换
当阻塞发生时,flits 被存储在被阻塞的路由器旁边的路由器中。由于存储了整个数据包,因此缓冲区大小大于 WH 交换。然而,转发延迟比 SF 交换小得多。这是因为在Store-and-Forward 数据包交换方法中,数据包在转发到下一个路由器之前已完全存储,并且等待完成数据包存储的延迟非常长。