P141 keeps P140’s repair-aware direction but makes the budget adaptive. Demand-fetch lines get two background repair words; prefetch-only lines stay at one.
| check | result |
|---|---|
| Verilator build | PASS |
BusyBox shell workload reaches P141-FILE-OK | PASS |
| Aux-load queue full drops | PASS |
| Aux response errors/cancels | PASS |
| Hardened layout | NOT RUN |
| metric | P134 | P140 | P141 |
|---|---|---|---|
| post-load cycles | 218,247,567 | 220,083,644 | 219,252,781 |
| shell window cycles | 64,221,642 | 65,035,481 | 64,289,267 |
| retired instructions | 86,139,760 | 86,226,717 | 85,956,781 |
| CPI | 2.5336 | 2.5524 | 2.5507 |
| S_FETCH cycles | 7,617,695 | 7,623,290 | 7,613,755 |
| S_MEM cycles | 27,799,343 | 29,353,267 | 29,236,897 |
P141 is a speed PASS versus P140 by 746,214 cycles. It also beats P138 by 348,494 cycles. It still trails P134 by 67,625 cycles.
| repair-usefulness counter | P140 | P141 |
|---|---|---|
| background repair word fills | 32,047,006 | 32,151,196 |
| first later fetch hits | 1,319,114 | 1,351,543 |
| repeat later fetch hits | 552,003 | 602,447 |
| first-hit usefulness ratio | 4.12% | 4.20% |
| first + repeat fetch-hit ratio | 5.84% | 6.08% |
| P141 policy bucket | count |
|---|---|
| repair starts | 58,487,274 |
| second-word grants | 2,739,556 |
| budget stops | 31,449,945 |
| already-valid word skips | 148,562 |
| budget at end | 0 |
This is the first repair-policy result that nearly closes the P134 gap without returning to P139’s full repair stream. The adaptive rule adds only about 104K repair fills versus P140, but improves useful fetch hits and recovers most of the shell-window loss.
The next rung should be selective prefetch-side second-word repair: grant a second word to prefetch lines only when they directly feed the fetch queue or when the frontend is instruction-starved.
- kernel banner to /init 117,336,018 53.7%
- /init to shell banner 1,100,612 0.5%
- shell banner to first command 35,898,051 16.4%
- echo command 1,649 0%
- uname -a 2,253,034 1%
- ls /bin /usr/share 31,999,991 14.6%
- cat sample file 3,248,980 1.5%
- touch/write/cat/rm /tmp file 10,593,596 4.9%
- 8x ash loop with file I/O 16,191,337 7.4%
- final marker 680 0%
- fetch 3.5% 7,613,755
- execute 39.2% 85,981,521
- mem 13.5% 29,515,319
- walker 1.2% 2,664,582
- writeback 39.2% 85,956,781
- mul/div 3.4% 7,519,107