关键词: 重放驱动验证、CPU-GPU 架构、ODIN 芯粒、片上网络、流片前验证
CPU 与 GPU 技术的融合是支撑现代人工智能和图形学工作负载的核心技术,该融合架构兼具面向控制的处理能力与大规模并行计算能力。
随着芯片设计向芯粒(Chiplet)架构演进,紧耦合 CPU-GPU 子系统的流片前验证面临诸多严峻挑战:
* 验证框架搭建复杂度高
* 设计规模庞大
* 系统并发度高
* 执行行为具有非确定性
* 芯粒间的协议交互错综复杂
上述问题往往导致芯片集成周期大幅延长。
本文提出了一种重放驱动的验证方法学,该方法学诞生于 ODIN 集成芯粒架构的基础片上系统构建过程中,此基础片上系统集成了 CPU 子系统、多颗 Xe 系列 GPU 核心以及可配置的片上网络。
通过在单一设计数据库的支撑下,在仿真和原型验证环节实现确定性的波形捕获与重放,能够在系统级对复杂的 GPU 工作负载和协议序列进行可靠复现。
该方法显著加快了问题调试速度、提升了芯片集成的可信度,并且实现了在一个季度内完成端到端的系统启动与工作负载执行,验证了重放驱动验证作为芯粒架构系统可扩展方法学的有效性。
本文目录
- 一、引言
- 二、ODIN 片上系统概述与芯粒设计背景
- 2.1 CPU 子系统
- 2.2 GPU 架构
- 三、验证挑战
- 3.1 协议复杂性与建模开销
- 3.2 仿真-原型验证迁移一致性挑战
- 3.3 故障根因分析与验证效率难题
- 四、重放引擎架构
- 4.1 重放引擎组件
- 4.2 重放捕获与只读存储器初始化流程
- 五、仿真与原型验证流程
- 5.1 方法学:重放驱动的系统级验证
- 5.2 仿真流程
- 5.3 原型验证流程
- 5.4 原型验证硬件平台(EP1)
- 六、实验结果与核心经验总结
- 6.1 核心经验总结
- 结论
- 参考文献

