Patent ID: 6049842
Filing Date: 2000-04-11
Classification: G06F

Abstract:
In a computer system having a processor, a memory and a system bus for connecting an input/output (I/O) device through a single channel I/O adapter to said memory and processor, a method for transferring data between non-contiguous buffers in the memory and the single channel I/O adapter comprising the steps:defining with a device driver a descriptor queue (DQ) in the memory having a base address (DescrBase) and an n descriptor capacity (DescrCount);at initialization using said device driver to store in the I/O device the DescrBase, the DescrCount and a third value DescrCurrent which at initialization equals the value of the DescrBase;building with the device driver one or more descriptors in the DQ, each corresponding to a different one of the data buffers, said descriptors including at least the starting address of the buffer and a byte count;adding the number of descriptors built to a descriptor enqueue (DescrEnq) value maintained at the I/O device;using a state machine to examine the DescrEnq value for a non-zero condition and fetching with said state machine a number of descriptors from the DQ corresponding to the DescrEnq value starting at the address specified by the DescrCurrent value and incrementing the DescrCurrent value and decrementing the DescrEnq value each time a descriptor is fetched; andusing the state machine to read in memory and to transfer across the system bus the buffers specified by the fetched descriptors.