Interrupts vs. Exceptions
Interrupts: Asynchronous
Exceptions: Synchronous
Which RISC-V instructions don’t ever result in exceptions? None.
Types of Exceptions
- Arithmetic: Overflow, Underflow, Div by Zero
- Faults: Page fault, Invalid Opcode
- Errors: Parity
- Traps: Breakpoint
Precise Exceptions
- All instructions are atomic: on exception, all previous instructions are executed
- The faulting instruction may or may not have been executed, depending on the definition of the architecture and the cause of the exception
Speculative Execution + Faults
- Reorder Buffer: commit faults when need to commit
Caches
Why memory wall?
- Storage tech
- Physical distance
- Bus bandwidth (more cores, etc.)