Programmed input/output


Programmed input/output

Programmed input/output (PIO) is a method of transferring data between the CPU and a peripheral such as a network adapter or an ATA storage device.

In general, programmed I/O happens when software running on the CPU uses instructions that access I/O address space to perform data transfers to or from an I/O device. This is contrast to Direct Memory Access (DMA) transfers.

The best known example of a PC device that uses programmed I/O is the ATA interface; however, this interface can also be operated in any of several DMA modes. Many older devices in a PC also use PIO, including legacy serial ports, legacy parallel ports when not in ECP mode, the PS/2 keyboard and mouse ports, legacy MIDI and joystick ports, the interval timer, and older network interfaces.

PIO mode in the ATA interface

Until the advent of DMA, PIO was the only method possible.

The PIO interface is grouped into different modes that correspond to different transfer rates. The electrical signaling among the different modes is similar -- only the cycle time between transactions is reduced in order to achieve a higher transfer rate. All ATA devices support the slowest mode -- Mode 0. By accessing the information registers (using Mode 0) on an ATA drive, the CPU is able to determine the maximum transfer rate for the device and configure the ATA controller for optimal performance.

The PIO modes require a great deal of CPU overhead to configure a data transaction and transfer the data. Because of this inefficiency, the DMA (and eventually UDMA) interface was created to increase performance. 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 like in embedded systems, or with FPGA chips where PIO mode can be used without significant performance loss.

Two additional Advanced Timing modes have been defined in the CompactFlash specification 2.0. Those are PIO mode 5 and PIO mode 6. They are specific to CompactFlash.

The modes are given below:

PIO Mode 5

A PIO Mode 5 was proposed with operation at 22 MB/s, but was never implemented on hard disks because CPUs of the time would have been crippled waiting for the hard disk at the proposed PIO 5 timings, and the DMA standard ultimately obviated it. While no hard drives were ever manufactured to support this mode, some motherboard manufacturers preemptively provided BIOS support for it. PIO Mode 5 can be used with CompactFlash cards connected to IDE via CF-to-IDE adapters.

Device compatibility

Not all devices are compatible with the official PIO timings. An example is the Sandisk SDDR-89 ImageMate 12-in-1 card reader which uses the GL819 chip from Genesys Logic. That chip has slightly different timings for most of its PIO Modes.

See also

* WDMA - Single/Multiword DMA
* ATA - ATA specification
* Input/output
* Interrupt
* List of device bandwidths
* CompactFlash


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Programmed Input/Output — (auch bekannt als Programmable Input/Output, kurz PIO) ist ein Regelwerk zur Steuerung des Datenaustauschs zwischen dem Prozessor und den Peripheriegeräten, insbesondere ATA Geräten, eines Computers. Der Prozessor kann dabei mittels Lese und… …   Deutsch Wikipedia

  • Programmed Input Output — Programmed Input/Output (auch bekannt als Programmable Input/Output, kurz PIO) ist ein Regelwerk zur Steuerung des Datenaustauschs zwischen dem Prozessor und den Peripheriegeräten eines Computers. Der Prozessor kann dabei mittels Lese und… …   Deutsch Wikipedia

  • Programmed Input/Output — Programmed Input/Output,   PIO …   Universal-Lexikon

  • Input/Output — Die Ein /Ausgabe (abgekürzt E/A; engl. Input/Output; kurz I/O) ist ein Bereich der EDV. Als Bestandteil des Eingabe Verarbeitung Ausgabe Prinzips und der Von Neumann Architektur ist er ein zentraler Bestandteil der Informatik. Inhaltsverzeichnis… …   Deutsch Wikipedia

  • Programable Input Output — Programmed Input/Output (auch bekannt als Programmable Input/Output, kurz PIO) ist ein Regelwerk zur Steuerung des Datenaustauschs zwischen dem Prozessor und den Peripheriegeräten eines Computers. Der Prozessor kann dabei mittels Lese und… …   Deutsch Wikipedia

  • Programmable Input Output — Programmed Input/Output (auch bekannt als Programmable Input/Output, kurz PIO) ist ein Regelwerk zur Steuerung des Datenaustauschs zwischen dem Prozessor und den Peripheriegeräten eines Computers. Der Prozessor kann dabei mittels Lese und… …   Deutsch Wikipedia

  • PIO — • programmed input/output …   Maritime acronyms and abbreviations

  • Original Chip Set — The Original Chip Set (OCS) was a chipset used in the earliest Commodore Amiga computers and defined the Amiga s graphics and sound capabilities. It was succeeded by the slightly improved Enhanced Chip Set (ECS) and greatly improved Advanced… …   Wikipedia

  • PIO — Public Information Officer (Community » Educational) ** Programmed Input Output (Computing » General) ** Programmed Input Output (Computing » Hardware) ** Programmed Input/Output (Computing » Drivers) * Person Of Indian Origin (Community » Law) * …   Abbreviations dictionary

  • List of computing and IT abbreviations — This is a list of computing and IT acronyms and abbreviations. Contents: 0–9 A B C D E F G H I J K L M N O P Q R S T U V W X Y …   Wikipedia