Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

Expanded Memory Specification

aus Wikipedia, der freien Enzyklopädie
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mitBelegen (beispielsweiseEinzelnachweisen) ausgestattet. Angaben ohne ausreichenden Beleg könnten demnächst entfernt werden. Bitte hilf Wikipedia, indem du die Angaben recherchierst undgute Belege einfügst.

DieExpanded Memory Specification (kurzEMS genannt, oft unglücklich zu „Expansionsspeicher“[1] eingedeutscht) ist eineSchnittstelle zum Zugriff auf sogenanntenExpanded Memory auf einemx86-kompatiblenPC imReal Mode.[2]

Eigenschaften

[Bearbeiten |Quelltext bearbeiten]

Sie war fürIBM-PC-kompatible Computer, „PCs“, auf Basis von16-Bit-x86-Prozessoren8088/8086,80186 und ggf. auch80286 gedacht. Mit den 8088/8086 und 80186 stand nur einAdressraum von maximal 1 MiB in direkter Adressierung (also ohne Speicher-Management-Funktionen, derretronym so genannteReal Mode) zur Verfügung. Diese Einschränkung gilt auch für Nachfolgeprozessoren, wenn sie im 8088/8086-kompatiblenReal Mode betrieben werden.

Mit EMS kann die Begrenzung auf 1 MiB physischen Speicher umgangen werden, indem weiterer Speicher in kleinenSeiten an einer bestimmten (normalerweise nicht mitRAM belegten) Stelle im 1 MiB Adressraum eingeblendet wird.[2][3] Eine solche Speichererweiterung („Expansionsspeicher“) war bis zum 80186 nur in Form von Speicherkarten möglich, das sindSteckkarten mit darauf verbautenSpeicherbausteinen, die auch auf PCs mit 80286-Prozessor wie demPC/AT noch vielfach verwendet wurden.

Der Vorteil von EMS-Speicher gegenüber XMS ist, dass der Prozessor stets imReal Mode verbleibt, was auf damaligen Systemen häufig schneller war.[4] Der über EMS verfügbare zusätzliche Speicher ist für Daten gedacht. Das direkte Ausführen von Programmcode in den eingeblendeten Speicherseiten ist im Regelfall nicht möglich.[5]

Bei32-Bit-Systemen hat EMS keine praktische Bedeutung mehr, weil moderne Betriebssysteme und Prozessoren ausreichend Adressraum haben, und PC-Betriebssysteme wieDOS,OS/2 undWindows imProtected Mode diesen Adressraum auch nutzen können.x86-Prozessoren ab dem80386, der die 32-Bit-x86-Architektur „IA-32“ begründet, unterstützen auch flexiblesSpeichermanagement mitvirtuellem Speicher. Auch auf PCs unter DOS, weiterhin ein 16-Bit-Betriebssystem, etablierte sich ab dem 80386er virtueller Expansionsspeicher (sieheEMS ab dem 386er), der mit den Speicherverwaltungsmethoden desProtected Mode im „Erweiterten Speicher“ (alsXMS bezeichnet)emuliert wird, als besserer Ersatz und daher als Nachfolger von EMS-Speicherkarten. Auf dem 80286, der als 16-Bit-Architektur ebenfalls Speicher bis 16 MiB in Form von XMS unterstützt, wurde zwar später prinzipiell auch virtueller EMS-Speicher möglich, aber weniger effizient als auf dem 386er und neueren x86-Prozessoren. Zudem ersetzte XMS auch in Programmen zunehmend EMS, da er einfacher zu bedienen ist als andere Methoden.

Entstehungsgeschichte

[Bearbeiten |Quelltext bearbeiten]
Emulex Persyst 16 BitISA-Karte mit 4 MiB RAM

