IA-64 is not short for IndeterminAcy 64. It's the instruction set architecture of the new Intel Itanium processor.

The Itanium's i586 emulator

There are two ways a shift from one instruction set to another can be achieved: recompile or emulate. The "recompile" option is available only for free software and shared-source software; the move from IA-32 to IA-64 will break legacy proprietary software compiled for IA-32. Thus, the Itanium processor (and possibly other IA-64 processors) contains an emulator that runs i586 (Pentium) code, but because (unlike in the Transmeta Crusoe situation) there is no additional RAM available to cache the results of a dynamic recompilation, it runs an interpretive core at the speed of an older Pentium. (At least it's better than the Pentium 4, whose narrow pipe to its dynarec cache puts the '4' (as in 486) back in Pentium 4.)

IA-64's stack

Registers r0-r31 of an IA-64 processor are similar to those in common RISC architectures. Registers r32-r127, on the other hand, contain the top 96 words of the stack and can rotate forward or backward. This can happen for three reasons:

  • When a value is pushed onto the stack, r127 is written to memory, the registers rotate forward one space, and the new value is written to r32. There are instructions to push more than one word at a time, which are typically used to create a stack frame.
  • When a value is popped from the stack, the value is read from r32, the registers rotate backward one space, and memory is read into r127. Again, there are instructions to pop and ignore several words to destroy a stack frame.
  • In a software pipelined loop, the registers move forward one space every cycle of the loop, so that one cycle of the loop can pick up the results of the previous cycle without the dangers of exposed pipelines. Registers 32-127 must be saved prior to entering the loop and restored after the loop.

Disclaimer: I don't work for Intel or Hewlett-Packard, the developers of IA-64. This writeup may contain errors; /msg me with updates.

Console?

IA-64 is not a Nintendo game console unless Nintendo decides to use an Itanium processor in its next console after NINTENDO GAMECUBE. But that didn't stop me from designing this logo, roughly based on that of the Nintendo 64 console, presented in E2 ASCII Art:


                             aa""aa
(props)                  aa""      ""aa
                        Maa            ""aa
                        M  ""aa            ""aa
             aa         M      ""aa         aa"a
         aa""  ""aa     M          ""aa aa""   M
     aa""          ""aa M             "M       "a    aa""aa
 aa""            aa""  MM      MMa     M        Maa""      ""aa
Maa          aa""      "M      MM"a    "a    aa""            aaM
M  ""aa  aa""           Ma     MM M     Maa""            aa""  M
M      MM        a       Ma    MM  M    a"aa         aa""      M
M      MM      M""a  aa""  ""aaMM  M    M   ""aa aa""          M
M      MM      M aM""          ""aa"M  a"       M"             M
M      MM      MM  ""aa            ""aaM        M     aMM      M
M      MM      M"      ""aa          aaM       a"    a"MM      M
M      MM     aM           ""aa  aa""  M       M     M MM      M
M      MM     M       a        MM      M      M     M  MM      M
M      MM    M       a""M      MM      M     aM     M  MM      M
M      MM   M       a"  M      MM      M     M     M"aaMM      M
M      MM  a"       M   M      MM      M    a"    a" aa""      M
M      MM a"       M  aaM      MM      M    M     M""          M
M      MM M       Ma""  M      MM      M   M"                  M
M      MMM         ""aa M      MM      M   M         aaMM      M
M      MM              ""      MM      M  M      aa""  MM      M
 ""aa  M"       Maa            MM      M  M     M""aa  MM  aa""
     ""Ma      M   ""aa        MM      M M     M     ""MM""
         ""aa M  aa""  "M      MM      Ma"    a"
             """"       M      MM      MM     M
                        M      MM      M"  aa""
                        M      MM      Ma""
                         ""aa  MM  aa""
                             ""MM""