Intel-Prozessor

Intel 8086

aus Wikipedia, der freien Enzyklopädie

Wechseln zu: Navigation, Suche
Intel 8086
Intel 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

[Bearbeiten] Speichersegmentierung

Eine Besonderheit ist die Speichersegmentierung. Da es mit einem 16-Bit-Arbeitsregister nur möglich ist, maximal 64 KiB 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 Adressbereiche (Segmente) zu je 64 KiB Größe aufgeteilt, die in 16-Byte-Schritten im Speicher beginnen. Auf diese Weise ist es dem Chip möglich, bis zu ein MiB 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 vier 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, wie etwa Motorolas 68000, erlaubten meist einen Adressraum von mindestens 16 MiB. Allerdings war 1 MiB 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 KiB Speicher).

[Bearbeiten] 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 verwendenen 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 2 und die Intel-kompatiblen Prozessoren von AMD).

[Bearbeiten] 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.

[Bearbeiten] Architektur

  • Max. adressierbarer Speicher: 1 MiB
  • 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:
    • Befehlszeiger IP – Instruction Pointer
    • 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)

[Bearbeiten] 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)

[Bearbeiten] Siehe auch

[Bearbeiten] Weblinks

Copyright © 2005-2010 Hardware-Aktuell. Alle Rechte vorbehalten.