Page Size Extension — Änderungen 6925 → 6927

Zeile 1: Zeile 1:
−
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.
+
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 repräsentieren.
  
 
== Vorteile ==
 
== Vorteile ==
 
*Es wird deutlich weniger Speicherplatz durch Pagetables verbraucht. (Im günstigsten Fall 4MB weniger)
 
*Es wird deutlich weniger Speicherplatz durch Pagetables verbraucht. (Im günstigsten Fall 4MB weniger)
−
*Der Translation Lookaside Buffer kann besser arbeiten.
+
*Der [[Translation Lookaside Buffer]] kann besser arbeiten.
−
*4MB und 4KB Pages können auch gleichzeitig verwendet werden.
+
*4MB und 4KB große Pages können auch gleichzeitig verwendet werden.
  
 
== Funktionsweise ==
 
== Funktionsweise ==
  
−
=== Unterschied zum 4KB Paging ===
+
=== 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.
 
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.
+
Wenn PSE aktiviert ist, dann wird Bit 7 (S-Bit) in den Einträgen des Page Directory gültig. Ist dieses Bit nicht gesetzt, dann zeigt der Eintrag auf eine Page Table mit 4KB-Pages (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 ===
 
=== Aktivieren der Page Size Extension ===
 
*ein Page Directory mit 1024 Einträge anlegen
 
*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 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
 
**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
 
*in das [[Control Register]] cr3 die Adresse des Page Directory laden
−
*PSE aktivieren, indem Bit4 im [[Control Register]] cr4 gesetzt wird
+
*PSE aktivieren, indem Bit 4 im Control Register cr4 gesetzt wird
−
*Paging aktivieren, indem Bit31 im [[Control Register]] cr0 gesetzt wird
+
*Paging aktivieren, indem Bit 31 im Control Register cr0 gesetzt wird
  
 
== Siehe auch ==
 
== Siehe auch ==