Shared Device Bandwidth Allocation for CXL Host QoS
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing interconnect fabrics like IntelĀ® CXL do not provide mechanisms for Quality of Service (QoS) management among multiple hosts accessing shared memory, leading to potential throughput bottlenecks and inefficient resource utilization.
Innovation Solution
Implementing a Port Based Memory Bandwidth Allocation (PBMBA) mechanism within the CXL fabric to manage and allocate memory bandwidth dynamically among hosts, using a PBMBA controller and Fabric Manager API commands, ensuring each host's access is limited and adjusted based on workload, with reporting to the Operating System-directed configuration and Power Management (OSPM) via ACPI_DSM methods.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple hosts access shared memory simultaneously in CXL fabric, then memory pooling scalability is improved, but throughput bottlenecks and inefficient resource utilization occur
Solution Approach 1:
The patent segments the shared memory bandwidth into multiple allocation units that can be independently assigned to different hosts. The PBMBA controller divides the total memory bandwidth and manages multiple allocation entries, each corresponding to a host's bandwidth share. This segmentation allows simultaneous access by multiple hosts while preventing any single host from monopolizing the entire bandwidth, thus resolving the throughput bottleneck issue while maintaining scalability.
Solution Approach 2:
The patent implements dynamic bandwidth allocation where the PBMBA controller can adjust memory bandwidth assignments based on real-time host requests and workload conditions. The system dynamically creates, modifies, and deletes bandwidth allocation entries through Fabric Manager API commands, allowing the memory bandwidth distribution to adapt to changing system demands. This dynamic adjustment prevents throughput bottlenecks by ensuring fair and efficient resource distribution among multiple hosts.
2Device complexity
If no QoS management mechanism is implemented, then device complexity is reduced, but fair resource allocation among hosts cannot be ensured
Solution Approach 1:
The patent introduces a PBMBA (Port Based Memory Bandwidth Allocation) controller as an intermediary component between the shared memory and multiple hosts. This controller manages bandwidth allocation by receiving allocation requests from hosts, determining appropriate bandwidth shares, and enforcing these allocations through the interconnect fabric. The PBMBA controller works in conjunction with Fabric Manager API commands to provide centralized QoS management, ensuring fair resource distribution without requiring complex modifications to individual host systems.
3Ease of manufacture
If static memory allocation is used, then implementation simplicity is maintained, but adaptability to changing workloads is reduced
Solution Approach 1:
The patent implements dynamic bandwidth allocation where the PBMBA controller can adjust memory bandwidth assignments based on real-time host requests and workload conditions. The system dynamically creates, modifies, and deletes bandwidth allocation entries through Fabric Manager API commands, allowing the memory bandwidth distribution to adapt to changing system demands. This dynamic adjustment prevents throughput bottlenecks by ensuring fair and efficient resource distribution among multiple hosts.
Data Source
AI summary
Some aspects of the present disclosure relate to a non-transitory computer-readable medium storing instructions that, when executed by one or more processing circuitries, cause the one or more processing circuitries to perform a method for a controller of a shared device, the method comprising obtaining (130), from a requester device connected to the shared device via an interconnect fabric, a request for using a functionality of the shared device, and providing (140) access to the functionality of the shared device using a share of performance of the shared device defined by a data structure mapping one or more requester devices to one or more shares of performance of the shared device for the requester device.


