Perché non vengono riconosciuti più di 3 GB di RAM quando si utilizza AMD64?


8

Perché Ubuntu 10.10 amd64 (Maverick Meerkat) non indirizza più di 3 GB di RAM?

La mia macchina è un processore Intel Centrino Duo a 64 bit Toshiba P205-S6287 e 4 GB di RAM a 667 MHz.

Secondo le specifiche dettagliate , il notebook esegue un processore Core 2 Duo T5300 a 64 bit e ha un chipset Express 945GM.


3
È un mistero, puoi segnalare l'output di uname -a, l'output di free -me anche confermare che hai più di 3 GB di RAM attivi guardando il tuo dmidecode.
Martin Owens -ottoco-

1
E sei sicuro di avere una versione a 64 bit di Ubuntu. Cosa uname -adice?
Vojtech Trefny,

stesso problema, optiplex gx620 5 GB di RAM

Risposte:


16

Ciò è dovuto al Mobile Intel 945GM Express nel tuo laptop.

Possiedo un Thinkpad T60, che utilizza lo stesso chipset. È stato uno dei primi ponti nordici di Intel per le CPU Core2Duo a 64 bit. Non sono riusciti a progettarlo.

Il chipset può teoricamente indirizzare solo 4 GB di RAM, ma deve anche rivolgersi ad altro hardware (memoria I / O). Riserva la gamma di memoria superiore da 1 GB per questo. Il supporto dell'indirizzo di memoria logica a 64 bit nel kernel Linux non aiuta, poiché la scheda madre e il northbridge forniscono solo un bus di indirizzo fisico a 32 bit alla CPU. E non c'è soluzione alternativa.
http://forums.lenovo.com/t5/T61-and-prior-T-series-ThinkPad/Thinkpad-s-and-N100-sw-945PM-chipset-can-t-address-gt-3G-Ram/ mp / 2730

Esiste un'opzione teorica per ideare il cambio del banco di memoria. Eppure il kernel non lo supporta, né avrebbe senso sull'architettura x86. Il controller di memoria i810 del 945GM è probabilmente troppo pigro per avere un senso.


1

La mia risposta breve è: probabilmente perché il progettista del BIOS era sciatto.

La lunga risposta è:

Anche se hai installato 4 GB di RAM, non puoi aspettarti di avere 4 GB di RAM utilizzabile con il chipset Intel 945GM. Questa è una limitazione del chipset. Puoi dirlo dalle specifiche del chipset:

http://www.intel.com/content/www/us/en/intelligent-systems/navy-pier/mobile-945-express-chipset-datasheet.html

Citare dalla sezione 9.2: " The M emory C ontroller H . Ubs fornisce un massimo DRAM spazio decodificazione di indirizzi di 4 GB La MCH non fa APIC remap o spazio di memoria PCI Express Ciò significa che la quantità di memoria fisica popolato nei tratti sistema. 4 GB, ci sarà memoria fisica che esiste ancora non è indirizzabile e quindi inutilizzabile dal sistema. "

Il BIOS deve riservare intervalli di indirizzi per diverse risorse, ad esempio BIOS stesso, spazio mappato di memoria PCI e PCI Express, grafica interna, spazio di memoria APIC e altre finestre di memoria per l'accesso I / O. Tutti questi intervalli di indirizzi devono trovarsi all'interno dello spazio degli indirizzi da 4 GB e pertanto occupare intervalli di indirizzi che non sono più disponibili nella memoria di sistema. Si potrebbe dire che queste risorse "rubano" spazio di memoria RAM fisica.

Detto questo, se hai installato 4 GB puoi aspettarti di avere a disposizione più di 3 GB di memoria di sistema .

La quantità di memoria fisica disponibile per il sistema dipende dallo sforzo compiuto dal progettista del BIOS per organizzare questi intervalli di indirizzi. Ad esempio, il BIOS potrebbe allocare la quantità minima necessaria per ciascuna risorsa. Oppure potrebbe consentire di disabilitare o limitare l'allocazione degli indirizzi per PCI Express a seconda dell'utilizzo dei dispositivi PCI Express da parte del sistema.

Il progettista del BIOS del tuo sistema probabilmente imposta il limite massimo di RAM utilizzabile su un massimo statico di 3 GB anche se hai installato 4 GB. Questo approccio fornisce una finestra di indirizzo statico di 1 GB al progettista del BIOS e in quanto tale semplifica l'attività dei progettisti del BIOS di allocare intervalli di indirizzi per le risorse in modo che non siano in conflitto con nessun altro intervallo di indirizzi.


1

Ci sono diverse possibili ragioni.

Uno è che, di fatto, non stai eseguendo la build amd64. Un altro è che la scheda madre e / o il BIOS sono rotti e non riportano la quantità corretta di RAM.

Un altro è che hai memoria video e altre risorse hardware che occupano spazio nell'area di memoria di 3-4 GB, e la tua scheda madre / BIOS non è in grado di sollevare la RAM in ombra su indirizzi più alti in modo che sia possibile accedervi.

Capire che richiede guardare il tuo dmesgoutput.


0

psusi ha ragione.

Ho la stessa situazione qui:

Sebbene la chiamino "CPU a 64 bit", spesso non è possibile indirizzare 4 GB + di memoria.

La maggior parte delle vecchie schede madri hanno solo 32 bit per gli indirizzi e da questo pool anche la scheda grafica deve ottenere i loro indirizzi.

= 4 GB - memoria della scheda grafica (1 GB) = 3 GB.

Temo che non ci sia possibilità di risolvere questo problema rattoppando o aggiornando il firmware di qualsiasi cosa.

Se sei interessato ai dettagli, ti consiglio di: Estensione dell'indirizzo fisico


Inoltre: se possibile, il normale programma di installazione a 32 bit abiliterà automaticamente il kernel di estensione dell'indirizzo fisico, se necessario, consentendo di utilizzare tutta la memoria.
Stefano Palazzo

Come è stato notificato da @StefanoPalazzo e altri installando il kernel PAE risolve il problema Basta cercare il kernel PAE nel gestore di pacchetti sinaptici e installare: hailubuntu.blogspot.com/2010/09/ubuntu-detecting-less-ram.html
wisemonkey

1
@wisemonkey: no un kernel PAE non mi ha dato i 4 GB completi. Perché uso già un kernel a 64 bit e persino i report sul BIOS: 4 GB totali -> 3,2 GB utilizzabili.
aatdark,

@aatdark: la tua configurazione del BIOS ha il campo "Memoria video condivisa"? Se sì, puoi disabilitarlo (consigliato solo se hai una scheda grafica discreta) ma poi, come hai detto, se il suo vecchio computer quindi la memoria completa non è indirizzabile.
wisemonkey,

1
"I chipset Intel Intel® 945 di base offrono uno spazio di indirizzi massimo di 4 GB e non supportano il remapping della memoria. Poiché parti di tale indirizzo devono essere riservate ad altri dispositivi, non sarà possibile utilizzare più di 3,2 GB di memoria di sistema con la tua attuale configurazione di sistema. Nessun aggiornamento del BIOS o sistema operativo a 64 bit lo cambierà mai. Questo è un chipset piuttosto che una scheda o una limitazione del BIOS. "
aatdark,
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.