Estaba leyendo sobre la historia de la computadora y me encontré con los procesadores IA-64 (Itanium). Sonaban realmente interesantes y estaba confundido sobre por qué Intel decidiría abandonarlos.
La capacidad de elegir explícitamente las 2 instrucciones que desea ejecutar en ese ciclo es una gran idea, especialmente al escribir su programa en ensamblado, por ejemplo, un gestor de arranque más rápido.
Los cientos de registros deberían ser convincentes para cualquier programador de ensamblaje. Esencialmente, podría almacenar todas las variables de funciones en los registros si no llama a ninguna otra.
La capacidad de hacer instrucciones como esta:
(qp) xor r1 = r2, r3 ; r1 = r2 XOR r3
(qp) xor r1 = (imm8), r3 ; r1 = (imm8) XOR r3
versus tener que hacer:
; 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
Escuché que no se podía comparar con versiones anteriores de x86, pero no podía solucionarlo simplemente agregando el circuito Pentium y simplemente agregando un indicador de procesador que lo cambiaría al modo Itanium (como cambiar al modo Protegido o Largo)
Todas las grandes cosas al respecto les habrían dado un salto gigantesco por delante de AMD.
¿Algunas ideas?
Lamentablemente, esto significa que necesitará un compilador muy avanzado para hacer esto. O incluso uno por modelo específico de la CPU. (Por ejemplo, una versión más nueva de Itanium con una función adicional requeriría un compilador diferente).
Cuando estaba trabajando en un proyecto WinForms (el objetivo solo tenía .NET 2.0) en Visual Studio 2010, tenía un objetivo de compilación de IA-64. Eso significa que hay un tiempo de ejecución .NET que se pudo compilar para IA-64 y un tiempo de ejecución .NET significa Windows. Además, la respuesta de Hamilton menciona Windows NT. Tener un sistema operativo completo como Windows NT significa que hay un compilador capaz de generar código de máquina IA-64.