Erweiterter Speicher – Wikipedia

In der DOS-Speicherverwaltung erweiterter Speicher ist ein System der Bankumschaltung, das DOS-Programmen über die Grenze des herkömmlichen Speichers (640 KiB) hinaus zusätzlichen Speicher zur Verfügung stellte.
Erweiterter Speicher ist ein Überbegriff für mehrere inkompatible Technologievarianten. Die am weitesten verbreitete Variante war die Erweiterte Speicherspezifikation ((EMS), die gemeinsam von Lotus Software, Intel und Microsoft entwickelt wurde, so dass diese Spezifikation manchmal als “LIM EMS“. LIM EMS hatte mehrere Versionen. Die erste weit verbreitete Version war EMS 3.2, das bis zu 8 MB erweiterten Speicher unterstützte und Teile des Adressraums verwendet, die normalerweise für die Kommunikation mit Peripheriegeräten (oberer Speicher) vorgesehen sind, um Teile des erweiterten Speichers abzubilden . EEMSAST Research, Quadram und Ashton-Tate (“AQA”), ein mit LIM EMS 3.x konkurrierender Standard für die Verwaltung erweiterter Speicher, wurde entwickelt. es könnte jeden Bereich der unteren 1 MiB abbilden. EEMS wurde schließlich in LIM EMS 4.0 integriert, das bis zu 32 MiB erweiterten Speicher unterstützte und auch DOS-Multitasking unterstützte. IBM hat jedoch einen eigenen Standard für erweiterten Speicher namens erstellt XMA.
Die Verwendung von erweitertem Speicher wurde in den späten 1980er bis Mitte der 1990er Jahre bei Spielen und Business-Programmen wie Lotus 1-2-3 üblich, nahm jedoch ab, als Benutzer von DOS auf geschützte Betriebssysteme wie Linux und IBM umstellten OS / 2 und Microsoft Windows.
Hintergrund[edit]

Der 8088-Prozessor des IBM PC und des IBM PC / XT kann ein Megabyte (MiB oder 2) adressieren20 Bytes) Speicher. Diese Grenze wurde vom externen 20-Bit-Adressbus des Intel 8086 geerbt. Die Entwickler des PCs haben die unteren 640 KiB (655360 Bytes) des Adressraums für den Lese- / Schreibprogrammspeicher (RAM), der als “herkömmlicher Speicher” bezeichnet wird, und die verbleibenden 384 KB Speicherplatz wurden für Anwendungen wie das System-BIOS, den Videospeicher und den Speicher auf Erweiterungsperipheriekarten reserviert.
Obwohl der 1984 eingeführte IBM PC AT den 80286-Chip verwendete, der bis zu 16 MiB RAM als erweiterten Speicher adressieren konnte, konnte er dies nur im geschützten Modus tun. Aufgrund des Mangels an Software, die mit dem 286-geschützten Modus kompatibel ist (es konnten keine Standard-DOS-Anwendungen ausgeführt werden), war der Markt noch offen für eine andere Lösung.[1]
Um potenziell viel mehr Speicher als 384 KiB freien Adressraums zu ermöglichen, wurde ein Bankvermittlungsschema entwickelt, bei dem zu einem bestimmten Zeitpunkt nur ausgewählte Teile des zusätzlichen Speichers zugänglich sind. Ursprünglich ein einzelnes 64 KiB (216 Bytes) Speicherfenster, genannt Seitenrahmen, war möglich; später wurde dies flexibler gemacht. Programme mussten speziell geschrieben werden, um auf den erweiterten Speicher zugreifen zu können. Das “Fenster” zwischen niedrigerem RAM und erweitertem RAM könnte an verschiedene Stellen innerhalb des erweiterten RAM verschoben werden.
Ein erster Versuch, eine Bankwechseltechnik zu verwenden, wurde von Tall Tree Systems mit ihren JRAM-Karten unternommen.[2] aber diese haben sich nicht durchgesetzt.[1] (Tall Tree Systems stellte später EMS-basierte Boards mit derselben JRAM-Marke her.)
Erweiterte Speicherspezifikation (EMS)[edit]
Lotus Development, Intel und Microsoft haben bei der Entwicklung des EMS-Standards (auch bekannt als LIM EMS) zusammengearbeitet. Die erste öffentlich verfügbare Version von EMS, Version 3.0, ermöglichte den Zugriff auf bis zu 4 MiB erweiterten Speicher.[citation needed] Dies wurde mit Version 3.2 der Spezifikation auf 8 MiB erhöht. Die endgültige Version von EMS, Version 4.0, erhöhte die maximale Menge an erweitertem Speicher auf 32 MiB und unterstützte zusätzliche Funktionen.
Microsoft hielt den Bankwechsel für eine unelegante und vorübergehende, aber notwendige Notlösung. Bill Gates schlug während eines Interviews mit der Faust auf den Tisch und sagte über das erweiterte Gedächtnis: “Es ist Müll! Es ist ein Kludge! … aber wir werden es tun.” Die Unternehmen planten, den Standard auf der COMDEX im Frühjahr 1985 einzuführen, wobei viele Unternehmen für Erweiterungskarten und Software ihre Unterstützung ankündigten.[3][4]
Die erste öffentliche Version des EMS-Standards namens EMS 3.0 wurde 1985 veröffentlicht. In EMS 3.0 wurden jedoch fast keine Hardware-Implementierungen vorgenommen, bevor EMS 3.2 abgelöst wurde.[1] EMS 3.2 verwendete eine 64-KiB-Region im oberen 384-KiB-Bereich (oberer Speicherbereich), die in vier 16-KiB-Seiten unterteilt war und zum Abbilden von Teilen des erweiterten Speichers verwendet werden konnte.[1]
Im Gegenzug wurde EMS 3.2 von einer Gruppe von drei anderen Unternehmen verbessert: AST Research, Quadram und Ashton-Tate, die ihren eigenen EEMS-Standard (Enhanced EMS) entwickelten. Mit EEMS konnte jeder 16-KiB-Bereich im unteren RAM dem erweiterten Speicher zugeordnet werden, sofern er nicht mit Interrupts oder dediziertem E / A-Speicher wie Netzwerk- oder Grafikkarten verknüpft war. Somit könnten ganze Programme in den zusätzlichen RAM ein- und ausgeschaltet werden. EEMS fügte auch Unterstützung für zwei Sätze von Zuordnungsregistern hinzu. Diese Funktionen wurden von früherer DOS-Multitasker-Software wie DESQview verwendet. Die 1987 veröffentlichte LIM EMS 4.0-Spezifikation enthielt praktisch alle Funktionen von EEMS.[1]
Eine neue Funktion in LIM EMS 4.0 wurde hinzugefügt, dass EMS-Karten mehrere Sätze von Seitenzuordnungsregistern (bis zu 64 Sätze) haben können. Dies ermöglichte eine primitive Form des DOS-Multitasking. Die Einschränkung bestand jedoch darin, dass der Standard nicht spezifizierte, wie viele Registersätze eine Karte haben sollte, so dass diesbezüglich große Unterschiede zwischen den Hardware-Implementierungen bestanden.[5]
Die erweiterte Speicherspezifikation (EMS) ist die Spezifikation, die die Verwendung des erweiterten Speichers beschreibt. Auf EMS-Funktionen kann über den Software-Interrupt 67h zugegriffen werden. Programme, die EMS verwenden, müssen zuerst das Vorhandensein eines installierten erweiterten Speichermanagers (EMM) feststellen, indem sie nach einem Gerätetreiber mit dem Gerätenamen suchen EMMXXXX0.
Erweiterter Speicheradapter (XMA)[edit]
IBM hat einen eigenen Speicherstandard namens Expanded Memory Adapter (XMA) entwickelt. Der IBM DOS-Treiber dafür war XMAEM.SYS. Im Gegensatz zu EMS können die IBM Erweiterungskarten sowohl mit einem erweiterten Speichermodell als auch als erweiterter Speicher angesprochen werden.[6] Die von XMA-Karten verwendete Hardware-Schnittstelle für erweiterten Speicher ist jedoch nicht mit EMS kompatibel.[7] Ein XMA2EMS.SYS-Treiber lieferte jedoch eine EMS-Emulation für XMA-Karten.[6] XMA-Karten wurden erstmals für die 1986 (überarbeiteten) Modelle des 3270-PCs eingeführt.[7]
Implementierungen[edit]
Erweiterungskarten[edit]

