Skip navigation

Data Transfer Methods

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.

Hide comments

Comments

  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Publish