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).
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
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).
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:
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:
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.
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
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).
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.
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.
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 |
Memoria Memoria |
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.