Als Konventioneller Speicher, seltener auch Basisspeicher, wird der mit dem IBM Personal Computer 1981 eingeführte DOS-Speichertyp bezeichnet. Im ursprünglichen Design des IBM PC ist der maximal mögliche Speicherbereich, der mit dem 16-Bit-Prozessor Intel 8088 adressierbar ist, auf 1 MiB begrenzt. Mit Einführung des IBM PC/AT, dessen 80286-Prozessor bereits 16 MiB adressieren kann, wurde der im 8086-kompatiblen Betriebsmodus, retronym genannt, weiterhin begrenzte Speicherbereich unter DOS retronym als Konventioneller Speicher, oft auch DOS-Speicher bezeichnet. Bei IBM-PC-kompatiblen Computern unterteilt er sich in die ersten 640 KiB (1 KiB = 1024 Byte) Arbeitsspeicher, jenen u. a. für Anwendungsprogramme von DOS zur Verfügung gestellten Teil, und weiteren 384 KiB für Hardwareadressen reservierten Speicher, der auch als bezeichnet wird und ab rund 1990 in Form von einzelnen als eigener DOS-Speichertyp teilweise nutzbar gemacht wurde.
In der Praxis versteht man unter Konventionellem Speicher nur den zusammenhängend als Arbeitsspeicher nutzbaren Teil des Adressraums, beim IBM PC also die ersten 640 KiB. U. a. MS-DOS war seit den frühen 1980er Jahren auch auf anderen PCs, die nicht IBM-kompatibel sind, verfügbar, wo der nutzbare Speicherbereich teils größer ist, etwa beim Sirius 1 mit maximal 896 KiB RAM.
Die 640-KiB-Grenze Anfang der 1980er Jahre wurde beim Entwurf der Architektur des ersten „IBM Personal Computer“, Modell 5150, ein Adressraum von 640 KiB für den Arbeitsspeicher vorgesehen, da dies als ausreichend für den typischen Benutzer empfunden wurde. Es war das Zehnfache des Adressraums der meisten anderen damals am Markt befindlichen Kleincomputer, der erste PC von IBM wurde anfänglich ebenfalls mit maximal 64 KiB (65536 Byte) tatsächlich installiertem Arbeitsspeicher ausgeliefert. Zudem erlaubte der eingesetzte Prozessor Intel 8088 nur einen maximalen Adressraum von einem Megabyte, genauer: 1 MiB bzw. 1024 KiB; die oberen 384 KiB dieses Adressraums, retronym als oberer Speicherbereich (UMA, für ) bezeichnet, wurden für ROM und reserviert, sodass 640 KiB an Adressraum für verbauten RAM als Arbeitsspeicher bzw. retronym „konventionellen Speicher“ übrig blieben. Niemand rechnete damals damit, dass diese Architektur so lange Bestand haben würde, bis diese Grenze ausgeschöpft wäre, waren doch die meisten anderen damaligen Rechnerarchitekturen nach wenigen Jahren wieder vom Markt verschwunden.
Die für Systemzwecke reservierten oberen 384 KiB des Adressraums erwiesen sich, anders als die 640 KiB für Anwenderprogramme, als überdimensioniert; sie wurden kaum jemals komplett ausgenutzt, meist blieben davon zwischen 128 und 256 KiB frei.
Geschichte Bereits in den ersten Jahren konnte sich die IBM-PC-Architektur mit dessen Betriebssystem PC DOS bzw. MS-DOS etablierten, was u. a. Killerapplikationen und der Verfügbarkeit von Nachbauten geschuldet war. Und so stellte sich im Laufe der Zeit diese Grenze immer mehr als Hindernis dar, da sie bestehen blieb, als die IBM-kompatiblen PCs mit immer mehr physischem Arbeitsspeicher (RAM) bestückt wurden.
Für bestimmte Anwendungen, beispielsweise Datenbanken, bestand schon früh Bedarf an mehr Arbeitsspeicher für Daten. Es bildete sich daher ein Markt für Speichererweiterungskarten – dieser als „“ bezeichnete Erweiterungsspeicher wurde 1985 per für DOS standardisiert. Der limitierende Faktor von EMS ist die Notwendigkeit, den Speicher aufgeteilt in einzelne Speicherseiten nutzen zu müssen: die Erweiterungskarte verwendet ihren im Design des IBM PC vorgesehenen Speicherbereich zwischen 640 KiB und 1 MiB (oberer Speicherbereich bzw. UMA), um per ein sogenanntes „Speicherfenster“ einzublenden. Somit sind immer 64 KiB aus dem Erweiterungsspeicher einsehbar. Diese „Fenster in den Erweiterungsspeicher“ muss für den Zugriff auf weitere Daten jeweils verschoben werden. Das Problem von EMS-Speicher ist, dass er dadurch nur für Daten geeignet ist, ein Programm hingegen kann diesen Speichertyp nicht als Arbeitsspeicher nutzen.
Mit dem Intel-80286-Prozessor des IBM PC/AT von 1984 konnte im 16-Bit- bereits ein Adressraum von 16 MiB (16384 KiB) angesprochen werden. Um jedoch die Kompatibilität zur ursprünglichen mit dem IBM PC von 1981 begründeten Plattform nicht zu verlieren, musste das zu diesem Zeitpunkt bereits etablierte PC-kompatible DOS weiterhin die ursprüngliche Speicheraufteilung des nun retronym als bezeichneten 8088/8086-kompatiblen Betriebsmodus beibehalten. Das bedeutete nicht nur, dass Speicher über 1 MiB („“, 1988 per standardisiert) nicht ohne Weiteres nutzbar war, sondern auch, dass vorhandener RAM im oberen Speicherbereich (UMA, über 640 KiB bis zur 1-MiB-Grenze) per Design brach liegt, da diese Speicheradressen weiterhin reserviert sind (für das BIOS und den Grafikspeicher, aber auch z. B. für EMS-Speichererweiterungskarten oder auch die Firmware diverser Controllerkarten u.d.gl.).
Nicht nur IBM war durchaus bewusst, dass das Speicherproblem von DOS auf dem IBM PC und dazu kompatiblen Computern auch mit allen Erweiterungen nicht gelöst werden könnte. Microsoft hatte mit Xenix 286 bereits ein PC-Unix für den Intel 80286 entwickelt, das von IBM als „IBM PC Xenix 1.0“ 1984 gemeinsam mit dem IBM PC/AT vorgestellt wurde. Unter dem im laufenden Betriebssystem gibt es keinen limitierenden konventionellen Speicher, da alle Programme darauf ebenso im gleichen Modus laufen und linearen Speicherzugriff auf den vom Betriebssystem verwalteten gesamten adressierbaren Speicher haben. Den IBM PC/AT gab es damals mit maximal 4 MiB RAM in der Endausbaustufe (512 KiB in Speichermodulen und einer Speichererweiterungskarte mit maximal 3,5 MiB).
Auch unter PC-kompatiblem DOS ist der Zugriff auf den zusätzlichen Speicherbereich zwar im prinzipiell möglich, allerdings gibt es Fallstricke beim Wechsel in den und wieder zurück in den . Beispielsweise wird damit die Ausführung von Programmen im konventionellen Speicher und der Zugriff auf deren Funktionen (wie BIOS- oder DOS-Funktionen, aber auch Treiber und TSR-Programme im ) unterbrochen, sodass ein ständiger Wechsel zwischen beiden Modi nötig ist – der beim 80286 jedoch gar nicht vorgesehen ist und nur über den Umweg des Zurücksetzens des Prozessors möglich ist (ein Hack), der sehr zeitintensiv ist, sodass die Ausführungsgeschwindigkeit darunter leidet. Auf den ersten 80286-Systemen lag unter DOS daher vorerst jeglicher RAM oberhalb des konventionellen Speichers brach. Um nicht komplett ungenutzt zu sein, konnte der zusätzliche Speicher ab PC DOS 3.0 (das zusammen mit dem PC/AT veröffentlicht wurde) als RAM-Disk VDISK.SYS verwendet werden. Hingegen kann (XMS) zwar per Adressspeicherumschaltung () als emulierter Speicher des Typs EMS unterhalb der 1-MB-Grenze eingeblendet werden, allerdings ist das EMS-Speicherfenster dabei nur im konventionellen Speicher möglich und blockiert somit bis zu 64 KiB des Arbeitsspeichers, der Anwendungsprogrammen nun fehlt („EMM286“, siehe auch Extended Memory Specification #Probleme). Auf 80286-Systemen kann nur durch eines Chipsatzes, der die EMS-Emulation aus einem Teil des erweiterten Speichers (, XMS) unterstützt, ein EMS-Speicherfenster genutzt werden, das wie bei realer Hardware (wie eben einer physischen EMS-Speichererweiterungskarte) im reservierten oberen Speicherbereich (, UMA) untergebracht ist.
Das Limit war jedoch Mitte der 1980er Jahre noch eher theoretisch, denn obwohl kompatible PCs damals bereits mit mehr als 1 MiB Arbeitsspeicher ausgestattet werden konnten, wurden die meisten Systemen noch mit weniger als 640 KiB RAM verkauft: der PC/AT etwa wurde 1984 mit maximal 512 KiB RAM angeboten. Natürlich gab es Nischen für High-End-Systeme, und auch teure High-End-IBM-kompatible-PCs konnten mit entsprechender (ebenso High-End-)Software mehr RAM nutzen, wie eben z. B. PC-Unix-Systeme. Eine Speichererweiterungssteckkarte für den IBM PC/AT ermöglicht etwa bis zu 4 MiB RAM, der jedoch 1984 nur unter Xenix 286 überhaupt nutzbar war.
Währenddessen wurde MS-DOS zum dominierenden PC-Betriebssystem, für das die meisten Anwendungen und Programme geschrieben wurden. In dieser Situation setzten in der zweiten Hälfte der 1980er Jahre verschiedene Firmen den für DOS um, als sogenannten DOS-Extender, trotz aller Nachteile. Auf diese Weise waren DOS-Programme möglich, die im laufen und daher den erweiterten Speicher als Arbeitsspeicher nutzen können. Diese anfangs zueinander inkompatiblen DOS-Extender wurden erst Ende der 1980er Jahre standardisiert.
Auch auf der Seite der Hardware gab es Anpassungen speziell für die PC-Plattform mit MS-DOS. So entwickelten beispielsweise einige Hersteller kompatibler PC-Systeme Chipsätze für IBM-PC-kompatible Hauptplatinen, die zumindest einen Teil des sonst brach liegenden Speichers auch unter DOS und im nutzbar machen können. Ein Beispiel dafür ist der C&T-NEAT-Chipsatz, der per den RAM im reservierten oberen Speicherbereich zwischen Adresse hex und hex (der , UMA) an einer höheren Adresse (über 1 MiB) einblenden kann. So werden die 384 KiB RAM, die normalerweise vom reservierten oberen Speicherbereich verdeckt sind, als (zusätzlicher) nutzbar. Dieselben Chipsätze unterstützen meist auch eine mehr oder weniger flexible EMS-Speicheremulation, die im System verbauten RAM, der erweitertem Speicher nach XMS entspricht, für existierende DOS-Programme in Speicher des Typs EMS umwandeln kann, den diese unterstützen und daher auch nutzen können. Die Speicherkonfiguration erfolgt meist im erweiterten BIOS-Setup des Chipsatzes.
Bei der Entwicklung des Intel 80386 wurde die besondere Speichersituation von DOS berücksichtigt, denn dem „386er“ wurde nicht nur eine Speicherverwaltungseinheit (MMU, für ) spendiert, sondern auch der . In diesem ist die virtuelle Speicherverwaltung in Hardware umgesetzt, sodass DOS-Programme in einem virtuellen jeweils ihren vollkommen isolierten konventionellen Speicher erhalten. Auch kann mithilfe der Speicherverwaltungseinheit der ungenutzte Teil des oberen Speicherbereichs (UMA) auf RAM umgebogen werden, was aber erst ab DOS 5.0 (eingeführt in DR DOS 5.0, übernommen in MS-DOS/PC DOS 5.0) per UMBs () kontrolliert möglich ist. Zusätzlich kann jedes 80386-System durch die Speicherverwaltungseinheit EMS-Speicher aus erweitertem Speicher (, XMS) emulieren (siehe EMM386), was physische Speichererweiterungskarten quasi obsolet machte.
Auf der Software-Seite wurde ein Programmiertrick entdeckt, der im ab dem 80286 die ersten 65520 Bytes über der 1-MiB-Grenze auf 80286-Systemen auch im ansprechbar macht. Dieser Speicherbereich ist jedoch nur durch Umschaltung der A20-Adressleitung nutzbar, was für Betriebssystem und Programme problematisch ist, da sowohl die Schaltung als auch der Status der A20-Leitung in DOS nicht standardisiert sind. Dennoch erlaubte dies die Nutzung dieses fast 64 KiB großen „hohen Speichers“ (HMA, für ) für ausgewählte Software, beispielsweise Teile von Windows/386 und DOS 5.0 (gemeinsam mit UMBs eingeführt in DR DOS 5.0 und übernommen in MS-DOS/PC DOS 5.0).
Die ursprüngliche Speicheraufteilung des IBM Personal Computer Modell 5150 von 1981 bleibt somit auch im retronym als bezeichneten Betriebsmodus, in dem das etablierte Betriebssystem MS-DOS der Kompatibilität geschuldet weiterhin läuft, erhalten. Anders als unter -Betriebssystemen wie PC-Unix (wie Xenix) oder OS/2, die den Speicher linear ansprechen, ist unter DOS ein kompliziertes Speichermanagement und unterschiedliche Speichertypen nötig, um mehr als das ursprüngliche Limit von 640 KiB konventionellen Speicher nutzen zu können. Für DOS-Programme, die nicht per DOS-Extender im laufen, bleibt der konventionelle Speicher die praktische Einschränkung.
Speicheroptimierung