inset
Support for AMD "Hammer" Hedges 64-bit Bet
May 6, 2002

A future version of Windows (but not the most imminent release, Windows .NET Server) will include support for AMD’s 64-bit Athlon and Opteron processors. Previously known by the code name Hammer, these processors are due to begin shipping in the fourth quarter of 2002. Microsoft did not set a date for the release of Windows that will support them. Before Microsoft’s endorsement, IT planners had no choice but to use Intel’s Itanium processor with a 64-bit version of Windows XP or the beta version of Windows .NET Server. Now they face a choice between two different, and incompatible, 64-bit architectures.

64-Bit Serves Specialized Applications

Most corporate applications (such as desktop productivity suites) will see no significant benefit from moving to 64-bit systems and will likely remain 32-bit applications for the foreseeable future. However, two major types of applications are likely to benefit:

Memory-intensive business applications. Some large-scale business applications, such as On-Line Analytical Processing (OLAP) or enterprise resource planning (ERP) systems, can benefit from very large amounts of memory, typically by storing entire databases in memory instead of reading and writing to disk. The 32-bit architectures, such as the AMD Athlon and Intel Pentium, can address only 4GB of physical memory, while 64-bit systems can address much larger amounts of memory (up to 2048GB in the case of the AMD Opteron).

Computationally intensive workstation applications. Many engineering applications for structural engineering, fluid analysis, and computer-aided design, as well as sophisticated encryption techniques, such as RSA, benefit from the additional computational power that 64-bit processors provide. RSA, for example, relies on manipulating numeric data that is too large to be represented by 32 bits of information, thereby requiring 32-bit processors to split the data into smaller chunks before processing.

Both Intel and AMD have 64-bit architectures, and both are backward compatible with the 32-bit x86 architecture that dominates the marketplace today (although with varying levels of performance). However, 64-bit applications built for one architecture will not work with any other because the instruction sets—the low-level codes actually executed by the CPU—are different (unlike Pentium and Athlon processors, which share the same instruction set). As a result, IT planners and ISVs will have to choose which hardware platform to support, whether buying commercial applications or building internal applications.

Intel Starts with Clean Slate

Itanium, Intel’s 64-bit processor family, is a brand-new CPU and represents an architectural break from the x86 design used in Pentium processors. The IA64 architecture used by Itanium (and its successors) addresses some of the historic weaknesses of the x86 architecture but has several significant drawbacks, including relatively poor performance when running today’s 32-bit applications and a design that is not well-suited for the way .NET and Java applications are deployed. In addition, the initial versions of Itanium run at a significantly lower clock speed (800MHz) than current Pentium processors (up to 2.2GHz).

Key Design Decisions

When beginning development work in the early 1990s, Intel made two key design decisions that would have major impact on Itanium:

Build an entirely new architecture. Intel felt that the x86 line would soon reach its limits and that a new design was needed. In addition, a new architecture would be difficult for competitors to replicate, allowing Intel to charge a premium for the new chip while leaving others such as AMD to compete in the lower-margin x86 business. The new design significantly improves floating-point performance—the ability to quickly and accurately process numeric data other than simple integers and one of the chronic weaknesses of the x86 design that has made it difficult for Intel to gain ground on Sun Microsystems in the market for high-end engineering workstations.

Move complexity from the CPU to compilers. In addition to building an entirely new design, Intel sought to simplify the internal circuit design of the processor by moving from a "dynamically scheduled" design to an "in-order" design. In a processor that uses dynamic scheduling, such as the Pentium or Athlon, individual instructions are broken into smaller "micro-operations" that are then rearranged to make best use of CPU resources. In an in-order design, such as IA64, the CPU simply executes the instructions in the exact order given. The simplification and space savings achieved by an in-order design give Intel more room on the chip for cache or other custom circuits.

Unintended Consequences

Both decisions have significant drawbacks. Because IA64 uses a new instruction set, it is not natively compatible with the 32-bit applications in use today. Instead, Itanium achieves backward compatibility by including an on-chip translator, which translates 32-bit x86 instructions to native IA64 instructions, a process that results in 32-bit code running more slowly than it would on an equivalent Pentium processor.

In addition, the switch to in-order execution places a larger burden on the compilers, which build the executable native code of applications, since they must now perform additional analysis and performance optimization that would have previously been done by the CPU. The result is an increase in the overall time taken to compile the code. Intel accepted this trade-off, reasoning that software (a compiler) is easier to modify than hardware (a CPU) and that in the traditional model of software development, compilation speed is largely irrelevant to end users or administrators because compilation takes place on a developer’s machine and not on a production system.

