lunes, 16 de junio de 2008

Los 32 bit con 4 GB de memoria

Muchas veces os habréis encontrado en la situación de vender o reparar un equipo con 4 GB de RAM y un sistema operativo de 32 bit.

Aquí me centraré en:

  • Windows XP 32
  • Windows Vista 32

El direccionamiento de memoria en el mundo x86 (Intel, AMD) se hace de una manera complicada y podríamos incluso decir que arbitraria.

La 32ª potencia de 2 = 4 GBytes y esta es la máxima cantidad de memoria que un sistema operativo de 32 bit puede manejar.

Pero, y aquí viene el problema, no toda esta memoria está disponible para el usuario y los programas.

Image1

Mapa de memoria para un chipset Intel X48 de Core2. Fuente: Manual técnico placa Intel DX48BT2. Intel corp.

Hay partes de la memoria dedicadas a otras funciones críticas del sistema:

• BIOS/SPI Flash device (2 MB)
• Local APIC (19 MB)
• Direct Media Interface, DMI (40 MB)
• Interruciones del FSB Front side bus  (17 MB)
• Direcciones del PCI Ex (256 MB)
• Northbridge MCH (hasta 256 MB)
• Memory-mapped I/O de los dispositivos PCI y PCIEx (256 MB)

Como vemos, a groso modo, se nos van algo más de 750 MB, qudándonos con unos 3,25 GB de memoria real disponible.

En la página 42 de este PDF de la placa base Intel DX48BT2 se encuentra el gráfico superior e información adicional.

Etiquetas de Technorati: ,,,,

6 comentarios:

  1. ¿Y si le pones 2 Gb cuanto te queda?

    ResponderEliminar
  2. deberías de decir que esa "pérdida" de memoria también ocurren en sistemas de 64bits ;)

    ResponderEliminar
  3. Si tenemos 2 GB, serán 2 GB reales y disponibles.

    ResponderEliminar
  4. No entiendo muy bien eso de que con 4GB se "come" 750MB y con 2 no se come nada...

    ResponderEliminar
  5. si le pones 2 GB se come exactamente lo mismo. ¿o es que si no todo eso esta en el mundo etereo? pensemos un poquito, por dios.

    simplemente ocurre que windows no la reserva, esta "dispoible"...pero ocupada en todo momento.

    ResponderEliminar
  6. No es que se coma memoria ni nada parecido.
    En sistemas como WinXP32 o WinVista32 el direccionamiento de memoria llega sólamente hasta los 4 GB y la memoria disponible para el sistema y el usuario se queda en unos 3.25 a 3.5 GB.
    Por ejemplo, en mi sistema con un chipset iP35 (C2Quad) y 4 GB (2*2GB) físicos, WinXP32 "detecta" 3.5 GB y los programas Windows sólo pueden acceder a 2 GB cada uno hasta un máximo de 3.5 GB (lo he probado) pero Memtest86+ (fuera de Windows) testea correctamente 4 GB completos (la memoria está ahí físicamente ...)
    En cambio, cuando tenía físicamente 2 GB (2x1GB), tanto WinXP como los programas en Windows y Memtest86+ podían acceder a 2 GB completos.
    Es decir, Windows32 utiliza los últimos 512MB (en mi sistema; con otros chipsets puede llegar a 768MB) para manejar o referenciar dispositivos del sistema como PCIEx, PCI, Chipset, etc. Esos últimos "megas" de memoria están, pero es un rango de direcciones reservado y no disponible para Windows (kernel) ni para programas del usuario.

    Espero haber aclarado vuestras dudas.
    Un saludo.

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.