- Memoria convencional
-
La memoria convencional, en informática, son los primeros 640 kilobytes de memoria en computadores IBM PC y compatibles. Anteriormente a especificaciones como Expanded Memory Specification (EMS), Extended Memory Specification (XMS), y High Memory Area (HMA), las aplicaciones de modo real sólo podían usar esta parte de la memoria. Incluso cuando la memoria extendida está presente, las aplicaciones de modo real tienen que ser especialmente programadas para usarla, implementando un sistema complejo de relaciones (overlays) usando memoria paginada, por lo tanto, muchas aplicaciones continuaron usando sólamente memoria convencional.
Contenido
Historia
A finales de los años 1980, a medida que las aplicaciones DOS se volvieron más grandes y más complejas, se convirtió en una práctica común liberar tanta memoria convencional como fuera posible, moviendo drivers y programas Terminate and Stay Resident (TSRs) dentro de los Upper Memory Blocks (UMBs).
Para viejos sistemas operativos de modo real como MS-DOS, frecuentemente valía la pena afinar el sistema para cargar drivers y otros componentes del sistema en UMBs (trozos de memoria extendida remapeados en el Upper Memory Area (UMA)) para así dejar libre tanta memoria convencional como fuera posible para poder correr grandes aplicaciones.
Con los sistemas operativos modernos y las máquinas de 32 bits la distinción entre la memoria convencional y extendida es raramente relevante, puesto que en modo protegido, toda la memoria se puede alcanzar uniformemente.
Barrera de los 640 KB
La barrera de los 640 KB es un aspecto de los IBM PC y los compatibles cuando estaban trabajando bajo MS-DOS el cual sólo podía direccionar hasta 640 KB de memoria para las aplicaciones corrientes. Esto era debido a las limitaciones de IBM PC original, que usó el CPU Intel 8088, y al mapa de memoria que fue diseñado por IBM para este computador.
El término se refiere al tamaño de la memoria convencional del PC. Los 8088 y 8086 eran solamente capaces de direccionar 1024 KB (1 MB) de memoria (220 bytes), dado que estos chips ofrecían solamente 20 líneas de dirección. De estos 1024K, la IBM reservó los 384 KB superiores para propósitos del sistema , esta sección fue llamada la Upper Memory Area (Área de Memoria Superior). Esto dejó solamente los restantes 640 KB más bajos para los programas y los datos del usuario. Al momento en que el IBM PC fue lanzado, en 1981, 640 KB habrían parecido más que abundantes para el usuario típico, y tomó algunos años hasta que la mayoría de las nuevas PC incluso tenían toda esa memoria instalada. Cuando apareció el PC, el microcomputador más popular existente, el Apple II+, tenía solamente 64 KB en la configuración más común y no se podía ampliar fácilmente más allá de esto. El valor de la compatibilidad de las generaciones descendientes de microcomputadores todavía no era percibido tan claramente entonces como lo fue a mediados de los años 1980, de modo que probablemente pocas personas en la IBM o alguna otra parte esperaban que la arquitectura del IBM PC duraría más de algunos años en el mercado.
Para mantener compatibilidad con sistemas operativos viejos, la barrera de los 640 KB seguía siendo parte del diseño de la PC incluso después que el 8088 fuera reemplazado por el procesador Intel 286, que podía direccionar hasta 16 MB de memoria. Hoy en día todavía está presente en compatibles del IBM PC cuando están corriendo MS-DOS, y todavía en las más modernas PC basadas en Windows, la memoria RAM sigue teniendo un "agujero" en el área entre 640 y 1024 kilobytes, que sin embargo es invisible los programas de aplicación gracias a la paginación y a la memoria virtual.
Superando la barrera
La barrera fue solamente superada con la llegada de los DOS Extenders, que permitieron a las aplicaciones DOS correr en memoria extendida, pero éstos no fueron utilizados muy extensamente fuera del área de juegos de computadora. Los primeros sistemas operativos del PC en integrar esta tecnología fueron el DOS 3.31 de Compaq (vía CEMM) y Windows/386 2.1, ambos lanzados en 1988. Las aplicaciones Windows no sufrieron de la barrera de los 640 KB.
Antes de los DOS Extenders, si un usuario instalaba memoria adicional y deseaba usarla bajo DOS, primero tenía que instalar y configurar drivers para soportar la Expanded Memory Specification (EMS) o la Extended Memory Specification (XMS) para la RAM, y en la mayoría de los casos las aplicaciones solamente podían mover datos hacia y fuera del espacio adicional, pero no usarla in-situ; esto hizo a la memoria más allá de la barrera de los 640K lenta e incómoda para usar.
Una técnica usada en las primeras computadoras IBM XT con pantallas Monochrome Display Adapter (MDA) o Color Graphics Adapter (CGA), era agregar más memoria a la tarjeta madre y usar un chip decodificador de dirección por encargo de programmable read only memory (PROM} para hacer aparecer esta memoria en los 640 KB; esto movió la barrera a 704 KB[1].
Los manejadores de memoria en los sistemas basados en el 386 (como QEMM o MemoryMax en DR-DOS) podían alcanzar el mismo efecto, agregando memoria convencional en los 640 KB y moviendo la barrera a 704 KB o a 736 KB. En esta situación, se podría utilizar solamente el CGA, porque el Enhanced Graphics Adapter (EGA) usaba esta memoria para sí mismo.
El AllCard, una tarjeta add-on de Unidad de Manejo de Memoria (memory management unit) (MMU) para las computadoras de la clase XT, permitía a la memoria normal ser mapeada en el rango de direcciones A0000-EFFFF(hex), dando hasta 952 KB para los programas de DOS. Programas como el Lotus 1-2-3, que accedían a la memoria de vídeo directamente, necesitaron ser parcheados para manejar esta disposición de memoria. Por lo tanto, la barrera de los 640 KB fue eliminada con el costo de compatibilidad de hardware.
Véase también
- Área de memoria superior
- Especificación de memoria expandida
- Especificación de memoria extendida
- Área de memoria alta
- Modo irreal
- Modo real
- Modo protegido
Referencias
- Atkinson, C. (unknown date). "What is high memory, why do I care, how do I use it?". Retrieved May 02, 2006.
- http://www.pcguide.com/ref/ram/logicHMA-c.html
- AllCard review, Personal Computer World September 1986, pg 138
Este artículo (o una versión anterior) está basado originalmente en material de Free On-line Dictionary of Computing, utilizado con permiso. Actualícelo a discreción.
Categoría:- Arquitectura de memoria en los IBM PC y compatibles
Wikimedia foundation. 2010.