Área de memoria superior

En la dirección de memoria de DOS, el área de memoria superior (UMA) se refiere a la memoria entre las direcciones de 640 KILOBYTES y 1024 KILOBYTES (0xA0000–0xFFFFF) en un IBM PC o compatible. La IBM reservó 384 KILOBYTES más altos del espacio de direcciones de 1024 KILOBYTES de la 8088 CPU para memoria sólo de lectura, RAM en peripherals y entrada/salida trazada un mapa por la memoria. Por ejemplo, el área de memoria de vídeo monocroma corre de 704 A 736 KILOBYTES (0xB0000–B7FFF).

Sin embargo, hasta con RAM de vídeo, el BIOS de la memoria sólo de lectura y puertos de la entrada-salida para tarjetas de expansión, la mayor parte de esto 384 KILOBYTES del espacio de direcciones era no usado. Como la restricción de memoria de 640 KILOBYTES se hizo alguna vez más de un obstáculo, se encontró que las técnicas llenaban las áreas vacías de la RAM. Estas áreas se mencionaron como bloques de memoria superiores (UMBs).

Uso

La siguiente etapa en la evolución de DOS era para el sistema operativo para usar bloques de memoria superiores (UMBs) y el área de memoria alta (HMA). Esto ocurrió con la liberación del DOCTOR DOS 5.0 en 1990. El gerente de memoria incorporado del DOCTOR DOS, EMM386.EXE, podría realizar la mayor parte de la funcionalidad básica de QEMM y programas comparables.

La ventaja del DOCTOR DOS 5 sobre la combinación de DOS más viejo más QEMM consistía en que el propio grano del DOCTOR DOS y las casi todas sus estructuras de datos se podrían cargar en la memoria alta. Esto dejó prácticamente toda la memoria baja configuraciones libres, que permiten con HASTA 620 KILOBYTES de 640 KILOBYTES libres.

La configuración no era automática - UMBs libre se tuvo que identificar a mano, a mano incluirse en la línea que cargó EMM386 de CONFIG.SYS, y luego los controladores etcétera se tuvieron que a mano cargar en UMBs de CONFIG.SYS y AUTOEXEC.BAT. Esta configuración no era un proceso trivial. Ya que fue en gran parte automatizado por el programa de instalación de QEMM, este programa sobrevivido en el mercado; en efecto, trabajó bien con propio HMA del DOCTOR DOS y UMB apoyan y continuaron a ser una de las utilidades más vendidas para el ordenador personal.

Esta funcionalidad fue copiada por Microsoft con la liberación de MS-DOS 5.0 en el junio de 1991. Finalmente, aún más estructuras de datos de DOS se movieron de la memoria convencional, permitiendo HASTA 631 KILOBYTES de 640 KILOBYTES dejarse libres. Comenzando de la versión 6.0 del MS-DOS, Microsoft hasta incluyó un programa llamado Memmaker que era usado automáticamente para optimizar la memoria convencional moviendo programas TSR a la memoria superior.

Durante un período a principios de los años 1990, la optimización manual del mapa de memoria de DOS se hizo una habilidad muy estimada, teniendo las aplicaciones más grandes en cuenta para correr en hasta las configuraciones del ordenador personal más complejas. La técnica debía crear primero tantos UMBs como posible, incluso la nueva correlación de bloques asignados pero no usados de la memoria, como el área de demostración monocroma en máquinas en color. Entonces, muchos subcomponentes de DOS se tuvieron que cargar en estos UMBs en la secuencia correcta para usar los bloques de la memoria lo más eficazmente posible. Algunos programas TSR requirieron la memoria adicional cargando, que se liberó otra vez una vez que la carga era completa. Por suerte había pocas dependencias entre estos módulos, por tanto era posible cargarlos en casi cualquier secuencia. Las excepciones eran que a con éxito CD-ROM del escondite, la mayor parte de escondites del disco se tuvieron que cargar después de cualquier conductor del CD-ROM, y que los módulos de la mayor parte de pilas de la red se tuvieron que cargar en cierta secuencia, esencialmente trabajadora cada vez más a través de las capas del modelo OSI.

