The Fundamentals of Pipelined Processors
- RISC-V : open source ISA
   → in risc-v: GPR labelled a0, a1...
- Logic propagation time
   → these components involve a lot of gates
   → in one clock cycle, data would have to go through the decode and the alu...
   → each gate has a small propagation delay, which compound.
- To speed it up, we can split each thing such that we only do part of the work at once.
   → doing less on each cycle
   → 1st cycle: fetch 2nd: decode while u fetch the next thing, 3rd: execute while decoding from 2, and fetching again
- Frontend pipeline
   → plans the code the backend will execute
   → goal is to keep the backend as busy as possible
   → 1) fetch and decode
   → OR
   → 1) fetch 2) decode
- backend pipelie
   → actually executes the instructions... writes to memory etc
   → 2) execute and writeback
   → OR
   → 3) execute 4) writeback
   → OR
   → 3) execute 4) memory 5) writeback
- ayo he mentioned the intel atom (the processor this thing uses)
Pipeline Hazards
- Control hazard
   → need a result of conditional before its ready
- Structural hazard
   → need the same resource for two instructions
- Data hazard 
   → instruction needs result of an instruction that's not finished executing.
Pipeline stalls:
- waiting for resources
Branching:
neorv32 ← look up
webriscv
  Index