Memory Request Queue Lookahead Priority Elevation for Stall Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-core System on Chip (SoC) architectures, existing priority schemes often lead to stalls when low-priority requests are delayed, causing inefficiencies in memory access arbitration, particularly in scenarios where high-priority requests need to bypass lower-priority transactions in the queue.
Innovation Solution
Implementing a priority elevation mechanism that allows high-priority requests to propagate their priority directly to the MDMA interface, effectively elevating the priority of all older requests in the queue, shifting arbitration from individual requests to core-level representation, and using a hierarchical lookahead priority collection mechanism to calculate the overall priority of the memory system.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a traditional priority scheme is used for memory access arbitration, then simple arbitration logic is maintained, but high-priority requests cannot bypass lower-priority transactions causing stalls and reduced productivity
Solution Approach 1:
The patent implements a lookahead mechanism that examines future high-priority requests before they reach the arbitration point. By detecting high-priority transactions in advance within the memory hierarchy, the system can elevate their priority status proactively, allowing them to bypass lower-priority transactions and reducing stalls before they occur.
Solution Approach 2:
The patent introduces a priority elevation mechanism that acts as an intermediary between the traditional arbitration logic and high-priority requests. This mechanism intercepts high-priority transactions within the memory hierarchy, elevates their priority status, and ensures they are arbitrated ahead of lower-priority requests, effectively mediating the conflict between simple arbitration logic and the need for high-priority bypass capability.
2Productivity
If priority elevation is implemented to allow high-priority requests to bypass lower-priority transactions, then productivity is improved, but the arbitration mechanism becomes more complex
Solution Approach 1:
The patent segments the priority elevation function into distinct components: a lookahead mechanism that detects high-priority requests, an elevation mechanism that modifies their priority status, and the existing arbitration logic that processes the elevated priorities. This segmentation allows priority elevation to be added modularly without completely redesigning the arbitration mechanism, thus improving productivity while controlling the increase in complexity.
3Ease of operation
If lookahead priority collection is used to calculate overall memory system priority, then responsiveness is enhanced, but the mechanism requires additional complexity in priority management
Solution Approach 1:
The lookahead priority collection mechanism operates autonomously within the memory hierarchy, continuously monitoring for high-priority requests and automatically elevating their status without requiring external intervention. This self-service approach enhances system responsiveness by proactively managing priority based on actual traffic conditions, while the modular design keeps the added complexity contained within the priority management subsystem rather than affecting the entire system architecture.
Data Source
AI summary
A queuing requester for access to a memory system is provided. Transaction requests are received from two or more requestors for access to the memory system. Each transaction request includes an associated priority value. A request queue of the received transaction requests is formed in the queuing requester. Each transaction request includes an associated priority value. A highest priority value of all pending transaction requests within the request queue is determined. An elevated priority value is selected when the highest priority value is higher than the priority value of an oldest transaction request in the request queue; otherwise the priority value of the oldest transaction request is selected. The oldest transaction request in the request queue with the selected priority value is then provided to the memory system. An arbitration contest with other requesters for access to the memory system is performed using the selected priority value.


