[LSQ] Add "fallback issue" logic to prepare for approximate address comparison#760
Open
[LSQ] Add "fallback issue" logic to prepare for approximate address comparison#760
Conversation
10c2a95 to
b23edfc
Compare
murphe67
reviewed
Mar 9, 2026
Collaborator
murphe67
left a comment
There was a problem hiding this comment.
pretty short review as a first heads up will look properly again later!
Thanks again Max! :)
MaxWipfli
commented
Mar 10, 2026
b23edfc to
4c3b8dc
Compare
6c596f8 to
b7e5617
Compare
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 change adds a secondary "fallback issue" path to the LSQ for both loading and storing.
This fallback path runs in parallel to the regular issue path, and guarantees that the oldest pending memory operation (load or store, whichever is older) is issued when possible (i.e., the operands are valid).
While this does not currently change the behavior of the LSQ, this functionality is required as soon as we introduce approximate address comparison (which can cause "false conflicts", where memory operations are deemed unsafe to issue despite having no conflicts).
There are separate flags for fallback load issue and fallback store issue. We do not expect to need the fallback store issue path, as the fallback logic is only required if the approximate address comparison can cause false conflicts even if the set of addresses it considers is empty, which will not be the case for stores. We might need fallback load issue, if we share sets between multiple loads, so the first load could be blocked on a conflict with a later store. (This is not a problem for stores as we can only ever issue one store, so there is no need for sharing sets.)
TODO:
addr_same_pcomp(i,j) = 1,