Warum hat Intel den Itanium fallen lassen? [geschlossen]


14

Ich habe die Geschichte des Computers gelesen und bin auf die IA-64-Prozessoren (Itanium) gestoßen. Sie klangen wirklich interessant und ich war verwirrt darüber, warum Intel sie fallen lassen würde.

Die Möglichkeit, explizit auszuwählen, welche 2 Anweisungen Sie in diesem Zyklus ausführen möchten, ist eine gute Idee, insbesondere, wenn Sie Ihr Programm in Assembly schreiben, z. B. einen schnelleren Bootloader.

Die Hunderte von Registern sollten für jeden Assembler-Programmierer überzeugen. Sie können im Grunde alle Funktionsvariablen in den Registern speichern, wenn keine anderen aufgerufen werden.

Die Möglichkeit, Anweisungen wie diese auszuführen:

(qp) xor r1 = r2, r3    ; r1 =   r2  XOR r3

(qp) xor r1 = (imm8), r3 ; r1 = (imm8) XOR r3

versus tun müssen:

; eax = r1
; ebx = r2
; ecx = r3

mov eax, ebx ; first put r2 into r1
xor eax, ecx ; then set r1 equivalent to r2 XOR r3

mov eax, (imm32) ; first put (imm32) into r1
xor eax, ecx ; then set r1 equivalent to (imm32) XOR r3

Ich habe gehört, es liege an keiner Abwärts-x86-Vergleichbarkeit, aber Sie könnten dies nicht beheben, indem Sie einfach die Pentium-Schaltung hinzufügen und ein Prozessor-Flag hinzufügen, das es in den Itanium-Modus umschaltet (wie das Umschalten in den geschützten oder langen Modus).

All die großartigen Dinge hätten sie sicherlich einen Riesenschritt vor AMD gebracht.

Irgendwelche Ideen?


Leider bedeutet dies, dass Sie einen sehr fortgeschrittenen Compiler benötigen, um dies zu tun. Oder sogar eine pro spezifischem Modell der CPU. (Zum Beispiel würde eine neuere Version des Itanium mit einer zusätzlichen Funktion einen anderen Compiler erfordern).

Als ich in Visual Studio 2010 an einem WinForms-Projekt (Ziel war nur .NET 2.0) arbeitete, hatte ich ein Kompilierungsziel von IA-64. Das bedeutet, dass es eine .NET-Laufzeit gibt, die für IA-64 kompiliert werden konnte, und eine .NET-Laufzeit bedeutet Windows. Außerdem erwähnt Hamilton in seiner Antwort Windows NT. Ein vollwertiges Betriebssystem wie Windows NT bedeutet, dass ein Compiler in der Lage ist, IA-64-Maschinencode zu generieren.


1
Diese Antwort enthält Hintergrundinformationen zu Itanium, die Sie möglicherweise als nützlich erachten.
amiregelz

1
Ich halte die EDGE-Prozessoren für die vielversprechendste neue Architektur. Und sie sind noch besser als die VLIW-Prozessoren (wie der Itanium). Vielleicht möchten Sie die verlinkte Seite unter "Eine neue ISA?" Lesen. und "Theorie" als dieser Teil erklärt, warum sie viel besser sind.
Dan D.

@DanD Das Problem ist, dass x86 ein De-facto- Standard ist. Am ehesten könnte Apple von Intel auf EDGE umsteigen, aber selbst dann könnte es Jahre dauern.
Cole Johnson

"Ich habe gehört, es liege an keiner Abwärtsvergleichbarkeit von x86, aber Sie könnten dies nicht beheben, indem Sie einfach die Pentium-Schaltung hinzufügen und ein Prozessor-Flag hinzufügen, das es in den Itanium-Modus umschaltet (wie das Umschalten in den geschützten oder langen Modus)." Wenn sie Chips mit doppelt so vielen Transistoren herstellen könnten, ohne auf Kosten, Leistung, Zuverlässigkeit, Wärme usw. zu verzichten, würden sie dies bereits tun.
David Schwartz

1
Ich dachte, der Itanium sei noch nicht tot .
David Schwartz

Antworten:


29

Die Leistung war im Vergleich zu den Erwartungen sehr enttäuschend und verkaufte sich im Vergleich zu Intels x86-Architekturen nicht gut.

Intel überredete mich, meine Hamilton C-Shell für eine Messe auf Itanium zu bauen, auf dem irgendwann um 2000 Windows NT ausgeführt wird. Itaniums waren schwer zu bekommen, also benutzte ich ein VPN für eine Maschine in ihrem Labor. Nachdem ich bereits Versionen für NT auf x86, MIPS, Alpha und PowerPC erstellt hatte, war der "Port" trivial, nur geringfügige Änderungen hauptsächlich an meinen Makefiles. Ich glaube, ich habe eine halbe Stunde gebraucht.