Mitte der 1980er Jahre, als das BetriebssystemMS-DOS den PC-Markt dominierte, reichten die 640 KiBKonventioneller 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 mehrArbeitsspeicher zuzugreifen. So wurden spezielleSteckkarten verkauft, die oft zwischen 512 KiB und 2 MiB zusätzlichen Speicher enthielten. Diese Karten blenden einen Teil ihres Speichers an einer bestimmten Stelle im 1-MiB-Adressraum ein – diese Technik wird alsMemoryBank Switching bezeichnet –, so dass ein DOS-Programm, das mit EMS umgehen kann, darauf zugreifen kann. Der eingeblendete Teil selbst darf bis zu ca. 64 KiB groß sein.[6] Über spezielle Befehle kann gesteuert werden,welcher Teil des Kartenspeichers im Adressraum des Prozessors eingeblendet werden soll. Mit dieser Technik kann ein Programm nie den gesamten Kartenspeicher auf einmal verwenden, sondern immer nur den Teil, der gerade eingeblendet ist. Die Speicherkarten wurdenmemory expander genannt (vonenglischexpand fürdeutsch u. a.expandieren,ausdehnen oderausbauen). Dementsprechend wird der Speicher, der so zusätzlich zur Verfügung steht, mitexpanded memory bezeichnet.

Anfangs waren EMS-Speicherkarten zueinander inkompatibel und ein Programm, das diesememory expander unterstützte, musste für die spezielle Speicherkarte eigene Programmfunktionen besitzen. Da das sehr unpraktikabel war, einigten sich im Jahre 1985 die FirmenLotus (als Hersteller derTabellenkalkulationLotus 1-2-3),Intel undMicrosoft auf einen Standard: LIM-EMS. Bei Programmen ab 1985 ist daher in der Regel dieser Standard gemeint, wenn vonexpanded memory die Rede ist.

LIM-EMS

[Bearbeiten |Quelltext bearbeiten]

LIM-EMS („LIM“ steht fürLotus,Intel undMicrosoft) schreibt einen so genannten „expanded memory manager“ (EMM) vor. Dies ist einGerätetreiber, der seine Funktionen über einenSoftware-Interrupt zur Verfügung stellt. Derexpanded memory, eingedeutscht auch oft „EMS-Speicher“ (neben „Expansionsspeicher“), wird inSeiten (englischpages) zu je 16 KiB aufgeteilt. Im Adressraum wird ein 64 KiB großes Fenster (page frame oderpage 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 Speicher aus dem die 64 KiB Fenster eingeblendet werden, konnte anfangs selbst bis zu ca. 8 MiB groß sein. Bei LIM-EMS 4.0 kann bis zu 32 MiB EMS-Speicher verwendet werden.[7]

Der vom Kartenhersteller mitgelieferte EMS-Treiber (oftEMM.SYS) bietet einen genormten Satz an Funktionen an, etwa zur Abfrage der Größe des gesamtenexpanded 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 amSoftware-Interrupt 67hex zur Verfügung.[8]

EMS ab dem 386er

[Bearbeiten |Quelltext bearbeiten]

Die EMS-Speicherkarten erlangten keine allzu große Verbreitung, da sie recht teuer waren. Ab dem80386er beherrschten die Prozessoren jedoch einen speziellen Betriebsmodus, derVirtual 8086 Mode bzw. kurz VM86 genannt wird. Mit diesem Modus lässt sich eineReal-Mode-Umgebung (wie sie DOS benutzt) innerhalb einerProtected-Mode-Umgebung emulieren. ImProtected Mode beherrschen diex86-kompatiblen Prozessoren ab dem „i386“ außerdem die so genanntePaging-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-MiB-Grenze) umlenkt. Ein EMS-Treiber ermöglicht so die Bereitstellung von EMS-Speicher, ohne dass eine EMS-Karte im Rechner vorhanden ist. Der Standard-EMS-Treiber istEMM386.EXE von Microsoft, wie er bei MS-DOS ab Version 4.00 mitgeliefert wurde, es gibt aber auch entsprechende Pendants andererzu MS-DOS kompatibler DOS-Versionen, z. B.DR DOS, oder Speichermanager mit EMS-Funktion vonDrittanbietern, z. B.QEMM oder386MAX, die mit den meisten gängigen DOS-Versionen kompatibel sind.

EMM286

[Bearbeiten |Quelltext bearbeiten]

Der 80286-Prozessor kann bis zu 16 MiB adressieren. Wie beim Nachfolger 80386 wäre emulierter EMS-Speicher eine Möglichkeit gewesen, ohne teure EMS-Erweiterungskarten an EMS-Speicher zu kommen. Allerdings wurde der 80286 entworfen, um vom Betriebssystem in denProtected Mode umgeschaltet zu werden, wo die gesamten 16 MiB adressierbar sind, und in diesem Modus dann auch zu verbleiben – ein Zurückschalten oder eine Hardware-unterstützte Emulation desReal-Mode-Betriebs (wie später beim 80386) war beim 80286 nicht vorgesehen. Zwar startet aus Gründen der Kompatibilität auch der 80286 (wie alle späterenx86-Prozessoren der nächsten Jahrzehnte) weiterhin im 8088/8086-kompatiblenReal Mode, doch in diesem Modus sind, wie gehabt, nur 1 MiB RAM erreichbar.

