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:
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.