Memory Mapped I/O

Memory Mapped I/O

Memory Mapped I/O (MMIO) (deutsche Übertragungen wie speicherabgebildete Ein-/Ausgabe oder speicherbezogene Adressierung konnten sich bislang nicht durchsetzen) ist ein Verfahren zur Kommunikation einer Zentraleinheit mit Peripheriegeräten. Die I/O-Register von elektronischen Bauelementen, mit denen angeschlossene Hardware gesteuert wird, werden in den Hauptspeicher-Adressraum abgebildet. Der Zugriff auf die Bauelemente kann dann über übliche Speicherzugriffsroutinen geschehen. Es werden keine besonderen Befehle benötigt wie bei der Realisierung der Ein-/Ausgabe mittels I/O-Ports am Prozessor. Sind die Bauelemente in den Prozessor integriert (Mikrocontroller), ist Memory Mapped I/O der Regelfall. Das Gegenstück ist Port-Mapped I/O oder Isolated I/O – die Register der Bauelemente werden über eigene Portadressen in einem separaten I/O-Adressraum angesprochen.

Gegenüber einem separaten I/O-Bus besitzt Memory Mapped I/O den Vorteil, dass man in der Regel über Strukturen und Pointer aus einer Hochsprache wie C oder C++ vollständig auf die Hardware zugreifen kann, ohne Teile des Programms in Assembler bzw. Maschinensprache schreiben zu müssen. Der Nachteil besteht darin, dass ein Teil des Adressraums dadurch belegt wird und nicht mehr für echten Hauptspeicher genutzt werden kann. Somit verkleinert sich die maximale nutzbare Speichergröße, was vor allem bei Prozessoren mit kleinen Adressräumen problematisch sein kann.

Heute herrscht immer noch ein Nebeneinander von Memory- und Port-Mapped-Verfahren. Memory-Mapped-IO ist zwar eine Vereinfachung für die Softwareentwicklung, jedoch problematisch in Bezug auf die Konstruktion - insbesondere bei einem modularen Aufbau der Systeme. Memory-Mapped-IO wurde daher anfänglich im Wesentlichen bei Systemen mit festem Aufbau verwendet, etwa vielen 8-Bit-Rechnern und dem Commodore Amiga. Die bei Personal Computern dominierenden Intel-Prozessoren bieten zwar auch Port-Mapped I/O an, werden aber trotzdem mehr und mehr auch in Memory-Mapped-Umgebungen betrieben, um deren Vorteile auszunutzen, was dank der in der 64-Bit-Ära größer gewordenen Adressräume leichter umsetzbar ist.

Siehe auch: Isolated I/O, Direct Memory Access, Virtueller Speicher


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Memory mapped I/O — (deutsche Übertragungen wie speicherabgebildete Ein /Ausgabe oder speicherbezogene Adressierung konnten sich bislang nicht durchsetzen) ist ein Verfahren zur Kommunikation einer Zentraleinheit mit Peripheriegeräten. Die I/O Register von… …   Deutsch Wikipedia

  • Memory-mapped I/O — For more generic meanings of input/output port, see Computer port (hardware). MMIO redirects here. For the airport serving Saltillo, Mexico, assigned the ICAO code MMIO, see Plan de Guadalupe International Airport. Memory mapped I/O (MMIO) and… …   Wikipedia

  • Memory-mapped file — A memory mapped file is a segment of virtual memory which has been assigned a direct byte for byte correlation with some portion of a file or file like resource. This resource is typically a file that is physically present on disk, but can also… …   Wikipedia

  • Memory Mapped Graphics — Als Unified Memory Architecture (UMA) bezeichnet man Rechnerarchitekturen, in denen verschiedene Komponenten (z. B. die CPU und der Grafikprozessor) zusammen auf einem gemeinsamen Speicher arbeiten anstatt dedizierten Speicher zu besitzen. ... im …   Deutsch Wikipedia

  • Memory barrier — Memory barrier, also known as membar or memory fence or fence instruction, is a type of barrier and a class of instruction which causes a central processing unit (CPU) or compiler to enforce an ordering constraint on memory operations issued… …   Wikipedia

  • Memory type range register — Memory type range registers (MTRRs) are a set of processor supplementary capabilities control registers that provide system software with control of how accesses to memory ranges by the CPU are cached. It uses a set of programmable model specific …   Wikipedia

  • Memory Type Range Registers — (MTRRs) are control registers that provide system software with control of how accesses to memory ranges by the CPU are cached. It uses a set of programmable model specific registers (MSRs) which are special registers provided by most modern CPUs …   Wikipedia

  • Memory Mapping — Mit dem englischen Begriff memory mapping bezeichnet man in der Computertechnik die so genannte Speichereinblendung. Es gibt hierbei das memory mapped I/O und das Caching eines Datensatzes. Beim memory mapped I/O wird der externe Speicher einer… …   Deutsch Wikipedia

  • Memory mapping — In computing, memory mapping may refer to: Memory mapped file, also known as mmap() Memory mapped I/O, an alternative to port I/O; a communication between CPU and peripheral device using the same instructions, and same bus, as between CPU and… …   Wikipedia

  • Memory mapping — Mit dem englischen Begriff memory mapping bezeichnet man in der Computertechnik die so genannte Speichereinblendung. Es gibt hierbei das memory mapped I/O und das Caching eines Datensatzes. Beim memory mapped I/O wird der externe Speicher einer… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”