芯片互连技术(四)—非对称的缓存一致性总线CXL

发布于 2022-12-26 14:47
浏览
0收藏

总线是芯片架构中非常核心的概念。例如,一个SoC芯片分为很多模块或子系统,如处理器、内存控制器、GPU、ISP等,通过总线把它们连接在一起,此即芯片架构。


芯片内的总线互连常见的有:处理器核之间的互连、处理器核与内存的互连、处理器与缓存的互连、缓存与缓存之间的互连、处理器和I/O之间的互连、处理器与各种专有硬件加速模块之间的互连、DMA和内存的互连等。狭义的总线互连仅仅指通过简单总线接口连接多个组件,简单总线是一种临界资源,组件需要抢占到总线才能发起访问;而广义的总线互连泛指用于组件之间的互连结构。


芯片间的总线互连有:两个CPU之间的互连、CPU和异构GPU等加速器之间的互连、CPU和NIC等I/O设备之间的互连、加速器之间的互连、加速器和I/O设备之间的互连等。


下面介绍几种芯片互联结构。

非对称的缓存一致性总线CXL

随着数据(特别是非结构化数据,如图像、数字化语音和视频)生产和消费的大量增长及特定工作负载(如压缩、加密和人工智能等)的快速创新,异构加速架构获得了广泛使用。越来越多不同类型的CPU和加速器(如GPU、FPGA和AI等)需要有效地协同工作,并且共享彼此的内存。


CPU和加速器互连架构数据交互如下图所示。当前基于PCIe的连接,CPU和加速器的内存是彼此独立的,大数据场景下两者之间频繁的数据搬运成为非常严重的系统性能瓶颈。英特尔发布的CXL1.0开放工业标准在CPU和加速器之间实现了高速、低延迟的互连,通过一致性的互连总线,硬件支持缓存一致性,可以提升CPU和加速器之间的数据交互性能。

芯片互连技术(四)—非对称的缓存一致性总线CXL-汽车开发者社区

CPU和加速器互连架构数据交互


CXL总线是一种板级芯片间互连总线。CXL基于PCIe 5.0的基础架构实现,通过在CPU和加速器之间建立一致性的内存池,同时采用硬件机制在加速器和处理器之间高效地共享内存,提升了性能,并且降低了延迟、软件堆栈复杂性及系统总体成本。


PCIe5.0使CPU和外围设备的互连速度达到了32GT/s。但在具有大共享内存池且许多设备需要高带宽的环境中,PCIe具有如下局限性。


·PCIe不支持一致性机制。


·每个PCIe层次结构共享一个64位地址空间,无法有效地管理隔离的内存池。


·PCIe链接的等待时间可能太长,从而无法有效管理系统中多个设备之间的共享内存。


CXL的Flex Bus机制如下图所示。由于CXL使用PCIe 5.0 PHY和电气设备,因此可以通过Flex Bus有效地插入任何使用PCIe 5.0的系统。Flex Bus是一个灵活的高速端口,可以静态配置为支持PCIe或CXL,这使得CXL系统可以利用PCIe重定时器。当前CXL仅被定义为直连CPU,还无法使用PCIe交换。

芯片互连技术(四)—非对称的缓存一致性总线CXL-汽车开发者社区

CXL的Flex Bus机制


如下图所示,CXL标准定义了三种协议,这些协议共享标准的PCIe 5.0 PHY传输。


·CXL.io协议。CXL.io协议本质上是PCIe 5.0协议的扩展,用于设备发现、配置、寄存器访问及终端等,它为I/O设备提供了非一致性数据的Load/Store接口。


·CXL.cache协议。CXL.cache协议定义了设备对主机的访问,允许设备使用请求/响应机制以极低的延迟访问主机内存的数据。


·CXL.memory 协议。CXL.memory 协议允许主机处理器使用 Load/Store 指令访问设备内存,主机CPU充当主设备,而设备充当从设备。CXL.memory协议还支持易失性和非易失性存储。

芯片互连技术(四)—非对称的缓存一致性总线CXL-汽车开发者社区

CXL标准定义的三种协议


由于CXL.io协议用于初始化和链接,因此所有CXL设备都必须支持该协议,如果CXL.io协议发生故障,则链接将无法运行。CXL标准定义的三种协议有三种组合,对应三种类型的CXL设备,如图所示,这三种CXL设备都由CXL标准支持。


下图显示了定义的三种CXL类型设备以及它们的相应协议、典型应用程序和支持的内存访问类型:


·类型1:只包含CXL.io协议和CXL.cache协议,用于只具有一致性缓存的设备,设备跟主机一起共享主机内存。


·类型2:包含CXL.io协议、CXL.cache协议和CXL.memory协议。用于设备也具有独立内存的场景,此时一致性缓存是可以有可以没有的。这样,设备可以一致性访问主机内存,主机也可以一致性访问设备内存。


·类型3:只包含CXL.io协议和CXL.memory协议。这样,主机可以一致性访问设备内存,设备相当于一个内存扩展器。

芯片互连技术(四)—非对称的缓存一致性总线CXL-汽车开发者社区

三种类型的CXL设备


CXL一致性偏差如下图所示。CXL为类型2设备定义了基于偏差(Bias)的一致性模型,并为类型2设备内存定义了两种偏差状态:主机偏差和设备偏差。如图(a)所示,当设备内存位于主机偏差状态时,设备内存对设备来说跟主机内存一样,如果设备需要访问设备内存,则需要发送请求到主机,由主机解决一致性访问处理。如图(b)所示,当设备内存位于设备偏差状态时,设备会确保主机没有对应内存的缓存,这样设备就可以直接访问此内存,而不需要发送任何访问请求到主机。

芯片互连技术(四)—非对称的缓存一致性总线CXL-汽车开发者社区

CXL一致性偏差


基于偏差的一致性模型的主要优点如下:


·有助于保持设备连接内存的一致性,该模型被映射到统一的系统地址空间。


·让设备在高带宽下访问设备本地内存,而不会引起一致性开销。


·帮助主机以一致的方式访问设备内存,就像访问主机内存一样。


现有的专有或开放一致性协议通常都是对称协议,所有互联设备都是对等的关系。而CXL标准的一个重要特征则是非对称的一致性协议。


非对称的CXL模型如下图所示,在非对称的CXL模型中,由于Home缓存代理仅实现在主机中,因此,主机控制内存的缓存,这可以解决设备请求中相应地址的系统范围一致性问题。

芯片互连技术(四)—非对称的缓存一致性总线CXL-汽车开发者社区

非对称的CXL模型


对称的缓存一致性协议尽管具有一些优点,但是这种协议比非对称的缓存一致性协议复杂,并且它所产生的复杂性必须由每个设备来处理。不同架构的设备可能会采用不同的一致性方法,这些方法在微架构层面进行了优化,这会显著增加行业推广的难度。通过使用由主机控制的非对称方法,各种类型的CPU和加速器都可以比较容易地成为CXL生态系统的一部分。


文章转载自公众号:智车Robot

收藏
回复
举报
回复
相关推荐