P144 applies P143’s audit result. Execute-stage prefetch fills still get one adjacent repair word, but no longer get a second repair word by default.
| check | result |
|---|---|
| Verilator build | PASS |
BusyBox shell workload reaches P144-FILE-OK | PASS |
| Aux-load queue full drops | PASS |
| Aux response errors/cancels | PASS |
| Hardened layout | NOT RUN |
| metric | P142 | P143 | P144 |
|---|---|---|---|
| post-load cycles | 218,856,863 | 219,787,362 | 219,161,535 |
| shell window cycles | 63,926,691 | 64,756,820 | 64,192,833 |
| retired instructions | 85,799,045 | 86,097,554 | 85,905,855 |
| CPI | 2.5508 | 2.5528 | 2.5512 |
| S_FETCH cycles | 7,598,133 | 7,607,357 | 7,601,896 |
| S_MEM cycles | 29,199,830 | 29,346,505 | 29,215,063 |
P144 is 563,987 cycles faster than P143 and 28,809 cycles faster than P134, but 266,142 cycles slower than P142. That makes it a useful policy experiment, not the new best shell result.
| counter | P143 | P144 | delta |
|---|---|---|---|
| background repair fills | 42,994,352 | 32,979,525 | -10,014,827 |
| first later fetch hits | 1,575,088 | 1,383,118 | -191,970 |
| repeat later fetch hits | 663,574 | 606,411 | -57,163 |
| demand second-word grants | 2,641,195 | 2,728,297 | +87,102 |
| prefetch second-word grants | 49,052,366 | 22,115,553 | -26,936,813 |
The throttle did cut the low-payback traffic, but it also removed enough useful hits to fall behind P142.
| class | repair fills | first hits | repeat hits | first+repeat ratio |
|---|---|---|---|---|
| demand fetch | 1,021,344 | 482,207 | 331,819 | 79.70% |
| execute prefetch | 29,021,605 | 558,785 | 180,904 | 2.55% |
| load prefetch | 2,419,665 | 134,871 | 15,575 | 6.22% |
| writeback prefetch | 407,551 | 170,820 | 53,952 | 55.15% |
| steer prefetch | 0 | 0 | 0 | 0.00% |
| aux prefetch | 109,360 | 36,435 | 24,161 | 55.41% |
| unknown | 0 | 0 | 0 | 0.00% |
The next rung should bring back execute-prefetch second-word repair only under a tighter condition, rather than enabling it for the whole class.
- kernel banner to /init 117,345,818 53.7%
- /init to shell banner 1,095,952 0.5%
- shell banner to first command 35,898,113 16.4%
- echo command 1,649 0%
- uname -a 2,449,446 1.1%
- ls /bin /usr/share 31,650,054 14.5%
- cat sample file 3,003,495 1.4%
- touch/write/cat/rm /tmp file 10,595,352 4.9%
- 8x ash loop with file I/O 16,492,157 7.6%
- final marker 680 0%
- fetch 3.5% 7,601,896
- execute 39.2% 85,930,489
- mem 13.5% 29,493,185
- walker 1.2% 2,682,490
- writeback 39.2% 85,905,855
- mul/div 3.4% 7,545,904