In This Article
What is IA-64 (Intel Architecture 64)?
IA-64 or Intel Architecture 64 refers to the 64-bit processor architecture. It is developed by Intel and Hewlett-Packard and features the Itanium series of processors that are specifically designed to be used in server processing.
Technically, this specific architecture is built on explicit parallelism at the instruction level where it is the compiler that decides which particular instructions are to be carried out in parallel, as opposed to the superscalar architecture.
- IA-64 is the Intel-exclusive 64-bit processor architecture that features in the Itanium series of CPUs and cannot be used by others such as AMD.
- This specific Instruction Set Architecture supports server processing and similar applications but cannot run old x86 applications.
- The architecture signifies explicit parallelism and the compiler decides which instructions will be executed in parallel.
- Intel Architecture 64 uses a Very Long Instruction Word architecture which supports static scheduling.
- The most significant potential of the IA-64 is in its ability to run codes that are essentially and specially optimized for the CPU.
Understanding IA-64 (Intel Architecture 64)
IA-64 is often referred to as Intel Itanium architecture because this specific ISA or Instruction Set Architecture features in the Itanium family of 64-bit Intel CPUs.
However, the fundamental specs of the ISA were initiated at HP but were then employed by Intel in collaboration with them.
It was in 2001 when the first Itanium processor was released by Intel under the codename Merced.
This particular architecture relies on explicit instruction-level parallelism. The instructions that are to be executed in parallel are typically determined by the compiler.
This is actually to the contrary of the superscalar architectures that typically relies on the processor to deal with the instruction dependencies during runtime.
Some of the useful features included in the design of the IA-64 architecture are:
- It uses fixed length instruction instead of instructions of variable length as it is in the x86 or IA-32 architecture.
- There are four-byte instructions packed in sets of three long instruction words.
- The architecture also uses as many as 256 registers for performing the integer and non-integer or floating point operations. The number of such registers in IA-32 adds up to only 16.
Another useful and unique feature of the IA-64 is that it employs ‘predication’ which allows it to predict the future. This helps it and the processor to take the full advantage of the superior pipeline architecture.
With such useful features of the IA-64 architecture, the cores of all Itanium processors, including Tukwila can perform up to six instructions in one clock cycle.
The key to such potential in this specific architecture is the capability to run processor optimized codes.
Moreover, since the compiler plays a significant role, its technology is far more improved so that it matches easily with the specs of this architecture.
It is due to this improved compiler that codes are explicitly parallelized and allows much improved utilization of the CPU.
A branch instruction following a compare is carried out in parallel from both sides.
When a particular branch is determined to be correct, the result of the other branch is gotten rid of because it is of no use anymore.
The compilers of the IA-64 set up this prediction by interleaving the instructions and adding codes.
This tells the processor how exactly it should execute it in parallel.
However, when there is no such prediction set up, the processor performs an easier prediction.
Here, it does not execute both sides of the branch but only that side of it in parallel, which it assumes to be the outcome.
It may not always be right with its prediction, and when the guessing is wrong, the parallelism is lost along with a few nanoseconds.
The compiler for the IA-64 uses inter-procedural compilation. There are significant benefits to it that ensure a much higher performance level.
- This enables it to parallelize codes covering a larger region as compared to any other traditional compiler.
- This also reduces the need for hardware because it does not need to use a reorder engine or dynamic scheduling anymore, which are common to most RISC processors.
Apart from that, the compiler also tries to initiate loads earlier than the schedule. This allows the data to take more time to arrive and therefore it does not need stalling the processor.
The IA-64 architecture also allows running the legacy code successfully and for that you do not need to make any modifications.
However, the performance may not be very good.
Moreover, though applications and programs written for x86 computers run quite well on the IA-64 computers through translation layers, some recompilation is, however, needed.
This will help in taking the full advantage of IA-64.
IA-64 Vs x64
- IA-64 refers to the 64-bit Itanium architecture, but x64 is an extension to the x86 architecture of 64 bits.
- The IA-64 architecture is exclusive to Intel, but x64 can be used by anyone.
- IA-64 is actually designed to be used for high-end server applications, but in comparison, x64 was initially designed for desktop computers but was scaled up later on to be used in all types of regular computers.
- The IA-64 systems cannot run any old x86 applications, but the x64 systems can.
- The IA-64 is pretty slow to adapt new technologies as opposed to the x64 architecture which is pretty quick in this regard.
- The newer versions of Windows will not support IA-64 but will support x64.
- IA-64 uses the VLIW or Very Long Instruction Word architecture which supports static scheduling, but x64 is superscalar and uses the regular 64-bit architecture in its design and supports dynamic scheduling.
- In IA-64 the compiler resolves the reliance between the instructions and plans them properly and the CPU simply executes them, but in x64 the compiler simply schedules the instructions not caring about the dependencies which are done by the CPU, reordered and then executed properly.
- The IA-64 can pull out a lot more parallelism than the x64 because the code is dependent on the internal architecture of each chip which has all the necessary information. However, the x64 architecture cannot do this.
- IA-64 deals with the code and follows the instruction set and so a code compiled on one system can operate on another very easily which is not possible with x64.
What is Windows IA-64?
Windows IA-64 refers to the Intel Itanium 64-bit processors that come with more advanced compiler capabilities.
It is the 64-bit Intel architecture that does not support running those 32 bit applications as in the x64 processors.
You will typically need a special edition of Windows to run them on these CPUs.
Is IA-64 RISC or CISC?
Ideally, the IA-64 is a lot different from both the Reduced Instruction Set Computer or RISC and the Complex Instruction Set Computer or CISC because it uses Very Long Instruction Word or VLIW architecture.
However, the fact that it attempts to shift complication from the hardware to its compiler, makes it more of a RISC than a CISC.
IA-64 is the particular ISA of Intel that features in their Itanium 64-bit CPUs. It supports explicit parallelism at the instruction level.
The compiler in this specific architecture plays a significant role in handling and resolving the dependencies between instructions by deciding which of those should be executed in parallel.