Jump to content

Programmed input–output

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 132.239.153.114 (talk) at 02:22, 17 September 2003. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

The Programmed Input/Output (PIO) interface was the original method used to transfer data between the CPU (through the IDE controller) and an IDE/ATA device. All ATA/IDE devices had to support the slowest mode - Mode 0. By accessing the information registers (using Mode 0) on an IDE/ATA drive, the CPU is able to determine the maximum transfer rate for the device. Using this speed information, the CPU configures the IDE controller to access the IDE/ATA device at the correct speed (usually the fastest it can support).

The PIO modes require a great deal of CPU overhead to configure the interface and transfer the data. Because of this overhead, a more efficient way was created to perform the data transfers - DMA. But, the simple digital logic required to implement a PIO transfer still makes this transfer method useful today (especially if high transfer rates are not required).

The modes are given below:

PIO Modes
ModeMaximum Transfer Rate (MB/s)Standard Where Spec Was Defined
Mode 03.3ATA
Mode 15.2ATA
Mode 28.3ATA
Mode 311.1ATA-2
Mode 416.7ATA-2