Dieses Einfügen eines Speicherfensters in den peripheren Adressraum konnte ursprünglich nur durch bestimmte Erweiterungskarten erreicht werden, die an den ISA-Erweiterungsbus des Computers angeschlossen sind. Berühmte erweiterte Speicherkarten der 1980er Jahre waren AST RAMpage, IBM PS / 2 80286 Speichererweiterungsoption, AT & T Expanded Memory Adapter und Intel Above Board. Angesichts des RAM-Preises im Berichtszeitraum von bis zu mehreren hundert Dollar pro MiB und der Qualität und des guten Rufs der oben genannten Markennamen war eine erweiterte Speicherkarte sehr teuer.
Motherboard-Chipsätze[edit]
Später implementierten einige Motherboard-Chipsätze von Intel 80286-basierten Computern ein erweitertes Speicherschema, für das keine zusätzlichen Karten erforderlich waren, insbesondere der NEAT-Chipsatz. In der Regel haben Software-Switches festgelegt, wie viel Speicher verwendet werden soll erweiterter Speicher und wie viel sollte als verwendet werden erweiterter Speicher.
Gerätetreiber[edit]
Eine Karte mit erweitertem Speicher als Hardware-Peripheriegerät benötigte einen Software-Gerätetreiber, der ihre Dienste exportierte. Ein solcher Gerätetreiber wurde aufgerufen Erweiterter Speichermanager. Sein Name war variabel; Die zuvor genannten Karten verwendeten REMM.SYS (AST), PS2EMM.SYS (IBM), AEMM.SYS (AT & T) bzw. EMM.SYS (Intel). Später wurde der Ausdruck mit reinen Softwarelösungen assoziiert, die den Intel 80386-Prozessor erfordern, beispielsweise Quarterdecks QEMM, Qualitas ‘386MAX oder das Standard-EMM386 unter MS-DOS, PC-DOS und DR-DOS.
Software-Emulation[edit]
Ab 1986 modellierten die integrierten Speicherverwaltungsfunktionen des Intel 80386-Prozessors den Adressraum frei, wenn ältere Real-Mode-Software ausgeführt wurde, sodass Hardwarelösungen nicht mehr erforderlich waren. Erweiterter Speicher könnte in Software simuliert werden.
Die erste Software mit erweitertem Speicher Management Das (Emulations-) Programm war CEMM, das im September 1986 als Dienstprogramm für den Compaq Deskpro 386 verfügbar war. Eine beliebte und gut ausgestattete kommerzielle Lösung war Quarterdecks QEMM. Ein Anwärter war Qualitas ‘386MAX. Die Funktionalität wurde später 1989 in MS-DOS 4.01 und 1990 als EMM386 in DR DOS 5.0 integriert.
Software-Manager für erweiterten Speicher boten im Allgemeinen zusätzliche, aber eng verwandte Funktionen. Insbesondere könnten sie normalen Speicher in nicht verwendeten Teilen des oberen Speicherbereichs (UMA) (den oberen 384 KiB des Real-Mode-Adressraums) erzeugen, die als obere Speicherblöcke (UMBs) bezeichnet werden, und Werkzeuge zum Laden kleiner Programme bereitstellen, typischerweise TSRs im Inneren (” LOADHI “oder” LOADHIGH “).
Die Interaktion zwischen erweitertem Speicher, erweiterter Speicheremulation und DOS-Extendern wurde schließlich durch die Spezifikationen für XMS, VCPI (Virtual Control Program Interface), DPMI (DOS Protected Mode Interface) und DPMS (DOS Protected Mode Services) geregelt.
Bestimmte Emulationsprogramme, umgangssprachlich als LIMulatoren bezeichnet, stützten sich überhaupt nicht auf Motherboard- oder 80386-Funktionen. Stattdessen reservierten sie 64 KB des Basis-RAM für das erweiterte Speicherfenster, in dem sie Daten in und aus dem erweiterten Speicher oder der Festplatte kopierten, wenn Anwendungsprogramme Seitenwechsel anforderten. Dies war programmgesteuert einfach zu implementieren, aber die Leistung war gering. Diese Technik wurde von AboveDisk von Above Software und von mehreren Shareware-Programmen angeboten.
Ablehnen[edit]
Die erweiterte Speichernutzung ging in den 90er Jahren zurück. Der IBM AT Intel 80286 unterstützte im geschützten Modus 24 Bit Adressraum (16 MiB) und der 386 32-Bit-Adressen oder 4 Gigabyte (2)32) von RAM – 4096-facher adressierbarer Speicherplatz des ursprünglichen 8086. DOS selbst unterstützte den geschützten Modus nicht direkt, aber Microsoft entwickelte schließlich DPMI, und mehrere DOS-Extender wurden basierend darauf veröffentlicht. DOS-Programme mögen Untergang könnte Extender wie DOS / 4G verwenden, um im geschützten Modus ausgeführt zu werden, während die DOS-API weiterhin verwendet wird. In den frühen neunziger Jahren unterstützten neue Betriebssysteme wie Linux, Windows NT, OS / 2 und BSD / OS den geschützten Modus “out of the box”. Diese und ähnliche Entwicklungen machten Expanded Memory zu einem veralteten Konzept.
Recent Comments