一、引言
CPU-GPU 的融合已成为面向人工智能、媒体处理和高性能计算的片上系统设计的基础要求。CPU 擅长处理控制类和对延迟敏感的任务,而 GPU 则通过大规模并行性实现高吞吐率。
二者的集成带来了诸多验证挑战,包括对执行基础设施的严苛要求、多层级的存储层次结构、复杂的接口协议、庞大的地址映射,以及系统的非确定性执行行为。
此外,传统的定向测试无法有效发现那些仅在真实工作负载下才会显现的集成级问题。重放驱动的验证方法则弥补了仿真可视性与原型验证性能之间的鸿沟。
二、ODIN 片上系统概述与芯粒设计背景
现代高性能片上系统设计正越来越多地采用芯粒集成架构,以此提升设计的可扩展性、模块化程度和设计复用率。在该架构中,复杂的计算和存储子系统被设计为半独立的芯粒,并通过定义清晰的互连架构和协议边界实现集成。
本研究基于 ODIN 集成芯粒展开,该芯粒将 CPU、GPU、存储控制器和系统互连模块整合为一个可组合的独立单元。ODIN 集成芯粒融合了至强 CPU 子系统、GPU 计算复合体以及片上网络架构,同时配备了高带宽存储接口和标准存储接口。
图 1:ODIN 芯粒整体架构
如图 1 所示,CPU 和 GPU 子系统均与片上网络架构相连,该片上网络作为相干流量和非相干流量的核心通信骨干网。该片上网络还与外部存储控制器、PCIe 以及其他片上系统 IP 核相连,在实现系统级集成的同时,保持芯粒边界处的模块化特性。
该架构的一个核心设计点是将计算芯粒与存储技术解耦。
高带宽内存通过芯粒内部专用的 HBM 控制器实现访问,而传统的 DDR 内存则通过与片上网络相连的 DDR 控制器进行访问。这种解耦设计使芯粒能够支持异构存储系统,同时实现了在不同平台配置中的灵活部署。通过采用芯粒架构,ODIN 设计支持 CPU 和 GPU 子系统的独立开发与验证,同时依托片上网络架构提供可扩展的互连能力、数据排序能力和协议转换能力。尽管这种模块化设计对芯片集成和复用大有裨益,但也带来了新的验证挑战——尤其是在芯粒间的接口处,这也正是本文后续所阐述的重放驱动验证方法学的研发动因。
图 2:片上系统顶层集成架构(包含 CPU、GPU 子系统、片上网络及系统存储)。GPU 的存储和控制流量通过片上网络架构路由至系统 DDR 存储器。
图 2 所示的片上系统设计并非 ODIN 集成芯粒的最终形态,而是该架构的基础构建模块。在该配置中,各个计算和存储子系统被组合并验证,从而能够以可扩展的方式集成到更庞大的 ODIN 芯粒框架中。这种设计方法支持 CPU、GPU 和互连组件的增量式开发与验证,同时保持与最终 ODIN 系统架构的一致性。
2.1 CPU 子系统
CPU 子系统通过相干片内接口链路集成到片上网络中,其配套逻辑包括:
* 用于信号量和中断处理的控制与管理模块;
* 实现存储器映射输入输出解码的系统控制器;
* 以及基于边带信号和工业标准 Q 通道协议流程的电源管理模块。
如图 3 所示,该子系统通过相干接口与片上网络相连。
图 3:CPU 子系统架构(重点展示相干 IDI 接口的互连特性)。
2.2 GPU 架构
从设计理念来看,GPU 是一种基于“存储器输入-存储器输出”的处理器,其工作负载主要以存储器事务流的形式呈现,而非紧耦合的控制流。这种执行模型赋予了 GPU 高吞吐率和高并行性的特性,但也对存储子系统的正确性、数据排序能力和性能表现提出了极高要求。
本研究中所使用的 GPU IP 核是一款可综合的寄存器传输级(RTL)设计,由多颗 Xe 系列核心组成,每颗 Xe 核心都包含多个执行单元(EUs)。这些执行单元可执行单指令多数据(SIMD)算术运算、SIMD 加载/存储指令以及脉动运算,能够高效处理高度并行的工作负载。GPU 的工作任务以线程波的形式下发,执行过程在各 Xe 核心和执行单元间分布式开展,以实现硬件利用率的最大化。
GPU 的执行行为本质上是存储驱动型的,其会频繁访问系统存储以完成取指、数据读取和计算结果回写操作。因此,GPU 的性能高度依赖于周边的片上系统基础设施,包括片上网络、存储控制器和缓存层次结构,这些组件是 GPU 维持高吞吐率和执行正确性的关键。存储器排序、相干性、背压和响应时序等交互行为,成为了系统级验证的核心验证点。
GPU 执行与系统存储行为之间的强耦合特性,使得 GPU 验证对片上网络和存储接口处的集成问题尤为敏感。因此,对存储流量进行精准建模、对接口行为进行确定性复现,是实现高效流片前验证的必要条件。图 4 展示了 GPU 架构及其集成环境的整体概况。 
图 4:GPU 架构(包含 Xe 核心、执行单元(EUs)及存储层次结构)。
三、验证挑战
在 CPU-GPU-片上网络的集成过程中,研究人员遇到了诸多挑战。
3.1 协议复杂性与建模开销
除了系统功能的复杂性外,GPU 的执行流程还依赖于复杂的启动、电源管理、时序和时钟协议,其中许多协议采用了专有接口。
必须严格遵循这些协议,才能成功完成 GPU 的启动调试和工作负载执行。从全片上系统的视角来看,对这些精细协议序列进行建模和分析会带来巨大的开销和复杂度。
3.2 仿真-原型验证迁移一致性挑战
在传统的总线功能模型验证流程中,从仿真向原型验证的迁移往往需要对模型编译、配置和执行基础设施进行大量修改。
这些差异通常会导致研发人员需要维护独立的仿真和原型验证设计数据库,或是为不同平台开发专属的配套设计文件,这不仅增加了芯片集成的开销,也难以保证各验证环境之间的一致性。
这种碎片化的设计方式会增加调试关联的难度、减缓迭代速度,还会在系统级验证过程中提高仿真与原型验证结果出现偏差的风险。
3.3 故障根因分析与验证效率难题
片上系统级验证的另一大重要挑战,是从全系统故障中对知识产权核级问题进行根因分析。
当片上系统层面出现故障时,要确定根因是源于 IP 实现、集成逻辑还是系统级交互,往往需要投入大量的调试工作。该过程通常需要跨多个抽象层进行回溯分析——从片上系统级行为追溯至具体的 IP 接口和内部状态,这使得调试工作耗时且耗费资源,对于复杂的 CPU-GPU 交互场景而言更是如此。 
图 5:重放引擎架构,在GPU IP外围捕获时序精准的波形,并将其转换为ROM初始化的重放数据,以实现确定性执行。
图 5 重点展示了重放引擎的设计理念,该引擎可在片上系统级对 GPU 的启动流程和协议复杂度进行抽象。此外,为了提升验证覆盖度,GPU 内部针对亚稳态和流水线级联设计采用了随机化建模方法,这也带来了新的挑战。
尽管随机化建模能有效提升验证覆盖度,但会降低系统行为的可复现性,使得确定性调试难以开展。全芯片寄存器传输级仿真对于真实工作负载而言速度过慢,而原型验证又会限制系统内部的可视性。
四、重放引擎架构
为了解决上述挑战,研究人员设计了重放引擎,实现了在仿真和原型验证环节对 GPU 驱动的流量进行确定性捕获和复现。重放引擎在定义清晰的子系统边界处实现接口,无需进行侵入式插装,同时能保证功能保真度。
4.1 重放引擎组件
重放引擎在 GPU 知识产权核的外围捕获时序精准的波形数据,重点关注架构层面可见的接口信号,包括数据信号、控制信号和响应信号。通过保留 GPU IP 独立验证过程中观测到的周期级行为,捕获得到的迹线能够对 GPU 启动和工作负载执行所需的协议交互进行确定性表征。
传统方法依赖总线功能模型接收 GPU 的输出并生成对应的响应,而重放方法在片上系统重放过程中无需启用实时的总线功能模型。捕获的波形数据本身既包含 GPU 发出的请求信号,也包含在接口边界处观测到的对应响应信号。在重放过程中,重放引擎会在与原始观测完全相同的时钟周期中重新生成这些响应信号,无需显式例化总线功能模型的配套设计文件,即可有效模拟响应代理的行为。
这一设计选择解决了多个系统级验证挑战。
- 首先,在传统的总线功能模型验证流程中,从仿真向原型验证的迁移往往需要对模型和编译进行大量修改,且可能需要维护独立的仿真和原型验证数据库,而这些数据库难以保持一致性。通过将所需的激励和响应行为直接嵌入重放工件中,并在各平台间复用该工件,重放方法实现了仿真与原型验证之间统一的验证流程,同时避免了重复开发集成配套文件。
- 其次,片上系统级故障的根因追溯至源 IP 的过程往往耗时良久,而确定性重放通过在定义清晰的 IP 边界处实现一致的故障复现,缩小了从系统行为回溯至具体接口区域的排查范围,提升了调试效率。
- 最后,由于重放工件与动态的总线功能模型基础设施解耦,增量式设计变更(如本地化 IP 修复或集成更新)的验证工作受到的干扰极小,研发人员可实现针对性的更新,而无需重新设计或重新验证大量的测试平台配套文件。
综合来看,重放技术在仿真和原型验证环节保持了协议的正确性和执行的确定性,同时降低了集成开销,加快了根因分析和增量式验证的迭代速度。
4.2 重放捕获与只读存储器初始化流程
重放捕获在 GPU IP 独立验证阶段完成,重放引擎在此过程中记录 GPU IP 外围的波形活动。捕获得到的波形数据是重放的源工件,并不会在运行时直接被调用。下图 6 描绘了用于准备重放数据的捕获、转换和只读存储器初始化流程。

