What is Intel® Extended Memory 64 Technology?
Intel® Extended Memory 64 Technology, or Intel®64, is an enhancement to Intel's IA-32 architecture. The enhancement allows the processor to run newly written 64-bit code and access larger amounts of memory. These extensions do not run code written for the Intel® Itanium® processor. Click here for a more detailed description of Intel®64. Further details on the 64-bit extension architecture and programming model can be found in the Intel® 64 and IA-32 Architectures Software Developer's Manuals.
Which Intel processors support Intel®64 and when will they be available?
Since Q4 of 2006, Intel®64 has been supported in all mobile, desktop and server processors that are based on the Intel® Core™ microarchitecture. All Intel® Xeon® platforms based on the Intel NetBurst® microarchitecture support Intel®64 as well. Please refer to the processor product list for more information.
How does the performance of 64-bit Itanium® and 64-bit capable IA-32 processor based platforms compare?
The Itanium processor family is and will continue to be the highest performing and most reliable product family we offer for high-end, multi-processor systems. However, the performance differential is constantly changing due to the frequent release of new Itanium and IA-32 processor based platforms. Click here to find the latest performance ratings for all Intel products.
Is Intel®64 the same technology used in the Itanium® 2 processor?
No. Intel®64 is an extension to Intel's processors based on the IA-32 architecture. The Itanium processor family is based on the EPIC architecture. These are two separate families of processors, based on two different architectures. The Itanium processor family is specifically designed for the most demanding mission-critical applications.
Can the Itanium 2 IA-32 Execution Layer run the new Intel®64 code?
At this time, the IA-32 Execution Layer does not support Intel®64 binaries. Intel will evaluate providing this additional capability if and when customers request it.
Which O/S (Operating System) will support Intel's processors with Intel®64?
The following O/S vendors have available or announced product support for Intel®64. Contact each vendor for more details.
Microsoft currently has two 64-bit operating systems that support Intel®64: Windows* Server 2003 x64 Edition and Windows* XP Professional x64 Edition. In addition, Microsoft released the Windows* Vista operating system in 2007, which also supports Intel®64.
Apple MAC OS* X Tiger, version 10.4.1 supports Intel®64.
- Red Hat:
Redhat version 3.0 (and greater) supports Intel®64.
SuSE 8.2 (and greater), SLES 8.0 and SLES 9.0 supports Intel®64.
- Sun Solaris*:
Solaris 10 x64/x86 supports Intel®64.
FreeBSD version 6.0 supports Intel®64.
Is it possible to write software that will run on Intel's processors with Intel®64, and AMD's 64-bit capable processors?
Yes, in most cases. Even though the hardware microarchitecture for each company's processor is different, the operating system and software ported to one processor will likely run on the other processor due to the close similarity of the instruction-set architectures. However, Intel processors support additional features, like the SSE3 instructions and Hyper-Threading Technology, which are not supported on non-Intel platforms. As such, we believe developers will achieve maximum performance and stability by designing specifically for Intel® architectures and by taking advantage of Intel's breadth of software tools and enabling services.
How does Intel®64 work, and what software is there to take advantage of 64-bit extensions?
Development of a broad "ecosystem", ranging from processors, chipsets and tools to operating systems (O/S), applications, utilities and drivers is expected to take some time to develop. Platforms with Intel®64 can be run in three basic ways (note: a 64-bit capable BIOS is required for all three scenarios):
- 32-bit O/S and 32-bit applications (Legacy Mode): No software changes are required, however the user gets no benefit from Intel®64.
- 64-bit O/S and 32-bit applications (Compatibility Mode): This usage requires all 64-bit device drivers. In this mode, the O/S will see the 64-bit extensions, but the 32-bit application will not. Existing 32-bit applications do not need to be recompiled, and may or may not benefit from the 64-bit extensions. The application will likely need to be recertified by the vendor to run on the new 64-bit extended O/S.
- 64-bit O/S and 64-bit applications (64-bit Mode): This usage requires 64-bit device drivers. It also requires applications to be modified for 64-bit operation and then recompiled and validated.
Does the Intel IA-32 processor with Intel®64 have more registers than IA-32 processors without Intel®64?
Yes, Intel's IA-32 processors with Intel®64 have 16 General Purpose Registers (GPRs) and 16 XMM registers. The GPRs and XMM registers are 64 bits and 128 bits in width, respectively, in processors with Intel®64. The additional registers are only used by applications running in 64-bit mode. IA-32 processors without Intel®64 have 8 GPRs and 8 XMM registers. The GPRs and XMM registers are 32 bits and 128 bits in width, respectively, in processors without Intel®64. More details can be found in the Intel 64 and IA-32 Architectures Software Developer's Manuals.
Will applications written for the Intel Itanium processor family run on Intel's IA-32 processors with Intel®64 without being re-compiled?
No. The instruction sets for Intel's Itanium processor family are different than the IA-32 processor family. Applications need to be compiled separately for each processor family.
I have two platforms: one based on the Itanium processor family, and one based on an IA-32 architecture processor family with Intel®64. Will the same 64-bit operating system work on both platforms?
No. Different operating systems are required for each type of platform due to the different instruction set architectures. Contact your OS vendor to identify which operating system is needed for your particular platform configuration.
I have two platforms: one based on an IA-32 architecture processor family with Intel®64, and one based on an IA-32 architecture family without Intel®64. Will the same operating system work on both platforms?
Yes, if you are running a 32-bit operating system on both platforms. However, a 32-bit operating system will not take advantage of Intel®64.
If you want to take advantage of Intel®64, the first platform will need to run an operating system designed for 64-bit extensions. Operating systems for 64-bit extended systems will not run on the second platform. Contact your OS vendor to identify which operating system is needed for your particular platform configuration.
Does Intel®64 include support for AMD's 3DNOW!* instructions?
No. Intel's IA-32 architecture does not support the 3DNOW! instruction set today. This has not changed with the addition of Intel®64.
What changes are needed for an IA-32 based platform to run a 64-bit O/S and 64-bit applications?
To run 64-bit applications and a 64-bit O/S, a platform will need an IA-32 processor with Intel®64, along with updated BIOS and drivers that have been modified for Intel®64. Contact your BIOS vendor and adapter vendor to get the BIOS and drivers that have been optimized for platforms with Intel®64.
Will existing 32-bit software run, without being re-compiled, on an IA-32 processor with Intel®64?
Yes, with some notes of caution. Refer to the 64-bit Extension Technology Software Developer's Guide for more details.
Running a 32-bit application on a 32-bit O/S, even with a processor with Intel®64, will execute without issue. With a 64-bit O/S and a 32-bit application the processor is designed to support this mode of operation completely (this is called compatibility mode). It is possible, however, that some applications may have certain dependencies beyond the processor's control (e.g. dependencies on the O/S or drivers) which may cause the applications to not run as expected.
Does Intel's Hyper-Threading Technology work in conjunction with Intel®64?
Yes. Both 32-bit and 64-bit applications can take advantage of the threading parallelism and performance improvements enabled with Intel's Hyper-Threading Technology.
Does Intel make available a compiler which will generate optimized code for Intel®64?
Yes. As of version 8.1, the Intel Fortran and C++ compiler for both Linux and Windows support Intel®64. For more information, click here.
Are software optimization tools available that support Intel®64?
Yes. Intel® VTune™, the Intel® Math Kernel Library (Intel® MKL), and Intel® Performance Primitives (Intel® IPP) all support Intel®64 under Linux and Windows development environments. Additional VTune information can be found here. For Intel MKL and Intel IPP, information can be found here.
Where can I get applications that have been optimized for Intel®64?
Contact software vendors for their schedules, pricing and availability of applications compatible with Intel®64. Like any industry transition, we expect it to take time for applications to be ported to the 64-bit extended operating systems. By comparison, there are currently thousands of applications optimized for the Intel Itanium processor family. Some examples of currently available 64-bit applications can be found here* and here*.
Can you recommend any books for further reading?
We recommend Andrew Binstock’s book Programming with Intel® Extended Memory 64 Technology: Migrating Software for Optimal 64-bit Performance, available from Intel Press.