Aunque es un problema que ya viene sucediendo desde hace bastante tiempo, todavía hay mucha gente que no lo tiene claro. Me refiero a si es posible ampliar a 4GB de RAM o más las máquinas que tenemos.
La tónica es que muchos creen que la ampliación de RAM está sólamente limitada por sus bolsillos o (cuando se trata de equipos viejo) por el hardware. Pero no es así.
Lo habitual es que incluso hardware actuales imponga fuertes trabas, como suele ocurrir en netbooks y portátiles. Además, hay otro impedimento que muchos no tienen en cuenta y se trata del software. Resulta que cada sistema operativo también impone su propio límite de RAM.
Como la explición del problema es algo compleja muchos se quedan con caras de bobos y simplemente lo aceptan. Por eso voy a intentar dar un poco de luz a este rompecabezas.
LÍMITE PROVOCADO POR EL HARDWARE
En primer lugar, se debe tener claro como se direccionan las posiciones de memoria RAM dentro de nuestro ordenador. Para hacerlo, se utiliza un número. Por ejemplo, posición de memoria 1, posición de memoria 2, posición de memoria 3,... y ese número (1, 2, 3, 4, 5, ...) es representado dentro de la máquina en binario.
Bien, resulta que hasta hace poco, todos los computadores personales eran fabricados con arquitectura de 32 bits para manejar la RAM. Eso quiere decir que manejan números binarios de hasta 32 dígitos. Y resulta que con 32 dígitos el mayor número representable en sistema binario es 11111111111111111111111111111111.
Ese número, en nuestro conocido sistema decimal equivale a 4294967295. Es decir podemos representar hasta 4294967296 direcciones si incluimos el cero. Como cada dirección equivale a un byte, podemos direccionar hasta 4GigaBytes. Veamos porqué:
NOTA: En informática los múltiplos Kilo, Mega, Giga, Tera,... se hacen por 1024 en vez de por 1000 (como ocurre en el sistema tradicional) porque facilita las operaciones en binario.
Ahora ya podemos entender que sea cual sea nuestro sistema operativo no podremos utilizar más de 4GB de RAM si la arquitectura de nuestro equipo es de 32 bits.
Para solucionar eso, los fabricantes decidieron hace unos años comenzar a realizar arquitecturas de más de 32 bits. Y para conseguir mayor compatibilidad con esas extendidas arquitecturas de 32 bits empezó el desarrollo de arquitecturas de 64 bits (es obvia la compatibilidad, 32 + 32 = 64).
NOTA: Se debe tener en cuenta que a veces también existen algunas limitaciones impuestas por placas base u otros componentes.
LÍMITE PROVOCADO POR EL HARDWARE
Tras conocer el límite que impone el hardware, veamos cual es el impuesto por el sistema operativo.
En primer lugar tendremos que aclarar que los sistemas operativos desarrollados para arquitecturas de 32 bits y los desarrollados para arquitecturas de 64 bits son diferentes, a pesar de que a veces sus nombres creen confusión. Así tendremos que diferenciar "WinXP" de "WinXP 64", "Win2003 Server" de "Win2003 Server 64", "WinVista" para 32 bits de "Winvista" para 64 bits, "Win7" para 32 bits de "Win7" para 64 bits, "Ubuntu" para 32bits de "Ubuntu" para 64 bits,...
Los límites de memoria RAM instalable en sistemas de 64 bits suelen estar muy lejos de poder ser superados. Es decir soportan cualquier cantidad de RAM que podamos instalar a día de hoy. Sin embargo, los sistemas operativos de 32 bits, además de poseer el tope físico de 4GB impuesto por el hardware como ya vimos, en muchas ocasiones también se ven limitados por ciertas características de los mismos, como el mapeo de dispositivos, el uso (o no) del modo PAE,...
Bueno, creo que con esta información es suficiente para aclarar las dudas que suelen surgir respecto a las limitaciones de ampliación que suele imponer la RAM. Para más información no dudéis en comentar.
Salu2,
elSant0
La tónica es que muchos creen que la ampliación de RAM está sólamente limitada por sus bolsillos o (cuando se trata de equipos viejo) por el hardware. Pero no es así.
Lo habitual es que incluso hardware actuales imponga fuertes trabas, como suele ocurrir en netbooks y portátiles. Además, hay otro impedimento que muchos no tienen en cuenta y se trata del software. Resulta que cada sistema operativo también impone su propio límite de RAM.
Como la explición del problema es algo compleja muchos se quedan con caras de bobos y simplemente lo aceptan. Por eso voy a intentar dar un poco de luz a este rompecabezas.
LÍMITE PROVOCADO POR EL HARDWARE
En primer lugar, se debe tener claro como se direccionan las posiciones de memoria RAM dentro de nuestro ordenador. Para hacerlo, se utiliza un número. Por ejemplo, posición de memoria 1, posición de memoria 2, posición de memoria 3,... y ese número (1, 2, 3, 4, 5, ...) es representado dentro de la máquina en binario.
Bien, resulta que hasta hace poco, todos los computadores personales eran fabricados con arquitectura de 32 bits para manejar la RAM. Eso quiere decir que manejan números binarios de hasta 32 dígitos. Y resulta que con 32 dígitos el mayor número representable en sistema binario es 11111111111111111111111111111111.
Ese número, en nuestro conocido sistema decimal equivale a 4294967295. Es decir podemos representar hasta 4294967296 direcciones si incluimos el cero. Como cada dirección equivale a un byte, podemos direccionar hasta 4GigaBytes. Veamos porqué:
4294967296 / 1024 = 4194304 KiloBytes
4194304 / 1024 = 4096 MegaBytes
4096 / 1024 = 4 GigaBytes
NOTA: En informática los múltiplos Kilo, Mega, Giga, Tera,... se hacen por 1024 en vez de por 1000 (como ocurre en el sistema tradicional) porque facilita las operaciones en binario.
Ahora ya podemos entender que sea cual sea nuestro sistema operativo no podremos utilizar más de 4GB de RAM si la arquitectura de nuestro equipo es de 32 bits.
Para solucionar eso, los fabricantes decidieron hace unos años comenzar a realizar arquitecturas de más de 32 bits. Y para conseguir mayor compatibilidad con esas extendidas arquitecturas de 32 bits empezó el desarrollo de arquitecturas de 64 bits (es obvia la compatibilidad, 32 + 32 = 64).
NOTA: Se debe tener en cuenta que a veces también existen algunas limitaciones impuestas por placas base u otros componentes.
LÍMITE PROVOCADO POR EL HARDWARE
Tras conocer el límite que impone el hardware, veamos cual es el impuesto por el sistema operativo.
En primer lugar tendremos que aclarar que los sistemas operativos desarrollados para arquitecturas de 32 bits y los desarrollados para arquitecturas de 64 bits son diferentes, a pesar de que a veces sus nombres creen confusión. Así tendremos que diferenciar "WinXP" de "WinXP 64", "Win2003 Server" de "Win2003 Server 64", "WinVista" para 32 bits de "Winvista" para 64 bits, "Win7" para 32 bits de "Win7" para 64 bits, "Ubuntu" para 32bits de "Ubuntu" para 64 bits,...
Los límites de memoria RAM instalable en sistemas de 64 bits suelen estar muy lejos de poder ser superados. Es decir soportan cualquier cantidad de RAM que podamos instalar a día de hoy. Sin embargo, los sistemas operativos de 32 bits, además de poseer el tope físico de 4GB impuesto por el hardware como ya vimos, en muchas ocasiones también se ven limitados por ciertas características de los mismos, como el mapeo de dispositivos, el uso (o no) del modo PAE,...
- MAPEO DE DISPOSITIVOS
Debido a una característica de diseño de las placas madre que los fabricantes arrastran desde los años 80 (por motivos de compatibilid), en la mayoría de sistemas operativos, para que el software pueda comunicarse con los dispositivos (teclado, mouse, t. sonido, USBs,...), se le asigna una porción de RAM a cada dispositivo y allí lee/escribe cada uno de los mismos, así como los programas. El nombre que recibe esta función es MMIO o Memory-Mapped I/O (Entrada/Salida asignada a memoria).
En Windows XP, por ejemplo, si hay 4GB de RAM, ésta se bloquea por encima de los 3GB (otras veces 3,2GB ó 3,7GB,...), denegando el acceso a las aplicaciones y reservando dicha memoria a los dispositivos (estén conectados o no). Cuando hay menos de 4GB, la memoria reservada para dispositivos es tomada de otras zonas de la RAM y por eso el sistema informa de que la usamos en su totalidad aunque tampoco sea cierto.
En los sistemas basados en UNIX (Solaris, BSD, Mac OS X, Linux como Ubuntu, Fedora,...) ese mapeo se realiza sobre el disco duro, no sobre la RAM. Por tanto el uso de RAM por los dispositivos se hace bajo demanda en forma de procesos.
- MODO PAE
El modo PAE (Phisical Address Extension) es un método de direccionamiento diferente al explicado más arriba. Antes utilizábamos todos los dígitos posibles para crear una dirección de memoria RAM. En modo PAE se reservan 4 dígitos (o bits) para dividir las direcciones internamente en varias porciones y así alcanzar (en sistemas de 32 bits) los 64GB de RAM.
Ese límite de 64GB es teórico. Posteriormente estará restringido por las cualidades del sistema operativo. Por ejemplo si es usado el PAE en Win2000, Win2003 Server o WinXP, éstos estarán limitados a un máximo de 4 GB de memoria. Sin embargo, Win2000/2003 Advanced Server, WinVista o Win7 amplían este limite a 8Gb o más.
Como inconveniente a este método hay que tener en cuenta que se penaliza el tiempo necesario para acceder a la memoria y, también, que los drivers usados deben estar preparados para ello.
Es usado sobre todo en los últimos sistemas de Microsoft para evitar las restricciones impuestas por sus diseños anteriores. Así pues, es posible activar el modo PAE en algunos Windows que no lo tuvieran activado por defecto, como WinXP (con ServiPack 2). Para hacerlo se debe incluir al final del fichero boot.ini el modificador "/PAE". De esa forma al arrancar se cargará un núcleo especial de Windows y no el núcleo normal.
En el caso de sistemas UNIX el modo PAE no ha sido implementado.
Bueno, creo que con esta información es suficiente para aclarar las dudas que suelen surgir respecto a las limitaciones de ampliación que suele imponer la RAM. Para más información no dudéis en comentar.
Salu2,
elSant0
7 comentarios:
Muy buen tema, me aclaro varías dudas.
saludos
Tengo ubuntu 10.10 con 512 mb de ram le puse 512 mb mas, pero el sistema no me las reconoce, me podría ayudar al respecto, gracias.
Bueno Anónimo, lo puedo intentar, pero necesitaría un poco más de info ;)
Salu2
Estimado:
Como ya te informé Ubuntu no me reconoce toda la memoria ram que tengo instalada, te adjunto información de mi equipo:
{ Intel(R) Celeron(R) CPU 2.66GHz; Intel Corp.; 64 bits; 4GB+ memory addressing (Physical Address Extension);...[Contenido reducido por elSant0] }
Desde ya muchas gracias por tu ayuda.
Hola de nuevo Anónimo. Según la información que das, tu equipo reconoce 4GB de RAM, no 512MB como indicabas al principio. ¿Estás seguro de que no es tomada toda tu RAM?
Puedes contrastar la que reconoce el hardware con la que toma Ubuntu:
* Tomada por el hardware: Cuando arranca, justo antes de cargar el SO e incluso la BIOS, el equipo hace un testeo de la memoria y muestra brevemente la cantidad y estado de la misma (suele emitir un pitido al finalizarlo).
* Tomada por Ubuntu: Teclea el siguiente comando en una Terminal,
~$ grep MemTotal /proc/meminfo
Si el problema es hardware habría que comprobar la correcta instalación y modelo de RAM instalada. Si, por el contrario es de Ubuntu, habría que comprobar configuración del mismo.
Por cierto, espero que no te moleste que haya eliminado de tu comentario las líneas con información de tu equipo que no me parecieron relevantes, pero lo creí excesivamente extenso. Para casos así también puedes enviarme un correo a través de la página de contacto ;)
salu2
Hola de nuevo, las 4gb que aparecen en el informe son la máximo que se le puede poner de ram, hice la operación que tu me sugieres y el sistema dice 442508 kb, lo cual sería 432,1 mb lo mismo que muestra el monitor del sistema. Cuando compré la memoria ram de 512 mb la puse sola en el equipo y funcionaba bien, luego al poner la tarjeta antigua supuse que tendría que haber 1GB de ram pero nada sigue apareciendo los 432,1.
Gracias por tu tiempo y paciencia.
Anónimo, si con el módulo de memoria viejo detecta sólo 432MB y con el nuevo 512MB está claro que el primero está dañado. Seguramente ese sería el motivo de tus problemas. Deberías probar ambos en la misma ranura de expansión y después, si puedes, en otro equipo.
Si por el contrario la máquina te indica con cualquiera de los 2 módulos sólo 432MB, hay 80MB que están siendo asignados a algún otro hardware (posiblemente la tarjeta gráfica). Me sería de utilidad una descripción de tu hardware (placa madre, t. gráfica, modelo de RAM,...) para descartar alguna limitación del mismo.
Publicar un comentario
Escribe aquí tus valoraciones, dudas, sugerencias,... Son sólo unos instantes y ayuda a mejorar el blog.