Introduction
Porting code from IA-32 architecture to EM64T to take advantage of 64-bit involves tradeoffs in performance considerations.
By Robert Y. Geva, Principal Engineer, Intel Software and Solutions Group
Intel® Extended Memory 64 Technology (Intel® EM64T) is a 64-bit extension to Intel's IA-32 architecture. Data can be accessed in 64-bit chunks, and large memory is addressable without special OS calls. This white paper introduces the architecture extensions and discusses performance tradeoffs when porting software from 32-bit to 64-bit. While being able to perform operations on 64-bit instead of 32-bit is an advantage for software that requires them, not all software can, in practice, take advantage of the additional computation bandwidth. Conversely, all data access addresses becoming 64-bits leads to increased pressure on HW resources, for example, the data cache. When porting SW from 32-bit in Intel IA-32 architecture to Intel EM64T architecture, there are performance implications resulting from differences in the architecture, implications of the microarchitecture and differences in software conventions. This white paper does not attempt to provide a characterization of applications that can benefit from porting to 64-bit—it merely discusses the tradeoffs.
We also note that several compilers are available that generate native code for EM64T: the Intel® Compiler and the Microsoft Visual Studio* 2005. Make strong efforts to optimize code for performance on Intel EM64T-based platforms.
Intel® EM64T Architecture
Intel® Extended Memory 64 Technology extends Intel IA-32 from a 32-bit architecture to a 64-bit architecture. EM64T introduces a new mode (referred to as "long mode") which supports running 32-bit or 64-bit applications. For the purposes of this paper, we will concentrate on the three modes in which most software will run:
- Legacy mode: In this mode the architecture executes 32-bit SW without 64-bit capabilities. A 32-bit operating system is executing.
- Compatibility mode: In this mode, a 64-bit operating system executes a 32-bit application. This is a subset of long mode.
- 64-bit mode: A 64-bit operating system executes code that was compiled for 64-bit and takes advantage of the new architecture. This is also a subset of long mode.
![]()
If you're interested in this topic, these articles may be helpful:
![]() | An Introduction to Business Intelligence for IT What is Business Intelligence and How Can it Help Me? Every year orga... |
![]() | Creating C# wrappers for Intel Integrated Performance Primitives using Microsoft .NET interoperability mechanisms from Intel Corp. One of the beauties of .NET is that an object wri... |
![]() | Intel Mobile Application Architecture Guide Intel Corp. Companies are recognizing the potential for mobilized s... |
![]() | Intel Itanium microarchitecture support for .NET and Java by Matt Gillespie, technical author and editor. Intel Corp. The Int... |
![]() | Getting started with SSE/SSE2 for the Intel Pentium 4 Processor Intel Corp. This paper teaches the programmer how to get started wi... |
![]()
Related Jobs:

