StartBerichteMikrowelten – Geschichten der Computertechnik – Teil 10: Siegeszug der 8086er

Mikrowelten – Geschichten der Computertechnik – Teil 10: Siegeszug der 8086er

  • 3 Tagen her
  • 7Minuten

Auf die Verdienste von Intel wurde bereits mehrfach eingegangen. Eines der erstaunlichsten Fakten ist, dass selbst in den 2020er Jahren zahlreiche Prozessoren, insbesondere für PCs, auf den 8086 von 1978 fußen. Man nennt dies die x86-Prozessor-Familie und selbst moderne 64-Bit-Prozessoren wie der Intel Core i7 (2008) oder der AMD Excavator (2015) gehören dazu. Doch was macht den über vierzigjährigen Erfolg aus?

Nur ein Ersatz

Ein Jahr nach der Fertigstellung des 8-Bit Prozessors 8080 begann Intel 1976 mit dem 432-Projekt. Es wurde zunächst 8800 genannt, als nächster Schritt nach den bestehenden 8008 und 8080 Mikroprozessoren. Die Befehlssätze dieser 8-Bit-Prozessoren waren nicht sehr gut für typische Algol-ähnliche kompilierte Sprachen geeignet. Das Hauptproblem war jedoch ihr kleiner nativer Adressierungsbereich, nur 16K für den 8008 und 64K für den 8080, viel zu klein für viele komplexe Softwaresysteme, ohne eine Art von Bank-Switching, Speichersegmentierung oder einen ähnlichen Mechanismus zu verwenden.

Intel wollte nun ein ausgeklügeltes Komplettsystem mit wenigen LSI-Chips bauen, das funktional den besten 32-Bit-Minicomputern und Mainframes, die ganze Schränke mit älteren Chips benötigten, ebenbürtig oder sogar überlegen war. Dieses System würde Multiprozessoren, modulare Erweiterungen, Fehlertoleranz, fortgeschrittene Betriebssysteme, fortgeschrittene Programmiersprachen, sehr große Anwendungen, höchste Zuverlässigkeit und höchste Sicherheit unterstützen. Seine Architektur würde den Bedürfnissen der Intel-Kunden ein Jahrzehnt lang gerecht werden.

Das iAPX 432-Entwicklungsteam wurde von Bill Lattin geleitet, mit Justin Rattner als leitendem Ingenieur. Zunächst arbeitete das Team von Santa Clara aus, aber im März 1977 zogen Lattin und sein Team von 17 Ingenieuren an den neuen Standort in Portland um.

Die Architekten hatten völlige Freiheit, ein neues Design von Grund auf zu entwerfen und dabei alle Techniken zu verwenden, die ihrer Meinung nach für große Systeme und Software am besten geeignet waren. Sie wendeten modische Informatikkonzepte von Universitäten an, insbesondere Fähigkeitsmaschinen, objektorientierte Programmierung, hochentwickelte CISC-Maschinen, Ada und dicht kodierte Anweisungen. Diese ehrgeizige Mischung neuer Funktionen machte den Chip größer und komplexer. Die Komplexität des Chips begrenzte die Taktrate und verlängerte den Entwicklungszeitplan.

Es wurde bald klar, dass es mehrere Jahre und viele Ingenieure brauchen würde, um all dies zu entwickeln. Und es würde ebenfalls mehrere Jahre dauern, bis weitere Fortschritte beim Moore’schen Gesetz erzielt würden, bevor eine verbesserte Chipfertigung all dies in ein paar dichte Chips packen könnte. In der Zwischenzeit benötigte Intel dringend ein einfacheres Zwischenprodukt, um der unmittelbaren Konkurrenz zu begegnen. Also begann Intel in aller Eile mit der Entwicklung des 8086 als risikoarme Weiterentwicklung des 8080, wobei ein eigenes Entwicklungsteam eingesetzt wurde.

Modern und kompatibel

Der 8086 war zwar ein 16-Bit-Mikroprozessor, verwendete aber dieselbe Mikroarchitektur wie die 8-Bit-Mikroprozessoren von Intel (8008, 8080 und 8085). Dies ermöglichte die nahtlose Migration von Assembler-Programmen, die in 8-Bit geschrieben worden waren. Er konnte zwar entsprechend kompilierten Code nicht direkt ausführen, es war aber einfach, bestehenden Assembler-Code, etwa für den 8008, für den 8086er zu kompilieren. Außerdem wurden neue Befehle und Funktionen – wie vorzeichenbehaftete Ganzzahlen, Base+Offset-Adressierung und sich selbst wiederholende Operationen – hinzugefügt.

Die 8086-Stiftbelegung im Min- und Max-Modus
Die 8086-Stiftbelegung im Min- und Max-Modus (Bild: Wikipedia)

