stringtranslate.com

Memoria expandida

Varias páginas de memoria expandida se cambian de banco en el marco de página , parte del área de memoria superior .

En la gestión de memoria de DOS , la memoria expandida es un sistema de conmutación de bancos que proporcionaba memoria adicional a los programas de DOS más allá del límite de la memoria convencional (640 KiB).

La memoria ampliada es un término general para varias variantes tecnológicas incompatibles. La variante más utilizada fue la Especificación de memoria expandida ( EMS ), que fue desarrollada conjuntamente por Lotus Software , Intel y Microsoft , por lo que a veces se hacía referencia a esta especificación como " LIM EMS ". LIM EMS tuvo varias versiones. La primera versión ampliamente implementada fue EMS 3.2, que admitía hasta 8 MiB de memoria expandida y utiliza partes del espacio de direcciones normalmente dedicadas a la comunicación con periféricos ( memoria superior ) para mapear partes de la memoria expandida. EEMS , un estándar de gestión de memoria expandida que compite con LIM EMS 3.x, fue desarrollado por AST Research , Quadram y Ashton-Tate ("AQA"); podría mapear cualquier área del 1 MiB inferior. EEMS finalmente se incorporó en LIM EMS 4.0, que admitía hasta 32 MiB de memoria expandida y también brindaba cierto soporte para la multitarea de DOS. IBM, sin embargo, creó su propio estándar de memoria expandida llamado XMA .

El uso de memoria expandida se volvió común con juegos y programas comerciales como Lotus 1-2-3 desde finales de los 80 hasta mediados de los 90, pero su uso disminuyó a medida que los usuarios cambiaron de DOS a sistemas operativos en modo protegido como Linux , IBM. OS/2 y Microsoft Windows .

Fondo

Una sección del espacio de direcciones inferior de 1 MiB proporciona una "ventana" a varios megabytes de memoria expandida.

El procesador 8088 de IBM PC e IBM PC/XT podía direccionar un megabyte (MiB, o 2 20 bytes) de memoria. Heredó este límite del bus de direcciones externo de 20 bits (y de la arquitectura general de direccionamiento de memoria) del Intel 8086 . Los diseñadores de la PC asignaron los 640 KiB inferiores  (655 360 bytes) de espacio de direcciones para la memoria de programa de lectura y escritura (RAM), llamada memoria convencional , y los 384 KiB restantes de espacio de memoria se reservaron para usos como el BIOS del sistema , la memoria de video y la memoria en placas de expansión periférica.

Aunque el IBM PC AT , presentado en 1984, utilizaba el chip 80286 que podía direccionar hasta 16 MiB de RAM como memoria extendida , sólo podía hacerlo en modo protegido . La escasez de software compatible con el modo protegido (ninguna aplicación DOS estándar podía ejecutarse en él) significaba que el mercado todavía estaba abierto para otra solución. [1]

Para hacer más accesible la memoria, se ideó un esquema de conmutación de bancos , donde solo partes seleccionadas de la memoria adicional serían accesibles en un momento dado. Originalmente, se utilizaba una única ventana de memoria de 64 KiB (2,16 bytes ), llamada marco de página ; Posteriormente esto se hizo más flexible. Los programas debían escribirse de una manera específica para acceder a la memoria ampliada. La ventana entre la memoria convencional y la memoria expandida podría ajustarse para acceder a diferentes ubicaciones dentro de la memoria expandida.

Tall Tree Systems hizo un primer intento de utilizar una técnica de conmutación de bancos con sus placas JRAM, [2] pero no tuvieron éxito. [1] (Tall Tree Systems posteriormente fabricó placas basadas en EMS utilizando la misma marca JRAM).

Especificación de memoria ampliada (EMS)

Lotus Development , Intel y Microsoft cooperaron para desarrollar el estándar EMS (también conocido como LIM EMS). La primera versión de EMS disponible públicamente, la versión 3.0, permitía el acceso de hasta 4 MiB de memoria expandida. [ cita necesaria ] Esto se incrementó a 8 MiB con la versión 3.2 de la especificación. La versión final de EMS, la versión 4.0, aumentó la cantidad máxima de memoria expandida a 32 MiB y admitió funciones adicionales.

Microsoft pensó que el cambio de banco era una medida provisional poco elegante y temporal, pero necesaria. Al golpear la mesa con el puño durante una entrevista , Bill Gates dijo sobre la memoria expandida: "¡Es basura! ¡Es una pifia !... Pero lo vamos a hacer". Las empresas planearon lanzar el estándar en el COMDEX de primavera de 1985 , y muchas empresas de software y tarjetas de expansión anunciaron su apoyo. [3] [4]

