Extended Memory Specification

Extended Memory Specification

Die Extended Memory Specification (kurz: XMS) ist eine Norm, die festlegt, wie Programme unter dem Betriebssystem MS-DOS (und kompatible) auf den Hauptspeicher jenseits der 1-Megabyte-Grenze (den so genannten extended memory, auch als „Erweiterter Speicher“ übersetzt) zugreifen können.

Inhaltsverzeichnis

Entwicklung

Das Betriebssystem MS-DOS war für den Real Mode gedacht, ein Betriebsmodus der x86-kompatiblen Mikroprozessoren, in dem der Hauptspeicherzugriff wie beim 8086er Prozessor erfolgt. In diesem Betriebsmodus kann nur das erste Mebibyte des Hauptspeichers angesprochen werden. Ab dem 80386 lässt sich diese Limitierung im Unreal mode umgehen.

Als die ersten PC-ATs von IBM ausgeliefert wurden, waren diese mit dem 80286er Prozessor versehen, der mehr Hauptspeicher ansprechen konnte. So kamen mit der Zeit auch PCs auf den Markt, die mit mehr als 1 MB Hauptspeicher ausgerüstet waren. Inzwischen waren die 640 KB, die unter DOS für Anwendungsprogramme nutzbar waren, für viele Zwecke bereits zu klein geworden. Der Zugriff auf den erweiterten Speicher war jedoch schwierig, da der Prozessor hierfür in den Protected Mode geschaltet werden musste. Vom BIOS wurde zwar eine Funktion (über den Software-Interrupt 15hex) angeboten, mit der Speicherbereiche in den erweiterten Speicher kopiert werden konnte, doch der Umgang damit war umständlich und riskant. Auch gab es keinerlei Zugriffskontrolle, falls mehrere Programme auf den Speicher zugreifen wollten.

Deshalb wurde 1988 von den Firmen Lotus Development Corp., Intel Corp., Microsoft Corp. und AST Research Inc. eine Spezifikation erarbeitet, die den Zugriff auf den erweiterten Speicher steuern sollte.

XMS 3.0 „Super Extended Memory“

Die in XMS Version 1 und 2 definierten XMS-Funktionen benutzten 16-Bit-Werte, um Blockgrößen (in Kilobyte) anzugeben, was ausreichte, um maximal 64 MB anzusprechen.
1991 wurde die XMS 3.0 veröffentlicht, die den Zugriff auf mehr als 64 MiB Hauptspeicher möglich machte. Dies wurde auch Super Extended Memory genannt[1]. Die Funktionen nutzten 32-Bit-Register, die erst ab dem 386er Prozessor zur Verfügung standen, was aber kein Problem darstellt, da auf 286er Prozessoren generell nur maximal 16 MiB Hauptspeicher adressierbar war.

Zugriffsverfahren

Für den Zugriff auf den erweiterten Speicher nach XMS ist ein spezieller Treiber, der extended memory manager (XMM) zuständig. Über diesen können sich Anwendungsprogramme, aber auch andere Gerätetreiber, Speicherbereiche im erweiterten Speicher reservieren lassen, Daten vom konventionellen Speicher dort hinein und später wieder zurück kopieren, sowie den Speicher nach Gebrauch wieder freigeben. Unter MS-DOS heißt dieser Treiber himem.sys und muss beim Hochfahren des Rechners geladen werden. Unter anderen MS-DOS-kompatiblen Betriebssystemen heißt dieser Treiber teilweise anders und ist bisweilen auch mit einem Expanded Memory Manager (wie z. B. emm386.exe), der EMS bereitstellt, verknüpft.

Über den Software-Interrupt 2Fhex kann der Einsprungpunkt für die Service-Routine des XMM ermittelt werden, über die der XMM seine Dienste anbietet.

