Method and apparatus for managing dependencies between split transaction queues

Information

  • Patent Application
  • 20070198751
  • Publication Number
    20070198751
  • Date Filed
    February 03, 2006
    18 years ago
  • Date Published
    August 23, 2007
    17 years ago
Abstract
A method and apparatus are provided for managing dependencies between split command and data transactions. A command transaction is written into a command array. A data transaction is written into a data array. A marker is defined for both command transactions and data transactions, and a marked command counter is maintained. Marked data will not be sent unless the older commands have been sent. A data header is marked if the previous transaction written was a command, and a command is marked if the previous transaction written was data. The marked command counter maintains a count of marked commands sent relative to sending marked data.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention together with the above and other objects and advantages may best be understood from the following detailed description of the preferred embodiments of the invention illustrated in the drawings, wherein:



FIG. 1 is a schematic diagram representation illustrating a chip including interface apparatus for implementing methods for managing dependencies between split command and data transaction queues in accordance with the preferred embodiment; and



FIGS. 2, 3, 4, and 5 illustrates exemplary operations of the chip interface apparatus of FIG. 1 for managing dependencies between split command and data transaction queues in accordance with the preferred embodiment.


Claims
  • 1. A method for managing dependencies between split command and data transactions comprising the steps of: receiving command transactions from a split-transaction serial link and writing the command transactions into a command array;receiving data transactions from the split-transaction serial link and writing the data transactions into a data array;defining a marker for marking both command transactions and data transactions,maintaining a marked command counter of each marked command sent relative to sending marked data; andsending the marked data after each older command transaction has been sent.
  • 2. A method for managing dependencies between split command and data transactions as recited in claim 1 wherein defining a marker for marking both command transactions and data transactions includes when receiving commands, receiving a data header, marking the data header and writing the data header into a data array, whereby a data header is marked if the previous transaction written was a command.
  • 3. A method for managing dependencies between split command and data transactions as recited in claim 1 wherein defining a marker for marking both command transactions and data transactions includes when receiving data headers, receiving a command, marking the command and writing the command into the command array, whereby a command is marked if the previous transaction written was a data header.
  • 4. A method for managing dependencies between split command and data transactions as recited in claim 1 wherein defining a marker for marking both command transactions and data transactions includes receiving and marking the data header following a command transaction containing a snoop response.
  • 5. A method for managing dependencies between split command and data transactions as recited in claim 1 wherein maintaining a marked command counter of each marked command sent relative to sending marked data includes providing a maximum counter value equal to a number of entries in the data array.
  • 6. A method for managing dependencies between split command and data transactions as recited in claim 5 wherein maintaining a marked command counter of each marked command sent relative to sending marked data includes providing an initial counter value of zero.
  • 7. A method for managing dependencies between split command and data transactions as recited in claim 6 wherein maintaining a marked command counter of each marked command sent relative to sending marked data includes incrementing a count in the marked command counter with each marked command sent.
  • 8. A method for managing dependencies between split command and data transactions as recited in claim 7 wherein maintaining a marked command counter of each marked command sent relative to sending marked data includes decrementing the count in the marked command counter with each marked data sent.
  • 9. A method for managing dependencies between split command and data transactions as recited in claim 1 wherein the marked data is not sent unless a counter value of the marked command counter is greater than zero or the command array is empty.
  • 10. Apparatus for managing dependencies between split command and data transactions comprising: a split function having a first state for receiving command transactions and for writing the command transactions into a command array;said split function having second state for receiving data transactions and for writing the data transactions into a data array;said split function for defining a marker for marking respective command transactions and data transactions responsive to a transition between said first state and said second state;a marked command counter for maintaining a count of each marked command sent relative to sending marked data; andsaid data array for sending marked data responsive to each older command transaction being sent.
  • 11. Apparatus for managing dependencies between split command and data transactions as recited in claim 10 wherein said split function when receiving commands in said first state, receives a data header, the data header is marked and written into the data array, whereby the data header is marked only with a previous transaction of writing a command transaction into the command array.
  • 12. Apparatus for managing dependencies between split command and data transactions as recited in claim 10 wherein said split function when receiving data transactions in said second state, receiving a command, marking the command and writing the command into the command array, whereby a command is marked only with a previous transaction of writing a data transaction into the data array.
  • 13. Apparatus for managing dependencies between split command and data transactions as recited in claim 10 wherein said split function for defining marker includes receiving and marking a data transaction only following a command containing a snoop response.
  • 14. Apparatus for managing dependencies between split command and data transactions as recited in claim 10 wherein said marked command counter includes an initial counter value of zero.
  • 15. Apparatus for managing dependencies between split command and data transactions as recited in claim 10 wherein said marked command counter includes a maximum counter value equal to a number of entries in the data array.
  • 16. Apparatus for managing dependencies between split command and data transactions as recited in claim 10 wherein said count of said marked command counter is incremented with each marked command sent from the command array.
  • 17. Apparatus for managing dependencies between split command and data transactions as recited in claim 10 wherein said count of said marked command counter is decremented with each marked data sent from the data array.
  • 18. Apparatus for managing dependencies between split command and data transactions as recited in claim 10 wherein said data array for sending marked data responsive to a counter value of said marked command counter being greater than zero and said data array for sending marked data responsive to command array being empty.