Priority Based Bus Arbiters Avoiding Deadlock And Starvation On Buses That Support Retrying Of Transactions
First Claim
Patent Images
1. A system comprising:
- a plurality of components to form a plurality of data units, each data unit being destined to a corresponding one of said plurality of components, a destined component being designed to request retransmission of a data unit;
an arbiter to receive said plurality of data units and to transmit each data unit to a corresponding destined component on a first bus, said arbiter comprising;
a memory to store a high priority queue and a low priority queue;
a queuing block to store each of said plurality of data units in either said high priority queue or said low priority queue; and
a scheduler to transmit data units in said high priority queue with a higher priority compared to data units in said low priority queue,in a time slot, said scheduler to determine a starvation condition for said low priority queue and to cause a first data unit in said low priority queue to be transmitted on said first bus when said starvation condition is present,said scheduler to retransmit said first data unit only a first pre-specified number of times on said first bus, and then clearing said starvation condition even if said first data unit is not accepted by a corresponding destined component such that any data units in said high priority queue can be sent in a subsequent time slot.
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.
113 Citations
18 Claims
-
1. A system comprising:
-
a plurality of components to form a plurality of data units, each data unit being destined to a corresponding one of said plurality of components, a destined component being designed to request retransmission of a data unit; an arbiter to receive said plurality of data units and to transmit each data unit to a corresponding destined component on a first bus, said arbiter comprising; a memory to store a high priority queue and a low priority queue; a queuing block to store each of said plurality of data units in either said high priority queue or said low priority queue; and a scheduler to transmit data units in said high priority queue with a higher priority compared to data units in said low priority queue, in a time slot, said scheduler to determine a starvation condition for said low priority queue and to cause a first data unit in said low priority queue to be transmitted on said first bus when said starvation condition is present, said scheduler to retransmit said first data unit only a first pre-specified number of times on said first bus, and then clearing said starvation condition even if said first data unit is not accepted by a corresponding destined component such that any data units in said high priority queue can be sent in a subsequent time slot. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An arbiter for use in a system with a first unidirectional bus, said system further comprising a component designed 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; a scheduler to determine which of said queues is to be allocated each of a sequence of time slots, said scheduler to provide higher priority for said low priority queue upon occurrence of a starvation condition for said low priority queue and to said high priority queue otherwise, said scheduler to retransmit a first data unit in said low priority only a pre-specified number of times in successive time slots before clearing said starvation condition. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A method implemented in an arbiter associated with a unidirectional bus, 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 each of a sequence of time slots, wherein said determining comprises providing higher priority for said low priority queue upon occurrence of a starvation condition for said low priority queue, and for said high priority queue otherwise; transmitting a first data unit on said unidirectional bus to a first component and receiving a retransmit request in response; retransmitting said first data unit on said upon receiving said retransmit request, wherein said first data unit is transmitted only a pre-specified number of times in successive time slots before clearing said starvation condition. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification