Warum braucht Linux MMU?

WBOY
WBOYOriginal
2022-08-17 17:45:262692Durchsuche

Weil mmu zur Unterstützung der virtuellen Speicherverwaltung verwendet werden kann; mmu ist die Abkürzung für „Memory Management Unit“, die Steuerschaltung zur Verwaltung des virtuellen Speichers und des physischen Speichers im Zentralprozessor, die auch für die virtuelle Speicherverwaltung verantwortlich ist Adresszuordnung Stellt Hardwaremechanismen zum Gewähren des Speicherzugriffs auf physische Adressen bereit.

Warum braucht Linux MMU?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Warum braucht Linux mmu

Denn moderne Betriebssysteme verwenden im Allgemeinen einen Mechanismus zur virtuellen Speicherverwaltung (Virtual Memory Management), der Unterstützung durch die MMU (Memory Management Unit) im Prozessor erfordert.

MMU (Memory Management Unit): Speicherverwaltungseinheit, die in der Zentraleinheit (CPU) zur Verwaltung des virtuellen Speichers und des physischen Speichers verwendet wird. Sie ist auch für die Zuordnung virtueller Adressen zu physischen Adressen und die Bereitstellung von Hardwaremechanismen verantwortlich für den Speicher.

Die Hauptfunktion der Speicherverwaltungseinheit (MMU) ist die Umwandlung virtueller Adressen (virtuelle Speicheradressen) in physische Adressen (physikalische Adressen). Darüber hinaus können Speicherschutz, Cache-Steuerung, Busarbitrierung und Bankumschaltung implementiert werden.

Arbeitsmechanismus

Warum braucht Linux MMU?

Die CPU übergibt die angeforderte virtuelle Adresse an die MMU. Anschließend sucht die MMU zunächst nach der Übersetzungsbeziehung im Cache-TLB (Translation Lookaside Buffer) und prüft, ob die entsprechende physische Adresse vorhanden ist Wenn es nicht gefunden wird, wird es in der Adressübersetzungstabelle (Übersetzungstabelle) gesucht und berechnet.

Virtuelle Adresse

Die moderne Speicherverwaltungseinheit unterteilt den virtuellen Adressraum (den vom Prozessor verwendeten Adressbereich) in Seiten. Die Seitengröße beträgt 2 hoch n-tel, normalerweise einige KB. Die virtuelle Adresse ist also in zwei Teile unterteilt: virtuelle Seitennummer und Offset.

Warum braucht Linux MMU?

Seitentabelleneintrag (Seitentabelleneintrag)

Der Eintrag, der die in der Seitentabelle gefundene physische Seitentabellennummer aus der obigen virtuellen Seitennummer speichert, ist der Seitentabelleneintrag (PTE). PTE belegt im Allgemeinen eine Länge von 1 Wort und enthält nicht nur die physische Seitennummer, sondern auch das Rewrite-Flag-Bit (Dirty Bit), das Zugriffskontrollbit (Accessed Bit) und den Prozesstyp, der das Lesen und Schreiben ermöglicht (Benutzer-/Supervisor-Modus). , ob zwischengespeichert und zugeordnet werden kann (die letzten beiden Ziffern von PTE).

Mapping

Mapping-Methode

Es gibt zwei Mapping-Methoden: Segment-Mapping und Seiten-Mapping. Die Segmentzuordnung verwendet nur die Seitentabelle der ersten Ebene, und die Seitenzuordnung verwendet die Seitentabelle der ersten Ebene und die Seitentabelle der zweiten Ebene.

Mapping-Granularität

Es gibt zwei Mapping-Granularitäten für die Segmentzuordnung, 1M-Abschnitt und 16M-Supersection; Zu den Mapping-Granularitäten für die Seitenzuordnung gehören 4K-Kleinseite, 64K-Großseite und die veraltete 1K-Kleinseite.

Warum braucht Linux MMU?

Empfohlenes Lernen: Linux-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWarum braucht Linux MMU?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn