Pourquoi Intel a-t-il abandonné l'Itanium? [fermé]

14

Je lisais l'histoire de l'ordinateur et je suis arrivé avec les processeurs IA-64 (Itanium). Ils semblaient vraiment intéressants et je ne savais pas pourquoi Intel déciderait de les abandonner.

La possibilité de choisir explicitement les 2 instructions que vous souhaitez exécuter dans ce cycle est une excellente idée, en particulier lors de l'écriture de votre programme en assembleur, par exemple, un chargeur de démarrage plus rapide.

Les centaines de registres devraient convaincre tout programmeur d'assemblage. Vous pouvez essentiellement stocker toutes les variables de fonctions dans les registres s'il n'en appelle pas d'autres.

La possibilité de faire des instructions comme celle-ci:

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

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

contre avoir à faire:

; 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

J'ai entendu dire que c'était en raison de l'absence de comparabilité x86 en arrière, mais ne pouvait pas être résolu en y ajoutant simplement les circuits Pentium et en ajoutant simplement un drapeau de processeur qui le ferait passer en mode Itanium (comme passer en mode protégé ou long)

Toutes les bonnes choses à ce sujet leur auraient sûrement fait un bond de géant devant AMD.

Des idées?


Malheureusement, cela signifie que vous aurez besoin d'un compilateur très avancé pour ce faire. Ou même un par modèle spécifique de CPU. (Par exemple, une version plus récente de l'Itanium avec une fonctionnalité supplémentaire nécessiterait un compilateur différent).

