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:
Detecting Hyper-Threading Technology and Counting Processors in Multi-Core Systems
Learn how to detect HT Technology in a multi-core processor environmen...
Improve .NET Performance: Detecting and Reducing Thread Imbalance
Potential performance imbalance can occur between processors when thre...
Preparing for Hyper-Threading and Dual Core Technologies
Intel continuously improves the performance and functionality of its m...

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

Cache Coherency in Itanium® Processor Software
The Itanium® architecture requires that software maintain coherenc...
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...

Recent Jobs:

Software Engineer - Entry Level #STG-0164877 - GA - Atlanta - IBM
Systems and Technology Group has an entry-level opening on it’s exciti...
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...
Senior BI Consultant #SWG-0163291 - USA - IBM
The Cognos North American Services organization has an immediate openi...
Software Engineer - Services Research #RES-0163843 - CA - San Jose - IBM
The IBM Almaden Research Center is currently developing a Rapid Cost E...
IT Security Specialist #GBS-0165000 - CO - Boulder - IBM
Assists with information system administration for a 24x7x365 SOC miss...
SAP ABAP Senior Consultant #GBS-0163021 - TX - Dallas - IBM
IBM Business Consulting Services is seeking senior SAP ABAP Developers...
SAP Workflow Senior Consultant #GBS-0163018 - DC - Washington - IBM
Successful candidates will be responsible for SAP workflow configurati...
Wintel System Administrator #GBS-0164423 - VA - Fairfax - IBM
Provide overall System Adminstratin support for Window servers. Develo...
SAP Accounts Payable (FI) #GBS-0163035 - AL - Huntsville - IBM
This individual will serve as a SAP Application Functional Specialist,...