Memory Controller Scheduling via Bandwidth-Aware QoS Prioritization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-processor systems, memory bandwidth contention among processors leads to inefficient memory request scheduling, as existing techniques fail to effectively prioritize and manage memory requests across multiple memory controllers, resulting in suboptimal memory response times and quality-of-service violations.
Innovation Solution
A method and apparatus that locally schedule memory requests based on quality-of-service priority, determined by a central manager using system-wide memory bandwidth usage information, which resets and accumulates priority values within timeframes to ensure fair allocation and reduce contention, employing techniques like congested-bank-first and time-frame-based quality-of-service scheduling to optimize memory access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Volume of stationary object
If multiple processors access main memory through multiple memory controllers, then physical memory space is increased, but memory bandwidth contention occurs
Solution Approach 1:
The system segments memory management by dividing main memory into multiple portions, each controlled by a dedicated memory controller. Each processor can access any memory portion through the appropriate controller, enabling parallel memory operations while maintaining organized memory space segmentation.
Solution Approach 2:
The patent implements dynamic memory request scheduling where the memory controller adapts scheduling decisions based on real-time system state information, including memory bandwidth usage metrics and quality-of-service requirements, allowing the system to dynamically adjust to changing workload conditions.
2Ease of operation
If memory requests are scheduled without quality-of-service prioritization, then scheduling simplicity is maintained, but quality-of-service targets are violated
Solution Approach 1:
The memory controller implements feedback mechanisms by monitoring memory bandwidth usage information and using this feedback to adjust scheduling decisions. The controller collects usage metrics, compares them against quality-of-service targets, and modifies request prioritization accordingly to ensure compliance while maintaining operational simplicity.
Solution Approach 2:
The patent introduces an intermediary scheduling mechanism within the memory controller that acts as a mediator between multiple processors and the memory subsystem. This intermediary layer handles the complexity of quality-of-service enforcement, translating high-level QoS requirements into concrete scheduling decisions without requiring complex changes at the processor level.
3Device complexity
If local memory bandwidth usage is monitored without system-wide information, then monitoring complexity is reduced, but scheduling optimality deteriorates
Solution Approach 1:
The patent merges local monitoring capabilities at each memory controller with system-wide monitoring functions. Each controller monitors its local memory bandwidth usage and combines this information with system-wide metrics to form a comprehensive view, enabling optimized scheduling decisions that consider both local conditions and overall system state.
Solution Approach 2:
The system transitions from purely local monitoring to a multi-dimensional monitoring approach that incorporates both local memory controller metrics and system-wide aggregation. This dimensional expansion allows the scheduling algorithm to make more informed decisions by considering usage patterns across multiple levels of the memory hierarchy.
Data Source
AI summary
In at least one embodiment, a method includes locally scheduling a memory request requested by a thread of a plurality of threads executing on at least one processor. The memory request is locally scheduled according to a quality-of-service priority of the thread. The quality-of-service priority of the thread is based on a quality of service indicator for the thread and system-wide memory bandwidth usage information for the thread. In at least one embodiment, the method includes determining the system-wide memory bandwidth usage information for the thread based on local memory bandwidth usage information associated with the thread periodically collected from a plurality of memory controllers during a timeframe. In at least one embodiment, the method includes at each mini-timeframe of the timeframe accumulating the system-wide memory bandwidth usage information for the thread and updating the quality-of-service priority based on the accumulated system-wide memory bandwidth usage information for the thread.


