IDE/ATA Data Transfer Modes

To understand ATA data transfer modes, it’s necessary to understand something about how data is read from and written to the hard drive. Real-mode operating systems such as 16-bit Windows and DOS make read and write requests to the BIOS, which passes the command to the drive. Protected-mode operating systems such as Windows NT/2000/XP and Linux bypass the real-mode BIOS and use their own protected-mode I/O subsystems to accomplish the same purpose.

Data transfer commands are controlled by the BIOS or I/O subsystem, but execution speed—and therefore data transfer rate—is determined by the strobe frequency of the ATA interface hardware. The time needed to complete one full cycle, measured in nanoseconds (ns), is called the cycle time for the interface. A shorter cycle time allows more cycles to be completed in a given period, and therefore provides a higher data transfer rate. For example, a 600 ns cycle time yields 1.66 million cycles/second. Because each cycle transfers one word (16 bits or two bytes), a 600 ns cycle time translates to a data transfer rate of 3.33 MB/s.

ATA supports two data transfer modes, called Programmed Input/Output (PIO) mode and Direct Memory Access (DMA) mode. Both of these have several submodes that use different cycle times and have different data transfer rates. When an ATA interface interrogates a modern drive with the Identify Drive command, the drive returns its model, geometry, and a list of the PIO and DMA modes it supports, ...

Get PC Hardware in a Nutshell, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.