¿Por qué no se reconocen más de 3 GB de RAM cuando se usa AMD64?

8

¿Por qué Ubuntu 10.10 amd64 (Maverick Meerkat) no aborda más de 3 GB de RAM?

Mi máquina es un procesador Toshiba P205-S6287 Intel Centrino Duo de 64 bits y 4 GB de RAM a 667 MHz.

Según las especificaciones detalladas , el portátil ejecuta un procesador Core 2 Duo T5300 de 64 bits y tiene un chipset 945GM Express.

Peter Mortensen
fuente
3
Es un misterio, ¿puede informar la salida de uname -a, la salida de free -my también confirmar que tiene más de 3 GB de RAM activa mirando su dmidecode?
Martin Owens -doctormo-
1
¿Y estás seguro de que tienes una versión de 64 bits de Ubuntu? Que uname -adice
Vojtech Trefny
mismo problema, optiplex gx620 5 Gb Ram

Respuestas:

16

Esto se debe al Mobile Intel 945GM Express en su computadora portátil.

Tengo un Thinkpad T60, que usa el mismo chipset. Fue uno de los primeros puentes híbridos de Intel para las CPU Core2Duo de 64 bits. Fracasaron en diseñarlo.

El conjunto de chips solo puede abordar teóricamente 4 GB de RAM, pero también tiene que abordar otro hardware (memoria de E / S). Se reserva el rango de memoria superior de 1 GB para eso. El soporte de dirección de memoria lógica de 64 bits en el kernel de Linux no ayuda, porque la placa base y el puente norte solo proporcionan un bus de dirección física de 32 bits a la CPU. Y no hay solución 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

Hay una opción teórica para diseñar la conmutación del banco de memoria. Sin embargo, el núcleo no lo admite, ni tendría sentido en la arquitectura x86. El controlador de memoria i810 del 945GM es probablemente demasiado vago para que tenga sentido.

mario
fuente
1

Mi respuesta corta es: probablemente porque el diseñador del BIOS fue descuidado.

La respuesta larga es:

Aunque tiene 4 GB de RAM instalados, no puede esperar tener 4 GB de RAM disponible con el chipset Intel 945GM. Esta es una limitación del conjunto de chips. Puedes decir esto de la especificación del chipset:

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

Cita de la sección 9.2: " El M emory C ontroller H . UBS proporciona un máximo DRAM espacio de direcciones de decodificación de 4 GB El MCH hace no APIC establecimiento nuevo de correspondencias o espacio de memoria PCI Express esto significa que como la cantidad de memoria física poblada en los alcances del sistema. 4 GB, habrá memoria física que existe pero que no es direccionable y, por lo tanto, inutilizable por el sistema " .

El BIOS debe reservar rangos de direcciones para varios recursos, es decir, el BIOS en sí, el espacio mapeado de memoria PCI y PCI Express, los gráficos internos, el espacio de memoria APIC y otras ventanas de memoria para el acceso de E / S. Todos estos rangos de direcciones tienen que estar dentro del espacio de direcciones de 4GB y, como tal, ocupan rangos de direcciones que ya no están disponibles para la memoria del sistema. Se podría decir que estos recursos "roban" espacio de memoria RAM física.

Dicho esto, si tiene 4 GB instalados , puede esperar tener más de 3 GB de memoria de sistema disponible .

La cantidad de memoria física que está disponible para el sistema depende de la cantidad de esfuerzo que el diseñador del BIOS pone en la organización de estos rangos de direcciones. Por ejemplo, el BIOS podría asignar la menor cantidad necesaria para cada recurso. O podría permitir deshabilitar o limitar la asignación de direcciones para PCI Express dependiendo del uso de su sistema de dispositivos PCI Express.

Es probable que el diseñador de BIOS de su sistema establezca el límite superior de RAM utilizable en un máximo estático de 3 GB, aunque haya instalado 4 GB. Este enfoque proporciona una ventana de dirección estática de 1 GB al diseñador del BIOS y, como tal, simplifica la tarea de los diseñadores del BIOS de asignar rangos de direcciones para los recursos para que no entren en conflicto con ningún otro rango de direcciones.

Daniel K.
fuente
1

Hay varias razones posibles.

Una es que, de hecho, no está ejecutando la compilación amd64. Otra es que su placa base y / o BIOS están rotos y no informan la cantidad correcta de RAM.

Otra es que tiene memoria de video y otros recursos de hardware que ocupan espacio en el área de memoria de 3-4 GB, y su placa base / BIOS es incapaz de elevar la RAM sombreada a direcciones más altas para poder acceder a ella.

Averiguar cuál requiere mirar su dmesgsalida.

psusi
fuente
0

psusi tiene razón.

Tengo la misma situación aquí:

Aunque lo llaman "CPU de 64 bits", a menudo no se puede direccionar 4 GB + memoria.

La mayoría de las placas base antiguas solo tienen 32 bits para las direcciones y de este grupo la tarjeta gráfica también necesita obtener sus direcciones.

= 4 GB - memoria de tarjeta gráfica (1 GB) = 3 GB.

Me temo que no hay posibilidad de arreglar esto parcheando o actualizando el firmware de nada.

Si está interesado en los detalles, le recomiendo: Extensión de dirección física

aatdark
fuente
Además: si es posible, el instalador normal de 32 bits habilitará automáticamente el núcleo de la Extensión de dirección física si es necesario, permitiéndole usar toda su memoria.
Stefano Palazzo
Como ha sido notificado por @StefanoPalazzo y otros instalando el kernel PAE resuelve el problema Simplemente busque el kernel PAE en el administrador de paquetes sináptico e instale: hailubuntu.blogspot.com/2010/09/ubuntu-detecting-less-ram.html
wisemonkey
1
@wisemonkey: no, un núcleo PAE no me dio los 4GB completos. Porque ya uso un kernel de 64 bits e incluso los informes de BIOS: 4 GB en total -> 3.2 GB utilizables.
aatdark
@aatdark: ¿Su configuración de BIOS tiene el campo "Memoria de video compartida"? En caso afirmativo, puede deshabilitarla (solo se recomienda si tiene una tarjeta gráfica discreta), pero nuevamente, como dijo si su computadora anterior, la memoria completa no es direccionable.
wisemonkey
1
"Los conjuntos de chips Intel Intel® 945 base proporcionan un espacio de direcciones máximo de 4 GB y no admiten la reasignación de memoria. Como algunas partes de esa dirección deben reservarse para otros dispositivos, no podrá utilizar más de 3.2 GB de memoria del sistema con su configuración actual del sistema. Ninguna actualización del BIOS o sistema operativo de 64 bits cambiará eso. Este es un chipset en lugar de una placa o limitación del BIOS ".
aatdark