fbpx
Wikipedia

Memoria expandida

La memoria expandida o especificación de memoria expandida (Expanded Memory Specification, EMS) fue un método que proporcionaba memoria paginada extra a los programas de MS-DOS. Fue desarrollado alrededor de 1984.

Páginas o bancos de memoria expandida dentro del espacio o área de memoria superior (UMA).

Estos programas, que corrían en la IBM PC original, y sus sucesores como el IBM XT y el IBM AT, eran típicamente aplicaciones como hojas de cálculo y bases de datos que necesitaban una gran cantidad de memoria para trabajar correctamente.

El IBM PC y el IBM XT tenían una arquitectura de memoria de modo real, que solo permitía a los programas usar 1 mebibyte de espacio de dirección, de los cuales solo hasta 640 KiB estaba disponible como RAM normal para las aplicaciones. El resto entre 640 KiB y 1 MiB era reservado para periféricos, destacándose la memoria para las tarjetas de vídeo. El IBM AT, con su microprocesador Intel 80286 soportaba un modo protegido lo que le permitía direccionar hasta 16 MiB, pero este computador también usaba el MS-DOS, un sistema operativo que no usaba la memoria extendida (por arriba del mebibyte) directamente.

La idea detrás de la memoria expandida era usar, también para la memoria del programa, parte de los 384 KiB restantes normalmente dedicados a los periféricos. Para poder usar potencialmente mucho más memoria que los 384 KiB que el espacio de direccionamiento permitía, fue ideado un esquema de conmutación de bancos de memoria, donde solamente estarían accesibles a un mismo tiempo, porciones seleccionadas de la memoria adicional. Originalmente, era posible una sola ventana de 64 KiB de memoria, más adelante esto fue más flexible. Las aplicaciones tuvieron que ser escritas de una manera específica para tener acceso a la memoria expandida.

Diferentes implementaciones

Tarjetas de expansión

 
Una tarjeta de expansión de memoria ISA. La tarjeta está equipada con 4 MB accesibles por medio de páginas de 64 KB.

Esta inserción de una ventana de memoria en el espacio de dirección de los periféricos se podía lograr originalmente solamente a través de tarjetas de expansión específicas, enchufadas en el bus de expansión ISA de la computadora. Algunas famosas tarjetas de memoria expandida de los años 1980 fueron el RAMPage de AST Research, el IBM PS/2 80286 Memory Expansion Option, el AT&T Expanded Memory Adapter, y el Above Board de Intel. Dado el precio del RAM de hasta varios cientos de dólares por megabyte durante ese período, y la calidad y la reputación de las marcas mencionadas arriba, una tarjeta de memoria expandida era muy costosa.

Tarjeta madre

Más adelante, algunas tarjetas madres de computadores basados en el Intel 80286 implementaron un esquema de memoria expandida que no requería tarjetas añadidas. Típicamente, interruptores por software determinaban cuánta memoria se debía usar como memoria expandida y cuánta debía ser usada como memoria extendida.

Manejo de memoria nativo en el procesador

Comenzando en 1987, las características incorporadas de manejo de memoria del procesador Intel 80386 modelaron libremente el espacio de dirección cuando corrían software en modo real, haciendo innecesarias las soluciones de hardware. La memoria expandida se podía simular simplemente por software.

DPMI

Una manera más eficiente de tener acceso al espacio de dirección más allá de 640 KB, en el 80286 y procesadores posteriores, fue usando el DOS Protected Mode Interface (DPMI, interfaz de modo protegido del DOS). Los DOS extenders eran drivers que permitieron a las aplicaciones correr en modo protegido. En lugar de intentar tener acceso a más memoria por medio de mecanismos de conmutación de memoria, los drivers cambiaban el procesador a modo protegido cuando corrían el programa de aplicación, y regresaban a modo real cuando accedían a servicios del MS-DOS. Esto permitió que los programas accedieran directamente toda la memoria que era configurada como memoria extendida.

El uso de la memoria expandida por las aplicaciones disminuyó a principios de los años 1990, a medida que los DOS Extenders llegaron a ser más predominantes.

Emulación por software

El primer programa de manejo de memoria expandida (por emulación) fue probablemente Compaq Expanded Memory Manager (CEMM), disponible en noviembre de 1987 con el DOS 3.31 de Compaq. Una solución comercial popular con buenas características fue el QEMM de Quarterdeck.[1]​ Un competidor fue el 386MAX de Qualitas. La funcionalidad fue incorporada más adelante en el MS-DOS 4.01 de 1989 y en el DR-DOS 5.0 de 1990, como el EMM386.

