Method of increasing the bandwidth of a packet bus by reordering reply packets
First Claim
1. In a data processor in which information is transferred between a plurality of agents attached to a bus by issuing request packets that request data from one of said agents on the bus and reply packets that return data requested by a request packet, a method of mixing request and reply packets on said bus by determining the use of a next-bus cycle using a state of arbitration lines from said agents on said bus, a state of a reply deferral line, and a state of a grant queue and a pipeline queue, said method including the steps of:
- (a) placing representations corresponding to requests for access to said bus in said grant queue in an order determined by the state of said arbitration lines;
(b) maintaining a pipeline queue of bus transactions where a first bus transaction of a highest priority corresponding to one agent is assigned a highest priority slot in said pipeline queue and a second bus transaction of a next highest priority corresponding to another agent is assigned a next lower priority slot in said pipeline queue, to thereby order said bus transactions in said pipeline queue in a priority sequence;
(c) forcing a request packet to take a next available bus cycle upon the condition that there is an agent identified in said grant queue and said pipeline queue is not full;
(d) forcing a reply packet to take a next available bus cycle upon the condition that said pipeline queue is full;
(e) forcing a reply packet to take a next available bus cycle upon the condition that said grant queue is empty and said pipeline queue is not empty;
(f) returning said reply packets in said priority sequence that said bus transactions are ordered in said pipeline queue upon the condition that said reply deferral line is not asserted; and
,(g) reordering said priority sequence of bus transactions in said pipeline queue upon the condition that said reply deferral line is asserted by said one agent on said bus corresponding to said highest priority slot in said pipeline queue to thereby permit said another agent corresponding to a bus transaction in a next lower priority slot of said pipeline queue to gain access to said bus.
2 Assignments
0 Petitions
Accused Products
Abstract
A data processor bus in which information is transferred between agents attached to the bus by issuing request packets that request data from an agent on the bus and reply packets that return data requested by a request packet. A control method mixes request-and-reply packets on the bus by determining the use of a next-bus cycle using arbitration, reply deferral, and specification lines and the state of a grant queue and a pipe queue in accordance with a specified protocol. A request is forced to take the next available bus cycle upon the condition that there is an agent identified in the great queue and the pipeline queue is not full. A reply packet is forced to take the next available bus cycle upon the condition that the pipeline queue is full. A reply packet is forced to take the next available bus cycle upon the condition that the grant queue is empty and the pipeline queue is not empty. Giving requests precedence over replies to allows the pipeline to be kept as full as possible. A replying agent assigned to the highest priority slot 1 in the pipeline queue is allowed to defer its own slot in the pipeline queue until a later time to thereby permit a transaction in Slot 2 of the pipeline queue to be completed before the one ahead of it.
68 Citations
4 Claims
-
1. In a data processor in which information is transferred between a plurality of agents attached to a bus by issuing request packets that request data from one of said agents on the bus and reply packets that return data requested by a request packet, a method of mixing request and reply packets on said bus by determining the use of a next-bus cycle using a state of arbitration lines from said agents on said bus, a state of a reply deferral line, and a state of a grant queue and a pipeline queue, said method including the steps of:
-
(a) placing representations corresponding to requests for access to said bus in said grant queue in an order determined by the state of said arbitration lines; (b) maintaining a pipeline queue of bus transactions where a first bus transaction of a highest priority corresponding to one agent is assigned a highest priority slot in said pipeline queue and a second bus transaction of a next highest priority corresponding to another agent is assigned a next lower priority slot in said pipeline queue, to thereby order said bus transactions in said pipeline queue in a priority sequence; (c) forcing a request packet to take a next available bus cycle upon the condition that there is an agent identified in said grant queue and said pipeline queue is not full; (d) forcing a reply packet to take a next available bus cycle upon the condition that said pipeline queue is full; (e) forcing a reply packet to take a next available bus cycle upon the condition that said grant queue is empty and said pipeline queue is not empty; (f) returning said reply packets in said priority sequence that said bus transactions are ordered in said pipeline queue upon the condition that said reply deferral line is not asserted; and
,(g) reordering said priority sequence of bus transactions in said pipeline queue upon the condition that said reply deferral line is asserted by said one agent on said bus corresponding to said highest priority slot in said pipeline queue to thereby permit said another agent corresponding to a bus transaction in a next lower priority slot of said pipeline queue to gain access to said bus. - View Dependent Claims (2, 3, 4)
-
Specification