SLIDE 5 Outline
The model of micro-execution
- capt ure bot h program and processor const raint s
Four met rics:
- criticality
- slack
- execut ion modes
- cost
all misses FIFO
- n each predict ion
- ldest first
current what t o prefet ch? how to serve mem requests? when t o speculat e? how to schedule?
policy:
predict ion and speculat ion prefet ch crit ical pre -fetch, pre -execut e critical first non- blocking caches critical first OOO execut ion bet t er
mechanism Current policies are egalitarian: all “ bad” events equally harmful.
all misses FIFO
- n each predict ion
- ldest first
current what t o prefet ch? how to serve mem requests? when t o speculat e? how to schedule?
policy:
predict ion and speculat ion prefet ch crit ical pre -fetch, pre -execut e critical first non- blocking caches critical first OOO execut ion bet t er
mechanism
all misses FIFO
- n each predict ion
- ldest first
current what t o prefet ch? how to serve mem requests? when t o speculat e? how to schedule?
policy:
predict ion and speculat ion prefet ch crit ical pre -fetch, pre -execut e critical first non- blocking caches critical first OOO execut ion bet t er
mechanism
all misses FIFO
- n each predict ion
- ldest first
current what t o prefet ch? how to serve mem requests? when t o speculat e? how to schedule?
policy:
predict ion and speculat ion prefet ch crit ical pre -fetch, pre -execut e critical first non- blocking caches critical first OOO execut ion bet t er
mechanism
Why criticality predictor? Policies! Prediction: why hard?
Three st eps:
1.
- bserve the microexecution ⇒ hard!
- measuring edge latencies is intrusive
2.
analyze to find critical path ⇒ hard!
- graph too large to buffer
- and topological sort too complex
3.
store prediction for later use ⇒ easy!
- store in table indexed by PC
S tep 1. Observing
R1 R2 + R3 If dependence int o R2 is on crit ical pat h, t hen value of R2 arrived last . critical ⇒ arrives last arrives last ⇒ crit ical E
R2 R3 Dependence resolved early
⁄
Last-arrive edges: a CPU stethoscope
CPU
E C E E F E C F F F E F C C
Implementing last-arrive edges
Observe events within the machine
E F C E F C FE if dat a ready on fet ch E F C E F C E F C EE observe arrival order of
E F C E F C EC if commit point er is delayed CC ot herwise E F C E F C E F C E F C E F C E F C EF if branch misp. E F C E F C E F C E F C CF if ROB st all FF ot herwise