Intel 8086

Intel 8086 Beschreibung dieses Bildes, auch unten kommentiert Eine Version im Keramikgehäuse C8086. Allgemeine Informationen
Produktion Von 1978 bis 1990
Hersteller Intel
Aufführungen
Frequenz 4,77  MHz  bis 10  MHz
Physikalische Spezifikationen
Gehäuse 40-poliger Keramik- oder Kunststoff- Dip
Gravurfeinheit µm
Der Header- Parameter ist erforderlich.Architektur und Klassifizierung
Die Architektur x86

Der Intel 8086 (auch als iAPX 86 bekannt ) ist ein 16- Bit- CISC- Mikroprozessor , der ab 1978 von Intel hergestellt wurde . Es ist der erste Prozessor in der x86 - Familie , die geworden ist die beliebteste Prozessorarchitektur in der Welt der PCs , Workstations und Computer - Server aufgrund von IBM Wahl als Grundlage zu verwenden für sie. " IBM PC veröffentlicht ein paar Jahren später. Sein Hauptkonkurrent war das 1979 erschienene Motorola 68000, das insbesondere im Apple Macintosh zum Einsatz kam .

Es wurde im Mai 1978 zu einem Preis von 360 Dollar auf den Markt gebracht .

Als Nachfolger des 8080 , einem 8-Bit-Prozessor, verwendet er eine vollständige 16-Bit-Architektur: Die Register, der Datenbus und die Berechnungen werden in 16 Bit ausgeführt. Sein Adressbus ist 20 Bit lang, wodurch er 1 MB Speicherplatz adressieren kann. Im Vergleich dazu wird der 68000 ein Jahr später eine 16/32-Bit-Hybridlösung sein, die 32-Bit-Register, einen 24-Bit-Adressbus und einen 16-Bit-ALU- und Datenbus verwendet.

Es enthält 29.000 in 3 µm geätzte Transistoren . Seine Rechenleistung reicht von 0,33 MIPS (bei einer Taktung von 4,77  MHz wie beim IBM-PC ) bis zu 0,75 MIPS für die 10 MHz- Version  .

Er ist in der Lage, die 4 grundlegenden Operationen mit ganzen Zahlen (ADD, SUB, MUL, DIV) auszuführen und kann auch durch Verbindung mit einem Intel 8087- Coprozessor erweitert werden, der die Verarbeitungsfähigkeiten für Gleitkommazahlen hinzufügt.

Geschichte

Projekt 8086 startete in Mai 1976. Es war ursprünglich als vorübergehender Ersatz für den iAPX 432 gedacht , ein sehr ehrgeiziges Projekt, das noch nicht abgeschlossen war und einige Jahre später ein kommerzieller Misserfolg sein wird. Intel hoffte somit, Konkurrenzprozessoren (einschließlich Motorola , Zilog und MOS Technology ) zu verdrängen und gleichzeitig der Bedrohung durch den Z80 entgegenzuwirken , der von einem ehemaligen Intel-Mitarbeiter entwickelt wurde, der am 8080 arbeitete.

Die Architektur des Chips wurde schnell von einer kleinen Gruppe von Leuten entwickelt, wobei die gleichen Herstellungstechniken wie beim Intel 8085 verwendet wurden , um die Kompatibilität zu gewährleisten.

Da die Verwendung der gleichen Assemblersprache wie beim 8008, 8080 und 8085 ermöglicht wurde, wurde der 8086 somit als perfekt kompatibel präsentiert und erforderte wenig oder keine Modifikation des Quellcodes der Programme. Es bietet jedoch volle 16-Bit-Unterstützung, im Gegensatz zu den 8080 und 8085, die nur sehr grundlegende 16-Bit-Fähigkeiten hatten.

Noch mit dem Ziel, die Einführung zu erleichtern, wird der Hersteller 1979 eine Version namens 8088 ablehnen, deren externe Busse auf 8 Bit (Daten) und 16 Bit (Adresse) reduziert werden, um sie mit 8-Bit-Motherboards für l 'kompatibel zu machen ' Intel8080 . Diesen Ansatz wird es auch bei seinen Nachfolgern wie dem 80186 (80188) geben.

Anekdote

Im Jahr 2002 war die NASA aufgrund der Überalterung ihrer Validierungssysteme gezwungen, 8086-Prozessoren bei eBay zu kaufen, da diese seit den 90er Jahren nicht mehr von Intel hergestellt wurden .

Im Jahr 2018 brachte Intel einen Prozessor in limitierter Auflage auf den Markt , den Intel Core i7 - 8086K , um an 40 Jahre Intel 8086 zu erinnern.

Verpackung

Es gibt mehrere Versionen des 8086 mit verschiedenen Boxtypen und mehreren unterstützten Maximalfrequenzen.

Die Gehäuse können aus Keramik oder Kunststoff bestehen. Das Suffix 8086 gibt die maximale Frequenz an: 5  MHz für den 8086, 8  MHz für den 8086-2 und 10  MHz für den 8086-1.

Varianten

