Die theoretischen Speichergrenzen in 16-, 32- und 64-Bit-Maschinen sind wie folgt ...
Der fundamentale Fehler hierbei ist die Vorstellung, dass die "Bitbreite" des Prozessors, die normalerweise der Größe der Universalregister der Maschine entspricht, notwendigerweise der Breite der RAM-Adressen entspricht.
In x86 mit aktiviertem Paging, jedoch ohne PAE, werden die von Programm- und Betriebssystemcode verwendeten Adressen von Intel als "lineare Adressen" bezeichnet - normalerweise werden sie als "virtuelle Adressen" bezeichnet. Sie sind 32 Bit breit. Dies ermöglicht einen virtuellen Adressraum von 4 GiB.
Aber es ist mehr oder weniger Zufall, nur ein Artefakt des Formats von Seitentabelleneinträgen, dass die Größe einer physikalischen (RAM-) Adresse ebenfalls 32 Bit beträgt.
Bei PAE sind letztere 36 Bit (zuerst ... in späteren Implementierungen breiter). Nur weil es sich beispielsweise um eine "32-Bit-Maschine" handelt, bedeutet dies nicht, dass die physikalischen Speicheradressen auf 32 Bit beschränkt sind.
Die Branche hat eine lange Geschichte von Maschinen, deren "Bitbreite" nicht ihrer maximalen physikalischen Adressgröße entsprach. Die VAX-Architektur definiert beispielsweise eine 32-Bit-Maschine, und virtuelle Adressen (die Adressen, die nach dem Aktivieren der Adressumsetzung vom Code verwendet werden) sind in der Tat 32 Bit breit. Die physischen Adressen der VAX sind jedoch nur 30 Bit breit. und die Hälfte des physischen Adressraums ist für E / A-Geräteregister vorgesehen, sodass der maximale RAM nur 512 MiB betrug.
Auch ohne Adressumsetzungshardware ist es nicht unbedingt so, dass die "Bitbreite" der Maschine die maximale RAM-Adresse definiert. Beispiel: Die CDC-Serie "Upper 3000" bestand aus 36-Bit-Computern. Glauben Sie, sie könnten 64 GB RAM adressieren? Nicht schwer! Diese Maschinen kamen Mitte der 60er Jahre heraus! Wir konnten damals noch nicht einmal 64 GB Festplattenspeicher haben . (Die CDC 6000-Serie bestand aus 60-Bit-Computern. Muss ich fortfahren?)