Bernd Leitenbergers Blog

Intel-Prozessoren, bei denen es anders lief als geplant

Nach Intels Flops die ich gestern vorgestellt habe, heute ein weiterer Beitrag zu dem Thema. Diesmal geht es um Prozessoren / Architekturen bei denen die Geschichte anders lief, als von Intel geplant, auch wenn man in den meisten Fällen nicht von einem kommerziellen Fehlschlag sprechen kann.

Intel 8086

Wie schon geschrieben ging Intel nach dem 8080 gleich den nächsten Prozessor an, diesmal gleich ein großer Wurf, der 8800, später in iAPX 432 umbenannt. Sehr bald zeigte sich das die Entwicklung Jahre dauern würde und bis dahin konnte die Konkurrenz natürlich ihre eigenen Prozessoren auf den Markt bringen. So entschloss man sich doch noch einen 16 Bit Prozessor dazwischenzuschieben als „Lückenbüßer“. Man fragte die Kunden und die wollten vor allem Kontinuität, das bedeutet ihre existierende 8080-Software musste leicht an den neuen Prozessor anpassbar sein. Da man auch in Zeitnot war, schließlich hatte man sich zuerst auf den 8800 konzentriert, fällte Intel die Entscheidung, das der neue Prozessor 8086 im Prinzip eine 16 Bit Version des 8080 sein sollte. Er hatte dieselbe Zahl an Allzweckregistern, verwendete wie dieser die Zweiadressadressierung, sodass das AX Register immer das Ziel von Rechenoperationen war, sogar alle 8080 Befehle waren als Untermenge vorhanden. Ein Programm konnte maschinell Assemblercode des 8080 in Binärcode des 8086 übersetzen.

Der Ansatz der Kompatibilität ist ja gut, aber Intel setzte einige Hindernisse, die nicht nötig waren. Da die Register nur 16 Bits breit waren, konnte der Prozessor auch nur 64 KB direkt adressieren – zu wenig für einen 16 Bitter. Um einen größeren Adressraum zu bekommen, addierte man den um 4 Bits verschobenen Wert eines Segmentregisters bei der Adressierung und konnte so die 64 KB wie Fenster in einem 1 MB großen Adressraum verschieben. Wer in PC-Zeiten mal unter DOS programmiert hat, kennt die Folgen: Datenstrukturen wie Arrays waren so auf 64 KByte beschränkt, außer man legte sie dynamisch zur Laufzeit an, globale Daten ebenfalls auf 64 KB. Das war umständlich und das machten die Konkurrenten besser.

Zum Verhängnis sollte werden, das IBM den Prozessor wählte und sich ihr IBM PC zum Industriestandard durchsetzte. Das bedeutete, das alle folgenden Prozessoren die Eigenschaften des 8086 zumindest als Untermenge besitzen mussten inklusive seiner Mängel wie dem berühmt-berüchtigten A20 Gate. Intel konnte die Architektur nie mehr reformieren.

Meine Meinung zum 8086 hat sich durch das Schreiben meiner Hardwareartikel gebessert. In den Achtzigern empfand ich ihn als „schrottig“. Mein Liebling war der MC68000 – volle 16 MB unsegmentierter Adressraum, viele Register, intern 32 Bits lang, nur im Bus auf 24 Bits beschränkt. Der steckte im Macintosh, Sun Workstations. Nimmt man reale Benchmarks, so war der 8086 aber nur etwa 20 Prozent langsamer als ein 68000, den schlechten Ruf hatte er dadurch das nicht er im IBM PC steckte, sondern der 8088, der um 40 Prozent langsamer war und der wiederum nur mit 4,77 MHz getaktet, obwohl es den 8086 damals schon mit 8 MHz gab, was die Geschwindigkeit drastisch reduzierte.

80186

Der 8086 war wie sein Vorgänger auf einen externen Taktgenerator angewiesen. So schob Intel wie beim 8080 ein verbessertes Modell nach. 1982 erschien der 80186, als Nachfolger des 8086. Er integrierte den Taktgenerator, aber auch andere Bausteine, die man häufig brauchte, wie Interruptcontroller, DMA-Steuerung, Zeitgeber und Refresherzeugung für DRAM. Der 80186 wurde relativ wenig eingesetzt. Zum einen, weil nicht alle diese Bausteine in einem PC benötigt wurden, dagegen eher bei einem Mikrocontroller nützlich waren. Zum Zweiten, weil wenige Monate später das noch leistungsfähigere Nachfolgemodell 80286 erschien, das Basis für die nächste Generation von PCs wurde. Der 80186 wurde aber noch lange als Embedded Prozessor von Intel produziert, erheblich länger als der 8086.

