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