Memory Controller QoS Request Prioritization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In processing systems with shared resources, such as shared memory, existing technologies face challenges in allocating memory bandwidth effectively while guaranteeing Quality-of-Service (QoS) metrics, leading to increased service times for all clients, which is unacceptable for high-priority clients.
Innovation Solution
The implementation of a dynamic priority-based resource allocation system, where clients are assigned a proportional share parameter based on their QoS class, with timeout values assigned to requests to increment criticality levels, prioritizing higher criticality requests ahead of lower ones, and considering memory states like precharged banks and row buffers for efficient servicing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If memory bandwidth is allocated equally among all clients, then fairness is maintained, but service time increases for high-priority clients
Solution Approach 1:
The patent implements different service qualities for different clients by introducing QoS classes and criticality levels. High-priority clients receive preferential treatment with shorter service times, while low-priority clients accept longer wait times. This resolves the contradiction by allowing differentiated quality rather than uniform treatment.
Solution Approach 2:
The system dynamically adjusts service priority based on real-time conditions. Criticality levels are updated as requests wait in queues, and the memory controller adapts its scheduling decisions based on current QoS requirements and system state. This dynamic adjustment allows the system to maintain QoS guarantees while optimizing service times.
2Reliability
If memory bandwidth is allocated to meet high-priority client requirements, then QoS is guaranteed for high-priority clients, but service time increases for low-priority clients
Solution Approach 1:
The system applies partial action by allocating memory bandwidth preferentially to high-priority clients only when their QoS requirements demand it. Low-priority clients receive service when resources are available, accepting longer wait times. This partial differentiation resolves the contradiction by applying priority treatment only where necessary.
3Adaptability or versatility
If the number of clients integrated in the processing system increases, then system capability increases, but competition for shared resources increases
Solution Approach 1:
The patent introduces QoS class parameters and criticality level parameters to characterize client requests. By changing the parameter space from simple client identification to multi-dimensional QoS characterization, the system can efficiently manage resource allocation among increasing numbers of clients while maintaining productivity.
4Productivity
If average service time is reduced for all clients, then overall system performance improves, but QoS guarantees for high-priority clients cannot be maintained
Solution Approach 1:
The patent segments the client population into different QoS classes and segments requests into different criticality levels. This segmentation allows the system to optimize service times within each segment while maintaining overall QoS guarantees. High-priority segments receive guaranteed service, while lower-priority segments accept variable service times, achieving both goals simultaneously.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Systems and methods are directed to managing access to a shared memory. A request received at a memory controller, for access to the shared memory from a client of one or more clients configured to access the shared memory, is placed in at least one queue in the memory controller. A series of one or more timeout values is assigned to the request, based, at least in part on a priority associated with the client which generated the request. The priority may be fixed or based on a Quality-of-Service (QoS) class of the client. A timer is incremented while the request remains in the first queue. As the timer traverses each one of the one or more timeout values in the series, a criticality level of the request is incremented. A request with a higher criticality level may be prioritized for servicing over a request with a lower criticality level.