¿Cuál es la cantidad máxima de RAM que puedo usar en un hardware específico?

26

Tengo un portátil Asus U31SD con una CPU i5-2430M . El sitio de Asus dice que la RAM máxima es de 8 GB, pero Intel dice que mi CPU admite 16 GB. ¿Cuál es la RAM máxima que puedo usar en este sistema con Ubuntu?

crond
fuente
3
Para resumir lo que todos dicen, su computadora portátil solo puede usar 8GB de RAM, debido a las limitaciones de su placa base. Puede verificar esto mirando esta pregunta: askubuntu.com/questions/140322/…
reverendj1
a todos, me gustaría señalar que la compañía productora de memoria "corsair" tiene un localizador de memoria que puede decirle en general cuál es la cantidad máxima de RAM que puede usar su sistema. También puede ir a leer las hojas técnicas de su sistema de modelos buscándolas en línea, le indicará la RAM máxima que puede usar.
Thomas Ward
@ El Señor del Tiempo: ¿algún enlace?
0xC0000022L
Corsair Memory Finder / Configurator para el sistema al que se hace referencia en la pregunta: www2.corsair.com/configurator/… || Corsair Memory Finder (página de inicio): corsair.com/us/learn_n_explore (anunciarán sus productos, pero puedo usar esto como base general para encontrar especificaciones semi-precisas para memoria máxima
Thomas Ward

Respuestas:

29

El límite es en realidad entre su hardware (soporte de memoria de la placa base y la cantidad de ranuras en él) y la versión de Ubuntu (32 bits, 32 bits + PAE, x32ABI, 64 bits)

Si tiene una placa base que admite un máximo de 4 GB, no importa si usa 32 bits, 32 bits PAE o 64 bits, ya que tendrá un límite de hardware de 4 GB.

Pero si compra una placa base que admite una mayor cantidad de memoria, puede jugar con las versiones de Ubuntu, que tienen la siguiente memoria máxima admitida:

Ubuntu 32 Bit - 4GB RAM

Ubuntu 32 Bit + PAE (Extensión de dirección física) - 64GB RAM

Ubuntu x32ABI - 4 GB de RAM (Esto es para arquitectura de 32 bits modificada con mejoras de 64 bits que se ejecutan en hardware de 64 bits. Todavía no está disponible).

Ubuntu 64 Bit - ¡MUCHO! (En realidad, 2 ^ 64), pero debido a los límites de hardware y las computadoras del mundo real, el límite es de alrededor de 1 TB (1024 GB de RAM)

Por lo tanto, la pregunta sobre el límite de memoria debe usarse cuando está usando más de 4 GB de RAM. En este caso, necesitaría 32 bits PAE o 64 BIT que admiten tamaños de memoria realmente grandes.

También tenga en cuenta que si tiene, por ejemplo, 4 GB en este momento y compra 16 GB de RAM, no es necesario reinstalar Ubuntu ni hacer ningún cambio. Simplemente cambie los recuerdos y Ubuntu debería leerlos y trabajar con ellos fuera de la caja. No se necesita configuración. Si tiene 32 bits con 4 GB de RAM e instala 16 GB o RAM, Ubuntu cambiará automáticamente de 32 bits a 32 bits PAE. Puedo dar fe de esto ya que me mudé de 4GB a 16 GB a principios de este año.

Aquí hay un enlace a una muy buena explicación para Ubuntu sobre la memoria en 32/64: https://help.ubuntu.com/community/32bit_and_64bit#Memory

ACTUALIZACIÓN : olvidé agregar que algunas placas base tienen actualizaciones de BIOS que permiten, corrigen o mejoran la memoria máxima admitida. Por ejemplo, algunas placas base Intel en el pasado tenían problemas para trabajar con el máximo que admitían. Una actualización de BIOS solucionó esto. Otras placas base tenían soporte para 4 GB debido a un problema de BIOS, después de la actualización tenían soporte para más de 4 GB.

Al comparar también la memoria máxima admitida para la CPU y la placa base, la máxima que puede tener es la mínima de cualquiera de ellas. Así por ejemplo:

CASO 1
Memoria máxima admitida de la CPU: 16 GB Memoria máxima admitida de la
placa base: 8 GB
Su memoria máxima admitida: 8 GB (porque es el valor más bajo entre la CPU y la placa base)

CASO 2
Memoria máxima admitida de la CPU: 16 GB Memoria máxima admitida de la
placa base: 32 GB
Su memoria máxima admitida: 16 GB (porque es el valor más bajo entre la CPU y la placa base)

CASO 3
Memoria máxima admitida de la CPU: 16 GB Memoria máxima admitida de la
placa base: 64 GB
Su memoria máxima admitida: 16 GB (porque es el valor más bajo entre la CPU y la placa base)

La razón detrás de esta relación de límite de memoria con la CPU se debe a las modificaciones técnicas de Intel con las últimas CPU Core.

Entonces, en su caso, tiene una placa base que admite 8 GB y una CPU que admite 16 GB. Esto significa que el máximo que puede tener es de 8 GB que puede usar dependiendo de la cantidad de ranuras en la placa base. En ese Asus tienes 2 ranuras, lo que significa que puedes tener dos 4GB de RAM para completar el máximo de 8GB.

Más información sobre x32abi:

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

LWN - https://lwn.net/Articles/456731/ (Recomiende leer comentarios para explicaciones fáciles de aprender sobre el límite de memoria)

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

Por último, desde Ubuntu 12.04, todas las versiones de 32 bits de Ubuntu vienen con PAE activado por defecto, por lo que todos los 32 bits admitirán un máximo de 64 GB de RAM. En caso de que esté usando 12.04+ y quiera saber qué arquitectura usar, ahora sabe que puede usar cualquiera de ellos siempre que siga algunas recomendaciones:

  • Si tiene 512 MB de RAM o menos, se recomienda usar 32 bits

  • Si tiene menos de 4 GB de RAM pero más de 512 MB, se recomienda usar 32 bits (pero aún puede usar 64 bits)

  • Si tiene 4 GB de RAM, se recomienda usar 32 bits (pero aún puede usar 64 bits)

  • Si tiene entre 4 GB o RAM y 64 GB de RAM, puede usar 32 bits o 64 bits, pero se recomienda usar 64 bits.

  • Si tiene más de 64 GB de RAM, debe usar 64 bits

Luis Alvarado
fuente
Luis, ¿estás seguro del límite de 4 GB en x32? Esto seria triste. Leí en un artículo (revista alemana) que x32 admite más de 4 GB. ¿Y qué hay de PAE?
turbo
@turbo - Esa es una muy buena pregunta que me llevó un tiempo encontrar. Respondo con 4GB debido a esta parte de la explicación de "¿Qué es x32abi?": X32 ABI permite ejecutar programas en modo de 64 bits con punteros de 32 bits. Dado que funciona con punteros de 32 bits, esto significa que la memoria máxima que realmente puede usar para trabajar es de 4 GB. Por supuesto, no sé si hay un modo PAE x32abi, pero dado que es una forma de ejecutar programas de 32 bits para aprovechar algunas de las ventajas de 64 bits sin usar el doble de ram para las tareas, llegué a la conclusión de que está limitado por 32 bits. a 4GB de ram.
Luis Alvarado
1
En realidad, el límite para 64 bits es 2 ^ 48 bytes, y x32 es el mismo, solo limitado a 4 GB por proceso , para procesos x32. x32 ejecuta un núcleo de 64 bits, por lo que puede ejecutar algunos programas completos de 64 bits, pero x32 construye la mayoría de los programas para usar solo 32 bits.
psusi
6

Para 32 bits, el límite teórico es 2 ^ 32 = 4096 MB, pero desde Ubuntu 12.04 en el PAE (Extensión de dirección física) está activado de forma predeterminada con un límite de 2 ^ 36 = 64 GB.

Para 64 bits debería ser 2 ^ 64 = 16 777 216 TB (sí, eso es Terabyte) teóricamente. En realidad, la cantidad de RAM está limitada a 2 ^ 48 aka 256 TB de RAM.

Dado que los límites teóricos realmente no se pueden alcanzar en una computadora portátil normal, la limitación real es la cantidad de ranuras de memoria (normalmente 1-2) en su computadora portátil y el soporte del conjunto de chips. 8-16 GB es realista aquí si está dispuesto a pagar mucho dinero por módulos de 8 GB.

turbo
fuente
¿Puedo comprar 2 módulos de 8 gb de forma segura y esperar que funcionen? (Estoy ejecutando 64 bits, actualmente con 8 gb de ram)
crond
Bien seguro ...; P Otros portátiles con chips Intel HM65 Express admiten 16 GB (Asus G74SX-TZ293V), así que sí.
turbo
6

Acabo de comprar 8GB adicionales para poner en mi U31SD, por un total de 12GB. A pesar de que la página de especificaciones de Asus dice que 8 GB es el límite, esto funciona bien. Pasó memtest86 y es visible para Ubuntu de 64 bits.

Tengo instalada la última actualización de BIOS, no estoy seguro si eso hace alguna diferencia.

FYI, salida de sudo dmidecode -t 16indica Maximum Capacity: 16 GB.

usuario77303
fuente
1

Es una restricción en la placa base, no en la CPU. La CPU puede admitir hasta 16 GB, pero si la placa base solo puede tomar 8 GB, entonces ese es su límite.

En Ubuntu, si está ejecutando 32 bits, entonces su límite es de 4 GB y si está ejecutando 64 bits es mucho mayor (no puedo recordarlo con certeza, pero está muy por encima de 16 GB).

Pero siempre estará restringido por su hardware. Siempre debe comparar el límite de la placa base y el límite de la CPU y tomar el valor más bajo como límite de la PC.

Jacob Tomlinson
fuente
0

En su caso específico, 8 GB se deben a que su placa base no admite más que esa cantidad de RAM.

Pero Ubuntu mismo admite 4 GB como máximo para 32 bits, 64 GB en PAE de 32 bits y 128 GB en 64 bits (aunque en teoría el límite es mucho mayor para 64 bits).

MuffinStateWide
fuente
0

Hubo muchas preguntas sobre qué determina el tamaño de un puntero. básicamente, como regla general, se puede decir que esta es la arquitectura del procesador,

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)

