Stavo leggendo la storia del computer e ho seguito i processori IA-64 (Itanium). Sembravano davvero interessanti ed ero confuso sul perché Intel avrebbe deciso di abbandonarli.
La possibilità di scegliere esplicitamente quali 2 istruzioni si desidera eseguire in quel ciclo è un'ottima idea, soprattutto quando si scrive il programma in assembly, ad esempio un bootloader più veloce.
Le centinaia di registri dovrebbero essere convincenti per qualsiasi programmatore di assemblaggio. In sostanza, è possibile memorizzare tutte le variabili delle funzioni nei registri se non vengono chiamate altre.
La capacità di fare istruzioni come questa:
(qp) xor r1 = r2, r3 ; r1 = r2 XOR r3
(qp) xor r1 = (imm8), r3 ; r1 = (imm8) XOR r3
rispetto a dover fare:
; 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
Ho sentito che era a causa della mancanza di comparabilità x86 all'indietro, ma non è stato possibile risolverlo semplicemente aggiungendo il circuito Pentium ad esso e semplicemente aggiungendo un flag del processore che lo avrebbe commutato in modalità Itanium (come passare alla modalità Protetta o Lunga)
Tutte le grandi cose a riguardo avrebbero sicuramente fatto loro un balzo in avanti di AMD.
Qualche idea?
Purtroppo questo significa che avrai bisogno di un compilatore molto avanzato per farlo. O anche uno per modello specifico della CPU. (Ad esempio, una versione più recente di Itanium con una funzionalità aggiuntiva richiederebbe un compilatore diverso).
Quando stavo lavorando su un progetto WinForms (la destinazione aveva solo .NET 2.0) in Visual Studio 2010, avevo una destinazione di compilazione di IA-64. Ciò significa che esiste un runtime .NET che è stato possibile compilare per IA-64 e un runtime .NET significa Windows. Inoltre, la risposta di Hamilton menziona Windows NT. Avere un sistema operativo completo come Windows NT significa che esiste un compilatore in grado di generare codice macchina IA-64.