图 6:用于准备重放数据的重放捕获与只读存储器初始化流程。
捕获完成后,通过离线后处理步骤提取相关的接口信号,并将波形活动转换为按周期排序的位表示形式。该转换过程会将激励信号和对应的响应信号编码为紧凑的、适用于重放的格式,便于存储。生成的重放数据能够逐周期还原捕获过程中观测到的精确接口行为。
在片上系统设计的初始化过程中,编码后的重放数据会被用于初始化重放引擎内部基于只读存储器的存储结构。在仿真或原型验证过程中,重放引擎读取预初始化的只读存储器内容来驱动重放执行,无需依赖动态波形文件或外部运行时基础设施。通过将波形捕获、转换、只读存储器初始化与运行时重放执行相分离,该方法实现了跨平台的自包含式重放,同时保持了与原始捕获的 GPU 协议行为的一致性。
五、仿真与原型验证流程
5.1 方法学:重放驱动的系统级验证
5.2 仿真流程
仿真是功能调试与根因分析的核心环境,能够提供CPU、GPU及片上网络(NoC)各接口的精细化波形可视性。重放引擎支持复杂GPU协议行为的确定性执行,使研发人员能够在周期级信号可视性下,分析系统启动、工作负载执行等系统级场景。
此能力对于诊断协议排序、时序依赖以及难以通过定向测试发现的集成问题具有重要价值。

