Qual è la quantità massima di ram che una macchina a 64 bit può teoricamente affrontare?


21

Sto leggendo il mio libro sull'architettura del computer e vedo che in una CPU x86 a 32 bit, il contatore del programma è a 32 bit.

Pertanto, il numero di byte che può indirizzare è 2 ^ 32 byte o 4 GB. Quindi per me ha senso che la maggior parte delle macchine a 32 bit limita la quantità di RAM a 4 GB (ignorando PAE).

Ho ragione nel supporre che una macchina a 64 bit potrebbe teoricamente indirizzare 2 ^ 64 byte o 16 exabyte di RAM ?!


4
Si noti che nessun processore x86 a 64 bit esistente può effettivamente farlo. Le loro cache non hanno abbastanza tag tags, i loro bus degli indirizzi non hanno abbastanza larghezza e così via. 46 bit (8 TB) è il massimo per molte moderne CPU x86.
David Schwartz,

4
Teoricamente, non c'è limite. Anche le CPU a 32 bit possono avere uno spazio di indirizzi superiore a 4 GiB. Dipende da come il sistema di gestione della memoria è implementato nell'hardware , che di solito è indipendente dalla lunghezza della parola della CPU. I puntatori nei programmi sono sempre lunghi una parola, ma sono comunque indirizzi virtuali (e non fisici), quindi vengono ulteriormente mappati in uno spazio di indirizzi diverso.
Breakthrough

Questa è una vecchia domanda con vecchie risposte, ma mi sembra che le risposte più votate a questa domanda siano molto fuorvianti, e sono risposte a quanta RAM potrebbe una macchina con un indirizzo di bus a 64 bit di larghezza . Come sottolineato da David e Breakthrough sopra, il "testimone" di un'architettura riflette la dimensione dei registri primari, non la dimensione del bus degli indirizzi.
Sebi,

Perché dovresti ignorare PAE?
Jamie Hanrahan,

Risposte:


28

Teoricamente: 16,8 milioni di terabyte. In pratica: il case del tuo computer è un po 'troppo piccolo per adattarsi a tutta quella RAM.

http://en.wikipedia.org/wiki/64-bit#Limitations_of_practical_processors


13
Troppo piccolo .... oggi !!!!
ridacchiando il

2
16.777216 milioni di tebibyte. Se vuoi essere preciso.
totymedli,

Ho letto in altre fonti che un processore non può usare ogni bit per accedere alla memoria, questo è considerato nella tua risposta?
Andrey,

17

Per integrare la risposta di Matt Ball, l'attuale più grande stick di RAM che posso trovare su un particolare rivenditore online è di 32 GB. Ne occorrerebbero 32 per raggiungere 1 terabyte. A circa mezzo pollice per stick questo ci porta a 16 pollici dedicati di spazio sulla scheda madre per un terabyte di ram commerciale. Per raggiungere 16,8 milioni di terabyte richiederebbe una scheda madre 4.242,42 miglia. La distanza da Los Angeles a New York è di circa 2141 miglia, quindi la scheda madre si estenderebbe in tutto il paese e tornerebbe per accogliere tutta la RAM.

Chiaramente questo non è pratico.

Che ne dici di non mettere la nostra RAM tutta in una riga come sulla maggior parte delle schede madri, ma invece di metterli fianco a fianco. Voglio dire che il bastoncino medio di montone è lungo circa sei pollici, quindi se permettiamo un mezzo pollice di larghezza, puoi avere un'unità quadrata di 12 bastoncini di montone in un quadrato da 6 pollici. Chiamiamo questo quadrato un riquadro RAM. Un riquadro RAM contiene quindi 384 GB di RAM. Per raggiungere i 16,8 milioni di terabyte richiesti in tessere da 384 GB occorrerebbero 44,8 milioni di tessere. Cerchiamo di essere disordinati e usiamo la radice quadrata per concludere che questo si adatterà in un quadrato di 6693 per 6694 tessere, o 13.386 per 13.388 piedi, che è abbastanza vicino a 2,5 miglia al quadrato, abbastanza da coprire il centro di Seattle all'ombra, come se non avevano già abbastanza di cui lamentarsi.


2
Troppo grande. Perché le appiattisci? Puoi ottenere tutto in un cubo da 100 '. Probabilmente avrai bisogno di azoto liquido per mantenerlo fresco!
Loren Pechtel,

1
la quantità di azoto che potrebbe bollire costituirebbe un rischio per la sicurezza della grande gente di Seattle
Conrad.Dean

Una possibile correzione. Dato che una tessera è 6 "per 6", ciò non renderebbe l'area 3346,5 per 3347 piedi (metà del conteggio delle tessere) anziché il 13.386 citato che è il doppio del conteggio delle tessere. Inoltre, un altro problema che nessuno sembra aver menzionato. Assumi la migliore disposizione: un cerchio, il raggio dovrà essere di circa 1.890 piedi per racchiudere l'area richiesta. Come ha sottolineato Adm, Grace Hopper, la latenza di trasmissione sul rame è di circa un nanosecondo / piede. Ciò significa che la latenza di andata e ritorno sull'anello esterno sarà di ~ 3,78 microsecondi. Questo è un po 'lento per la memoria principale. IMEHO.
Dgnuff,

4

In effetti, sì - i processi potrebbero, in teoria, indirizzare 2 ^ 64 byte di memoria. Ma come hai sottolineato, ci sono modi per aggirare questo limite.


3

