
28 Embedded systems design
instruction is valid and execution can carry on. If the branch is
taken, the instruction is not valid and the whole pipeline must be
flushed and reloaded. This causes additional memory cycles
before the processor can continue. The delay is dependent on the
number of stages, hence the potential difficulty in increasing the
number of stages to reduce iterative delays. This interrelation of
engineering trade-offs is a common theme within microprocessor
architectures. Similar problems can occur for any change of flow:
they are not limited to just branch instructions and can occur with
interrupts, jumps, software interrupts etc. ...