PCIe的候选?CCIX的应用实例评估

 admin   2025-06-04 02:35   9 人阅读  0 条评论

对于网上PCIe的候选?CCIX的应用实例评估和一些关于摩尔庄园617下雨的话题,想必很多人都想了解,就让小编带大家来了解一下吧!

介绍

相关工作

aPCIePCIExpress[2]是将外围设备连接到桌面和服务器系统的标准。PCIe通过将多个通道捆绑到单个设备来扩展链路的带宽。在版本10中,它能够以每通道250MB/s的速度传输。每个后续版本的带宽大约增加了一倍,现在版本60中达到每通道788GB/s。目前,60版本刚刚指定,50硬件即将推出,40是当前硬件上部署最广泛的版本。PCIe在点对点拓扑中使用全双工串行链路,在电气链路层、数据链路层和事务层之上有两个附加层。这些附加层提供纠错和基于数据包的通信。除了传输数据和设备初始化等基本操作外,PCIe还支持PRI和ATS等更高级的功能,但不包括缓存一致性。

bCCIXCCIX[3]、[4]是一种高级I/O互连,使两个或多个设备能够以一致的方式共享数据。在物理层上,它与PCIe兼容,仅在协议和端点控制器上有所不同。它由CCIX联盟于2016年推出,该联盟由AMD、ARM、华为、IBM、Mellanox、高通、Xilinx创立[5]。CCIX已在基于ARM和基于x86的CPU上实现。

c其他共享虚拟内存SVM或缓存一致性SVM互连CCIX并不是共享虚拟内存互连的唯一竞争者。阿里巴巴集团、思科系统、戴尔/EMC、Facebook、谷歌、HPE、华为、英特尔和微软在英特尔前期工作的基础上于2019年提出了CXL[6]。虽然CCIX可以在较旧的PCIe连接上运行,但CXL最初是基于PCIe50设计的。因此,CXL每个通道可以实现高达32GT/s,并且它提供与CCIX类似的功能,但使用不同的逻辑视图。CXL已经看到了比CCIX更广泛的工业应用,预计将在未来几年成为主导解决方案。

另一种选择是IBM于2014年推出的相干加速器处理器接口。虽然第一个版本也是在PCIe之上实现的,但更新的版本是特定于供应商的接口。CAPI主要用于基于IBMPOWER的主机,因此其范围比CCIX和CXL更有限。在OpenCAPI30中,它提供22GB/s带宽和298/80ns[7]读/写延迟。

虽然不是像CCIX这样的PCIe直接扩展,但支持缓存一致性协议的另一种互连是Gen-Z[8]。它提供每通道高达56GT/s的速度,并允许与PCIe类似地组合多个通道。尽管功能前景广阔,但Gen-Z硬件尚未商业发布,该技术将被纳入CXL中。

dFPGA上的数据库加速[9]很好地概述了使用FPGA加速数据库操作。最常见的方法,例如Centaur[10]等最先进的解决方案中使用的方法,采用FPGA作为卸载加速器,用于大规模过滤、排序、连接或算术计算。然而,这种操作模式会产生从FPGA到FPGA的大量数据传输的成本,并且与本文研究的旨在避免这些传输的近数据处理方法不同。

CCIX架构及其在FPGA上的使用

本节概述了通用CCIX架构,并讨论了如何在两个不同的FPGA系列中使用它。

总体概述

设备连接到端点处的CCIX。对于本讨论,相关端点类型是归属代理HA和请求代理RA。HA充当物理内存的“所有者”,提供对物理内存的一致访,而RA则通过与拥有的HA通信来对远程内存执行非本地读取和写入。CCIX和PCIe的区别在于RA可以提供自己的缓存,但通过CCIX保持与HA的一致性。在HA端,缓存状态的更改将通过发送适当的消息传播到访的RA。CCIX本身使用物理地址进行访,但可以选择使用现有的PCIe机制来允许加速器使用虚拟地址。为了执行实际的地址转换,CCIX依赖于PCIeATS机制,这也是CCIX连接的加速器还在不同PCIe虚拟通道VC上维护与主机的传统PCIe连接的原因之一。在包括网格和交换机层次结构在内的各种CCIX拓扑中,我们采用依赖于主机和加速器之间的直接连接的简单拓扑。此外,主机上不需要特殊的设备驱动程序或定制固件,因为硬件接口级别支持所有必需的操作,包括地址转换和一致性。

图1中A具有CCIX功能的主机充当HA和连接到CCIX的加速器充当RA的架构。左B在XilinxUltraScale+HBM器件上实现CCIX-RA的SoC。右C在VersalACAP器件上实现CCIX-RA的SoC。

图1-A显示了支持CCIX设备的缓存一致性主机FPGA附件的高级架构。该框图的顶部是主机,底部是加速器,两者都通过支持CCIX的PCIe接口连接。CCIX在PCIe事务层使用多个VC在同一PCIe插槽上承载PCIe和CCIX流量。在支持CCIX的插槽上,事务层对PCIe数据包使用VC0,对CCIX数据包使用VC1,共享相同的物理层和链路层。不过,CCIX可以选择使用扩展速度模式ESM,从而提高信令速率。对于我们使用的PCIe40连接,ESM将速率从16GT/s提高到25GT/s,每次传输128个有效负载位。如果双方都支持,ESM模式会在启动时的CCIX发现阶段自动启用。

B使用XilinxXDMA的FPGARA

