Virtual-Time Memory Scheduling for Multi-Controller Bandwidth Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-processor systems, existing memory request scheduling techniques fail to effectively allocate memory bandwidth, leading to inefficiencies and unnecessary slowdowns of threads due to local memory bandwidth usage misconceptions, resulting in suboptimal utilization of available memory resources.
Innovation Solution
Implementing a virtual-time-based quality-of-service scheduling technique that allocates shares of system memory bandwidth to threads, determining a virtual finish time for each memory request based on its allocated share, and scheduling requests before their virtual finish time, while applying additional rules such as first-ready and first-come, first-served to ensure fair and efficient access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If multiple memory controllers are used to provide large physical memory space to each processor, then memory bandwidth availability increases, but memory request scheduling complexity increases
Solution Approach 1:
The patent segments the memory bandwidth into separate shares allocated to different threads, with each memory controller managing its own queue of memory requests. This segmentation allows independent scheduling decisions at each memory controller while ensuring fair bandwidth distribution across multiple threads sharing the same physical memory space.
Solution Approach 2:
The patent introduces virtual finish time as an intermediary mechanism that mediates between memory controllers and threads. Each memory request is assigned a virtual finish time based on its thread's allocated bandwidth share, allowing memory controllers to schedule requests without direct coordination, thus reducing scheduling complexity while maintaining bandwidth fairness.
2Reliability
If threads are allocated shares of system memory bandwidth, then quality-of-service is improved, but memory request queue management complexity increases
Solution Approach 1:
The patent changes the scheduling parameter from traditional priority-based or FIFO approaches to virtual finish time-based scheduling. The virtual finish time is calculated based on the thread's allocated bandwidth share and the current system state, allowing quality-of-service guarantees while simplifying queue management through a single time-based metric rather than multiple priority levels or complex arbitration logic.
3Reliability
If memory requests are scheduled based on virtual finish time, then memory bandwidth allocation fairness is improved, but scheduling decision complexity increases
Solution Approach 1:
The patent performs preliminary calculation of virtual finish times for all pending memory requests when they are enqueued. This preliminary action eliminates the need for complex real-time scheduling decisions, as the scheduler simply needs to process requests in order of their pre-calculated virtual finish times, reducing scheduling decision complexity while maintaining allocation fairness.
Data Source
AI summary
Some embodiments of a multi processor system implement a virtual-time-based quality-of-service scheduling technique. In at least one embodiment of the invention, a method includes scheduling a memory request to a memory from a memory request queue in response to expiration of a virtual finish time of the memory request. The virtual finish time is based on a share of system memory bandwidth associated with the memory request. The method includes scheduling the memory request to the memory from the memory request queue before the expiration of the virtual finish time of the memory request if a virtual finish time of each other memory request in the memory request queue has not expired and based on at least one other scheduling rule.