Lorsque je travaillais sur un projet WinForms (la cible n'avait que .NET 2.0) dans Visual Studio 2010, j'avais une cible de compilation IA-64. Cela signifie qu'il existe un runtime .NET qui a pu être compilé pour IA-64 et un runtime .NET signifie Windows. De plus, la réponse de Hamilton mentionne Windows NT. Avoir un système d'exploitation complet comme Windows NT signifie qu'il existe un compilateur capable de générer du code machine IA-64.

Cole Johnson
la source
1
Cette réponse fournit des informations générales sur l'Itanium qui pourraient vous être utiles.
amiregelz
1
Je considère que les processeurs EDGE sont la nouvelle architecture la plus prometteuse. Et ils sont encore meilleurs que les processeurs VLIW (comme l'Itanium). Vous voudrez peut-être lire la page liée dans "Un nouvel ISA?" et "Théorie" car cette partie explique pourquoi ils sont bien meilleurs.
Dan D.
@DanD le problème est que x86 est un standard de facto . Le plus proche que vous pourriez probablement obtenir est qu'Apple passe d'Intel à EDGE, mais même dans ce cas, cela pourrait prendre des années.
Cole Johnson
"J'ai entendu dire que c'était à cause de l'absence de comparabilité x86 en arrière, mais ne pouvait pas être résolu en y ajoutant simplement les circuits Pentium et en ajoutant simplement un drapeau de processeur qui le ferait passer en mode Itanium (comme passer en mode Protégé ou Long)". S'ils pouvaient fabriquer des puces avec deux fois plus de transistors sans sacrifier le coût, les performances, la fiabilité, la chaleur, etc., ils le feraient déjà.
David Schwartz
1
Je pensais que l' Itanium n'était pas encore mort .
David Schwartz

Réponses:

29

Les performances étaient très décevantes par rapport aux attentes et elles ne se sont pas bien vendues par rapport aux architectures x86 d'Intel.

Intel m'a convaincu de construire mon shell Hamilton C sur Itanium sous Windows NT vers 2000 pour un salon. Les itaniums étaient difficiles à trouver, j'ai donc utilisé un VPN pour une machine dans leur laboratoire. Ayant déjà construit des versions pour NT sur x86, MIPS, Alpha et PowerPC, le "port" était trivial, juste des ajustements mineurs principalement pour mes makefiles. Je pense que cela m'a pris peut-être une demi-heure.

Mais la performance était vraiment décevante, certainement sur le VPN, et toujours décevante quand je suis arrivée au salon et que je pouvais l'essayer ici en personne. Itanium est allé nulle part parce que ce n'était pas un excellent produit et personne ne l'a acheté.

Ajoutée:

Pendant un certain temps, Intel a vanté mon expérience de portage sur Itanium en utilisant leur expérience de développement à distance VPN sur leur site Web. Parti maintenant mais instantané sur archive.org, voici ce qu'il dit dans leur FAQ à distance :

Q: Avez-vous un client à qui je peux parler du service d'accès à distance?

R: Oui, Hamilton Laboratories *. Pour un examen approfondi des avantages que Hamilton Laboratories tire du service, voir l' étude de cas de Hamilton Laboratories .

Dans «l' étude de cas », il est écrit que j'ai construit une version Itanium parce que les clients réclament cela. Mais je ne me souviens pas avoir vendu de copie pour Itanium. Les a vendus pour tout le reste, y compris PowerPC (et combien de ceux qui exécutent NT supposent qu'il y en avait?) Juste jamais pour Itanium.

Défi: Accélérer le développement de son produit Hamilton C Shell pour garantir un délai de commercialisation favorable des outils d'architecture de ses clients pour Intel® Itanium® et Windows * 2000.

Solution: utilisé le programme d'accès à distance, y compris l'accès Internet haut débit et le client VPN Shiva® pour accéder à un environnement de développement Itanium, modifier le code source et créer des fichiers, tester le débogage et recompiler l'application 64 bits à distance en seulement 7 heures.

Nicole Hamilton
la source
5
Rien à modifier. Tout mon shell C est hautement multithread mais surtout à cette époque, devait être un C très portable et très efficace comme écrit car les compilateurs que j'utilisais au début des années 90 étaient souvent très basiques et les optimiseurs parfois peu fiables. J'avais déjà construit pour des machines RISC 64 bits et j'avais déjà trouvé et corrigé tous les problèmes d'alignement. Pour la perf, je suis toujours allé directement aux API Win32 pour tout, donc ce n'était peut-être pas une mauvaise bibliothèque d'exécution C non plus. La machine vraiment chaude était l'Alpha et par rapport à elle, l'Itanium était juste décevant.
Nicole Hamilton
8
Je viens de regarder votre C Shell. C'est assez génial. J'ai toujours considéré Cygwin comme un copout. Je vais devoir l'essayer un certain temps.
Michael Brown
6
C'était Intel, pas Microsoft, avec ce système de développement à distance fou. Microsoft a été très utile aux développeurs. Microsoft m'a aidé à obtenir mes machines MIPS, Alpha et PowerPC. J'avais l'habitude d'obtenir des CD faits à la main des nouvelles versions de NT auprès du groupe de développement au début de 1992, alors qu'il n'y avait pas beaucoup de copies ailleurs que sur le campus de Microsoft.
Nicole Hamilton
8
Non, le noyau NT était assez agnostique sur l'architecture du processeur. Dave Cutler en était un fanatique. Ils ont commencé le développement NT sur un i960 , juste pour éviter que des x86 ne se glissent dans le code. Et alors qu'ils abandonnaient l'i960, la NT 3.1 Beta est sortie sur x86 et MIPS en juillet 1992 et sur Alpha quelques mois plus tard, iirc. Microsoft m'avait aidé à obtenir les machines MIPS et Alpha, j'ai donc pris en charge les 3 processeurs dès qu'ils ont été annoncés. La seule chose spéciale à propos de l'Itanium était que c'était une déception et qu'il ne se vendait pas bien.
Nicole Hamilton,
1
@ColeJohnson - Comme le souligne Nicole Hamilton, le problème n'était pas le noyau NT. Je veux dire que Windows Server 2008 R2 a pris en charge Itanium. Le problème n'était donc pas le système d'exploitation. Le problème était la plate-forme elle-même. Bien sûr, cela n'a pas aidé AMD de jeter une clé dans les plans d'Intel en étendant simplement la plate-forme x86 elle-même.
Ramhound
4

Réponse rapide: performances médiocres. Intel a essayé de sortir un produit révolutionnaire alors qu'ils auraient dû évoluer vers le produit qu'ils voulaient.

Plus précisément: le processeur n'était pas assez rapide dans des circonstances générales. Intel a sorti le processeur au moment où l'écart entre la vitesse du processeur et la vitesse de la mémoire s'élargissait. Itanium, étant un processeur RISC (Reduced Instruction Set), nécessitait plus d'octets par instruction que son cousin, les variantes x86. L'augmentation de la charge mémoire a provoqué un ralentissement du processeur.

Tout cela a été exaspéré par l'architecture entière étant, essentiellement, une première version. Bien que RISC lui-même ne soit pas une nouvelle idée, de nombreux composants matériels étaient et avaient besoin de nouveaux schémas de configuration. Il y avait aussi beaucoup de nouvelles idées dans la mise en page des instructions Itanium qui devaient être complètement digérées par la communauté de développement avant que des logiciels de haute qualité ne soient disponibles.

En fin de compte, beaucoup de technologies ont fini par être utilisées dans la version existante de puces d'Intel - tout simplement pas facilement visible pour l'utilisateur final.

A. Phillips
la source
2
Vouliez-vous dire les mauvaises performances lorsque vous faites des trucs Itanium, ou les performances absolument horribles lors de l'émulation du code X86 hérité?
Hennes
1
tous les deux. Mon impression était que l'émulateur X86 n'était pas très important pour l'équipe Itanium. Au lieu de cela, l'émulateur était une caractéristique essentielle du produit, car il s'agissait de l'intervalle sur lequel la plupart des clients se forgeraient une première impression.
A. Phillips
1
Les performances Itanium dans un code Itanium bien écrit étaient fantastiques - il n'y avait tout simplement pas beaucoup de bon code.
A. Phillips
5
Que signifie «code Itanium bien écrit», Aaron? Si c'est un bon C propre où tout est correctement aligné sans lancer fâcheux et ainsi de suite, quoi de plus fait quelque chose de particulièrement bien écrit pour un Itanium? Avec mon shell C, je pouvais facilement timecalculer des trucs liés au calcul (par exemple, factoriser des nombres), des E / S (copier ou copier des fichiers) et des performances du système d'exploitation (créer des threads ou des processus). Sur l'Alpha, c'était comme, wow, c'est rapide. Donnez-moi un double processeur, je pourrais le mesurer facilement. Je vous le dis, l'Itanium était un chien de toute façon que vous le regardiez, surtout par rapport au battage médiatique.
Nicole Hamilton
4
Les plates-formes MIPS, Alpha et PowerPC étaient également nouvelles, tout comme NT au début des années 90 et ces autres puces, en particulier Alpha, étaient rapides par rapport à la plupart des machines x86. J'ai toujours une de chacune de ces autres machines dans mon sous-sol. Itanium n'était tout simplement pas génial. Ce n'était pas le premier faux pas d'Intel. D'autres lévriers se souviendront de leur désastre du 432 en 1981. C'était également une architecture mal conçue qui est tombée en panne.
Nicole Hamilton
3

L'itanium est un excellent design si vous pouvez en tirer parti .

Malheureusement, cela signifie que vous aurez besoin d'un compilateur très avancé pour ce faire. Ou même un par modèle spécifique de CPU. (Par exemple, une version plus récente de l'Itanium avec une fonctionnalité supplémentaire nécessiterait un compilateur différent).

La création d'un tel compilateur est une tâche difficile. Faire cela pour chaque variation d'un CPU n'est pas économique.

Hennes
la source
Vous n'auriez pas besoin de mettre à jour le compilateur pour les plus récents. Vous souhaitez simplement tirer parti des nouvelles fonctionnalités. J'ai entendu dire qu'ils conserveraient la compatibilité descendante.
Cole Johnson
Il aime seulement l'assembleur.
ott--
Je mentionne que cela faciliterait le codage de l'assemblage. Le compilateur pourrait au moins utiliser les instructions les plus simples auxquelles il puisse penser.
Cole Johnson
La création d'un compilateur fonctionnel est très différente de celle qui utilise efficacement les capacités d'instructions larges / parallèles d'un CPU. Si vous travaillez à la main, vous devriez être capable de faire des choses merveilleuses, mais au prix de beaucoup de travail.
Hennes
2
D'un vieux fil slashdot: les compilateurs pour Itanium sont durs
Rich Homolka
2

L'autre partie importante de l'histoire d'Itanium qui n'a pas vraiment été abordée est le fait qu'en 2001, avec les débuts d'Itanium, il était impossible d'intégrer de grandes quantités de RAM dans le matériel de base. x86_64 n'était qu'un point à l'horizon et AMD Opterons ne serait même pas vraiment sorti avant 2 ans.

Ma première (et unique) expérience avec un serveur Itanium a été en 2002 dans une entreprise chimique où ils avaient besoin d'un SQL Server pour effectuer une analyse d'huile pour détecter les défauts. Cette huile provenait et entrait dans des machines de plusieurs millions de dollars dans une entreprise d'un milliard de dollars, ils avaient donc un cluster d'Itaniums, chacun avec 128 Go de RAM. 128 Go de RAM sont encore aujourd'hui une bonne quantité, mais ils sont faciles et bon marché à installer sur un serveur.

En 2002, 128 Go de RAM était une quantité énorme, et comme ils avaient déjà une infrastructure SQL Server existante, il était moins cher de débourser pour quelques machines Itanium et de les charger avec de la RAM que de passer à une autre plate-forme et base de données différente.

Maintenant qu'il est trivial de mettre 128 Go (ou plus) dans un serveur de base, l'une des grandes parties du marché Itanium qui n'avait pas de véritables concurrents viables (l'Opteron est arrivé en 2003, et maintenant, bien sûr, des serveurs qui peuvent prendre des centaines de concerts de mémoire sont omniprésents) regorge d'options qui étaient moins chères à acheter, moins chères à posséder et plus rapides.

Mark Henderson
la source
Je suis à peu près sûr qu'un module ram de 128 Go DDR3 de nos jours vous offrira au moins un grand (USD)
Cole Johnson
2
Je n'ai jamais vu un module DDR de 128 Go ... mais mettre 128 Go de RAM ECC enregistrée dans un serveur coûte plus de 1000 $, mais pas beaucoup plus; dépend de l'accord que vous pouvez obtenir de votre fournisseur.
Mark Henderson
Je n'ai jamais vu non plus un module simple de 128 Go . Mais cet ensemble de 8 x 16 Go est l'équivalent et il coûte 1 500 $, ce qui est assez bon marché par rapport aux ensembles de 10 000 $ que j'ai vus ailleurs
Cole Johnson
Je vois beaucoup de Gbs; devrait-il s'agir de Go?
Charlie
1

J'ai entendu dire que c'était parce qu'AMD avait poussé Intel à allouer plus de ressources à leurs processeurs traditionnels afin de rivaliser. AMD est sorti avec ses Athlon 64 en 2003, qui avaient un meilleur rapport prix / performances que les Pentium. On croit que si Intel continuait à développer Itanium en pleine force, ce serait plus rapide que les processeurs x86 actuels.

Thomas
la source
1
Le dicton "Aurait pu ... Aurait" s'applique à ce qu'aurait pu être Itanium si AMD n'avait pas simplement étendu x86. Intel pourrait avoir s'ils le voulaient vraiment, tué x86-64, mais ils étaient sous la pression de Microsoft, je suis sûr, si Intel ne concédait pas de licence x86-64 à AMD, la situation actuelle serait probablement inversée avec AMD en tête et Intel à peine capable de suivre les avancées d'AMD.
Ramhound