数据移动、拥塞与能效正成为决定算力可用性的关键因素。随着需要被不同处理单元处理、存储和访问的数据量持续增长,数据的移动、管理与追踪正变得愈发复杂。

复杂SoC与多芯片实现,尤其是涉及AI的场景,可能包含大量片上网络(NoC)以管理和调度数据移动。这些网络可支持相干或非相干缓存与I/O,也可仅负责系统中某一物理部分的通信。但所有这些都需要在设计流程中比以往更早地规划,并在整个系统生命周期内持续监控。
"从我们与AI SoC团队的交流来看,训练和推理不仅增加了数据量,更让数据移动本身成为系统的主要瓶颈,"Arteris产品管理与市场营销副总裁Andy Nightingale表示,"计算能力的扩展速度远超摩尔定律,但数据移动、拥塞和能效越来越决定着这些算力是否真正可用。"
一致性与流量类型的权衡
数据流量与一致性是为特定应用场景选择最优NoC的重要出发点。"芯片架构师应该思考:谁需要一致性以及为何需要、哪些智能体产生突发流量而哪些产生稳定流量、延迟边界在哪里真正重要,以及在衍生产品或小芯片间预期有多少复用或扩展,"Nightingale说,"CPU集群通常需要相干NoC,因为其编程模型依赖于此。NPU通常是非相干的,因为显式数据移动和本地存储能提供更好的功耗和吞吐量表现。"
ChipAgents首席执行官William Wang也认同一致性是关键起点:"对于一致性至关重要的共享内存CPU集群,选择相干NoC;对于吞吐量比严格一致性更重要的NPU和加速器,选择非相干NoC。"
NoC存在多种形态:全缓存相干、末级缓存相干、I/O相干(也称单向相干)以及非相干。相干网络通常比非相干网络更昂贵、更耗电。
"一种非常普遍的做法是,将拥有缓存的高性能CPU连接到相干网络,同时尽量缩小相干范围,"Baya Systems首席解决方案架构师Kent Orthner表示,"你只希望在内存和CPU之间,也许还包括AI加速器之间保持相干。系统其余部分通常使用更简单的只读写协议。这种简单协议不追踪谁最后访问了数据或谁负责数据,只是访问内存或PCIe控制器等端点,读取所需数据。人们谈论SoC上多个NoC时,相干域与非相干域的划分是最常见的分类方式。"
从自研到商用NoC IP的演变
过去,大型芯片制造商通常自研相对简单的NoC。但随着数据移动复杂性的增长,业界已逐步转向商用NoC IP。"每家都有自己的方案来解决'如何根据输入需求提供可配置模块'这一问题,"Synopsys战略项目与系统解决方案执行总监Frank Schirrmeister说,"你说:'我有30个源,有些是相干的、非相干的、缓存相干的,有些只是I/O相干的。'然后你进入配置环境,按下按钮,系统通过构建模块实例化缓存、TLB等组件来构建NoC。在数十亿门的芯片上,如何确定各组件的摆放位置、如何传输数据,这一挑战相当显著。"
缓存一致性比I/O一致性更具挑战性。"I/O核心一致性的场景范围更广,"Schirrmeister表示,"通常是外设(如GPU或网络接口)读取CPU缓存数据,但反过来不行。而缓存一致性则要求多个CPU核心对所有核心上的内存保持一致视图,这复杂得多,因为存在更多可能的状态。"
缓存用于在处理器附近临时存储数据,以避免每次都访问需要约100纳秒的外部内存。"在我们关注的大型系统中,可能有非常多的处理器共享内存。如果某个处理器不知道另一个处理器已在本地缓存中保存了某份数据的副本,就可能读取到错误的值,"Orthner解释道,"缓存一致性的核心就是确保每个处理器看到的信息视图完全一致。"
小芯片、多芯片与3D集成
多芯片组合需要额外管理相干与非相干NoC。"我们的物理AI小芯片平台通常至少由三个小芯片组成,"Cadence小芯片与IP解决方案产品营销集团总监Mick Posner表示,"中间是系统小芯片,一侧是CPU小芯片,另一侧是AI加速器。中心的系统小芯片必须同时具备相干接口和非相干接口:与CPU之间需要缓存一致性,与AI加速器之间则只需I/O一致性,因为加速器更像是一个扩展单元,通常拥有自己的内存,不需要缓存一致性。"
实现这一目标需要多个NoC协同工作。"为相干性设计的NoC通常比非相干NoC有更多开销,"Posner说,"两者之间的链路默认是非相干的,因为其中一侧没有相干性要求。"
一致性、可编程性与集成的平衡
在多芯片组合中协调数据移动,对可编程性和系统发现机制提出了更高要求。NoC可以帮助小芯片在封装中相互识别。"在小芯片方案中,你可能将完全相同的芯片单独封装,也可能与另外四个小芯片组合封装,甚至垂直叠加,"Orthner说,"因此,上电时小芯片如何发现彼此、了解自身在封装中的位置,成为一个复杂问题,需要更高程度的可编程性。"
启动时,系统需要一个管理智能体来协调路由配置,使不同小芯片能识别相同的目标地址,但通过不同路径到达。
叠片配置带来更多网络挑战。"如何管理来自不同供应商的芯片,并评估其系统集成质量?"Keysight EDA高速数字设计领域负责人Hee Soo Lee表示,"叠片配置中,热学和机械问题将比电气问题更为突出。这些系统都受市场驱动,尤其是数据中心AI工作负载对数据需求的持续增长。"
面向PPA的优化
无论相干与否,多NoC均可从芯片设计的自顶向下方法来考量。"假设顶层有两个主NoC,用于连接所有子系统,其下是本地化NoC,"Posner说,"你需要针对所连接的网络定制NoC,按照功耗、性能和面积(PPA)进行配置,并理解这一层次结构,因为一切都需要被统一管理。"
AI驱动的EDA技术正在帮助处理PPA权衡。"工具正在向完全自主的多智能体工作流操作系统演进,能够跨越从规格到硅片的全流程进行推理,并提供实时设计质量反馈、PPA优化和跨域协同设计,"ChipAgents的Wang指出。
在大型SoC中,设计人员通常会创建多套配置。"配置网络通常与相干及主数据路径分离,因为它只需低吞吐量——用于读取寄存器、检查系统性能、管理电源控制等,"Orthner说,"你希望在不影响主数据流量的前提下访问它。"
地理或拓扑差异也推动了独立NoC的需求。"芯片西侧可能是一组计算核,东侧是另一组,如果主数据路径上两者无需通信,就可以分别实现为东西两个独立网络,再通过第三个网络汇聚,"Orthner举例说。
内存需求正在推动新的网络设计决策。"即使地理位置相同,人们也会将内存空间一分为二,分别称为'偶数'网络和'奇数'网络,以便在系统中实现两倍的数据流量,"Orthner解释道,"当你设计芯片时,物理设计工程师需要在指定区域内放置所有NoC组件并满足时序要求。如果不同项目中使用了不同工具,就会产生层次结构中相互叠加的逻辑,使物理设计师的工作极为困难。"
统一NoC软件
为应对上述挑战,设计人员越来越倾向于在单一项目中无缝集成多个NoC的统一解决方案。统一NoC软件并非将所有数据汇聚于单一NoC,而是在一个统一项目中管理多个NoC。"在整体网络设计框架内,我们保持各小型网络相互独立,"Orthner解释道,"相干与非相干流量可以逻辑隔离,但共享物理连线——这在优化面积和成本时是非常强大的能力。你可以用一次工具运行涵盖所有并行运行的网络,并在系统设计师的控制下让它们共享资源。"
数据中心层次结构
从数据中心视角审视NoC,需要回答几个基本问题:机架之间如何通信?机架内的卡如何通信?卡上芯片如何交互?小芯片之间如何通信?
"整个数据中心现在就是你的计算机,"Baya Systems首席解决方案架构师Saurabh Gayen表示,"你需要理解机架组织方式、数据如何在横向扩展域中流动,再逐层向下到纵向扩展域、封装级、小芯片级。必须建立自顶向下的视图,这定义了层次化设计和分组方式。"
"你需要更密集、更紧凑、更扁平、更高性能的紧耦合层次化架构,"Gayen说,"不能依赖大量松散连接的网络。过去的数据中心可以这样做,但现在作为行业整体,我们已经下定决心,全力打造更扁平、更高性能、更密集的层次结构。"
"性能是自顶向下的,但工程实现是自底向上的,必须在两者之间保持层次化平衡,"Gayen总结道。
结语
过去,NoC在芯片设计中常被视为后期补充,往往在物理布局接近完成时才被处理。如今,设计人员必须在开发早期阶段就将NoC纳入规划,确保通信基础设施与处理单元同步优化,从而提升性能、能效和可扩展性。
"正在发生变化的是优先级的重新定位,"Arteris的Nightingale表示,"数据移动现在与计算和内存并列,成为一流的设计维度,尤其是随着系统从单片芯片扩展到小芯片和分布式架构。领先团队正在更早地投入具备可观测性、服务质量保障和长期可扩展性的架构,而不是将互连视为后期优化项。"
为跟上系统架构的演进步伐,业界必须从设计最早阶段就优先开发稳健的标准化安全协议,并投资于可扩展的互连解决方案。随着小芯片和多芯片集成日益普及,跨供应链的协作对于确保互信、互操作性和应对新兴威胁的韧性至关重要。持续的研究、跨厂商合作以及自适应网络拓扑的采用,将是满足下一代系统对安全、高性能数据移动需求的关键。
Q&A
Q1:相干NoC和非相干NoC有什么区别,分别适用于什么场景?
A:相干NoC能确保多个处理器对内存数据保持一致视图,适用于CPU集群等依赖共享内存编程模型的场景,但开销更大、功耗更高。非相干NoC不追踪数据归属,只负责简单读写,适用于NPU、AI加速器等对吞吐量要求高、不需要严格一致性的场景。I/O相干(单向相干)介于两者之间,外设可读取CPU缓存数据,但反向不行,常用于GPU或网络接口等外设连接。
Q2:小芯片(chiplet)架构下,NoC面临哪些新挑战?
A:小芯片架构带来了多方面新挑战。首先是芯片发现问题:上电时各小芯片需要识别彼此的位置并动态配置路由。其次是一致性管理:不同小芯片之间的链路需要根据连接对象选择相干或非相干接口。此外,叠片配置还带来热学和机械问题。这些挑战要求NoC具备更高的可编程性,并在封装层面进行系统级的统一规划和管理。
Q3:什么是统一NoC软件,它能解决什么问题?
A:统一NoC软件是一种在单一项目框架内管理多个NoC的设计方法,而非将所有数据汇聚于单个NoC。它允许设计人员在一次工具运行中涵盖所有并行NoC,让相干与非相干网络保持逻辑隔离的同时共享物理连线,在系统设计师的控制下共享资源。这解决了多NoC使用不同工具导致层次结构混乱、物理设计困难的问题,有助于在优化面积和成本的同时维持设计的清晰层次结构。