This HEXUS.help guide explains what AMD's AMD64 CPU instruction set architecture (ISA) is, shows what CPUs implement it from both AMD and Intel, and explains what software is available to run on those 64-bit consumer processors.
AMD64 is the AMD-led update to the venerable x86 instruction set architecture, or ISA. An ISA defines not only the actual instructions that a processor is able to execute, but also things like memory address spaces, available registers for programs to use while executing and other implementation specifics for processors to get down on their silicon.
The 32-bit x86 ISA - an ISA that's been around since the Intel 386 CPU was launched some 20 years ago - defines a 32-bit processing core with up to 4GiB of addressable physical memory from a 32-bit memory bus, a 32-bit data bus, 8 general purpose 32-bit registers and the base x86 instruction set that programs can use.
That x86 ISA base has been what processors designed to run Windows PCs have implemented for the last 20 years. In those 20 years there have been improvements to the instruction set here and there (think MMX and SSE), and the processors and supporting platforms have obviously become much faster, but the basic 32-bit architecture has stayed the same.
Still only 8 GPRs (we'll come back to those). Still a 32-bit memory address bus giving a 4GiB physical memory size limit.
AMD64, also known as x86-64 and implemented by Intel in consumer CPUs as EM64T, seeks to get rid of x86's inherent barriers as it shifts x86 to the 64-bit world. Let's go over the market and players before discussing how it works and improves on 32-bit x86.
The AMD64-compatible desktop processor market is huge these days, especially since Intel added support for the ISA - calling it EM64T - to many of their desktop processors in 2005. AMD, inventors of the ISA, introduced the Athlon 64 to a waiting world on the 23rd September, 2003. In those scant two years since AMD Athlon 64 FX-51 was launched, the first of the breed, AMD have AMD64-enabled processors everywhere, from very budget desktop chips all the way to the highest-end enthusiast-class CPUs costing £500 or more.
The company also supplies AMD64-able mobile processors for laptop systems, something Intel has yet to offer. The result today is that it's very hard not to buy and AMD64-able CPU that'll run a 64-bit OS and software environment, unless you're buying an Intel Centrino notebook computer. Everything else, from AMD Sempron, AMD Athlon 64 and Intel Pentium 4 processors are likely to have the technology and ability built right in. The market for the processors is simply huge, by default, simply because it's an integral part of almost all consumer processors being sold today.
Even Intel's Centrino platform will gain the ability in 2006, too. The players for AMD64-able chips are therefore AMD and Intel. Let's discuss the individual offerings they have, in a broad sense.
As discussed, AMD have a range of AMD64-able processors from budget to high-end and enterprise. At the budget end of the scale exists the very competent, well-performing AMD Sempron 64. Starting at less than £40 shipped in the UK, the Sempron 64 line of processors offers AMD64 allied to comparatively small on-CPU cache memorys sizes, modest CPU frequencies and an on-CPU memory controller implementing a single memory channel. Despite those cut-down facets of what makes a Sempron 64, the processors performance brilliantly for the money.
The AMD Athlon 64 adds a memory channel depending on socket, twice or four times the cache memory depending on model, and comparable and further frequencies, to beef up the peformance of that model line compared to Sempron 64. Again, despite those changes, the base ISA is intact across all of the mentioned CPUs.
Athlon 64 covers the widest range of performance in the AMD desktop range of AMD64 processors and is the CPU you're most likely to come across on your travels, when investigating what's out there.
Athlon 64 also has a sub-range called Athlon 64 X2. X2 is the dual-core version of the Athlon 64 range, placing two full processors on the same silicon, sharing a memory controller and interface to the rest of the system. Multiple CPU cores on the same package, in the same socket, is how all AMD64 processors will end up in future.
At the top end of the AMD range you'll find the Athlon 64 FX. The FX stands on the shoulders of the Athlon 64 range by always specifying a 1MiB L2 cache, dual-channel memory controller, a faster CPU clock than any other Athlon 64 and unlocked multiplier adjustment to have it appeal to the enthusiast and overclocker. The pinnacle of AMD64 on the desktop, the FX is shortly to debut in dual-core configuration, just like Athlon 64 X2.
On the mobile side of things, AMD have Turion 64, which is little more than low-power Athlon 64, making it better suited to portable tasks while fully supporting AMD64 at the same time.
Intel's desktop AMD64-compatible offerings, exposing their EM64T implementation of AMD64, started with the Intel Pentium 4. Intel segment the Pentium 4 range into 5xx and 6xx sequences currently, with the 6xx sequence, from Intel Pentium 4 620 right the way up to Intel Pentium 4 670, supporting AMD64 by way of EM64T.
The Intel Pentium 4 3.73GHz XE (Extreme Edition) also supports it, being based on the same core as the 6xx sequence P4, and the just-released Intel Pentium 955 XE gets in on the act, too.
Lastly, the dual-core Pentium 4 8xx sequence is also AMD64-able, bringing the company's dual-core desktop CPUs up-to-date in terms of ISA support. That makes a good dozen CPUs from Intel that support the ISA, with all future CPUs from the company supporting it too, to add to almost everything available from AMD.
How it works
With the ISA basics covered, market gone over and players and products analysed and mostly listed, let's go on to the easy-to-understand details of how AMD64 extends x86 into 64-bits.
For starters, the ISA makes all processing 64-bit native, operating on 64-bit data inside the processor's execution units. There's no special processing mode to use 64-bit data types, or processing 64-bit as two 32-bit ops. Added to that, the processor makes available twice as many general purpose registers x86 in 64-bit mode, used by programs to store data while they work. With register availability one of the barriers to higher performance with x86 processors, AMD64 expands on that nicely.
In addition to the extra GPRs, AMD64 mandates eight more SIMD registers in 64-bit mode, too. AMD's own AMD64 CPUs have supported SSE and SSE2 since day-one, with SSE3 a recent addition, and those instruction sets get 16 registers to play with under 64-bit mode.
Of course, addressable memory size goes up in 64-bit mode, with up to 40 bits of physically addressable memory on current AMD64 chips, and a 48-bit virtual address space, up from the maximum of 36 bits on x86 CPUs.
So in effect the CPU is 64-bit everywhere, from register width to native calculations by instructions and everything in between. Register count is doubled in 64-bit mode and SIMD processing is also boosted in the same fashion. In essence, the major parts of the CPU are twice as wide, natively, and there's twice as much general register allocation in which software can work.
The killer side of AMD64 is its ability to run 32-bit software alongside 64-bit, in a native 64-bit operating environment. Your 32-bit applications will usually run unmodified on a 64-bit operating system, which brings us on nicely to the software side of things.
It's often said that without software to drive it, hardware is useless. Truer words are rarely spoken when it comes to computing, so it's now that our attention turns to software able to take advantage of AMD64 on the desktop. Firstly you need an operating system, and there's more than a few to choose from to run on an AMD64 desktop system.
Microsoft have released a 64-bit AMD64-compatible version of Windows XP Professional, based on the Windows Server 2003 64-bit edition codebase, bringing their flagship desktop OS to the ISA, along with their server offerings if that's your bag. Linux has supported AMD64 for even longer, with almost all distributions offering an AMD64 version for download or sale, if you require a Unix-like operating system for your PC.
64-bit drivers, required by a 64-bit OS, are generally available for most popular hardware, with peripherals and the like gradually getting support from their vendors. It's possible for most desktop PCs to have the vast majority of their hardware supported by Windows XP Professional 64-bit right now, if not everything.
Microsoft's next OS, Windows Vista, was designed as a 64-bit OS from the beginning, so it's that OS that will really bring the push for hardware vendors to update the device drivers for their supporting hardware.
Lastly, there's 64-bit native software to be run on the OS. We discussed 32-bit software running on 64-bit operating systems with AMD64 platforms, but those binaries can't take advantage of the CPUs in their native 64-bit operating modes, meaning some of the benefits of AMD64 go away when doing so.
Native 64-bit AMD64 versions of software are becoming available slowly, with the flood gates yet to open. Versions of high-end digital content creation applications, which will benefit most from the ISA, have been the first to appear. Over the next year or two, though, it'll be increasingly easy to find software to exploit the hardware. Although just having the OS run 64-bit AMD64 natively is a performance and usability win, regardless of how many application binaries can say the same thing.
That both can coexist under such an environment is AMD64's coup de grâce for x86, meaning the migration to 64-bit AMD64-supporting OSes should be very painless.
In summary, AMD64 processors and supporting platforms are pervasive in modern PC systems and the software migration is happening, albeit somewhat slowly for the time being. The march towards 64-bit computing is a strong one, and AMD64 is the reason it'll happen on your PC desktop.