El software de manejo de memoria expandida ofrecía funcionalidad adicional pero estrechamente relacionada. Notablemente, podía crear Upper Memory Area (UMA) o áreas de memoria ordinaria (Upper Memory Blocks, UMB) en las partes no usadas de los 384 KB altos (entre 640 KB y 1 MB) del espacio de dirección del modo real y proveyeron herramientas para cargar pequeños programas, típicamente los TSR (Terminate and Stay Resident) usando los comandos ("loadhi" o "loadhigh").

La interacción entre la memoria extendida, la emulación de memoria expandida y los DOS Extenders terminó siendo regulada por las especificaciones XMS, VCPI y DPMI.

Ciertos programas de emulación, coloquialmente conocidos como LIMulators, no dependían para nada de la tarjeta madre o las características del 80386. En su lugar, reservaron 64 KB de RAM básica para la ventana de memoria expandida, donde copiaron datos a y desde la memoria extendida o el disco duro cuando los programas de aplicación solicitaban cambios de página. Esto era fácil de implementar programáticamente pero el desempeño era bajo. Esta técnica fue ofrecida por AboveDisk de Above Software y por varios programas shareware.

Detalles

Una tarjeta de memoria expandida era un periférico de hardware, necesitaba un software de controlador de dispositivo, que exportaba sus servicios. Este controlador de dispositivo fue llamado "expanded memory manager" (manejador de memoria expandida). Su nombre fue variable; las tarjetas previamente mencionadas usaron respectivamente remm.sys (AST), ps2emm.sys (IBM), aemm.sys (AT&T) y emm.sys (Intel). Más adelante, la expresión llegó a ser asociada con soluciones solo de software que requerían el procesador 80386, por ejemplo el QEMM de Quarterdeck (ver abajo).

La memoria expandida era un término común para algunas variantes de tecnología incompatibles. La Expanded Memory Specification (EMS) (especificación de memoria expandida) fue desarrollada en común por Lotus, Intel, y Microsoft, así que esta especificación fue referida a veces como "LIM EMS". EEMS, un estándar competidor de manejo de memoria expandida, fue desarrollado por AST Research, Quadram y Ashton-Tate. Este estándar también permitió remapear alguno o todos los 640 KB de la parte baja de memoria, de modo que programas enteros pudieran ser conmutados dentro y fuera de la RAM extra. Los dos estándares fueron eventualmente combinados como LIM EMS 4.0.

Programación

Un bloque de 64 KiB, el page frame fue reservado en área de memoria superior o en memoria convencional. El page frame en sí mismo constaba de cuatro páginas EMS de 16 KiB, cada una de las cuales podía ser fijada independientemente para "apuntar" a algunas partes de la memoria expandida bajo el control del programa. Cambiar el llamado mapeo del page frame era costoso, así que en consecuencia se tenían que organizar los datos. Versiones posteriores de la especificación del LIM EMS no imponen más el uso de un page frame, pero esto fue apenas usado.

Usar memoria expandida era oneroso, y la tarea fue temida y odiada por todos los programadores de PC. No obstante, era una manera de usar más memoria, y para software exigente en memoria, usarla en una manera penosa era mejor que no usarla. Un desafío constante de diseño era determinar qué datos se debían almacenar en los fáciles de usar 640 KB bajos de la memoria, y qué datos se debían almacenar en la memoria expandida con su sobrecarga inherente de manejo.

Antes de la estandardización impuesta por el LIM EMS, cada tarjeta de memoria venía con su propio driver y con diferentes interfaces de programación de aplicaciones. Después de LIM EMS, Microsoft alteró ligeramente su implementación en el DOS 3.31, de modo que la memoria fuera alineada en límites de palabra en vez de límites de byte como determinada la especificación original, haciendo fallar en funcionar correctamente a algunas aplicaciones. En la práctica, los usuarios tuvieron que alterar la configuración de sus computadoras para usar el LIM EMS o Microsoft EMS de acuerdo a la aplicación que desearan usar.

Referencias

  1. QEMM: Quarterdeck Expanded Memory Manager.
  • A complete discussion of EMS and programming examples can be found in ["PC System Programming for developers", 1989, ISBN 1-55755-035-2 (Book only) and ISBN 1-55755-036-0 (Book and diskette)].
  • Understanding EMS 4.0 by Lloyd Borrett, Technical Cornucopia, January–February 1989

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.

Véase también

Enlaces externos

  • DOS Protected Mode Interface
  • DOS Protected Mode Services
  • Virtual Control Program Interface
  •   Datos: Q369664

