Memory Pending Queue Reallocation Based on Stall Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In memory-centric computing architectures with a memory fabric, long latency memory access requests can overcrowd the memory pending queue, leading to starvation of shorter latency requests due to variable access latencies across different memory locations.
Innovation Solution
Implementing a dynamic reallocation mechanism for the memory pending queue, where stall counters track the percentage of stalled requests for each memory access class, allowing for reallocation of queue space from non-stalled to stalled classes, ensuring fair access and preventing queue overflow.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single memory pending queue is used for all memory access classes, then queue management is simplified, but long latency requests dominate the queue causing starvation of short latency requests
Solution Approach 1:
The patent segments the single memory pending queue into multiple class-specific pending queues (CPQs), one for each memory access class. This segmentation allows short latency requests and long latency requests to be handled separately, preventing long latency requests from blocking short latency requests while maintaining overall system efficiency.
Solution Approach 2:
The patent implements dynamic allocation of queue entries from a shared pool to different class-specific pending queues based on real-time stall conditions. When a class experiences stalls, the system dynamically adjusts the number of queue entries allocated to that class, creating a responsive system that adapts to changing workload conditions.
2Ease of operation
If queue space is allocated statically to memory access classes, then allocation is simple and predictable, but it cannot adapt to varying workload conditions causing unfair access
Solution Approach 1:
The patent employs feedback mechanisms through stall counters that monitor the performance of each memory access class. When a class experiences excessive stalls, the feedback triggers reallocation of queue entries from other classes to the stalled class, creating a closed-loop control system that automatically adapts to workload changes.
Solution Approach 2:
The system changes the parameter of queue entry allocation dynamically based on stall conditions. Instead of fixed allocation, the number of queue entries assigned to each class is adjusted as a variable parameter responding to real-time performance metrics, enabling the system to adapt to varying workload conditions.
3Reliability
If more queue entries are allocated to long latency requests, then their completion rate improves, but short latency requests suffer from queue overflow and increased stall time
Solution Approach 1:
The patent applies partial action by allocating queue entries to memory access classes on a need-based basis rather than providing excessive allocation to all classes uniformly. The system provides just enough queue capacity to each class based on current stall conditions, preventing waste while ensuring adequate resources for completing requests.
Data Source
AI summary
Techniques for reallocating a memory pending queue based on stalls are provided. In one aspect, it may be determined at a memory stop of a memory fabric that at least one class of memory access is stalled. It may also be determined at the memory stop of the memory fabric that there is at least one class of memory access that is not stalled. At least a portion of a memory pending queue may be reallocated from the class of memory access that is not stalled to the class of memory access that is stalled.


