Eu estava lendo a história do computador e encontrei os processadores IA-64 (Itanium). Eles pareciam muito interessantes e eu fiquei confuso sobre o motivo pelo qual a Intel decidiu abandoná-los.
A capacidade de escolher explicitamente quais as 2 instruções que você deseja executar nesse ciclo é uma ótima idéia, especialmente ao escrever seu programa em assembly, por exemplo, um gerenciador de inicialização mais rápido.
As centenas de registros devem ser convincentes para qualquer programador de montagem. Você pode essencialmente armazenar todas as variáveis de funções nos registradores se não chamar outras.
A capacidade de executar instruções como esta:
(qp) xor r1 = r2, r3 ; r1 = r2 XOR r3
(qp) xor r1 = (imm8), r3 ; r1 = (imm8) XOR r3
versus ter que fazer:
; 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
Ouvi dizer que não era possível comparar o x86 com versões anteriores, mas não foi possível consertar apenas adicionando o circuito Pentium e adicionando um sinalizador do processador que o alternaria para o modo Itanium (como alternar para o modo Protegido ou Longo)
Todas as grandes coisas sobre isso os colocariam um salto gigantesco à frente da AMD.
Alguma ideia?
Infelizmente, isso significa que você precisará de um compilador muito avançado para fazer isso. Ou mesmo um por modelo específico da CPU. (Por exemplo, uma versão mais recente do Itanium com um recurso extra exigiria um compilador diferente).
Quando eu estava trabalhando em um projeto WinForms (o destino tinha apenas o .NET 2.0) no Visual Studio 2010, eu tinha um destino de compilação do IA-64. Isso significa que existe um tempo de execução .NET que pôde ser compilado para IA-64 e um tempo de execução .NET significa Windows. Além disso, a resposta de Hamilton menciona o Windows NT. Ter um sistema operacional completo como o Windows NT significa que existe um compilador capaz de gerar código de máquina IA-64.