64-Bits Frequently Asked Questions

athlon_64_x2

FAQ

Over the last year, CPUs extending the IA-32 instruction set to 64 bits have hit the streets. There are two incarnations of it, AMD’s AMD64 and Intel’s EM64T. While very similar, there are in fact a few differences between the two. Not huge differences, but they do exist.

First let’s discuss what CPUs have what capabilities. Here’s a brief list:

  • AMD Athlon K7: 32 bit Integer, 32 bit addressing
  • AMD Athlon 64 “Clawhammer”: 64 bit Integer, 48 bit logical addressing, 40 bit physical addressing, NX bit, PAE36 and PSE36 for 32 bit mode
  • AMD Opteron “Sledgehammer”, “Winchester”: 64 bit Integer, 48 bit logical addressing, 40 bit physical addressing, NX bit, PAE36 and PSE36 for 32 bit mode
  • Intel Pentium III: 32 bit Integer, 32 bit addressing, PAE36 and PSE36
  • Intel Pentium 4 “Williamette” and “Northwood”, Xeon “Foster” and “Prestonia” and Xeon MP “Galatin”: 32 bit Integer, 32 bit addressing, PAE36 and PSE36
  • Intel Pentium 4 “Prescott”: 32 bit Integer, 32 bit addressing, PAE36 and PSE36
  • Intel Pentium 4 F “Prescott”, Xeon “Nocona”: 64 bit Integer, 48 bit logical addressing, 40 bit physical addressing, NX bit, automatic clock control for power savings, PAE36 and PSE36 for 32 bit mode
  • Intel Pentium 4 “Prescott” E0 stepping (Pentium 4 5xxJ): 32 bit Integer, 32 bit addressing, PAE36 and PSE36, NX bit, automatic clock control for power savings

For the crib sheet to that, 64 bit Integer calculations are one of the things that make 64 bit CPUs so great – they can make 64 bit calculations in hardware rather than emulating it with a bunch of 32 bit calculations. The address space is the logical address space the CPU can handle. The AMD64 and EM64T CPUs do not have a full 64 bits of address space, as they won’t need it for a while. They use 64 bit addresses and truncate them internally to save on die space.


PSE36 and PAE36 are technologies that allow programs to use 36 bits (64 Gigabytes) of memory on a 32-bit CPU. Intel has used it for years now to extend the memory capability of its Xeon line, although it is somewhat hackish by necessity. PSE36 is the technology that allows for 36 bits of virtual address space and PAE36 for 36 bits of physical address space. A program may use one or both of these.

The 40 bit physical memory addressing means a maximum of 1 TB physical memory, coupled with 256 TB of logical address space (this includes virtual memory and allows for tons of large, contiguous blocks of unused address space). Remember, a logical address does not necessarily need to match up with the same physical memory address.