Patent ID: 6163820
Filing Date: 2000-12-19
Classification: G06F

Abstract:
In a computer system having a processor, a memory and a system bus for connecting an input/output (I/O) device to said memory and processor, a method for transferring data between non-contiguous buffers in the memory and the I/O device comprising the steps:defining a descriptor queue (DQ) in the memory having a base address (DescrBase) and an n descriptor capacity (DescrCount);at initialization storing in the I/O device the DescrBase and the DescrCount and storing a third value DescrCurrent which at initialization equals the value of the DescrBase;building 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;examining the DescrEnq value for a non-zero condition and fetching 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; andreading in memory and transferring across the system bus the buffers specified by the fetched descriptors.