Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
First Claim
1. An arbiter for use in a system, said system comprising a component configured to request retransmission of data units, said arbiter comprising:
- a high priority queue and a low priority queue;
a queuing block to store a first set of data units in said high priority queue and a second set of data units in said low priority queue; and
a scheduler to determine which of said queues is to be allocated time slots of a sequence of time slots, said scheduler to provide higher priority for said low priority queue upon occurrence of a predetermined condition for said low priority queue and to said high priority queue otherwise, wherein said scheduler retransmits a first data unit in said low priority queue for up to a pre-specified number of times in successive time slots before clearing said predetermined condition.
1 Assignment
0 Petitions
Accused Products
Abstract
A scheduler provided according to an aspect of the present invention provides higher priority for data units in a low priority queue upon occurrence of a starvation condition, and to packets in a high priority queue otherwise. The scheduler permits retransmission of a data unit in the lower priority queue when in the starvation condition, but clears the starvation condition when the data unit is retransmitted a pre-specified number of times. As a result, the data units in the higher priority queue would continue to be processed, thereby avoiding a deadlock at least in certain situations.
-
Citations
18 Claims
-
1. An arbiter for use in a system, said system comprising a component configured to request retransmission of data units, said arbiter comprising:
-
a high priority queue and a low priority queue; a queuing block to store a first set of data units in said high priority queue and a second set of data units in said low priority queue; and a scheduler to determine which of said queues is to be allocated time slots of a sequence of time slots, said scheduler to provide higher priority for said low priority queue upon occurrence of a predetermined condition for said low priority queue and to said high priority queue otherwise, wherein said scheduler retransmits a first data unit in said low priority queue for up to a pre-specified number of times in successive time slots before clearing said predetermined condition. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method implemented in an arbiter, said method comprising:
-
storing a first set of data units in a high priority queue and a second set of data units in a low priority queue; determining which of said queues is to be allocated time slots of a sequence of time slots, wherein said determining comprises providing higher priority for said low priority queue upon occurrence of a predetermined condition for said low priority queue, and for said high priority queue otherwise; transmitting a first data unit on a unidirectional bus to a first component and receiving a retransmit request in response; and retransmitting said first data unit upon receiving said retransmit request, wherein said first data unit is transmitted up to a pre-specified number of times in successive time slots before clearing said predetermined condition. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A system comprising:
-
a plurality of components forming a plurality of data units, the data units to be transmitted to corresponding destination components of the plurality of components, wherein the destination components are configured to request retransmission of the data units; and an arbiter operable to receive the plurality of data units and operable to transmit the plurality of data units to the corresponding destination components, wherein the arbiter comprises; a high priority queue and a low priority queue, wherein the plurality of data units are stored in one of the high priority queue and the low priority queue; and a scheduler operable to transmit, in a time slot, data units in the high priority queue with a higher priority compared to data units in the low priority queue, until the scheduler determines a predetermined condition exists for the low priority queue and causes a first data unit in the low priority queue to be transmitted, wherein the scheduler is operable to retransmit the first data unit up to a first predetermined number of attempts and then clear the predetermined condition, allowing a data unit in the high priority queue to be transmitted in a subsequent time slot. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
Specification