P93 added a shadow branch predictor: 32-entry direct-mapped BTB, 2-bit conditional counters, and an 8-entry return-address stack. It learns at retire but does not steer fetch yet.
The shell smoke passed:
P93 direct UART console + memory attribution smoke PASS
The shell window improved versus P92 but remains behind P91:
| metric | P91 | P92 | P93 |
|---|---|---|---|
| post-load cycles | 221,327,811 | 222,624,131 | 221,863,586 |
| shell window cycles | 65,985,297 | 67,206,635 | 66,342,842 |
| fetch stall cycles | 55,533,555 | 23,555,005 | 23,503,650 |
Predictor counters are the main point:
| predictor slice | result |
|---|---|
| conditional direction accuracy | 71.93% |
| jump target accuracy | 45.00% |
| return target accuracy | 96.57% |
The RAS is worth keeping. The direct-mapped BTB is useful but too aliased. P94 should make the memory path less tangled so a later frontend PC can actually use prediction.