Compilers
An Overview of the Intel IA-64 Compiler
By Carole Dulong, Rakesh Krishnaiyer, Dattatraya Kulkarni, Daniel Lavery ,Wei Li , John Ng, and David Sehr
The IA-64 architecture features expose new opportunities for the compilers to optimize applications. Intel's IA-64 compiler incorporates many key optimization techniques to boost the performance of applications on the IA-64 hardware. In this paper, we provide an overview of the Intel IA-64 compiler, discuss and illustrate several optimization techniques, and we explain how these optimizations help harness the power of IA-64 for higher application performance.
Tools
SoftSDV: A Pre-silicon Software Development Environment for the IA-64 Architecture
By Richard Uhlig, Roman Fishtein, Oren Gershon, Israel Hirsh, and Hong Wang
The traditional approach to fostering software development for a new instruction set is to supply programmers with a hardware platform using the new instruction set. Such a platform is commonly known as a software-development vehicle (SDV). This paper describes how Intel eliminated this dependency for IA-64 hardware by building an SDV entirely in software through the simulation of all processor and IO-device resources present in an actual hardware IA-64 SDV. This simulation environment, called SoftSDV, has enabled substantial development of IA-64 software, well in advance of Itanium processor's first silicon.
Assembly Language Programming Tools for the IA-64 Architecture
By Ady Tal, Vadim Bassin, Shay Gal-On, and Elena Demikhovsky
The IA-64 architecture incorporates many features that enable assembly programmers to optimize their code for efficient, high-sustained performance. This paper describes Intel's IA-64 Assembler and IA-64 assembly assistant tools, which can simplify IA-64 assembly language programming. The descriptions of the tools are accompanied by examples that use advanced IA-64 features.
Operating System Ports
Porting Operating System Kernels to the IA-64 Architecture for Pre-silicon Validation Purposes
By Kathy Carver, Chuck Fleckenstein, Joshua LeVasseur, and Stephan Zeisset
One of the major goals for early hardware of a new architecture is to boot a commercial operating system shortly after the arrival of first hardware systems. Intel's IA-64 team decided to use an operating system kernel for pre-silicon validation of the new IA-64 Itanium (tm) processor in addition to using conventional pre-silicon testing methods. Therefore two operating system kernels were ported to provide additional vehicles for pre-silicon validation and post-silicon debug. The Mach*3 microkernel was ported first, followed by the Linux* 2.2.0 kernel. These operating system kernels also helped pre-silicon performance analysis and compiler-generated code analysis.
Floating Point
The Computation of Transcendental Functions on the IA-64 Architecture
By John Harrison, Ted Kubaska, Shane Story, and Ping Tak Peter Tang
The fast and accurate evaluation of transcendental functions (exp, log, sin, and atan) is vitally important in many fields of scientific computing. Transcendental functions can be computed in software by a variety of algorithms. This paper discusses some of the design principles and implementation details of double-precision transcendental functions that are highly accurate yet can typically be evaluated in between 50 and 70 clock cycles.
IA-64 Floating-Point Operations and the IEEE Standard for Binary Floating-Point Arithmetic
By Marius Cornea-Hasegan and Bob Norin
Compliance with the IEEE Standard for Binary Floating-Point Arithmetic is important for any modern microprocessor. This paper shows how various facets of the IEEE Standard are implemented or reflected in the IA-64 architecture and how the the IA-64 architecture is fully compliant with the IEEE Standard. In addition, this paper shows features of the floating-point architecture that allow for high-accuracy and high-performance computations, while abiding by the IEEE Standard.