Flow Control - Freescale Semiconductor PowerPC MPC823 Reference Manual

The microprocessor for mobile computing
Table of Contents

Advertisement

6.3.1 Flow Control

Flow control operations, or branches disrupt normal instruction pipeline flow. A change in
program flow creates bubbles in the pipeline because of the time it takes to fetch the newly
targeted instruction stream. In typical code, with 4 or 5 sequential instructions between
branches, the machine could waste up to 25% of its execution bandwidth waiting on branch
latency.
INSTRUCTION ADDRESS GENERATOR
READ / WRITE
BUSSES
The sequencer maintains a 4-instruction deep instruction prefetch queue to execute
branches in parallel with the execution of sequential instructions. Ideally, a sequential
instruction is issued every clock, even when branches are present in the code. This is
referred to as branch folding. The instruction prefetch queue also eliminates stalls due to
long latency instruction fetches and all instructions are fetched into the instruction prefetch
queue, but only sequential instructions are issued to the execution units when they reach
the head of the queue. Branches enter the queue to mark watchpoints. See Section 20
Development Capabilities and Interface for details. Since branches do not prevent the
issue of sequential instructions unless they come in pairs, the performance impact of
entering branches in the instruction prefetch queue is negligible.
Freescale Semiconductor, Inc.
INSTRUCTION MEMORY SYSTEM
CC UNIT
EXECUTION UNITS AND REGISTERS FILES
Figure 6-4. Sequencer Data Path
MPC823 REFERENCE MANUAL
For More Information On This Product,
Go to: www.freescale.com
INSTRUCTION BUFFER
BRANCH
CONDITION
EVALUATION
The PowerPC Core
32
32
INSTRUCTION
PREFETCH
QUEUE (4)
32
6-5

Advertisement

Table of Contents
loading

Table of Contents