| Last Modified On : | October 3, 2008 10:59 AM PDT |
Rate |
|
by Jill Steinberg
One of the many technologies Intel has brought to market with its introduction of a new generation of Intel® Xeon® processor-based server and workstation platforms, based on the Intel Xeon processor at 3.60 GHz, is Intel® Extended Memory 64 Technology (Intel EM64T). The Intel Xeon processor is already a market leader for general-purpose IT infrastructure deployment, and with the addition of Intel EM64T, end users now have a choice of 64-bit architecture for server and workstation applications. While the Itanium® processor family—Intel's high performance product for the business-critical, high-end server and technical computing market segments—offers both 64-bit computing and addressability, Intel EM64T provides 64-bit addressability for IA-32 architecture.
The development of Intel EM64T extends the addressability of the Xeon processor from 32-bit to 64-bit. Supporting all the other features of Intel's IA-32 architecture, such as Hyper-Threading Technology and dynamic execution, Intel EM64T allows platforms to access larger amounts of memory than previously was possible (one terabyte versus four gigabytes).
Earlier this year, Intel announced its plan to add Intel EM64T to its 32-bit processors code-named Nocona, Potomac (future Intel Xeon processor MP for multiprocessing servers), and Prescott (future product for uni-processor servers and workstations). With the introduction of Nocona, the processors in the market from Intel for server and workstation segments offer 64-bit addressability. Intel foresees a steep ramp in manufacturing and expects that more than 50 percent of the Intel Xeon processor volume shipped will include Intel EM64T by the middle of 2005.
To add 64-bit addressability the latest Intel Xeon processor now has extended addressability through 64-bit pointers and registers that allow applications to use greater than four gigabytes of memory, eight 64-bit SSE registers and eight 64-bit general-purpose registers, and double precision (64-bit) integer support (see the figure below). The architecture has changed from being segmented—meaning only one segment of memory can be addressed at a time—to allowing the addressing of any amount of memory. The result is an Intel Xeon processor with 64-bit extension technology.
Platforms with Intel EM64T can be run in three basic ways (note: a 64-bit capable BIOS is required for all three scenarios): legacy mode, with the operating system, applications, and drivers all being 32-bit, or, under the extended mode umbrella, compatibility mode and 64-bit mode. Processors running in legacy mode remain fully compatible with today's existing 32-bit applications and operating systems (see the chart below).
In compatibility mode, 32-bit applications use 32-bit general-purpos e registers and are restricted to a 4-gigabyte user address space, but they run under a 64-bit operating system with 64-bit drivers. In 64-bit mode, everything is 64-bit—the operating system, application, drivers, and general-purpose registers.
So the key elements required in order for the platform to run in 64-bit extended mode are the 64-bit operating system, 64-bit BIOS, and 64-bit drivers. (Note that the 64-bit operating system will not boot if any 32-bit drivers are present.) With these requirements in place, the processor can switch between both extended modes, running both 32- and 64-bit applications on the system.
As noted above, Intel processors with Intel EM64T contain many features that can enhance the capabilities of your 32-bit applications. Here are some of the ways in which you can benefit from these features.
Tuning for Performance on Intel Architecture
All x86 applications, no matter how they are built, will run without modifications on the Intel Xeon platform. However, generic code often does not take full advantage of modern Intel CPUs: for example, the code may not complete mathematical operations as quickly as possible or make use of all available processor registers.
To take full advantage of Intel CPUs, you should do at least one of the following:
These suggestions should improve your performance on Intel processors. The amount of work required to make these changes depends on how many non-standard language features your application uses and the number of complex functions used in time-critical sections of your application. The payoff for these changes can be dramatic performance improvements with little or no changes to your core algorithms.
Some classes of applications repeat the same operation over and over again with different data. In addition to optimizing the application for the Intel platform, application performance can be further improved by rewriting your applications to operate on more than one thread at the same time. No simple rules can predict the difficulty of changing a single-threaded application to a multithreaded application —it can be easy or very challenging.
There are immediate benefits to rewriting appropriate applications to use more than one thread. Intel Xeon processors now come with Hyper-Threading Technology, which allows two threads to run at once on every physical CPU chip. Properly threaded code can speed up dramatically when it is run on an Intel Xeon processor with Hyper-Threading Technology because the processor can do more things at one time.
Some applications require very large amounts of data to be in memory at once. Such applications can include databases, scientific simulations, video editing, and 3D rendering for film. When an application regularly exceeds the amount of memory available on a conventional 32-bit machine, you may want to consider porting your application to a 64-bit operating system on an Intel Itanium processor or Intel Xeon processor with Intel EM64T.
Porting an application to a 64-bit operating system can be a non-trivial, time-consuming undertaking. Issues you should consider before actually attempting such a port include:
The benefits of porting to 64 bits include the ability to address more memory on Intel Xeon processors with Intel EM64T and the ability to use more registers, each of which is 64 bits in size rather than 32 bits wide. On Itanium processor-based systems, your application may experience additional benefits due to increased floating-point performance, cache size, and superior reliability and manageability capabilities. In either case, however, you should prepare for considerable development and support costs for this undertaking.
With the addition of 64-bit addressability to the IA-32 architecture Intel has developed a number of useful tools to help minimize the effort of porting applications to Intel EM64T.
Intel EM64T is supported with key operating systems: Microsoft Windows* Server 2003 (users are actively developing their applications using the beta version) and two flavors of Linux*, Red Hat and SuSE, both available now. In addition, Intel EM64T versions of the following Intel products are available:
Full C++ SDK support for Intel EM64T will be available with Visual Studio .NET* 2005.
In addition to Intel’s C++ compiler, a number of third-party compilers are now available from Microsoft and Linux vendors. When compiling, the developer should make sure the appropriate flag/switch is set to optimize the binaries for the Intel Xeon processor:
This paper reviewed one of the technologies—Intel Extended Memory 64 Technology—as well as some of the tools that Intel has created to facilitate development on its platforms. The paper also demonstrates that porting applications to Intel EM64T is far from a trivial task. It is a challenging proposition requiring a significant commitment in terms of time and effort. However, this paper should provide sufficient details to help you decide whether to take advantage of the benefits of Intel EM64T. One key consideration is whether the application is better suited for the full 64-bit support offered by the Itanium processor (necessary in business-critical, high-end server, and technical computing market segments), or whether the ability to access more than four gigabytes of memory under Intel EM64T is enough. Intel expects to be shipping processors with Intel EM64T for the server, workstation and desktop markets. So if you do not plan to port your code over to 64-bit, you should at minimum validate it for the 64-bit environment. This is a relatively trivial effort that should be carried out right away.
The advent of Intel EM64T shows that Intel is continuing to deliver on key industry requirements, and is maintaining its commitment to increasing performance, ensuring reliability, and improving availability.
Jill Steinberg is a freelance writer and editor based in Seattle, Washington. She was educated at Brandeis University, Williams College, and Stanford University. Her clients include University of Washington, Washington Software Association, O’Reilly & Associates, Sun Microsystems, Microsoft Corporation, and Morse Best Innovation.
For more on Intel Extended Memory 64 Technology and the other technologies discussed in this paper, refer to the following resources:
