}

Memoria estendida de computadores

1993/06/01 Romo Uriarte, Jesus Maria Iturria: Elhuyar aldizkaria

Memoria IBM PC

Os computadores coñecidos como PC-XT e PC-XT que dominaban o mercado hai poucos anos, hoxe en día están totalmente obsoletos, pero algunhas das súas limitacións, como herdanza, paira preservar a compatibilidade dos programas escritos paira eles chegaron aos seguintes computadores.

Tal e como indicamos no último número de Elhuyar, a memoria de entre 0 e 640 Kb denomínase Memoria Ordinaria (Conventional Memory). O seguinte tramo de 384 kilobytes sobre el coñécese como Memoria Superior (Upper Memory) e está comprendido entre 640 Kb e 1024 Kb. (Ver figura 1).

Microprocesador 8088 e Sistema Operativo DOUS

A razón destes números máxicos 640 Kb e 1024 Kb provén do deseño interno do microprocesador 8088 utilizado paira o antigo computador persoal IBM PC.

O Bus de direccións que ten o micro 8088 de Intel está formado por 20 fíos. Dado que nun momento dado transmítese un bit por cada cable, pódese direccionar un máximo de 220 = 1.048.576 direccións diferentes ou en repouso.

Memori ten una lonxitude de 8 bits (un byte) e una dirección define por definición una única pila. Por tanto, a capacidade da memoria pode ser 220 = 1.048.576 inertizados = 1.048.576 bytes = 1.024 Kb = 1 Mb.

Paira domiciliar eses 1024 Kb da memoria mencionada necesítanse 20 bits. Debido á arquitectura de leste microprocesador, o Bus de Datos é de 16 bits e lembra que as direccións se transportan desde a Táboa Memori á Unidade de Control a través do Bus de Datos (Elhuyar 70).

Por tanto, como se pode obter una dirección de 20 bits mediante 16 bits? Paira iso inventouse un direccionamiento segmentado: Dirección real de 20 bits indicando dous números de 16 bits [segmento (base) e offset (desprazamento)]. O microprocesador 8088, tomando o par segmento/offset, calcula a dirección física real aplicando o seguinte algoritmo:

10h * segmento + desprazamento

Figura 1.Mapa Memori
do microprocesador 8086/8088: A Memoria Ordinaria, os Datos Básicos e o Sistema Operativo son almacenados obrigatoriamente, sendo o espazo restante paira a Aplicación de Usuario a parte que vai desde a posición do último Programa Residente até os 640 Kb.

Desde o punto de vista hardware, se o corazón de PC XT foi 8088 micro, desde o punto de vista software optouse polo Sistema Operativo DOUS. E os programas que se executan baixo o Sistema Operativo DOUS utilizan a Memoria Ordinaria.

A interface dos modernos programas de aplicación (comunicación entre o operador e o computador) simplificouse notablemente, xa que se basea nun extenso gráfico, xanelas, menús, ratos, etc., pero a memoria que requiren todas estas funcións é moi grande e como se pode observar na figura 1, o espazo que queda paira a aplicación do usuario é moi reducido debido á escaseza da Memoria Simple. Neste sentido, e no ordenadores tipo 8088, a mensaxe traducida por algunha aplicación que tenta executar é o habitual de “Memoria insuficiente no sistema”.

A forma máis directa de coñecer a memoria dun computador é mediante a execución do comando CHKDSK transitorio do Sistema Operativo DOUS (Figura 2). O comando CHKDSK mostra o tamaño da memoria completa e o que está libre nese momento. Ten en conta que paira máis información e coa versión 4.0 ou posterior do Sistema Operativo DOUS, pódese utilizar o comando NOM (Figura 3).

Figura . O comando CHKDSK, tras analizar o estado do disco, ofrece a súa información e a da memoria. Só coñece a Memoria Ordinaria (antes 640 Kb).

Mapa memorial microprocesadores INTEL 8086/8088, 80286 e 80386/80486

Pensouse que a memoria de 640 Kb era suficiente nun tempo, pero en poucos anos quedou moi pequena. Por iso, e en lugar de superar esta limitación, abordáronse dúas vías:

  • Desenvolvendo o uso da Memoria Ampliada superior a 1024 Kb. Ver (Elhuyar 71)
  • Inventando a Memoria Estendida

