Page Size Extension — Änderungen 6024 → 6925

Zeile 1: Zeile 1:
−
Dieses Feature von [[x86]]-Prozessoren wurde mit dem Pentium-Prozessor eingeführt. Es ermöglicht [[Paging]] mit Pages, die größer als 4 kB sind - nämlich 4 MB. Dadurch wird weniger Speicherplatz für Page Tables verbraucht und außerdem kann der Translation Lookaside Buffer besser arbeiten, da es weniger Pages gibt. Außerdem können, wenn PSE aktiviert ist, gleichzeitig 4-kB- und 4-MB-Pages verwendet werden.
+
Die Page Size Extension  von x86-Prozessoren wurde mit dem Pentium-Prozessor eingeführt. Es ermöglicht Paging mit sogenannten ''large pages'', also [[Paging#Funktionsweise|Pages]], die statt 4KB einen 4MB großen Speicherbereich representieren.
  
−
Ein großer Nachteil ist, dass eine 4-MB-Page einfach auch 4 MB Speicher benötigt. Wird z. B. nur ein Megabyte benötigt, dann werden drei Megabyte verschwendet. PSE kann im [[Long Mode]] nicht verwendet werden, da dort automatisch [[PAE]] genutzt wird.
+
== Vorteile ==
 +
*Es wird deutlich weniger Speicherplatz durch Pagetables verbraucht. (Im günstigsten Fall 4MB weniger)
 +
*Der Translation Lookaside Buffer kann besser arbeiten.
 +
*4MB und 4KB Pages können auch gleichzeitig verwendet werden.
  
 
== Funktionsweise ==
 
== Funktionsweise ==
−
Um PSE zu aktivieren, muss das Bit 4 (PSE) im [[Control Register|Kontrollregister]] CR4 gesetzt werden. Anschließend wird das Bit 7 (S-Bit) im [[Paging#Page-Directory|Page Directory]] gültig. Ist es nicht gesetzt, so zeigt der jeweilige Eintrag auf eine Page Table, welche wiederum 4-kB-Pages enthält, ist es gesetzt, so zeigt er direkt auf eine 4-MB-Page.
+
 
 +
=== Unterschied zum 4KB Paging ===
 +
Beim "normalen" Paging zeigt jeder der 1024 Einträge im [[Paging#Page-Directory|Page Directory]] auf eine 4KB große [[Paging#Page Tables|Page Table]], deren 1024 Einträge wiederrum einen 4 MB großen Bereich definieren. Somit sind insgesamt 4 MB Speicherplatz durch Page Tables belegt.
 +
 
 +
Wenn PSE aktiviert ist, dann wird Bit7 (S-Bit) in den Einträgen des Page Directory gültig. Ist dieses Bit nicht gesetzt, dann zeigt der Eintrag auf eine 4KB Page Table (so wie beim "normalen" Paging), andernfalls zeigt der Eintrag direkt auf eine 4MB Page. Falls man also nur 4MB Pages verwendet (alle S-Bits sind gesetzt), bedeutet das, dass man keine Page Tables mehr benötigt, weil das Page Directory alle Pages direkt definiert.
 +
 
 +
=== Aktivieren der Page Size Extension ===
 +
*ein Page Directory mit 1024 Einträge anlegen
 +
**ist das S-Bit gesetzt, dann zeigt der Eintrag direkt auf eine 4MB Page
 +
**ist das S-Bit nicht gesetzt, muss eine Page Table angelegt werden, auf die der Eintrag zeigt
 +
*in das [[Control Register]] cr3 die Adresse des Page Directory laden
 +
*PSE aktivieren, indem Bit4 im [[Control Register]] cr4 gesetzt wird
 +
*Paging aktivieren, indem Bit31 im [[Control Register]] cr0 gesetzt wird
 +
 
 +
== Siehe auch ==
 +
*[[Paging]]
  
 
[[Kategorie:Speicherverwaltung]]
 
[[Kategorie:Speicherverwaltung]]