Das Problem war jedoch, dass das 16-Bit-Betriebssystem MS-DOS undPC DOS sowie dafür geschriebene Programme weiterhin den Markt beherrschten, sodass auch der 80286 unter DOS stets imReal Mode betrieben wurde. Betriebssysteme, die den 16-Bit-Protected-Mode des 286er nutzten – wie bspw.Xenix 286 oderOS/2 – waren die Ausnahme bzw. hatten nicht dieselbe Verbreitung wie DOS.[9] Deshalb wurden vielfach die für den 8088/8086 entwickelten EMS-Speicherkarten weiterverwendet. Nach und nach wurden auch spezielle, aber teurereChipsätze für den 80286 entwickelt, die LIM-EMS innerhalb der maximal möglichen 16 MiB emulieren können, wie z. B. derNEAT-Chipsatz vonChips & Technologies. Wie zuvor auch bei den EMS-Speicherkarten lagen nun den unterschiedlichen 286er-Mainboards jeweils spezielle vom Hersteller bereitgestellter DOS-Treiber bei, denn die Chipsätze sind untereinander nicht kompatibel.

Erst als nach einiger Zeit einWorkaround gefunden wurde, den 80286-Prozessor wieder geordnet in denReal Mode zurückfallen zu lassen, wurde es möglich, analog zu EMM386 einen allgemeinen EMS-Treiber zu entwickeln, der nur in denProtected Mode schaltet, um die gewünschte EMS-Seite ins untere 1 MiB zu kopieren, und anschließend wieder in denReal Mode zurückkehrt. Damit war EMS-Speicher zwar auch für den 80286 ohne teure Zusatzkarte und ohne speziellen Chipsatz verwendbar, zu einer größeren Verbreitung kam es angesichts zwei entscheidender Nachteile allerdings nicht: Zum einen dauert das Zurückfallen aus demProtected Mode in denReal Mode beim 286er deutlich länger als beim moderneren 386er, zum anderen muss derEMM286-Treiber das 64 KB große Speicherfenster imkonventionellen Speicher bereitstellen – daUpper Memory Blocks (UMBs) auf 286-Hardware nur mit entsprechender Hardware (Chipsatz, Erweiterungskarten) und in Zusammenarbeit mit den dafür nötigen DOS-Treibern überhaupt erst möglich ist. Dadurch wir der freie Speicher für DOS-Programme um 64 kB beschnitten, was entscheidend sein kann. Beide Nachteile bestehen sowohl bei einem 286er-Chipsatz, der EMS imerweiterten Speicher unterstützt (mit dem dafür vorgesehenen EMS-Treiber), als auch beim 80386-Prozessor nicht.

Nachfolge

[Bearbeiten |Quelltext bearbeiten]

Als Nachfolger von EMS kann XMS gesehen werden. Dennoch wurde EMS-Speicher auch nach der Verfügbarkeit von XMS noch lange Zeit von DOS-Programmen unterstützt. Gerade bei 16-Bit-DOS-Programmen ergab sich der Vorteil, auch auf älteren PCs, wie etwa dem originalenIBM Personal Computer mit EMS-Erweiterungskarte, kompatibel zu bleiben, und gleichzeitig auf modernen PCs mit 386er-Prozessor und neuer uneingeschränkt ausgeführt werden zu konnten.

Aus Mangel an Software-Unterstützung wurdeerweiterter Speicher (englischextended memory) zudem anfangs hauptsächlich fürRAM-Disks genutzt.[10]

Beide Speicherarten (EMS und XMS), die ab dem 80286er zur Verfügung stehen, sind nur unter 16-Bit-Betriebssystemen wie allen voranPC-kompatiblem DOS überhaupt notwendig, weil DOS der Kompatibilität wegen weiterhin am zum 8088/8086-kompatiblen Konventionellen Speicher festhalten musste. Für 32-Bit-DOS-Anwendungen ist XMS jedoch klar im Vorteil, sodass diese EMS nicht mehr unterstützten.

XMS

