Introduction
Le mémoire EMS, dont son nom provient de l'abréviation d'origine anglaise d'«Expanded Memory System/Expanded Memory Manager», aussi appelé Mémoire paginée, fournit la possibilité de contourner la limite de 1 Mo que peuvent gérer les microprocesseurs 8086, 8088, 80188, 80186, NEC V20 et NEC V30 grâce à une technique de mémoire paginée. La variante de mémoire EMS la plus connue fut celle développer conjointement par Lotus Software, Intel et Microsoft et ayant l'appellation «LIM EMS». Cependant, il existe également la variante «EEMS» développée par AST Research, Quadram et Ashton-Tate fournissant la possibilité de cartographier n'importe quelle zone de mémoire sous les 1 Mo. Enfin, IBM a créé sa propre variante de mémoire qu'il nomma XMA. Ainsi, généralement, on constatera 4 plages de 16 Ko donnant un accès à une banque de mémoire pouvant aller jusqu'à 32 Mo. Le détail le plus intéressant de ce type de mémoire, c'est qu'il est possible de faire en sorte qu'il utilise le disque dur ou un autre support que la mémoire vive pour entreposer l'information.
Situation actuelle
Avec l'arrivée de Windows 95, ce type de mémoire vive a été progressivement abandonné à cause que le système d'exploitation permet de supporter plus de mémoire sans passer par un pilote. Donc, les systèmes d'exploitation modernes comme Windows, Mac OS X ou Linux ne supportent plus se type de mémoire bien qu'ils prennent tous en charge l'assembleur de la famille 80x86.
Remarques
- L'ensemble de puces 82C322 permet l'utilisation de ce type de mémoire par l'intermédiaire des ports d'entrée/sortie 0022h/0023h.
- Des cartes avec des fentes ISA comme «Emulex Persyst 4 MiB ISA» supportent de façon matérielle ce type de mémoire.
- Les systèmes d'exploitation MS-DOS fournissaient un support de ce type de mémoire en utilisant la mémoire XMS grâce au pilote «EMM386.EXE». Toutefois, il y avait également de nombreux utilitaires comme 386MAX, Memory Commander, QEMM386 ou QEMM fournissant le même genre de possibilité avec cependant plus d'efficacité.
- Bien que Windows est abandonné toute forme de support de ce type de mémoire, les systèmes d'exploitation OS/2 et eComStation supporte encore ce type de mémoire.
- Si vous utilisez le système d'exploitation OS/2 ou eComStation, vous devez vous assurer que le paramètre de session «EMS_MEMORY_LIMIT» soit supérieur à 0.
Code source
Voici des exemples de code source d'utilitaires pour manipuler l'EMS :
Lien | Langage de programmation | Description | Projet |
---|---|---|---|
EMSTEST.PAS | Turbo Pascal | Cette commande permet de tester la mémoire EMS. Cette commande est un clone de la commande EMSTEST du Turbo Pascal 6. | Corail |
Voir également
Langage de programmation - Assembleur 80x86 - Interruption 67h: Gestionnaire EMS/EMM
Langage de programmation - Turbo Pascal - Référence de procédures et fonctions - «OVRINITEMS»
Langage de programmation - Turbo Pascal pour Windows - Référence de procédures et fonctions - «LIMITEMSPAGES»
Langage de programmation - C pour OS/2 - Référence procédures et fonctions - «LIMITEMSPAGES»
Système d'exploitation - MS-DOS 3.21 Enhanced Amdek - Références de commandes et de programmes - «VMEM»
Système d'exploitation - MS-DOS 5 - Références de commandes et de programmes - «EMM386»
Système d'exploitation - MS-DOS 6 - Références de commandes et de programmes - «EMM386»