The IA-64 reference article from the English Wikipedia on 24-Apr-2004
(provided by Fixed Reference: snapshots of Wikipedia from wikipedia.org)

IA-64

For thoughtful child sponsors
In computing, IA-64 (Intel Architecture-64) is a 64-bit CPU architecture developed by Intel and Hewlett-Packard for processors such as Itanium. Unlike previous Intel x86 processors, it is not geared toward high performance execution of the IA-32 (x86) instruction set.

Architecture

EPIC

The design is centred on Explicitly Parallel Instruction Computing (EPIC), similar to VLIW (Very Long Instruction Word) design, but with a number of enhancements. Where a typical VLIW will assign sub-instructions from each long instruction word to a particular fixed functional unit, the Itanium supports several bundle mappings to allow for more instruction mixing possibilities and which include a balance between serial and parallel execution modes. There was room left in the initial bundle encodings to add more mappings in future versions of IA-64. In addition, the Itanium has individually settable predicate registers to cause a kind of runtime determined "no output" mode to each instruction.

Registers

The IA-64 architecture includes a very generous complement of registers: 128 each of 82-bit floating point and 64-bit integer registers. In addition to the sheer number, IA-64 adds in a register rotation mechanism that is controlled by the Register Stack Engine. Rather than the typical spill/fill or window mechanisms used in other processors, the Itanium can rotate in a set of new registers to accommodate for new function parameters or temporaries. The register rotation mechanism combined with predication is also very effective in executing automatically unrolled loops.

Instruction set

The architecture also provides a CISC-like complement of instructions. Thus we have explicit instructions for multimedia operations, and explicit instructions for floating point operations.

Despite its great capabilities, the IA-64 instruction set is notoriously difficult to program directly. Intel has strongly recommended against the practice of assembly programming on Itanium, in general, and instead use their C++ compiler, which contains platform-specific heuristics.

A raw Itanium, when first booted, is actually missing some of its instruction functionality. A boot-rom like programmed called an EFI program is loaded which loads additional code into on-chip memory for defining these instructions, and performing other boot-time configurations, such as choosing the execution mode of the processor (64-bit versus 32-bit.) This design allows Itanium system to be deployed with different capabilities depending on the contents of the EFI program.

IA-32 support

In order to support IA-32, the Itanium can switch into 32-bit mode with special jump escape instructions. The IA-32 instructions have been mapped to the Itanium's functional units. However, since the Itanium is built primarily for speed of its EPIC-style instructions, and because it has no out-of-order execution capabilities, IA-32 code executes at a severe performance penalty compared to either the IA-64 mode, or its Pentium line of processors. For example, the Itanium functional units do not automatically generate integer flags as a side effect of ordinary ALU computation, and does not intrinsically support multiple outstanding unaligned memory loads. There have been reports that Intel is seeking a software emulation based solution (much like Transmeta did) for executing IA-32 code in future versions of Itanium to replace the current hardware solution.

Competitors

Although other 64-bit architectures have existed for a long time most (MIPS, Alpha, PA-RISC) have faded from the marketplace. Itanium's remaining competition for the 64-bit server and workstation market appear to be the newcomer AMD with its AMD64 architecture, and the entrenched rivals: IBM's POWER architecture, and Sun's Sparc64 architecture. Apple may also challenge Intel with its XServe product line based on the IBM PowerPC architecture.

Intel has so far only marketed the Itanium in the high-end work station, server and super-computer space.

In response to favourable industry reaction to the AMD64, Intel has plans for future versions of the Xeon to support its EM64T extensions to IA-32, which are largely instruction-set compatible with AMD64.

External links