Programmed input–output: Difference between revisions

Content deleted Content added
m Reverted 1 edit by 2405:204:E38D:D08A:0:0:2A04:F8AC (talk) to last revision by Shellwood (TW)
Line 1:
{{Refimprove|date=June 2013}}
'''Programmed input/output''' ('''PIO''') is a method of [[data transfer|transferring data]] between the [[Central processing unit|CPU]] and a peripheral, such as a [[network adapter]] or an [[AT Attachment|ATA]] storage device. Each data item transfer is initiated by an instruction in the program, involving the CPU for every transaction. In contrast, in [[Direct Memory Access]] (DMA) operations, the CPU is not involved in the data transfer.
 
The term ''Programmed I/O'' can refer to either [[Memory-mapped I/O|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 IN and OUT in [[x86]] architectures. MMIO<ref>Computer Organization and Architecture 9th Edition. Stallings, William. Pearson, 2012</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.