P
USRE38641EExpiredUtilityPatentIndex 81

Isochronous channel having a linked list of buffers

Assignee: APPLE COMPUTERPriority: Apr 1, 1996Filed: Aug 17, 2001Granted: Oct 26, 2004
Est. expiryApr 1, 2016(expired)· nominal 20-yr term from priority
Inventors:STAATS ERIK PLASH ROBIN D
H04N 5/765H04L 12/40195H04L 12/40065H04N 21/443H04N 21/43632H04N 5/77H04L 12/40058H04L 12/40123H04N 5/775
81
PatentIndex Score
12
Cited by
16
References
18
Claims

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-modified
What 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, each buffer comprising a data field for storing the isochronous data and a condition field for storing condition data to be evaluated against a condition;  
       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 said listener client loading the isochronous data into the linked list of buffers, and evaluating the condition data in the condition field of each buffer to determine a next one of the buffers from which to next access isochronous data.  
     
     
       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  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;  
       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;  
       transmitting said isochronous data from said sender client to said linked list of buffers across said isochronous channel; and  
       receiving said isochronous data at said linked list of buffers by 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, each buffer comprising a data field for storing the isochronous data and a condition field for storing condition data to be evaluated against a condition, 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, and said listener client loading the isochronous data into the linked list of buffers and evaluating the condition data in the condition field of each buffer to determine a next one of the buffers from which to next access isochronous data. 
     
     
       9. A computer system, comprising: 
       an isochronous channel having a linked list of buffers configured to receive isochronous data transmitted within said computer system, each buffer comprising a data field for storing the isochronous data and a condition field for storing condition data to be evaluated against a condition;  
       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 said listener client loading the isochronous data into the linked list of buffers and evaluating the condition data in the condition field of each buffer to determine a next buffer from which to next access isochronous data; and 
       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 computer readable medium for handling of real time data transmitted on an isochronous channel within a computer system, the computer readable medium comprising: 
       a linked list of buffers, each buffer comprising a data field for storing the isochronous data, a condition field for storing condition data to be evaluated against a condition; a first pointer field for storing a first pointer to one of the buffers from which isochronous data is to be next accessed in response to the condition data satisfying the condition; and a second pointer field for storing a second pointer to one of the buffers from which isochronous data is to be next accessed in response to the condition data not satisfying the condition; and  
       a program, executable on the computer system for receiving the isochronous data from a source device, loading the isochronous data into the linked list of buffers, evaluating the condition data in the condition field of each buffer to determine if the condition data satisfies the condition, and responsively using either the first pointer or the second pointer to next access isochronous data from one of the buffers.  
     
     
       13. The computer readable medium of  claim 12 , wherein each buffer further comprises: 
       a pointer to a channel handler for performing a procedure on the buffer data prior to output of the data from the computer system.  
     
     
       14. The computer readable medium of  claim 13  wherein the channel handler converts the isochronous data in the buffer from a first color space to a second color space.  
     
     
       15. The computer readable medium of  claim 13  wherein the channel handler decompresses the isochronous data in the buffer.  
     
     
       16. The computer readable medium of  claim 12  wherein the computer system comprises: 
       a frame buffer for receiving from the program the isochronous data read from the buffers in accordance with the evaluation of the condition fields, for display of the isochronous data on a display device.  
     
     
       17. A computer implemented process for handling of real time data transmitted on an isochronous channel within a computer system, the method comprising: 
       establishing a linked list of buffers for receiving isochronous data from a source device, each buffer comprising a data field for storing the isochronous data, a condition field for a storing condition data to be evaluated against a condition; a first pointer field for storing a first pointer to one of the buffers from which isochronous data is to be next accessed in response to the condition data satisfying the condition; and a second pointer field for storing a second pointer to one of the buffers from which isochronous data is to be next accessed in response to the condition data not satisfying the condition; and  
       receiving the isochronous data from the source device;  
       loading the isochronous data into the linked list of buffers;  
       accessing the data in the linked list of buffers for output to a client device by:  
       evaluating the condition data of each buffer to determine if the condition data satisfies the condition; and  
       responsive to whether the condition data satisfies the condition, using the first pointer or second pointer to access a next buffer.  
     
     
       18. The method of  claim 1 , wherein each buffer further comprises a first pointer field for storing a first pointer to one of the buffers from which isochronous data is to be next accessed in response to the condition data satisfying the conditions, and a second pointer field for storing a second pointer to one of the buffers from which isochronous data is to be next accessed in response to the condition data not satisfying the condition, and wherein said evaluating comprises determining if the condition data satisfies the condition, and responsively using either the first pointer or the second pointer to next access isochronous data from one of the buffers.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.