Data Transfer Methods
IDE and SCSI controllers can use any of three data transfer methods to move data to and from system memory.
May 31, 1997
IDE and SCSI controllers can use any of three data transfer methods to move data to andfrom system memory. The first method, Programmed I/O (PIO), relies entirely on the host PC's CPU toconduct data back and forth between the controller and memory. Although PIO is cheap and easilyimplemented because it requires no special hardware, PIO-based disk I/O heavily taxes the host CPUand makes it unsuitable for multitasking environments such as Windows NT, UNIX, and NetWare. Allimplementations of the IDE/ATA specification can use PIO, whereas very few SCSI controllers (Adaptecis an exception) ever employ this method.
The other two methods of data transfer, which are more sophisticated than PIO, are known asthird-party DMA and first-party DMA. Direct memory access (DMA) uses specialhardware, either on the host system's motherboard or on a controller card, to facilitate thetransfer 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, thespecialized 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 firstparty, the drive controller, and the second party, the system's RAM. The various flavors of IDE/ATAsupport several third-party DMA transfer methods. Most SCSI adapters employ the DMA transfer methodbut 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 thecontroller to directly transfer data to and from system RAM without requiring intervention by thehost system's CPU or third-party DMA controller. This technology transfers data much faster thaneither PIO or third-party DMA because Bus Mastering DMA requires about half as many bus cycles. BothPIO and third-party DMA require the CPU or DMA controller to alternate between reading a word ofdata from one device and writing to the other. Each word of data transferred requires two buscycles: one for reading the data from the source and one for writing it to the target. Bus MasteringDMA, in contrast, requires bus cycles only when data is reading or writing to system RAM, thushalving the number of required bus cycles. In addition, the Bus Mastering device can access systemRAM using high-speed methods such as page mode access. Bus Mastering DMA capabilities translate tosignificantly higher throughput and lower CPU utilization. Almost all SCSI controllers employ BusMastering DMA for data transfer, but only later-model IDE/ATA controllers (such as those found onthe Triton chipset-based Pentium motherboards and all Pentium Pro motherboards) can use BusMastering DMA for data transfers.
DMA and Bus Mastering DMA aren't limited to drive controllers--other types of adapters, such asnetwork interface cards, can also employ these methods to transfer their data to and from RAM. Whenyou configure a system, avoid using a lot of Bus Mastering DMA peripherals, which can causecontention problems that result in system lockups, instability, or data loss. Your hardware vendorcan tell you the maximum number of Bus Mastering devices your system can handle.
About the Author
You May Also Like