Memory Management Unit

Aus Kefk

Wechseln zu: Navigation, Suche

Bei der Memory Management Unit (MMU), auch Speicherverwaltungseinheit, handelt es sich um eine Funktionseinheit von Mikroprozessoren, die zum Zugriff auf den Arbeitsspeicher oder sonstige Hardware das Übersetzen von virtuellen Adressen in physische Adressen bewerkstelligt. Sie ermöglicht damit den Zugriff auf den gesamten virtuellen Adressraum, den ein Betriebssystem mit Hilfe der virtuellen Speicherverwaltung zur Verfügung stellt.

MMUs waren ursprünglich als externe Zusatzkomponente für Mikroprozessoren konzipiert. Sie sind heute jedoch in die meisten Hochleistungsprozessoren integriert. Bei Verwendung einer Harvard-Architektur existieren sogar zwei verschiedene MMUs innerhalb des Prozessors - eine für den Befehls- und eine für den Datenspeicher. Anwendungen für eingebettete Prozessoren und Microcontroller können meist auf eine Adressübersetzung verzichten, dementsprechend beinhaltet der größte Teil der Prozessoren für diesen Einsatzbereich keine MMU.

Funktionsprinzip

Bild:MMU principle.png
Prinzipschaubild einer MMU

Jede durch einen Prozess angeforderte virtuelle Adresse wird zuerst durch die Memory Management Unit in eine physikalische Adresse umgerechnet, bevor sie auf den Adressbus geschrieben wird. Die MMU verfügt über spezielle Cache-Speicher, den Translation Lookaside Buffer, welcher jeweils die letzten Adressübersetzungen in Form einer Tabelle abspeichert. Darüber hinaus enthält die MMU spezielle schnelle Register (wie etwa für Basisadressen und Offsets), um die Adressberechnung so effizient wie möglich ausführen zu können. Man unterscheidet die möglichen Arten der Adressübersetzung (engl.: address translation) nach der Art der verwendeten Seitentabellen. Den Mechanismus der Übersetzung von logischen Adressen in physikalische Adressen bezeichnet man auch als Paging. Bezeichnend ist, dass einer logischen Adresse nicht unbedingt eine physikalische zugeordnet sein muss. Wird eine solche Adresse angesprochen, erfolgt ein sogenannter Seitenfehler, woraufhin das Betriebssystem beispielsweise in eine Festplattendatei ausgelagerte Daten laden kann; dieser Vorgang läuft für eine Applikation transparent ab. Man spricht hier von Speichervirtualisierung. Die MMU regelt im Übrigen auch Speicherschutzaufgaben. So können einzelne Speicherbereiche für die Ausführung von Code oder zum weiteren Beschreiben gesperrt werden.

Siehe auch

Persönliche Werkzeuge