80286

Mit dem 80286 wollte Intel nun zu Motorola aufschließen, wenn nicht überholen. Er musste aber kompatibel zum 8086 sein. Die Lösung war leider eine schlechte. Der 80286 hatte nun auch 16 MB Speicher, dazu gab es Mechanismen, mit denen er das Betriebssystem über Fehler informieren konnte. Beim Anlegen der Spannung tat er aber, als wäre er ein 8086. Die neuen Features bekam man erst zu sehen, wenn man mit einem Befehl in den neuen „Protected Mode“ wechselte. Soweit so gut. Leider war das eine Einbahnstraße. Man konnte dann nicht mehr in den 8086-Modus, nun Real Modus genannt, wechseln. Intel dachte sich wohl „warum auch, hat man doch in dem Modus viel mehr Möglichkeiten“. Sie vergaßen, dass Softwareentwickler ohne Betriebssystem das im Proteced Mode arbeitete, im Real Mode entwickelten. So war das Austesten von Programmen schwierig. Interessanterweise kümmerte das die meisten Benutzer des 80286, z.B. in einem IBM AT nicht. Sie nutzten ihn einfach als schnellen 80286 unter DOS. Unter DOS wirkte sich vielmehr mit der Dauer aus, das auch der Arbeitsspeicher im Real Mode auf 1 MB beschränkt war, die PC aber in der zweiten Hälfte der Achtziger zunehmen mehr als 1 MB Speicher hatten. Ich denke das die Entwicklung von OS/2 so lange dauerte, liegt mit daran. In jedem Falle ist bekannt das Bill Gates die Entwicklung von Windows nach Version 2 einstellen wollte, weil die Programmentwicklung für den 80286 so umständlich war. Nur durch Zufall entdeckte einer der Entwickler einen Debugger für den Protected Mode, der auch im Real Mode funktionierte und mit dem man nun endlich schneller vorwärts kam.

Intel lernte daraus und implementierte im Nachfolgeprozessor 386 einen „virtuellen“ 8086-Modus in dem der Prozessor beliebig viele 8086 Programm jedes in einem eigenen Adressraum ausführen konnte, was dann auch der Erfolg für Windows 3 war, denn so konnte es DOS-Programme ausführen, ohne bei deren Fehlern selbst abzustürzen.

Pentium Pro

Der Pentium Pro ist in dieser Rubrik ein Sonderfall. Er ist quasi das Gegenteil zum 8086/80286. Während diese trotz Mängel in der Architektur erfolgreich waren, hat der Pentium Pro die Grundlagen für die noch heute geltende Architektur gelegt und war nicht erfolgreich.

Intel hatte seit dem 8086 die Architektur immer mehr erweitert aber auch schneller gemacht. Der 486 konnte schon 80 Prozent der Befehle in einem Takt ausführen – der 8086 benötigte im Durchschnitt 10 Takte für einen Befehl. Der Pentium war als erster Prozessor superkalar, das heißt er hatte mehr Funktionseinheiten als ein Befehl überhaupt beschäftigen kann. So konnte er im Idealfall zwei befehle gleichzeitig ausführen.

Beim Pentium Pro zog man einen Schlussstrich um die x86 Architektur. Es gab zwei grundlegende Neuerungen. Die erste war das der Pentium keine x86 Befehle verarbeitete, sondern intern ein RISC Prozessor war. Der Dekoder übersetzte die x86 Befehle zuerst in mehrere einfache Risc Befehle, „Mikroops“ genannt. Die wurden dann von dem Prozessor ausgeführt. Dabei konnte der Pentium Pro die Befehle umgruppieren und so vorziehen, um die Funktionseinheiten voll auszulasten. Das nennt man „Out of Order Execution“ und es macht einen Prozessor komplex, denn er muss Abhängigkeiten erkennen, Sprünge vorhersagen, weil sonst die ganze Optimierung keinen Sinn macht. Aber es bringt einen enormen Geschwindigkeitsgewinn.

