Skip to content

BPU: sample BTB ready on lookup, not every cycle - #284

Merged
poemonsense merged 1 commit into
masterfrom
circle-patch7
Sep 20, 2026
Merged

poemonsense merged 1 commit into
masterfrom
circle-patch7

Conversation

@good-circle

Copy link
Copy Markdown
Collaborator

RegNext(ready) follows SRAM readiness even when fetch is stalled. After a rejected BTB read, ready returns to 1 on an idle cycle and the held SRAM response is treated as valid for the new pcLatch. Same-tag collisions become false hits; in-order IFU has no maybeBranch recovery, so the wrong path can commit.

Sample ready only when fetch presents a PC, then hold that accept or reject through ICache stalls. Keep the existing BoolStopWatch flush and per-bank ready on the OoO path.

RegNext(ready) follows SRAM readiness even when fetch is stalled.
After a rejected BTB read, ready returns to 1 on an idle cycle and
the held SRAM response is treated as valid for the new pcLatch.
Same-tag collisions become false hits; in-order IFU has no maybeBranch
recovery, so the wrong path can commit.

Sample ready only when fetch presents a PC, then hold that accept or
reject through ICache stalls. Keep the existing BoolStopWatch flush
and per-bank ready on the OoO path.
@poemonsense
poemonsense merged commit 0310969 into master Sep 20, 2026
1 check passed
@poemonsense
poemonsense deleted the circle-patch7 branch September 20, 2026 02:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants