Memòria estesa d'ordinadors

Memòria IBM PC

Els ordinadors coneguts com a PC-XT i PC-XT que dominaven el mercat fa pocs anys, avui dia estan totalment obsolets, però algunes de les seves limitacions, com a herència, per a preservar la compatibilitat dels programes escrits per a ells han arribat als següents ordinadors.

Tal com indiquem en l'últim número d'Elhuyar, la memòria d'entre 0 i 640 Kb es denomina Memòria Ordinària (Conventional Memory). El següent tram de 384 kilobytes sobre ell es coneix com a Memòria Superior (Upper Memory) i està comprès entre 640 Kb i 1024 Kb. (Veure figura 1).

Microprocessador 8088 i Sistema Operatiu DOS

La raó d'aquests nombres màgics 640 Kb i 1024 Kb prové del disseny intern del microprocessador 8088 utilitzat per a l'antic ordinador personal IBM PC.

El Bus de direccions que té el micro 8088 d'Intel està format per 20 fils. Atès que en un moment donat es transmet un bit per cada cable, es pot adreçar un màxim de 220 = 1.048.576 direccions diferents o en repòs.

Memori té una longitud de 8 bits (un byte) i una direcció defineix per definició una única pila. Per tant, la capacitat de la memòria pot ser 220 = 1.048.576 inertizados = 1.048.576 bytes = 1.024 Kb = 1 Mb.

Per a domiciliar aquests 1024 Kb de la memòria esmentada es necessiten 20 bits. A causa de l'arquitectura d'aquest microprocessador, el Bus de Dades és de 16 bits i recorda que les direccions es transporten des de la Taula Memori a la Unitat de Control a través del Bus de Dades (Elhuyar 70).

Per tant, com es pot obtenir una direcció de 20 bits mitjançant 16 bits? Per a això s'ha inventat un adreçament segmentat: Direcció real de 20 bits indicant dos números de 16 bits [segment (base) i offset (desplaçament)]. El microprocessador 8088, prenent el parell segment/offset, calcula la direcció física real aplicant el següent algorisme:

10h * segmento + desplaçament

Figura 1.Mapa Memori
del microprocessador 8086/8088: La Memòria Ordinària, les Dades Bàsiques i el Sistema Operatiu són emmagatzemats obligatòriament, sent l'espai restant per a l'Aplicació d'Usuari la part que va des de la posició de l'últim Programa Resident fins als 640 Kb.

Des del punt de vista maquinari, si el cor de PC XT va ser 8088 micro, des del punt de vista programari es va optar pel Sistema Operatiu DOS. I els programes que s'executen sota el Sistema Operatiu DOS utilitzen la Memòria Ordinària.

La interface dels moderns programes d'aplicació (comunicació entre l'operador i l'ordinador) s'ha simplificat notablement, ja que es basa en un extens gràfic, finestres, menús, ratolins, etc., però la memòria que requereixen totes aquestes funcions és molt gran i com es pot observar en la figura 1, l'espai que queda per a l'aplicació de l'usuari és molt reduït a causa de l'escassetat de la Memòria Simple. En aquest sentit, i en els ordenadors tipus 8088, el missatge traduït per alguna aplicació que intenta executar és l'habitual de “Memòria insuficient en el sistema”.

La forma més directa de conèixer la memòria d'un ordinador és mitjançant l'execució del comando CHKDSK transitori del Sistema Operatiu DOS (Figura 2). El comando CHKDSK mostra la grandària de la memòria completa i el que està lliure en aquest moment. Tingues en compte que per a més informació i amb la versió 4.0 o posterior del Sistema Operatiu DOS, es pot utilitzar el comando NOM (Figura 3).

Figura . El comando CHKDSK, després d'analitzar l'estat del disc, ofereix la seva informació i la de la memòria. Només coneix la Memòria Ordinària (abans 640 Kb).

Mapa memorial microprocessadors INTEL 8086/8088, 80286 i 80386/80486

Es va pensar que la memòria de 640 Kb era suficient en un temps, però en pocs anys ha quedat molt petita. Per això, i en lloc de superar aquesta limitació, s'han abordat dues vies:

  • Desenvolupant l'ús de la Memòria Ampliada superior a 1024 Kb. Veure (Elhuyar 71)
  • Inventant la Memòria Estesa

Per a comprendre bé una via o una altra, analitzarem el mapa de memori en funció del microprocessador (veure figura 4).

La Memòria Ordinària s'entendrà com exposada i no es procedirà més.

Els 384 Kb de memòria superior es divideixen en sis segments de 64Kb. La distribució de la memòria superior pot variar d'un ordinador a un altre, però, en general, pot semblar:

  • Els segments A i B estan reservats per a la Memòria de Vídeo.
  • El segment C, per als controladors de vídeo i disc, normalment està buit.
  • Segment D, Finestra Pàgina Memòria Ampliada.
  • El segment E normalment buit.
  • En el segment F s'acumulen les rutines de ROM bios.

Amb aquest últim segment arribem fins a 1024 Kb i a partir d'ara la memòria que hi ha es diu Memòria Ampliada. És clar que els ordenadors tipus 8088 no disposen d'ells i que l'única opció que els queda per a superar els 640 Kbytes és la de la Memòria Estesa.

Figura . També coneix el comando SN, (a partir de la versió 4.0) la Memòria Simple i la memòria ampliada que pot estar per sobre d'ella. En el nostre cas es tracta d'una AT de 1Mb, 640 Kb Memòria Ordinària i Alta Memòria (384 Kb), denominada Sistema Operatiu esteneu.

Memòria Estesa

Si el Sistema Operatiu MS-DOS s'ha mantingut fins avui com a estàndard, ha estat gràcies a la Memòria Estesa. La Memòria Estesa permet trencar el límit de 640 Kb i executar programes majors.

Abans de res cal dir que la Memòria Estesa és un parany ideat pels programadors. Si la Memòria Ampliada és superior a 1 Mb, la Memòria Estesa manca de direcció fixa i és un truc proposat per un grup d'empreses.

Les empreses Lotus-Intel-Microsoft van realitzar l'especificació LIM EMS o EMS (Expanded Memory Specification) perquè els programes del Sistema Operatiu DOS superessin els 640 Kb.

La Memòria Estesa està situada en una targeta que cal afegir a l'ordinador des de fora. A continuació es mostren, per exemple, les característiques de la Memòria Estesa EMS versió 4.0:

Ample Memòria Ampliada:
32MbAncho de pàgina
lògica:
16 Kbps Pàgines més
lògiques:
2.048 pàgines lògiques

Com tota la Memòria Estesa es divideix en pàgines lògiques de 16 Kb, sortirà 2.048 pàgines lògiques.

32 * 1.048.576 (bytes)16
* 1.024 (bytes/pàgines)= 2.048

pàgines lògiques

Figura . Mapa memorial d'ordinadors amb microprocessadors INTEL 8086/8088, 80286 i 80386/80486.

Atès que la Memòria Estesa és una memòria adjunta, el Sistema Operatiu DOS no podrà domiciliar l'existent, ja que l'última direcció amb significat per al mateix és de 1024 Kb. És a dir, les direccions que pot utilitzar DUES són les que físicament es poden definir a través del Bus de Direccions, començant per 0 Kb fins a 1024 Kb.

En aparèixer l'alta memòria s'ha observat que alguns segments eren buits, i hi ha un reservat per a una cosa concreta: Segment D, denominat Finestra de Pàgines de Memòria Estesa (Page Frame).

Aquest segment D ofereix la possibilitat d'enllaçar el microprocessador amb la Memòria Estesa. Quan una aplicació necessita alguna cosa que es troba en la Memòria Ampliada, un gestor de memòria MMU (MMU: Memory Management Unit) còpia la pàgina lògica corresponent a aquesta dada al segmento D. L'especificació EMS és només un intercanvi de bancs memorials. D'alguna manera, des de l'estreta finestra de pàgines es pot obtenir una vista molt àmplia. (Veure figura 5).

Especificacions de la Memòria Estesa

Existeixen diferents Memòries Esteses en el mercat. Les més importants són: LIM EMS, XMA d'IBM i EEMS d'AST.

