<P> Memory - mapped I / O (MMIO) and port - mapped I / O (PMIO) (which is also called isolated I / O) are two complementary methods of performing input / output (I / O) between the central processing unit (CPU) and peripheral devices in a computer . An alternative approach is using dedicated I / O processors, commonly known as channels on mainframe computers, which execute their own instructions . </P> <P> Memory - mapped I / O uses the same address space to address both memory and I / O devices . The memory and registers of the I / O devices are mapped to (associated with) address values . So when an address is accessed by the CPU, it may refer to a portion of physical RAM, or it can instead refer to memory of the I / O device . Thus, the CPU instructions used to access the memory can also be used for accessing devices . Each I / O device monitors the CPU's address bus and responds to any CPU access of an address assigned to that device, connecting the data bus to the desired device's hardware register . To accommodate the I / O devices, areas of the addresses used by the CPU must be reserved for I / O and must not be available for normal physical memory . The reservation may be permanent, or temporary (as achieved via bank switching). An example of the latter is found in the Commodore 64, which uses a form of memory mapping to cause RAM or I / O hardware to appear in the $D000 - $DFFF range . </P> <P> Port - mapped I / O often uses a special class of CPU instructions designed specifically for performing I / O, such as the in and out instructions found on microprocessors based on the x86 and x86 - 64 architectures . Different forms of these two instructions can copy one, two or four bytes (outb, outw and outl, respectively) between the EAX register or one of that register's subdivisions on the CPU and a specified I / O port which is assigned to an I / O device . I / O devices have a separate address space from general memory, either accomplished by an extra "I / O" pin on the CPU's physical interface, or an entire bus dedicated to I / O. Because the address space for I / O is isolated from that for main memory, this is sometimes referred to as isolated I / O . </P> <P> Different CPU - to - device communication methods, such as memory mapping, do not affect the direct memory access (DMA) for a device, because, by definition, DMA is a memory - to - device communication method that bypasses the CPU . </P>

Explain what memory-mapped i/o is and how it works