No. 126 / project of 147 on the ladder

Memory/control holding records

introduces — shadow memory holding record; shadow control holding record; class-specific backend source readiness

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

P126 splits the P124/P125 non-integer block classes into explicit shadow holding records. One record models memory-class queued work; one record models control-flow queued work. The architectural core still runs the same in-order FSM.

checkresult
Verilator buildPASS
BusyBox shell workload reaches P126-FILE-OKPASS
Holding-record counters emittedPASS
Hardened layoutNOT RUN
memory holding countervalue
candidates6,659,815
accepts3,245,087
releases3,245,025
hold cycles6,726,473
full blocks0
source-busy blocks3,414,728
sources ready3,245,087
loads / stores / AMOs3,629,606 / 2,872,573 / 157,636
flush clears61
control holding countervalue
candidates9,328,049
accepts6,280,124
releases6,280,124
hold cycles6,280,124
full blocks29,878
source-busy blocks3,018,251
sources ready6,309,798
branches / JALs / JALRs5,956,381 / 2,169,899 / 1,201,769
flush clears0
metricP125P126
post-load cycles218,418,785218,372,668
shell window cycles64,495,26464,451,352
retired instructions86,247,29386,230,113
CPI2.53252.5324
S_FETCH cycles7,621,1017,621,517
S_MEM cycles27,710,92327,697,973

This is not a speedup claim. The measured value is classification. The memory side has millions of ready candidates and no full-record pressure; the control side has enough ready candidates to fill a one-entry record and still shows 29.9K full blocks. That makes P127’s job concrete: model scheduler wakeup/issue rules across integer, memory, and control records instead of treating writeback as the only drain point.

shell phases label P126 shell workload cycles 218,372,668 cpi 2.53
  1. kernel banner to /init 116,718,876 53.6%
  2. /init to shell banner 1,082,664 0.5%
  3. shell banner to first command 35,491,709 16.3%
  4. echo command 1,649 0%
  5. uname -a 2,497,981 1.2%
  6. ls /bin /usr/share 31,841,895 14.6%
  7. cat sample file 2,664,397 1.2%
  8. touch/write/cat/rm /tmp file 11,471,835 5.3%
  9. 8x ash loop with file I/O 15,972,915 7.3%
  10. final marker 680 0%
state breakdown label P126 memory/control holding workload cycles 218,372,668 cpi 2.53
  1. fetch 3.5% 7,621,517
  2. execute 39.5% 86,254,823
  3. mem 12.8% 27,976,965
  4. walker 1.2% 2,679,765
  5. writeback 39.5% 86,230,113
  6. mul/div 3.5% 7,607,769