memoria, expandida, debe, confundirse, memoria, extendida, véanse, también, Área, memoria, superiory, memoria, convencional, memoria, expandida, especificación, memoria, expandida, expanded, memory, specification, método, proporcionaba, memoria, paginada, extr. No debe confundirse con Memoria extendida Veanse tambien Area de memoria superiory Memoria convencional La memoria expandida o especificacion de memoria expandida Expanded Memory Specification EMS fue un metodo que proporcionaba memoria paginada extra a los programas de MS DOS Fue desarrollado alrededor de 1984 Paginas o bancos de memoria expandida dentro del espacio o area de memoria superior UMA Estos programas que corrian en la IBM PC original y sus sucesores como el IBM XT y el IBM AT eran tipicamente aplicaciones como hojas de calculo y bases de datos que necesitaban una gran cantidad de memoria para trabajar correctamente El IBM PC y el IBM XT tenian una arquitectura de memoria de modo real que solo permitia a los programas usar 1 mebibyte de espacio de direccion de los cuales solo hasta 640 KiB estaba disponible como RAM normal para las aplicaciones El resto entre 640 KiB y 1 MiB era reservado para perifericos destacandose la memoria para las tarjetas de video El IBM AT con su microprocesador Intel 80286 soportaba un modo protegido lo que le permitia direccionar hasta 16 MiB pero este computador tambien usaba el MS DOS un sistema operativo que no usaba la memoria extendida por arriba del mebibyte directamente La idea detras de la memoria expandida era usar tambien para la memoria del programa parte de los 384 KiB restantes normalmente dedicados a los perifericos Para poder usar potencialmente mucho mas memoria que los 384 KiB que el espacio de direccionamiento permitia fue ideado un esquema de conmutacion de bancos de memoria donde solamente estarian accesibles a un mismo tiempo porciones seleccionadas de la memoria adicional Originalmente era posible una sola ventana de 64 KiB de memoria mas adelante esto fue mas flexible Las aplicaciones tuvieron que ser escritas de una manera especifica para tener acceso a la memoria expandida Indice 1 Diferentes implementaciones 1 1 Tarjetas de expansion 1 2 Tarjeta madre 1 3 Manejo de memoria nativo en el procesador 1 4 DPMI 1 5 Emulacion por software 2 Detalles 3 Programacion 4 Referencias 5 Vease tambien 6 Enlaces externosDiferentes implementaciones EditarTarjetas de expansion Editar Una tarjeta de expansion de memoria ISA La tarjeta esta equipada con 4 MB accesibles por medio de paginas de 64 KB Esta insercion de una ventana de memoria en el espacio de direccion de los perifericos se podia lograr originalmente solamente a traves de tarjetas de expansion especificas enchufadas en el bus de expansion ISA de la computadora Algunas famosas tarjetas de memoria expandida de los anos 1980 fueron el RAMPage de AST Research el IBM PS 2 80286 Memory Expansion Option el AT amp T Expanded Memory Adapter y el Above Board de Intel Dado el precio del RAM de hasta varios cientos de dolares por megabyte durante ese periodo y la calidad y la reputacion de las marcas mencionadas arriba una tarjeta de memoria expandida era muy costosa Tarjeta madre Editar Mas adelante algunas tarjetas madres de computadores basados en el Intel 80286 implementaron un esquema de memoria expandida que no requeria tarjetas anadidas Tipicamente interruptores por software determinaban cuanta memoria se debia usar como memoria expandida y cuanta debia ser usada como memoria extendida Manejo de memoria nativo en el procesador Editar Comenzando en 1987 las caracteristicas incorporadas de manejo de memoria del procesador Intel 80386 modelaron libremente el espacio de direccion cuando corrian software en modo real haciendo innecesarias las soluciones de hardware La memoria expandida se podia simular simplemente por software DPMI Editar Articulo principal DOS Protected Mode Interface Una manera mas eficiente de tener acceso al espacio de direccion mas alla de 640 KB en el 80286 y procesadores posteriores fue usando el DOS Protected Mode Interface DPMI interfaz de modo protegido del DOS Los DOS extenders eran drivers que permitieron a las aplicaciones correr en modo protegido En lugar de intentar tener acceso a mas memoria por medio de mecanismos de conmutacion de memoria los drivers cambiaban el procesador a modo protegido cuando corrian el programa de aplicacion y regresaban a modo real cuando accedian a servicios del MS DOS Esto permitio que los programas accedieran directamente toda la memoria que era configurada como memoria extendida El uso de la memoria expandida por las aplicaciones disminuyo a principios de los anos 1990 a medida que los DOS Extenders llegaron a ser mas predominantes Emulacion por software Editar El primer programa de manejo de memoria expandida por emulacion fue probablemente Compaq Expanded Memory Manager CEMM disponible en noviembre de 1987 con el DOS 3 31 de Compaq Una solucion comercial popular con buenas caracteristicas fue el QEMM de Quarterdeck 1 Un competidor fue el 386MAX de Qualitas La funcionalidad fue incorporada mas adelante en el MS DOS 4 01 de 1989 y en el DR DOS 5 0 de 1990 como el EMM386 El software de manejo de memoria expandida ofrecia funcionalidad adicional pero estrechamente relacionada Notablemente podia crear Upper Memory Area UMA o areas de memoria ordinaria Upper Memory Blocks UMB en las partes no usadas de los 384 KB altos entre 640 KB y 1 MB del espacio de direccion del modo real y proveyeron herramientas para cargar pequenos programas tipicamente los TSR Terminate and Stay Resident usando los comandos loadhi o loadhigh La interaccion entre la memoria extendida la emulacion de memoria expandida y los DOS Extenders termino siendo regulada por las especificaciones XMS VCPI y DPMI Ciertos programas de emulacion coloquialmente conocidos como LIMulators no dependian para nada de la tarjeta madre o las caracteristicas del 80386 En su lugar reservaron 64 KB de RAM basica para la ventana de memoria expandida donde copiaron datos a y desde la memoria extendida o el disco duro cuando los programas de aplicacion solicitaban cambios de pagina Esto era facil de implementar programaticamente pero el desempeno era bajo Esta tecnica fue ofrecida por AboveDisk de Above Software y por varios programas shareware Detalles EditarUna tarjeta de memoria expandida era un periferico de hardware necesitaba un software de controlador de dispositivo que exportaba sus servicios Este controlador de dispositivo fue llamado expanded memory manager manejador de memoria expandida Su nombre fue variable las tarjetas previamente mencionadas usaron respectivamente remm sys AST ps2emm sys IBM aemm sys AT amp T y emm sys Intel Mas adelante la expresion llego a ser asociada con soluciones solo de software que requerian el procesador 80386 por ejemplo el QEMM de Quarterdeck ver abajo La memoria expandida era un termino comun para algunas variantes de tecnologia incompatibles La Expanded Memory Specification EMS especificacion de memoria expandida fue desarrollada en comun por Lotus Intel y Microsoft asi que esta especificacion fue referida a veces como LIM EMS EEMS un estandar competidor de manejo de memoria expandida fue desarrollado por AST Research Quadram y Ashton Tate Este estandar tambien permitio remapear alguno o todos los 640 KB de la parte baja de memoria de modo que programas enteros pudieran ser conmutados dentro y fuera de la RAM extra Los dos estandares fueron eventualmente combinados como LIM EMS 4 0 Programacion EditarUn bloque de 64 KiB el page frame fue reservado en area de memoria superior o en memoria convencional El page frame en si mismo constaba de cuatro paginas EMS de 16 KiB cada una de las cuales podia ser fijada independientemente para apuntar a algunas partes de la memoria expandida bajo el control del programa Cambiar el llamado mapeo del page frame era costoso asi que en consecuencia se tenian que organizar los datos Versiones posteriores de la especificacion del LIM EMS no imponen mas el uso de un page frame pero esto fue apenas usado Usar memoria expandida era oneroso y la tarea fue temida y odiada por todos los programadores de PC No obstante era una manera de usar mas memoria y para software exigente en memoria usarla en una manera penosa era mejor que no usarla Un desafio constante de diseno era determinar que datos se debian almacenar en los faciles de usar 640 KB bajos de la memoria y que datos se debian almacenar en la memoria expandida con su sobrecarga inherente de manejo Antes de la estandardizacion impuesta por el LIM EMS cada tarjeta de memoria venia con su propio driver y con diferentes interfaces de programacion de aplicaciones Despues de LIM EMS Microsoft altero ligeramente su implementacion en el DOS 3 31 de modo que la memoria fuera alineada en limites de palabra en vez de limites de byte como determinada la especificacion original haciendo fallar en funcionar correctamente a algunas aplicaciones En la practica los usuarios tuvieron que alterar la configuracion de sus computadoras para usar el LIM EMS o Microsoft EMS de acuerdo a la aplicacion que desearan usar Referencias Editar QEMM Quarterdeck Expanded Memory Manager A complete discussion of EMS and programming examples can be found in PC System Programming for developers 1989 ISBN 1 55755 035 2 Book only and ISBN 1 55755 036 0 Book and diskette Understanding EMS 4 0 by Lloyd Borrett Technical Cornucopia January February 1989Este articulo o una version anterior esta basado originalmente en material de Free On line Dictionary of Computing utilizado con permiso Actualicelo a discrecion Vease tambien EditarArea de memoria alta Area de memoria superior DOS Protected Mode Interface Especificacion de memoria extendida Memoria convencional Memoria extendida Modo irreal Paginacion de memoriaEnlaces externos EditarDOS Protected Mode Interface DOS Protected Mode Services Virtual Control Program Interface Datos Q369664 Obtenido de https es wikipedia org w index php title Memoria expandida amp oldid 150484679, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos