Pipelining
One instruction/result every cycle (ideal)
Not in practice because of hazards
Throughput = number of results/second
In the ideal case, if n stages , the speed-up will be close to n
Can’t make n too large: load balancing between stages & hazards
Might slightly increase the latency of individual instructions (pipeline overhead)