Priority-Based Memory Resource Retry Queue Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computing systems, memory access requests often experience delays due to resource unavailability, leading to performance lags and potential stalling of high-priority processes as lower priority requests occupy busy resources, causing a backlog in the resource retry queue.
Innovation Solution
A system and method where a control circuit determines the availability and priority of memory resources, prioritizing high-priority memory access instructions and managing them in a retry group, polling resources in order of priority to ensure timely processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If memory access requests are queued and processed in FIFO order, then the system is simple to implement, but high-priority requests may be stalled behind lower-priority requests causing performance degradation
Solution Approach 1:
The retry queue is segmented into multiple priority levels (first priority level, second priority level, etc.) instead of a single FIFO queue. Each priority level has its own retry queue, allowing requests to be organized and processed by priority rather than strictly by arrival order. This segmentation enables high-priority requests to be processed independently of lower-priority requests, resolving the contradiction between simplicity and performance.
Solution Approach 2:
The system dynamically selects which retry queue to process based on the current state of memory resources and request priorities. The controller can switch between processing different priority levels depending on resource availability and request urgency, making the processing order flexible rather than fixed. This dynamic approach maintains simplicity in implementation while significantly improving system performance by preventing high-priority stalls.
2Device complexity
If multiple requests wait for unavailable resources in a single retry queue, then the queue management is simple, but the response time increases causing noticeable delays
Solution Approach 1:
The single retry queue is divided into multiple segmented queues based on priority levels. Each priority level maintains its own queue, so requests are organized by urgency rather than arriving order. This segmentation allows the system to process high-priority requests quickly without waiting for lower-priority requests, reducing overall response time while maintaining manageable complexity through structured organization.
Solution Approach 2:
The system changes the parameter of request organization from time-based (FIFO) to priority-based. By assigning priority levels to requests and organizing them accordingly, the system transforms the waiting mechanism from a time-driven process to a priority-driven process. This parameter change reduces response time for critical requests while keeping the management structure relatively simple through priority assignment and queued organization.
3Ease of manufacture
If the controller monitors all unavailable resources sequentially, then the implementation is straightforward, but high-priority requests may wait too long for resource availability
Solution Approach 1:
The resource monitoring process is segmented by priority levels. Instead of monitoring all resources sequentially for all requests, the controller monitors resources for high-priority requests first, then progresses to lower-priority requests. This segmentation of the monitoring process ensures that high-priority requests are fulfilled reliably and quickly, while maintaining implementation simplicity through a systematic priority-based approach.
Solution Approach 2:
The system performs preliminary action by first identifying and preparing to process high-priority requests before lower-priority requests. When resources become available, the controller is already prepared to immediately fulfill high-priority requests that are waiting. This preliminary organization by priority ensures reliable fulfillment of critical requests without requiring complex real-time decision-making, maintaining both simplicity and reliability.
Data Source
AI summary
In an embodiment, an apparatus includes control circuitry and a memory configured to store a plurality of access instructions. The control circuitry is configured to determine an availability of a resource associated with a given access instruction of the plurality of access instructions. The associated resource is included in a plurality of resources. The control circuitry is also configured to determine a priority level of the given access instruction in response to a determination that the associated resource is unavailable. The control circuit is further configured to add the given access instruction to a subset of the plurality of access instructions in response to a determination that the priority level is greater than a respective priority level of each access instruction in the subset. The control circuit is also configured to remove the given access instruction from the subset in response to a determination that the associated resource is available.


