X86 Emulation on Itanium (IA-32 Execution Layer)
Unlike the modern x86-64 / AMD64 architecture, the Itanium architecture is not capable of executing x86 applications natively due to its very different architecture design. But since the software support for Itanium was lackluster and migrating from existing x86 systems would be a headache without native software, a compatibility layer had to be provided.
For the first few generations of Itanium, namely until the Montecito line of Itanium 2 CPUs launched in 2006, a hardware emulation layer was built in to all Itanium chips. However it was later discovered that well implemented software emulation of x86 instructions can be faster than the actual hardware emulation, which is why Intel developed and released the IA-32 Execution Layer for Windows and Linux in 2004.
The execution layer was later included in Windows Server 2003 Service Pack 1 and later versions of Windows, as well as in most Linux distributions released after 2004.
Benchmarks
Here are a selected number of benchmarks comparing the Hardware Emulation in the Madison based Itanium 2 1.3 GHz chip to the IA-32 Execution Layer.
Hardware:
- HP Integrity rx2600 Server
- CPU: 1x / 2x Intel Itanium 2 1.3 GHz 3 MB (Madison)
- RAM: 6 GB DDR RAM
- OS: Microsoft Windows XP Professional 64-Bit Edition, Version 2003 (RTM)
- GPU: ATI FireGL X1
Software | Architecture | 1 CPU
Hardware |
2 CPUs
Hardware |
1 CPU
IA-32 EL |
Improvement vs
1 CPU Hardware |
2 CPUs
IA-32 EL |
Improvement vs
2 CPUs Hardware |
---|---|---|---|---|---|---|---|
7-Zip 9.20 "7z b" - Best of 3 | ia64 | 1242 | 2372 | n/a | n/a | n/a | n/a |
7-Zip 9.20 "7z b" - Best of 3 | x86 | 490 | 866 | 951 | +94,1% | 939 | +8,4% |
CPU-Z Benchmark 17.01.32 - Best of 3 | x86 | 7,0 | 14,2 | 7,7 | +10,0% | 7,7 | -45,8% |
PCMark 2002 Pro CPU Score - 1 Run | x86 | 1228 | 1229 | 2591 | +111,0% | 2597 | +111,3% |
Software setup | 1 CPU | Performance
vs Native |
2 CPUs | Performance
vs Native |
---|---|---|---|---|
7-Zip 9.20 ia64 (Native) | 1242 | 100% | 2372 | 100% |
7-Zip 9.20 x86 (Hardware Emulation) | 490 | 39,5% | 866 | 36,5% |
7-Zip 9.20 x86 (IA-32 Execution Layer) | 951 | 76,6% | 939 | 39,6% |