![Intel IXP45X Developer'S Manual Download Page 190](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092190.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors—Intel XScale
®
Processor
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Developer’s Manual
August 2006
190
Order Number: 306262-004US
3.10.1.1
About This Section
This guide assumes that you are familiar with the Intel
®
StrongARM
*
instruction set
and the C language. It consists of the following sections:
•
— Outlines the contents of this guide.
•
“Processor Pipeline” on page 190
— Provides an overview of pipeline behavior for
the IXP45X/IXP46X network processors.
•
“Basic Optimizations” on page 195
— Outlines basic optimizations that can be
applied to the IXP45X/IXP46X network processors.
•
“Cache and Prefetch Optimizations” on page 201
— Contains optimizations for
efficient use of caches. Also included are optimizations that take advantage of the
prefetch instruction of the IXP45X/IXP46X network processors.
•
“Instruction Scheduling” on page 212
— Shows how to optimally schedule code for
the pipeline of the IXP45X/IXP46X network processors.
•
“Optimizing C Libraries” on page 220
— Contains information relating to
optimizations for C library routines.
•
“Optimizations for Size” on page 220
— Contains optimizations that reduce the size
of the generated code. Thumb optimizations are also included.
3.10.2
Processor Pipeline
One of the biggest differences between the IXP45X/IXP46X network processors and
Intel
®
StrongARM
*
processors is the pipeline. Many of the differences are summarized
in
. This section provides a brief description of the structure and behavior of
the IXP45X/IXP46X network processors’ pipeline.
3.10.2.1
General Pipeline Characteristics
While the pipelines for the IXP45X/IXP46X network processors are scalar and single
issue, instructions may occupy all three pipelines at once. Out of order completion is
possible. The following sections discuss general pipeline characteristics.
3.10.2.1.1
Number of Pipeline Stages
The IXP45X/IXP46X network processors have a longer pipeline (seven stages versus
five stages) which operates at a much higher frequency than its predecessors do. This
allows for greater overall performance. However, the longer pipeline has several
negative consequences:
• Larger branch misprediction penalty (four cycles in the IXP45X/IXP46X network
processors instead of one in Intel
®
StrongARM
*
Architecture). This is mitigated by
dynamic branch prediction.
• Larger load use delay (LUD) - LUDs arise from load-use dependencies. A load-use
dependency gives rise to a LUD if the result of the load instruction cannot be made
available by the pipeline in due time for the subsequent instruction. An optimizing
compiler should find independent instructions to fill the slot following the load.
• Certain instructions incur a few extra cycles of delay on the IXP45X/IXP46X
network processors as compared to Intel
®
StrongARM
*
processors (LDM, STM).
• Decode and register file lookups are spread out over two cycles in the IXP45X/
IXP46X network processors, instead of one cycle in predecessors.