Programmed input–output: Difference between revisions

Content deleted Content added
The definition already cleared stated the term was a complement to DMA but excluded MMIO entirely.
Line 2:
'''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.
 
For programmed I/O, the software that is running on the CPU uses instructions that access I/O address space to perform data transfers to or from an I/O device ([[memory-mapped I/O]]).<ref>Computer Organization and Architecture 9th Edition. Stallings, William. Pearson, 2012</ref>
This is in contrast to [[Direct Memory Access]] (DMA) transfers.
The term ''Programmed I/O'' can refer to either MMIO or PMIO.
Port-mapped I/O (PMIO) refers to a special address space outside of normal memory that is accessed with instructions such as IN and OUT.
Memory-mapped I/O (MMIO) refers to I/O devices being allocated addresses inside the normal Von Neumann address space that is used for program and data. Such I/O is done using instructions such as LOAD and STORE. 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 [[AT Attachment|ATA]] interface;