Gestion de la mémoire
Cette page présente quelques concepts de base sur la mémoire et la gestion de la mémoire. Nous allons commencer par les bases, une discussion sur le fonctionnement de la mémoire dans n'importe quel ordinateur. Ensuite, nous examinerons l'évolution de la mémoire dans la famille d'ordinateurs compatibles IBM PC. En cours de route, nous examinerons les différents types de mémoire PC et apprendrons comment 386MAX les fait fonctionner à des performances optimales.
Le matériel au début de cette page peut être familier aux utilisateurs expérimentés. Si vous êtes à l'aise avec les bases de la mémoire de l'ordinateur, vous pouvez passer aux sections suivantes sur la gestion de la mémoire de l'ordinateur.
Les bases de la mémoire informatique
Tous les ordinateurs ont de la mémoire, les puces entreposant les programmes et les données. L'ajout de mémoire à un ordinateur le rend généralement plus puissant car il peut exécuter des programmes plus volumineux et contenir plus de données.
Octets
Nous mesurons la mémoire de l'ordinateur en unités appelées octets. Un octet est assez de mémoire pour contenir un caractère de l'alphabet, comme la lettre J. Voici un segment de mémoire contenant le mot "Jean" :
Ce diagramme montre une manière courante d'illustrer la mémoire d'un ordinateur : sous la forme d'une série de boîtes empilées et numérotées. Les cases sont des octets séquentiels de mémoire et les nombres sont des adresses. L'unité centrale de traitement (CPU) de l'ordinateur utilise l'adresse pour récupérer les informations dans un octet de mémoire. Étant donné que chaque octet a une adresse unique, le processeur peut récupérer ou stocker des informations au hasard à partir de n'importe quel octet. Nous appelons cette mémoire RAM, pour Random Access Memory.
RAM et ROM
Beaucoup de gens utilisent la RAM comme synonyme de mémoire d'ordinateur elle-même, bien qu'il en existe d'autres types. Les ordinateurs personnels contiennent généralement une certaine quantité de ROM, ou Read Only Memory, contenant des données ne changeant jamais. Les deux termes apparaissent fréquemment dans ce manuel.
L'adresse la plus basse dans la mémoire de l'ordinateur est l'adresse zéro. L'adresse la plus élevée dépend de plusieurs choses. Certains ordinateurs peuvent contenir plus de mémoire que d'autres. De plus, un ordinateur donné peut contenir plus que ce qui est réellement installé. Enfin, certains microprocesseurs, comme le 80386, fonctionnent dans différents modes. La quantité de mémoire que ces microprocesseurs peuvent utiliser peut dépendre du mode.
Kilooctets et mégaoctets
Étant donné que les ordinateurs peuvent contenir beaucoup de mémoire, nous mesurons rarement des octets individuels. Au lieu de cela, nous travaillons avec des unités appelées kilo-octets (ou Ko) et mégaoctets (ou Mo). Un kilo-octet correspond à 1 024 octets et un méga-octet à 1 048 576 octets.
Voici une façon de représenter un ordinateur avec un mégaoctet de mémoire :
Carte mémoire
Le numéro sur cette carte mémoire apparaît deux fois. La colonne de gauche représente la mémoire totale arrondie en kilo-octets. Les nombres à droite sont les adresses des octets individuels. La ligne représentant 640 Ko est significative pour les utilisateurs de PC, comme nous le verrons plus loin.
Nous écrivons rarement les adresses mémoire sous forme de nombres décimaux comme ceux de la colonne de droite sur le diagramme. Lorsqu'un manuel d'ordinateur ou un manuel fait référence à une adresse particulière, il utilise fréquemment la notation en base seize (hexadécimale). Ce système de numération fournit un moyen pratique de représenter les adresses mémoire.
L'équivalent hexadécimal de l'adresse 655 360 est A0000H. Nous supprimons souvent le chiffre hexadécimal de droite pour obtenir un nombre appelé adresse de paragraphe. Ainsi, l'adresse A0000H devient A000H. Vous devez connaître la notation hexadécimale pour travailler avec 386MAX. Si les nombres hexadécimaux vous intéressent, vous pouvez consulter un texte sur la programmation en langage de programmation assembleur.
Mémoire dans un compatible PC
Au début des ordinateurs personnels, la plupart des machines ne pouvaient accéder qu'à 64 Ko de mémoire. Cette limitation était une caractéristique des premières puces de microprocesseur. Ce n'était pas un problème car les logiciels de l'époque n'étaient pas très complexes. 64 Ko était amplement suffisant pour une petite feuille de calcul ou un simple jeu d'échecs sur ordinateur.
Microprocesseur 8088
Le premier IBM PC a tout changé. Il comportait un processeur plus sophistiqué - l'Intel 8088 - pouvant adresser un mégaoctet de mémoire. (Les premiers PC ne contenaient pas autant de mémoire.) Avec beaucoup plus d'espace pour travailler, les programmeurs ont développé de nouveaux progiciels capables de faire des choses remarquables.
Les utilisateurs ont rapidement découvert un problème. Non seulement le microprocesseur 8088 est limité à l'adressage d'un mégaoctet de mémoire, mais la conception du PC d'origine a réservé certaines de ces adresses, les rendant indisponibles. Cette limitation vient de la nécessité de dédier certaines zones de la mémoire à des usages autres que les programmes applicatifs. Le PC utilise de la mémoire pour communiquer avec un périphérique matériel comme les unités de disque et l'affichage vidéo.
Basse et haute mémoire DOS
Les concepteurs de l'IBM PC ont divisé la mémoire en deux parties : une partie de 640 Ko et une partie de 384 Ko. Étant donné que la division de 640 Ko commence à l'adresse zéro, nous l'appelons mémoire DOS basse. Les 384 Ko supérieurs correspondent à la zone de mémoire DOS haute.
La majeure partie de la mémoire DOS basse est disponible pour les programmes d'application tels que les tableurs et les traitements de texte. Le DOS lui-même utilise une partie de ces 640 Ko. Les programmes d'arrière-plan prennent également de la place. Ces programmes utiles sont connus sous le nom de logiciels résidents en mémoire ou de programmes résidents de fin et de séjour. Les pilotes de périphérique résident également dans une mémoire insuffisante. Un pilote de périphérique est un programme contrôlant un élément matériel spécifique; une souris, par exemple.
La zone de mémoire DOS haute a plusieurs utilisations. Gardez à l'esprit que cette zone ne contient généralement pas de RAM physique.
Une ROM système occupe généralement les 64 derniers Ko. Cette ROM contient le BIOS (Basic Input/Output System). Le BIOS contient un micrologiciel s'exécutant lorsque vous mettez le système sous tension ou réinitialisez le système. Il permet également d'accéder à divers périphériques matériels.
Les périphériques d'entrée/sortie utilisent également la zone DOS haute. Ces périphériques sont des cartes d'extension telles que des cartes vidéo et des cartes d'interface réseau.
Voici une carte mémoire du premier mégaoctet :
Après avoir pris en compte les différents pilotes de périphérique, le BIOS et d'autres exigences, il se peut qu'il ne vous reste que la moitié du mégaoctet d'origine. Étant donné que de nombreuses applications logicielles nécessitent 512 Ko pour fonctionner efficacement, il est facile de comprendre pourquoi les utilisateurs se sentent limités.
Mémoire étendue
L'industrie informatique a développé plusieurs méthodes pour dépasser la limite d'un mégaoctet. La plus réussie de ces méthodes est toujours avec nous. Il est connu sous le nom de standard LIM/EMS, du nom des trois sociétés qui l'ont inventé : Lotus, Intel et Microsoft. EMS signifie Expanded Memory Specification, faisant référence à une méthode permettant de rendre plus de mémoire accessible à partir du premier mégaoctet.
Avec le bon matériel et les bons logiciels, il est possible d'ajouter jusqu'à 32 Mo de mémoire paginée à n'importe quel PC. Cette mémoire peut contenir de grandes feuilles de calcul, des fichiers texte et d'autres données.
Le problème est que DOS et le microprocesseur 8088 reconnaissent la présence de mémoire paginée. Une carte mémoire EMS contient du matériel dédié à cette tâche. Le matériel EMS fait apparaître la mémoire en dehors du premier mégaoctet dans ce mégaoctet.
L'EMS réserve une zone dans le premier mégaoctet en tant que fenêtre (ou cadre de page EMS) pour la mémoire paginée. Lorsqu'un programme demande une partie de la mémoire paginée, le matériel EMS rend cette mémoire visible dans la fenêtre.
Changement de banque
Bien que la technique EMS ne copie pas réellement des blocs de données dans les deux sens entre différentes zones de mémoire, c'est l'effet. Voici un schéma illustrant la technique de changement de banque EMS :
Comme tout ce qui concerne la mémoire informatique, la technique EMS a ses avantages et ses inconvénients. Les avantages sont l'accès à plus de mémoire. N'importe quel PC, des premières machines basées sur 8088 aux ordinateurs 80486 les plus récents, peut utiliser EMS pour accéder à la mémoire au-delà d'un mégaoctet.
L'un des inconvénients est que les solutions antérieures nécessitaient un matériel coûteux. La prise en charge EMS n'était disponible qu'en ajoutant une carte mémoire EMS à votre système.
Une machine 80386 (ou compatible) ne nécessite pas de matériel spécial pour fournir des services EMS aux programmes d'application. 386MAX peut agir en tant que gestionnaire de mémoire et rendre la mémoire au-delà d'un mégaoctet disponible en tant que mémoire EMS. Cette fonctionnalité n'est qu'un aspect du 386MAX ; il y en a beaucoup d'autres.
Le PC/AT et au-delà
Les puces Intel ayant suivi le 8088 ne partageaient pas la limite d'un mégaoctet.
Le 80286 (ou juste 286) est le moteur à l'intérieur du PC/AT. Il peut accéder à 16 Mo de mémoire. Les puces de microprocesseur Intel les plus puissantes dans les années 1980, les 80386 (386) et 80486 (486), peuvent accéder à quatre gigaoctets de RAM. Un gigaoctet correspond à 1024 mégaoctets.
Mémoire étendue
La mémoire supplémentaire au-delà du premier mégaoctet est appelée mémoire étendue.
La principale différence entre l'EMS et la mémoire étendue est que la mémoire EMS fonctionnera avec n'importe quel microprocesseur Intel, y compris le 8088. La mémoire étendue n'est disponible que pour les ordinateurs basés sur les puces 286 et ultérieures.
Se pose alors la question de l'utilité. Jusqu'à récemment au milieu des années 1980, peu de programmes DOS utilisaient de la mémoire étendue. Cette situation à par la suite changé, car de plus en plus de programmes prennent en charge la mémoire étendue via XMS (la norme de mémoire étendue). Le XMS permet aux programmes de partager une mémoire étendue. 386MAX offre une prise en charge XMS complète.
De plus, de nouvelles normes telles que VCPI (Virtual Control Program Interface) et DPMI (DOS Protected Mode Interface) utilisent encore mieux la mémoire étendue.
Étant donné que XMS, VCPI et DPMI fonctionnent avec une mémoire étendue, ils nécessitent une puce 286 ou un microprocesseur plus récent. De plus, le support de ces standards nécessite un mode de fonctionnement particulier dans le microprocesseur.
Modes 286 et 386
En mode réel, ces processeurs se comportent comme un 8088 complet avec la limite d'adresse d'un mégaoctet. Le mode réel permet aux utilisateurs de PC disposant de 286 ou 386 machines d'exécuter des applications 8088 et DOS existantes.
En mode protégé, cependant, ces microprocesseurs accèdent à la mémoire au-delà d'un mégaoctet et exécutent d'autres fonctions avancées.
En raison de la nécessité d'exécuter des logiciels basés sur 8088, la plupart des machines 286 et 386 du monde ne fonctionnent pas à leur plein potentiel. Au lieu de cela, ils se comportent comme des versions plus rapides du PC d'origine.
Heureusement, il existe des moyens d'accéder à la puissance des microprocesseurs avancés et de rester avec DOS. 386MAX débloque de nombreuses fonctionnalités de la puce 386.
Capacités 386
Le 386 et ses successeurs ont des capacités bien au-delà de celles du 286. Le 386 est bien meilleur pour basculer entre le mode réel et le mode protégé. Il peut se déplacer facilement entre les programmes DOS et le logiciel en mode protégé plus avancé utilisant de la mémoire au-delà d'un mégaoctet.
Le 386 a une autre caractéristique. Il peut commuter ou cartographier des adresses en mémoire. Ce processus ressemble beaucoup à la technique EMS décrite dans la dernière section. La principale différence est que le microprocesseur 386 n'a pas besoin de matériel supplémentaire pour effectuer une opération de cartographie.
C'est la capacité de cartographie du microprocesseur 386 rendant les régions de la zone DOS élevée disponibles pour le 386MAX et vos programmes. 386MAX remplit ces régions précédemment vides avec de la RAM. Le 386MAX peut ensuite utiliser cette mémoire pour entreposer le logiciel résident en mémoire.
L'effet de cartographie de la mémoire et de la relocalisation des logiciels est dramatique. En déplaçant les programmes et les pilotes hors de la zone de 640 Ko, un utilisateur peut récupérer de nombreux kilo-octets pour les applications et les données. Voici une illustration montrant comment 386MAX déplace un programme résident de la mémoire DOS basse vers la mémoire DOS haute :
Le 386MAX utilise toutes les techniques dont nous avons parlé pour vous offrir le plus de mémoire possible. Il supervise la commutation de mode, la cartographie de la mémoire et la gestion de l'EMS et d'autres formes de RAM supplémentaires.
Si vous n'êtes pas intéressé par les détails de la mémoire de l'ordinateur, ce n'est pas grave. Le logiciel du 386MAX est suffisamment intelligent pour s'occuper de la plupart d'entre eux à votre place.