Hasso-Plattner-Institut
Prof. Dr. Tilmann Rabl
 

Jonas Markussen

Affiliation: Dolphin ICS
Title: PCIe with a perspective on CXL

 

Abstract

As distributed applications are becoming increasingly more data driven, they require an I/O infrastructure that is capable of facilitating access to a wide variety of resources (memory, storage, accelerators, processing units, etc.), as well as efficiently moving data between these resources. Traditionally, I/O- and computing resources have been grouped together in servers, and past strategies of meeting the demands of these distributed applications have been over- provisioning servers or creating custom cluster configurations. However, the workloads of modern applications are not only demanding an increasing amount of resources, but are also becoming highly heterogeneous, often requiring ad-hoc configurations of resources. As such, the past strategies for meeting I/O demands are no longer viable.
The latest trend is to attempt to disaggregate the traditional server, enabling a so-called composable and disaggregated infrastructure. By decoupling resources from servers and moving them closer to the network, resources can instead be pooled together and assigned to servers that currently need them. This makes it possible to create server configurations on demand. The resulting flexibility allows the infrastructure to dynamically adapt to workloads, unlocking a new potential for resource allocation and increasing resource utilization.


Most in the industry are looking towards CXL 3.0, as CXL makes it possible to connect both servers and resources through a shared high-speed network fabric, and dynamically assign resources to servers. However, while the specification is released, CXL 3.0 hardware is not yet widely available. We demonstrate how an often overlooked part of PCIe can be used along with existing PCIe hardware to already enable capabilities that are typically associated with future CXL implementations, like shared-memory communication, disaggregating resources and sharing them between hosts.