CXL Switch Virtualization for Multi-Host SLD Resource Sharing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current PCIe and CXL switches lack flexibility in dynamic protocol adaptation, address remapping, and resource abstraction, limiting concurrent access and efficient resource sharing among multiple hosts, leading to resource stranding and underutilization.
Innovation Solution
A switch with a Resource Provisioning Unit (RPU) that dynamically modifies packet protocol and physical addresses, enabling multiple hosts to concurrently access and share resources of a Single Logical Device (SLD) through CXL resource-as-a-service, supporting scalable virtualization of GPUs and compute accelerators.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If standard PCIe and CXL switches forward packets based on original headers without modification, then packet routing is simple and reliable, but protocol adaptation flexibility and address remapping capability are limited
Solution Approach 1:
The switch acts as an intermediary between hosts and SLDs, terminating CXL protocols at the switch level and creating virtualized SLDs that present unified interfaces to multiple hosts. This mediator approach enables protocol translation and address remapping without requiring changes to the underlying SLD or host interfaces.
Solution Approach 2:
The switch dynamically modifies packet parameters including protocol types and physical addresses based on host capabilities and resource availability. By changing these parameters dynamically, the switch enables flexible protocol adaptation and address remapping while maintaining backward compatibility with existing CXL standards.
2Productivity
If an SLD is accessed by only one host at a time, then access control is simple and data consistency is maintained, but resource utilization efficiency decreases due to stranding and underutilization
Solution Approach 1:
The SLD resources are segmented into multiple virtualized instances that can be independently allocated to different hosts. This segmentation enables concurrent access while maintaining logical isolation, allowing the system to achieve higher resource utilization without compromising data consistency through proper virtualization layers.
Solution Approach 2:
The patent introduces a virtualization dimension that separates physical SLD access from logical resource allocation. By adding this dimensional layer, multiple hosts can concurrently access SLD resources through virtualized interfaces while the system manages consistency through the virtualization abstraction, resolving the traditional single-host constraint.
3Adaptability or versatility
If CXL switches enforce predefined communication paths, then routing is deterministic and simple, but communication flexibility and path adaptability are restricted
Solution Approach 1:
The switch implements dynamic routing capabilities that adapt communication paths based on real-time conditions such as resource availability, host capabilities, and network load. This dynamic approach enables flexible protocol adaptation and address remapping while maintaining manageable routing control through automated decision-making algorithms.
Data Source
AI summary
Embodiments of a switch enabling multiple hosts to concurrently access and share resources of a Single Logical Device (SLD). The switch includes first and second upstream switch ports (USPs) coupled to first and second hosts, and a downstream switch port (DSP) coupled to the SLD. The first USP communicates with the first host according to a first Compute Express Link (CXL) protocol, the second USP communicates with the second host according to a second CXL protocol, and the DSP communicates with a first CXL SLD component according to a third CXL protocol. A Resource Provisioning Unit (RPU) terminates the first, second, and third CXL protocols, and exposes second and third virtualized SLDs, which utilize resources of the first SLD component, to the first and second hosts, respectively. Optionally, the first, second, and third CXL protocols are CXL.mem protocols.


