P124 turns P123’s dispatch opportunity window into a one-entry shadow integer issue slot. It decodes the queued fetch instruction, accepts simple integer work, and counts why other queued instructions cannot issue yet. Architectural execution is still unchanged.
| check | result |
|---|---|
| Verilator build | PASS |
BusyBox shell workload reaches P124-FILE-OK | PASS |
| Issue-slot counters emitted | PASS |
| Hardened layout | NOT RUN |
| issue-slot counter | value |
|---|---|
| candidates | 40,458,763 |
| accepted simple integer ops | 9,802,160 |
| issued/drained ops | 9,802,160 |
| hold cycles | 11,295,134 |
| full blocks | 3,289,938 |
| dependency blocks | 11,304,142 |
| memory-class blocks | 6,658,522 |
| control-flow blocks | 9,327,439 |
| system/fence blocks | 76,562 |
| FP blocks | 0 |
| unknown blocks | 0 |
| metric | P123 | P124 |
|---|---|---|
| post-load cycles | 217,921,168 | 218,328,141 |
| shell window cycles | 64,008,910 | 64,450,052 |
| retired instructions | 86,078,334 | 86,212,975 |
| CPI | 2.5317 | 2.5324 |
| S_FETCH cycles | 7,615,306 | 7,623,828 |
| S_MEM cycles | 27,640,594 | 27,688,623 |
This is not a speedup claim. The useful result is the classification: roughly 9.80M queued instructions look like simple integer issue-slot work, while the larger blockers are dependency, control-flow, and memory classes.
That points the next rung at source-ready bookkeeping and separate memory/control holding records. A bigger ROB is still the wrong lever while everything shares one issue lane.
- kernel banner to /init 116,719,392 53.6%
- /init to shell banner 1,055,100 0.5%
- shell banner to first command 35,475,530 16.3%
- echo command 1,649 0%
- uname -a 2,219,212 1%
- ls /bin /usr/share 31,947,808 14.7%
- cat sample file 3,038,278 1.4%
- touch/write/cat/rm /tmp file 10,972,643 5%
- 8x ash loop with file I/O 16,269,782 7.5%
- final marker 680 0%
- fetch 3.5% 7,623,828
- execute 39.5% 86,237,767
- mem 12.8% 27,967,435
- walker 1.2% 2,682,867
- writeback 39.5% 86,212,975
- mul/div 3.5% 7,601,553