图7:仿真测试流程示意图。
图7展示了仿真流程,以及仿真输出与黄金参考基准(Golden Reference)的对比过程。图8为仿真结果示例。

图8:重放驱动激励的仿真成功结果(输出与黄金参考基准完成对比)。
5.3 原型验证流程
在原型验证环境中,仿真阶段生成的重放工件将被复用,以实现GPU驱动的系统场景的高速执行。重放引擎在IP外围对捕获的GPU协议行为进行确定性重放,使片上系统能够完成系统启动、工作负载执行等复杂流程,而无需依赖完整的软件栈或外部生成的激励信号。 该方法简化了原型验证的搭建流程,同时保证了与仿真环节验证场景的功能等价性。
原型验证是对仿真的有效补充,能够执行在寄存器传输级(RTL)仿真中反复运行不切实际的长时运行工作负载(Long-running workloads)。尽管原型验证的内部信号可视性不如仿真,但重放的确定性使得在原型验证中发现的问题,能够可靠地关联回仿真环节进行精细化的根因分析。 这种结合方式能够在全芯片规模下快速复现集成问题,同时保证功能验证的正确性。

图9:重放工件驱动的原型验证流程(实现高速系统级验证)。
图9展示了验证系统成功启动和存储输出正确的代表性原型验证波形,直观体现了确定性重放如何以显著更高的性能驱动系统级执行。为验证该方法在大规模设计中的可行性,研究人员将完整的CPU-GPU-NoC片上系统映射至原型验证平台,并评估了其资源利用率。
表1总结了不同板卡配置下的预估与实际资源使用情况,结果表明该设计能够适配平台可用资源,并为额外的调试与基础设施逻辑预留了余量。

表1:EP1平台上全芯片原型验证的预估资源利用率。
5.4 原型验证硬件平台(EP1)
本研究中的全芯片原型验证基于EP1原型验证硬件平台开展,该平台具备承载集成化CPU-GPU-NoC片上系统设计所需的资源容量与互连能力。
EP1作为编译后设计镜像的执行目标,能够在真实的硬件约束下验证系统规模的集成效果。

