Isochronous channel having a linked list of buffers
Abstract
A computer system consists of a plurality of nodes, each with an associated local host, coupled together with a plurality of point-to-point links. An isochronous data channel is established within the computer system between a first subset of the plurality of nodes. The isochronous data channel includes a linked list of buffers which are used as temporary storage locations for data transmitted on the isochronous data channel. Each node which is part of the isochronous data channel is configured as a sender or a receiver and data transmissions are commenced. The presence of isochronous data in the channel generates an interrupt which signals a central processing unit (CPU) that data is available. The data is transferred to an associated location within the linked list of buffers and the CPU then moves on to other tasks. In other embodiments, data is transferred using DMA techniques rather than interrupt driven events. Buffers can also be used to transmit isochronous data.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method comprising:
configuring an isochronous channel within a computer system to include a linked list of buffers configured to receive isochronous data transmitted within said computer system;
adding a sender client configured to transmit said isochronous data to said isochronous channel, said sender client being a software driver routine associated with a sender node of said computer system, and providing said sender client with a channel identifier; and
adding a listener client to said isochronous channel, said listener client being a software driver routine associated with a listener node of said computer system, by providing said listener client with said channel identifier; and
initiating a DMA transfer to transfer isochronous data into a buffer of the linked list of buffers without interrupting a processor of the computer system.
2. The method of claim 1 further comprising adding said sender client as a further listener client.
3. The method of claim 1 wherein configuring said isochronous channel comprises executing computer readable instructions on a central processing unit of said computer system.
4. The method of claim 1 wherein said isochronous channel comprises a data path within said computer system.
5. The method of claim 1 further comprising transmitting isochronous data from said sender client to said linked list of buffers across said isochronous channel.
6. The method of claim 5 further comprising receiving said isochronous data at said linked list of buffers.
7. The method of claim 6 wherein said receiving comprises interrupting a central processing unit of said computer system and transferring said isochronous data from a port coupled to said central processing unit to said linked list of buffers.
8. A sequence of computer-readable instructions embodied on a computer-readable medium comprising instructions arranged to cause a processor to configure an isochronous channel within a computer system including said processor to include a linked list of buffers configured to receive isochronous data transmitted within said computer system and to cause said processor to add a sender client to said isochronous channel and to cause said processor to add a listener client to said isochronous channel, the instructions further arranged to cause the processor to transfer isochronous data into a buffer of the linked list of buffers by initiating a DMA transfer without interrupting the processor.
9. A computer system, comprising:
an isochronous channel having a linked list of buffers configured to receive isochronous data transmitted within said computer system;
a sender client associated with said isochronous channel and configured to transmit said isochronous data, said sender client being a software driver routine associated with a sender node of said computer system; and
a listener client associated with said isochronous channel and configured to receive said isochronous data, said listener client being a software driver routine associated with a listener node of said computer system; and
DMA hardware configured to transfer isochronous data into a buffer of the linked list of buffers by initiating a DMA transfer,
wherein said sender client has an associated channel identifier that is provided to said listener client.
10. The computer system of claim 9 wherein said sender client comprises a further listener client.
11. The computer system of claim 9 wherein said isochronous channel comprises a data path within said computer system.
12. A method comprising:
establishing an isochronous channel within a computer system to receive isochronous data transmitted from a first device driver to a second device driver; by the first device driver, adding a sender client configured to transmit the isochronous data to the isochronous channel and providing the sender client with a channel identifier; passing a reference to the channel identifier from the first device driver to the second device driver; and by the second device driver, adding a listener client to the isochronous channel by providing the listener client with the channel identifier.
13. The method of claim 12, wherein a central processing unit of the computer system is not part of the established isochronous channel.
14. The method of claim 12, further comprising:
transferring isochronous data from the first driver to the second driver without interrupting a central processing unit of the computer system.
15. The method of claim 12, wherein the isochronous channel is established by a central processing unit of the computer system.
16. The method of claim 12, wherein the sender client is a software driver routine associated with a sender node of the computer system, and the listener client is a software driver routine associated with a listener node of the computer system.
17. The method of claim 12, further comprising:
adding the sender client as a further listener client.
18. The method of claim 12, wherein establishing the isochronous channel comprises executing computer readable instructions on a central processing unit of the computer system.
19. The method of claim 12, wherein the isochronous channel comprises a data path within the computer system.
20. A sequence of computer-readable instructions embodied on a computer-readable storage medium comprising:
instructions arranged to cause a processor to establish an isochronous channel within a computer system to receive isochronous data transmitted from a first device driver to a second device driver; instructions arranged to cause the first device driver to add a sender client configured to transmit the isochronous data to the isochronous channel and provide the sender client with a channel identifier; instructions arranged to cause the first device driver to pass a reference to the channel identifier to the second device driver; and instructions arranged to cause the second device driver to add a listener client to the isochronous channel by providing the listener client with the channel identifier.
21. The sequence of computer-readable instructions of claim 20, wherein the instructions arranged to cause a processor to establish an isochronous channel are arranged so that a central processing unit of the computer system is not part of the established isochronous channel.
22. The sequence of computer-readable instructions of claim 20, further comprising:
instructions arranged to transfer isochronous data from the first driver to the second driver without interrupting a central processing unit of the computer system.
23. The sequence of computer-readable instructions of claim 20, wherein the processor is a central processing unit of the computer system.
24. The sequence of computer-readable instructions of claim 20, wherein the sender client is a software driver routine associated with a sender node of the computer system, and the listener client is a software driver routine associated with a listener node of the computer system.
25. The sequence of computer-readable instructions of claim 20, further comprising:
instructions arranged to cause the first device driver to add the sender client as a further listener client.
26. The sequence of computer-readable instructions of claim 20, wherein the isochronous channel comprises a data path within the computer system.
27. A computer system, comprising:
an isochronous channel configured to receive isochronous data transmitted within the computer system from a first device driver to a second device driver; a first device driver associated with a first device, the first device driver configured to add a sender client configured to transmit the isochronous data to the isochronous channel and provide the sender client with a channel identifier, the first device driver further configured to pass a reference to the channel identifier to the second device driver; and a second device driver associated with a second device, the second device driver configured to add a listener client to the isochronous channel by providing the listener client with the channel identifier.
28. The computer system of claim 27, wherein a central processing unit of the computer system is not part of the isochronous channel.
29. The computer system of claim 27, wherein the first device driver is configured to transfer isochronous data to the second driver without interrupting a central processing unit of the computer system.
30. The computer system of claim 27, wherein the sender client is a software driver routine associated with a sender node of the computer system, and the listener client is a software driver routine associated with a listener node of the computer system.
31. The computer system of claim 27, wherein the sender client comprises a further listener client.
32. The computer system of claim 27, wherein the isochronous channel comprises a data path within the computer system.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.