.NET and Java applications, however, are distributed in a processor-neutral format called an intermediate language (IL). When the application is installed and run, the IL is translated to native code by a process called just-in-time (JIT) compilation. JIT compilation means that the time required for compilation, once largely invisible to end users and administrators, now takes place on production systems and can hinder application performance.

Out-of-order processors, such as Pentium and Athlon, are well suited for JIT compilers since the chip itself will rearrange instructions to better optimize performance. But since JIT compilers do not have the time to heavily optimize for the processor, code generated by them will suffer a significant performance penalty when running on an in-order processor, such as Itanium.

Since the next version of SQL Server, code-named Yukon and due in 2003 or later, will allow corporate developers to write server-side stored procedures that use .NET and are JIT-compiled, the performance issues associated with JIT-compiling code on Itanium could be a problem in creating 64-bit SQL Server applications.

AMD Chooses Evolutionary Path

AMD took a different approach in designing its 64-bit architecture, dubbed "x86-64" and used in the Opteron server processor and 64-bit Athlon workstation processor. The x86-64 architecture extends the original x86 design and instruction set with 64-bit capabilities. While this does little to address the long-standing weaknesses of the x86 design, such as poor floating-point performance, it does allow the processor to execute existing 32-bit applications without an extra translation layer, thereby avoiding the performance penalty associated with running 32-bit applications on Itanium. Extending the x86 architecture also ensures that x86-64 processors still use dynamic scheduling and are well suited for JIT compilers, such as those used by .NET and Java.

Microsoft’s endorsement is a key first step, since it means there will be a 64-bit version of Windows for Opteron and the 64-bit Athlon. However, AMD still needs to line up server manufacturers, as well as manufacturers for key components such as motherboards, in order to make complete systems available to customers.

Intel Plans Enhancements, Alternative to Itanium

Intel has already announced a mid-2002 release for the next version of Itanium, called Itanium 2 and previously code-named McKinley. Although Itanium 2 does improve on the overall performance of Itanium (including increasing the clock speed from 800MHz to 1GHz), it does nothing to address the inherent penalty in running 32-bit applications or the difficulty of JIT compiling. In addition, while Itanium 2 will be fully backward compatible with Itanium, the in-order design of the IA64 architecture requires developers to recompile applications with a compiler that specifically supports Itanium 2 in order to achieve optimal performance.

While Intel is publicly committed to IA64 and the Itanium family, reports in the San Jose Mercury News and other press sources indicate that it is nervous enough to have begun developing an alternative, code-named Yamhill, which is said to be an x86 processor with 64-bit extensions, like AMD’s x86-64 design. Even though few corporate customers have adopted Itanium, abandoning it in favor of Yamhill would certainly cause complications for those who have, and the false start would undermine Intel’s attempts to compete with Sun in the market for high-end workstations and servers.

OS Release Dates Uncertain

Although the exact release date for a version of Windows that supports the 64-bit AMD processors has not been announced, Microsoft has said that Itanium will be the only 64-bit CPU supported in the upcoming release of Windows .NET Server.

However, since much of the engineering work required to produce a 64-bit version of Windows is independent of which processor is actually used, Microsoft will in all likelihood be able to include support for AMD in an interim release between Windows .NET Server and Longhorn—the next major release of Windows, which is not due until 2004. Microsoft made a similar interim Itanium release available between Windows 2000 and Windows XP.

IT Planners Face Tough Decisions

Corporate IT planners who would benefit from the move to 64-bit processors face tough decisions. Both Intel and AMD have processors that dramatically increase the amount of RAM that can be used in computer systems, and Microsoft has pledged to support both with 64-bit versions of Windows.

IT planners looking to incorporate 64-bit systems will need to watch for several key developments before making a firm commitment to either architecture:

  • Adoption of Opteron by major system manufacturers
  • A delivery schedule for the Opteron version of Windows, as well as for key applications, such as SQL Server
  • Moves by Intel to improve 32-bit performance and JIT compilation performance, either by modifying Itanium or by introducing Yamhill.

Finally, when all the pieces are in place, IT planners should test both Opteron and Itanium machines on a workload that represents their own company’s specific mix of applications, if possible.

Resources

More information on AMD and the x86-64 architecture can be found at www.amd.com/us-en/Processors/ProductInformation/0,,30_118_4699,00.html and a detailed white paper at www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/x86-64_wp.pdf.

Intel has information on Itanium at www.intel.com/products/server/processors/server/itanium/.