Getting the bubbles out of code: designing for the Itanium 2 processor

by Andrew Binstock, principal analyst, Pacific Data Works LLC. Intel Corp.

Because of its unique parallel design, Intel Itanium architecture is especially sensitive to the quality of the code it executes. When it runs optimized, well-formed code, it consistently sets performance records, as reported in numerous publications. But give it inefficiently sequenced code, and it will exhibit substantial performance degradation. When poorly designed code traverses the chip's execution pipeline, it can causes bubbles—a term that describes stalls and other undesirable situations in which the processor is not performing useful work. This article discusses common kinds of bubbles and what developers can do to avoid them. To understand this discussion, it's important to quickly review the salient points of Itanium instruction execution.

Itanium 2 microarchitecture highlights
The Itanium 2 processor is a 64-bit processor designed for parallel instruction execution. Under optimal circumstances, it can retire six instructions per clock cycle. Instructions are fed into the pipeline in bundles consisting of up to three instructions each. Instruction scheduling is more important on the Itanium architecture than in RISC and CISC processors, because parallel execution requires careful scheduling of instructions that depend on each other. The complexity of this scheduling places considerable pressure on the compiler to generate an ideal instruction sequence, and constant work is being done to improve the instruction flows both by expanding the capabilities at the silicon level and by refining compiler code generation.

The Itanium 2 processor uses three levels of cache: the innermost (known as level 1 or, simply, L1 ) contains separate 16-KB areas for data and instructions. L2 caches is added, which is fed by a capacious L3 cache. Recent models of the Madison generation of the Itanium processor family sport L3 caches of 6 MB. On CISC processors, such as the Pentium 4 Processor and Intel Xeon Processor families, each level of cache feeds the smaller level below it.


Subscribers who liked this article also read:
Improve .NET Performance: Detecting and Reducing Thread Imbalance
Potential performance imbalance can occur between processors when thre...
Detecting Hyper-Threading Technology and Counting Processors in Multi-Core Systems
See the complete article Learn how to detect HT Technology in a mul...
Preparing for Hyper-Threading and Dual Core Technologies
Subscribe to Intel Software Dispatch and see the complete article I...

If you're interested in this topic, these articles may be helpful:

Intel Itanium Processor Family reference guide: IA-32 Execution Layer
The Intel Itanium processor family has been architected to provide ind...
Maximum FPS: three tips for faster code
by Dean Macri, Solutions Enabling Group, Intel Corp. Welcome back t...
Download Software Developers Manual for Intel® Itanium® Architecture
This three-volume downloadable set provides a comprehensive guide to I...
Cache Coherency in Itanium® Processor Software
The Itanium® architecture requires that software maintain coherenc...

Recent Jobs:

Oracle Developer #GBS-0164531 - DC - Washington - IBM
Gather requirements, design, develop, and implement system interfaces ...
SAP Accounts Payable (FI) #GBS-0163035 - DC - Washington - IBM
This individual will serve as a SAP Application Functional Specialist,...
Systems Architect #GBS-0164961 - DC - Washington - IBM
Must have software development experience (J2EE, Java). Must have SOA ...
SAP MM Senior Consultant #GBS-0162893 - DC - Washington - IBM
The SAP Materials Management (MM) Senior Consultant should possess exp...
Remote Support Specialist #GTS_ITS-0160480 - CO - Boulder - IBM
The Remote Support Representative will provide remote technical assist...
Technical Support Engineer #SWG-0163327 - MA - Cambridge - IBM
This position offers an excellent opportunity to develop technical ski...
Senior BI Consultant #SWG-0163270 - GA - Atlanta - IBM
Provide subject matter expertise for K-12 school system in development...
SAP HR Lead - Managing Consultant #GBS-0163012 - DC - Washington - IBM
The SAP HR Payroll Managing Consultant is responsible for successful d...
SAP FM Distribution Sr.Consultant (FI/CO) #GBS-0162794 - USA - IBM
The SAP Financials Consultant will serve as an SAP Application Functio...
Technical Enablement Specialist #SWG-0163886 - CA - San Jose - IBM
Employees in this role use IBM Systems and product expertise to delive...