Zum Inhalt springen

Intel Itanium

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 3. Februar 2004 um 19:27 Uhr durch Kku (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Der Intel Itanium ist ein 64-bit-Mikroprozessor, der gemeinsam von Hewlett-Packard und Intel entwickelt wurde. Ziel bei der Entwicklung des Itanium war die Produktion einer hoch performanten Architektur der "Post-RISC-Ära" unter Verwendung eines abgewandelten VLIW-Designs. Der native Befehlssatz des Itanium ist IA-64, x86-Code kann in einem (sehr langsamen) Firmware-Emulationsmodus augeführt werden, außerdem bestehen "Hooks" zur erleichterten Migration von Prozessoren der PA-RISC-Familie.

Design

Ganz grundlegend ist das Itanium-Design ähnlich zu RISC. Das bedeutet, dass die Kernlogik aus einem kleinen Satz von Instruktionen besteht, die sehr schnell laufen können. Wie die meisten modernen CPUs ist auch der Itanium in mehrere parallele Funktionseinheiten aufgeteilt, d. h. er ist superskalar. Bei der Methode, wie die Instruktionen an die Funktionseinheiten weitergegeben werden, bricht der Itanium jedoch mit der RISC-Philosophie.

In einem traditionellen Design untersucht ein komplexes Decoder-System jede Instruktion, während sie die Pipeline durchläuft, und prüft, welche davon parallel auf unterschiedlichen Einheiten ausgeführt werden können. Eine Instruktionsfolge A = B + C und D = F + G beeinflusst sich z. B. nicht gegenseitig, und kann daher parallelisiert werden.

Die Vorhersage, welcher Code aufgeteilt werden kann bzw. nicht kann ist jedoch in der Praxis meist viel komplizierter. In vielen Fällen ist der Input einer Instruktion vom Output einer anderen abhängig, aber nur, wenn auch eine weitere Bedingung wahr ist. Eine leichte Modifikation des obigen Beispiels führt genau auf diesen Fall: A = B + C; IF A==5 THEN D = F + G. Hier sind die beiden Berechnungen weiter voneinander unabhängig, aber das zweite Kommando benötigt das Ergebnis der ersten Berechnung um zu wissen, ob es überhaupt ausgeführt werden soll.

In diesen Fällen versucht die CPU unter Verwendung verschiedener Methoden zu erraten, wie die Bedingung wohl aussehen wird. Moderne CPUs erreichen dabei Trefferquoten von etwa 90 %. Diese Quote hört sich zwar zunächst gut an, aber man muss sich die Konsequenzen vor Augen führen, wenn die Sprungvorhersage in 10 % der Fälle danebenliegt: In diesem Fall muss nicht nur auf das Ergebnis der ersten Berechnung gewartet werden, sondern auch die gesamte bereits vorsortierte Pipeline gelöscht und neu aufgebaut werden, was in der Summe dazu führt, dass ca. 20 % der theoretischen Maximalrechenleistung des Prozessors verloren gehen.

Der Itanium geht das Problem ganz anders an, und verlässt sich für die Sprungvorhersage auf den Compiler. Der Compiler hat aus naheliegenden Gründen einen besseren Überblick über das Programm, außerdem kann man in Testläufen in der Praxis erproben, welche Sprünge wie oft genommen werden (GCC bietet dazu beispielsweise die eher esoterischen Funktionen fprofile-arcs und fbranch-probabilities). Diese Informationen kann der Compiler verwenden, um bereits bei der Übersetzung des Programmcodes die Entscheidungen zu treffen, die sonst auf dem Chip zur Laufzeit getroffen werden müssten. Sobald dem Compiler bekannt ist, welche Pfade genommen werden, bündelt er die Instruktionen, von denen er weiß, dass sie parallel ausgeführt werden können, zu einer größeren Instruktion, die er in dieser Form in das Programm schreibt. Daher der Name VLIW (Very Long Instruction Word, "sehr lange Instruktionen").

Das Problem der effektiven Parallelisierung auf dem Compiler zu verlagern hat mehrere Vorteile. Zunächst einmal kann der Compiler wesentlich mehr Zeit damit verbringen, den Code zu untersuchen; diesen Vorteil hat der Chip nicht, da er so schnell wie möglich fertig sein muss. Zweitens ist die Vorhersage-Kernlogik recht komplex, und durch den neuen Ansatz lässt sich diese Komplexität enorm reduzieren. Der Prozessor muss den Code nicht mehr untersuchen, sondern löst die VLIW-Instruktionen nur noch in kleinere Einheiten auf, die er dann an seine Funktionseinheiten verfüttert. Der Compiler kann daher so viel Parallelität wie möglich aus dem Programm holen, und der Prozessor kann dann entsprechend seinen Fähigkeiten (der Anzahl der parallelen Funktionseinheiten) das Beste daraus machen.

Nachteil der Parallelisierung durch den Compiler ist die Tatsache, dass das Laufzeitverhalten eines Programms nicht notwendigerweise aus seinem Quellcode hervorgeht. Dies bedeutet, dass auch der Compiler "falsch" entscheiden kann, theoretisch auch häufiger als eine ähnliche Logik auf der CPU (die CPU hat z. B. noch den Vorteil, dass sie sich in gewissen Grenzen merken kann, welcher Sprung wie oft genommen wurde, was der Compiler ohne Testläufe nicht kann). Das Itanium-Design verlässt sich also stark auf die Leistung des Compilers, wobei dann Hardware-Komplexität auf dem Mikroprozessor gegen Software-Komplexität beim Compiler getauscht wird.

Implementation

Die Entwicklung der Itanium-Serie begann 1994 und basierte auf Grundlagenforschung seitens der Firma Hewlett-Packard in Sachen VLIW. Ergebnis war ein von Grund auf neu entwickelter und von jeder Vergangenheit unbelasteter VLIW-Prozessor, der sich jedoch nicht für den Praxiseinsatz eignete (und auch nicht eingesetzt werden sollte). Nachdem Intel ins Boot geholt worden war, wurden diesem "sauberen" Prozessor verschiedene Funktionen hinzugefügt, die für den Echtbetrieb notwendig waren, namentlich die Fähigkeit zur Ausführung von IA-32-Instruktionen, und HP steuerte Fähigkeiten zur Erleichterung der Migration von ihrer Hausarchitektur HP-PA bei.

Das Projekt, einen produktionsreifen Itanium-Prozessor herzustellen, läuft noch immer. Ursprünglich sollte er 1997 erscheinen, seitdem hatte sich der Zeitplan jedoch mehrfach verschoben, bis im Jahr 2001 die erste Version mit dem Codenamen Merced ausgeliefert wurde. Angeboten wurden Geschwindigkeiten von 733 und 800 MHz, sowie Cache-Größen von 2 oder 4 MB. Der Preis lag zwischen 1.200 und ca. 4.000 US-Dollar. Die Leistung des neuen Prozessors war aber bestenfalls enttäuschend. Im IA-64-Modus war er nur unwesentlich schneller als ein gleich getakteter x86-Prozessor, und wenn er x86-Code ausführen musste, brach die Performance auf Grund der verwendeten Emulation auf etwa 1/8 der Leistung eines vergleichbaren x86-Prozessors ein. Die Marketing-Abteilung von Intel rettete ihre Haut, indem die Parole ausgegeben wurde, dass die Veröffentlichung des Prozessors eigentlich keine "richtige" Veröffentlichung gewesen sei.

Das hauptsächliche (aber nicht einzige) Problem mit dem Itanium war die hohe Latenzzeit seines L3-Caches, wodurch die tatsächlich nutzbare Cache-Bandbreite stark vermindert wurde. Intel war gezwungen, für den nächsten Anlauf den L3-Cache auf dem Die zu integrieren, gleichzeitig wurden die Latenzen des primären und sekundären Caches bis nahe an die Werte des Power4-Prozessors von IBM gesenkt, der damals die niedrigsten Latenzzeiten erreichte. Außerdem wurde der Frontside Bus des Itanium von 266 MHz bei 64 Bit auf 400 MHz bei 128 Bit aufgebohrt, wodurch die Systembandbreite verdreifacht werden konnte.

Die Itanium-Chips der zweiten Generation (Itanium II) wurden im Juli 2002 vorgestellt. Im IA-64-Modus war die Integer-Leistung die beste aller damals verfügbaren Proessoren, und bei Fließkomma-Operationen musste man sich nur dem Power4 geschlagen geben. Den Prozessor gab es mit 1 GHz Kerntakt und 3 MB Cache, sowie 900 MHz Takt mit 1,5 MB Cache. Die x86-Performance war zwar verbessert worden, lag aber immer noch weit unter den Werten damals aktueller x86-Prozessoren; die x86-Leistung des Itanium II ist in etwa mit der eines schnellen Pentium II vergleichbar.

Etwa ein Jahr später wurde die zweite Revision des Itanium II-Designs veröffentlicht. Neu im Portfolie waren Prozessoren mit 1,5 GHz bei 6 MB Cache, 1,4 GHz mit 4 MB und 1,3 GHz mit 3 MB. Die 1,5 GHz-Version erreichte damals die höchsten SpecFP- und SpecInt-Werte eines in Serie gefertigten Einzelprozessors.

Die neuesten Mitglieder der Itanium-Familie (veröffentlicht im 3. Quartal 2003), sind ein Low-Cost Itanium II mit 1,4 GHz bei 1,5 MB Cache und eine stromsparende Version mit 1 GHz und 1,5 MB Cache. Ersterer zielt auf den Workstation- und Einstiegsserver-Markt, letzterer auf Cluster, bei denen niedriger Stromverbrauch und gute Kühlung wichtig sind.

Obwohl es verschiedene Bemühungen gab, die Ausführungsgeschwindigkeit und x86-Code zu steigern, bleibt der Itanium für diesen Zweck im Allgemeinen zu langsam. Wie wichtig diese Fähigkeit ist, ist umstritten - die meisten Kunden kaufen keine Itanium-Systeme, um x86-Code darauf auszuführen. Trotzdem plant Intel, die Emulationseinheit für x86-Code durch eine von Digital's FX!32 für den Alpha-Prozessor inspirierte Software-Lösung zu ersetzen. Man erhofft sich davon schnellere Ausführung und verringerte Chip-Komplexität. Software-Prozessoremulation hat ihre Vorbilder im Bereich Enterprise-Computing, wo sie z. B. auf der VAX oder der S/390 zum Einsatz kommt.

Einige CPU-Linien wurden zu Gunsten des Itanium eingestellt. HP's DEC Alpha und PA-RISC sollen auslaufen (Support wird ab 2003 für noch etwa fünf Jahre gewährt). SGI wollte seine MIPS-Architektur eigentlich ebenfalls einstellen, die gegenwärtigen Pläne sind aber unklar. Es ist wahrscheinlich, dass SGI auf unbestimmte Zeit noch zweigleisig fahren wird. SGI's Itanium-Linie entwickelt sich zwar gut, aber die installierte IRIX-Basis ist bei SGI's Kunden noch immer groß.

Seit der Auslieferung des Itanium II hat sich auch die Software-Unterstützung sehr verbessert. Zu den portierten Betriebssystemen gehören HP-UX, Linux und Microsoft Windows. An der IA-64-Portierung für OpenVMS und FreeBSD wird derzeit gearbeitet. HP plant, seine Tru64-Kunden zum Umstieg auf Itanium-Plattformen unter HP-UX zu bewegen, anstatt Tru64 zu portieren.

Kritik

Mit Stand 2002 ist der Itanium das zweitteuerste Computer-Projekt der Geschichte, gleich hinter der IBM 360 (die allerdings im Gegensatz zum Itanium ein großer wirtschaftlicher Erfolg war). Trotz der Geldmengen, die in das Projekt investiert wurden, gibt es ernsthafte Bedenken bezüglich der Zukunft des Produkts Itanium, die sich im wesentlichen um zwei Probleme drehen.

Zum einen zeigen sich die theoretischen Vorteile des VLIW-Designs in Sachen verminderter Chip-Komplexität leider nicht am tatsächlichen Prozessor. Der Itanium II hat über 221 Mio. Transistoren, die zusammen imposante 130 Watt Energie verbrauchen. Für die gleiche Energie kann man einen IBM Power-Prozessor mit vier Kernen betreiben. Durch Hinzufügen von mehr und mehr L3-Cache wird sich die Transistor-Zahl weiter erhöhen. Intel versucht derzeit, dafür an anderer Stelle Schaltkreise zu sparen.

Die Entwicklung eines Compilers, der dem Itanium erlaubt, sein Potenzial auszuspielen, hat sich als schwierig, aber für gute Performance lebenswichtig erwiesen. Obwohl in dieser Richtung ständige Verbesserungen erreicht werden, hat das Portieren von Software auf Itanium einen besonderen Ruf für Schwierigkeit, da für den Programmierer Handarbeit und besonderes Nachdenken erforderlich ist, wenn das Ergebnis gut sein soll.

Der nächste Schritt für die Itanium-Familie sollte ein Itanium II mit 9 MB L3-Cache bei etwa 1,8 GHz sein. Danach wird für das Jahr 2005 ein vom Power4 inspirierter Dualkern-Prozessor mit mehr als einer Milliarde Transistoren erwartet, auf den etwa um das Jahr 2007 ein Chip mit Namen Tanglewood folgt, an dem viele Ingenieure des abgebrochenen Alpha-EV8-Projekts mitarbeiten, und der den gegenwärtigen Itanium II um den Faktor 10 ausperformt.

Kritiker des Itanium-Prozessors haben ihm den Spitznamen Itanic gegeben. Intel wird in eine schwierige Position gelangen, wenn der Itanium-Prozessor enttäuschen sollte, da der Bedarf nach 64-Bit-Architekturen in Servern inzwischen dringend ist, und der Schritt zu 64 Bit auf dem Personal Computer nur einige Jahre weit weg ist.

Eine mögliche architektonische Bedrohung für Intel existiert inzwischen in Form von AMD's AMD64-Architektur. AMD64 folgt Intels früherer Vorgehensweise, eine einzelne Architektur nach und nach zu erweitern, erst vom 16-bit 8086 zum 32-bit 80386 und neueren Modellen, ohne die Abwärtskompatibilität zu opfern. AMD64 erweitert die 32-bit x86-Architektur durch 64-bit-Register und Kompatibilitätsmodi für alte 32-bit- und 16-bit-Software. Die Auslieferung von AMD64-Systemen begann Mitte 2003. Die Performance dieser Opteron genannten Prozessoren ist sehr gut, zum Glück für Intel positioniert AMD diese Produktlinie aber als Konkurrent zum 32-bit Intel Xeon-Serverprozessor.

Ein Mißerfolg des Itanium würde auch einen Rückschlag für Hersteller wie Hewlett-Packard und SGI bedeuten, die ihre proprietären CPU-Architekturen zu Gunsten des Itanium einstellen wollen.

Siehe auch

IA-64 IA-32 Mikroprozessoren von Intel