Itanium-Architektur
Itanium ist eine 64âBit-Architektur mit EPIC-Befehlssatz, die gemeinsam von Hewlett-Packard und Intel fĂŒr den gleichnamigen Itanium-Prozessor (Codename Merced) entwickelt wurde. Ende der 1990er Jahre wurde die Befehlssatzarchitektur auch unter der Bezeichnung englisch Intel Architecture 64âBit, kurz IA-64, eingefĂŒhrt, weil sie die damalige 32âBit-x86-Architektur IAâ32 vollstĂ€ndig hĂ€tte ersetzen sollen. IAâ32 (x86) ist eine CISC-Architektur â von der moderneren Architektur des Itanium, IAâ64, mit dem VLIW-Paradigma EPIC versprach man sich eine Beschleunigung der AusfĂŒhrung. Dabei unterscheidet sich die Itanium-Architektur wesentlich von der x86-Architektur, was bestehende x86-Software anfangs nur ĂŒber eine langsame Emulation lauffĂ€hig hielt. Um von der neuen Architektur wirklich zu profitieren, mussten Betriebssysteme und Programme fĂŒr IAâ64 ĂŒbersetzt und zum Teil neu geschrieben werden.
Die Itanium-Architektur (IAâ64) wurde von Intel und HP nur auf dem Server-Markt platziert und Betriebssysteme wie Windows Server 2003 (die Server-Version von Windows XP) von Microsoft wurden auf IAâ64 portiert. Es gab auch Bestrebungen, IAâ64 auf Workstations zu etablieren,[1] geblieben ist nach 2005 jedoch nur der Server-Markt.[2] Die Lage wurde bei Intel anfangs vollkommen falsch eingeschĂ€tzt,[3] denn mit x64 hat AMD Anfang der 2000er Jahre IA-32 ebenfalls zu einer 64-Bit-Architektur weiterentwickelt, und als auch bei der Leistung x86-Prozessoren die Itaniums ĂŒberflĂŒgelten, war das langsame Ende des teuren Serverprozessors absehbar.[4][5] Nach 2010 wurde schlieĂlich auch die Server-Linie von Windows nicht mehr weiter entwickelt, da Windows Server 2008 R2 (Oktober 2009) die vorerst letzte Itanium-Version blieb.[6][7]
Abgrenzung
[Bearbeiten | Quelltext bearbeiten]Intel wollte IAâ64 als Nachfolger der damals 32âBit-x86âArchitektur â von Intel âIA-32â genannt â etablieren. Dabei versuchte Intel gemeinsam mit HP zuerst im bereits seit Anfang der 1990er-Jahre durchwegs 64-bittigen Server-Markt FuĂ zu fassen. Im Desktop-Bereich blieb Intel mit x86 alias IA-32 vorerst bei 32âBit stehen.
IAâ64 alias Itanium war jedoch ĂŒberhaupt nicht mit x86 kompatibel, fĂŒr das es bereits eine groĂe Menge an etablierter Software gab. So war es schlieĂlich der x86-Konkurrent AMD, der mit der ab 1999 entwickelten und 2003 eingefĂŒhrten 64âBit-Erweiterung AMD64 den x86-Befehlssatz IAâ32 ebenfalls zur 64âBit-Architektur machte. Diese x64-Architektur blieb dabei â im Gegensatz zur Itanium-Architektur âIA-64â â zu bestehender âIA-32â-Software kompatibel. Bereits seit dem AMD K5 nutzten auch x86-Prozessoren intern RISC-Opcode (ÎŒOps), sodass dieser Vorteil bei der Itanium-Architektur nicht mehr gegeben war. Traditionell haben AMD und Intel x86-spezifische Lizenzabkommen, die es dem jeweils anderen erlauben, eingefĂŒhrte Neuerungen im Befehlssatz ebenfalls zu nutzen. Um den x86-Markt nicht zu verlieren, folgte also auch Intel 2005 mit der zu AMD64 weitestgehend kompatiblen x86-Befehlssatzerweiterung Intel 64 (zuvor auch IAâ32e und EM64T genannt). AMD konnte mit den 2003 vorgestellten Opteron-Prozessoren mit AMD64 (64-Bit-x86) auf dem Server-Markt kostengĂŒnstige und gleichzeitig 64-Bit-fĂ€hige Server bereitstellen und war damit sehr erfolgreich. Intel selbst stand mit den eigenen nun ebenfalls 64-Bit-x86-Server-Prozessoren auf gleiche Weise in direkter Konkurrenz zu IAâ64 (Itanium). Diese hatte es damit weit schwerer, im Server-Markt FuĂ zu fassen. Itanium- und Itaniumâ2-Prozessoren wurden schlieĂlich fast ausschlieĂlich von Intel hergestellt. Von der Weiterentwicklung Itaniumâ2 stammte dann nur ein Prozessortyp von HP.
Da IA-32 (x86-Architektur ab dem 32-Bit-i386) keine klare Trennung zwischen 32- und 64âBit bietet, werden zur eindeutigeren Unterscheidung 64âBit-x86-Prozessoren mit x64 (in Anlehnung an x86) bezeichnet â x64-Prozessoren waren bis 2010 bereits wesentlich weiter verbreitet als die 64-Bit-Itanium-Architektur (IA-64), die nach 2010 schlieĂlich eingestellt wurde. 64-Bit-x86-Software (x64) hat sich bis 2020 vollstĂ€ndig durchgesetzt, IA-64/Itanium spielt keine Rolle mehr.
Funktionsweise
[Bearbeiten | Quelltext bearbeiten]
Das Design basiert auf einem Konzept mit dem Namen Explicitly Parallel Instruction Computing (EPIC), das dem althergebrachten Very Long Instruction Word (VLIW) Ă€hnelt, jedoch eine Reihe von Verbesserungen enthĂ€lt. Bei EPIC werden die Prozessorbefehle, die keine AbhĂ€ngigkeiten voneinander haben und daher parallel ausgefĂŒhrt werden können, anhand vordefinierter Muster in Instruction Groups aufgeteilt und so an den Prozessor weitergegeben, der dann anhand seiner eigenen FĂ€higkeiten entscheiden kann, wie viele der theoretisch möglichen Instruktionsgruppen tatsĂ€chlich parallel ausgefĂŒhrt werden. Die Idee dahinter ist, dass bereits der Compiler oder auch der Assembler feststellt, wie viel ParallelitĂ€t unter BerĂŒcksichtigung von AbhĂ€ngigkeiten möglich ist, und dies entsprechend im Programmcode festhĂ€lt, und der Prozessor die Pipelines spĂ€ter optimal auslasten kann, je nachdem, wie viele Anweisungen er tatsĂ€chlich parallel ausfĂŒhren kann.
Die Architektur versucht, die Wartezeiten auf den Speicher zu verringern, indem eine groĂe Zahl Register auf dem Prozessor vorhanden ist. So gibt es 128 64-Bit-Register fĂŒr ganzzahlige Berechnungen, 128 82-Bit-Register speziell fĂŒr Gleitkomma-Daten und 64 1-Bit-Vorhersageregister, ĂŒber die die Befehle bedingt ausgefĂŒhrt werden. Dies erlaubt es, mehr Informationen in den Registern zu halten, anstatt jedes Mal den langsamen Weg ĂŒber Cache oder Arbeitsspeicher zu beschreiten, wenn Daten benötigt werden. Durch die bedingte AusfĂŒhrbarkeit nahezu aller Anweisungen ergibt sich eine drastische Verringerung bedingter Sprunganweisungen.
FĂŒr das AusfĂŒhren von 32-Bit-Software nutzt der Prozessor einen Teil der IA-64-Register als IA-32-Register. AuĂerdem gibt es im IA-32 einen Sprungbefehl, mit dem in den IA-64-Modus (zurĂŒck) gewechselt wird. Nutzt man diesen auf einem IA-32-Prozessor, so erfolgt dort ein Invalid-Opcode-Interrupt.
Die Architektur verfĂŒgt ĂŒber einen groĂen Befehlssatz mit teilweise hoher KomplexitĂ€t. So gibt es unter anderem besondere Prozessorbefehle fĂŒr Multimedia- und aufwendige Gleitkomma-Operationen.
In der Software werden bei einem Funktionsaufruf die aktuellen Registerinhalte auf den Stack geschrieben und nach Ablauf der Funktion wieder zurĂŒckgeholt. Dies verursacht Wartezeiten und bremst den Programmfluss aus. Das IA-64-Design reduziert diese Latenz, indem diese Stack-Operationen auf den Registern selbst ausgefĂŒhrt werden. Die sogenannte Register Stack Engine (RSE) behandelt die FĂ€lle, in denen die Register und der Speicher synchronisiert werden mĂŒssen.
IA-32-Emulation
[Bearbeiten | Quelltext bearbeiten]Obwohl die EigenstĂ€ndigkeit der IA-64-Architektur von Anfang an herausgestellt wurde, wollte man sich dennoch mit dem PrĂ€dikat IA-32-kompatibel schmĂŒcken. Ăltere Itanium-Varianten unterstĂŒtzen daher auch hardwareseitig IA-32-Befehle auf dem Stand eines Pentium III. Da es sich dabei nur um eine Emulationseinheit handelte, reicht die Leistung von 32-Bit-Software auf einem IA-64-System aber nicht an die Leistung derselben Software auf einem vergleichbaren x86-System heran. AuĂerdem sind Itanium-Prozessoren mit IA-32 nur bedingt kompatibel, da zum Beispiel das Paging ĂŒber die IA-64-Architektur lĂ€uft und ein Versuch, das CR3 (Page Directory Base Register) mit einem Wert zu laden, von dieser abgefangen wird. Seit dem Itanium 2 wird eine softwarebasierte Variante der x86-Emulation namens IA-32 EL verwendet. Diese ist dank verschiedenster Optimierungen zwar schneller als die hardwarebasierte Variante, aber immer noch langsamer als ein vergleichbar getakteter x86-Prozessor. Generell hat aber die FĂ€higkeit, IA-32 emulieren zu können, ihre Bedeutung weitestgehend verloren, und alle fĂŒr den Zielmarkt wichtigen Softwarepakete liegen mittlerweile auch in einer nativen IA-64-Version vor. Neben dem IA-32-Software-Emulator existiert zur Emulation der PA-RISC-Architektur das HP-UX ARIES (Automatic Re-translation and Integrated Environment Simulation)-Paket.
Fortschritt oder AbwÀrtskompatibilitÀt
[Bearbeiten | Quelltext bearbeiten]Die IA-32-Architektur ist abwĂ€rtskompatibel bis zur Architektur des Intel-8086-Prozessors aus dem Jahr 1978. Dies fĂŒhrt dazu, dass Altlasten aus VorgĂ€ngerarchitekturen auch in neue Designs ĂŒbernommen werden mĂŒssen. Dadurch können zum einen moderne GestaltungsansĂ€tze nicht bestmöglich umgesetzt werden, zum anderen ist es nicht möglich, eine in sich schlĂŒssige Architektur (zum Beispiel hinsichtlich einheitlicher Operation-Code-Formate) zu erstellen. Der Vorteil der AbwĂ€rtskompatibilitĂ€t ist die problemlose Weiterverwendbarkeit der existierenden Software ohne Anpassungsaufwand (Portierung) und Neukompilation.
Intel versuchte, mit den Altlasten aufzurĂ€umen (auch um sich vom Konkurrenten AMD abzusetzen, welcher vor allem x86-Patente und -Kompetenzen besaĂ) und veröffentlichte mit der IA-64-Architektur eine eigenstĂ€ndige Architektur, die nicht eine Erweiterung des bestehenden IA-32-Befehlssatzes darstellt. Der Preis, der dafĂŒr zu zahlen ist, ist, dass fĂŒr den IA-32-Befehlssatz geschriebene Software auf der neuen Architektur nur eingeschrĂ€nkt ausfĂŒhrbar ist. Selbst der weiterhin ausfĂŒhrbare Code wird teilweise auf Software-Basis emuliert, was zu schlechter LeistungsfĂ€higkeit von Software fĂŒhrt.[8]
Dieser gewagte Schritt der Firma Intel erwies sich auf dem freien Markt als nicht durchsetzbar, auch weil fĂŒr den Endanwender-Markt weiterhin hauptsĂ€chlich IA-32-Prozessoren hergestellt wurden und der IA-32-KompatibilitĂ€tsmodus im Itanium extrem langsam war. Auch die notwendige Anpassung zur Ausnutzung der ItaniumfĂ€higkeiten fĂŒr die enorme Masse der existierenden Software wĂ€re sehr aufwendig gewesen, selbst im optimistischen, problemfreien Falle wĂ€re immer noch eine Neukompilierung und Auslieferung der Software notwendig. Im schlimmsten Fall wĂ€ren aufwendige Fehlerbehebungen, Anpassungen oder die vollstĂ€ndige Neuerstellung von Software notwendig, z. B. da nicht immer der Quellcode fĂŒr Software zur VerfĂŒgung steht, beispielsweise im Falle, dass ein Hersteller zwischenzeitlich in Konkurs gegangen ist. Ein weiteres Problem war eine anfĂ€nglich mĂ€Ăige LeistungsfĂ€higkeit auch von spezifisch angepasster Itaniumsoftware, da sowohl Softwareentwickler als auch Compilerhersteller erst Erfahrung mit der neuen Itanium-Architektur sammeln mussten, um sie optimal unterstĂŒtzen zu können, ein Wissen, das fĂŒr die x86-Architektur bereits langjĂ€hrig aufgebaut war.[9]
Die gegenĂŒber der IA-32/AMD64 durch lĂ€ngere Anweisungen sowie auch schwer vermeidbare NOP-FĂŒllanweisungen wesentlich schlechtere âInstruction set efficiencyâ fĂŒhrte dazu, dass die IA-64-Architektur in vielen Benchmarks schlechtere Ergebnisse zeigt.
Prozessoren
[Bearbeiten | Quelltext bearbeiten]Itanium-Prozessoren gibt es unter folgenden Bezeichnungen:
- Intel Itanium (2001â2002)
- Intel Itanium 2 (ab 2002)
- HP Itanium 2
Betriebssysteme
[Bearbeiten | Quelltext bearbeiten]FĂŒr die Itanium-Architektur (IAâ64) verfĂŒgbare Betriebssysteme waren und sind u. a.:
- FreeBSD, nur als Developmental Architecture (Tier 2)[10] ab Version 5[11] bis Version 10[12]
- HP-UX
- Linux (bis Kernel 6.6, Oktober 2023, danach auĂerhalb des Kernels (out-of-tree) weiterentwickelt)[13]
- NetBSD, nur unfertig und sehr experimentell[14]
- OpenVMS
- Windows (Weiterentwicklung eingestellt)[7]
Siehe auch
[Bearbeiten | Quelltext bearbeiten]Weblinks
[Bearbeiten | Quelltext bearbeiten]- Beschreibung vom Hersteller Intel (englisch)
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- â Christof Windeck: Intels McKinley heiĂt jetzt Itanium 2. In: Heise online. 25. Mai 2002. Abgerufen am 2. April 2023.; Zitat: âVielmehr soll er dank seiner deutlich höheren Performance als Backend-Server und High-Performance-Workstation seine Tauglichkeit im realen Einsatz unter Beweis stellen.â.
- â Thorsten Leemhuis: Intel verschiebt nĂ€chste Itanium-Generation Montecito. In: Heise online. 25. Oktober 2005. Abgerufen am 2. April 2023.; Zitat: âIntel möchte mit dem Montecito vor allem mit IBMs Power5/Power5+, aber auch mit dem SPARC+ konkurrieren. Diese Server-Prozessoren bieten schon seit Jahren mehrere Kerne, Multi-Threading und ausgefeilte Partitionierungsfunktionen.â.
- â Andreas Stiller: Pat Gelsinger und Intel: Nun wĂ€chst zusammen, was zusammen gehört. In: Heise online. 15. Januar 2021. Abgerufen am 2. April 2023.; Zitat: âIm Dezember 2001 konnte ich Gelsinger zu unserem ersten englischsprachigen Online-Chat mit Lesern gewinnen, einige Hundert nahmen daran teil. 64-Bit, so Gelsinger damals, ist nur was fĂŒr Server, das brĂ€uchte auf absehbare Zeit zu Hause kein Mensch. Okay, diese EinschĂ€tzung hat sich dann dank AMD-Konkurrenz schnell geĂ€ndert.â.
- â Andreas Stiller: 40 Jahre 8086: der Prozessor, der die PC-Welt verĂ€nderte. In: Heise online. 8. Juni 2018. Abgerufen am 2. April 2023.; Zitat: âSo etwas Ă€hnliches wiederholte sich dann spĂ€ter nochmal mit dem edlen 64-Bit-Serverprozessor Itanium, der von den Desktop-Kollegen Pentium Pro und Pentium 4 in der Performance locker an die Wand gespielt wurde.â.
- â Andreas Stiller: 50 Jahre Intel: RĂŒckblick auf 50 Jahre groĂe Erfolge und groĂe Misserfolge. In: Heise online. 18. Juli 2018. S. 4: Spekulatives. Abgerufen am 2. April 2023.; Zitat: âDer Taktwettkampf bei den Desktop-Prozessoren hatte bei Intel aber noch andere katastrophale Folgen, er lĂ€utete nĂ€mlich bereits das Ende der 64-Bit-Architektur Itanium ein, bevor diese ĂŒberhaupt in Gang gekommen war â denn diese konnte performancemĂ€Ăig ĂŒberhaupt nicht mithalten. Aber wegen eines milliardenschweren Vertrages mit Hewlett Packard wurde Itanium aus politischen GrĂŒnden bis hin zum vorigen Jahr am Leben erhalten.â.
- â JĂŒrgen Kuri: Microsoft stellt Windows XP fĂŒr die 64âBit-CPU Itanium ein. In: Heise online. 6. Januar 2005. Abgerufen am 25. Februar 2017.
- 1 2 Christof Windeck: Microsoft programmiert keine neue Itanium-Software mehr. In: Heise online. 6. April 2010. Abgerufen am 25. Februar 2017.
- â Michael Kanellos: AMD rolls dice on Opteron chip. CNET News, 21. April 2003, abgerufen am 10. Mai 2012 (englisch).
- â Andy Patrizio: Why Intel can't seem to retire the x86. ITworld, 4. MĂ€rz 2013, abgerufen am 15. April 2013 (englisch).
- â Support for Multiple Architectures. 18.3. Tier 2: Developmental Architectures. In: Committer's Guide. The FreeBSD Documentation Project, abgerufen am 5. MĂ€rz 2017 (englisch).
- â FreeBSD/ia64 5.0-DP2 Hardware Notes. The FreeBSD Documentation Project, 7. November 2002, abgerufen am 5. MĂ€rz 2017 (englisch).
- â FreeBSD/ia64 Project. The FreeBSD Project, ehemals im (nicht mehr online verfĂŒgbar); abgerufen am 5. MĂ€rz 2017 (englisch): âThe ia64 port is considered a tier 2 platform through FreeBSD 10. After this it will no longer be supported.â
- â linux-ia64. Abgerufen am 1. Oktober 2024 (englisch): âMaintenance and development of the Linux operating system for Intel Itanium architecture (IA-64)â
- â NetBSD/ia64. In: NetBSD Wiki/ports/. The NetBSD Foundation, Inc., abgerufen am 5. MĂ€rz 2017 (englisch).