Aber die Leistung war wirklich überwältigend, auf jeden Fall über das VPN, und immer noch enttäuschend, als ich auf die Messe kam und es direkt vor Ort ausprobieren konnte. Itanium ging nirgendwo hin, weil es kein großartiges Produkt war und niemand es kaufte.

Hinzugefügt:

Intel hat eine Weile meine Erfahrung mit der Portierung auf den Itanium angepriesen, indem ich die Erfahrung mit der VPN-Remote-Entwicklung auf der Website genutzt habe. Jetzt vorbei, aber auf archive.org geschnappt. Hier ist, was in den Remote-FAQ steht :

F: Haben Sie einen Kunden, mit dem ich über den RAS-Dienst sprechen kann?

A: Ja, Hamilton Laboratories *. Ausführliche Informationen zu den Vorteilen, die Hamilton Laboratories aus diesem Service ziehen, finden Sie in der Fallstudie von Hamilton Laboratories .

In der " Fallstudie " heißt es, dass ich eine Itanium-Version gebaut habe, weil die Kunden danach verlangten. Aber ich kann mich nicht erinnern, jemals eine Kopie für Itanium verkauft zu haben. Verkaufte sie für alles andere, einschließlich PowerPC (und wie viele von denen, auf denen NT ausgeführt wird, nehmen an, dass es welche gab?), Nur niemals für Itanium.

Herausforderung: Beschleunigung der Entwicklung seines Hamilton C Shell-Produkts, um eine günstige Time-to-Market-Portierung der Architektur-Tools seiner Kunden für Intel® Itanium® und Windows * 2000 sicherzustellen.

Lösung: Verwenden Sie das Remote-Zugriffsprogramm, einschließlich Hochgeschwindigkeits-Internetzugang und Shiva® VPN-Client, um auf eine Itanium-Entwicklungsumgebung zuzugreifen, den Quellcode zu ändern und Dateien zu erstellen, das Debuggen zu testen und 64-Bit-Anwendungen in nur 7 Stunden aus der Ferne neu zu kompilieren.


5
Nichts zu optimieren. Meine gesamte C-Shell ist in hohem Maße multithreaded, musste aber in jenen Tagen sehr portabel und sehr effizient sein , da die Compiler, die ich in den frühen 90ern verwendete, oft sehr einfach und die Optimierer manchmal unzuverlässig waren. Ich hatte bereits für 64-Bit-RISC-Maschinen gebaut und bereits Ausrichtungsprobleme gefunden und behoben. Ich bin immer direkt zu den Win32-APIs gegangen, daher war es möglicherweise auch keine schlechte C-Laufzeitbibliothek. Die wirklich heiße Maschine war die Alpha und im Vergleich dazu war die Itanium nur enttäuschend.
Nicole Hamilton

8
Hab mir nur deine C-Shell angesehen. Es ist ziemlich großartig. Ich habe Cygwin immer als Copout angesehen. Ich werde es einige Zeit ausprobieren müssen.
Michael Brown

6
Das war Intel, nicht Microsoft, mit diesem verrückten Remote-Entwicklungssystem. Microsoft war für Entwickler sehr hilfreich. Microsoft half mir dabei, meine MIPS-, Alpha- und PowerPC-Computer zu besorgen. Ich habe Anfang 1992 von der Entwicklergruppe handgefertigte CDs mit den neuen NT-Versionen erhalten, als es außerhalb des Microsoft-Campus nirgends viele Kopien gab.
Nicole Hamilton

8
Nein, der NT-Kernel war bezüglich der Prozessorarchitektur ziemlich agnostisch. Dave Cutler war ein Fanatiker davon. Sie begannen mit der NT-Entwicklung auf einem i960 , um zu vermeiden, dass sich x86-Ismen in den Code einschleichen. Und während sie den i960 fallen ließen, wurde der NT 3.1 Beta im Juli 1992 auf x86 und MIPS und ein paar Monate später auf Alpha, iirc, veröffentlicht. Microsoft hatte mir geholfen, die MIPS- und Alpha-Maschinen zu beschaffen, sodass ich alle drei Prozessoren unterstützte, wie angekündigt. Das einzige Besondere am Itanium war, dass es eine Enttäuschung war und sich nicht gut verkaufte.
Nicole Hamilton

