为什么 SoC 需要 NoC:片上网络和计算的未来
在复杂的异构计算生态系统中,片上网络互连的发展对于片上系统技术的进步至关重要。
计算生态系统已经完全接受了异构计算的概念——其结果是片上系统 (SoC) 的激增。现在几乎可以在市场上的每个高性能计算平台中找到 SoC。
一个不太经常讨论但同样重要的技术是片上网络 (NoC)。随着 SoC 继续向上发展,NoC 的开发也只会继续增加。最近,总部位于英国的 Sondrel 强调了 NoC 的重要性,宣布它使用 Arteris 的 FlexNoC IP 作为 Sondrel SoC 的 NoC 主干。
一个示例 NoC 以蓝色(左)突出显示并位于平面图(右)上。
在本文中,我们将讨论异构计算的挑战、对 NoC 的需求以及 Arteris 的 FlexNoC 的一些细节。
SoC 和异构计算的挑战
SoC 是一种单芯片解决方案,由同一块硅片内的多个不同计算和功能块组成。SoC包含异构计算和硬件加速的概念,其中专门的计算块用于特定的计算密集型工作负载。出于这个原因,通常会看到一个 SoC 由一些更通用的计算模块组成,如 CPU 和 GPU,以及许多加速器模块,如神经处理单元 (NPU) 和数字信号处理器 (DSP)。
虽然这种方案导致更高的性能和功率效率,但它有几个控制和管理问题。在数据密集型应用中,SoC 面临着如何控制、组织和管理它们预期要处理的大量数据的挑战。从布局规划的角度和系统的角度来看,控制进出内存的数据流和不同功能块的数量是一个不小的障碍。
什么是 NoC?
为了解决这些与数据相关的问题,几乎每个 SoC 都依赖于片上网络 (NoC)。
NoC 几乎互连了 SoC 的每个部分,为数据从一个块流向另一个块创建了一条清晰且定义明确的路径。通常,NoC 将由多段电线和路由器组成,这些布线和路由器的布局旨在减少导致 SoC 更大损耗和延迟的寄生效应。这通常采用类似城市的网格结构的形式。
网状拓扑中的 NoC。
NoC 通过使用网络接口 (NI) 模块控制整个 SoC 中的数据流。这些模块通常用于将处理器内核生成的数据包转换为固定长度的流量控制数字。这些数字允许 NoC 内的路由器将数据适当地引导到所需的功能块。
传统上,NoC 功能可以定义为多个层之一,包括应用层、传输层、网络层、数据链路层和物理层。出于这个原因,NoC 路由器将需要硬件和软件实现,以便它可以支持给定层的功能。
Sondrel 使用 FlexNoC
2022 年 6 月 22 日,Sondrel 透露,它使用Arteris 的 FlexNoC IP作为其所有 SoC 解决方案的 NoC 主干。
Arteris 解释说,NoC 互连构成了 SoC 架构。
Sondrel 特别赞扬了 FlexNoC 减少其 NoC 内线数的能力。Arteris 声称通过利用传输层打包和序列化功能来实现这一壮举。该公司这样做是为了更好地了解 NoC 的哪些部分需要更少的布线面积并相应地进行优化。除此之外,Sondrel 还称赞 FlexNoC 通过时钟门控等各种电源管理功能降低功耗的能力。
与 Sondrel 一样,业内许多公司都在竞相生产最好的 NoC IP,以生产面积和功耗更低的 SoC,同时让 SoC 设计更容易、更容易获得。