Lookahead Priority Collection to Support Priority Elevation
Abstract
A queuing requester for access to a memory system. Transaction requests received from two or more requestors access to the memory system. Each transaction request includes an associated priority value. A request queue 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 uses the selected priority value.
Claims
exact text as granted — not AI-modified1 . A method of operating a queuing requester for access to a memory system, the method comprising:
receiving transaction requests from two or more requestors for access to the memory system, wherein each transaction request includes an associated priority value; forming a request queue of the received transaction requests in the queuing requester, wherein each transaction request within the request queue includes an associated priority value; determining a highest priority value of all pending transaction requests within the request queue; selecting an elevated priority value when the determined highest priority value is higher than the priority value of an oldest transaction request in the request queue, otherwise selecting the priority value of the oldest transaction request; and providing the oldest transaction request in the request queue with the selected priority value to the memory system.
2 . The method of claim 1 , further comprising:
defining a higher priority value to use as an elevated priority value and a lower priority value to use as a non-elevated priority value; and wherein the higher priority value is selected when the determined highest priority value is higher than the priority value of an oldest transaction request in the queue, otherwise the lower priority value is selected.
3 . The method of claim 1 , wherein the priority value of the oldest transaction request is selected unless an elevated priority value is selected.
4 . The method of claim 1 , wherein the priority value included with each transaction request in the transaction queue is a bimodal value indicating either urgent or normal priority.
5 . The method of claim 4 , further comprising:
defining a high priority value to use as an elevated priority value and a low priority value to use as a non-elevated priority value; wherein the high priority value is selected when any transaction request in the transaction queue has an urgent priority value; and wherein the low priority value is selected when all transaction requests in the transaction queue have a normal priority value.
6 . The method of claim 1 , wherein the priority value of the queuing requester is set to a lowest priority value when there are no transaction requests in the transaction queue.
7 . The method of claim 1 , wherein determining the highest priority value includes one or more transaction requests that are not yet in the transaction queue.
8 . The method of claim 1 , further comprising:
arbitrating pending transaction requests from the queuing requester and from one or more other requestors; and granting access to the memory system to the requestor that wins the arbitration.
9 . A system comprising:
a queuing request module with two or more requesters; queue logic configured to receive access requests from the two or more requesters; lookahead merge logic coupled to the queue logic, wherein the merge logic is configured to determine a highest priority value of all pending transaction requests within the queue logic and to select an elevated priority value when the determined highest priority value is higher than the priority value of an oldest transaction request in the queue logic, otherwise to select the priority value of the oldest transaction request; and an interface configured to provide the oldest transaction request in the queue logic of the queuing request module using the selected priority value to a shared resource.
10 . The module of claim 9 , further comprising a register coupled to the merge logic, wherein the register is configured to store a higher priority value for selection as an elevated priority value and a lower priority value for selection as a non-elevated priority value.
11 . The module of claim 9 , wherein the merge logic is configured to select a priority value of the oldest transaction request unless an elevated priority value is selected.
12 . The module of claim 9 , wherein the priority value included with each transaction request in the queue logic is a bimodal value indicating either urgent or normal priority.
13 . The module of claim 9 , wherein the merge logic is configured to select a lowest priority value when there are no transaction requests in the queue logic.
14 . The system of claim 9 , wherein the module is coupled to a shared resource; and
further comprising one or more additional requesting modules coupled to the shared resource, wherein the shared resource includes arbitration logic configured to provide an arbitration contest for the requesting module and the additional requesting modules using the selected priority provided by the requesting module.
15 . The system of claim 9 being a system on a chip.Join the waitlist — get patent alerts
Track US2012290755A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.