Instruction Pipeline and Execution Timing
e200z3 Power Architecture Core Reference Manual, Rev. 2
Freescale Semiconductor
6-13
Figure 6-16. DCR, MMU mtspr, mfspr, and MMU Management Instruction Execution
6.4
Stalls Caused by Accessing SPRs
An mfspr instruction preceded by an mtspr instruction cannot be issued until the mtspr completes.
6.5
Instruction Serialization
The core requires three types of serialization:
•
Completion serialization. A completion-serialized instruction is held for execution until all prior
instructions have completed. The instruction executes when it is next to complete in program order.
Results from these instructions are not available for or forwarded to subsequent instructions until
the instruction completes. The following instructions are completion-serialized:
— Instructions that access or modify system control or status registers—mcrxr, mtmsr, wrtee,
wrteei, mtspr, mfspr (except to CTR/LR)
— Instructions that manage TLBs
— Instructions defined by the architecture as context or execution synchronizing: isync, msync,
rfi, rfci, rfdi, and sc
•
Dispatch (decode/issue) serialization. Some instructions are dispatch-serialized by the core. An
instruction that is dispatch-serialized prevents the next instruction from decoding until all
instructions up to and including the dispatch-serialized instruction completes. The isync, mbar,
msync, rfi, rfci, rfdi, and sc instructions are dispatch-serialized.
Time Slot
DEC
EXE
WB
IFETCH
...
...
Single-Cycle Instruction
DEC
Stall
IFETCH
Stall
EXE
WB
Next Instruction
p_[i,d]_treq_b
p_[i,d]_tbusy[0]_b
p_[i,d]_ta_b
p_rd_spr,
p_wr_spr
p_[i,d]_cmbusy
mtspr
,
mfspr
DEC
Stall
IFETCH
Stall
EXE
WB