Pooling PCIe devices across multiple hosts offers a promising solution to mitigate stranded I/O resources, enhance device utilization, address device failures, and reduce total cost of ownership. The only viable option today are PCIe switches, which decouple PCIe devices from hosts by connecting them through a hardware switch. However, the high cost and limited flexibility of PCIe switches hinder their widespread adoption beyond specialized datacenter use cases. This paper argues that PCIe device pooling can be effectively implemented in software using CXL memory pools. CXL memory pools improve memory utilization and already have positive return on investment. We find that, once CXL pools are in place, they can serve as a building block for pooling any kind of PCIe device. We demonstrate that PCIe devices can directly use CXL memory as I/O buffers without device modifications, which enables routing PCIe traffic through CXL pool memory. This software-based approach is deployable on today's hardware and is more flexible than hardware PCIe switches. In particular, we explore how disaggregating devices such as NICs can transform datacenter infrastructure.
翻译:在多台主机间池化PCIe设备为缓解闲置I/O资源、提升设备利用率、应对设备故障及降低总体拥有成本提供了前景广阔的解决方案。当前唯一可行的方案是采用PCIe交换机,这类硬件交换机通过将PCIe设备与主机解耦来实现设备共享。然而,PCIe交换机的高昂成本与有限灵活性阻碍了其在专业数据中心场景之外的广泛应用。本文论证了利用CXL内存池可在软件层面有效实现PCIe设备池化。CXL内存池本身已能提升内存利用率并产生正向投资回报。研究发现,CXL内存池部署就绪后,可作为池化各类PCIe设备的通用基础架构。我们通过实验证明,PCIe设备无需任何修改即可直接使用CXL内存作为I/O缓冲区,从而实现通过CXL池内存路由PCIe流量。这种基于软件的方法可在现有硬件上部署,且比硬件PCIe交换机更具灵活性。特别地,我们深入探讨了网络接口卡等解耦设备将如何变革数据中心基础设施。