P137 keeps P136’s
I-cache-background preemption mechanism, but bounds it. After one
otherwise-safe aux-load issue preempts I-cache background fill, the next
otherwise-safe I-cache-only candidate is deferred so instruction-line
repair gets a chance to compete again.
check
result
Verilator build
PASS
BusyBox shell workload reaches P137-FILE-OK
PASS
Aux-load queue full drops
PASS
Aux response errors/cancels
PASS
Hardened layout
NOT RUN
metric
P135
P136
P137
post-load cycles
219,445,401
222,462,201
220,276,307
shell window cycles
65,411,939
67,392,718
65,356,841
retired instructions
86,534,503
86,961,841
86,275,649
CPI
2.5359
2.5582
2.5532
S_FETCH cycles
7,634,641
7,646,785
7,627,294
S_MEM cycles
27,975,703
29,771,841
29,389,375
This is a previous-rung shell-window PASS, but barely: P137 is
2,035,877 cycles faster than P136 and 55,098 cycles faster than P135.
It is still slower than P134.
aux-load counter
P135
P136
P137
candidates
5,418,028
5,182,600
5,126,386
issues
140,540
1,773,934
1,674,017
queue enqueues
140,540
1,773,934
1,674,017
queue dequeues
140,540
1,773,934
1,674,017
queue full drops
0
0
0
aux load fills
140,540
1,773,934
1,674,017
P137 policy bucket
count
frontend prefetch not safe/useful
1,584,002
frontend-ready candidates
3,542,384
background quiet candidates / issued
171,158
issued while preempting I-cache background
1,502,859
deferred by I-cache preemption bound
72,887
blocked by D-cache background only
354,195
blocked by both backgrounds
1,441,285
The bound is real but weak. It defers 72,887 candidates and still lets
1.50M I-cache-background preemptions through. The right next move is a
debt or age arbiter: preemptions should accumulate debt, I-cache
background service should pay it down, and aux-load issue should stop
while instruction repair is too far behind.