2.1 Multicycle Instructions
As shown in the instruction summary tables, most instructions execute in a single cycle with the following exceptions:
- ASRM, LSRM, ED, EDAC and a few other instructions require two cycles to execute.
- Instructions,
DIVF, DIVFL, DIVU, DIVUL, DIVS, and DIVSL
are single-cycle instructions, which should be executed consecutive times as the target of aREPEAT
instruction. - Instructions that change the Program Counter require two cycles to execute. Instructions such as
CALL
also require two cycles to execute. RETFIE
,RETLW
andRETURN
are a special case of an instruction that changes the Program Counter. These execute in three to four cycles, unless an exception is pending, and then they execute in two cycles.
The cycle count of program flow change instructions also depend on the status of PBU cache. The table below shows the cycle counts of these instructions under different scenarios.
Instruction | Cycle Counts | ||
---|---|---|---|
Cache/ISB Hit | Cache/ISB Miss | Execution from RAM | |
Conditional Branch1 | 1 (3) | 1 (6 to 9) | 1 (3) |
BRA | 1 | 4–7 | 1 |
BRA W | 5–8 | 5-8 | 2 |
CALL | 1 | 4–7 | 1 |
CALL W | 5–8 | 5–8 | 2 |
GOTO | 1 | 4–7 | 1 |
GOTO W | 5–8 | 5–8 | 2 |
RCALL | 1 | 4–7 | 1 |
RCALL W | 5–8 | 5–8 | 2 |
RETFIE | 7–10 | 7–10 | 4 |
RETLW | 6–9 | 6–9 | 3 |
RETURN | 6–9 | 6–9 | 3 |
Note:
|