1
@ColeJohnson - Wie Nicole Hamilton betont, war das Problem nicht der NT-Kernel. Ich meine, zum Teufel Windows Server 2008 R2 unterstützt das Itanium. Das Problem war also nicht das Betriebssystem. Das Problem war die Plattform selbst. Natürlich hat es nicht geholfen, dass AMD Intels Plänen einen Strich durch die Rechnung gemacht hat, indem nur die x86-Plattform selbst erweitert wurde.
Ramhound

4

Schnelle Antwort: Schlechte Leistung. Intel hat versucht, ein revolutionäres Produkt herauszubringen, wenn es sich zu dem gewünschten Produkt hätte entwickeln sollen.

Genauer gesagt: Der Prozessor war unter normalen Umständen nicht schnell genug. Intel hat den Prozessor veröffentlicht, als sich die Lücke zwischen Prozessor- und Speichergeschwindigkeit vergrößerte. Itanium, ein RISC-Prozessor (Reduced Instruction Set), benötigte mehr Bytes pro Befehl als seine Cousine, x86-Varianten. Die erhöhte Speicherauslastung führte dazu, dass der Prozessor langsam lief.

All dies wurde dadurch verärgert, dass die gesamte Architektur im Wesentlichen eine Erstveröffentlichung war. Während RISC selbst keine neue Idee war, waren und benötigten viele der Hardware-Komponenten neue Layout-Designs. Es gab auch viele neue Ideen im Itanium-Anweisungslayout, die von der Entwickler-Community gründlich ausgearbeitet werden mussten, bevor qualitativ hochwertige Software verfügbar sein würde.

Am Ende wurde viel Technologie in Intels bestehender Chip-Version verwendet - für den Endbenutzer nur schwer sichtbar.


2
Meinten Sie die schlechte Leistung beim Ausführen von Itanium-Inhalten oder die absolut schreckliche Leistung beim Emulieren von Legacy-X86-Code?
Hennes

1
beide. Mein Eindruck war, dass der X86-Emulator für das Itanium-Team nicht sehr wichtig war. Stattdessen war der Emulator ein wichtiges Produktmerkmal, um das Richtige zu finden, da es die Lücke war, auf die die meisten Kunden einen ersten Eindruck hinterlassen würden.
A. Phillips

1
Die Itanium-Leistung in gut geschriebenem Itanium-Code war fantastisch - es gab einfach nicht viel guten Code.
A. Phillips

5
Was bedeutet "gut geschriebener Itanium-Code", Aaron? Wenn es ein gutes, sauberes C ist, bei dem alles korrekt ausgerichtet ist, ohne dass unerwünschte Casts usw., was macht dann etwas besonders gut geschriebenes für ein Itanium? Mit meiner C-Shell konnte ich problemlos timegebundene Daten (z. B. Factoring von Zahlen), I / O-Daten (Kopieren oder Verwalten von Dateien) und OS-Perf-Daten (Erstellen von Threads oder Prozessen) berechnen. Auf der Alpha war es wie, wow, das ist schnell. Gib mir einen Doppelprozessor, ich könnte es leicht messen. Ich sage Ihnen, der Itanium war in jeder Hinsicht ein Hund, besonders im Vergleich zum Hype.
Nicole Hamilton

4
Die MIPS-, Alpha- und PowerPC-Plattformen waren ebenso neu wie alle anderen NT-Plattformen in den frühen 90er Jahren, und diese anderen Chips, insbesondere Alpha, waren im Vergleich zu den meisten x86-Maschinen schnell. Ich habe immer noch eine dieser anderen Maschinen in meinem Keller. Itanium war einfach nicht so toll. Dies war nicht Intels erster Fehltritt. Andere Grauhaare werden sich an ihre Katastrophe von 1981 erinnern . Das war auch eine schlecht gestaltete Architektur, die in ihrer Leistung umkippte .
Nicole Hamilton

3

Das Itanium ist ein großartiges Design, wenn Sie seine Vorteile nutzen können .

Leider bedeutet dies, dass Sie einen sehr fortgeschrittenen Compiler benötigen, um dies zu tun. Oder sogar eine pro spezifischem Modell der CPU. (Zum Beispiel würde eine neuere Version des Itanium mit einer zusätzlichen Funktion einen anderen Compiler erfordern).

Einen solchen Compiler einmal zu erstellen, ist eine schwierige Aufgabe. Dies für jede Variation einer CPU zu tun, ist nicht wirtschaftlich.


Sie müssten den Compiler nicht für die neueren aktualisieren. Sie würden einfach die neuen Funktionen nutzen. Ich habe gehört, sie würden die Abwärtskompatibilität beibehalten.
Cole Johnson

