Claims
- 1. A method comprising:
scheduling an isochronous transaction in service period N, which is one of a plurality of service periods that comprise a flow of information over a half duplex link between a first device and a second device, if the isochronous transaction is ready to be serviced before service period N at one of the first device and the second device; and scheduling, in service period N, an asynchronous transaction ready to be serviced at one of the first device and the second device if no isochronous transaction is ready to be serviced before service period N.
- 2. The method of claim 1, wherein scheduling an asynchronous transaction comprises:
scheduling an asynchronous transaction ready to be serviced at the first device if no asynchronous transaction is ready to be serviced at the second device; scheduling an asynchronous transaction ready to be serviced at the second device if no asynchronous transaction is ready to be serviced at the first device; and scheduling an asynchronous transaction ready to be serviced at one of the first device and the second device, according to an arbitration algorithm, if asynchronous transactions are ready to be serviced at both the first device and the second device.
- 3. The method of claim 2, wherein the arbitration algorithm schedules asynchronous transactions ready to be serviced at the first device and the second device alternately.
- 4. The method of claim 2, wherein the arbitration algorithm schedules asynchronous transactions based on available buffer space in at least one of the first device and the second device.
- 5. The method of claim 1, wherein the first device comprises an Input Output (IO) device and the second device comprises a memory controller.
- 6. The method of claim 5, wherein isochronous transactions comprise isochronous memory read and write transactions and asynchronous transactions comprise asynchronous memory read and write transactions.
- 7. The method of claim 1, wherein an isochronous transaction requested in service period N is scheduled in service period N+1.
- 8. The method of claim 1, wherein the arbitration algorithm is executed at an arbitration unit coupled to both the first device and the second device.
- 9. The method of claim 1, wherein the arbitration algorithm is executed at both (1) a first arbitration unit associated with the first device and (2) a second arbitration unit associated with the second device.
- 10. An apparatus to schedule transactions over a half duplex link between a first device and a second device, information flowing over the half duplex link being divided into a plurality of service periods, comprising:
a communication port configured to communicate with one of the first device and the second device; and an arbitration unit coupled to said communication port and configured to (1) schedule an isochronous transaction in service period N if the isochronous transaction is ready to be serviced before service period N at one of the first device and the second device and (2) schedule, in service period N, an asynchronous transaction ready to be serviced at one of the first device and the second device if no isochronous transaction is ready to be serviced before service period N.
- 11. The apparatus of claim 10, further comprising:
a second communication port configured to communicate with the other of the first device and the second device.
- 12. The apparatus of claim 10, wherein the first device comprises an Input Output (IO) device and the second device comprises a memory controller.
- 13. The apparatus of claim 10, wherein isochronous transactions comprise isochronous memory read and write transactions and asynchronous transactions comprise asynchronous memory read and write transactions.
- 14. The apparatus of claim 10, wherein an isochronous transaction requested in service period N is scheduled in service period N+1.
- 15. The apparatus of claim 10, wherein said arbitration unit is configured to schedule an asynchronous transaction by (a) scheduling an asynchronous transaction ready to be serviced at the first device if no asynchronous transaction is ready to be serviced at the second device; (b) scheduling an asynchronous transaction ready to be serviced at the second device if no asynchronous transaction is ready to be serviced at the first device; and (c) scheduling an asynchronous transaction ready to be serviced at one of the first device and the second device, according to an arbitration algorithm, if asynchronous transactions are ready to be serviced at both the first device and the second device.
- 16. The apparatus of claim 15, wherein the arbitration algorithm schedules asynchronous transactions ready to be serviced at the first device and the second device alternately.
- 17. The apparatus of claim 15, wherein the arbitration algorithm schedules asynchronous transactions based on available buffer space in at least one of the first device and the second device.
- 18. A memory system, comprising:
an Input Output (IO) unit; a memory controller; a half duplex link coupled between said IO unit and said memory controller, information flowing over said half duplex link being divided into a plurality of service periods; and an arbitration unit coupled between said IO unit and said memory controller, said arbitration unit being configured to (1) schedule an isochronous transaction in service period N if the isochronous transaction is ready to be serviced before service period N at one of said IO unit and said memory controller and (2) schedule, in service period N, an asynchronous transaction ready to be serviced at one of said IO unit and said memory controller if no isochronous transaction is ready to be serviced before service period N.
- 19. The system of claim 18, wherein said arbitration unit is configured to schedule an asynchronous transaction by (a) scheduling an asynchronous transaction ready to be serviced at the first device if no asynchronous transaction is ready to be serviced at the second device; (b) scheduling an asynchronous transaction ready to be serviced at the second device if no asynchronous transaction is ready to be serviced at the first device; and (c) scheduling an asynchronous transaction ready to be serviced at one of the first device and the second device, according to an arbitration algorithm, if asynchronous transactions are ready to be serviced at both the first device and the second device.
- 20. A memory system, comprising:
an Input Output (IO) unit; a memory controller; a half duplex link coupled between said IO unit and said memory controller, information flowing over the half duplex link being divided into a plurality of service periods; a first arbitration unit associated with said IO unit and configured to (1) schedule an isochronous transaction in service period N if the isochronous transaction is ready to be serviced before service period N at one of said IO unit and said memory controller and (2) schedule, in service period N, an asynchronous transaction ready to be serviced at one of said IO unit and said memory controller if no isochronous transaction is ready to be serviced before service period N; and a second arbitration unit associated with said memory controller and configured to (1) schedule an isochronous transaction in service period N if the isochronous transaction is ready to be serviced before service period N at one of said IO unit and said memory controller and (2) schedule, in service period N, an asynchronous transaction ready to be serviced at one of said IO unit and said memory controller if no isochronous transaction is ready to be serviced before service period N.
- 21. The system of claim 20, wherein each of said first and second arbitration units are configured to schedule an asynchronous transaction by (a) scheduling an asynchronous transaction ready to be serviced at the first device if no asynchronous transaction is ready to be serviced at the second device; (b) scheduling an asynchronous transaction ready to be serviced at the second device if no asynchronous transaction is ready to be serviced at the first device; and (c) scheduling an asynchronous transaction ready to be serviced at one of the first device and the second device, according to an arbitration algorithm, if asynchronous transactions are ready to be serviced at both the first device and the second device.
- 22. An article of manufacture comprising a computer-readable medium having stored thereon instructions adapted to be executed by a processor, the instructions which, when executed, cause the processor to perform:
scheduling an isochronous transaction in service period N, which is one of a plurality of service periods that comprise a flow of information over a half duplex link between a first device and a second device, if the isochronous transaction is ready to be serviced before service period N at one of the first device and the second device; and scheduling, in service period N, an asynchronous transaction ready to be serviced at one of the first device and the second device if no isochronous transaction is ready to be serviced before service period N.
- 23. The article of claim 22, wherein scheduling an asynchronous transaction comprises:
scheduling an asynchronous transaction ready to be serviced at the first device if no asynchronous transaction is ready to be serviced at the second device; scheduling an asynchronous transaction ready to be serviced at the second device if no asynchronous transaction is ready to be serviced at the first device; and scheduling, in service period N, an asynchronous transaction ready to be serviced at one of the first device and the second device, according to an arbitration algorithm, if asynchronous transactions are ready to be serviced at both the first device and the second device.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present invention is a continuation-in-part of U.S. patent application Ser. No. 09/110,344, entitled “Architecture for the Isochronous Transfer of Information Within a Computer System,” to John I. Gamey and Brent S. Baxter, filed on Jul. 6, 1998 and assigned to Intel Corporation.