Paira comprender ben una vía ou outra, imos analizar o mapa de memori en función do microprocesador (ver figura 4).

A Memoria Ordinaria entenderase como exposta e non se procederá máis.

Os 384 Kb de memoria superior divídense en seis segmentos de 64Kb. A distribución da memoria superior pode variar dun computador a outro, pero, en xeral, pode parecer:

  • Os segmentos A e B están reservados paira a Memoria de Vídeo.
  • O segmento C, paira os controladores de vídeo e disco, normalmente está baleiro.
  • Segmento D, Xanela Páxina Memoria Ampliada.
  • O segmento E normalmente baleiro.
  • No segmento F acumúlanse as rutinas de ROM bios.

Con este último segmento chegamos até 1024 Kb e a partir de agora a memoria que hai chámase Memoria Ampliada. Está claro que o ordenadores tipo 8088 non dispoñen deles e que a única opción que queda paira superar os 640 Kbytes é a da Memoria Estendida.

Figura . Tamén coñece o comando SN, (a partir da versión 4.0) a Memoria Simple e a memoria ampliada que pode estar por encima dela. No noso caso trátase dunha AT de 1Mb, 640 Kb Memoria Ordinaria e Alta Memoria (384 Kb), denominada Sistema Operativo estendede.

Memoria Estendida

Se o Sistema Operativo MS-DOUS mantívose até a data como estándar, foi grazas á Memoria Estendida. A Memoria Estendida permite romper o límite de 640 Kb e executar programas maiores.

Antes de nada hai que dicir que a Memoria Estendida é una trampa ideada polos programadores. Se a Memoria Ampliada é superior a 1 Mb, a Memoria Estendida carece de dirección fixa e é un truco proposto por un grupo de empresas.

As empresas Lotus-Intel-Microsoft realizaron a especificación LIM EMS ou EMS (Expanded Memory Specification) para que os programas do Sistema Operativo DOUS superasen os 640 Kb.

A Memoria Estendida está situada nun cartón que hai que engadir ao computador desde fóra. A continuación móstranse, por exemplo, as características da Memoria Estendida EMS versión 4.0:

Ancho Memoria Ampliada:
32MbAncho de páxina
lóxica:
16 Kbps Páxinas máis
lóxicas:
2.048 páxinas lóxicas

Como toda a Memoria Estendida divídese en páxinas lóxicas de 16 Kb, sairá 2.048 páxinas lóxicas.

32 * 1.048.576 (bytes)16
* 1.024 (bytes/páxinas)= 2.048

páxinas lóxicas

Figura . Mapa memorial de computadores con microprocesadores INTEL 8086/8088, 80286 e 80386/80486.

Dado que a Memoria Estendida é una memoria adxunta, o Sistema Operativo DOUS non poderá domiciliar a existente, xa que a última dirección con significado paira o mesmo é de 1024 Kb. É dicir, as direccións que pode utilizar DÚAS son as que fisicamente se poden definir a través do Bus de Direccións, comezando por 0 Kb até 1024 Kb.

Ao aparecer a alta memoria observouse que algúns segmentos eran baleiros, e hai un reservado paira algo concreto: Segmento D, denominado Xanela de Páxinas de Memoria Estendida (Page Frame).

Este segmento D ofrece a posibilidade de enlazar o microprocesador coa Memoria Estendida. Cando una aplicación necesita algo que se atopa na Memoria Ampliada, un xestor de memoria MMU (MMU: Memory Management Unit) copia a páxina lóxica correspondente a este dato ao segmento D. A especificación EMS é só un intercambio de bancos memoriales. Dalgunha maneira, desde a estreita xanela de páxinas pódese obter una vista moi ampla. (Ver figura 5).

Especificaciones da Memoria Estendida

Existen diferentes Memorias Estendidas no mercado. As máis importantes son: LIM EMS, XMA de IBM e EEMS de AST.

A Memoria Estendida XMA é una especificación da casa IBM e só admite cartóns de IBM, non é moi utilizada e o controlador XMA2EMS.SYS que ofrece o Sistema Operativo DOUS 4.0 transforma a Memoria XMA Estendida en EMS Estendida.