[Bearbeiten |Quelltext bearbeiten]
Hauptartikel:Extended Memory Specification

Mit XMS ermöglichen standardisierteDOS-Extender fürVCPI undDPMI eingeschränktesMultitasking, während DOS-Programme, die selbst in denProtected Mode schalten, zwar Zugriff auf den gesamten Speicher haben, aber weiterhin nur exklusiv laufen können.[11] Nach und nach wurden viele Programme unter DOS von EMS nach XMS portiert, um von den Vorteilen zu profitieren.

Siehe auch

[Bearbeiten |Quelltext bearbeiten]

Weblinks

[Bearbeiten |Quelltext bearbeiten]

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. Van Walverton:MS-DOS Version 5 – Das optimale Benutzerhandbuch von Microsoft. 5., überarbeitete und erweiterte Auflage.Friedrich Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig, Wiesbaden 1991,ISBN 978-3-528-44378-8, 17.4.2 Speichertypen und ihre Unterschiede,S. 502 ff.,S. 503 (amerikanisches Englisch:Running MSDOS – The Definitive Guide to MS-DOS and PC-DOS, Now Completely Revised to Include Version 4 and the New Dos Shell. Übersetzt von Translingua Übersetzungsdienst GmbH, Bonn): „Expansionsspeicher – Wenn man sich den Erweiterungsspeicher als ‚hohen‘ Speicher vorstellt, den ein Programm mit Hilfe der geeigneten Mittel erreichen kann, läßt sich der Expansionsspeicher (Expanded Memory, EMS) als separates Reservoir betrachten, das ein Programm mit Hilfe einer Pipeline anzapfen kann. Erweiterungsspeicher muß mit einem Programm namens Expanded Memory Manager verwaltet werden. Nur dieser Manager kann Programmen den Speicher zuweisen. Dazu verwendet er 16 KB-Blöcke, die über einen Speicherabschnitt (den sogenanntenpage frame) des reservierten Speicherbereichs zur Verfügung gestellt werden. Zu jedem Expansionsspeicher wird normalerweise ein Expanded Memory Manager mitgeliefert. Falls der Manager Expansionsspeicher nach dem von Lotus, Intel und Microsoft für solche Programme aufgestellten Standard verwaltet, wird er als LIM (Lotus-Intel-Microsoft) oder LIM EMS (LIM Expanded Memory Specification) bezeichnet.“ 
  2. abSteven Roman:Understanding Personal Computer Hardware. 1. Auflage. Springer, New York 1998,ISBN 0-387-98531-X, Expanded Memory,S. 151 f.,doi:10.1007/978-1-4684-6419-1 (englisch). 
  3. Jörg Wollert, Jörg Fiedler:Automatisieren mit dem PC. 2. Auflage. Springer, Berlin, Heidelberg 1998,ISBN 978-3-540-63271-9, 3 Betriebssysteme; 3.2 MS-DOS,S. 128 ff. „Expanded Memory (EMS) ermöglicht über eine spezielle Hardware die Zuordnung eines in 16 Kbyte große Abschnitte aufgeteilten Speichers in ebenso große Abschnitte innerhalb eines 64 Kbyte großen Fensters. Die Lage des Fensters kann beliebig verschoben werden, es muß jedoch gewährleistet sein, daß sich an dieser Stelle kein Speicher (RAM oder ROM) befindet.“ 
  4. Jörg Wollert, Jörg Fiedler:Automatisieren mit dem PC. 2. Auflage. Springer, Berlin, Heidelberg 1998,ISBN 978-3-540-63271-9, 3 Betriebssysteme; 3.2 MS-DOS,S. 128 ff.,S. 129: „Der Vorteil des EMS-Konzepts ist die Verwendung des ‚real mode‘ der Prozessoren. In diesem Modus wird eine einfache und damit sowohl schnelle als auch deterministische Zuordnung des logischen und physikalischen Speichers vorgenommen. Damit ist dieser Modus für harte Echtzeitanforderungen im Gegensatz zu den anderen Modi besonders geeignet. Die Verwendung von EMS-Speicher ermöglicht die Berücksichtigung von größeren Speicherbereichen, ohne in einen anderen Modus schalten zu müssen.“ 
  5. Jörg Wollert, Jörg Fiedler:Automatisieren mit dem PC. 2. Auflage. Springer, Berlin, Heidelberg 1998,ISBN 978-3-540-63271-9, 3 Betriebssysteme; 3.2 MS-DOS,S. 128 ff.,S. 130: „Die Struktur des EMS-Speichers ist vor allem für die Ablage von umfangreichen Daten geeignet, wie sie z. B. in der Meß- oder Betriebsdatenerfassung vorkommen. Die direkte Ausführung von Code im EMS-Speicher ist nur über spezielle Verwaltungsmechanismen möglich, die vom EMM-Treiber in der Version 3.x nicht berücksichtigt werden.“ 
  6. https://books.google.de/books?id=pDGnxFyejN4C&lpg=PA170&hl=de&pg=PA156#v=onepage&q&f=falseMore Options For enlarging the Dimensions of Memory by Charles Petzold, Test von Expanded Memory Karten (englisch)
  7. Hans C. Nieder:MS-DOS 6.2 + 6.22: Das Kompendium; komplette Übersicht aller Funktionen.Markt+Technik Verlag, 1999,ISBN 3-8272-5693-3, Expansionsspeicher bzw. Expanded Memory (EMS),S. 607 (eingeschränkte Vorschau in der Google-Buchsuche): „Mit EMS 4.0 können bis zu 32 Mbyte Expansionsspeicher installiert werden.“ 
  8. INT 67 - Expanded Memory Specification. In: flint.cs.yale.edu. Yale University, abgerufen am 26. Dezember 2023 (englisch). 
  9. Ray Duncan:Power Programming: Using Extended Memory, Part 1. In:PC Magazine.Band 8,Nr. 10.Ziff Davis, 30. Mai 1989,ISSN 0888-8507,S. 377 (englisch,eingeschränkte Vorschau in der Google-Buchsuche [abgerufen am 17. März 2025]):“In their protected mode, 80286 and 80386 CPUs are capable of generating these addresses directly, and protected-mode operating systems such as OS/2 and Unix and Xenix can use all the extended memory you can plug into your machine for storing programs and data. By contrast, DOS and its applications run on the 80286 and 80386 inreal mode—a sort of 8088/8086 emulation mode. In real mode, the 80286 and 80386 CPUs can generate only 20-bit addresses. The obvious implication would seem to be that DOS and its client programs cannot make use of extended memory for storage of programs and data. Yet our daily experiences tells us otherwise. We’ve all got RAMdisks, disk caches, print spoolers, TSRs, and other utilities of every description thatdo exploit extended memory when it is present.” 
  10. Winn Rosch:(Hands On:) V-EMM: Virtual Disk for EMS Memory. In:PC Magazine.Band 5,Nr. 16.Ziff Davis, 30. September 1986,ISSN 0888-8507,S. 54 (englisch,eingeschränkte Vorschau in der Google-Buchsuche [abgerufen am 17. März 2025]):“Extending AT Memory –V-EMM can redirect 80286 protected mode (extended memory) to the Lotus/Intel/Microsoft expanded memory specification so that PC ATs can actually use memory in excess of the 640K bytes of RAM recognized by DOS. While many of EMS programs are available, most notably1-2-3, there’s little use for extended memory beyond RAMdisks.” 
  11. Ray Duncan:Power Programming: Using Extended Memory, Part 1. In:PC Magazine.Band 8,Nr. 10.Ziff Davis, 30. Mai 1989,ISSN 0888-8507,S. 379 (englisch,eingeschränkte Vorschau in der Google-Buchsuche [abgerufen am 17. März 2025]):“Primitive Management – You may already have spottet the major weakness of the extended memory functions supported by the ROM BIOS. While they let you access any location in extended memory quite freely, they do not make any attempt toarbitrate between two or more programs or drivers that are using extended memory at the same time. For example, if an application program and RAMdisk both attempt to put data in the same area of extended memory, no error will be returned by either program, but the data of one or both may be detroyed. … During 1988—4 years after the introduction of the PC AT—two long-overdue proposals for a more sophisticated, cooperative use of extended memory under DOS were introduced. The first is the eXtended Memory Specification (XMS), which represents a collaborative effort of Microsoft, Intel, AST Research, and Lotus. The second, which applies only to 80386-based systems, is the Virtual Control Program Interface (VCPI), and it is sponsored by Quarterdeck Office Systems and Phar Lap Software.” 
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Expanded_Memory_Specification&oldid=257717950
Kategorie:
Versteckte Kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp