IDE and SCSI controllers can use any of three data transfer methods to move data to and
from system memory. The first method, Programmed I/O (PIO), relies entirely on the host PC's CPU to
conduct data back and forth between the controller and memory. Although PIO is cheap and easily
implemented because it requires no special hardware, PIO-based disk I/O heavily taxes the host CPU
and makes it unsuitable for multitasking environments such as Windows NT, UNIX, and NetWare. All
implementations of the IDE/ATA specification can use PIO, whereas very few SCSI controllers (Adaptec
is an exception) ever employ this method.
The other two methods of data transfer, which are more sophisticated than PIO, are known as
third-party DMA and first-party DMA. Direct memory access (DMA) uses special
hardware, either on the host system's motherboard or on a controller card, to facilitate the
transfer of data to and from system memory without involving the CPU.
Third-party DMA is the less expensive, lower performance DMA method. In third-party DMA, the
specialized hardware that transfers data is the DMA controller chip found on all PC motherboards.
The DMA controller is called the third party because it transfers data between the first
party, the drive controller, and the second party, the system's RAM. The various flavors of IDE/ATA
support several third-party DMA transfer methods. Most SCSI adapters employ the DMA transfer method
but use first-party DMA rather than third-party DMA.
First-party DMA, the faster DMA transfer method, is also known as Bus Mastering DMA.
In Bus Mastering DMA, the DMA controller chip is built onto the drive controller and enables the
controller to directly transfer data to and from system RAM without requiring intervention by the
host system's CPU or third-party DMA controller. This technology transfers data much faster than
either PIO or third-party DMA because Bus Mastering DMA requires about half as many bus cycles. Both
PIO and third-party DMA require the CPU or DMA controller to alternate between reading a word of
data from one device and writing to the other. Each word of data transferred requires two bus
cycles: one for reading the data from the source and one for writing it to the target. Bus Mastering
DMA, in contrast, requires bus cycles only when data is reading or writing to system RAM, thus
halving the number of required bus cycles. In addition, the Bus Mastering device can access system
RAM using high-speed methods such as page mode access. Bus Mastering DMA capabilities translate to
significantly higher throughput and lower CPU utilization. Almost all SCSI controllers employ Bus
Mastering DMA for data transfer, but only later-model IDE/ATA controllers (such as those found on
the Triton chipset-based Pentium motherboards and all Pentium Pro motherboards) can use Bus
Mastering DMA for data transfers.
DMA and Bus Mastering DMA aren't limited to drive controllers--other types of adapters, such as
network interface cards, can also employ these methods to transfer their data to and from RAM. When
you configure a system, avoid using a lot of Bus Mastering DMA peripherals, which can cause
contention problems that result in system lockups, instability, or data loss. Your hardware vendor
can tell you the maximum number of Bus Mastering devices your system can handle.