Content deleted Content added
Jerryobject (talk | contribs) WP:LINKs: updates, adds, fix-cut needless WP:PIPEs (WP:NOPIPEs). MOS:FIRSTABBReviations define before WP:ABBRs. WP:LEAD section clarify for topic novices. |
Spiral6800 (talk | contribs) |
||
(16 intermediate revisions by 14 users not shown) | |||
Line 1:
{{Short description|Method of CPU communication with peripheral devices}}
{{Refimprove|date=June 2013}}
'''Programmed input–output''' (also '''programmable input/output''', '''programmed input/output''', '''programmed I/O''', '''PIO''') is a method of [[data transmission]], via [[input/output]] (I/O), between a [[central processing unit]] (CPU) and a [[peripheral]] device,<ref
The term can refer to either [[memory-mapped I/O]] (MMIO) or port-mapped I/O (PMIO). PMIO refers to transfers using a special [[address space]] outside of normal memory, usually accessed with dedicated instructions, such as <samp>IN</samp> and <samp>OUT</samp> in [[x86]] architectures. MMIO<ref>{{cite book |last=Stallings |first=William |date=2012 |title=Computer Organization and Architecture |edition=9th |publisher=Pearson}}</ref> refers to transfers to I/O devices that are mapped into the normal address space available to the program. PMIO was very useful for early microprocessors with small address spaces, since the valuable resource was not consumed by the I/O devices.
The best known example of a PC device that uses programmed I/O is the Parallel AT Attachment (
== PIO mode in the ATA interface ==
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 — 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 [[Ultra Direct Memory Access]] (
Two additional advanced timing modes have been defined in the [[CompactFlash]] specification 2.0. Those are PIO modes 5 and 6. They are specific to CompactFlash.
Line 54 ⟶ 55:
=== PIO Mode 5 ===
A PIO Mode 5 was proposed<ref name="ATA Timing Extension For ATA-3">{{cite web |url=https://www.t10.org/ftp/t10/document.95/95-122r0.pdf |title=Proposed 22 MByte/Sec ATA Timing Extension for ATA-3 |first=Joseph |last=Chen |date=January 10, 1995 |publisher=Technical Committee T10 (X3T10) |work=T10.org |archive-url= https://web.archive.org/web/20100620052300/https://www.t10.org/ftp/t10/document.95/95-122r0.pdf |archive-date=June 20, 2010 |url-status=live |access-date=February 19, 2020}}</ref> 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 [[Direct memory access|DMA]] standard ultimately obviated it. While no [[hard disk drive]] was 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
== See also ==
Line 69 ⟶ 70:
{{DEFAULTSORT:Programmed input output}}
[[Category:Input/output]]
[[Category:AT Attachment]]
|