Es wurden Anweisungen beigefügt, um die Kompilierung von Quellcode für verschachtelte Funktionen in der Algol-Sprachfamilie, einschließlich Pascal und PL/M, zu unterstützen. Laut Stephen P. Morse, dem Hauptarchitekten, war dies das Ergebnis eines stärker softwarezentrierten Ansatzes. Zu den weiteren Verbesserungen gehörten Microcode-Befehle für die Multiplikations- und Divisionsbefehle der Assemblersprache. Die Entwickler rechneten auch mit Koprozessoren wie dem 8087 und dem 8089, so dass die Busstruktur flexibel gestaltet wurde.

Die erste Überarbeitung des Befehlssatzes und der High-Level-Architektur war nach etwa drei Monaten fertig, und da fast keine CAD-Tools verwendet wurden, arbeiteten vier Ingenieure und 12 Layouter gleichzeitig an dem Chip. Der 8086 benötigte etwas mehr als zwei Jahre von der Idee bis zum funktionierenden Produkt, was für einen komplexen Entwurf in den Jahren 1976-1978 als ziemlich schnell galt. Es ging auf jeden Fall wesentlich schneller voran als das 432-Projekt, welches erst 1981 auf den Markt kam und bereits 1985 vom Markt genommen wurde.

Die iAPX 432-Probleme

Wie erwähnt, sollte der 8086 nur ein Ersatz oder eine Zwischenlösung sein, doch das grandiose Design des iAPX 432 hatte auch Nachteile. Einige der innovativen Merkmale waren der guten Leistung abträglich. In vielen Fällen hatte der iAPX 432 einen deutlich langsameren Befehlsdurchsatz als herkömmliche Mikroprozessoren dieser Zeit, wie der National Semiconductor 32016, Motorola 68010 und Intel 80286. Ein Problem bestand darin, dass die Zwei-Chip-Implementierung des GDP ihn auf die Geschwindigkeit der elektrischen Verkabelung des Motherboards beschränkte. Ein größeres Problem war, dass die Fähigkeitsarchitektur große assoziative Caches benötigte, um effizient zu arbeiten, aber die Chips hatten dafür keinen Platz mehr.

Der Befehlssatz verwendete außerdem bitorientierte Befehle variabler Länge anstelle der üblichen halbfesten byte- oder wortorientierten Formate, die in den meisten Computerdesigns verwendet werden. Die Befehlsdekodierung war daher komplexer als bei anderen Designs. Dies beeinträchtigte zwar nicht die Leistung an sich, erforderte aber zusätzliche Transistoren in einem Design, dem es bereits an Platz und Transistoren für Caches, breitere Busse und andere leistungsorientierte Funktionen mangelte. Darüber hinaus war die BIU für die Unterstützung fehlertoleranter Systeme konzipiert, so dass bis zu 40 % der Buszeit in Wartezuständen verbracht wurden.

iAPX 432
iAPX 432 (Foto: Wikipedia)

Ein weiteres großes Problem war der unausgereifte und nicht abgestimmte Ada-Compiler. Er verwendete in jedem Fall kostenintensive objektorientierte Befehle statt der schnelleren skalaren Befehle, wo dies sinnvoll gewesen wäre. Der iAPX 432 enthielt zum Beispiel eine sehr teure Prozeduraufrufanweisung zwischen Modulen, die der Compiler für alle Aufrufe verwendete, obwohl es viel schnellere Verzweigungs- und Verknüpfungsanweisungen gab.

Ein weiterer sehr langsamer Aufruf war enter_environment, der den Speicherschutz einrichtete. Der Compiler führte dies für jede einzelne Variable im System aus, selbst wenn die Variablen innerhalb einer bestehenden Umgebung verwendet wurden und nicht überprüft werden mussten.

Erschwerend kam hinzu, dass Daten, die an und von Prozeduren übergeben wurden, immer per Value-Return und nicht per Referenz übergeben wurden. Bei der Durchführung des Dhrystone-Benchmarks dauerte die Parameterübergabe zehnmal länger als alle anderen Berechnungen zusammen.

Der New York Times zufolge „lief der i432 5 bis 10 Mal langsamer als sein Konkurrent, der Motorola 68000“. Der Prozessor war somit zwar eine sehr gute, fortschrittliche Idee, ließ sich aber zu jener Zeit nicht praxistauglich realisieren, ganz im Gegensatz zum 8086 und seinen Nachfolgern.

Logik und Transistoren

