Ich lese gerade das Physical Address Extension (PAE) Kapitel in der vierten Ausgabe von Windows Internals (Seiten 435-437), und ich kann den Verweis auf 24 Bits nicht finden. Es gibt einen Verweis auf 25 Bits, die für die Basisseitenadresse verwendet werden, was bedeutet, dass der adressierbare Raum 2 ^ (12 + 25) = 128 GB wird. Aber wir kommen darauf zurück. Lassen Sie uns zunächst sehen, wie eine lineare Adresse in eine physische Adresse umgewandelt wird (und dies ist im Buch perfekt beschrieben): Die lineare Adresse wird in drei Teile aufgeteilt:
- 12 niedrigere Bits sind innerhalb der Seite versetzt und adressieren jedes Byte auf der 4-KB-Seite.
- die nächsten 10 Bits sind Index des Datensatzes in der Seitentabelle (PTE), die die Basisadresse (physikalische Adresse des ersten Bytes) der Seite enthält;
- Die höchsten 10 Bits sind der Index des Datensatzes in der Page Directory Table (PDE), der die Basisadresse für das PTE enthält.
Jedes Element in PTE und PDE enthält einen 32-Bit-Datensatz, von dem 20 Bit die physische Adresse der Seite bzw. die Tabelle der nächsten Ebene enthalten. Die anderen 12 Bits sind Flags, die die Seite oder die Tabelle beschreiben (lesbar / schreibbar / ausführbar usw.). So haben 80386, x486 und Pentium gearbeitet.
Pentium Pro und neuere CPUs verwenden im PAE-Modus jetzt 64-Bit-Datensätze in PDE- und PTE-Tabellen. In diesen Aufzeichnungen können bis zu 40 Bits verwendet werden, um die Basisadresse der Seite im Speicher zu kodieren. Dies bedeutet, dass der PAE-Modus theoretisch 2 ^ 40 Seiten (1T-Seiten) von 2 ^ 12 (jeweils 4 KB) adressieren kann. Der theoretische Gesamtadressraum beträgt 2 ^ (40 + 12) = 2 ^ 52 = 4Peta-Bytes. Betriebssysteme verwenden jedoch nicht alle diese 40 Bit. Windows verwendet zum Beispiel nur 24 davon, was zu einem adressierbaren Adressraum von insgesamt 2 ^ (24 + 12) = 2 ^ 36 = 64 G Bytes führt.
Offensichtlich verwenden verschiedene Versionen (Varianten) von Windows eine andere Anzahl von Bits in dieser Tabelle, was etwas seltsam erscheint. Gemäß der 4. Ausgabe des fraglichen Buches werden in diesem Fall 25 Bits verwendet, was den adressierbaren Speicherplatz auf 128 GB erhöht, und dies wird auch von dieser Seite bestätigt . Dies ist die Quelle der Diskrepanz zwischen der 4. und der 5. Auflage, die oben erwähnt wurden.
Eine ausführlichere Beschreibung der Übersetzung finden Sie auf den Seiten 4-17 und 4-18 (Kapitel 4.4.2) des Intel 64- und IA32-Architekturentwickler-Handbuchs
Oh ja, und das System wird 32-Bit genannt, nicht weil es 2 ^ 32 Bytes adressiert. Dies liegt daran, dass die internen Register 32-Bit breit sind (was nicht immer mehr der Fall ist, der Realität jedoch nahe genug ist). Wenn der adressierbare Speicherplatz den Namen des Betriebssystems bestimmt, wäre DOS ein 20-Bit-Betriebssystem gewesen und alte Macs ein 24-Bit-Betriebssystem