IA-32 Execution Layer

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Script error: No such module "Infobox".Template:Template other Script error: No such module "Check for unknown parameters".Script error: No such module "Check for conflicting parameters". The IA-32 Execution Layer (IA-32 EL) is a software emulator in the form of a software driver that improves performance of 32-bit x86 applications running on 64-bit Intel Itanium-based systems, particularly those running Linux and Windows Server 2003. Windows Server 2003 SP1 (for Itanium) and later include it; it can also be downloaded from Microsoft.[1] Most Linux distributions for Itanium also include it. The x86 hardware emulation which was built into Itanium processors was notoriously slow, but Intel did not re-engineer it; after IA-32 EL appeared, Intel dropped x86 hardware emulation from Itanium, starting with the Montecito models in 2006.

The IA-32 EL uses a two-phase (later three-phase) approach: initially it quickly translated every piece of code at a basic block level, adding certain instrumentation for detecting hot code; then hot code was dynamically optimized at a super-block level, and the optimized translated code replaced cold code on the fly.[2] Later interpretation engine was added that allowed to avoid altogether translation of code executed just a few times - cold non-optimized translation became thus the second phase, and hot optimized translation became the third phase. IA-32 Execution Layer supported self-modifying code, and could even optimize it quite well.

Part of the software is under the LGPL and part is under an Intel proprietary license.[3]

See also

References

<templatestyles src="Reflist/styles.css" />

  1. The IA-32 Execution Layer 4.3 Software Driver (microsoft.com)
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

External links

Template:Intel


Template:Asbox