En informática , el término barrera de 3 GB se refiere a una limitación de algunos sistemas operativos de 32 bits que se ejecutan en microprocesadores x86 . Evita que los sistemas operativos utilicen los 4 GB ( 4 × 1024 3 bytes ) de la memoria principal. [1] La barrera exacta varía según la configuración de la placa base y del dispositivo de E / S, particularmente el tamaño de la RAM de video ; puede estar en el rango de 2,75 GB a 3,5 GB. [2] La barrera no está presente con un procesador de 64 bits y sistema operativo de 64 bits, o con cierto hardware x86 y un sistema operativo como Linux o ciertas versiones de Windows Server y macOS que permiten el uso del modo de extensión de dirección física (PAE) en x86 para acceder a más de 4 GB de RAM.
Cualquiera que sea la posición real de la "barrera", no hay ningún código en el software del sistema operativo ni ningún límite arquitectónico de hardware que lo imponga directamente. Más bien, la "barrera" es el resultado de interacciones entre varios aspectos de ambos.
Límites de direcciones físicas
Muchas computadoras de 32 bits tienen 32 bits de dirección física y, por lo tanto, están limitadas a 4 GB (2 32 palabras ) de memoria . [3] [4] Los procesadores x86 anteriores al Pentium Pro tienen 32 bits de dirección física o menos; sin embargo, la mayoría de los procesadores x86 desde el Pentium Pro, que se vendió por primera vez en 1995, tienen el mecanismo de extensión de dirección física (PAE), [5] que permite direccionar hasta 64 GB (2 36 palabras) de memoria. PAE es una modificación del esquema de traducción de direcciones en modo protegido que permite traducir direcciones virtuales o lineales a direcciones físicas de 36 bits , en lugar de las direcciones de 32 bits disponibles sin PAE. [6] Los pines de la CPU también proporcionan 36 bits de líneas de direcciones físicas a la placa base. [7]
Muchos sistemas operativos x86, incluida cualquier versión de Linux con un kernel PAE y algunas versiones de Windows Server y macOS , pueden usar PAE para direccionar hasta 64 GB de memoria en un sistema x86. [8] [9] [10]
Hay otros factores que pueden limitar esta capacidad de utilizar hasta 64 GB de memoria y llevar a la "barrera de los 3 GB" en determinadas circunstancias, incluso en procesadores que implementan PAE. Estos se describen en las siguientes secciones.
Chipset y otros problemas de la placa base
Aunque, como se señaló anteriormente, la mayoría de los procesadores x86 desde Pentium Pro en adelante son capaces de generar direcciones físicas de hasta 64 GB, el resto de la placa base debe participar para permitir que la CPU aborde la RAM por encima del punto de 4 GB. Existen chipsets y placas base que permiten más de 4 GB de RAM con procesadores x86, pero en el pasado, la mayoría de aquellos destinados al mercado de servidores de gama alta sólo podían acceder a 4 GB de RAM. [11]
Sin embargo, esto no es suficiente para explicar la "barrera de los 3 GB" que aparece incluso cuando se ejecutan algunas versiones x86 de Microsoft Windows en plataformas que pueden acceder a más de 4 GB de RAM.
E / S mapeadas en memoria y RAM deshabilitada
Las computadoras personales modernas se basan en un conjunto de estándares que dependen, entre otras cosas, de las características del bus PCI original . El bus PCI original implementó direcciones físicas de 32 bits y transferencias de datos de 32 bits de ancho. Los dispositivos PCI (y PCI Express y AGP ) presentan al menos algunas, si no todas, sus interfaces de control de host a través de un conjunto de ubicaciones de E / S asignadas en memoria (MMIO). El espacio de direcciones en el que aparecen estas ubicaciones MMIO es el mismo espacio de direcciones que el utilizado por la RAM, y aunque la RAM puede existir y ser direccionable por encima del punto de 4 GB, estas ubicaciones MMIO decodificadas por dispositivos de E / S no pueden serlo. Están limitados por las especificaciones del bus PCI a direcciones de 0xFFFFFFFF (2 32 - 1) e inferiores. Con 4 GB o más de RAM instalados, y con RAM ocupando un rango contiguo de direcciones a partir de 0, algunas de las ubicaciones de MMIO se superpondrán con las direcciones de RAM. En máquinas con grandes cantidades de memoria de video, se ha encontrado que las ubicaciones MMIO ocupan hasta 1.8 GB del espacio de direcciones de 32 bits. [12]
El BIOS y el chipset son responsables de detectar estos conflictos de direcciones y deshabilitar el acceso a la RAM en esas ubicaciones. [13] Debido a la forma en que se determinan los rangos de direcciones de bus en el bus PCI, esta deshabilitación a menudo tiene una granularidad relativamente grande, lo que resulta en la deshabilitación de cantidades relativamente grandes de RAM. [14]
Reasignación de direcciones
Los conjuntos de chips x86 que pueden manejar más de 4 GB de RAM normalmente también permiten la reasignación de memoria (denominada en algunas pantallas de configuración del BIOS como " reasignación de agujeros de memoria "). En este esquema, el BIOS detecta el conflicto de direcciones de memoria y, de hecho, reubica la RAM que interfiere para que el procesador pueda abordarla en una nueva dirección física que no entre en conflicto con MMIO. [ cita requerida ] En el lado de Intel, esta característica una vez se limitó a conjuntos de chips de servidor; sin embargo, los conjuntos de chips de escritorio más nuevos, como Intel 955X y 965 y posteriores, también lo tienen. [ cita requerida ] En el lado de AMD , el controlador de memoria integrado de los procesadores AMD K8 y posteriores lo tenía desde el principio. [ cita requerida ]
Como las nuevas direcciones físicas están por encima del punto de 4 GB, el direccionamiento de esta RAM requiere que el sistema operativo pueda utilizar direcciones físicas mayores de 2 32 . [15] Esta capacidad es proporcionada por PAE. Tenga en cuenta que no es necesario que el sistema operativo admita más de 4 GB de RAM en total , ya que la RAM total puede ser de solo 4 GB; es solo que una parte aparece a la CPU en direcciones en el rango de 4 GB en adelante. [15]
Esta forma de la barrera de los 3 GB afecta a una generación de MacBooks , [16] que dura 1 año (Core2Duo (Merom) - noviembre de 2006 a octubre de 2007): la generación anterior estaba limitada a 2 GB, mientras que las generaciones posteriores (noviembre de 2007 - octubre de 2009) ) permitió 4 GB mediante el uso de PAE y reasignación de huecos de memoria, y las generaciones posteriores (finales de 2009 en adelante) usan procesadores de 64 bits y, por lo tanto, pueden direccionar más de 4 GB.
Dependencias de la versión de Windows
Los SKU x86 "no servidor" o "cliente" de Windows XP y posteriores operan procesadores x86 en modo PAE de forma predeterminada cuando la CPU presente implementa el bit NX . Sin embargo, estos sistemas operativos no permiten el direccionamiento de la memoria física por encima del límite de direcciones de 4 GB. Este no es un límite arquitectónico; es un límite impuesto por Microsoft a través de rutinas de aplicación de licencias como solución para los problemas de compatibilidad de controladores de dispositivos que supuestamente se descubrieron [17] durante las pruebas. [18]
Por lo tanto, la "barrera de los 3 GB" en los sistemas operativos "cliente" de Windows x86 puede surgir en dos escenarios ligeramente diferentes. En ambos, la RAM cerca del punto de 4 GB entra en conflicto con el espacio de E / S asignado a la memoria. O el BIOS simplemente desactiva la RAM en conflicto; o, el BIOS reasigna la RAM conflictiva a direcciones físicas por encima del punto de 4 GB, [ cita requerida ] pero las ediciones de cliente de Windows x86 se niegan a usar direcciones físicas superiores a esa, a pesar de que se ejecutan con PAE habilitado. Por lo tanto, la RAM en conflicto no está disponible para el sistema operativo, ya sea que esté reasignada o no.
Ver también
- Barrera de 640 KB
- x86-64
- PSE-36 : una alternativa a PAE en procesadores x86 para ampliar las capacidades de direccionamiento de la memoria física de 32 bits a 36 bits
- Agujero PCI
- Anillo de protección
- Unidad de RAM : un uso de la RAM reasignada
- Memoria virtual : que gobierna la memoria disponible para los procesos.
- Espacio de usuario y espacio del kernel, que impone otro límite
Referencias
- ^ Corporación Microsoft. "Límites de memoria para versiones de Windows" . Consultado el 7 de agosto de 2017 .
Los dispositivos deben asignar su memoria por debajo de 4 GB para que sean compatibles con las versiones de Windows que no son compatibles con PAE. Por lo tanto, si el sistema tiene 4 GB de RAM, parte de ella está deshabilitada o la BIOS la reasigna por encima de 4 GB. Si se reasigna la memoria, X64 Windows puede usar esta memoria. Las versiones de cliente X86 de Windows no admiten memoria física por encima de la marca de 4 GB, por lo que no pueden acceder a estas regiones reasignadas.
- ^ Russinovich, Mark Eugene . "Empujando los límites de Windows: memoria física" . Technet . Microsoft . Consultado el 7 de agosto de 2017 .
- ^ Murray, Matthew (27 de octubre de 2009). "Windows 7: la pregunta de 64 bits" . PCMag . Consultado el 7 de agosto de 2017 .
Un sistema de 32 bits está limitado a utilizar 4 GB de RAM (2 32 direcciones)
- ^ Patrizio, Andy (22 de julio de 2002). "AMD responde a la pregunta de 64 bits" . Cableado . Archivado desde el original el 16 de diciembre de 2008 . Consultado el 7 de agosto de 2017 .
Los procesadores de 32 bits como Pentium III / IV de Intel y Athlon de AMD tienen un límite de memoria de 4 GB por CPU. No se puede abordar más memoria.
- ^ Shanley, Tom (1998). Arquitectura del sistema Pentium Pro y Pentium II . Serie de arquitectura de sistemas de PC (segunda ed.). Addison-Wesley . pag. 445 . ISBN 0-201-30973-4.
- ^ "Volumen 1: Especificaciones" (PDF) . Manual del desarrollador de la familia Pentium Pro . Intel Corporation . Enero de 1996. p. 3-15 . Consultado el 12 de diciembre de 2018 .
El espacio de direcciones físicas del procesador Pentium Pro es de 2 36 bytes o 64 Gigabytes (64 Gbyte).
- ^ "Volumen 1: Especificaciones" (PDF) . Manual del desarrollador de la familia Pentium Pro . Intel Corporation . Enero de 1996. p. 15–5 . Consultado el 12 de diciembre de 2018 .
Pin #: C1; Nombre de la señal: A35 #
- ^ Corporación Microsoft. "Límites de memoria para versiones de Windows" . Consultado el 7 de agosto de 2017 .
Windows Server 2008 Enterprise; Límite en Windows de 32 bits: 64 GB
- ^ "Habilitación de PAE" . Documentación de Ubuntu . 2010-05-19 . Consultado el 7 de junio de 2010 .
La extensión de dirección física es una tecnología que permite que los sistemas operativos de 32 bits usen hasta 64 GB de memoria ... PAE es compatible con la mayoría de las computadoras hoy en día y es un procedimiento fácil para habilitarlo en Ubuntu, si aún no lo está.
- ^ "Kernel de Linux" . Documentación de Fedora . 2010-05-18 . Consultado el 7 de junio de 2010 .
Fedora 8 incluye las siguientes compilaciones del kernel: ... El kernel-PAE, para usar en sistemas x86 de 32 bits con más de 4GB de RAM, o con CPU que tienen una característica NX (No eXecute).
- ^ Intel Corporation (febrero de 2005). "Compatibilidad con memoria del sistema Intel Chipset de 4 GB" (PDF) . Manual del desarrollador de la familia Pentium Pro . pag. 7. Archivado desde el original (PDF) el 2007-03-06 . Consultado el 7 de agosto de 2017 .
En los sistemas basados en uni-procesador para servidores móviles, de escritorio, estaciones de trabajo y de nivel de entrada, los conjuntos de chips pueden estar limitados a 4 GB de memoria máxima. En las estaciones de trabajo y los conjuntos de chips de servidor Intel de doble procesador de la actualidad, el tamaño máximo de memoria del sistema puede ser superior a 16 GB.
- ^ Russinovich, Mark Eugene (21 de julio de 2008). "Empujando los límites de Windows: memoria física" . Archivado desde el original el 9 de junio de 2010 . Consultado el 7 de agosto de 2017 .
Windows XP SP2 también habilitó la compatibilidad con Extensiones de direcciones físicas (PAE) de forma predeterminada en el hardware que implementa memoria de no ejecución porque es necesaria para la Prevención de ejecución de datos (DEP), pero que también habilita la compatibilidad con más de 4 GB de memoria.
- ^ Intel Corporation (febrero de 2005). "Compatibilidad con memoria del sistema Intel Chipset de 4 GB" (PDF) . Archivado desde el original (PDF) el 2007-03-06 . Consultado el 7 de agosto de 2017 .
En plataformas pobladas con tamaños de memoria física cercanos a 4 GB y más, los requisitos de recursos del sistema integrado probablemente no permitirán que el sistema operativo aproveche toda la memoria física poblada debido a los requisitos de especificación PCI y otros recursos de E / S asignados a la memoria. Algunas partes de la memoria física pueden superponerse con el espacio de memoria dedicado a otros subsistemas y dejar de estar disponibles para el sistema operativo.
- ^ Intel Corporation (febrero de 2005). "Compatibilidad con memoria del sistema Intel Chipset de 4 GB" (PDF) . Manual del desarrollador de la familia Pentium Pro . pag. 8. Archivado desde el original (PDF) el 2007-03-06 . Consultado el 7 de agosto de 2017 .
- ^ a b Intel Corporation (febrero de 2005). "Compatibilidad con memoria del sistema Intel Chipset de 4 GB" (PDF) . Manual del desarrollador de la familia Pentium Pro . pag. 13, 14. Archivado desde el original (PDF) el 2007-03-06 . Consultado el 7 de agosto de 2017 .
Para utilizar la reasignación, el sistema operativo debe poder abordar rangos superiores a 4 GB de memoria.
- ^ "Comprensión de Intel Mac RAM" . Archivado desde el original el 2 de marzo de 2010 . Consultado el 11 de marzo de 2010 .
- ^ Chappell, Geoff. "Memoria con licencia en Windows Vista de 32 bits" . geoffchappell.com . Consultado el 20 de abril de 2014 .
- ^ Russinovich, Mark Eugene (21 de julio de 2008). "Empujando los límites de Windows: memoria física" . Archivado desde el original el 9 de junio de 2010 . Consultado el 7 de agosto de 2017 .
Windows XP SP2 también habilitó la compatibilidad con Extensiones de direcciones físicas (PAE) de forma predeterminada en el hardware que implementa memoria de no ejecución porque es necesaria para la Prevención de ejecución de datos (DEP), pero que también habilita la compatibilidad con más de 4 GB de memoria. […] El ecosistema de controladores de cliente problemático llevó a la decisión de los SKU de los clientes de ignorar la memoria física que reside por encima de 4 GB, aunque teóricamente pueden abordarla. […] 4 GB es el límite de licencia para SKU de cliente de 32 bits.
enlaces externos
- Cómo utilizar 4 GB de RAM en Windows 7 de 32 bits (Gavotte RAMDisk en Windows 7)
- Por qué debería olvidarse de 4 GiB de RAM en sistemas de 32 bits y seguir adelante