Re: ARM in pipeline mode
ARM7 has a 3-stage pipeline.
ARM9 has a 5-stage pipeline.
ARM10 has 6 and ARM11 has 8, both with branch prediction to avoid pipeline stall due to branching.
A simple 3-stage pipeline consists of fetch, decode and execute.
fetch - to fetch the instruction from the code memory indicated by the program counter.
decode - interpret the opcode from the instruction.
execute - based on the opcode, perform required operation on the operand(s).
How a 3-stage pipeline works?
Time Fetch Decode Execute
------------------------------------------------
time 0: Fetch 1 - -
time 1: Fetch 2 Decode 1 -
time 2: Fetch 3 Decode 2 Execute 1
time 3: Fetch 4 Decode 3 Execute 2
Pipelining - an efficient technique to complete an average of one instruction per cycle.
Notice I used the word "average".
Pipeline is not efficient when working with branch.