Claims
- 1. A method of ordering interconnect transactions in a computer system having a plurality of nodes, comprising the steps of:
(a) receiving an interconnect transaction from an interconnect interface, the interconnect interface operating according to an interconnect protocol; (b) identifying a transaction type of the interconnect transaction; (c) enqueueing the interconnect transaction as a queued transaction on a transaction ordering queue (TOQ), imposing a stricter ordering on the interconnect transaction than an interconnect-protocol-imposed ordering; (d) dequeueing the queued transaction from the TOQ as a dequeued transaction; (f) if the dequeued transaction is of a second transaction type, scheduling the dequeued transaction for a destination node of the plurality of nodes; (g) if the dequeued transaction is of a first transaction type and no transactions are active for any of the plurality of nodes other than the destination node, scheduling the dequeued transaction for the destination node; and (h) if the dequeued transaction is of the first transaction type and any transactions are active for any of the plurality of nodes other than the destination node, blocking the dequeued transaction from scheduling and blocking the execution of step (d) until no transactions are active for any of the plurality of nodes other than the destination node.
- 2. The method of claim 1, step (a) comprising the step of:
buffering the dequeued transaction in a buffer of a plurality of buffers; and if the interconnect transaction is of the second transaction type and no transactions of the first transaction type are in the TOQ and no transactions of the first type are awaiting scheduling in any of the plurality of buffers, bypassing step (c)-(d) and handling the interconnect transaction as a dequeued transaction, wherein steps (f) and (g) schedule the dequeued transaction from the plurality of buffers.
- 3. The method of claim 1, wherein the interconnect interface operates according to the PCI-X extension of the PCI protocol.
- 4. The method of claim 3, wherein the second transaction type is a relaxed ordering type transaction type and the first transaction type is a non-relaxed ordering transaction type.
- 5. The method of claim 1, step (g) comprising the steps of:
(g1) counting dequeued transactions scheduled for the destination node; and (g2) counting dequeued transactions completed on the destination node.
- 6. The method of claim 5,
step (g1) comprising the step of:
updating a counter associated with the destination node to indicate the dequeued transaction has been scheduled for the destination node; step (g2) comprising the step of:
updating the counter to indicate the dequeued transaction has been completed on the destination node.
- 7. The method of claim 6,
step (g1) comprising the step of:
incrementing the counter; step (g2) comprising the step of:
decrementing the counter, wherein no transactions are active for any of the plurality of nodes other than the destination node if the counter associated with each of the plurality of nodes other than the destination node is zero, and wherein the counter associated with each of the plurality of nodes is initialized to zero.
- 8. The method of claim 6,
step (g1) comprising the step of:
decrementing the counter; step (g2) comprising the step of:
incrementing the counter, wherein no transactions are active for any of the plurality of nodes other than the destination node if the counter associated with each of the plurality of nodes other than the destination node is a maximum value, and wherein the counter associated with each of the plurality of nodes is initialized with the maximum value.
- 9. A system for ordering interconnect transactions in a computer system with a plurality of nodes, comprising:
an interconnect interface, coupled to an interconnect operating according to an interconnect protocol; a transaction ordering queue (TOQ), coupled to the interconnect interface, adapted to queue interconnect transactions as queued transactions of a first transaction type and a second transaction type, imposing a stricter ordering on the interconnect transactions than an interconnect-protocol-imposed ordering, further adapted to dequeue queued transactions as dequeued transactions; a scheduler, adapted to schedule a dequeued transaction from the TOQ; a plurality of buffers, the plurality of buffers coupled to the TOQ and the scheduler and adapted to buffer interconnect transactions for scheduling by the scheduler for a destination node of the plurality of nodes; circuitry to send the dequeued transaction to the scheduler from the plurality of buffers; and circuitry to block the dequeued transaction from the scheduler if the dequeued transaction is of the first transaction type and any interconnect transactions are active on any of the nodes of the plurality of nodes other than the destination node.
- 10. The system of claim 9, the circuitry to send the dequeued transaction to the scheduler from the plurality of buffers comprising:
a plurality of counters, each of the plurality of counters associated with one of the plurality of nodes, each of the plurality of counters adapted to count active transactions scheduled on the associated node; circuitry to update the counter associated with the destination node of the dequeued transaction when the dequeued transaction is scheduled by the scheduler for the destination node; and circuitry to update the counter associated with the destination node when any dequeued transaction is completed by the destination node.
- 11. The system of claim 10,
wherein the circuitry to update the counter associated with the destination node increments the counter, and wherein the circuitry to update the counter associated with the destination node when any dequeued transaction is completed by the destination node decrements the counter.
- 12. The system of claim 10,
wherein the circuitry to update the counter associated with the destination node decrements the counter, and wherein the circuitry to update the counter associated with the destination node when any dequeued transaction is completed by the destination node increments the counter.
- 13. The system of claim 9,
wherein the interconnect protocol allows interconnect transactions of the second transaction type to pass interconnect transactions of the first transaction type and interconnect transactions of the second transaction type, and wherein interconnect transactions of the second transaction type enqueued in the TOQ can not pass interconnect transactions of the first transaction type enqueued in the TOQ.
- 14. The system of claim 9, the TOQ comprising:
circuitry to queue interconnect transactions in a first-in-first-out (FIFO) queue; and circuitry to dequeue a queued transaction from the FIFO queue.
- 15. The system of claim 9,
wherein the interconnect protocol is the PCI-X extension to the PCI protocol, wherein interconnect transactions of the second transaction type have the Relaxed Ordering attribute set in an attribute phase of the interconnect transactions, and wherein interconnect transactions of the first transaction type have the Relaxed Ordering attribute unset in the attribute phase of the interconnect transactions.
- 16. The system of claim 9, wherein interconnect transactions of the second transaction type are not enqueued in the TOQ if no interconnect transactions of the first transaction type are in the plurality of buffers and no interconnect transactions of the first transaction type are in the TOQ.
- 17. The system of claim 9, wherein the interconnect interface, the TOQ, the scheduler, and the plurality of buffers are implemented in an application-specific integrated circuit (ASIC).
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The following related patent applications are hereby incorporated by reference as if set forth in their entirety:
[0002] U.S. patent application Ser. No. 09/749,111, entitled “Relaxed Read Completion Ordering in a System Using a Transaction Order Queue,” filed Dec. 26, 2000;
[0003] U.S. patent application Ser. No. 09/779,424, entitled “Enhancement to Transaction Order Queue,” filed Feb. 8, 2001;
[0004] U.S. patent application Ser. No. 10/038,844, entitled “System to Optimally Order Cycles Originating from a Single Physical Link,” filed Dec. 31, 2001;
[0005] U.S. patent application Ser. No. 10/039,130, entitled “Inter-Queue Ordering Mechanism,” filed Dec. 31, 2001; and
[0006] U.S. patent application Ser. No. 10/______, entitled “Method and Apparatus for Ordering Interconnect Transactions in a Computer System,” filed concurrently, Attorney Docket No. H052617.1289.