No. 122 / project of 147 on the ladder

Multi-entry ROB sketch

introduces — four-entry shadow ROB ring; occupancy counters; free-list pressure check

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

P122 grows the shadow ROB model to four entries. The point is not performance; it asks whether the current backend can keep more than one renamed destination live once the container is available.

checkresult
Verilator buildPASS
BusyBox shell workload reaches P122-FILE-OKPASS
ROB occupancy counters emittedPASS
Hardened layoutNOT RUN
ROB / PRF countervalue
ROB capacity4
ROB max occupancy1
ROB allocs59,300,128
ROB commits59,299,949
ROB flushes179
ROB full-wait cycles0
missing commit events0
occupancy-0 cycles135,022,896
occupancy-1 cycles83,993,890
occupancy-2/3/4 cycles0
max live physical registers33
metricP121P122
shell window cycles64,541,92265,109,744
S_FETCH cycles7,622,0487,628,977
S_MEM cycles27,719,21827,785,996

This is a useful negative result. A bigger ROB ring does not create backend overlap by itself; the current FSM still dispatches and commits one destination at a time. The next backend rung needs a dispatch/issue split before the ROB can become meaningfully occupied.

shell phases label P122 shell workload cycles 219,016,787 cpi 2.53
  1. kernel banner to /init 116,722,505 53.5%
  2. /init to shell banner 1,082,539 0.5%
  3. shell banner to first command 35,473,932 16.2%
  4. echo command 1,649 0%
  5. uname -a 2,495,871 1.1%
  6. ls /bin /usr/share 31,841,763 14.6%
  7. cat sample file 2,664,291 1.2%
  8. touch/write/cat/rm /tmp file 11,800,488 5.4%
  9. 8x ash loop with file I/O 16,305,002 7.5%
  10. final marker 680 0%
state breakdown label P122 multi-entry ROB sketch workload cycles 219,016,787 cpi 2.53
  1. fetch 3.5% 7,628,977
  2. execute 39.5% 86,460,434
  3. mem 12.8% 28,065,662
  4. walker 1.2% 2,699,783
  5. writeback 39.5% 86,435,662
  6. mul/div 3.5% 7,724,553