作者:SmartDV Technologies
基于芯粒(chiplet)的设计改变的不仅是各项功能在芯片上的划分方式,也改变了系统各组成部分之间的通信方式。
通用芯粒互连标准(Universal Chiplet Interconnect Express,UCIe)提供了一种标准化的片芯到片芯(die-to-die)互连,用于连接封装(package)内的各个芯粒。但这些芯粒内部的逻辑单元可能已经在使用诸如AXI、CHI、CXL、PCIe或CXS等成熟的接口与协议进行通信。
这就引出一个重要的架构问题:来自既有SoC互连结构(fabric)或协议域(protocol domain)的数据流,如何迁移到一个基于UCIe协议的片芯到片芯链路上?
这正是UCIe桥接IP(Bridge IP)的重要性所在。
桥接IP无需让每个芯粒子系统都围绕同一接口被重新设计,而是在现有协议环境与UCIe互连之间建立连接。根据IP架构的不同,该桥接功能可以以独立的桥接模块形式交付,也可以集成在更全面的UCIe控制器配置中而成为其一部分。SmartDV的UCIe产品组合包括面向AXI、CHI、CXL、PCIe和CXS的专用桥接解决方案,让工程团队能够根据其特定芯粒架构选择所需的协议接口。
这种模块化方法是SmartDV更广泛的面向下一代芯粒设计的UCIe硅知识产权(IP)战略的一部分,该战略将控制器、桥接和验证技术相结合,而不是迫使每种设计都套用同一种固定实现。
为什么UCIe桥接IP在芯粒架构中很重要?
芯粒互连并非孤立运行。数据从系统的某处生成,最终需要到达处理器、加速器、内存子系统、I/O器件或其他功能模块。
在芯粒内部,这种通信可能已经基于AXI、CHI、CXL、PCIe、CXS或其他成熟协议。UCIe提供片芯到片芯的路径,但架构仍需要一种机制将相应协议的数据流承载到该路径上。
UCIe将PCIe和CXL协议流量作为基础规范的一部分进行原生映射。包括AXI、CHI和CXS在内的其他协议的承载,通常通过UCIe联盟在1.1和3.0修订版中定义的扩展流式(streaming)和原始模式(raw-mode)传输来进行映射。对周边子系统而言,两者的结果类似:通过片芯到片芯链路实现具备协议感知能力的连接,但底层UCIe级的映射可能因协议而异。
桥接IP正是扮演这个角色。
例如,基于AXI的子系统可能需要与另一颗片芯上的逻辑单元通信,而无需改变内部AXI架构。使用CHI的相干处理器(coherent processor)子系统可能需要将通信扩展到芯粒边界之外。采用CXL协议连接的加速器或内存器件可能需要让CXL数据流经由UCIe接口承载。PCIe连接的组件则带来另一组协议需求。
因此,所选桥接方案取决于UCIe连接周围的架构。目标并不是为每个芯粒选择一种通用桥接,而是保持系统所需的协议行为,同时使用UCIe作为标准化的片芯到片芯连接。
这在不同芯粒可能有不同接口需求的模块化平台中尤为有用。
将不同协议域连接到UCIe
AXI到UCIe桥接IP
AXI被广泛用于SoC内部通信,包括对处理器、加速器、内存侧、外设及其他子系统的连接。
SmartDV的AXI到UCIe桥接IP将AXI协议数据流连接到UCIe片芯到片芯链路。当前产品支持AMBA AXI5,同时保持与AXI4和AXI3的向后兼容,支持可配置的数据位宽,并支持多种通道(lane)配置下的UCIe 3.0运行。
对于芯粒系统而言,这为基于AXI的子系统提供了一种跨越片芯边界进行通信的方式,而无需围绕另一种主机侧接口重新设计内部子系统。
CHI到UCIe桥接IP
AMBA CHI面向处理器和高性能SoC架构中的一致性通信。当一致性子系统被划分到多个芯粒上时,保持所需的事务和一致性行为成为片芯到片芯架构的关键部分。
SmartDV的CHI到UCIe桥接IP支持从AMBA 5 CHI跨越到UCIe链路的通信,包括 Request、Home和Slave节点类型,以及相应的协议层(Protocol)、网络层(Network)和链路层(Link)行为。
这使得CHI到UCIe桥接对于多片芯系统尤为相关,在这些系统中,相干处理器、缓存或加速器子系统需要跨越封装边界进行通信,同时保持系统内部所使用的CHI架构。
CXL到UCIe桥接IP
CXL为处理器、加速器和内存器件提供相干连接,是AI、HPC和数据中心系统中的重要协议。
SmartDV的CXL到UCIe桥接IP支持通过UCIe承载CXL.io、CXL.cache和CXL.mem数据流。这使得芯粒架构可以将CXL协议行为与标准化的UCIe片芯到片芯连接相结合。
这在内存扩展、相干加速或其他基于CXL的功能在一个封装内的连接需要跨越多个芯粒时尤为相关。
PCIe到UCIe桥接IP
PCI Express依然是加速器、存储、网络和通用高速I/O架构的基础。
SmartDV的PCIe到UCIe桥接IP将 PCIe 根复合体(Root Complex)和端点(Endpoint)功能与UCIe片芯到片芯连接相结合。当前实现可支持UCIe 3.0和PCIe 6.0,使PCIe协议数据流能够穿越芯粒互连。
当传统上通过PCIe通信的功能需要集成到多片芯封装中,同时保持预期的PCIe协议环境时,这一桥接方案尤其有用。
CXS到UCIe桥接IP
AMBA CXS提供高带宽流送接口,该接口专为组件和互连结构之间的通信而设计。
SmartDV的CXS到UCIe桥接IP通过UCIe承载CXS流送协议数据流,包含信用交换(credit exchange)、链路激活与停用、可配置信用控制、数据包处理、错误检测以及UCIe边带(sideband)功能。
这为使用CXS协议的系统提供了一条直达基于UCIe芯粒架构的路径,而无需CXS侧子系统在芯粒边界采用无关的协议。
集成UCIe桥接的关键技术挑战
连接两个接口不仅仅是把数据从桥接的一侧搬到另一侧。周边协议有各自的事务模型、排序要求、信用机制、错误行为、复位序列和系统级预期。
因此,最重要的设计挑战之一是在协议边界保持正确的行为。
对于诸如CHI以及适用的CXL.cache/CXL.mem用例等相干性协议域,桥接必须在数据流跨越片芯到片芯接口时保持源架构所需的一致性和排序行为。对于AXI,事务处理、未完成请求、读写行为和数据位宽都可能影响实现。CXS高度依赖流送和信用行为。PCIe则引入其自身的事务、链路和恢复要求。
在UCIe侧,实现还必须考虑适当的Flit格式、通道配置、边带通信、重试机制、CRC行为、链路管理和所支持的封装配置。
桥接实际上处于两套不同需求的交汇位置。这使得接口边界成为重要的架构与验证焦点,而不仅仅是传输连接。
选择合适的UCIe桥接方案
正确的桥接主要取决于所连接的子系统的协议架构。
一个基于AXI协议的加速器或SoC子系统自然指向AXI到UCIe连接。一个相干的AMBA系统可能需要CHI,基于CXL的内存或加速器架构需要CXL协议支持。基于PCIe的设备或子系统需要保持其PCIe行为。围绕CXS流送接口构建的设计需要相应的CXS桥接。
更复杂的多片芯系统可能同时包含多个这类协议域。
SmartDV当前的UCIe控制器IP通过专用桥接接口支持PCIe、CXL、AXI、CXS和CHI协议连接,从而反映了这种可能性。因此,UCIe 2.x控制器IP和UCIe 3.x控制器IP与桥接产品组合密切相关,而非彼此独立。
若要深入了解这些组件如何协同工作,请参阅《UCIe控制器IP与UCIe桥接IP:芯粒设计需要什么?》一文。
这也体现了SmartDV的模块化理念:工程团队可以围绕其架构实际所需的控制器和协议连接来构建方案,而不是把每个芯粒实现都当作相同的固定协议栈。
如需更广泛地了解如何围绕不同系统需求来组合控制器、桥接和验证技术,请参阅《面向AI和HPC芯粒架构构建模块化的UCIe IP协议栈》。
验证团队应如何处理UCIe桥接集成
桥接验证需要考虑连接的两侧。
仅仅确认UCIe链路能够传输数据是不够的。验证还需要建立从源协议进入的事务,确保其能够正确地穿过UCIe路径,同时保持所需的排序、流控、错误和恢复行为。
一个实用的验证计划应涵盖:
- 正常和压力条件下的协议数据流量
- 跨桥接的事务与数据包完整性
- 初始化和复位序列
- 适用的信用与流控
- 链路训练和边带行为
- 重试与恢复
- 错误注入与错误处理
- 桥接与周边子系统之间的交互
这种系统级视角很重要,这是因为跨芯粒连接观察到的故障可能源自源协议域、桥接逻辑、UCIe链路、目标子系统或它们之间的配置。
SmartDV为此准备了一套常见问题与解答《为什么基于芯粒的设计需要专门验证?》,从而更详细地讨论了这个问题,并专门针对跨越UCIe桥接边界上的验证进行了说明。
如需更深入探讨专门针对UCIe验证的内容,请阅读《为什么UCIe验证对基于芯粒的SoC设计至关重要》,其中涵盖了链路初始化、流量行为、恢复、系统级交互和桥接集成等细节。
相关的SmartDV UCIe产品与资源
SmartDV的UCIe产品组合汇集了构建和验证芯粒互连所需的设计IP与验证IP。
- UCIe验证IP
SmartDV的UCIe VIP支持通过UCIe 3.0来验证UCIe实现,包括映射协议支持、Flit格式、链路训练、错误恢复、错误注入和功能覆盖等。
如需更全面地了解这些组件如何组合在一起,请访问《面向下一代芯粒设计的SmartDV UCIe IP》。
总结
UCIe为基于芯粒的系统提供了标准化的片芯到片芯互连,但芯粒仍需要与架构中已使用的协议结构和子系统接口通信。
UCIe桥接IP在这些协议域与UCIe链路之间提供连接。
AXI到UCIe桥接IP支持基于AXI的SoC和加速器子系统。CHI到UCIe桥接IP面向相干AMBA架构。CXL到UCIe桥接IP承载CXL.io、CXL.cache和CXL.mem数据流。PCIe到UCIe桥接IP将PCI Express功能连接到芯粒互连。CXS到UCIe桥接IP支持高带宽CXS流式通信。
因此,选择合适的桥接是基于每个芯粒周围的协议环境的架构性决策。
验证则必须扩展到整条路径。团队需要的不仅是UCIe接口正确运行的信心,还要确认的是当事务在原始SoC网络结构、桥接、UCIe链路和目标芯粒之间移动时,协议行为也能保持正确。