Browse Prior Art Database

Transparent Addition of DMA Support to Existing Parallel Port Abios Interface

IP.com Disclosure Number: IPCOM000102362D
Original Publication Date: 1990-Nov-01
Included in the Prior Art Database: 2005-Mar-17
Document File: 3 page(s) / 129K

Publishing Venue

IBM

Related People

Doria, DJ: AUTHOR [+3]

Abstract

This article describes the transparent addition in a computer system of direct memory access (DMA) support to the existing parallel port advanced basic input/output system (ABIOS) interface.

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

Transparent Addition of DMA Support to Existing Parallel Port Abios Interface

       This article describes the transparent addition in a
computer system of direct memory access (DMA) support to the existing
parallel port advanced basic input/output system (ABIOS) interface.

      Conventionally, parallel port ABIOS is geared toward programmed
input/output (PIO).  This means that only one character per interrupt
is processed.  DMA allows multiple characters per interrupt to be
processed without processor intervention.  DMA reduces parallel port
performance problems attributed to interrupt latency.  To take
advantage of this performance enhancement, functionality has been
added to the existing parallel port ABIOS.

      A way to incorporate DMA transfers into the exiting print block
interface without requiring existing device drivers to change is
disclosed herein.  New device drivers, as well as old well behaved
device drivers, can call the existing print block function and gain
the benefit DMA has to offer.

      Two existing parallel port ABIOS functions are key elements to
the method of this disclosure: return logical ID parameters (LID)
(function hex 01) and print block (function hex 09).

      Device drivers normally call the return LIDs function to obtain
information specific to a device (i.e., interrupt level, arbitration
level, request block length, etc.). Prior to the advent of DMA, the
parallel port return LIDs function returned a flag that indicated
that only a logical data pointer was necessary for calls to parallel
port ABIOS. Now that DMA is supported, this function returns a flag
indicating that both a physical and a logical pointer are required.

      Device drivers that follow the ABIOS architecture and use this
information to dynamically determine what pointers are necessary must
send both pointer values to parallel port ABIOS.  These drivers will
get DMA transfers when possible and will automatically default to PIO
transfers when DMA is not possible.  Device drivers that do not
follow the ABIOS architecture and do not use this information to
dynamically determine what pointers are necessary will send only the
logical pointer value to parallel port ABIOS.  These device drivers
will always get PIO transfers with no gain (or loss) in performance.

      The print block function incorporates logic to determine what
types of pointers are presented to the ABIOS. If the logical pointer
field is a non-zero value, then this pointer is deemed present.
Likewise, if the physical pointer field is a non-zero value, then
this pointer is deemed present.  This is consistent with the existing
interface since the physical pointer field is a reserved field and,
as such, must be set to zero by any device driver th...