16, 32 ve 64 bit makinelerde teorik bellek limitleri aşağıdaki gibidir ...
Buradaki temel kusur, genellikle makinenin genel amaçlı kayıtlarının boyutu olan işlemcinin "bit genişliğinin" mutlaka RAM adreslerinin genişliği ile aynı olduğu düşüncesidir.
Disk belleği etkin, ancak PAE içermeyen x86'da, program ve işletim sistemi kodunun kullandığı adresler Intel tarafından "doğrusal adresler" olarak adlandırılır - bunlara genellikle "sanal adresler" diyoruz. 32 bit genişliğinde. Bu, 4 GiB sanal adres alanına izin verir.
Ancak bu, aşağı yukarı rastlantıdır, yalnızca sayfa tablosu girişleri biçiminin fiziksel (RAM) adres boyutunun da 32 bit olmasıdır.
PAE ile ikincisi 36 bittir (ilk başta ... sonraki uygulamalarda daha geniş). Yani, örneğin, "32 bitlik bir makine", fiziksel bellek adreslerinin 32 bit ile sınırlı olduğu anlamına gelmez.
Endüstrinin, "bit genişliği" maksimum fiziksel adres boyutlarıyla eşleşmeyen uzun bir makine geçmişi vardır . Örneğin, VAX mimarisi 32 bitlik bir makine tanımlar ve sanal adresler (adres çevirisi açıldıktan sonra kod tarafından kullanılan adreslerdir) gerçekten 32 bit genişliğindedir ... ancak VAX'ın fiziksel adresleri sadece 30 bit genişliğindedir - fiziksel adres alanının yarısı G / Ç cihaz kayıtlarına ayrılmıştır, bu nedenle maksimum RAM yalnızca 512 MiB'dir.
Adres çeviri donanımı olmasa bile, makinenin "bit genişliği" nin maksimum RAM adresini tanımlaması zorunlu değildir. Örnek: CDC "üst 3000" serisi 36 bitlik makinelerdi. 64 GiB RAM'e hitap edebileceklerini düşünüyor musunuz? Pek değil! Bu makineler 60'ların ortasında çıktı! Heck, o günlerde 64 GB disk alanımız bile yoktu . (CDC 6000 serisi 60 bitlik makinelerdi. Devam etmem gerekiyor mu?)