Er mag nur Assembler.
ott--

Ich erwähne, dass dies die Assemblycodierung erleichtern würde. Der Compiler könnte zumindest die einfachsten Anweisungen verwenden, die ihm einfallen.
Cole Johnson

Das Erstellen eines funktionierenden Compilers unterscheidet sich erheblich von einem Compiler, der die Fähigkeiten einer CPU für Wide / Parallel-Anweisungen effizient nutzt. Wenn Sie Handwerker sind, sollten Sie in der Lage sein, wunderbare Dinge zu tun, aber das kostet viel Arbeit.
Hennes

2
Aus einem alten Slashdot-Thread: Compiler für Itanium sind schwer
Rich Homolka

2

Der andere wichtige Teil der Itanium-Geschichte, der nicht wirklich angesprochen wurde, ist die Tatsache, dass es 2001 mit dem Itaniums-Debüt unmöglich war, große Mengen an RAM in Standardhardware zu stecken. x86_64 war nur ein Anflug am Horizont und AMD Opterons würde erst in zwei Jahren erscheinen.

Meine erste (und einzige) Erfahrung mit einem Itanium-Server habe ich 2002 bei einem Chemieunternehmen gemacht, bei dem ein SQL-Server für die Ölanalyse zum Erkennen von Fehlern benötigt wurde. Dieses Öl stammte von und floss in mehrere Millionen Dollar teure Maschinen eines Milliarden Dollar teuren Unternehmens. Daher verfügten sie über eine Gruppe von Itaniums mit jeweils 128 GB RAM. 128 GB RAM sind heutzutage immer noch eine angemessene Menge, aber die Installation in einem Server ist einfach und kostengünstig.

Im Jahr 2002 waren 128 GB RAM ein Mammut und da bereits eine SQL Server-Infrastruktur vorhanden war, war es billiger, ein paar Itanium-Computer auszulagern und sie mit RAM zu laden, als auf eine andere Plattform und zu wechseln andere Datenbank.

Jetzt, da es trivial ist, 128 GB (oder mehr) in einen Commodity-Server zu stecken, einer der großen Teile des Itanium-Marktes, der keine echten Konkurrenten hatte (der Opteron kam 2003 auf den Markt, und jetzt natürlich auch Server, die dies können) nehmen Sie Hunderte von Gigs Speicher sind allgegenwärtig) ist mit Optionen, die billiger zu kaufen, billiger zu besitzen und schneller waren überflutet.


Ich bin mir ziemlich sicher, dass ein 128-GB-DDR3-RAM-Modul heutzutage mindestens einen Riesen (USD) ausführen wird
Cole Johnson,

2
Ich habe noch nie ein 128-Gb-DDR-Modul gesehen ... aber das Einspielen von 128-Gb-registriertem ECC-RAM in einen Server kostet mehr als 1000 US-Dollar, aber nicht viel mehr. hängt von dem Angebot ab, das Sie von Ihrem Lieferanten erhalten können.
Mark Henderson

Ich habe auch noch nie ein einfaches 128-GB- Modul gesehen . Aber dieses 8x16GB Set ist das Äquivalent und es kostet 1.500 $, was ziemlich billig ist im Vergleich zu den 10k $ Sets, die ich an anderen Orten gesehen habe
Cole Johnson

Ich sehe viele Gbs; sollten das GB sein?
Charlie

1

Ich habe gehört, dass AMD Intel dazu gedrängt hat, seinen Mainstream-Prozessoren mehr Ressourcen zuzuweisen, um im Wettbewerb bestehen zu können. AMD brachte 2003 seinen Athlon 64 heraus, der ein besseres Preis-Leistungs-Verhältnis als der Pentiums hatte. Es besteht die Überzeugung, dass Intel, wenn es Itanium in vollem Umfang weiterentwickeln würde, schneller als die aktuellen x86-Prozessoren wäre.


1
Das Sprichwort "Hätte ... Hätte" bezieht sich auf das, was Itanium hätte sein können, wenn AMD x86 nicht einfach erweitert hätte. Intel hätte, wenn sie wirklich wollten, x86-64 töten können, aber sie standen unter dem Druck von Microsoft. Ich bin sicher, wenn Intel x86-64 nicht von AMD lizenziert hätte, würde sich die aktuelle Situation wahrscheinlich umkehren, da AMD führend und Intel kaum in der Lage wären Bleiben Sie mit den Fortschritten von AMD auf dem Laufenden.
Ramhound
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.