English
Language : 

C161V_96 Datasheet, PDF (41/260 Pages) Siemens Semiconductor Group – 16-Bit CMOS Single-Chip Microcontrollers
10Jul97@15:19h The Central Processing Unit (CPU) / C161
1 Machine
Cycle
FETCH
I1
I2
I3
I4
I5
I6
DECODE
I1
I2
I3
I4
I5
EXECUTE
I1
I2
I3
I4
WRITEBACK
I1
I2
I3
time
Figure 4-2
Sequential Instruction Pipelining
Standard Branch Instruction Processing
Instruction pipelining helps to speed sequential program processing. In the case that a branch is
taken, the instruction which has already been fetched providently is mostly not the instruction which
must be decoded next. Thus, at least one additional machine cycle is normally required to fetch the
branch target instruction. This extra machine cycle is provided by means of an injected instruction
(see figure below).
1 Machine
Cycle
FETCH BRANCH In+2
Injection
ITARGET ITARGET+1 ITARGET+2 ITARGET+3
DECODE
In
BRANCH (IINJECT) ITARGET ITARGET+1 ITARGET+2
EXECUTE
...
In
BRANCH (IINJECT) ITARGET ITARGET+1
WRITEBACK . . .
...
In
BRANCH (IINJECT) ITARGET
time
Figure 4-3
Standard Branch Instruction Pipelining
If a conditional branch is not taken, there is no deviation from the sequential program flow, and thus
no extra time is required. In this case the instruction after the branch instruction will enter the decode
stage of the pipeline at the beginning of the next machine cycle after decode of the conditional
branch instruction.
Semiconductor Group
4-4