}

Mémoire étendue des ordinateurs

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

Mémoire IBM PC

Les ordinateurs connus sous le nom de PC-XT et PC-XT qui dominaient le marché il y a quelques années, sont aujourd'hui totalement obsolètes, mais certaines de leurs limitations, comme héritage, pour préserver la compatibilité des programmes écrits pour eux sont venus aux ordinateurs suivants.

Comme indiqué dans le dernier numéro d'Elhuyar, la mémoire de 0 à 640 Ko est appelée Mémoire Ordinaire (Mémoire Conventionnelle). Le tronçon suivant de 384 kilo-octets au-dessus est connu comme Mémoire Supérieure (Upper Memory) et est compris entre 640 Kb et 1024 Kb. (Voir figure 1).

Microprocesseur 8088 et OS DOS

La raison de ces chiffres magiques 640 Kb et 1024 Kb vient de la conception interne de la puce 8088 utilisé pour l'ancien ordinateur personnel IBM PC.

Le Bus d'adresse du micro 8088 d'Intel est composé de 20 fils. Comme un bit est transmis par câble à un moment donné, un maximum de 220 = 1.048.576 directions différentes ou au repos peut être adressé.

Memori a une longueur de 8 bits (un octet) et une adresse définit par définition une seule pile. Par conséquent, la capacité de la mémoire peut être 220 = 1.048.576 inertiisés = 1.048.576 octets = 1.024 Kb = 1 Mb.

Pour domicilier ces 1024 Ko de la mémoire mentionnée, 20 bits sont nécessaires. En raison de l'architecture de ce microprocesseur, le Bus de Données est de 16 bits et rappelle que les adresses sont transférées du Tableau Memori à l'Unité de Contrôle via le Bus de Données (Elhuyar 70).

Alors, comment pouvez-vous obtenir une adresse 20 bits par 16 bits? Pour cela, un adressage segmenté a été inventé: Adresse réelle 20 bits indiquant deux nombres de 16 bits [segment (base) et offset (décalage)]. Le microprocesseur 8088, prenant la paire segment/offset, calcule l'adresse physique réelle en appliquant l'algorithme suivant :

10h * segment + déplacement

Figure 1.Carte Memori de
puce 8086/8088 : La mémoire ordinaire, les données de base et le système d'exploitation sont conservés obligatoirement, l'espace restant pour l'application de l'utilisateur étant la partie qui va de la position du dernier programme résident à 640 Ko.

Du point de vue matériel, si le cœur de PC XT était 8088 micro, du point de vue logiciel a été choisi pour le système d'exploitation DOS. Et les programmes fonctionnant sous le système d'exploitation DOS utilisent la mémoire ordinaire.

L'interface des programmes d'application modernes (communication entre l'opérateur et l'ordinateur) a été considérablement simplifiée, car elle est basée sur un graphique étendu, des fenêtres, des menus, des souris, etc., mais la mémoire nécessitant toutes ces fonctions est très grande et comme on peut le voir dans la figure 1, l'espace restant pour l'application de l'utilisateur est très réduit en raison de la pénurie de la Mémoire Simple. À cet égard, et sur les ordinateurs de type 8088, le message traduit par une application que vous essayez d'exécuter est l'habitude de “Mémoire insuffisante sur le système”.

La façon la plus directe de connaître la mémoire d'un ordinateur est en exécutant la commande CHKDSK transitoire du système d'exploitation DOS (Figure 2). La commande CHKDSK affiche la taille de la mémoire complète et ce qui est libre à ce moment-là. Notez que pour plus d'informations et avec la version 4.0 ou ultérieure du système d'exploitation DOS, vous pouvez utiliser la commande NOM (figure 3).

Figure . La commande CHKDSK, après avoir analysé l'état du disque, fournit ses informations et celles de la mémoire. Il ne connaît que la Mémoire Ordinaire (avant 640 Kb).

Carte mémorial microprocesseurs INTEL 8086/8088, 80286 et 80386/80486

On pensait que la mémoire de 640 Kb était suffisante en un temps, mais en quelques années elle était très petite. Ainsi, et au lieu de surmonter cette limitation, deux voies ont été abordées:

  • Développer l'utilisation de la mémoire étendue supérieure à 1024 Kb. Voir (Elhuyar 71)
  • Inventer la mémoire étendue