Un básico el método aún eficaz solía optimizar la memoria convencional debía cargar HIMEM.SYS como un dispositivo, a partir de entonces cargando EMM386.EXE como un dispositivo con la "opción" AUTOMÁTICA de la RAM que permite el acceso en el UMA cargando controladores de dispositivos como devicehigh. Este método con eficacia carga a los gerentes de memoria fundamentales en la memoria convencional, y a partir de entonces todo lo demás en el UMA. Los programas del glotón de memoria convencionales como el MSCDEX también se podrían cargar en el UMA de una moda similar, de ahí liberando una cantidad grande de la memoria convencional.

Windows

La popularidad creciente de Windows 3.0 hizo la necesidad del área de memoria superior menos relevante, ya que las Aplicaciones de Windows no fueron afectadas por los límites de memoria bajos de DOS, pero los programas DOS que corren bajo Windows (con propio Windows que sirve de un gerente de multiasignación) todavía así se reprimían. Con la liberación de Windows 95, se hizo menos relevante de todos modos, ya que esta versión de Windows proporciona la mayor parte de la funcionalidad de los controladores de dispositivos de DOS a aplicaciones de DOS que corren bajo Windows, como CD, red y apoyo sano; el mapa de memoria de cajas de DOS Win95 automáticamente se optimizó. Sin embargo, no todos los programas DOS podrían ejecutar en este ambiente. Expresamente, los programas que trataron de cambiar directamente del verdadero modo al modo protegido, no trabajarían ya que esto no se permitió en el 8086 modo virtual corría en. Este punto está siendo dirigido ahora por x86 virtualization tecnologías como Intel VT-x (Vanderpool) y AMD-V (Pacifica). También, los programas que trataron de hacer el interruptor usando Virtual Control Program Interface (VCPI) API (que se introdujo para permitir programas DOS que necesitaron el modo protegido para entrar en ello del 8086 modo virtual establecido por un gerente de memoria, como descrito encima) no trabajaron en el Windows 95. Sólo DOS Protected Mode Interface (DPMI) API para cambiar al modo protegido se apoyó.

Realización

Modo x86 virtual

Los bloques de memoria superiores se pueden crear trazando un mapa de la memoria ampliada en el área de memoria superior corriendo en el modo x86 virtual. Esto es similar a cómo la memoria ampliada se puede emular usando la memoria ampliada por tanto este método de proporcionar bloques de memoria superiores es por lo general proporcionado por el gerente de memoria ampliado (por ejemplo EMM386). Irónicamente la interfaz de programación de aplicaciones para manejar los bloques de memoria superiores se especifica en la Especificación de Memoria ampliada.

RAM de la oposición

En muchos sistemas incluso moderno es posible usar la memoria reservada para la memoria sólo de lectura de la tarjeta de expansión del sombreado como la memoria superior. Muchos chipsets reservan la RAM de HASTA 384 KILOBYTES para este fin y ya que esta RAM es generalmente no usada se puede usar como el verdadero modo memoria superior con un controlador de dispositivos de encargo, como el UMBPCI.

IBM XT

En ordenadores de IBM XT, era posible añadir más memoria de la placa madre y usar una FIESTA DE PROMOCIÓN del decodificador de la dirección de encargo para hacerlo aparecer en el área de memoria superior http://www.textfiles.com/computers/pc869kb.txt. Como con la memoria superior basada en 386 descrita encima, la RAM suplementaria podría ser usada para cargar archivos TSR, o como un disco de la RAM.

AllCard, una unidad de la dirección de memoria del complemento para ordenadores de la XT-clase, permitió que memoria normal se trazara un mapa en el rango de direcciones 0xA0000-EFFFF, dando HASTA 952 KILOBYTES para programas DOS. Los programas como Lotus 1-2-3, que tuvo acceso a la memoria de vídeo directamente, se tenían que remendar para manejar esta disposición de memoria. Por lo tanto, la barrera de 640 KILOBYTES se quitó a costa de la compatibilidad del hardware. Este uso del área de memoria superior es diferente de usar bloques de memoria superiores, como esta memoria convencional ampliada en 384 KILOBYTES superiores del espacio de direcciones de 1 MB.

Véase también



Buscar