La primera versión pública del estándar EMS, llamada EMS 3.0, se lanzó en 1985; EMS 3.0, sin embargo, casi no vio implementaciones de hardware antes de ser reemplazado por EMS 3.2. [1] EMS 3.2 usó una región de 64 KiB en los 384 KiB superiores ( área de memoria superior ) dividida en cuatro páginas de 16 KiB, que podrían usarse para mapear partes de la memoria expandida. [1]

A su vez, EMS 3.2 fue mejorado por un grupo de otras tres empresas: AST Research, Quadram y Ashton-Tate, que crearon su propio estándar Enhanced EMS (EEMS). EEMS permitió que cualquier región de 16 KiB en RAM inferior se asignara a memoria expandida, siempre que no estuviera asociada con interrupciones o memoria de E/S dedicada, como tarjetas de red o de video. De este modo, se podían activar y desactivar programas completos desde la RAM adicional. EEMS también agregó soporte para dos conjuntos de registros de mapeo. Estas características fueron utilizadas por los primeros software multitarea de DOS, como DESQview . Lanzada en 1987, la especificación LIM EMS 4.0 incorporaba prácticamente todas las características de EEMS. [1]

Una nueva característica agregada en LIM EMS 4.0 fue que las placas EMS podían tener múltiples conjuntos de registros de mapeo de páginas (hasta 64 conjuntos). Esto permitió una forma primitiva de multitarea en DOS . Sin embargo, la advertencia fue que el estándar no especificaba cuántos conjuntos de registros debería tener una placa, por lo que había una gran variabilidad entre las implementaciones de hardware a este respecto. [5]

La Especificación de memoria expandida (EMS) es la especificación que describe el uso de la memoria expandida. Se puede acceder a las funciones EMS a través de la interrupción de software 67h. Los programas que utilizan EMS primero deben establecer la presencia de un administrador de memoria expandida (EMM) instalado buscando un controlador de dispositivo con el nombre de dispositivo EMMXXXX0 .

Adaptador de memoria expandida (XMA)

IBM desarrolló su propio estándar de memoria llamado Adaptador de memoria expandida (XMA); el controlador IBM DOS era XMAEM.SYS. A diferencia de EMS, las placas de expansión de IBM podrían abordarse tanto utilizando un modelo de memoria expandida como como memoria extendida . [6] Sin embargo, la interfaz de hardware de memoria expandida utilizada por las placas XMA es incompatible con EMS, [7] pero un controlador XMA2EMS.SYS proporcionó emulación EMS para las placas XMA. [6] Las placas XMA se introdujeron por primera vez para los modelos de 1986 (renovados) de la PC 3270 . [7]

Implementaciones

Tarjetas de expansión

Tarjeta de memoria Emulex Persyst 4 MiB ISA

Esta inserción de una ventana de memoria en el espacio de direcciones del periférico originalmente sólo podía lograrse a través de placas de expansión específicas, conectadas al bus de expansión ISA de la computadora. Las famosas placas de memoria expandida de la década de 1980 fueron AST RAMpage, IBM PS/2 80286 Memory Expansion Option, AT&T Expanded Memory Adapter y Intel Above Board. Dado el precio de la RAM durante el período, hasta varios cientos de dólares por MiB, y la calidad y reputación de las marcas mencionadas anteriormente, una placa de memoria expandida era muy cara.

Conjuntos de chips de placa base

Más tarde, algunos chipsets de placas base de computadoras basadas en Intel 80286 implementaron un esquema de memoria expandida que no requería placas adicionales, en particular el chipset NEAT . Normalmente, los conmutadores de software determinaban cuánta memoria se debía utilizar como memoria expandida y cuánta se debía utilizar como memoria extendida .

Controladores de dispositivo

Una placa de memoria expandida, al ser un periférico de hardware, necesitaba un controlador de dispositivo de software , que exportaba sus servicios. Este controlador de dispositivo se llamaba administrador de memoria expandida . Su nombre era variable; las placas mencionadas anteriormente utilizaban REMM.SYS (AST), PS2EMM.SYS (IBM), AEMM.SYS (AT&T) y EMM.SYS (Intel) respectivamente. Más tarde, la expresión se asoció con soluciones de software que requieren el procesador Intel 80386 , por ejemplo QEMM de Quarterdeck , 386 MAX de Qualitas o el EMM386 predeterminado en MS-DOS, PC DOS y DR-DOS.

emulación de software

A partir de 1986, las funciones de administración de memoria integradas del procesador Intel 80386 modelaron libremente el espacio de direcciones cuando se ejecutaba software heredado en modo real, haciendo innecesarias las soluciones de hardware. La memoria ampliada podría simularse en software.

El primer programa de software de gestión de memoria expandida (emulación) fue CEMM , disponible en septiembre de 1986 como una utilidad para Compaq Deskpro 386 . Una solución comercial popular y con buenas funciones fue QEMM de Quarterdeck. Un contendiente era el 386 MAX de Qualitas . La funcionalidad se incorporó posteriormente a MS-DOS 4.01 en 1989 y a DR DOS 5.0 en 1990, como EMM386 .