Pour bien comprendre une voie ou une autre, nous allons analyser la carte memori en fonction du microprocesseur (voir figure 4).

La Mémoire Ordinaire sera considérée comme exposée et ne sera plus exécutée.

Les 384 Ko de mémoire supérieure sont divisés en six segments de 64Ko. La distribution de la mémoire supérieure peut varier d'un ordinateur à l'autre, mais en général, il peut sembler:

  • Les segments A et B sont réservés à la mémoire vidéo.
  • Le segment C, pour les contrôleurs vidéo et disque, est normalement vide.
  • Segment D, Fenêtre Page Mémoire Étendue.
  • Le segment E normalement vide.
  • Dans le segment F, les routines de ROM BIOS s'accumulent.

Avec ce dernier segment, nous atteignons 1024 Kb et à partir de maintenant la mémoire là-bas est appelée Mémoire Étendue. Il est clair que les ordinateurs de type 8088 ne disposent pas d'eux et que la seule option qui leur reste pour dépasser les 640 Kbytes est celle de la Mémoire Étendue.

Figure . Vous connaissez également la commande SN, (à partir de la version 4.0) la Mémoire Simple et la mémoire étendue qui peut être au-dessus. Dans notre cas, il s'agit d'un AT de 1Mb, 640 Kb Mémoire ordinaire et Haute Mémoire (384 Kb), appelé système d'exploitation extended.

Mémoire Étendue

Si le système d'exploitation MS-DOS est resté standard à ce jour, il a été grâce à la mémoire étendue. La mémoire étendue permet de briser la limite de 640 Ko et d'exécuter des programmes plus grands.

Avant tout, il faut dire que la Mémoire Étendue est un piège conçu par les programmeurs. Si la mémoire étendue est supérieure à 1 Mo, la mémoire étendue n'a pas de direction fixe et est un truc proposé par un groupe d'entreprises.

Les sociétés Lotus-Intel-Microsoft ont réalisé la spécification LIM EMS ou EMS (Expanded Memory Specification) pour que les programmes du système d'exploitation DOS dépassent 640 Kb.

La mémoire étendue est située sur une carte à ajouter à l'ordinateur de l'extérieur. Voici, par exemple, les caractéristiques de la mémoire étendue EMS version 4.0:

Mémoire élargie:
32MbLargeur de page
logique:
16 Kbps Pages les plus logiques
:
2.048 pages logiques

Comme toute la Mémoire Étendue est divisée en pages logiques de 16 Ko, il sortira 2.048 pages logiques.

32 * 1.048.576 (octets)16
* 1.024 (octets/pages)= 2.048

pages logiques

Figure . Carte mémoire des ordinateurs avec microprocesseurs INTEL 8086/8088, 80286 et 80386/80486.

Comme la mémoire étendue est une mémoire jointe, le système d'exploitation DOS ne peut pas domicilier l'existant, car la dernière adresse avec une signification pour elle est de 1024 Kb. C'est-à-dire que les adresses que vous pouvez utiliser DOS sont celles qui peuvent être physiquement définies par le Bus d'Adresse, à partir de 0 Kb jusqu'à 1024 Kb.

Lorsque la haute mémoire est apparue, il a été observé que certains segments étaient vides, et il ya un réservé pour quelque chose de concret: Segment D, appelé Fenêtre des pages mémoire étendue (Page Frame).

Ce segment D offre la possibilité de lier le microprocesseur à la mémoire étendue. Quand une application a besoin de quelque chose qui se trouve dans la mémoire étendue, un gestionnaire de mémoire MMU (MMU: Memory Management Unit) copie la page logique correspondant à cette donnée au segment D. La spécification EMS est juste un échange de banques mémoriales. En quelque sorte, à partir de la fenêtre étroite de pages, vous pouvez obtenir une vue très large. (Voir figure 5).

Spécifications de la mémoire étendue

Il existe différentes mémoires étendues sur le marché. Les plus importantes sont: LIM EMS, XMA d'IBM et EEMS de AST.

La Mémoire Étendue XMA est une spécification de la maison IBM et ne prend en charge que les cartes IBM, n'est pas très utilisé et le pilote XMA2EMS.SYS qui offre le système d'exploitation DOS 4.0 transforme la Mémoire XMA Étendue en EMS Étendue.

