Expanded Memory Specification

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 auf Basis von Prozessoren der Typen 8088, 8086, 80186 und ggf. auch 80286 gedacht. Mit den 8088, 8086 und 80186 stand nur ein Adressraum von maximal 1 MB in direkter Adressierung (also ohne Speicher-Management-Funktionen = sog. Real Mode) zur Verfügung. Diese Einschränkung galt auch noch für Nachfolgeprozessoren, wenn sie im Real Mode betrieben werden.

Mit EMS konnte die Begrenzung auf 1 MB physischen Speicher umgangen werden, indem weiterer Speicher in kleinen Seiten an einer bestimmten (normalerweise nicht mit RAM hinterlegten) Stelle im 1 MB Adressraum eingeblendet wurde.

Heutzutage hat EMS keine praktische Bedeutung mehr, da moderne Protected-Mode-Betriebssysteme auf diese Speichererweiterung nicht mehr angewiesen sind und weil moderne Prozessoren sowohl mehr Arbeitsspeicher nutzen können als auch den Protected-Mode-Betriebssysteme die notwendige Hardware-Unterstützung für flexibles Speichermanagement bieten.

Inhaltsverzeichnis

Entstehungsgeschichte

Emulex Persyst 16 Bit ISA-Karte mit 4 MiB RAM

Mitte der 1980er Jahre, als das Betriebssystem MS-DOS den PC-Markt dominierte, reichten die 640 KB konventioneller Speicher, die es für Programme maximal zur Verfügung stellte, für viele größere Programme bereits nicht mehr aus. Es wurden verschiedene Lösungen realisiert, um auf mehr Arbeitsspeicher zuzugreifen. So wurden spezielle Steckkarten verkauft, die zusätzlichen Speicher enthielten. Diese Karten blendeten einen Teil ihres Speichers an einer bestimmten Stelle im 1-MB-Adressraum ein, so dass ein Programm darauf zugreifen konnte. Über spezielle Befehle konnte gesteuert werden, welcher Teil des Kartenspeichers (der oft zwischen 512 KB und 2 MB groß war) im Adressraum des Prozessors eingeblendet werden soll (Memory Bank Switching). Dadurch konnte ein Programm nie den gesamten Kartenspeicher auf einmal verwenden, sondern immer nur den Teil, der gerade eingeblendet war. Diese Karten wurden memory expander genannt, und der Speicher auf ihnen expanded memory.

Diese Karten waren inkompatibel zu einander und ein Programm, das diese memory expander nutzen wollte, musste für jede dieser Karten extra Programmfunktionen besitzen. So einigten sich im Jahre 1985 die Firmen Lotus (als Hersteller der Tabellenkalkulation Lotus 1-2-3), Intel und Microsoft auf einen Standard, der LIM-EMS genannt wurde. Meistens ist dieser Standard gemeint, wenn von expanded memory die Rede ist.

LIM-EMS

LIM-EMS schreibt einen so genannten „expanded memory manager“ (EMM) vor. Dies ist ein Gerätetreiber, der seine Funktionen über einen Software-Interrupt zur Verfügung stellt. Der expanded memory wird in Seiten (engl: pages) zu je 16 KB aufgeteilt. Im Adressraum wird ein 64 KB großes Fenster (engl: page frame oder page window) reserviert, in dem dann jeweils 4 EMS-Speicherseiten eingeblendet werden. Das EMS-Fenster belegt meist die Adressen D0000hex bis DFFFFhex; die 4 eingeblendeten EMS-Seiten beginnen an den Adressen D0000hex, D4000hex, D8000hex und DC000hex.

Der vom Kartenhersteller mitgelieferte EMS-Treiber (oft emm.sys genannt) bietet einen genormten Satz an Funktionen an, etwa zur Abfrage der Größe des gesamten expanded memory, der Anzahl der noch freien Seiten, das Belegen und Freigeben von Speicherseiten und natürlich das Ein- und Ausblenden bestimmter Seiten in das EMS-Fenster.

Die Funktionen des EMS-Treibers stehen am Software-Interrupt 67hex zur Verfügung.

EMS ab dem 386er

Die EMS-Speicherkarten erlangten keine allzu große Verbreitung, da sie recht teuer waren. Ab dem 80386er beherrschten die Prozessoren jedoch einen speziellen Betriebsmodus, der Virtual 8086 Mode genannt wird. Mit diesem Modus lässt sich eine Real-Mode-Umgebung (wie sie DOS benutzt) innerhalb einer Protected-Mode-Umgebung emulieren. Im Protected Mode beherrschen die x86-kompatiblen Prozessoren ab dem 80386er außerdem die so genannte Paging-Technik, mit der eine Abbildung der (virtuellen) Programmadressen auf davon verschiedene reale (physische) Speicheradressen möglich wird.

Diese beiden Techniken ermöglichen einen Speichertreiber, der ein EMS-Fenster bereitstellt, und die Zugriffe darauf auf andere Speicherbereiche (jenseits der 1-MB-Grenze) umlenkt. Der EMS-Treiber emm386.exe, der bei MS-DOS ab Version 4.00 dabei ist, oder entsprechende Pendants von Drittanbietern wie zum Beispiel qemm386.exe von Quarterdeck, ermöglicht so die Bereitstellung von EMS-Speicher, ohne dass eine EMS-Karte im Rechner vorhanden ist.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

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

  • Expanded Memory Specification — Expanded Memory Specification,   EMS …   Universal-Lexikon

  • Expanded Memory Specification —    Abbreviated EMS. The original version of the Lotus Intel Microsoft Expanded Memory Specification (LIM EMS), which let MSDOS applications use more than 640KB of memory space.    These days Microsoft Windows running in protected mode on 80386… …   Dictionary of networking

  • Enhanced Expanded Memory Specification —    Abbreviated EEMS. A revised version of the original Lotus IntelMicrosoft Expanded Memory Specification (LIM EMS) that lets MS DOS applications use more than 640KB memory space.    See also Expanded Memory Specification …   Dictionary of networking

  • Enhanced Expanded Memory Specification — Enhanced Expanded Memory Specification,   EEMS …   Universal-Lexikon

  • Lotus, Intel, Microsoft Expanded Memory Specification — Lotus, Intel, Microsoft Expanded Memory Specification,   EMS …   Universal-Lexikon

  • Expanded memory — In computing, expanded memory (commonly known as EMS memory) is a system of bank switching introduced around 1984 that provided additional memory to MS DOS programs that required more than what was available in conventional memory. Expanded… …   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

  • expanded memory —    An MS DOS mechanism by which applications can access more than the 640KB of memory normally available to them. The architecture of the early Intel processors restricted the original IBM PC to accessing 1MB of memory, 640KB of which was… …   Dictionary of networking

  • expanded memory manager —    Abbreviated EMM. A device driver that supports the software portion of the Expanded Memory Specification (EMS) in an IBMcompatible computer …   Dictionary of networking

  • 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… …   Deutsch Wikipedia

Share the article and excerpts

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