Transnational Research Associates

 

Direct Memory Access

 

A. Madsen, M.Ed. and V. Sanchez, B.A.

 

Data Transferal Facilitated

 

With the advent of computers and rapid data interchange, it is of vital importance to understand the sophisticated software tools readily available to users.  One such system tool, generally used with Windows platforms, is known as “Direct Memory Access.” This paper will focus on the dynamics and applicability of this high-tech software innovation, and intends to explain its capabilities.

 

Direct Memory Access is a rapid method of transferring data within computers and in some cases between computers.  Some computer bus architectures provide this capability and allow information to be transmitted from an attached device to the memory on the computer’s motherboard.  For example, data can be read from a Local Area Network (LAN) adapter board or disk drive and subsequently transmitted into the PC’s memory, in either direction.  In the contemporary world, DMA’s are used most often by floppy disk drives, tape drives, and sound cards.  Their use is limited, due to the fact that conflicts with DMA channels in many systems are extremely difficult to analyze and troubleshoot.

DMA Channels

 

It is important to understand why DMA channels were initially invented.  DMAs were conceived and designed as a means of minimizing and streamlining the activities performed by a computer’s processor.  In earlier PC’s, the processor handled all operations, including, but not limited to: running programs and transferring data to and from peripherals.  This led to slower and inefficient processing of system operations.  DMA’s provided a channel for peripherals to transfer data themselves without the processor handling every aspect of the transfer, thus increasing overall system performance.

 

Third-Party/First-Party DMA

 

Standard DMA, also known as third-party DMA, and first-party DMA (Bus Mastering) represent the two primary types of direct memory access.  Third-Party DMA generally is used in situations when the DMA controller performer is, in reality, executing the transfer and the first two parties are the sender and receiver.  On the other hand, First-Party is utilized when the peripheral performing the transfer takes full control of the system bus to perform the transfer of data.

 

There are, of course, a number of limitations to standard DMA.  Standard DMA, initially did improve system performance, but eventually reached an impasse.  For earlier PC’s with 10 MB hard disks DMA’s were a viable and valuable performer.  It is generally recognized that DMA’s cannot handle modern hard disks with 8 GB and above, which transfer multiple megabytes per second.  First-Party DMA (Bus Mastering) and/or programmed I/O (PIO) are now the choice on newer machines.  These two tools provide the necessary bandwidth for high performance systems.

 

The Characteristics of Multiple Devices

 

There are, however, conflicts and issues associated with DMA’s.  DMA channels are single resources and combining two devices in one channel simultaneously creates information mix-up.  As mentioned earlier, diagnosing a DMA system problem is very difficult.

 

One solution to this problem consists of sharing a DMA channel with multiple devices.  To do so, two devices that are seldom or never simultaneously used may be shared in a single DMA channel.  Again, this may lead to system problems, but they can often be avoided by providing a separate channel for each device.

 

Creating a special problem for DMAs is the fact that most devices require the use of DMA channels numbered 0-3.  Channels 5-7 are not heavily used due to the fact that they require 16 bit cards for their use.  Channel 0 is never available and Channel 2 is used for the floppy disk controller, leaving a limited number of channels available.

 

DMAChannel

Availability of Bus Line

Typical Default Use

0

no

Memory Refresh

1

8/16-bit

Sound card (low DMA)

2

8/16-bit

Floppy disk controller

3

8/16-bit

None

4

no

None; cascade for DMAs 0-3

5

16-bit only

Sound card (high DMA)

6

16-bit only

None

7

16-bit only

None

Adapted from: Kozierok, C., DMA Channel Function and Operation, 1997.

The foregoing table, derived from (Kozierok, 1997) offers a description of DMA channels in a typical modern computer.

Conclusion

 

By understanding the dynamics of DMA capabilities and being aware of their strengths and weaknesses, the user can enhance performance criteria for his or her PC whether used for personal purposes or for business.  The information provided above can applied to the specific needs and requirements of the user for improvement of system performance and efficiency.

 

References Consulted

Kozierok, C., “DMA Channel Function and Operation”, PC Guide, New York, NY, 1997.

………………… “Direct Memory Access”, O’Riley and Associates, San Francisco, CA, 1996.