abstract |
A bus interface unit includes multiple pointer queues coupled to a random-access transaction buffer. The transaction buffer stores address and data information for each requested bus transaction, and the pointer queues store pointers to the transaction information stored in the transaction buffer. The bus interface unit uses the pointers to order the transactions stored in the random-access transaction buffer. In one preferred embodiment, one pointer queue is used to store pointers for order dependent transactions, and another pointer queue is used to store pointers for non-order dependent transactions. In some embodiments, when an issued transaction is deferred by its target, the deferred transaction's information is maintained in the transaction buffer. Additionally, a method is provided for storing address, data, and ordering information for requested bus transactions. The address and data information for requested transactions is stored as entries in a random-access buffer. Additionally, pointers to the entries in the random-access buffer are formed, and the ordering information for the bus transactions is stored by maintaining the pointers in ordered buffers. In a preferred method, pointers for order dependent transactions are maintained in one ordered buffer, and pointers for non-order dependent transactions are maintained in another ordered buffer. |