XilinxVirtexUltraScale+HBM器件支持CCIX,但CCIX功能必须以扩展XDMAIP块的形式实现为可重新配置的“软”逻辑。如图1-B所示,关键模块包括支持CCIX的PCIe控制器、ATS交换机和PCIe-AXIMM桥。ATS交换机用于将虚拟到物理地址转换请求插入到PCIeVC0上的常规PCIe流量中,然后检索其结果。它还包括一个小型地址转换高速缓存ATC,用于缓冲现有转换结果,以避免对已知映射进行相对昂贵的地址转换。AXIMM桥提供主机和加速器之间的内存映射通信。对于数据平面访,加速器采用使用Xilinx系统缓存IP模块[11]实现的片上缓存,该缓存又使用CCIX流协议与CCIX一致性机制进行交互。此缓存中的未命中将成为远程内存访,并通过CCIX转发到HA以检索数据。反过来,HA确保FPGA端SC与主机端缓存的一致性。

使用XilinxCPM的CFPGARA

最新的XilinxVersal器件在其芯片中优化了对CCIX的“增强”支持。具体来说,Coherence和PCIe模块CPMIP块[12]包括一个集成的L2缓存,该缓存使用ARM的CHI协议与芯片范围的一致性网状网络进行通信,而该网络又使用带有支持CCIX的PCIe控制设备接口的CXS。与以前在UltraScale+设备中一样,两个PCIeVC用于分离在同一PCIe插槽上运行的PCIe和CCIX流量。我们的设置只需要CPM模块提供的两个支持CCIX的PCIe控制器之一。ATSSwitch和AXIMM块的使用与以前一样。

D地址转换

系统缓存SC接收到来自加速器的读/写请求后,它检查ATC的虚拟到物理映射。如果SC在ATC中找不到有效的转换,它会通过VC0使用PCIeATS功能向主机请求转换。系统缓存上的ATS接口使用请求完成协议[13]通过四个流接口提供翻译服务传入完成者请求CQ、传出完成者完成CC、传出请求者请求RQ和传入请求者完成。来自主机的回复使用相同的机制传回FPGA。

ECCIX时序模型

CCIX事务的平均延迟如公式1所示。每个事务的延迟取决于ATC中可用的有效缓存地址转换的概率与ATS必须从主机请求新转换的概率,以及是否请求的数据存在于本地片内缓存中。必须从远程HA请求。请注意,使用ESM时,物理CCIX延迟可能比物理PCIe延迟短。

实验设置和评估

我们在真实硬件中进行了实际评估,使用支持CCIX的ARMN1-SDP作为主机,并分别使用带有UltraScale+HBM和VersalACAPFPGA的XilinxAlveoU280AU280和VCK5000CCIX附加板作为加速器。表一显示了不同设备的规格。

A测量设置

后面描述的所有低级基准测试都使用相同的基本测量方法,该方法由三个主要组件组成软件应用程序编程接口API、硬件模块和上述片上CCIX组件。软件API运行在主机上,负责执行基准测试并读取硬件分析的CCIX延迟特性。软件API有四个主要任务在主机内存中分配缓冲区,b初始化硬件模块以访测量结果,c检索硬件模块记录的延迟数据,以及d分析结果。软件API的伪代码如算法1所示。请注意,我们随机化地址以强制SC缺失,从而确保我们感兴趣的CCIX传输实际发生。

称为CCIX流量生成器CTG的硬件模块使用获取/存储方法来捕获CCIX延迟。该模块接受来自主机中软件API的startTrans调用的请求。API请求后,CTG通过AXI4-MM接口向SC创建请求,SC扮演CCIXRA的角色,然后计算响应到达SC的时间。然后可以通过软件API读取捕获的时序。请注意,只有当所有数据都到达时,我们才认为事务完成。

表II显示了我们检查的简单CCIX-RA所需的FPGA资源。如图1-C所示,VCK5000使用硬化CPM模块形式的PCIe控制器,但仍需要一些额外的“软”逻辑来支持PCIe传输和ATS转换。

BL低水平实验评估

实验1CCIX与PCIe-延迟和吞吐量。

在此实验中,我们比较了细粒度交互中相对较小块大小的CCIX和PCIe传输延迟。开源TaPaSCo[14]框架用于测试DMA传输。在此实验中,通过确保ATC中已存在地址转换来消除ATS延迟。图2-A和图2-B分别显示了PCIe和CCIX流量的读取和写入延迟。对于PCIe-DMA传输,我们使用TaPaSCo的高性能DMA引擎,通过设置不同的数据传输大小,直接使用主机内存数据的物理地址。对于CCIX测量,在主机内存中分配一个缓冲区,并将其虚拟地址传递到CTG模块。

图2AU280和VCK5000上CCIX和PCIe读写访延迟对比

我们的评估表明,在AU280和VCK5000上,只要传输的数据小于4KiB,CCIX传输就比PCIe-DMA传输具有更好的主机读取延迟。在这两种情况下,加速都是由于CCIX使用的优化数据包协议。然而,当使用优化的数据包协议从FPGA写入主机存储器时,CCIX会产生比PCIe传输更长的延迟,因为这些写入参与了一致性机制。我们的吞吐量测量显示,对于1KiB、16KiB和32KiB的数据集大小,CCIX的读取吞吐量分别是PCIe的33倍、129倍和087倍。读写吞吐量的附加数据

对于PCIe的候选?CCIX的应用实例评估和一些摩尔庄园617下雨这类的相关话题,本文已经做了详尽的讲解,谢谢大家的支持!

本文地址:http://syhuahe.com/post/1370.html
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?