Qual è la quantità massima di RAM che posso usare su un hardware specifico


26

Ho un notebook Asus U31SD con una CPU i5-2430M . Il sito Asus afferma che la RAM massima è di 8 GB, ma quella di Intel afferma che la mia CPU supporta 16 GB. Qual è la RAM massima che posso usare su questo sistema con Ubuntu?


3
Per riassumere quello che dicono tutti, il tuo notebook può usare solo 8 GB di RAM, a causa dei limiti della tua scheda madre. È possibile verificarlo osservando questa domanda: askubuntu.com/questions/140322/…
reverendj1

a tutti, vorrei sottolineare che la società produttrice di memoria "corsair" ha un localizzatore di memoria che può dirvi in ​​generale quale sia la quantità massima di RAM che il vostro sistema può usare. Puoi anche andare a leggere le schede tecniche del tuo sistema modello cercandole online, ti dirà la RAM massima che puoi usare.
Thomas Ward

@The Lord of Time: qualche link?
0xC0000022L

Corsair Memory Finder / Configurator per il sistema indicato nella domanda: www2.corsair.com/configurator/… || Corsair Memory Finder (pagina iniziale): corsair.com/us/learn_n_explore (Pubblicizzeranno i loro prodotti, ma posso usarlo come base generale per trovare specifiche semi-accurate per max-memory
Thomas Ward

Risposte:


29

Il limite è in realtà tra l'hardware (supporto di memoria della scheda madre e quantità di slot in esso) e la versione di Ubuntu (32 bit, 32 bit + PAE, x32ABI, 64 bit)

Se hai una scheda madre che supporta un massimo di 4 GB, non importa se usi 32 bit, 32 bit PAE o 64 bit poiché avrai un limite hardware di 4 GB.

Ma se acquisti una scheda madre che supporta una maggiore quantità di memoria, puoi giocare con le versioni di Ubuntu, che hanno la seguente memoria massima supportata:

Ubuntu 32 Bit - 4 GB di RAM

Ubuntu 32 Bit + PAE (Physical Address Extension) - 64 GB di RAM

Ubuntu x32ABI - 4GB RAM (Questo è per l'architettura a 32 bit modificata con miglioramenti a 64 bit in esecuzione su hardware a 64 bit. Non è ancora disponibile.)

Ubuntu 64 Bit - MOLTO! (In realtà 2 ^ 64) ma a causa dei limiti hardware e dei computer del mondo reale il limite è di circa 1 TB (1024 GB di RAM)

Quindi la domanda sul limite di memoria dovrebbe essere usata quando si utilizzano più di 4 GB di RAM. In questo caso, è necessario PAE a 32 bit o 64 BIT che supportano dimensioni di memoria molto elevate.

Si noti inoltre che se si dispone ad esempio di 4 GB in questo momento e si acquistano 16 GB di RAM, non è necessario reinstallare Ubuntu o apportare modifiche. Basta cambiare i ricordi e Ubuntu dovrebbe leggere e lavorare con loro fuori dalla scatola. Nessuna configurazione necessaria. Se hai 32 bit con 4 GB di RAM e installi 16 GB o RAM, Ubuntu passerà automaticamente da PAE a 32 bit a 32 bit. Posso garantirlo da quando sono passato da 4 GB a 16 GB all'inizio di quest'anno.

Ecco un link a un'ottima spiegazione di Ubuntu sulla memoria nel 32/64: https://help.ubuntu.com/community/32bit_and_64bit#Memory

AGGIORNAMENTO - Hai dimenticato di aggiungere che alcune schede madri hanno aggiornamenti del BIOS che abilitano, correggono o migliorano la memoria massima supportata. Ad esempio, alcune schede madri Intel in passato avevano problemi a lavorare con il massimo supportato. Un aggiornamento del BIOS ha risolto questo problema. Altre schede madri avevano il supporto per 4 GB a causa di un problema del BIOS, dopo l'aggiornamento avevano supporto per più di 4 GB.

Confrontando anche la memoria massima supportata per la CPU e la scheda madre, il massimo che puoi avere è il minimo di una qualsiasi di esse. Quindi per esempio:

CASE 1
Memoria massima supportata dalla CPU - 16GB Memoria massima supportata dalla
scheda madre - 8GB
Memoria massima supportata - 8GB (Perché è il valore più basso tra CPU e scheda madre)


Memoria supportata massima della CPU CASE 2 - Memoria massima supportata della scheda madre da 16 GB
- 32 GB
Memoria massima supportata - 16 GB (Perché è il valore più basso tra CPU e scheda madre)

CASE 3
Memoria massima supportata dalla CPU - 16GB Memoria massima supportata dalla
scheda - 64GB
Memoria massima supportata - 16GB (Perché è il valore più basso tra CPU e scheda madre)

Il motivo dietro questo rapporto di limite di memoria con la CPU è dovuto alle modifiche tecniche di Intel con le più recenti CPU Core.

Quindi, nel tuo caso, hai una scheda madre che supporta 8 GB e una CPU che supporta 16 GB. Ciò significa che il massimo che puoi avere è di 8 GB che puoi utilizzare a seconda della quantità di slot nella scheda madre. In quell'Asus hai 2 slot, il che significa che puoi avere due 4 GB di RAM per completare il massimo di 8 GB.

Ulteriori informazioni su x32abi:

KernelNewbies - http://kernelnewbies.org/Linux_3.4#head-039c9d273884c9639937c10d68b4a3214869eb4b

LWN - https://lwn.net/Articles/456731/ (consiglia di leggere i commenti per spiegazioni facili da imparare sul limite di memoria)

Google - http://sites.google.com/site/x32abi/

Infine, da Ubuntu 12.04, tutte le versioni a 32 bit di Ubuntu sono dotate di PAE attivato per impostazione predefinita, quindi tutti i 32 bit supporteranno un massimo di 64 GB di RAM. Nel caso in cui si utilizzi 12.04+ e si desideri sapere quale architettura utilizzare, ora è possibile utilizzare qualsiasi di essi purché si seguano alcuni consigli:

  • Se si dispone di almeno 512 MB di RAM, si consiglia di utilizzare 32 bit

  • Se hai meno di 4 GB di RAM ma più di 512 MB, si consiglia di utilizzare 32 bit (ma è comunque possibile utilizzare 64 bit)

  • Se si dispone di 4 GB di RAM, si consiglia di utilizzare 32 bit (ma è comunque possibile utilizzare 64 bit)

  • Se hai tra 4 GB o RAM e 64 GB di RAM puoi utilizzare 32 bit o 64 bit, ma si consiglia di utilizzare 64 bit.

  • Se hai più di 64 GB di RAM devi usare 64 Bit


Luis sei sicuro del limite di 4 GB in x32? Questo sarebbe triste. Ho letto in un articolo (rivista tedesca) che x32 supporta più di 4 GB. E che dire di PAE?
turbo,

@turbo - Questa è un'ottima domanda che mi ci è voluto un po 'per trovare. Rispondo a 4 GB a causa di questa parte della spiegazione di "Che cos'è x32abi?": X32 ABI consente di eseguire programmi in modalità 64 bit con puntatori a 32 bit. Poiché funziona con puntatori a 32 bit, ciò significa che la memoria massima che può effettivamente utilizzare per funzionare è di 4 GB. Certo, non so se esiste una modalità PAE x32abi ma dato che è un modo per eseguire programmi a 32 bit per sfruttare alcuni dei vantaggi di 64 bit senza utilizzare il doppio della ram per le attività, ho concluso che è limitato a 32 bit a 4 GB di RAM.
Luis Alvarado,

1
In realtà il limite per 64 bit è 2 ^ 48 byte e x32 è lo stesso, limitato a 4 GB per processo , per i processi x32. x32 esegue un kernel a 64 bit, quindi può eseguire alcuni programmi a 64 bit completi, ma x32 crea la maggior parte dei programmi per utilizzare solo 32 bit.
psusi

6

Per 32 bit il limite teorico è 2 ^ 32 = 4096 MB, ma da Ubuntu 12.04 su PAE (Physical Address Extension) è attivato di default con un limite di 2 ^ 36 = 64 GB.

Per 64 bit dovrebbe essere 2 ^ 64 = 16 777 216 TB (sì, è Terabyte) per via toracica. In realtà la quantità di RAM è limitata a 2 ^ 48 ovvero 256 TB di RAM.

Dato che i limiti teorici non possono davvero essere raggiunti in un normale laptop, la vera limitazione è la quantità di slot di memoria (normalmente 1-2) nel notebook e il supporto da parte del chipset. 8-16 GB è realistico qui se sei disposto a pagare soldi seri per moduli da 8 GB.


Quindi posso acquistare in sicurezza moduli 2x 8gb e aspettarmi che funzionino? (Sto eseguendo 64 bit, attualmente con 8 GB di RAM)
crond

Ben sicuro ...; P Altri notebook con i chip Intel HM65 Express supportano 16 GB (Asus G74SX-TZ293V) quindi sì.
turbo,

6

Ho appena acquistato altri 8 GB da inserire nel mio U31SD, per un totale di 12 GB. Nonostante la pagina delle specifiche di Asus che dica 8 GB sia il limite, questo funziona benissimo. Passato memtest86 ed è visibile a Ubuntu a 64 bit.

Ho installato l'ultimo aggiornamento del BIOS, non sono sicuro che ciò faccia la differenza.

Cordiali saluti, uscita di sudo dmidecode -t 16indica Maximum Capacity: 16 GB.


1

È una limitazione sulla scheda madre non sulla CPU. La CPU potrebbe supportare fino a 16 GB, ma se la scheda madre può contenere solo 8 GB, questo è il tuo limite.

In Ubuntu se si esegue a 32 bit, il limite è di 4 GB e se si esegue a 64 bit è molto più alto (non ricordo per certo ma è decisamente superiore a 16 GB.

Ma sarai sempre limitato dal tuo hardware. Devi sempre confrontare il limite della scheda madre e il limite della CPU e prendere il valore più basso come limite del PC.


0

Nel tuo caso specifico, 8 GB sono dovuti alla tua scheda madre che non supporta più di quella quantità di RAM.

Ma Ubuntu stesso supporta 4 GB max per 32 bit, 64 GB su 32 bit PAE e 128 GB su 64 bit (sebbene teoricamente il limite sia molto più alto per 64 bit).


0

c'erano molte domande su cosa determina la dimensione di un puntatore. sostanzialmente come regola empirica si può dire che si tratta di architettura del processore,

x86 -> 4 bytes pointer -> can address 4,294,967,296 locations = 4GB (it is the limit)

x64 -> 8 bytes pointer -> can address 1.84467440737e+19 locations (it is the limit, big, eh)

Per indirizzare 8 GB di RAM sono necessari 8.589.934.592 mappature e il puntatore di byte di dimensione 4 non può indirizzare tutti i possibili valori. quindi è per questo che non posso avere più di 4 GB di RAM su architettura x86.

Ci sono altre possibilità però:

La quantità di RAM non è limitata dall'architettura (32 o 64 bit). L'architettura decide solo quanta memoria può essere indirizzata alla volta, dal sistema operativo e dai programmi in esecuzione su di essa. Su una macchina a 32 bit, ovvero una macchina con bus di memoria a 32 bit di larghezza, il sistema operativo e i programmi possono "vedere" solo 4 GB di memoria. Ma ciò non significa che ci siano solo 4 GB di RAM. Se il produttore lo ha fornito, è possibile disporre di 16 GB o 4x4 GB di RAM. In tal caso, ci saranno altre 2 linee di indirizzo "nascoste" e ci sarebbe anche una logica hardcoded per decidere i livelli di quelle 2 linee, selezionando così una delle RAM disponibili da 4 GB - 00 01 10 11. Questi bit di indirizzo "nascosti" non vengono utilizzati dai livelli software, quindi per questi livelli possono utilizzare solo un puntatore a 4 byte. Il numero di questi "nascosti"

Questo è solo un esempio. Dipende dal fornitore, da come decidono di fornire la RAM aggiuntiva.

Guarda anche:

Nel solito caso, un puntatore è abbastanza grande da contenere più indirizzi di quanti siano le unità di memoria nel sistema. Ciò introduce la possibilità che un programma possa tentare di accedere a un indirizzo che non corrisponde a nessuna unità di memoria, sia perché non è installata memoria sufficiente (cioè oltre l'intervallo di memoria disponibile) o l'architettura non supporta tali indirizzi. Il primo caso, in alcune piattaforme come l'architettura Intel x86, può essere chiamato un errore di segmentazione (segfault). Il secondo caso è possibile nell'attuale implementazione di AMD64, in cui i puntatori sono lunghi 64 bit e gli indirizzi si estendono solo a 48 bit. Lì, i puntatori devono essere conformi a determinate regole (indirizzi canonici), quindi se un puntatore non canonico è dedotto, il processore genera un errore di protezione generale.

D'altra parte, alcuni sistemi hanno più unità di memoria di quanti siano gli indirizzi. In questo caso, viene utilizzato uno schema più complesso come la segmentazione della memoria o il paging per utilizzare parti diverse della memoria in momenti diversi. Le ultime incarnazioni dell'architettura x86 supportano fino a 36 bit di indirizzi di memoria fisica, che sono stati mappati allo spazio di indirizzi lineare a 32 bit tramite il meccanismo di paging PAE. Pertanto, è possibile accedere solo a 1/16 della memoria totale possibile alla volta. Un altro esempio nella stessa famiglia di computer era la modalità protetta a 16 bit del processore 80286, che, pur supportando solo 16 MiB di memoria fisica, poteva accedere fino a 1 GiB di memoria virtuale, ma la combinazione di indirizzo e segmento a 16 bit i registri hanno reso l'accesso a più di 64 KiB in una struttura di dati ingombrante.

Al fine di fornire un'interfaccia coerente, alcune architetture forniscono I / O mappati in memoria, che consente ad alcuni indirizzi di fare riferimento a unità di memoria mentre altri fanno riferimento ai registri dei dispositivi di altri dispositivi nel computer. Esistono concetti analoghi come offset di file, indici di array e riferimenti di oggetti remoti che hanno gli stessi scopi degli indirizzi per altri tipi di oggetti.

(altro qui )

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.