Der Zugriff auf Speicherbereiche im XMS geschieht über sogenannte Handles, die der XMM beim Alloziieren eines Speicherblocks zurückgibt. Um Speicherblöcke zwischen dem XMS und dem konventionellen Speicher zu kopieren, wird das spezielle XMS-Handle 000016 benutzt, um Speicheradressen im konventionellen Speicher anzugeben. Die XMS-Handles waren eine knappe Ressource, da der XMM für jedes Handle Verwaltungsdaten vorrätig halten musste. Üblich waren 32 Handles, die Anzahl konnte je nach XM auf bis zu 256 hochgesetzt werden[2].

Probleme

Da zum Kopieren von Daten zwischen dem DOS-Speicher und dem erweiterten Speicher vorübergehend in den Protected Mode gewechselt werden muss, ist der Zugriff auf diesen Speicher vergleichsweise langsam. Insbesondere auf 80286er CPUs, da diese zum Zurückschalten in den Real Mode einen Prozessor-Reset benötigen, der ebenfalls recht lange dauert. Auch das prinzipiell kaum sinnvolle Hin- und Herkopieren von Daten zwischen verschiedenen Speicherbereichen bremst XMS merklich aus.

Ab dem I386 kann der erweiterte Speicher alternativ auch dazu genutzt werden, um so genanntes expanded memory (EMS, siehe: Expanded Memory Specification) bereitzustellen. Da programmtechnisch die Benutzung von EMS-Speicher einfacher als die von XMS-Speicher ist, waren DOS-Programme, die EMS-Speicher benutzten, häufiger. Viele speicherhungrige Programme (z. B. Spiele) konnten jedoch mit beiden Speichererweiterungen umgehen.

Siehe auch

Quellen

  1. http://www.phatcode.net/res/219/files/xms30.txt
  2. http://www.i8086.de/dos-befehle/himem-sys.html

Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Extended Memory Specification — Extended Memory Specification,   XMS …   Universal-Lexikon

  • Extended Memory Specification —    Abbreviated XMS. A standard developed by Microsoft, Intel, Lotus, and AST Research that became the preferred way of accessing extended memory in the PC. MS DOS includes the extended memory device driver HIMEM.SYS, and this command or an… …   Dictionary of networking

  • Extended Memory Specification — standard procedure for accessing a block of extended memory of 640K just above 1MB (Computers) …   English contemporary dictionary

  • Extended memory — In computing, Extended memory refers to memory above the first megabyte of address space in an IBM PC with an 80286 or later processor. OverviewOn x86 based PCs, extended memory is only available with an Intel 80286 processor or higher. Only… …   Wikipedia

  • extended memory manager —    A device driver that supports the software portion of the Extended Memory Specification in an IBM compatible computer …   Dictionary of networking

  • Expanded Memory Specification — Die Expanded Memory Specification (kurz: EMS genannt), ist eine Software Schnittstelle zum Zugriff auf so genanntes expanded memory (oft unglücklich zu „Expansionsspeicher“ eingedeutscht) auf einem x86 kompatiblen PC im Real Mode. Sie war für PC… …   Deutsch Wikipedia

  • Conventional memory — Memory areas of the IBM PC family. In DOS memory management, conventional memory, also called base memory, is the first 640 kilobytes (640 × 1024 bytes) of the memory on IBM PC or compatible systems. It is the read write memory usable by the… …   Wikipedia

  • Expanded Memory System — Die Expanded Memory Specification (kurz: EMS genannt), ist eine Software Schnittstelle zum Zugriff auf so genanntes expanded memory (oft unglücklich zu Expansionsspeicher eingedeutscht) auf einem x86 kompatiblen PC im Real Mode. Heutzutage hat… …   Deutsch Wikipedia

  • high memory area —    Abbreviated HMA. In a computer running MS DOS, the first 64KB of extended memory above the 1MB limit of 8086 and 8088 addresses. Programs that conform to the Extended Memory Specification (EMS) can use this memory as an extension of… …   Dictionary of networking

  • Extended display identification data — (EDID) is a data structure provided by a computer display to describe its capabilities to a graphics card. It is what enables a modern personal computer to know what kind of monitor is connected. EDID is defined by a standard published by the… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”