X86-64TM TECHNOLOGY WHITE PAPER Advanced Micro Devices, Inc. x86-64TM Technology White Paper ADVANCED MICRO DEVICES, INC. One AMD Place Sunnyvale, CA 94088 Contact: Sean Cleveland Public Relations (408) 749-5980 [email protected] Page 1 X86-64TM TECHNOLOGY WHITE PAPER Abstract The need for 64-bit computing is driven by applications that address large amounts of data and memory, such as high-performance servers, database management systems, CAD tools, and digital content creation tools. Although this increased demand on the high-end along with technical advances is making 64-bit a reality, it is anticipated that the industry as a whole will not fully embrace the 64-bit world entirely for many more years. Existing 32-bit environments and applications will continue to serve a majority of users for quite sometime, although they too will require continual improvements in processor and system performance to continue. Many x86 workstation and server users are now facing the dilemma of how to transition to 64-bit computing, yet maintain their existing knowledge base and investment in the existing code base and tools. The challenge for processor manufacturers is to find a way to offer customers all the advantages of 64-bit processing in a market friendly fashion while making the conversion from 32-bit efficient and inexpensive. Unfortunately, the 64-bit solutions proposed by some processor manufacturers leave customers facing a potentially disruptive and ultimately expensive transition to the new architectures. AMD's strategy of extending the x86 architecture for 64-bit computing is a straightforward alternative to total conversion using incompatible instruction sets. AMD processors including the x86-64TM technology will permit platform suppliers, developers, corporate MIS departments and consumers to transition to 64-bit environments gradually, while continuing to run 32-bit applications without incurring performance penalties. By providing a smoother migration to 64bit computing, AMD's strategy is designed to save its customers billions of dollars in software re-development and deployment costs. Page 2 X86-64TM TECHNOLOGY WHITE PAPER Technology at a Cross-Roads Not too many years ago, industry pundits predicted that microprocessors based on RISC (Reduced Instruction Set Computer) computing, an architecture that reduces chip complexity by using simpler instructions, would forever out-perform current x86 processors based on CISC (Complex Instruction Set Computer) architectures, which use microcode to execute very comprehensive instructions. Yet today, CISC processors essentially match RISC chips in integer performance, and are quickly catching up on floating point performance. As can be seen in the chart below, x86 performance has nearly erased a 50% SPECint benchmarking deficit when compared to RISC performance over the past four years. SPECint is a set of eight compute-intensive integer/nonfloating point benchmarks used to measure typical processor performance. Future gains in performance are anticipated to have less to do with instruction sets than with implementation techniques. Therefore, any decision adopting 64-bit RISC or VLIW (Very Long Instruction Word) based processors over 64-bit CISC based processors will likely offer little if any advantage in overall processor performance. Page 3 X86-64TM TECHNOLOGY WHITE PAPER Better Solution: AMD x86-64 Architecture While 64-bit computing may offer vital features for some applications, the transition from 32- to 64-bit raises notable issues for several audiences: • Processor manufacturers must decide how to provide 64-bit functionality while preserving x86 compatibility and performance for their existing 32-bit installed base. • Platform suppliers must consider the impact on motherboard design, operating system availability and stability; and the costs of providing technical support for two (32-bit and 64-bit) systems. • Operating system and software providers must decide whether to incur the costs of developing 32-bit and 64-bit applications in parallel, or whether to abandon their 32-bit development efforts and begin programming for 64-bit environments. • MIS managers must plan for a major IT transition, replacing existing 32-bit applications and re-training in-house development and support staff, or risk being "left behind" with incompatible 32-bit technologies. • End-users must choose between upgrading their operating environments and applications to 64-bit, or retaining their 32-bit applications at current performance and functionality levels. To date, processor manufacturers have attempted to solve some of these transition issues with less than satisfactory results. Software emulation provides 32-bit compatibility but lacks native performance. And requiring the user to purchase and install a separate, 32-bit co-processor entails additional investments in money and administration. New 64-bit VLIW-based (Very Long Instruction Word) architectures, such as Intel’s IA-64, force users to undergo a laborious transition process to a new instruction set to achieve full native performance. This is because IA-64 offers no native x86 compatibility, which means existing 32-bits applications are not anticipated to run with leading edge performance on IA-64 technology based processors. Also, the adoption of an entirely new instruction set architecture like IA-64 requires the development of an entirely new tool chain including compilers, debuggers, assemblers, and profilers, whereas x86-64 tools can be modified from existing code. AMD’s 64-bit strategy is one that allows the latest in processor innovation to be brought to the existing installed base of 32-bit applications and operating systems, while establishing an installed base of systems that are 64-bit capable. It is also the only solution that allows companies and individuals to enable 64-bit computing at their own pace, as hardware and software support becomes available. This allows the industry to advance software development on all fronts, with x86 compatibility, while providing the capability of delivering 64-bit performance benefits. Any other 64-bit solution does not fully preserve the industries investment in software. Page 4 X86-64TM TECHNOLOGY WHITE PAPER AMD takes a more practical and less disruptive approach to the challenge of 64-bit computing. Key extensions to the reliable, proven, high-performance x86 instruction set not only preserve full compatibility between 32- and 64 bit environments, they also enable 32-bit applications to move up the performance ladder right along with other advances in technology. AMD does not intend to force its platform suppliers, software developers, and enterprise customers to make the tough choice between protecting their investments in 32-bit technology and moving into the 64-bit world of the future. Instead, AMD's strategy of forward compatibility and future performance allows customers to continue using 32-bit applications and then seamlessly transition to 64-bit when they are ready, and hardware and software support becomes available. This strategy enables AMD and its platform partners to leverage the latest in 64-bit microprocessor innovations without disrupting their current 32-bit installed base. For operating system and application providers, development can continue uninterrupted and unburdened by transition issues and support for the 64-bit extensions in the x86-64 technology can be provided at their own pace. In addition, the AMD x86-64 architecture permits existing 16- and 32-bit x86 code to take full advantage of all the performance advances of new processor designs without the overhead of software or hardware emulation. AMD x86-64 Architecture TM Other Vendor's 64-Bit Solutions Fully x86 compatible. Instruction sets are NOT x86 compatible. Compromises 32-bit performance. Smaller, less sophisticated, x86 engine causes speed No performance sacrifice for either 32-bit or penalty for legacy code. Future 64-bit computing development is focused on 64-bit only performance. Not forced to move to a new architecture. Seamless transition based on user's timeframe. Forces the costly transition of many 32-bit applications that do not require 64-bits. Continued use of existing 32-bit applications, tools, and knowledge base. Doubles investment: 2 instruction sets, 2 operating environments, 2 application binaries, 2 development and support teams. Full support for 16-, 32-, and 64-bit applications running concurrently. Support for 16- and 32-bit apps only through emulation software or hardware. 32-bit code runs unchanged. Designed to be easy to port applications that might benefit from 64-bit address space. Must port 32-bit applications for full speed execution. During transition years, must manage 2 code bases. Page 5 X86-64TM TECHNOLOGY WHITE PAPER Extending x86 for the 64-bit World AMD's 64-bit strategy is a straightforward extension to the current x86 instruction set. The methodology is similar to that used to extend the 16-bit architecture to 32-bits. The x86-64 architecture extends the standard x86 architecture by adding a new mode called long mode. Long mode is enabled by a global control bit called LMA (for Long Mode Active). When LMA is disabled, the processor operates as a standard x86 processor, and is compatible with all existing 16- and 32-bit operating systems and applications. When Long Mode is activated (LMA=1) the 64-bit processor extensions are enabled. This allows the system to auto configure according to the capabilities of the machine and the processor. 64-Bit OS (LMA) 64-Bit App (CSD L Bit) Data Size (CSD D Bit) 0 0 1 1 1 1 X X 0 0 1 1 0 1 0 1 0 1 CPU Mode Standard 16-Bit Mode Standard 32-Bit Mode Compatibility 16-Bit Mode Compatibility 32-Bit Mode 64-bit Mode Reserved Long Mode consists of two sub modes: 64-bit mode and compatibility mode. The new modes are encoded using two flags in the code segment descriptor. The first flag is the existing “D” bit that controls the size of operands. A second bit called the “L bit”, is a previously unused bit (bit 53) in the CS descriptor, is used for determining if specific applications are 64-bit enabled or are run in compatibility mode. If long mode is active, CS.L = 1, and CS.D = 0, the processor is then set to run in 64-bit mode. With this encoding, default operand size is 32-bits and default address size is 64-bits. Using instruction prefixes, the default operand size can be overridden to 64-bits or 16-bits, and the default address size can be overridden to 32-bits. If long mode is active and CS.L=0 then the processor is set to run in compatibility mode. Compatibility mode maintains binary compatibility with applications written in 16- and 32-bit x86 modes. An operating system running natively in Long Mode can run existing 16- and 32-bit applications by simply clearing the L bit in the code segment descriptor of the applications. Page 6 X86-64TM TECHNOLOGY WHITE PAPER The AMD x86-64TM Architecture The AMD x86-64 architecture extends the legacy x86 architecture by introducing two major features: a 64-bit extension called long mode, and register extensions. Long Mode Long mode consists of two sub-modes: 64-bit mode, and compatibility mode. Compatibility mode supports binary compatibility with existing 16-bit and 32-bit applications under a 64-bit operating system. In addition to long mode, the architecture also supports a pure x86 legacy mode, which preserves binary compatibility not only with existing 16-bit and 32-bit applications but also with existing 16-bit and 32-bit operating systems. 64-Bit Mode 64-bit mode supports the following new features: • • • 64-bit virtual addresses (implementations can have less). Register extensions through a new prefix (REX): o Adds eight GPRs (R8–R15). o Widens GPRs to 64 bits. o Adds eight 128-bit Streaming SIMD Extension (SSE) registers (XMM8– XMM15). 64-bit instruction pointer (RIP). Page 7 X86-64TM TECHNOLOGY WHITE PAPER • • New RIP-relative data addressing mode. Flat address space with single code, data, and stack space. The default address size is 64-bits, and the default operand size is 32-bits. The defaults can be overridden on an instruction-by-instruction basis using prefixes. A new REX prefix is introduced for specifying 64-bit operand size and the new registers. The mode is enabled by the operating system on an individual code-segment basis. The new register extensions added via the new REX prefix add eight 64-bit GPRs (R8–R15), eight 128-bit Streaming SIMD Extensions (SSE) registers (XMM8–XMM15), and widens all GPRs and the instruction pointer to 64 bits. The REX prefix also provides a new byte-register capability that makes the least-significant byte of any GPR available for byte operations. This results in a uniform set of byte, word, dword, and qword registers better suited for a compiler’s register allocation. The instruction pointer is also widened to 64 bits. Because 64-bit mode supports a 64-bit virtual-address space, it requires a 64-bit operating system and tool chain. A few instruction opcodes and prefix bytes are redefined to allow the register extensions and 64-bit addressing. Page 8 X86-64TM TECHNOLOGY WHITE PAPER Register Extensions To define the addressing logic for the registers, the AMD x86-64 architecture simply extends the addressing scheme currently used for 16- and 32-bit instructions. For example, as shown in the diagram below: • • • For 16-bit operations, the two bytes of Register A are addresses as AX For 32-bitoperations, the four bytes of Register A are addressed as EAX For 64-bitoperations, the eight bytes of Register A are addressed as RAX In 64-bit Mode, General Purpose Registers (GPRs) are extended to 64-bits. The 64-bit registers are called RAX, RBX, RCX, RDX, RDI, RSI, RBP, RSP, RIP and RFLAGS. The new 64-bit registers overlay and extend the existing registers. In addition, eight new 64-bit GPRs are added for a total of 16 GPRS. The new GPRs are called R8 through R15. The register extensions also add eight new streaming SIMD registers for a total of 16 SIMD registers. The new SIMD registers are called XMM8 through XMM15. Segment registers (ES, DS, FS, GS and SS) are ignored in 64-bit Mode. Code segments still exist in 64-bit Mode. The CS is needed to encapsulate the default mode of the processor (16-, 32- or 64-bit mode) as well as the execution privilege level. As noted above, the D bit and L bit are used to specify the default address and operand sizes. The DPL is used for execution privilege checks. Base and limit fields are ignored. When performing 32-bit operations and the destination register is a GPR, the 32-bit value will be zero-extended into the full 64-bit GPR. 8-bit and 16-bit operations on GPRs preserve all unwritten upper bits. This preserves the 16- and 32-bit semantics for partial-width results. The final step is to simply define a set of instruction prefixes that specify a 64-bit operand size and allow access to the new registers. This is similar to the method used to extend the x86 architecture for other functionality, such as AMD's 3DNow!™ technology. With this strategy, AMD makes it possible for platform suppliers, developers, and other users to use existing toolsets, applications, and knowledge, while providing a smooth migration to 64-bit enabled applications as hardware and software support becomes available. Compatibility Mode Compatibility mode allows operating systems to implement binary compatibility with existing 16-bit and 32-bit x86 applications. It allows these applications to run, without recompilation, under a 64-bit operating system in long mode. In compatibility mode, applications can only Page 9 X86-64TM TECHNOLOGY WHITE PAPER access the first 4GBytes of virtual-address space. Standard x86 instruction prefixes toggle between 16-bit and 32-bit address and operand sizes. As with 64-bit mode, compatibility mode is enabled by the operating system on an individual code-segment basis. Unlike 64-bit mode, however, x86 segmentation functions normally, using 16-bit or 32-bit protected-mode semantics. From the application’s viewpoint, compatibility mode looks like a legacy x86 protected-mode environment. From the operating system’s viewpoint, address translation, interrupt and exception handling, and system data structures use the 64-bit long mode mechanisms. Legacy Mode When LMA=0, the processor is said to be running in legacy mode. None of the 64-bit features are available and the processor operates as a standard x86 processor. Legacy mode is completely compatible with existing 32-bit implementations of the x86 architecture. This includes support for current technologies like segmented memory, and 32-bit GPRs and instruction pointer. AMD 64-Bit Roadmap Already performance-leaders for high-volume markets, AMD processors set a clear path for 64bit processor architectures. Key data and address paths are already 64-bits wide. The x86-64 architecture is designed to have minimal impact on processor die size and no impact on the progression of processor clock speed. Future improvements in the processor core will accelerate both 32-bit and 64-bit applications. Thus, high-performance systems using 64-bit capable processors from AMD are planned to also be among the highest performing 32-bit systems ever built. AMD is currently collaborating with its key platform suppliers, operating systems providers, and other technology partners for the x86-64 architecture. AMD plans to include 64-bit technology in its next-generation of performance-leading processors code-named “Hammer” to establish an initial base of 64-bit platforms by the end of 2001. Page 10 X86-64TM TECHNOLOGY WHITE PAPER AMD: Advancing the Potential of x86 By extending the x86 core rather than replacing it with a new, entirely different instruction set, AMD makes the transition to a 64-bit world easier, faster, and less expensive for its system partners, developers, and end-user customers. The burden of transitioning to a new architecture is greatly reduced, without limiting the forward compatibility and future performance of existing applications. For platform suppliers and operating systems providers, AMD's x86-64 strategy helps preserve investments in current technology and engineering expertise. Further more, because end-user customers are not faced with a major computing transition, they are anticipated to less likely consider changing their preferred hardware or OS vendor. Offering a solution that provides both compatibility and future performance is a win-win for both suppliers and customers. For application developers and MIS managers, AMD's strategy allows development to continue on a path of high performance and optimal functionality, regardless of whether the underlying architecture is 32- or 64-bit. Familiar tools, applications, and management protocols are retained until they choose to migrate and hardware and software support becomes available. When they do make the transition, they can do so with a minimum investment of time and resources. AMD's x86-64 strategy brings the latest processor innovation to existing 32-bit environments while establishing a clear path for record-breaking levels of performance, scalability, and compatibility. Final Comments History is filled with examples of processor revolutions that never were; transitions to new instruction sets so expensive and time consuming that advances in existing architectures passed them by. Advanced Micro Devices will continue to lead the way by advancing the performance and scalability of x86-compatible processors. Page 11 X86-64TM TECHNOLOGY WHITE PAPER AMD Overview AMD (NYSE: AMD) is a global supplier of integrated circuits for the personal and networked computer and communications markets. AMD produces processors, flash memories, and products for communications and networking applications. The world’s second-leading supplier of Windows® compatible processors, AMD has shipped more than 120 million x86 microprocessors, including more than 90 million Windows compatible CPUs. Founded in 1969 and based in Sunnyvale, California, AMD has sales and marketing offices worldwide and manufacturing facilities in Sunnyvale; Austin, Texas; Dresden, Germany; Bangkok, Thailand; Penang, Malaysia; Singapore; and Aizu-Wakamatsu, Japan. AMD had revenues of $2.9 billion in 1999. Cautionary Statement This document contains forward-looking statements, which are made pursuant to the safe harbor provisions of the U.S. Private Securities Litigation Reform Act of 1995. Forward-looking statements are generally preceded by words such as “plans,” “expects,” “believes,” “anticipates” or “intends.” Investors are cautioned that all forward-looking statements in this document involve risks and uncertainty that could cause actual results to differ materially from current expectations. Forward looking statements in this document include the risks that developers may not support the x86-64 technology and design tools for the technology in a timely manner or at all; that AMD will not successfully implement the technology in its products on a timely basis; and that AMD may not effectively penetrate the enterprise market. We urge investors to review in detail the risks and uncertainties in the Company’s filings with the United States Securities Exchange Commission. AMD, the AMD logo, AMD Athlon and combinations thereof, and x86-64 are trademarks of Advanced Micro Devices, Inc. Pentium is a registered trademark of Intel Corporation. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies. Page 12