Para direccionar 8 GB de RAM necesita 8.589.934.592 asignaciones y el puntero de tamaño 4 bytes no puede abordar todos los valores posibles. Por eso no puedo tener más de 4 GB de RAM en la arquitectura x86.

Sin embargo, hay otras posibilidades:

La cantidad de RAM no está limitada por la arquitectura (32 o 64 bits). La arquitectura solo decide cuánta memoria puede ser tratada a la vez, por el sistema operativo y los programas que se ejecutan en él. En una máquina de 32 bits, es decir, una máquina con bus de memoria de 32 bits de ancho, el sistema operativo y los programas pueden "ver" solo 4 GB de memoria. Pero eso no significa que solo haya 4 GB de RAM. Si el fabricante lo ha provisto, puede tener 16 GB o 4x4 GB de RAM. En ese caso, habrá 2 líneas de dirección "ocultas" más y también habrá una lógica codificada para decidir los niveles de esas 2 líneas, seleccionando así cualquiera de los 4 GB de RAM disponibles - 00 01 10 11. Estas capas de software no utilizan estos bits de dirección "ocultos", por lo que para estas capas, solo pueden usar un puntero de 4 bytes. El número de estos "ocultos"

Esto es sólo un ejemplo. Depende del proveedor, cómo deciden proporcionar la RAM adicional.