Zum Verhängnis wurden dem Pentium Pro zwei Dinge. Der hausgemachte Fehler war, das man um die Performance zu steigern, den großen L2-Cache auf einem zweiten CPU-Die untergebracht hatte, anstatt (wie bisher) in separaten Chips auf dem Mainboard. Beide Dies mussten fehlerfrei sein und das senkte die Produktionsausbeuten ab und machte den Chip teuer. Zudem ließ der so mit vollem Prozessortakt angebundene Cache nicht eine so große Steigerung des Maximaltaktes wie bei den Vorgängern zu.

Den zweiten Punkt hatte Microsoft zu verantworten. Der Pentium Pro erschien zusammen mit Windows 95, das von Microsoft als „32 Bit Betriebssystem“ beworben wurde. Intel betrachtete den 8086 Code, den 16 Bit Code von DOS, als veraltetet und zum Aussterben verurteilt und der Prozessor konnte so die 32 Bit Befehle, die es ab dem 80386 gab, schnell ausführen, nicht aber die alten 16 Bit Befehle. In Benchmarks zeigte sich aber bald, dass unter Windows 95 der teure Pentium Pro langsamer als ein niedrig getakteter viel preiswerter Pentium war. Denn nur die Oberfläche, also das was der Anwender sieht, war in Windows 95 neu und 32 Bittig. Alles darunter, das eigentliche Betriebssystem war noch 16-bittiger Code.

Der Pentium Pro wurde so erfolgreich in Servern und Workstations vermarktet, wo es echte 32 Bit Betriebssysteme gab. Mit ihm gab es auch erstmals einen Rechner mit Intel Prozessoren der die Top 500 Liste der schnellsten Computer anführte, aber im PC-Markt war er ein Flop. Intel lernte daraus, und trennte beim Nachfolger Pentium II den Cache wieder vom Prozessor und baute beides zusammen auf ein CPU-Modul.

Pentium 4

Den letzten Architekturwechsel machte Intel beim Pentium 4. Die beiden Nachfolger des Pentium Pro (Pentium II/III) übernahmen seine Architektur, fügten weitere Funktionseinheiten zu, optimierten sie. Für die neue Netburst Architektur des Pentium 4 setzte Intel auf ein anderes Konzept. Anstatt vielen Funktioneinheiten gab es wenige. Dafür hatte der Prozessor eine extrem lange Pipeline, machte pro Takt also wenig, brauchte vergleichsweise viele Takte um einen Befehl zu dekodieren. Doch das machte nichts – es wurde pro Takt ja ein neuer Befehl in die Pipeline geschoben. Diese Pipeline war auf hohe Taktfrequenz optimiert und in der Tat gelang es Intel den anfänglichen Takt innerhalb von zwei Jahren von 1,2 auf 3 GHz zu steigern. Nur – danach ging es nicht mehr weiter. In den nächsten zwei Jahren stieg er nur noch auf 3,83 GHz, mehr wurde nicht erreicht. Die Ursache waren Leckströme die bei jedem Takt entstehen. Je höher der Takt war, desto mehr Abwärme produziert der Prozessor, die Kühler wurden immer größer und als der Prozessor auf 1 cm² Fläche 125 Watt abgab (eine Herdplatte gibt pro Flächeneinheit erheblich weniger Leistung ab) war die Grenze der Kühlsysteme erreicht. Zeitgleich hatte AMD den Athlon auf dem Markt, mit einer Architektur die sich mehr am Pentium Pro orientierte – mehr Funktionseinheiten aber niedriger Takt und die Athlons waren schneller als der Pentium 4.

Intel zog die Reisleine und lies eine neue Architektur designen, nun auf geringe Verlustleistung getrimmt. Basis war der Pentium M, ein Mobilprozesor für Laptops den das israelische Designbüro von Intel entwickelt hatte und der wiederum auf dem Pentium Pro Design basierte. Die neue Architektur hieß „Core Mikroarchitektur“, hatte erheblich niedrigen Takt von maximal 2 GHz, war durch mehr Parallelität trotzdem schneller. Damit überholte Intel wieder AMD, die nach einigen Jahren ihren Athlon auch kaum noch in der Leistung steigern konnte. Die Architektur ist bis heute aktuell und wurde seitdem vor allem erweitert.

Die mobile Version verlassen