Content deleted Content added
No edit summary |
Magioladitis (talk | contribs) m Removing invisible Unicode character/ Replacing hard spaces See WP:CHECKWIKI error #16 fix + other fixes, replaced: → (2) using AWB (10326) |
||
Line 1:
{{Refimprove|date=June 2013}}
'''Programmed input/output''' ('''PIO''') is a method of transferring data between the [[Central processing unit|CPU]] and a peripheral, such as a network adapter or an [[AT Attachment|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 in contrast to [[Direct Memory Access]] (DMA) transfers.
The best known example of a PC device that uses programmed I/O is the [[AT Attachment|ATA]] interface;
Line 17:
Until the introduction of [[Direct memory access|DMA]], PIO was the only available method.
The PIO interface is grouped into different modes that correspond to different [[transfer rate]]s. The [[electrical signal]]ing among the different modes is similar
The PIO modes require a great deal of CPU overhead to configure a data transaction and transfer the data. Because of this inefficiency, the [[Direct memory access|DMA]] (and eventually [[AT Attachment|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 [[Field-programmable gate array|FPGA]] chips where PIO mode can be used without significant performance loss.
Line 67:
=== 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, Inc.]] That chip has slightly different timings for most of its PIO Modes.
{| class="wikitable" style="text-align:center"
|