在芯片设计中,SoC(System on Chip)和NoC(Network on Chip)是两个不同的架构,它们在内部通信方式、设计理念方面存在着很大的差异。 SoC以紧凑的结构和低功耗著称,适用于小型和低功耗的应用,而NoC则采用分布式通信的方式,能够为大规模的系统和高带宽应用提供高效的通信方式。 随着互联网、物联网等领域的不断发展,NoC架构的芯片技术也将得到更广泛的应用。 本文将探讨SoC和NoC架构的差异以及各自的优势与挑战。
1互连的演变
共享总线: 共享总线(如ARM的AMBA总线和IBM的CoreConnect总线)是SoC中常用的通信机制。 它们支持使用标准接口并允许 IP 重用的模块化设计方法,但随着系统带宽需求的扩大,共享总线结构成为性能瓶颈。
分层总线: 分层总线涉及使用多个总线或总线段来减轻主总线上的负载。 这种层次结构允许同一总线段上的模块之间进行本地通信,而不会导致总线其余部分拥塞。 这种方法的缺点是降低了灵活性和可扩展性,并且设计过程很复杂。 连接到总线上的内核越多,实现时间收敛和服务质量的难度就越大。
总线矩阵: full crossbar系统是片上总线通信的替代方案。 不过,随着参与系统数量的增加,线路的复杂性可能会超过逻辑部分。 当进行系统升级时,接口设计会受到影响,所有连接模块都会受到影响。 尽管受益于亚微米技术,计算和存储使用更小的逻辑单元和内存,但通信的能量并没有按比例减少。 相反,串扰效应、电迁移和互连延迟对时序收敛会产生负面影响。
2000 年代初期,一些技术人员提出使用预定义平台来实现芯片中多个内核之间的通信,这种集成交换网络能够满足未来系统的可重用性、可扩展带宽和低功耗等关键需求,称为 片上网络(Network-on-Chip,简称NoC) 。
2什么是NoC(Network-on-Chip)?
NoC是一种新型的芯片内通信结构,它采用类似计算机网络的设计思想,将片上系统内部的各个处理器、存储器、I/O等单元连接起来,形成一个可重构的、高效的、灵活的通信网络。
NoC 与Soc
SoC(System on Chip)是一种在单个芯片上集成多个不同功能的电子系统的设计方法。 在SoC中,不同的组件(如处理器核心、内存控制器、图形处理器等)被集成在同一个芯片上,以便于更高效、更紧凑的设计和制造。
根据应用的不同,SoC 设计通常包含存储设备、RAM/ROM 内存块、中央处理器 (CPU)、输入/输出端口和外围接口,例如定时器、内部集成电路、通用异步接收/发送器(UART)、图形处理单元(GPU)、控制器区域网络(CAN)、串行外设接口(SPI)等。 此外,根据需要,还可以包括浮点单元或模拟/数字信号处理系统。
| 图:SoC整体架构
目前SoC设计相对比较成熟。 大部分芯片公司芯片制造都采用SoC架构。 然而,随着商业应用开始不断追求指令运行并存性和预测性,芯片中集成的核数目将不断增多,基于总线架构的SoC将逐渐难以不断增长的计算需求。 其主要表现为:
可扩展性差。
SoC系统设计是从系统需求分析开始,确定硬件系统中的模块。 为了使系统能够正确工作,SoC中各物理模块在芯片上的位置是相对固定的。 一旦在物理设计完毕后,要进行修改,实际上就有可能是一次重新设计的过程。 另一方面,基于总线架构的SoC,由于总线架构固有的仲裁通信机制,即同一时刻只能有一对处理器核心进行通信,限制了可以在其上扩展的处理器核心的数量。
平均通信效率低。
SoC中采用基于独占机制的总线架构,其各个功能模块只有在获得总线控制权后才能和系统中其他模块进行通信。 从整体来看,一个模块取得总线仲裁权进行通信时,系统中的其他模块必须等待,直到总线空闲。
单一时钟同步问题。
总线结构要求全局同步,然而随着工艺特征尺寸越来越小,工作频率迅速上升,达到10GHz以后,连线延时造成的影响将严重到无法设计全局时钟树的成都,而且由于时钟网络庞大,其功耗将占据芯片总功耗的大部分。
NoC是一种基于网络结构的芯片内通信方式,它使用专门设计的网络拓扑来实现不同组件之间的通信。 与传统的总线结构相比,NoC能够提供更高的带宽、更低的延迟和更好的可扩展性。
| 图:从总线结构到网络拓扑
NoC具有以下几个基本优势:
可扩展性: NoC的拓扑结构和通信机制可根据需要灵活设计和配置,可以适应不同的处理器核心数量和布局,同时支持快速的系统扩展。
高性能: NoC具有高带宽和低延迟的特点,可以支持高效的多处理器并行计算和数据交换。
低功耗: 由于NoC采用点对点的通信机制,相比于总线结构具有更少的冗余传输,因此能够降低功耗。
可靠性: NoC具有高度的可靠性和容错能力,由于采用冗余链路和路由算法,能够快速检测和恢复故障,从而保证系统的稳定性和可靠性。
3NoC架构
NoC 架构主要由三个模块组成。
第一个也是最重要的,是物理连接节点并实现通信的链路。
第二个是路由器,实现通信协议。
最后一个是网络适配器 (NA) 或网络接口 (NI),在 IP 核和网络之间建立逻辑连接。
| 图:网状拓扑中的典型 NoC 架构
链路: 链路是路由器之间传输数据的物理通道,可以是电气信号线、光纤、无线信号等。 链路的带宽和延迟是影响NoC性能的重要因素,因此链路的设计需要充分考虑数据传输的速度和可靠性。
路由器: 路由器是NoC的基本组成部分,用于连接芯片内部的各个处理器、存储器、I/O等单元。 路由器的作用是负责接收来自不同节点的数据,然后根据预先定义的路由算法,将数据转发到目标节点。 路由器通常具有多个输入端口和输出端口,可以同时处理多条数据流。 路由器还包含一个逻辑块,实现流控制策略(路由、仲裁器等),并定义通过NoC移动数据的总体策略。
| 图:路由器的通用架构
网络接口/适配器: 这部分负责在IP核和网络之间建立逻辑连接,因为每个 IP 都可能具有与网络相关的不同接口协议。 这部分很重要,它实现了计算和通信之间的分离,允许相互独立地重用核心和通信基础设施。
NoC还支持多种通信协议,包括高速缓存一致性协议、DMA协议等,让它们可以更好地支持多核处理器系统和分布式计算应用。
4NoC的拓扑结构
NoC的拓扑结构是指路由器之间的连接方式,常见的拓扑结构包括环形,星形,Mesh,树形,胖树形,蝴蝶形和环面等。
环形: 所有节点都以环状方式连接,它的优点包括:(1)电缆故障容易定位,故障排除更容易。 (2)安装比较容易。 局限性包括:(1)网络扩容可能导致网络中断。 (2)即使是电缆的一个断裂也会破坏整个网络。
星形: 星形拓扑直径小,平均跳跃距离小,同时操作简单,每个节点都是隔离的,不受故障节点的影响。 不过中心节点是瓶颈,中心节点故障会导致整个网络故障。
Mesh: Mesh拓扑是一种基于网格形式的拓扑结构,其中每个节点都与周围的节点相连。 在Mesh结构中,每个节点只需要了解相邻节点的地址,因此它的路由算法比较简单。 Mesh结构的优点是可以快速地进行点到点通信,但是它的链路数目较多,容易出现拥塞。
Tree(树形): 树形拓扑由顶部(根)节点和底部(叶)节点组成,此拓扑中的节点可以访问更广泛的网络资源,并得到多家供应商的支持。 但是,它的瓶颈是根节点,根节点的故障会导致整个网络的故障。 此外,随着节点的增加,网络配置会变得更加复杂。
Fat-tree(胖树): Fat-tree拓扑是一种基于树形的拓扑结构,其中每个节点都具有多个输入端口和输出端口。 Fat-tree结构的优点是具有较好的可扩展性和高带宽,但是它的路由算法比较复杂,并且需要更多的硬件资源来实现。
蝴蝶形: 基本的蝴蝶架构从源节点到目的节点只有一条路径,缺乏路径多样性,导致链路容错性低,带宽低。 此外,这种拓扑结构通常需要很长的电线,复杂的电线布局会导致更多的能源消耗。
Torus(环面): Torus拓扑结构是一种基于环形的拓扑结构,其中每个节点都与周围的节点相连,并形成一个环形结构。 在Torus结构中,每个节点可以看作是环上的一个点,可以通过不同的路径快速地到达目标节点。 Torus结构的优点是具有良好的扩展性和可靠性,但是它的路由算法比Mesh结构要复杂一些。
此外还有立方体架构,它的主要缺点是由于度的限制,其网络规模会受到限制。 为了解决这个问题,已经提出了各种变体,例如折叠超立方体、双立方体、交叉立方体、立方体连接循环、层次立方体和元立方体等等。
不同的拓扑结构具有不同的优缺点,具体应用时需要根据系统的需求来选择适合的拓扑。 例如,在需要高带宽和低延迟的场景中,可以选择环面结构; 在需要高可扩展性和高带宽的场景中,可以选择胖树结构。 同时,NoC的拓扑结构可以根据系统需求进行优化,还可以进行混合结构的设计,充分利用不同拓扑结构的优点。
5NoC挑战
NoC 提供了一个可扩展的模块化平台,可提供高效的片上通信,以应对 SoC 集成的趋势,但是仍需要关注相关挑战以进一步提高系统性能。
链接
为数据传输选择并行或串行链路一直是 NoC 中的主要问题之一。 一方面,串行链路可以大大节省面积、降低噪声和减少干扰。 但是,数据传输需要串行器和解串行器电路。 另一方面,并行链路有助于降低功耗,但由于其基于缓冲区的架构,它会占用更多面积。
路由器架构
由于底层架构必须体积小才能消耗更少的功率,路由协议设计呈现了成本和性能之间的权衡。 例如,复杂的路由协议会使路由器设计变得复杂。 这样的话,会消耗更多的面积和功率。 简单的路由协议将是具有成本效益的解决方案,但其在流量路由方面的性能会相对较低。
面积/空间优化
在 NoC 架构中,通信通过连接的模块通过路由器网络以长链路的方式进行。 不同拓扑的链路大小、数据包大小、缓冲区大小、流量/拥塞控制和交换协议等各种方案不仅需要巨大的 NoC 设计空间,而且使开放基准测试具有挑战性。 因此,为了提高系统性能,链路优化势在必行。 虽然这个问题可以通过中继器来解决,但会消耗更多的芯片面积。 同样,为了促进NoC技术的广泛应用,需要有效的空间评估和实施设计工具,这些工具可以与当前的标准工具无缝集成。
延迟
在 NoC 中,延迟增加是由于 NI 数据打包/解包的额外延迟造成的。 它还可以归因于容错协议开销和流量/拥塞控制延迟。 此外,由于竞争和缓冲,路由延迟也会影响网络性能。 因此,为了提高网络性能(即满足严格的延迟限制),需要原生 NoC 支持、低直径拓扑和高级流量控制方法。
功耗泄漏
根据应用的不同,NoC 中的链路利用率可能会有所不同,在某些情况下会非常低。 为了满足最坏情况的要求,NoC 旨在保持冗余链路并在低链路利用率下运行。 然而,即使是理想链路,由于相关的复杂路由逻辑块和 NI,NoC 也会消耗相对较多的功率。 因此,为了进一步提高其在减少泄漏功耗方面的性能,需要创新的架构和电路技术。
6小 结
NoC技术作为新一代芯片设计的趋势,正逐渐得到广泛的应用。 通过采用高效的内部通信架构和灵活的互联方式,NoC可以实现高性能、低功耗、可扩展性和可靠性等优势,为未来的人工智能、物联网、自动驾驶等新兴领域的发展提供了重要的支撑。 尽管NoC技术还面临着一些挑战和困难,但随着技术的不断发展和应用的推广,NoC将会成为未来芯片设计的重要方向和趋势。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !