In order to overcome the limitations met by traditional architectures, IA-64 used a technique called predication where it could indicate which paths are being utilized and which are not. The paths that are in use proceed with their activity while paths detected as unused would be automatically turned off. Predication is an effective technique that allows the handling of complex activities when the computer pursues aggressive instruction level parallelism (ILP).2
Memory insufficiency is a common problem that traditional architecture cannot address because CPU’s run on faster speeds than usual. IA-64 resolves the problem by using a technique referred to as speculation.3 The purpose of this is to initiate loads of previous memory initiations even before the branch is required. This makes the memory available on demand. This also increases instruction level parallelism thus reducing the “impact of memory latency”.4 The “Nat” bits allow IA-64 to load data ahead of time without registering an error message.5
Traditional architectures have limited instruction level parallelism. In IA-64 architecture, processors usually include “128 general purpose integer registers, 128 floating point registers, 64 predicate registers and many execution units” to accommodate present and future requirements.6 This is especially important if the server handles huge amount of data at any given time.
IA-64 architecture handles loops different from traditional architecture. The use of register rotation prevents code bloats by allowing the “pipelining of loops.”7 Unlike traditional architecture, each register moves up a notch. The last register will revert back to the beginning hence simulating rotation. In combination with the predication, the loop feature enables the compiler to create a loop code that is important in highly parallel forms.8