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""