Control Hazards (c’ed)
Branches (conditional, unconditional, call-return)
Interrupt: asynchronous event (e.g., I/O)
- Occurrence of an interrupt checked at every cycle
- If an interrupt has been raised, don’t fetch next instruction, flush the pipe, handle the interrupt (see later in the quarter)
Exceptions (e.g., arithmetic overflow, page fault etc.)
- Program and data dependent (repeatable), hence “synchronous”