Claims
- 1. A system, comprising:
a CPU; a memory coupled to the CPU via a host bus; and an adapter unit that couples a first peripheral bus to the host bus or a second peripheral bus, wherein the adapter unit has first and second interfaces that handle split transactions and wherein the adapter unit is configured to order the split transactions to allow multi-threaded transaction operations.
- 2. The system of claim 1 wherein the adapter unit further comprises read buffers and write buffers and wherein the adapter unit implements buffer sharing between said read buffers and write buffers to order a split read completion, a write transaction, and two successive write transactions.
- 3. The system of claim 2 wherein the split read completion and the write transactions are queued in a single buffer whereby the split read completion and the write transactions occur on the peripheral bus according to an order in which the split read completion and the write transactions originally occurred.
- 4. The system of claim 2 wherein the adapter unit further comprises a first set and second set of registers, wherein the first set of registers tracks information stored in the read buffers.
- 5. The system of claim 4 wherein the second set of registers tracks information stored in the write buffers.
- 6. The system of claim 5 wherein at least one of the sets of registers stores a write context register bit that indicates whether an entry associated with the write context register bit is a write transaction associated with the first interface or a read transaction associated with the second interface.
- 7. The system of claim 6 wherein at least one of the sets of registers stores read context register bits that indicate whether a single pending write transaction in the write buffer is ahead of a read transaction request in the read buffer.
- 8. The system of claim 7 wherein the read context register bits encode different values dependant upon properties of the read transactions and write transactions involved.
- 9. The system of claim 8 wherein the adapter unit further comprises a first multiplexer that selects a write master to provide data to the write buffers.
- 10. The system of claim 9 wherein the adapter unit further comprises a second multiplexer that selects a read slave to provide data to the write buffers.
- 11. The system of claim 10 wherein the adapter unit further comprises a third multiplexer that selectively allows one of a read master and a write master to access the write buffers.
- 12. The system of claim 11 wherein the adapter unit further comprises a fourth multiplexer that selectively forwards write buffer data to one of the first interface and the second interface.
- 13. An adapter unit, comprising:
a peripheral bus manager having a first interface and a second interface, wherein the first interface is configured to allow communication with application specific devices, and wherein the second interface is configured to perform protocol commands associated with the peripheral bus.
- 14. The adapter unit of claim 13 further comprising a read buffer and a write buffer that are both coupled to the first and second interfaces, wherein the first and second interfaces share the read buffer and the write buffer to allow split transactions and multi-threaded transactions.
- 15. The adapter unit of claim 14 further comprising:
a set of write context registers configured to track content of the write buffers; and a set of read context registers configured to track write contingency flags for the read buffers.
- 16. The adapter unit of claim 15 further comprising a plurality of multiplexers that select a write master to provide data to the write buffers, select a read slave to provide data to the write buffers, select one of a read master and a write master to access the write buffers, and forward write buffer data to one of the first interface and the second interface.
- 17. A method of ordering transactions that occur on a peripheral bus, the method comprising:
receiving a first write transaction associated with a first interface; receiving a second write transaction associated with the first interface; receiving a read transaction associated with the first interface; and adjusting write contingency flags to allow split read completion transactions and multi-threaded transactions to a second interface.
- 18. The method of claim 17 further comprising sharing read and write transaction information between multiple buffers to allow performance of the read and write transactions to occur in a predetermined order.
- 19. The method of claim 18 further comprising:
determining, if performance of the first and second write transactions has not started before receiving the read transaction, whether the read transaction is dependent on completion of at least one of the first and second write transactions; and performing, if the read transaction is not dependent on completion of the second write transaction, the first write transaction and the read transaction via the second interface before performing the second write transaction.
- 20. The method of claim 19 further comprising performing, if the read transaction is not dependent on completion of the second write transaction, the second write transaction before the read transaction only if the second write transaction is stored in a buffer before the read transaction.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of copending application Ser. No. 10/035,983, filed on Dec. 24, 2001, which is hereby incorporated by reference herein.
[0002] This application is related to U.S. Application entitled “Method And Apparatus For Ensuring Multi-Threaded Transaction Ordering In A Strongly Ordered Computer Interconnect,” filed on Dec. 24, 2001, Ser. No. 10/035,988.
Continuations (1)
|
Number |
Date |
Country |
Parent |
10035983 |
Dec 2001 |
US |
Child |
10864617 |
Jun 2004 |
US |