Intel has released their “64-bit technology” in order to compete with AMD’s 64-bit technology. This technology, officially called EM64T (Extended Memory 64 Technology), is present on all Pentium 4 6xx models, on Pentium 4 5×1 models (like 541, 551, 561, and so on) and also on Celeron D 3×1 and 3×6 models (331, 336, 341, 346 and so on). This shows us that Intel will add this technology to all new CPU that they will launch now on. In this article we will explain what is this technology and how it works.
If you want to compare Intel’s implementation to AMD’s , read our article AMD 64-bit architecture (x86-64).
CPUs with this technology have a new operating mode, called IA32E, which has two sub-modes:
- Compatibility mode: Allows 64-bit operating systems to run 32-bit and 16-bit software unmodified. The operating system can have 64-bit (in 64-bit mode), 32-bit and 16-bit (both on compatibility mode) programs running at the same time. However, 32-bit programs will run as if they were running on a 32-bit CPU, i.e., will access only up to 4 GB of RAM. The same idea goes to 16-bit program, that will still access only up to 1 MB of RAM.
- 64-bit mode: Allows 64-bit operation systems to use the new 64-bit addressing space provided by this technology.
As you can see above, EM64T technology can only be used by 64-bit operating systems, like the forthcoming Windows 64. 32-bit operating systems, like Windows XP, will continue to run under regular IA32 mode, i.e., using the regular 32-bit addressing space – in order words, can access only up to 4 GB RAM.
In plain English, Windows nowadays cannot take advantage of EM64T technology since it is still a 32-bit operating system.
[nextpage title=”64-Bit Mode Features”]
Under IA32E 64-bit mode, the CPU gains a lot of new stuff:
- 64-bit addressing space, i.e., applications can address up to 16 EB (exabytes) of RAM (2^64 bytes); however externally current Celeron D, Pentium 4 and Xeon CPUs supporting EM64T have only 36 address lines, meaning they can “only” access 64 GB of RAM (2^36). Xeon DP CPUs supporting EM64T technology have 40 address lines, meaning they can access up to 1 TB (terabyte) of RAM (2^40). These limitations can be changed in the future, so in the future Intel can release CPUs that can access more RAM memory externally (up to 16 EB).
- Eight additional registers: under 64-bit mode the CPU has a total of 16 64-bit registers. These new registers are named R8 through R15. Interesting enough, Intel has decided to use the same naming convention created by AMD on their 64-bit implementation, i.e., using a letter “R” to indicate a 64-bit register. In Figure 1, you can see how the 64-bit RAX register looks like.
- Eight additional registers for SIMD instructions (MMX, SSE, SSE2, SSE3): the CPU has a total of 16 64-bit MMX registers under 64-bit mode. The XMM registers continue to be 128-bit wide, however the number of XMM registers were doubled from eight to 16. These registers are used by SSE floating point operations.
- All registers and instruction pointers are 64-bit wide. FPU registers continue to be 80-bit wide.
- All 64-bit registers continue to use the same division scheme that allows them to be used for 8-bit operations (see Figure 1). For example, the eight-bit AL register is, in fact, the eight least significant bits from RAX register. This scheme is called “uniform byte-register addressing”.
- Fast interrupt-priorization mechanism.
- A new 64-bit instruction pointer, called RIP, that replaces the 32-bit instruction pointer, called EIP.
- A new instruction pointer relative addressing mode, called RIP-relative addressing.
EM64T is targeted to 64-bit operating systems. Period. If you’d like to buy a 64-bit Celeron D or Pentium 4 for when Windows 64 and native 64-bit software reach the market, go ahead. But keep in mind that you won’t be able to use EM64T exclusive features unless you run a 64-bit operating system AND 64-bit software.
If you have a 64-bit Celeron D or Pentium 4 and Windows 64, 32-bit software will run just fine, however it will run under compatibility mode, meaning they will “see” the CPU as a regular Intel IA32 engine. If you use “heavy” applications and are thinking of moving to 64-bit computing to have more than 4 GB RAM available, keep in mind that you will need new 64-bit version of your software, or they will still access only 4 GB RAM, thus not solving your problem.
Also keep in mind that the external address bus of EM64T-based CPUs isn’t 64-bit wide, so no Intel CPU using this technology can access 16 EB (exabytes) of RAM (2^64), as you may think. The maximum amount of RAM memory a CPU can access under 64-bit mode depends on its implementation. 64-bit Celeron D, Pentium 4 and Xeon CPUs can access up to 64 GB of RAM while 64-bit Xeon DP can access up to 1 TB of RAM. Once again, keep in mind that under 32-bit mode or 64-bit compatibility mode, the CPU accesses only 4 GB of RAM, even if it is a “64-bit CPU”.