Die x86‑Linie besteht jetzt seit nahezu fünfzig Jahren, und sie lebt immer noch. Das ist außergewöhnlich. Alle Prozessorlinien, die es zur selben Zeit gab, wurden längst eingestellt oder spielen nur noch in Nischenanwendungen eine Rolle (die Z80‑Linie lebt noch genauso wie die 6502‑Linie). Motorola hat sogar zwei Konkurrenzlinien eingestellt – erst die MC68K‑Linie und dann die Power‑PC‑Linie, die gemeinsam mit Apple und IBM entwickelt wurde (IBM hält noch an dem Power PC fest, aber die Prozessoren werden nur noch in eigenen Großcomputern verbaut).
Ich habe mir überlegt, welche Prozessoren in der ganzen Zeit herausragend waren und welche nicht. Da ich nicht zehn jeder Sorte zusammenbekam, teile ich diese Folge in zwei Teile auf – die fünf schlechtesten und die fünf besten x86‑Prozessoren, wobei ich, weil der 8086 vom 8080 abstammt und dieser wiederum ein Nachfolger des 8008 war, bei diesem anfange.
Intel arbeitete schon damals mit einer Strategie, die seit zwanzig Jahren „Tick‑Tock“ heißt: Sie führen in einem Schritt deutliche Architekturverbesserungen ein und in einem zweiten Schritt verbessern sie diese, lange Zeit immer verbunden mit einem Wechsel der Lithografiemethode zu kleineren Maßstäben. Nach dem ersten Prozessor 4004 folgte der verbesserte 4040, auf den 8008 als ersten 8-Bit-Prozessor der verbesserte 8080, auf den 8086 dann der 80186. Danach wurde das System aufgegeben bis zur Einführung der Core-Architektur.
Also zuerst die fünf schlechtesten Prozessoren, die Reihenfolge ist chronologisch.
Intel 8008
Wie der Intel 4004 war auch der 8008 eine Auftragsarbeit. Die Firma CTC benötigte für ein Bildschirmterminal einen 8‑Bit‑Prozessor. Ein Terminal sieht aus wie ein Heimcomputer oder PC, hat aber nur die Aufgabe, die Eingaben und Ausgaben auf einem Monitor auszugeben. Die Eingaben über die Tastatur schickt das Terminal über eine Telefonleitung zu einem Großrechner, und dessen Ergebnisse gibt es aus. Intel konstruierte einen Prozessor für diese Aufgabe, aber der Auftrag wurde dann gestrichen.
Der 8008 war ein echt schlechter Prozessor. Das lag an mehreren Punkten:
- Intel hatte das Vier‑Bit‑Design des 4004, der wenige Monate vorher erschien, einfach auf Acht Bit aufgeblasen. So fehlten viele Befehle, die man für eine universelle Programmierung brauchte, weil der Prozessor ja nur Zeichen ein‑ und ausgeben sollte. Der Stack war zum Beispiel intern und nur acht Adressen breit, ebenso gab es nur acht Ausgabeports, die fest lagen.
- Das Gehäuse hatte nur achtzehn Pins – viel zu wenig. Alleine für alle Adressleitungen und Datenleitungen hätte man vierundzwanzig Pins benötigt. So waren die Datenleitungen gemultiplext, also hatten je nach angelegten Steuersignalen unterschiedliche Bedeutung als Daten‑ oder Adressleitungen.
- Dazu kam, dass der Takt sehr niedrig war – er betrug nur 0,5 MHz. Es gab Bemühungen, ein Computersystem auf Basis des 8008 zu konstruieren, aber das war aufwendig, und trotzdem war es sehr langsam. Der Chip erreichte nur 0,05 MIPS.
8085
Der 8085 war ein kleines Upgrade zum 8080. Der 8080 war eigentlich kein kompletter Mikroprozessor. Er benötigte mindestens zwei Zusatzbausteine: den Taktgenerator 8224, da er einen komplexen Takt hatte, den ein einfacher Quarzkristall nicht erzeugen konnte, und den Buskontroller 8228 für die Kontrolle des Busses, da Steuerbus und Datenbus gemultiplext waren. Daneben brauchte der 8080 drei Versorgungsspannungen. Zudem konnte der 8080 nicht die Refreshsignale für dynamische RAM generieren. Diese Mankos wurden beim 8085 beseitigt, zudem führte der 8085 neue Interruptmodi ein, die es erstmals erlaubten, einen Interrupt nicht zuzulassen und zu maskieren, also festzustellen, welche Quelle ihn ausgelöst hat.
Der 8085 war ein Update des 8080, so wie es auch andere Prozessoren hatten. So waren der MC6802 und der 6809 Updates des Motorola 6800, und auch beim 6502 gab es weiterentwickelte Versionen. Der 8085 wäre wohl erfolgreich gewesen, wenn nicht drei Monate nach seiner Markteinführung der Z80 erschienen wäre.
Der Z80 bot die gleichen Verbesserungen, erzeugte zudem die Refreshsignale für dynamische RAM – das konnte auch der 8085 noch nicht. Vor allem aber hatte Zilog den Befehlssatz enorm erweitert. Es gab einen zweiten Registersatz, zwei weitere Indexregister und viele neue Befehle. Daneben wurden die beiden Register BC und DE auch zu vollwertigen Sechzehn‑Bit‑Registern; beim 8080 war nur das HL‑Register als Sechzehn‑Bit‑Register vorgesehen. Im Vergleich zum Z80 war der 8085 einfach unterlegen. Das Rennen war praktisch von Anfang an entschieden.
Ich habe ja erst die Zeit ab 1982 miterlebt, der 8085 erschien schon 1976. Aber ich habe die alten Ausgaben von „Byte“, das 1975 erstmals erschien, durchgesehen, und da findet man ab Ende 1976 die ersten Anzeigen mit Computern auf Basis des Z80, aber nirgendwo eine Erwähnung des 8085.
8086
Ja, was Bernd, den Urvater der x86‑Linie, führst du bei den schlechten Prozessoren auf – das geht doch nicht! Doch, denn wenn man es technisch betrachtet, ist es ein beschissener Prozessor. Dazu muss ich aber die Geschichte bemühen. Intel hatte Lehren aus dem Verlust der Marktdominanz des 8080 gezogen und plante einen großen Wurf. Sie wollten gar nicht erst in eine Konkurrenz im 16‑Bit‑Markt einsteigen und gleich einen 32‑Bit‑Prozessor designen. Doch dieser Sprung erwies sich als ein großer Schritt, und es war schon bald nach Projektbeginn klar, dass dieser Prozessor erst in einigen Jahren fertig sein würde.
Dann bekam Intel aber doch Angst, die Konkurrenz würde vorher mit ihren 16‑Bittern Standards setzen. Es erschienen 1979 drei Sechzehn‑Bit‑Prozessoren der Konkurrenz: der National NS16032, der Zilog Z8000 und der Motorola 68000. Also galt es, schnell einen „Lückenfüller“ auf den Markt zu bringen. Um die Kunden bei der Stange zu halten, entschied man sich für eine fatale Architektur: Man übernahm die interne Architektur des 8080 und erweiterte sie. So gab es dieselben Register mit Spezialaufgaben, 8‑Bit‑weise adressierbar über High‑ und Low‑Byte. Die Kompatibilität ging so weit, dass ein Programm ein 8080‑Assemblerprogramm in 8086‑Maschinencode übersetzen konnte. Das verkaufte man als Vorteil: Ihr kompiliert eure alten Programme neu, und sie laufen auf dem neuen Sechzehn‑Bit‑Prozessor! Die ersten Anwendungen für DOS waren solche Cross‑Compile‑Programme, allerdings mit enormen Nachteilen, meist unnötig langsam, denn die neuen Befehle des 8086, zum Beispiel für Hardware‑Multiplikation und Division, wurden nicht genutzt. Vor allem aber nahmen die 16‑Bit‑Register eben nur 16‑Bit‑breite Adressen auf, und so war der Adressbereich auf 64 KB beschränkt.
Intel merkte, dass dies zu wenig war. Die Konkurrenz bot einen linear adressierbaren Adressbereich von 8 bis 16 MB an. Das Einfachste wäre es gewesen, jedes Register auf 24 Bit zu erweitern. Doch das tat man nicht. Stattdessen führte man Segmentregister ein. Diese wurden aber nicht einfach auf die obersten Bits des Adressbusses gelegt, sondern kompliziert mit der Adresse in den Sechzehn‑Bit‑Registern verrechnet.
So waren nur ein MB adressierbar – das erschien bei der Markteinführung 1978 genug. Aber das war nicht das Hauptmanko. Das Manko war, dass alle Strukturen auf maximal 64 KB beschränkt waren. Für Code war das meist kein Problem, weil ein einzelnes Unterprogramm nie größer als 64 KB war, aber ein Array, das zum Beispiel den Text aufnimmt, war eben auch auf 64 KB beschränkt. Diese Grenzen gab es in Anwendungen noch ziemlich lange. Der Editor von Windows (notepad.exe) konnte zum Beispiel bis Windows ME nur maximal 64 KB große Texte verarbeiten. Und zu Zeiten von Windows ME hatten Rechner schon typisch 64 MB Speicher …
Der Intel 8086 wäre wohl längst vergessen worden wie andere verkorkste Designs, zum Beispiel der erste 16‑Bit‑Prozessor TMS9900, wäre nicht IBM 1980 auf der Suche nach einem Prozessor für ihren IBM PC gewesen. Für IBM war der Prozessor nämlich ideal. Der IBM PC sollte besser als die eingeführten Acht‑Bitter sein, also musste er einen Sechzehn‑Bit‑Prozessor haben, aber er sollte nicht den größeren Rechnern von IBM Konkurrenz machen. Der Motorola MC68000, der auch evaluiert wurde, spielte zum Beispiel in dieser Liga; die ersten Workstations von Sun und SGI nutzten den Motorola‑Prozessor. Damit der PC auch ja nicht zu schnell war, beschränkte man den Takt auf 4,77 MHz (Normaltakt: 8 MHz) und setzte die Version 8088 mit Acht‑Bit‑Datenbus ein, die vierzig Prozent langsamer war. Kaum zu glauben, dass diese Krücke den Standard für die folgenden Jahrzehnte setzen sollte.
Der 32 Bit Nachfolger, angekündigt als Intel 8800, dann erschienen unter dem Namen iAPX 432, erwies sich übrigens als absolute Flop.
Pentium Pro
Der Pentium Pro ist ein Beispiel dafür, wie ein gutes Design auch ein echter Flop sein kann. Der Pentium war der erste superskalare Prozessor von Intel, also ein Prozessor, der mehr als einen Befehl zu einem Zeitpunkt ausführen kann. Intel bemerkte, dass der CISC‑Befehlssatz, der seit dem 8086 immer wieder erweitert wurde, sich für eine weitere Parallelisierung nicht eignete. Die Befehle waren zu komplex, es gab zu viele Abhängigkeiten.
Intel brach bei diesem Prozessor mit dem alten Befehlssatz, aber nicht, indem sie ihn abschafften oder durch einen neuen, besser zu verarbeitenden Befehlssatz ersetzten. Sie bauten in den Prozessor eine Übersetzungseinheit ein. Diese zerlegte die x86‑Anweisungen in mehrere, elementare und schneller ausführbare RISC‑Operationen, die Mikro‑Ops genannt wurden. Diese waren viel besser parallelisierbar als die alten CISC‑Anweisungen. Bis heute ist das so geblieben.
Mit diesem Prozessor mischte Intel auch erstmals im Geschäft bei den Supercomputern mit, und Rechner mit dem Pentium Pro waren einige Jahre lang die schnellsten Rechner weltweit. Warum wurde er dann ein Flop? Nun, er verkaufte sich bei den PCs äußerst schlecht. Daran war eine Designentscheidung schuld. Schon seit dem 80386 waren die Prozessoren schneller als die RAM‑Bausteine. Caches puffern Daten und Code aus dem RAM ab. Caches sind sehr schnelle statische RAMs. Der Pentium Pro hatte einen besonders großen, schnellen Cache. Dieser passte nicht auf den Prozessor und war zusammen mit dem Prozessor auf einer Chipfassung untergebracht. Das verteuerte den Prozessor enorm, und noch schlimmer: Der Cache war auch der Teil, der die Geschwindigkeit begrenzte. Man konnte die Taktfrequenz nur langsam steigern.
Im PC‑Bereich war aber etwas anderes am Misserfolg schuld. Mit dem 80386 wurde aus dem 16‑bit‑Prozessor ein 32‑bit‑Prozessor. Das war 1985, der Pentium Pro erschien zehn Jahre später. Man könnte meinen, das wäre genug Zeit, die Software auf diese neue Architektur anzupassen. Schon damals lief auf den meisten Rechnern Windows. Microsoft brachte im selben Jahr Windows 95 heraus. Es wurde als 32‑bit‑Betriebssystem beworben, war intern aber nur ein 16‑bit‑Windows mit einer neuen Oberfläche.
Pentium 4
Auf den Pentium Pro folgten der Pentium II und der Pentium III, beides Architekturerweiterungen. Dann befand Intel, dass eine neue Architektur nötig war. Mittlerweile hatte sich auch die Marktsituation geändert. Als IBM den 8088 wählte, stellte IBM Bedingungen: Intel musste den Prozessor lizenzieren, so fertigten Firmen wie Harris, Siemens oder AMD den Prozessor in Lizenz. Intel wollte das nicht, musste es aber hinnehmen. Mit der sinkenden Marktmacht von IBM konnte IBM aber immer weniger Druck ausüben, und mit jeder Generation gab es weniger lizenzierte Fertiger. Beim 80486 gab es gar keine mehr, und AMD musste schon bei der 80386‑Generation vor Gericht erstreiten, dass sie ihren AMD‑386‑Prozessor verkaufen durften.
Danach musste AMD eigene Prozessoren designen und konnte nicht mehr die von Intel klonen. Lange Zeit hinkten sie Intel immer hinterher, das änderte sich mit der Einführung des Athlon. AMD hatte das Hardware‑Designteam des Alpha‑Prozessors von DEC gewonnen, als die Firma von Compaq geschluckt wurde. Der Athlon hatte mehr parallel arbeitende Einheiten als Intels Pentium II/III. Er war schneller als diese Prozessoren.
Intels Antwort war die Netburst‑Architektur des Pentium 4. Sie war auf eine hohe Taktfrequenz optimiert worden, dafür hatte der Pentium 4 weniger parallel arbeitende Einheiten als der Athlon. In Demos zeigte Intel mit flüssigem Stickstoff gekühlte Pentium‑4‑Prozessoren, die mit 10 GHz Takt arbeiteten. Und zuerst sah es auch gut aus: In nur einem Jahr stieg die Spitzentaktfrequenz des Pentium 4 von 1,4 auf 3 GHz. Dann war aber die Fahnenstange erreicht. Von nun an ging es nur noch in kleinen Schritten aufwärts, und bei 3,83 GHz war das Ende der Fahnenstange erreicht.
Die Netburst‑Architektur war mit einem immer stärkeren Anstieg der Abwärme verbunden. PC‑Lüfter wurden immer größer, und als sie ein gewisses Gewicht erreichten, war Schluss. Mehr Gewicht konnte die Platine nicht halten, die bei Desktop‑PCs ja senkrecht steht. Und Wasserkühlung, wie bei Servern, kam für die Allgemeinheit nicht in Frage. AMD überholte Intel mit dem Athlon nicht nur bei der Geschwindigkeit, AMD gewann auch immer mehr Marktanteile hinzu, bis Intel die Reißleine zog – dazu im nächsten Teil mehr.