Delay flush by one cycle#762
Draft
tilk wants to merge 2 commits intokuznia-rdzeni:masterfrom
Draft
Conversation
Benchmarks summaryPerformance benchmarks
You can view all the metrics here. Synthesis benchmarks (basic)
Synthesis benchmarks (full)
|
awariac
reviewed
Nov 26, 2024
Comment on lines
-183
to
+182
| # Condition is used to avoid FRAT locking during normal operation | ||
| with condition(m) as cond: | ||
| with cond(commit): | ||
| retire_instr(rob_entry) | ||
| with cond(): | ||
| # Not using default condition, because we want to block if branch is not ready | ||
| flush_instr(rob_entry) | ||
|
|
||
| m.d.comb += core_flushing.eq(1) | ||
| with m.If(commit): | ||
| retire_instr(rob_entry) |
Member
There was a problem hiding this comment.
This is not valid - when instruction is an exception with commit=0 (like synchronous exceptions),
RF is not freed (and not pushed to Free RF), but instruction is retired from ROB, and TRAP_FLUSH would flush next instruction.
Member
Author
There was a problem hiding this comment.
Indeed, you're right - this was not thought out enough. Still, this means we have a blind spot in tests for this.
Member
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR simplifies retirement by delaying the start of flushing. This eliminates one use of
conditionand makes theflushingsignal registered. Looking at benchmarks:is not significantly impactedsomehow didn't change at all.