Memoria convencional


En la administración de memoria de DOS , la memoria convencional , también llamada memoria base , son los primeros 640 kilobytes de la memoria en una PC IBM o sistemas compatibles. Es la memoria de lectura y escritura directamente direccionable por el procesador para uso del sistema operativo y los programas de aplicación. A medida que los precios de la memoria disminuyeron rápidamente, esta decisión de diseño se convirtió en una limitación en el uso de grandes capacidades de memoria hasta la introducción de sistemas operativos y procesadores que la hicieron irrelevante.

La barrera de 640 KB es una limitación arquitectónica de las PC compatibles con IBM PC . La CPU Intel 8088 , utilizada en la PC IBM original , podía direccionar 1 MB ( 220  bytes), ya que el chip ofrecía 20 líneas de dirección . En el diseño de la PC, la memoria por debajo de 640 KB era para la memoria de acceso aleatorio en la placa base o en las tarjetas de expansión, y se denominaba área de memoria convencional.El primer segmento de memoria (64 KB) del área de memoria convencional se denomina memoria inferior o área de memoria baja . Los 384 KB restantes más allá del área de memoria convencional, denominada área de memoria superior (UMA), se reservaron para uso del sistema y dispositivos opcionales. UMA se usó para el BIOS ROM , la memoria adicional de solo lectura , las extensiones del BIOS para unidades de disco fijas y adaptadores de video, la memoria del adaptador de video y otros dispositivos de entrada y salida asignados a la memoria . El diseño de la PC IBM original colocó el mapa de memoria del adaptador de gráficos en color (CGA) en UMA.

La necesidad de más RAM creció más rápido que las necesidades de hardware para utilizar las direcciones reservadas, lo que resultó en que la RAM finalmente se asignara a estas áreas superiores no utilizadas para utilizar todo el espacio direccionable disponible. Esto introdujo un "agujero" reservado (o varios agujeros) en el conjunto de direcciones ocupadas por hardware que podría usarse para datos arbitrarios. Evitar tal agujero era difícil y feo y no era compatible con DOS ni con la mayoría de los programas que podían ejecutarse en él. Más tarde, el espacio entre los agujeros se usaría como bloques de memoria superiores (UMB).

Para mantener la compatibilidad con los sistemas operativos y las aplicaciones más antiguos, la barrera de los 640 KB siguió siendo parte del diseño de la PC incluso después de que el 8086/8088 fuera reemplazado por el procesador Intel 80286 , que podía manejar hasta 16 MB de memoria en modo protegido . La barrera de 1 MB también se mantuvo mientras el 286 se ejecutó en modo real , ya que DOS requería el modo real que usa los registros de segmento y desplazamiento de manera superpuesta, de modo que las direcciones con más de 20 bits no son posibles. Todavía está presente en los PC compatibles de IBM hoy en día si se ejecutan en modo real, como el que usa DOS. Incluso las PC Intel más modernas todavía tienen el área reservada entre 640 y 1024  KB . [3] [4]Sin embargo, esto es invisible para los programas (o incluso para la mayoría del sistema operativo) en los sistemas operativos más nuevos (como Windows , Linux o Mac OS X ) que usan memoria virtual , porque no tienen conocimiento de las direcciones de memoria física en absoluto. En su lugar, operan dentro de un espacio de direcciones virtuales, que se define independientemente de las direcciones RAM disponibles. [5]

Algunas placas base cuentan con la opción "Memory Hole at 15 Megabytes" requerida para ciertas tarjetas de video VGA que requieren acceso exclusivo a un megabyte en particular para la memoria de video. Las tarjetas de video posteriores que utilizan el bus AGP (espacio de memoria PCI) pueden tener 256 MB de memoria con un tamaño de apertura de 1 GB .

Una técnica utilizada en las primeras computadoras IBM XT era instalar RAM adicional en el rango de direcciones de la memoria de video y aumentar el límite hasta el comienzo del Adaptador de pantalla monocromática (MDA). A veces, se requería un software o un decodificador de direcciones personalizado para que esto funcionara. Esto movió la barrera a 704 KB (con MDA/HGC) o 736 KB (con CGA). [6] [7]


Áreas de memoria de la familia de PC IBM