Non esiste una relazione fissa particolare tra la dimensione in bit di un processore e la quantità di memoria indirizzabile. La maggior parte delle macchine a 8 bit della fine degli anni '70 poteva facilmente accedere a 65.536 byte direttamente, le 8088 e 8086 a 16 bit potevano accedere direttamente a 1.048.576 byte. Inoltre, è possibile aggiungere hardware per consentire alle macchine di accedere indirettamente a qualsiasi quantità di RAM; molte macchine con processori a 8 bit avevano 128K o più e le unità di espansione di memoria per PC basati su 8088 potevano accedere a oltre 16 mega. Sebbene Microsoft abbia abilitato tale funzionalità solo nelle versioni "server" di Windows, è stato possibile per il codice a 32 bit accedere alla memoria oltre il segno 4GiB usando approcci simili.


2

Avresti ragione. Puoi indirizzare fino a 16 exabyte di RAM. Ora ... se il sistema operativo è in grado di gestirlo sarebbe un'altra domanda ...


2

Sarebbe anche bene notare che il sistema operativo ha i suoi limiti sulla memoria in un'architettura a 64 bit.

Ad esempio, vedi cosa dice Wikipedia su Windows Vista 64:

Tutte le versioni a 64 bit dei sistemi operativi Microsoft impongono attualmente un limite di 16 TB allo spazio degli indirizzi. I processi creati nelle edizioni a 64 bit di Windows Vista possono avere 8 TB di memoria virtuale per i processi utente e 8 TB per i processi del kernel per creare una memoria virtuale di 16 TB. [29] In termini di memoria fisica Windows Vista 64-Bit Basic supporta fino a 8 GB di RAM, Windows Vista 64-Bit Home Premium supporta fino a 16 GB di RAM e Windows Vista 64-Bit Business / Enterprise / Ultimate supporta fino a 128 GB di RAM. [8]



1

Il più grande vantaggio di 64 bit non è la RAM che può indirizzare, ma tutto il resto. È possibile definire un indirizzo per ogni byte su un disco, ad esempio, e l'aumento delle capacità del disco non invaliderà questo per decenni.


Naturalmente, poiché le attuali CPU hanno questo spazio di indirizzamento limitato artificialmente, potrebbe passare solo un decennio prima che non ci siano abbastanza bit per indirizzare più ogni byte su un disco. Speriamo che a quel punto i limiti siano stati aumentati, man mano che vanno gli SSD, facendo apparire un intero disco come una sezione di memoria potrebbe migliorare drasticamente le prestazioni. Non mi dispiacerebbe collegare un SSD in uno slot RAM anziché in un cavo SATA!
Malvineous,

@Malvineous Stavo parlando di qualcosa di più fondamentale, anche se ti limiti a 63 bit puoi indirizzare direttamente 9223372 TB. E gli SSD in uno slot RAM esistono già, vedi Sandisk .
Mark Ransom il

Non ero in disaccordo con te, stavo solo sottolineando che con la tecnologia attuale ci sono limiti artificiali su ciò che stai suggerendo (ad esempio solo 48 o 51 bit dell'indirizzo portato sul bus fisico). Se questi DIMM-SSD si attivano, potremmo esaurire gli indirizzi di memoria prima di quanto suggerisci, a meno che questi limiti artificiali non possano essere aumentati o rimossi. Sono d'accordo che se fossero disponibili i 64 bit completi, sarebbero passati decenni prima che diventasse un problema.
Malvineous,

Per la cronaca, ho esaminato il link UlltraDIMM di SanDisk, ma purtroppo questo non è tecnicamente SSD-come-RAM. È un SSD SATA da 6 Gbps, con un adattatore da DDR3 a SATA che gli consente di accedere come se fosse memoria. La conversione aggiuntiva delle richieste di memoria nel protocollo SATA introduce un po 'di latenza e sembra un po' confusa. Eventualmente qualcuno ne vedrà il vantaggio e presto rilascerà una vera interfaccia di memoria per eseguire il flash senza adattatori inutili nel mezzo!
Malvineous,

0

La maggior parte degli attuali processori ha una sorta di limite artificiale sulla dimensione dell'indirizzo. Ad esempio, l'architettura AMD64 ha un limite di 52 bit sulla memoria fisica e attualmente supporta solo uno spazio di indirizzi virtuali a 48 bit. (Via Wikipedia). Tuttavia sì, è possibile fisicamente ~ 16,4 milioni di terabyte.


-1

per una risposta fisica realistica 1536 gb con 48 carte ram che eseguono bastoncini singoli da 32 gb e 4x lga2011 xeons

questo è per il pc esayista che qualcuno può comprare senza violare i mostri hardcore nascosti pensano che ci siano 64 gb di single stics a ... 3072 gb 128 gb essere 6144 gb 256 gb essere 12288 gb

solo per lanciare lì che ci sono modi per aggirare le limitazioni del sistema operativo con ram se il tuo sistema operativo può vedere solo ram da 4 GB trasformare il rimanente in un disco ram e utilizzare l'unità ram come file di pagina XD XD XD XD solo una questione di fare un sistema operativo preboot sistema qualcosa di simile è stato fatto nei primi giorni di dos / windows 3.11 ecc

e possono esserci altri piccoli hack per aggirare i limiti della cpu

l'ingranaggio che possiamo vedere non è quello che c'è là fuori c'è roba molto più potente che ho avuto un PC da 98 con 8 processori e in qualche modo come 32 GB di RAM, ma questo è costoso server di fascia alta

sto guardando i server come desktop perché sono stufo dei computer per il pubblico XD

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.