Memoria expandida


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

La memoria expandida es un término genérico para varias variantes de tecnología 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 esta especificación a veces se denomina " LIM EMS ". LIM EMS tenía varias versiones. La primera versión ampliamente implementada fue EMS 3.2, que admitía hasta 8 MiB de memoria expandida y usa 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 administració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 algo de 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 hizo común con juegos y programas comerciales como Lotus 1-2-3 a fines de la década de 1980 hasta mediados de la de 1990, 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 .

El procesador 8088 de IBM PC y IBM PC / XT podría abordar un megabyte (MiB, o 2 20 bytes) de memoria. Heredó este límite del bus de direcciones externas de 20 bits del Intel 8086 . Los diseñadores de la PC asignaron los 640 KiB más bajos  (655 360 bytes) de espacio de direcciones de memoria de programa de lectura y escritura (RAM), llamados "memoria convencional", y los restantes 384 KiB de espacio de memoria se reservan para usos tales como el sistema BIOS , memoria de vídeo, y la memoria en las juntas periféricas de expansión .

Aunque el IBM PC AT , presentado en 1984, usaba el chip 80286 que podía direccionar hasta 16 MiB de RAM como memoria extendida , solo podía hacerlo en modo protegido . La escasez de software compatible con el modo protegido 286 (no se podían ejecutar aplicaciones DOS estándar en él) significaba que el mercado aún estaba abierto a otra solución. [1]

Para que quepa potencialmente mucha más memoria de la que permitirían los 384 KiB de espacio de direcciones libres, se ideó un esquema de cambio de banco , en el que solo algunas partes seleccionadas de la memoria adicional serían accesibles en un momento dado. Originalmente, era posible una sola ventana de memoria de 64 KiB (2 16 bytes), llamada marco de página ; más tarde esto se hizo más flexible. Los programas debían escribirse de una manera específica para acceder a la memoria expandida. La "ventana" entre la RAM inferior y la RAM expandida podría moverse a diferentes ubicaciones dentro de la RAM expandida.


Varias páginas de memoria expandida se cambian de banco en el marco de página , que forma parte del área de memoria superior .
Una sección del espacio de direcciones inferior de 1 MiB proporciona una "ventana" en varios megabytes de memoria expandida.
Tarjeta de memoria Emulex Persyst 4 MiB ISA