图10:EP1原型验证硬件平台(用于全芯片CPU-GPU-NoC系统验证)。
图10展示了本研究使用的EP1硬件环境,包括EP1模块与目标硬件平台。本研究采用16块板卡的EP1配置,以适配完整的片上系统设计。该配置直观体现了设计如何在原型验证基础设施上实现扩展,以支持全芯片执行,同时保持与前文所述重放驱动验证流程的一致性。
六、实验结果与核心经验总结
借助重放驱动的验证方法,研究团队在一个季度内实现了端到端的系统启动和GPU工作负载执行。
通过复用在IP独立验证阶段捕获的、具有确定性与协议精准性的重放工件,该方法学无需开发专用的片上系统级测试平台或总线功能模型(BFM)配套文件,显著加快了片上系统的集成进度,使研发人员能够在集成周期更早阶段执行首个有实际意义的系统级测试。
6.1 核心经验总结
- 确定性波形捕获是实现仿真与原型验证环境间可靠重放的关键。
- 基于重放的激励机制显著缩短了调试周转时间,能够实现系统级问题的可重复复现。
- 采用基于时钟生成的重放方式,而非对内部时钟逻辑进行全量捕获-重放,有效减小了只读存储器(ROM)的占用空间(Footprint)。
- 捕获与重放逻辑插装的自动化实现,最大限度减少了人为错误,提升了各验证轮次的可重复性。
- 在原型验证环节,基于时钟仿真的时钟设计需要通过新思科技(Synopsys)BC工具的ZEMI3流程进行预处理,这对平台搭建提出了额外要求。
- 基于时钟仿真的时钟模型不支持动态频率变化,因此在重放驱动的原型验证中需要采用固定频率假设。
- 为实现适用于波形重放的确定性行为,需要禁用亚稳态验证中使用的触发器随机化设计。
结论
重放驱动的验证方法为复杂异构片上系统的验证提供了可扩展、确定性的基础框架。对于CPU-GPU紧耦合且系统级协议复杂的异构片上系统,传统验证方法已难以满足需求。
通过围绕单一、可复用的重放工件实现仿真与原型验证的统一,该方法学避免了总线功能模型(BFM)验证流程中常见的、维护独立仿真与原型验证数据库的问题,降低了集成开销,同时保证了各验证平台间的一致性。
此外,确定性重放能够在定义清晰的IP边界处实现可靠的故障复现,提升了调试效率,大幅减少了将片上系统级故障根因追溯至具体IP接口的工作量。
随着芯片系统向芯粒(Chiplet)架构演进,重放驱动的验证方法能够在子系统与芯粒边界处实现可重复、接口级精准的验证,为适配不断提升的系统复杂度构建了切实可行的验证框架。
参考文献
[1] G. S. Kalsi, H. Wang, J. M. Howard, J. B. Fryman, F. Petrini, and D. S. Klowden, “BiFrost: A Composable, Resilient Interconnect Network Architecture for Scalable Artificial Intelligence Systems,” IEEE Micro, vol. 45, no. 5, pp. 67–78, Sept.–Oct. 2025.
[2] H. Jiang, “Intel’s Ponte Vecchio GPU: Architecture, Systems & Software,” in Proc. IEEE Hot Chips 34 Symposium (HCS), Cupertino, CA, USA, Aug. 21–23, 2022.
[3] H. Wong, A. Bracy, E. Schuchman, T. M. Aamodt, J. D. Collins, P. H. Wang, G. Chinya, A. K. Groen, H. Jiang, and H. Wang, “Pangaea: A Tightly-Coupled IA32 Heterogeneous Chip Multiprocessor,” in Proc. 2008 International Conference on Parallel Architectures and Compilation Techniques (PACT), Toronto, ON, Canada, Oct. 2008, pp. 52–61.
[4] P. H. Wang, J. D. Collins, C. T. Weaver, B. Kuttanna, S. Salamian, G. N. Chinya, E. Schuchman, O. Schilling, T. Doil, S. Steibl, and H. Wang, “Intel® Atom™ Processor Core Made FPGA-Synthesizable,” in Proc. ACM/SIGDA International Symposium on Field-Programmable Gate Arrays (FPGA), Monterey, CA, USA, 2009, pp. 209–218.
[5] G. Schelle, J. Collins, E. Schuchman, P. Wang, X. Zou, G. Chinya, R. Plate, T. Mattner, F. Olbrich, P. Hammarlund, R. Singhal, J. Brayton, S. Steibl, and H. Wang, “Intel® Nehalem Processor Core Made FPGA-Synthesizable,” in Proc. ACM/SIGDA International Symposium on Field-Programmable Gate Arrays (FPGA), Monterey, CA, USA, 2010.
[6] W. Kwon, Z. Li, S. Zhuang, Y. Sheng, L. Zheng, C. H. Yu, J. E. Gonzalez, H. Zhang, and I. Stoica, “Efficient Memory Management for Large Language Model Serving with PagedAttention,” in Proc. ACM SIGOPS 29th Symposium on Operating Systems Principles (SOSP), Koblenz, Germany, Oct. 23–26, 2023.
[7] NVIDIA, “Grace Hopper Superchip Architecture In-Depth,” NVIDIA Technical Blog, Sept. 2022.
[8] Synopsys, Inc., ZeBu User Guide, Version V-2024.03, Apr. 2024.
关注“鲸栖”小程序,掌握最新AI资讯
本文来自网络搜集,不代表鲸林向海立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/archives/28206