La Memòria Estesa XMA és una especificació de la casa IBM i només admet targetes d'IBM, no és molt utilitzada i el controlador XMA2EMS.SYS que ofereix el Sistema Operatiu DOS 4.0 transforma la Memòria XMA Estesa en EMS Estesa.

El nom de la Memòria Estesa EEMS, Enhanced Expanded Memory Specification, indica que EMS és millorat i se li anuncia un futur prometedor.

La Memòria Estesa LIM EMS és del trio Lotus-Intel-Microsoft i sens dubte la més habitual. Està tan present en el mercat que quan algú parla de la Memòria Estesa, si no afegeix precisió es pot dir que es refereix a aquest LIM EMS esmentat.

Figura . En el cas EMS 4.0 La finestra de pàgines ocupa els segments C, D i E (192 Kb en total) i forma 12 pàgines físiques de 16 Kb. A aquestes pàgines físiques s'accedeix a la informació a tractar. Qualsevol canvi en la pàgina física es realitza automàticament en la pàgina lògica mantenint actualitzats les dades.

Conversions entre Memòria Estesa i Memòria Ampliada

La Memòria Ampliada (Esteneu Memory) és la memòria RAM pròpia dels ordinadors 80286//80386/80486, amb una posició superior a 1024 Kb.

El microprocessador ha d'estar protegit per a poder utilitzar la Memòria Ampliada. El parell de segments/offset indicat anteriorment serveix per a indicar direccions de 20 bits però no per a busos de direccions de 24 bits (80286) o 32 bits (80386). Per això s'utilitza un parell de seleccionadors/offset. El selector és l'índex d'una taula de direccions físiques.

Com s'ha dit, són molts els programes d'aplicació que s'executen en la Memòria Estesa. Per a poder utilitzar la Memòria Ampliada, els programes han de tenir en compte la manera protegida del microprocessador i han de redactar-se específicament per a la Memòria Ampliada, exemples d'això són els Sistemes Operatius UNIX i US/2.

Existeixen en el mercat alguns programes d'aplicació executables en la Memòria Ampliada, però són pocs. Com des del punt de vista del programador la Memòria Estesa és més senzilla, pràcticament tots els programes del mercat l'accepten, amb l'inconvenient d'haver d'afegir una targeta especial.

En resum, la situació seria la següent: els ordinadors més comuns que actualment estan a la venda a la botiga són 80286, 80386 i 80486, amb una enorme Memòria Ampliada, però sense un programa d'aplicació adequat.

La solució és configurar la Memòria Ampliada que contenen com una Memòria Estesa sense afegir cap targeta, és a dir, que la Memòria Ampliada simula la Memòria Estesa. Per a això és necessari instal·lar un controlador de dispositiu especial en el fitxer de configuració CONFIG.SYS. Per exemple:

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

Els tres converteixen la Memòria Ampliada en Memòria Estesa. El controlador EMS4 simula la Memòria Ampliada LIM-EMS 4.0. Apte per a ordenadors PC-AT i 80286. Retorna la Memòria Ampliada a la versió 4.05 de LIM-EMS a través del fitxer EMM386, especial per a ordinadors 80386. El controlador XMSAEM passa la Memòria Ampliada a la Memòria Estesa tipus XMA, normalment aquest XMSAEM.SYS s'utilitza juntament amb un altre fitxer (XMA2EMS.SYS), de manera que s'accedeix de la Memòria XMA Estesa d'IBM a la Memòria Estesa LIM-EMS.

Diccionari

En els tres últims articles sobre la memòria dels ordinadors ha aparegut una nova bateria de paraules i perquè els passos cap endavant en la normalització del basc, és necessari que existeixi un consens absolut en la fixació de la terminologia. Les aquí posades són opinions de l'autor. Heus aquí els termes dubtosos en la llengua original i les traduccions proposades:

MemoryConvent>MemoryUpper
MemoryHigh

MemoryExtendded MemoryVideo
MemoryPage Frame



Memòria Memòria

Normal Memòria Memòria
AmpliadaMemoria AmpliadaMemoria
AmpliadaVídeomemoria



Si algun d'ells no fos correcte, estaríem disposats a acceptar immediatament els substituts que fossin més adequats.

Nota: Per a veure bé les imatges accedeix al pdf.

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila