- 8086
-
Der Intel 8086 ist ein 16-Bit-Mikroprozessor von Intel. Entwickelt 1978, wurde er zum Urvater der 80x86-Familie. Das Design basierte auf Intels 8-Bit-CPUs 8080 und 8085, der Befehlssatz war so konzipiert, dass Assembler-Quellcode für den 8080/8085 leicht automatisch in gültigen 8086-Quellcode umgewandelt werden konnte. Eine direkte Kompatibilität, also die Möglichkeit, die 8080-Programme auch ohne Neuassemblierung ablaufen zu lassen, bestand aber nicht. Wie dem 8080 fehlten dem 8086 einige wesentliche Bausteine wie Interrupt- und DMA-Controller, die als externe Chips dazukamen. Der 8086 unterstützt auch keine Gleitkomma-Operationen, kann jedoch von Haus aus mit einem Intel 8087-Koprozessor zusammenarbeiten, der dann die Gleitkomma-Berechnungen ausführt.
Der 8086 war eine der langsamsten unter den 16-Bit-CPUs, die Ende der 1970er Jahre auf den Markt kamen.
Inhaltsverzeichnis
Speichersegmentierung
Eine Besonderheit ist die Speichersegmentierung. Da es mit einem 16-Bit-Arbeitsregister nur möglich ist, maximal 64 kB Speicher zu adressieren, musste ein anderer Weg gefunden werden, um trotzdem den gesamten Speicher mit den 20 Adressleitungen adressieren zu können. Dazu wird der Speicher in 16 Adressbereiche (Segmente) zu je 64 KB Größe aufgeteilt. Auf diese Weise ist es dem Chip möglich, bis zu 1 MB zu adressieren, wobei innerhalb jedes Segments mit 16-Bit-Adressen gearbeitet werden kann. Als Formel für den Zugriff auf eine physikalische Speicherstelle wurde folgender Zusammenhang festgelegt: Physikalische Adresse = Segmentregister × 16 + Offset. Mit den insgesamt vier Segmentregistern können 16 Anfangsadressen gespeichert werden.
Vorteil der Speichersegmentierung ist u. a. eine einfachere Portierbarkeit von 8-Bit-Programmen, Nachteil die umständliche Programmierung und die Beschränkung auf ein Megabyte; andere 16-Bit-Architekturen erlaubten meist einen Adressraum von mindestens 16 MB. Allerdings war 1 MB damals für einen Mikrocomputer ohnehin viel mehr, als benötigt bzw. tatsächlich an Speicher verbaut wurde (der IBM-PC hatte zum Beispiel zunächst je nach Variante nur 16 oder 64 KB Speicher).
Register
Die Register haben meist fest zugewiesene Funktionen. Zum Beispiel muss für eine Multiplikation der Multiplikand im Register AX abgelegt werden und danach der Multiplikationsbefehl mit dem Multiplikator als Argument aufgerufen werden. Das Ergebnis erhält man dann in den Registern DX und AX. Dadurch ist man häufig gezwungen, Werte auf den Stack oder in den Arbeitsspeicher zu sichern und von dort zu laden, da die Prozessorbefehle häufig vorgeben, welche Register gerade für Zwischenwerte genutzt werden können. Andere 16-Bit Prozessoren wie der Motorola 68000 erlauben dagegen, dass man für jede Operation die zu verwendenden Allzweck-Register auswählt und damit seltener Zwischenergebnise auf Stack und im Arbeitsspeicher sichern muss; auch hatten diese Architekturen meist 16 oder mehr Register, während der 8086 (abzüglich der erwähnten Segmentregister) nur vier halbwegs allgemeine und vier speziellere Register unterstützte. Dies ist insofern ein Problem, als dass Zugriffe auf den Arbeitsspeicher im Gegensatz zu Registerzugriffen sehr langsam sind und Caches noch nicht unterstützt waren.
Dieses Register-Konzept vererbte der 8086 auf seinen Nachfolger 80286 und auf alle späteren, zur sog. x86-Familie zählenden Prozessoren (also auch Core i7 und die Intel-kompatiblen Prozessoren von AMD).
Einsatz
Wie sein kleiner Bruder 8088, der wenig später auf den Markt kam, wurde der 8086 vor allem im IBM-PC und dessen Clones eingesetzt, aber auch z. B. im Space Shuttle. Die NASA sucht noch immer regelmäßig den Restbestände-Markt nach einer bestimmten, heute nicht mehr hergestellten Spezialversion des 8086 ab, um das Shuttleprogramm wie geplant bis 2012 durchführen zu können. Diese Version des 8086 ist besonders unempfindlich gegen elektromagnetische Strahlung und wurde nicht nur vom Militär, sondern auch von Herstellern von medizinischen Geräten verwendet.
Architektur
- Max. adressierbarer Speicher: 1 MB
- Verarbeitungsbreite: 16 Bit
- Datenbus: 16 Bit
- Adressbus: 20 Bit
- Befehle: ca. 100 im Format "[Präfix] Mnemonik [Operand 1][, Operand 2]" ([...] nicht immer nötig)
- 14 Register:
- 4 allgemeine 16-Bit-Register (ansprechbar auch als Low- oder High-Teil zu je 8-Bit):
- AX – Akkumulator
- BX – Basis-Register
- CX – Count-Register
- DX – Daten-Register
- 2 16-Bit-Pointer-Register:
- SP – Stackpointer
- BP – Basepointer
- 2 16-Bit-Index-Register:
- SI – Source Index
- DI – Destination Index
- 4 16-Bit-Segment-Register:
- CS – Codesegment
- DS – Datensegment
- SS – Stacksegment
- ES – Extrasegment
- 16-Bit-Befehlszeiger IP – Instruction Pointer
- 16-Bit-Status-Register mit 9 Flags:
- CF – Übertragflag (engl. carry flag)
- PF – Paritätsflag (engl. parity flag)
- AF – Hilfsübertragflag (engl. auxiliary carry flag)
- ZF – Nullflag (engl. zero flag)
- SF – Vorzeichenflag (engl. sign flag)
- TF – Einzelschrittflag (engl. trap flag)
- IF – Interrupt-Aktivierungs-Flag (engl. interrupt enable flag)
- DF – Richtungsflag (engl. direction flag)
- OF – Überlaufflag (engl. overflow flag)
- 4 allgemeine 16-Bit-Register (ansprechbar auch als Low- oder High-Teil zu je 8-Bit):
Technische Daten
- L1-Cache: nicht vorhanden
- L2-Cache: nicht vorhanden
- Anzahl der Transistoren: 29.000
- Bauform: DIL mit 40 Pins
- Betriebsspannung (VCore): 5 Volt
- Erscheinungsdatum: 1978
- Fertigungstechnik: 3 µm
- Die-Größe: 33 mm² bei 29.000 Transistoren
- Taktraten:
- 4,77 MHz (0,33 MIPS)
- 8 MHz (0,66 MIPS)
- 10 MHz (0,75 MIPS)
Siehe auch
Weblinks
Mikroprozessoren von Intel | Intel-Prozessoren | ModellnummernNon-x86-Prozessoren: 4004 | 4040 | 8008 | 8080 | 8085 | iAPX 432 | i860 | i960 | Itanium | Itanium 2
Bis 4. Generation: 8086 | 8088 | 80186 | 80188 | 80286 | i386 | i486DX | i486DX2 | DX4 | i486GX | i486SL/SL-NM | i486SX | i486SX2
Pentium-Serie: Desktop: Pentium (MMX) | Pentium II | Pentium III | Pentium 4 | Pentium 4 XE | Pentium D | Pentium XE | Pentium Dual-Core
Mobil: Mobile Pentium 4 | Pentium M | Pentium Dual-Core Server: Pentium Pro
Celeron-Serie: Desktop: Celeron (P6) | Celeron (NetBurst) | Celeron D | Celeron (Core) | Celeron Dual-Core Mobil: Mobile Celeron | Celeron M
Core-Serie: Desktop: Core 2 Duo | Core 2 Quad | Core 2 Extreme Mobil: Core Solo | Core Duo | Core 2 Solo | Core 2 Duo | Core 2 Extreme
Nehalem-Serie: Core i5 | Core i7
Xeon-Serie: Server: Xeon (P6) | Xeon (NetBurst) | Xeon (Core)
Wikimedia Foundation.