Memory Mapped I/O

Memory Mapped I / O ( MMIO ) ( German transmissions such as memory-mapped or memory mapped addressing Ein-/Ausgabe could not yet prevail ) is a method of communicating with a central unit peripherals. The I / O register of electronic components with connected hardware which is controlled, are mapped to the main memory address space. Access to the components can then take place over the usual memory access routines. There are no special instructions required, as in the realization of the Ein-/Ausgabe using I / O ports on the processor. Are the components integrated into the processor (microcontroller ), memory mapped I / O is the norm. The counterpart is port - mapped I / O or Isolated I / O - the registers of the devices are addressed via different port addresses in a separate I / O space.

Compared to a separate I / O bus has memory mapped I / O has the advantage that you can fully access the hardware usually about structures and pointers from a high level language such as C or C, with no parts of the program write in assembly or machine language need to. The disadvantage is that part of the address space is occupied by and can no longer be used for real memory. Thus, the maximum usable memory size, which can be problematic, especially for processors with small address spaces smaller.

Today there is still a juxtaposition of memory and port -mapped method. Memory -mapped I / O is indeed a simplification of the software development, however, is problematic in terms of construction - in particular for a modular construction of the system. Memory-mapped I / O was therefore initially used mainly in systems with solid construction, such as many 8 -bit computers and the Commodore Amiga. Although the dominant personal computers Intel processors also offer port - mapped I / O, but still be more and more operated in memory-mapped environments, in order to exploit their advantages, what greater in the 64- bit era, thanks to become address spaces is easier to implement.

See also: Isolated I / O, Direct Memory Access, Virtual Memory

  • Operating system theory
  • Computer Architecture
  • Interface
563517
de