Programmed Input/Output (PIO) Modes
PIO is a means of data transfer that requires the CPU to intermediate data exchanges between the drive and memory. This dependence on the CPU places unnecessary demands on it and slows CPU performance under multitasking operating systems. Accordingly, modern drives and interfaces substitute DMA modes, described later, to provide high-speed data transfer. PIO modes remain important, however, when connecting older drives to newer interfaces or vice versa. Table 13-1 lists PIO modes, not all of which are supported by all drives and all interfaces.
Table 13-1. ATA PIO modes
PIO mode |
Cycle time |
Transfer rate |
Revision |
---|---|---|---|
PIO-0 |
600 ns |
3.3 MB/s |
ATA |
PIO-1 |
383 ns |
5.2 MB/s |
ATA |
PIO-2 |
330 ns |
8.3 MB/s |
ATA |
PIO-3 |
180 ns |
11.1 MB/s |
ATA-2 |
PIO-4 |
120 ns |
13.3 MB/s |
ATA-2 |
PIO-5 |
90 ns |
22.2 MB/s |
Never implemented |
PIO Modes 0, 1, and 2 are not used on recent systems except to support older drives. Using PIO Mode 3 or 4 provides reasonably fast transfer rates, but requires that the drive support the IORDY line for hardware flow control. If the interface delivers data faster than a PIO Mode 3 or 4 drive can accept it, the drive de-asserts IORDY to notify the interface to stop delivering data. Running a drive that does not support IORDY on an interface configured for PIO Mode 3 or 4 may appear to work, but risks corrupting data. If you are not certain that your drive supports PIO Mode 3 or 4, configure the interface to use PIO Mode 2.
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.