No. 116 / project of 147 on the ladder

Active predictor steering

introduces — guarded predictor steering; steering candidate counters; speculative-fetch failure note

harden statelast run2026-05-06
signoff
  • DRCNOT RUN
  • LVSNOT RUN
  • antennaNOT RUN

P116 tries to turn the P115 frontend target queue into active predictor steering. The live version built, but wedged before the Linux kernel banner. The final RTL keeps the steering readiness counters and gates speculative target prefetch off so Linux and BusyBox remain the acceptance test.

checkresult
Verilator buildPASS
BusyBox shell workload reaches P116-FILE-OKPASS
Live predicted-target prefetchFAIL
Guarded steering countersPASS
Hardened layoutNOT RUN
countervalue
steering candidates4,464,122
steering issues0
blocked unaligned119,767
blocked TLB/permission11,378
FTQ fills54,320,033
FTQ consumes54,320,033
FTQ flushes0
metricP115P116
shell window cycles65,309,21665,806,663
S_FETCH cycles7,635,4327,643,195
S_MEM cycles27,816,60627,889,071

The result is useful precisely because it is not a fake speedup. The next frontend rung needs a speculative target buffer or non-architectural fill record so predicted data can be promoted only after the queued branch resolves.

shell phases label P116 shell workload cycles 219,716,015 cpi 2.54
  1. kernel banner to /init 116,715,602 53.3%
  2. /init to shell banner 1,076,752 0.5%
  3. shell banner to first command 35,488,931 16.2%
  4. echo command 1,649 0%
  5. uname -a 1,945,031 0.9%
  6. ls /bin /usr/share 32,998,702 15.1%
  7. cat sample file 2,682,655 1.2%
  8. touch/write/cat/rm /tmp file 11,725,309 5.4%
  9. 8x ash loop with file I/O 16,452,637 7.5%
  10. final marker 680 0%
state breakdown label P116 guarded steering workload cycles 219,716,015 cpi 2.54
  1. fetch 3.5% 7,643,195
  2. execute 39.5% 86,693,157
  3. mem 12.8% 28,170,311
  4. walker 1.2% 2,726,422
  5. writeback 39.4% 86,668,105
  6. mul/div 3.6% 7,813,109