I limiti teorici di memoria nelle macchine a 16, 32 e 64 bit sono i seguenti ...
Il difetto fondamentale qui è l'idea che la "larghezza di bit" del processore, che di solito è la dimensione dei registri di uso generale della macchina, è necessariamente uguale alla larghezza degli indirizzi RAM.
In x86 con il paging abilitato, ma senza PAE, gli indirizzi che il programma e il codice OS usano sono chiamati "indirizzi lineari" da Intel - di solito li chiamiamo "indirizzi virtuali". Sono larghe 32 bit. Ciò consente uno spazio di indirizzi virtuale di 4 GiB.
Ma è più o meno una coincidenza, semplicemente un artefatto del formato delle voci della tabella delle pagine che anche la dimensione di un indirizzo fisico (RAM) è di 32 bit.
Con PAE, quest'ultimo è di 36 bit (inizialmente ... più ampio nelle implementazioni successive). Quindi, solo perché è, ad esempio, una "macchina a 32 bit" non significa che gli indirizzi di memoria fisica siano limitati a 32 bit.
L'industria ha un lungo storia di macchine la cui "larghezza di bit" non corrispondeva alla dimensione massima dell'indirizzo fisico. Ad esempio, l'architettura VAX definisce una macchina a 32 bit e gli indirizzi virtuali (che sono gli indirizzi utilizzati dal codice una volta attivata la traduzione dell'indirizzo) sono effettivamente larghi 32 bit ... ma gli indirizzi fisici del VAX sono larghi solo 30 bit - e metà dello spazio degli indirizzi fisici è dedicato ai registri dei dispositivi I / O, quindi la RAM massima era solo di 512 MiB.
Anche senza l'hardware di traduzione degli indirizzi, non è necessariamente il caso che la "larghezza di bit" della macchina definisca l'indirizzo RAM massimo. Esempio: le serie CDC "upper 3000" erano macchine a 36 bit. Pensi che potrebbero indirizzare 64 GiB di RAM? Non appena! Quelle macchine uscirono a metà degli anni '60! Cavolo, non potevamo nemmeno avere 64 GB di spazio su disco in quei giorni. (Le serie CDC 6000 erano macchine a 60 bit. Devo andare avanti?)