O nome da Memoria Estendida EEMS, Enhanced Expanded Memory Specification, indica que EMS é mellorado e anúnciaselle un futuro prometedor.

A Memoria Estendida LIM EMS é do trío Lotus-Intel-Microsoft e sen dúbida a máis habitual. Está tan presente no mercado que cando alguén fala da Memoria Estendida, se non engade precisión pódese dicir que se refire a leste LIM EMS mencionado.

Figura . No caso EMS 4.0 A xanela de páxinas ocupa os segmentos C, D e E (192 Kb en total) e forma 12 páxinas físicas de 16 Kb. A estas páxinas físicas accédese á información a tratar. Calquera cambio na páxina física realízase automaticamente na páxina lóxica mantendo actualizados os datos.

Conversiones entre Memoria Estendida e Memoria Ampliada

A Memoria Ampliada (Estendede Memory) é a memoria RAM propia dos computadores 80286//80386/80486, cunha posición superior a 1024 Kb.

O microprocesador debe estar protexido paira poder utilizar a Memoria Ampliada. O par de segmentos/offset indicado anteriormente serve paira indicar direccións de 20 bits pero non paira buses de direccións de 24 bits (80286) ou 32 bits (80386). Por iso utilízase un par de seleccionadores/offset. O selector é o índice dunha táboa de direccións físicas.

Como se dixo, son moitos os programas de aplicación que se executan na Memoria Estendida. Paira poder utilizar a Memoria Ampliada, os programas deben ter en conta o modo protexido do microprocesador e deben redactarse especificamente paira a Memoria Ampliada, exemplos diso son os Sistemas Operativos UNIX e VOS/2.

Existen no mercado algúns programas de aplicación executables na Memoria Ampliada, pero son poucos. Como desde o punto de vista do programador a Memoria Estendida é máis sinxela, practicamente todos os programas do mercado acéptano, co inconveniente de ter que engadir una cartón especial.

En resumo, a situación sería a seguinte: os computadores máis comúns que actualmente están á venda na tenda son 80286, 80386 e 80486, cunha enorme Memoria Ampliada, pero sen un programa de aplicación adecuado.

A solución é configurar a Memoria Ampliada que conteñen como una Memoria Estendida sen engadir ningún cartón, é dicir, que a Memoria Ampliada simula a Memoria Estendida. Paira iso é necesario instalar un controlador de dispositivo especial no ficheiro de configuración CONFIG.SYS. Por exemplo:

DEVICE = EMS4.SYSDEVICE
= EMM386.SYSDEVICE =
XMSAEM.SYS

O tres converten a Memoria Ampliada en Memoria Estendida. O controlador EMS4 simula a Memoria Ampliada LIM-EMS 4.0. Apto paira ordenadores PC-AT e 80286. Devolve a Memoria Ampliada á versión 4.05 de LIM-EMS a través do ficheiro EMM386, especial paira ordenadores 80386. O controlador XMSAEM pasa a Memoria Ampliada á Memoria Estendida tipo XMA, normalmente leste XMSAEM.SYS utilízase xunto con outro ficheiro (XMA2EMS.SYS), de forma que se accede da Memoria XMA Estendida de IBM á Memoria Estendida LIM-EMS.

Dicionario

No tres últimos artigos sobre a memoria dos computadores apareceu una nova batería de palabras e para que os pasos cara a adiante na normalización do eúscaro, é necesario que exista un consenso absoluto na fixación da terminología. As aquí postas son opinións do autor. Velaquí os termos dubidosos na lingua orixinal e as traducións propostas:

MemoryConvent>MemoryUpper
MemoryHigh

MemoryExtendded MemoryVideo
MemoryPage Frame



Memoria Memoria

Normal Memoria Memoria
AmpliadaMemoria AmpliadaMemoria
AmpliadaVídeomemoria



Se algún deles non fose correcto, estariamos dispostos a aceptar inmediatamente os substitutos que fosen máis adecuados.

Nota: Paira ver ben as imaxes accede ao pdf.

Gai honi buruzko eduki gehiago

Elhuyarrek garatutako teknologia