Die 80x86-Familie von Intel
Die 80x86-Familie von Intel
Entwicklung, Prozessoren, Betriebsmodi, Multitasking
Referat: Olaf Schmidt, Dezember 1992
Der 8086 ist der erste Vertreter dieser Prozessorgruppe. Er wurde
bereits 1978 entwickelt. Dieser Prozessor unterstützt nur den
Real Mode, in dem auch DOS abläuft. Alle folgenden Prozessoren,
unabhängig von den Erweiterungen, die sie erfahren haben, sind
kompatibel zu diesem Prozessor. Der Nachfolger 8088 stellt jedoch
eine rückwärtige Entwicklung dar. Er hat im Vergleich zum 8086,
der über einen 16 Bit breiten Datenbus verfügt, nur einen 8 Bit
breiten Datenbus. Der Befehlssatz und der interne Aufbau sind
jedoch identisch.
Die anderen Familienmitglieder sind Weiterentwicklungen des 8086.
Der 80186 besitzt einige neue Zusatzfunktionen, hat sich aber nie
durchgesetzt.
Der 80286
Der 80286 erhielt von den Entwicklern einige neue Register und
einen größeren Adressraum. Die wichtigste Neuerung ist der
Protected Mode, der jedoch unter DOS nicht zum Einsatz kommt.
Der Protected Mode
Der Protected Mode wurde für die Unterstützung von
leistungsfähigen Multitasking-Betriebssystemen entwickelt. Bei
solchen Betriebssystemen laufen zwei oder mehrere Tasks1
(scheinbar) parallel ab2. In einer Textverarbeitung z.B. wird,
während Sie im Vordergrund einen Text schreiben (1.Task), im
Hintergrund ein anderer Text aufbereitet und an den Drucker
gesendet (2.Task). Bei Ausführung dieser Tasks muß eine sinnvolle
Koordination gewährleistet sein, und die Tasks müssen
gegeneinander gesichert und geschützt werden (z.B. gegen
Überschreiben).
Folgende Anforderungen an den Prozessor zur Unterstützung eines
Multitasking-Betriebsystems werden erfüllt:
a)Gegenseitiger Schutz der Tasks und des Betriebssystems vor dem
unerlaubten Überschreiben fremder Speicherbereiche
b)Unterstützung beim Taskwechsel, vor allem beim Sichern und
Restaurieren des Betriebszustandes eines Tasks
c)Privilegierung des Betriebssystems3 bei der Ausführung
bestimmter Maschinensprache-Befehle und Operationen
d)Unterstützung bei der Errichtung einer virtuellen
Speicherverwaltung4
Die Programmierung des Protected Mode beim 80286 unterscheidet
sich nicht wesentlich von der Programmierung des Real Mode des
8086. Hauptsächlich sind ein paar neue Register dazugekommen, und
die Adressierung hat sich grundlegend geändert. Um die Adressie
rung braucht sich der Assembler-Programierer jedoch nicht
kümmern, da dies Aufgabe des Assemblers (z.B. MASM) ist. Die
neuen Register sind allein für die Adressierung zuständig.
Der 80386
Der 80386 erhielt eine Weiterentwicklung des Protected Mode (V86-
Mode). Er hat zum ersten Mal in der Familie 32 Bit Register. Es
gibt eine SX-Version mit 16 Bit Datenbus und eine DX-Version mit
32 Bit Datenbus. Dieser Prozessor erhielt als Erweiterung den
Virtual-86-Mode.
Die auch für den Real Mode interessante Erweiterung betrifft die
Register. Sie sind jetzt nicht mehr nur 16 Bit breit sondern 32
Bit breit. Die alten Register AX, BX, CX, DX bleiben weiterhin
erhalten. Sie stellen die Lo-Word Teile der 32 Bit Register dar.
Die neuen Register heißen EAX, EBX, ECX, EDX ('E'=Extended). Das
Hi-Word des 32 Bit Registers läßt sich im Gegensatz zu den Lo-
Word Registern weder alleine noch in zwei 8 Bit Register (z.B.
AH, AL) aufgeteilt ansprechen. Auch die Segmentregister sind nun
32 Bit breit. So lassen sich theoretisch bis zu 4 GByte in einem
Segment verwalten. Es gibt auch noch weitere Debug- und
Steuerregister, die hier aber nicht betrachtet werden sollen.
Der Virtual-86-Mode
Der Virtual-86-Mode (V86-Mode) ist eine Kompromißlösung zwischen
Proteced Mode und Real Mode. Da sich der Protected Mode des 80286
nicht durchsetzen konnte, wurde der V86-Mode eingeführt. Er wird
von vielen Erweiterungen (z.B. EMM386.SYS von Microsoft zur EMS-
Simulation) und Multitasking Systemen (z.B. DOS-Box von Windows)
benutzt.
Im V86-Mode erscheint dem Programm das System wie ein Rechner im
Real Mode. Gleichzeitig läuft jedoch im Hintergrund das
Multitasking Betriebssystem mit Speicherverwaltung,
Taskumschaltung und Privilegregeln des Protected Mode weiter. Dem
Programm stehen jedoch die Register und Möglichkeiten des 80386
im vollem Umfang zur Verfügung. Nur bei der Verwendung einer
80386 Adressierung (z.B. Segmente >64 KByte) unterbricht das
System und führt eine Fehlerroutine aus.
Über die Besonderheit des 80386, Speicherbereiche irgendwo im
physikalischen Speicher simulieren5 zu können, läßt sich der
1 MByte große Adressraum des Real Mode beliebig plazieren.
Der 80486 oder i486
Dieser Nachfolger des 80386 hat auf dem Prozessor zusätzlich den
mathematischen Coprozessor 80387 untergebracht. Außerdem zeichnet
er sich durch die Bereitstellung eines auf dem Prozessor
untergebrachten Code-Caches6 und durch eine wesentlich schnellere
Verarbeitung vieler Maschinensprachebefehle aus.
Der 80486 ist bei gleicher Taktfrequenz etwa 3 mal so schnell wie
ein 80386. Er unterstützt eine 5-stufige Pipeline Technik, bei
der fünf Befehle in unterschiedlichen Ausführungsstadien7
parallel verarbeitet werden. Die Anwendung von RISC-Techniken
verhalf dem Prozessor dazu häufig, benutzte Befehle in einem oder
wenigen Taktzyklen zu bearbeiten. Die internen Datenwege des
80486 zwischen Prozessoreinheit, Arithmetikeinheit und Cache-
Speicher sind 128-Bit breit und erlauben deshalb eine besonders
schnelle Datenübertragung. Auch können Prozessor- und
Arithmetikeinheit zum Teil parallel arbeiten.
Literaturverzeichnis
PC-Intern 3.0, Tischer, Data Becker, 1992
DOS International 6/1989, DMV Verlag
1 Task (=Vorgang): voneinander überwiegend unabhängige Programme
oder Programmteile, die selbstständig arbeiten können
2 Da nur ein Prozessor zur Verfügung steht, kann auch nur ein
Task gleichzeitig abgearbeitet werden. Meist wird die
Prozessorzeit eingeteilt und die Tasks dann nacheinander
bearbeitet. Die Zeiteinheiten (time slice) liegen in der
Größenordnung vom einigen Millisekunden. Das Betriebssystem
unterbricht einen Task einfach nach der bestimmten Zeit und setzt
ihn dann zu einem späteren Zeitpunkt, wenn die anderen Tasks auch
mal an der Reihe waren, fort. So erscheint es dem Benutzer, als
würden die Tasks gleichzeitig ablaufen.
3 Das Betriebssystem muß privilegiert sein, bestimmte Operationen
auszuführen. Dazu gehören z.B. Task-Umschaltung, Anderung des
Prozessor Modus (z.B. zurück zum Realmodus) und die Verteilung
von Zugriffsrechten auf Speicher und Ressourcen.
4 Bei komplexen Programmen nimmt auch der Speicherbedarf zu. Das
System muß die Möglichkeit haben, mehr Speicher zu Verfügung zu
stellen, als physikalisch vorhanden ist. Dazu muß das System
erkennen, welche Speicherbereiche zwischenzeitlich auf Festplatte
ausgelagert werden können.
5 Der 80386 kann durch Verwendung von sog. page tables
physikalische Adressen im realen physikalischen Speicher
simulieren. D.h. ein Programm im V86-Mode schreibt an eine
bestimmte physikalische Adresse, in Wirklichkeit jedoch rechnet
der Prozessor selbständig um und schreibt an eine andere Adresse,
ohne das das Programm verändert oder angepaßt werden muß (der
Code bleibt unmodifiziert).
6 Im Code-Cache, einem sehr schnellem Speicher, der beim i486 auf
dem Prozessor untergebracht ist (8 KByte), werden die zuletzt
bearbeiteten Befehle zwischengespeichert. Wird ein Befehl ein
zweites Mal gebraucht, ist keine (langsame) Anforderung aus dem
konventionellen Speicher mehr nötig, sondern es kann auf den Code-
Cache zurückgegriffen werden.
7 a) Befehl lesen, b) Befehl dekodieren (Stufe 1), c) Befehl
dekodieren (Stufe 2), d) Befehl ausführen, e) Pipeline-Stufe
zurückschreiben
Haupt | Fügen Sie Referat | Kontakt | Impressum | Nutzungsbedingungen