ver también:

En el caso habitual, un puntero es lo suficientemente grande como para contener más direcciones que unidades de memoria en el sistema. Esto introduce la posibilidad de que un programa intente acceder a una dirección que no corresponde a ninguna unidad de memoria, ya sea porque no hay suficiente memoria instalada (es decir, más allá del rango de memoria disponible) o porque la arquitectura no admite tales direcciones. El primer caso puede, en ciertas plataformas como la arquitectura Intel x86, llamarse un fallo de segmentación (segfault). El segundo caso es posible en la implementación actual de AMD64, donde los punteros tienen una longitud de 64 bits y las direcciones solo se extienden a 48 bits. Allí, los punteros deben ajustarse a ciertas reglas (direcciones canónicas), por lo que si un puntero no canónico se desreferencia, el procesador genera una falla de protección general.

Por otro lado, algunos sistemas tienen más unidades de memoria que direcciones. En este caso, se emplea un esquema más complejo como la segmentación de memoria o paginación para usar diferentes partes de la memoria en diferentes momentos. Las últimas encarnaciones de la arquitectura x86 admiten hasta 36 bits de direcciones de memoria física, que se asignaron al espacio de direcciones lineales de 32 bits a través del mecanismo de paginación PAE. Por lo tanto, solo se puede acceder a 1/16 de la memoria total posible a la vez. Otro ejemplo en la misma familia de computadoras fue el modo protegido de 16 bits del procesador 80286, que, aunque solo admite 16 MiB de memoria física, podía acceder a hasta 1 GiB de memoria virtual, pero la combinación de dirección y segmento de 16 bits Los registros hicieron que el acceso a más de 64 KiB en una estructura de datos fuera engorroso.

Para proporcionar una interfaz coherente, algunas arquitecturas proporcionan E / S mapeadas en memoria, lo que permite que algunas direcciones se refieran a unidades de memoria mientras que otras se refieren a registros de dispositivos de otros dispositivos en la computadora. Existen conceptos análogos, como las compensaciones de archivos, los índices de matriz y las referencias de objetos remotos que sirven para algunos de los mismos propósitos que las direcciones para otros tipos de objetos.

(más aquí )

4pie0
fuente