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 == *Es wird deutlich weniger Speicherplatz durch Pagetables verbraucht. (Im günstigsten Fall 4MB weniger) *4MB und 4KB große Pages können auch gleichzeitig verwendet werden. *Der [[Translation Lookaside Buffer]] wird besser ausgenutzt (es gibt üblicherweise zwei separate TLBs für 4k- und 4M-Pages; mit 4k-Pages bleibt letzterer ungenutzt). == Funktionsweise == === 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 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 === *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 Bit 4 im Control Register cr4 gesetzt wird *Paging aktivieren, indem Bit 31 im Control Register cr0 gesetzt wird == Siehe auch == *[[Paging]] [[Kategorie:Speicherverwaltung]] [[Kategorie:x86]]