In 1979 startete Intel eine Variante dieses Prozessors, sondern mit einem externen Datenbus von nur 8 Bit, es war der Intel 8088 . Es war diese billigere Version, die von IBM ausgewählt wurde , um den ersten IBM-PC zu entwickeln .

Die Architektur

Haupteigenschaften

Speicheradressierung

Der Prozessor verfügt über einen 20-Bit-Adressbus, während seine Architektur auf einer 16-Bit-ALU basiert. Um diese Einschränkung zu überwinden, verwendet der Prozessor einen Speichersegmentierungsmechanismus: Die Ein-Byte-Adresse wird durch die Kombination von zwei 16-Bit-Registern über eine Additionsoperation erhalten, die ein 20-Bit-Ergebnis erzeugt.

Konkret begrenzt ein sogenanntes Segmentregister einen 64 KB großen Speicherblock, dessen Startadresse gleich value_of_register x 0x10 ist (daher eine Linksverschiebung von 4 Bit: der Wert 0x1234 gibt also die reale Adresse 0x12340 an). Zu diesem aus dem Segmentregister kommenden Wert wird ein als Offset bezeichneter Wert addiert, der entweder aus einem anderen allgemeineren Register oder aus einem direkten Wert des Programms stammt.

Die Adresse eines Bytes wird daher wie folgt ermittelt: physical_address = segment_register_value x 0x10 + Offset.

Das Segment wird immer durch eines der 4 ALU-Segmentregister identifiziert: CS, DS, SS oder ES.

Konventionell werden segmentierte Adressen wie folgt notiert: XX: YY oder XX ist der Name des verwendeten Segmentregisters (oder manchmal ein direkter Wert) und YY der Name des Registers, das den Offset enthält (oder wiederum ein direkter Wert).

Zum Beispiel CS: IP ist eine Adresse, die durch eine Kombination des Codesegmentregisters (CS) und des Befehlszeigerregisters (IP) gebildet wird.

Register

Im Gegensatz zum 68000, dessen sehr orthogonale Architektur es ermöglicht, die meisten Register als gleichwertig zu betrachten, haben die Register des 8086 entweder eine dedizierte Funktion oder spezifische Eigenschaften, die dazu führen, dass Operationen nur auf sie angewendet werden. Daher ist es wichtig, die Kapazitäten der einzelnen Register gut zu kennen und zur Erstellung eines effektiven Codes die optimale Nutzung dieser zu fördern.

Unterbrechungen

Der Prozessor hat insgesamt 256 Interrupts, einige hardwarebezogen, andere softwareseitig nutzbar. Die Interrupt-Tabelle ist ein Speicherblock von 1024 Bytes beginnend bei der physikalischen Adresse 0x00000 und bestehend aus 256 Pointern in der Form Segment: Offset (daher jeweils 4 Bytes). Die Interrupt-Vektortabelle reicht daher bis zur Adresse 0x003FF. Jeder Zeiger gibt die Adresse des zugehörigen Interrupt-Handlers an. Der erste Zeiger entspricht also Interrupt 0 usw.

Wenn ein Interrupt der Nummer X ausgelöst wird, lädt der Prozessor den an der Speicheradresse X * 4 vorhandenen Zeiger in die CS:IP-Register, nachdem er ihren Inhalt auf dem Stack gespeichert hat.

Die Nummer der Unterbrechung hängt von ihrer Herkunft ab:

Da für jeden Interrupttyp dieselbe Logik zum Berechnen der Manageradresse verwendet wird, gibt es keine wirkliche Unterscheidung zwischen Hardware-, nicht maskierbaren oder Software-Interrupts. Es empfiehlt sich daher, Überschneidungen bei der Nummernvergabe zu vermeiden.

Die ersten 5 Interrupts werden reserviert und vom Prozessor selbst erzeugt, entweder direkt oder in Verbindung mit den Peripheriekomponenten:

Aus diesem Grund können die Hardware- oder Software-Interrupts 0 bis 4 nicht verwendet werden, und im weiteren Sinne reserviert die Spezifikation die Interrupts 5 bis 31 für die Hardware-Nutzung.

Alle anderen Interrupts, über 32 hinaus, können frei verwendet werden und können insbesondere durch einen INT x-Befehl ausgelöst werden.

Ein-/Ausgangsports

Die I/O-Ports haben einen eigenen Adressraum von insgesamt 64 KB Die Ports reichen von 0x0000 bis 0xFFFF und werden durch spezifische Anweisungen behandelt:

Hinweise und Referenzen

  1. (in) S. Mazor, "  Intel 8086's  " , IEEE Annals of the History of Computing , Vol. 2 , No.  32, n o  1,Januar-März 2010, s.  75-79 ( DOI  10.1109 / MAHC.2010.22 , online lesen )
  2. William J. Broad, "  NASA prüft EBay auf veraltete Teile  " , New York Times ,12. Mai 2002
  3. Intel, „  Happy Birthday, 8086: Limited-Edition Intel Core i7-8086K der 8. Generation bietet Top-Gaming-Erlebnis  “ , Intel Newsroom,5. Juni 2018
  4. 8086 16-BIT HMOS MIKROPROZESSOR 8086 / 8086-2 / 8086-1 (offizielle technische Daten von Intel)