Intel iAPX 432
aus Wikipedia, der freien Enzyklopädie
Der Intel iAPX 432 war Intels erster 32-Bit-Mikroprozessor. Er wurde 1981 als Set bestehend aus drei Integrierten Schaltkreisen eingeführt und sollte das grundlegende Intel-Design für die 1980er Jahre werden. Fortschrittliche Funktionen wie Präemptives Multitasking und das Speichermanagement waren in Hardware implementiert, daher nannte man das Design auch den "Micromainframe".
Die Datenstruktur-Unterstützung des Prozessors erlaubte es, moderne Betriebssysteme mit viel weniger Programmcode als bei gewöhnlichen CPUs zu implementieren - der 432 erledigte stattdessen einen Großteil der Arbeit intern in Hardware. Im Vergleich zu anderen Prozessoren war die Chipstruktur extrem komplex. Intels Ingenieuren gelang es mit der damaligen Halbleitertechnik nicht, das Konzept in eine effiziente Implementierung umzusetzen. Die CPU war sehr langsam und teuer, und Intels Pläne, die x86-Architektur durch die iAPX 432 zu ersetzen, endeten in einem wirtschaftlichen Desaster.
Die Abkürzung iAPX stand für intel Advanced Processor architecture, wobei das X vom griechischen Buchstaben Chi kam; aber wenn man APX auch Griechisch deutet, dann heißt das architecture.
Inhaltsverzeichnis |
[Bearbeiten] Geschichte
[Bearbeiten] Entwicklung
Das 432er-Projekt begann 1975 als i8800 und sollte sich in die existierenden Produktlinien 8008 und 8080 einreihen. Das Design war von Anfang an als reines 32-Bit-Design geplant. Es sollte wesentlich leistungsfähiger und komplexer als die bisherigen Intel-Prozessoren sein und lag noch weit jenseits der Fähigkeiten der damaligen Prozesstechnologie. Die CPU musste daher in mehrere Chips aufgeteilt werden.
Der Hauptprozessor (General Data Processor, GDP) bestand aus zwei Chips. Ein Chip (der 43201) holte und dekodierte die Instruktionen, der zweite (43202) führte sie aus. Optional stand mit dem 43203 Interface-Prozessor (IP) auch ein I/O-Controller zur Verfügung. Insgesamt bestand das Drei-Chip-Gespann aus 250000 Transistoren und war damit eines der umfangreichsten Designs seiner Zeit. So bestand beispielsweise der Motorola 68000 aus etwa 68000 Transistoren, davon ein Drittel für den Microcode.
1983 führte Intel zwei zusätzliche Chips für die iAPX 432 Interconnect Architecture ein, die 43204 Bus Interface Unit (BIU) und die 43205 Memory Control Unit (MCU). Mit ihnen wurden Multiprozessorsysteme mit bis zu 63 Knoten möglich.
[Bearbeiten] Die Fehler des Projekts
Mehrere Designeigenschaften sorgten dafür, dass der iAPX 432 viel langsamer war, als er hätte sein können. Die Zwei-Chip-Umsetzung des GDP begrenzte diesen auf die Geschwindigkeit der Verdrahtung auf dem Mainboard. Dies war allerdings weniger ein Problem. Weitaus ernster war der Mangel an Caches und Registern. Auch der Befehlssatz bremste die Leistung, weil anstatt der sonst üblichen, auf Wortgrenzen liegenden (word-aligned) Instruktionen fester Länge, auf Bit-Grenzen liegende (bit-aligned) Instruktionen variabler Länge verwendet wurden. Die Dekodierung der Instruktionen wurde dadurch komplex und langsam. Die BIU sollte fehlertolerante Systeme unterstützen, was einen merklichen Overhead auf dem Bus mit sich brachte. 40 Prozent der Zeit verbrachte der Bus mit Wartezyklen.
Untersuchungen nach Ende des Projekts ergaben, dass das größte Problem wohl im Compiler lag, der in allen Fällen allgemeine und langsame Befehle verwendete, statt einfache und schnelle Befehle zumindest da zu benutzen, wo dies sinnvoll gewesen wäre. Der iAPX 432 kannte beispielsweise einen sehr teuren intermodularen Prozeduraufrufsbefehl, den der Compiler für alle Aufrufe verwendete. Die viel schnelleren Sprungbefehle ignorierte er. Ein weiterer sehr langsamer Aufruf war enter_environment, mit dem der Speicherschutz eingerichtet wurde. Der Compiler rief ihn für jede einzelne Variable im System auf, obwohl die weitaus meisten in einem existierenden Environment liefen und nicht geprüft werden mussten. Um die Situation noch schlimmer zu machen, wurde grundsätzlich call by value und nicht call by reference verwendet, was in vielen Fällen riesige Speicherkopien erforderlich machte.
[Bearbeiten] Nachwirkungen
Aus dem Fehlschlag iAPX 432 wurde die Lehre gezogen, dass die Unterstützung von Objekten auf CPU-Ebene zu einem komplexen Design führt, das unweigerlich langsam läuft. Seit Erscheinen des iAPX 432 hat niemand mehr ein ähnliches Design auf die Beine gestellt. Tatsächlich sieht es aber so aus, als ob die Unterstützung von Objektorientierung überhaupt nicht das Problem war. Der iAPX 432 litt unter Problemen, die jedes Chip-Design langsam gemacht hätten.
Intel hatte große Mengen an Zeit und Geld in die Entwicklung und das Marketing des 432 investiert, hatte ein fähiges Team darauf angesetzt und zögerte, das Team nach diesem Fehlschlag einfach aufzugeben. Unter Führung des neuen Chefdesigners Glenford Myers sollte der Hauptprozessor neu entwickelt und dann im Rahmes eines Joint-Ventures mit Siemens gebaut werden. Aus diesem Projekt entstand später die CPU-Serie i960, die sich lange Zeit großer Beliebtheit im Embedded-Markt erfreute. 1990 gab das zuständige Team den i960 ab und begann mit der Entwicklung des bis in die heutigen Tage erfolgreichen P6-Kerns, der 1995 im Pentium Pro debütierte und auch heute noch – in weiterentwickelter Form – als Pentium M verkauft wird. Auch die Core 2 Mikroarchitektur, auf die Intel nach dem Fehltritt mit der Netburst-Architektur zurückkam, basiert auf dem P6-Kern.
[Bearbeiten] Siehe auch
Non-x86-Prozessoren: 4004 | 4040 | 8008 | 8080 | 8085 | iAPX 432 | i860 | i960 | Itanium | Itanium 2
Bis 4. Generation: 8086 | 8088 | 80186 | 80188 | 80286 | i386 | i486DX | i486DX2 | DX4 | i486GX | i486SL/SL-NM | i486SX | i486SX2
Pentium-Serie: Desktop: Pentium (MMX) | Pentium II | Pentium III | Pentium 4 | Pentium 4 XE | Pentium D | Pentium XE | Pentium Dual-Core
Mobil: Mobile Pentium 4 | Pentium M | Pentium Dual-Core Server: Pentium Pro
Celeron-Serie: Desktop: Celeron (P6) | Celeron (NetBurst) | Celeron D | Celeron (Core) | Celeron Dual-Core Mobil: Mobile Celeron | Celeron M
Core-Serie: Desktop: Core 2 Duo | Core 2 Quad | Core 2 Extreme Mobil: Core Solo | Core Duo | Core 2 Solo | Core 2 Duo | Core 2 Extreme
Xeon-Serie: Server: Xeon (P6) | Xeon (NetBurst) | Xeon (Core)