Browse Prior Art Database

Software Interface for Asynchronous Data Transfers

IP.com Disclosure Number: IPCOM000115348D
Original Publication Date: 1995-Apr-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 4 page(s) / 202K

Publishing Venue

IBM

Related People

Ratcliff, BH: AUTHOR

Abstract

Disclosed is a software interface which can be used to control the data movement operations performed by a Direct Memory Access (DMA) type device. This software interface is easily adaptable to any type of operating system and can be used to take advantage of many different types of DMA devices. By using the software interface, data latency can be reduced and parallel processing can occur.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 26% of the total text.

Software Interface for Asynchronous Data Transfers

      Disclosed is a software interface which can be used to control
the data movement operations performed by a Direct Memory Access
(DMA) type device.  This software interface is easily adaptable to
any type of operating system and can be used to take advantage of
many different types of DMA devices.  By using the software
interface,
data latency can be reduced and parallel processing can occur.

Problem Description - Many hardware devices exist today which can be
used by a program to move data from one memory location to another.
These devices include the microprocessor, DMA devices and the
Microchannel Interface Controller (MIC).  The microprocessor is very
efficient at moving data, but this requires many cycles which could
be more efficiently used for processing instructions.  The key to
higher performance is to use the microprocessor for as few data
movement operations as possible.

      The DMA and MIC devices are more efficient at moving data.
They do require some microprocessor intervention, but this is mainly
for setup and completion type operations.  By using the DMA and MIC
devices, the microprocessor is free to process instructions while the
DMA and MIC devices are transferring data.  To achieve maximum
performance, the microprocessor should always be interrupted by the
DMA or MIC device when a data transfer completes and the next data
transfer operation needs to be setup.  This will keep the parallel
operation of the microprocessor and the DMA or MIC device at its
maximum level.  It will also reduce the latency of the data
transfers.

      The software implementation of the microprocessor and DMA or
MIC interaction can be very complex because all the operations are
occurring asynchronously.  The means of associating the information
needed to determine which data operation just completed when the
microprocessor is interrupted by the DMA or MIC device is not clearly
defined.  An easily adaptable interface needs to be defined so
everyone can take advantage of the new hardware devices which can be
used to move data.  By defining a simple interface which is very
efficient, the overall performance of a hardware platform containing
these DMA or MIC devices can be maximized.  Also, the coding time
needed for the implementation is kept at a minimum once the interface
is clearly defined.

      Following is the definition of this new software interface.  It
will describe the structures needed to associate the completion of a
data movement operation with the original request.  An actual
implementation using the software interface will be described in
detail.

Software Interface Definition - Three key problems need to be
addressed when using asynchronous data movement devices like the DMA
and MIC:
  1.  Data latency - how long it takes data to pass through the
       hardware platform
  2.  Parallel processing - maximizing the use of the DMA and MIC
...