Der 8086 wurde mit einer Mischung aus Zufallslogik und Mikrocode sequenziert und mit einem nMOS-Schaltkreis mit Verarmungslast und etwa 20.000 aktiven Transistoren (29.000, wenn man alle ROM- und PLA-Seiten mitzählt) implementiert. Er wurde bald auf ein neues, verfeinertes nMOS-Herstellungsverfahren namens HMOS (für High Performance MOS) umgestellt, das Intel ursprünglich für die Herstellung schneller statischer RAM-Produkte entwickelt hatte. Es folgten HMOS-II- und HMOS-III-Versionen und schließlich eine vollständig statische CMOS-Version für batteriebetriebene Geräte, die mit Intels CHMOS-Verfahren hergestellt wurde. Der ursprüngliche Chip hatte eine Fläche von 33 mm² und eine minimale Strukturgröße von 3,2 μm. Der Prozessor schaffte eine Taktfrequenz zwischen 5 und 10 MHz.

Die Architektur wurde von Stephen P. Morse definiert, wobei Bruce Ravenel (der Architekt des 8087) bei der Verfeinerung der endgültigen Überarbeitungen half. Die Logikdesigner Jim McKevitt und John Bayliss waren die leitenden Ingenieure des Entwicklungsteams auf Hardware-Ebene und Bill Pohlman der Manager des Projekts.

Nicht perfekt, aber gut genug!

Der 8086 war weder konkurrenzlos noch perfekt. Während andere Prozessoren einen Adressraum von 16 MB ansprechen konnten, war der 8086 auf einen Megabyte limitiert. Das spielte aber in den 1970er Jahren keine große Rolle. Selbst die 64 Kilobyte-Version des IBM-PCs (mit dem 8088-Prozessor) galt als ein Computer mit viel Arbeitsspeicher.

Problematischer war die geringe Anzahl von Registern, was zusammen mit dem Befehlssatz dazu führte, dass viele Berechnungen im Arbeitsspeicher zwischengespeichert werden mussten, statt sie am Stück durchzuführen. Dies führte dazu, dass solche Berechnungen deutlich langsamer waren als bei anderen Prozessoren.

Aufgrund der Abwärtskompatibilität zog sich das Register-Konzept bis in die 64-Bit-Ära durch.

Erfolge

Ein Großteil des Erfolges lag weder an der Technologie, noch am Preis. Viel mehr lag es an der ein Jahr später veröffentlichten, abgespeckten Version, dem 8088. Dieser 8-Bit Prozessor wurde von IBM als CPU für den ersten IBM-PC auserkoren. Da der Großkonzern nun die Marschroute im Markt angab, setzten Nachfolgemodelle ebenfalls auf Intel-Prozessoren.

Auf den 8086 folgte 1982 der 80286. Er war natürlich kompatibel zum Vorgänger, führte aber u. a. den Protected Mode ein.

Nur drei Jahre später, 1985, brachte Intel den 80386 (auch i386 genannt) auf den Markt und führte damit einen abwärtskompatiblen 32-Bit-Prozessor ein. Das ist bemerkenswert, weil der neue Prozessor immer noch in der Lage war, die alten 8-Bit-Befehle auszuführen.

1989 kam der 80486 (i486) und 1993 der Pentium (beides 32-Bit) auf den Markt. Bis dahin waren die Schlachten der Systeme (Motorola oder Intel bzw. PC, Amiga oder Atari) längst entschieden.

Intels Anteil beistand daraus, dass sie lieferten. Gute Technologie zu einem bezahlbaren Preis, die stets kompatibel zu Vorgängern war. Nachdem IBM die Felle auf dem PC-Markt weggeschwommen waren, kristallisierte sich nun „Wintel“ heraus. Dabei handelt es sich um PCs, die aus einem Intel-Prozessor und Windows als Betriebssystem bestanden.

Pentium Divisionsfehler

Dies ist ein Hardware-Fehler, der die Gleitkommaeinheit (FPU) der frühen Intel Pentium-Prozessoren betrifft. Aufgrund dieses Fehlers lieferte der Prozessor bei der Division bestimmter Paare hochpräziser Zahlen falsche binäre Fließkommaergebnisse. Der Fehler wurde 1994 von Thomas R. Nicely, einem Mathematikprofessor am Lynchburg College, entdeckt. Fehlende Werte in einer Nachschlagetabelle, die vom Fließkomma-Divisionsalgorithmus der FPU verwendet wurde, führten dazu, dass die Berechnungen kleine Fehler erhielten. Während diese Fehler in den meisten Anwendungsfällen nur selten auftreten und zu kleinen Abweichungen von den korrekten Ausgabewerten führen würden, können die Fehler unter bestimmten Umständen häufig auftreten und zu größeren Abweichungen führen.

Intel Pentium
66 MHz Intel Pentium (Foto: Wikipedia)

