Abstract An apparatus and method for improving the input/output performance of a computer system under the control of a multi-tasking, multi-threaded operating system. In particular, the invention provides an apparatus and method to chain contiguous DMA scatter gather sub blocks of a PRD table for channel 0 with contiguous DMA scatter gather sub blocks of a PRD table for channel 1, using a single data manager, while maintaining maximum media bandwidth. DMA block transfers are scheduled based on the availability of data from the I/O device's buffer memory, thus minimizing both media or network idle time as well as minimizing I/O bus idle time. Near maximum aggregate bandwidth of multiple I/O buses and their associated devices is obtained. The apparatus and method thus provides significant performance advantages over prior techniques having two I/O channel systems implemented with a single data manager.
A method for transferring blocks of data with a plurality of input/output (I/O) devices in a data processing system, comprising the step of: interleaving DMA block transfers responsive to data transfer availability of at least two of the plurality of I/O devices.
Claim 2
Independent Claim
42 words
A method for transferring blocks of data with a plurality of input/output (I/O) devices in a data processing system, comprising the step of: interleaving DMA block transfers responsive to data transfer availability of at least two of the plurality of I/O devices.
Claim 3
Dependent Claim
17 words
The method of claim 1 wherein the interleaving DMA block transfers step uses a single data manager.
Claim 4
Dependent Claim
25 words
The method of claim 1 wherein the interleaving DMA block transfers step is based on actual data availability from the I/O devices during a read.
Claim 5
Dependent Claim
23 words
The method of claim 1 wherein the interleaving DMA block transfers step is based on buffer availability within the I/O devices during writes.
Claim 6
Dependent Claim
29 words
The method of claim 1 wherein the interleaving DMA block transfers step is used to interface two channels of a first bus with a channel of a second bus.
Claim 7
Dependent Claim
28 words
The method of claim 1 wherein slow I/O devices are controlled responsive to a large number of table entries, each table entry having a small block transfer size.
Claim 8
Dependent Claim
28 words
The method of claim 1 wherein faster I/O devices are controlled responsive to a small number of table entries, each table entry having a large block transfer size.