Los administradores de software de memoria expandida en general ofrecían funciones adicionales, pero estrechamente relacionadas. En particular, permitieron usar partes del área de memoria superior (UMA) (los 384 KiB superiores del espacio de direcciones en modo real) llamados bloques de memoria superior (UMB) y proporcionaron herramientas para cargar programas pequeños, generalmente programas residentes de terminación y permanencia. dentro ("LOADHI" o "LOADHIGH").

La interacción entre la memoria extendida , la emulación de memoria expandida y los extensores de DOS terminó siendo regulada por las especificaciones XMS, Virtual Control Program Interface (VCPI), DOS Protected Mode Interface (DPMI) y DOS Protected Mode Services (DPMS).

Ciertos programas de emulación, conocidos coloquialmente como LIMulators, no dependían en absoluto de la placa base ni de las funciones 80386. En cambio, reservaron 64 KiB de la RAM base para la ventana de memoria expandida, donde copiaban datos hacia y desde la memoria extendida o el disco duro cuando los programas de aplicación solicitaban cambios de página. Esto fue fácil de implementar programáticamente, pero el rendimiento fue bajo. Esta técnica fue ofrecida por AboveDisk de Above Software y por varios programas shareware .

También es posible emular EMS utilizando memoria XMS en CPU 286 usando utilidades de terceros como EMM286 (controlador .SYS).

Rechazar

El uso de la memoria ampliada disminuyó en la década de 1990. El IBM AT Intel 80286 admitía 24 bits de espacio de direcciones (16 MiB) en modo protegido , y el 386 admitía direcciones de 32 bits, o 4  gigabytes (2 32 ) de RAM: 4096 veces el espacio direccionable del 8086 original. No admitía directamente el modo protegido, pero Microsoft finalmente desarrolló DPMI y se publicaron varios extensores de DOS basados ​​en él. Los programas de DOS como Doom podrían usar extensores como DOS/4G para ejecutarse en modo protegido mientras siguen usando la API de DOS . A principios de la década de 1990, los nuevos sistemas operativos como Linux , Windows 9x , Windows NT , OS/2 y BSD/OS admitían el modo protegido "listo para usar". Estos y otros desarrollos similares hicieron de la memoria expandida un concepto obsoleto.

Conceptos similares

Otras plataformas han implementado el mismo concepto básico (memoria adicional fuera del espacio de direcciones principal) pero de formas técnicamente incompatibles:

Ver también

Referencias

  1. ^ abcde Mendelson, Edward (12 de diciembre de 1989). "Una ranura llena de RAM". Revista PC . vol. 8, núm. 21. Ziff Davis Publishing Co. págs. 169–. Archivado desde el original el 8 de febrero de 2020 . Consultado el 8 de febrero de 2020 .
  2. ^ "Ficha técnica del producto Tall Tree Systems" (folleto). Sistemas de árboles altos. Octubre de 1983.
  3. ^ Machrone, Bill (14 de mayo de 1985). "El esquema de memoria supera los 640 000". Revista PC . vol. 4, núm. 10. Ziff Davis Publishing Co. pág. 33 . Consultado el 28 de octubre de 2013 .
  4. ^ "Los fracasos tecnológicos más memorables". Revista PC . Enero de 2008. págs. 88–89 . Consultado el 5 de septiembre de 2020 .
  5. ^ Rosch, Winn L. (12 de diciembre de 1989). "EMS 4.0: el estándar que no existía". Revista PC . vol. 8, núm. 21. Ziff Davis Publishing Co. págs. 174-175. Archivado desde el original el 8 de febrero de 2020 . Consultado el 8 de febrero de 2020 .
  6. ^ ab "Un tutorial general sobre las diversas formas de memoria". Microsoft . Archivado desde el original el 22 de octubre de 2012.
  7. ^ ab Welch, Marc J. (14 de abril de 1986). "No se espera que aumente la demanda de 3270". InfoMundo . vol. 8, núm. 15. InfoWorld Media Group, Inc. pág. 5.ISSN 0199-6649  . Archivado desde el original el 8 de febrero de 2020 . Consultado el 8 de febrero de 2020 .
  8. ^ Sakaki, M.; Samukawa, H.; Honjou, N. (1988). "Utilización eficaz del gran almacenamiento virtual IBM 3090 en los cálculos numéricamente intensivos de orbitales moleculares ab initio". Revista de sistemas IBM . 27 (4): 528–540. doi :10.1147/sj.274.0528. ISSN  0018-8670.
  9. ^ "IBM: configuración del almacenamiento". www.vm.ibm.com . Consultado el 3 de mayo de 2023 .

Otras lecturas