Teoretyczne limity pamięci w maszynach 16, 32 i 64-bitowych są następujące ...
Podstawową wadą jest tutaj to, że „szerokość bitowa” procesora, która zwykle jest wielkością rejestrów ogólnego przeznaczenia maszyny, jest koniecznie taka sama jak szerokość adresów RAM.
W x86 z włączonym stronicowaniem, ale bez PAE, adresy, które program i kod systemu operacyjnego używają, Intel nazywa „adresami liniowymi” - zwykle nazywamy je „adresami wirtualnymi”. Mają 32 bity szerokości. Pozwala to na wirtualną przestrzeń adresową 4 GiB.
Ale to mniej więcej zbieg okoliczności, jedynie artefakt formatu wpisów w tablicy stron, że rozmiar adresu fizycznego (RAM) również wynosi 32 bity.
W przypadku PAE ten ostatni ma 36 bitów (początkowo ... szerszy w późniejszych implementacjach). Zatem fakt, że jest to na przykład „maszyna 32-bitowa”, nie oznacza, że adresy pamięci fizycznej są ograniczone do 32 bitów.
Przemysł ma długą historię maszyn, których „szerokość bitów” nie była zgodna z maksymalnym rozmiarem adresu fizycznego. Na przykład architektura VAX definiuje maszynę 32-bitową, a adresy wirtualne (które są adresami używanymi przez kod po włączeniu translacji adresów) rzeczywiście mają szerokość 32 bitów ... ale adresy fizyczne VAX mają szerokość tylko 30 bitów - a połowa fizycznej przestrzeni adresowej jest przeznaczona na rejestry urządzeń I / O, więc maksymalna pamięć RAM wynosiła tylko 512 MiB.
Nawet bez sprzętu do translacji adresów niekoniecznie jest tak, że „szerokość bitów” maszyny określa maksymalny adres RAM. Przykład: serie CDC „górne 3000” były maszynami 36-bitowymi. Czy myślisz, że mogą rozwiązać 64 GiB pamięci RAM? Nie trudno! Te maszyny pojawiły się w połowie lat 60.! Heck, nie mogliśmy nawet mieć 64 GB miejsca na dysku w tych dniach. (Seria CDC 6000 była maszyną 60-bitową. Potrzebujesz kontynuować?)