Le nom de la mémoire étendue EEMS, Enhanced Expanded Memory Specification, indique que l'EMS est améliorée et un avenir prometteur lui est annoncé.

La mémoire étendue LIM EMS est du trio Lotus-Intel-Microsoft et certainement le plus courant. Il est si présent sur le marché que lorsque quelqu'un parle de la mémoire étendue, s'il n'ajoute pas de précision, on peut dire qu'il se réfère à ce LIM EMS mentionné.

Figure . Dans le cas EMS 4.0 La fenêtre des pages occupe les segments C, D et E (192 Kb au total) et forme 12 pages physiques de 16 Kb. Ces pages physiques sont accessibles aux informations à traiter. Toute modification de la page physique est effectuée automatiquement sur la page logique en gardant les données à jour.

Conversions entre mémoire étendue et mémoire étendue

La mémoire étendue est la mémoire vive des ordinateurs 80286//80386/80486, avec une position supérieure à 1024 Kb.

Le microprocesseur doit être protégé pour pouvoir utiliser la mémoire étendue. La paire de segments/offset indiquée ci-dessus sert à indiquer les adresses 20 bits mais pas pour les bus 24 bits (80286) ou 32 bits (80386). Par conséquent, une paire de sélectionneurs/offset est utilisée. Le sélecteur est l'index d'une table d'adresse physique.

Comme il a été dit, de nombreux programmes d'application sont exécutés dans la mémoire étendue. Pour pouvoir utiliser la Mémoire Étendue, les programmes doivent tenir compte du mode protégé du microprocesseur et doivent être rédigés spécifiquement pour la Mémoire Étendue, les systèmes d'exploitation UNIX et OS/2 en sont les exemples.

Il existe sur le marché quelques programmes d'application exécutables dans la Mémoire Étendue, mais ils sont peu nombreux. Comme du point de vue du programmeur la Mémoire Étendue est plus simple, pratiquement tous les programmes du marché l'acceptent, avec l'inconvénient d'avoir à ajouter une carte spéciale.

En bref, la situation serait la suivante: les ordinateurs les plus courants qui sont actuellement en vente dans le magasin sont 80286, 80386 et 80486, avec une énorme mémoire étendue, mais sans un programme d'application approprié.

La solution est de configurer la mémoire étendue qu'ils contiennent comme une mémoire étendue sans ajouter de carte, c'est-à-dire que la mémoire étendue simule la mémoire étendue. Pour cela, vous devez installer un pilote de périphérique spécial dans le fichier de configuration CONFIG.SYS. Par exemple :

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

Les trois convertissent la mémoire étendue en mémoire étendue. Le contrôleur EMS4 simule la mémoire étendue LIM-EMS 4.0. Convient pour les ordinateurs PC-AT et 80286. Retourne la mémoire étendue à la version 4.05 de LIM-EMS via le fichier EMM386, spécialement pour les ordinateurs 80386. Le pilote XMSAEM passe la mémoire étendue à la mémoire étendue type XMA, normalement ce XMSAEM.SYS est utilisé avec un autre fichier (XMA2EMS.SYS), de sorte qu'il est accessible de la mémoire XMA étendue d'IBM à la mémoire étendue LIM-EMS.

Dictionnaire

Dans les trois derniers articles sur la mémoire des ordinateurs est apparu une nouvelle batterie de mots et pour que les étapes en avant dans la normalisation de l'euskera, il est nécessaire qu'il y ait un consensus absolu dans la fixation de la terminologie. Les ici mises sont des avis de l'auteur. Voici les termes douteux dans la langue originale et les traductions proposées:

MemoryConvent
MemoryUpper

MemoryHigh MemoryExtendded
MemoryPage Frame



Mémoire Mémoire

Normale Mémoire Mémoire AmpliéeMémoire
Étendue Mémoire
Étendue



Si l'un d'eux n'était pas correct, nous serions prêts à accepter immédiatement les substituts qui étaient les plus appropriés.

Remarque: Pour bien voir les images, accédez au pdf.

Gai honi buruzko eduki gehiago

Elhuyarrek garatutako teknologia