Der Schweregrad des Fehlers ist umstritten. Obwohl er bei den meisten Benutzern nur selten auftritt, wurden sowohl der Fehler als auch Intels anfänglicher Umgang mit der Angelegenheit von der technischen Gemeinschaft heftig kritisiert. Das Magazin Byte schätzte, dass 1 von 9 Milliarden Fließkommadivisionen mit zufälligen Parametern zu ungenauen Ergebnissen führt.

Im Dezember 1994 rief Intel die fehlerhaften Prozessoren zurück, was der erste vollständige Rückruf eines Computerchips war. In seinem Jahresbericht 1994 erklärte Intel, dass es „eine Belastung von 475 Millionen Dollar vor Steuern […] für den Austausch und die Abschreibung dieser Mikroprozessoren“ zu tragen habe. Zum Hardware-Schaden kam natürlich ein großer Imageschaden hinzu. Gefühlt die ganze Computerwelt machte sich damals über Intel lustig, was in Deutschland u. a. in heiteren Sketchen des Magazins PC Player mündete (Multimedia-Leserbriefe).

Konkurrenz

Erfolg zieht immer Nachahmer und Konkurrenten an. So gab es einige Hersteller, die x86-Prozessoren in Lizenz nachbauten, etwa Siemens. Andere taten dies ebenfalls, versuchten aber auch Eigen- und Weiterentwicklungen einfließen zu lassen, so etwa AMD und Cyrix.

Wieder andere setzten auf eine eigene Architektur, etwa Texas Instruments (wobei sie auch x86 produzierten), Motorola, Zilog (Z80), MOS-Technology und viele weitere.

Nachdem Apple zunächst auf Motorola und später auf IBM-Prozessoren setzte, nutzten sie seit Januar 2006 ebenfalls Intel-CPUs. Im Mac-mini ist ein x86-Prozessor verbaut und der iMac nennt einen Core-i-Mikroprozessor sein Eigen.

Doch der Elektronikmarkt hat sich in den letzten 25 Jahren sehr verändert und Intel dominiert nicht mehr so stark den Markt wie einst. Während die x86-Familie weiterhin den klassischen PC-Markt beherrscht, spielen sie auf dem Markt der Mobilgeräte, Einplatinenrechnern und Spezialanwendungen keine oder nur eine untergeordnete Rolle. Hier hat der Konzern einiges verschlafen und ist derzeit auf Lizenzen von ARM-Prozessoren angewiesen, die bspw. in den XScale-Prozessoren mündeten.

Links

1: Von Adam bis Zuse
2: Die drei großen Buchstaben
3: Kalifornien und Texas erobern die Welt
4: Gleiche Geschwindigkeit bei doppelter Bit-Zahl
5: Die Billig-CPU
6: Computer für die Massen
7: Der Zukunftsprozessor
8: Die Legende des Außerirdischen
9: Eine Freundin für den Geek
10: Siegeszug der 8086er

Hat Dir dieser Artikel gefallen? Dann würden wir uns sehr über Unterstützung freuen.

Sven Gramatke
Sven Gramatke//www.gravitationart.com/
Schreibt gelegentlich Artikel. Schwerpunkte sind Gamedesign, Programmierung (GML, PHP und JS), Retro und Berichte.
Abonnieren
Benachrichtige mich bei
guest

0 Comments
Inline Feedbacks
View all comments

Neueste Kommentare

NEWS

PDF

Artikel als PDF

0
Alle ByteGame-Artikel können nun bequem als PDF-Datei heruntergeladen werden. Diese Funktion wurde eingebaut, um vor allem längere Texte ausdrucken oder zumindest offline lesen zu...
Revision 2022

Revision 2022 – Eine Satellitenveranstaltung

0
Wer zu Ostern noch nichts vor hat, sollte über einen Besuch der Revision nachdenken. Diese Demoszene-Party startet am Karfreitag, den 15. April und endet...
news logo 696x400

Revorix Update 1.9

1
Revorix hat ein neues Update bekommen: Patch 1.9 Hauptfeature sind Ressourcen-Events mit der Möglichkeit wechselnde Ressourcen spenden zu können gegen noch zu enthüllende Überraschungen. Außerdem...
news logo 696x400

Godot 3.4.2 veröffentlicht

0
Kurz nach Version 3.4.1 wurde schon 3.4.2 der Spieleengine veröffentlicht. Grund für das schnelle Update war ein Fehler. Bein Rendering unter macOS konnte es...
news logo 696x400

CRYENGINE 5.7 Roadmap enthüllt

0
Nach langer Wartezeit wurde nun die Roadmap für die CRYENGINE 5.7 enthüllt. Crytek räumt dabei interne Schwierigkeiten ein. Intern sind wir bei der Entwicklung auf...
0
Would love your thoughts, please comment.x