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
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;
|