-
Notifications
You must be signed in to change notification settings - Fork 735
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CMO Extension, cbo.zero
instruction details
#4240
Labels
question
Question requiring answer
Comments
Yes, this does present a certain problem, thank you for pointing this out and we will address this issue subsequently. |
Tang-Haojin
pushed a commit
that referenced
this issue
Feb 17, 2025
1. typo. 2. `cbo` instr not produce misaligned exception. 3. `cbo zero` instr need flush `sbuffer`. 4. `cbo zero` sets mask correctly 5. Adding RAW checks to `cbo zero`. 6. Adding trigger(Debug Mode) checks to `cbo zero`. 7. Fixed several issues with the CBO instruction in NEMU. ---- In order not to create ambiguity with `io.mmioStout`, a new port of `StoreQueue` is introduced for writeback `cbo zero` after flush sbuffer. arbitration is performed in `MemBlock`, and currently, `cbo zero` has higher priority by default. `cbo zero` should not be writteback at the same time as `mmio`. --- A check on `CacheLine` has been added to `RAWQueue` to ensure memory consistency when executing `cbo zero`. See this issues:#4240 for specific issues. --- The `cbo` instruction requires a trigger check. --------- Co-authored-by: zhanglinjuan <[email protected]>
The issue has now been resolved by the pr mentioned, thanks for pointing it out. |
ChrisYzcc
pushed a commit
to ChrisYzcc/XiangShan
that referenced
this issue
Feb 22, 2025
…4262) 1. typo. 2. `cbo` instr not produce misaligned exception. 3. `cbo zero` instr need flush `sbuffer`. 4. `cbo zero` sets mask correctly 5. Adding RAW checks to `cbo zero`. 6. Adding trigger(Debug Mode) checks to `cbo zero`. 7. Fixed several issues with the CBO instruction in NEMU. ---- In order not to create ambiguity with `io.mmioStout`, a new port of `StoreQueue` is introduced for writeback `cbo zero` after flush sbuffer. arbitration is performed in `MemBlock`, and currently, `cbo zero` has higher priority by default. `cbo zero` should not be writteback at the same time as `mmio`. --- A check on `CacheLine` has been added to `RAWQueue` to ensure memory consistency when executing `cbo zero`. See this issues:OpenXiangShan#4240 for specific issues. --- The `cbo` instruction requires a trigger check. --------- Co-authored-by: zhanglinjuan <[email protected]>
ChrisYzcc
pushed a commit
to ChrisYzcc/XiangShan
that referenced
this issue
Feb 22, 2025
…4262) 1. typo. 2. `cbo` instr not produce misaligned exception. 3. `cbo zero` instr need flush `sbuffer`. 4. `cbo zero` sets mask correctly 5. Adding RAW checks to `cbo zero`. 6. Adding trigger(Debug Mode) checks to `cbo zero`. 7. Fixed several issues with the CBO instruction in NEMU. ---- In order not to create ambiguity with `io.mmioStout`, a new port of `StoreQueue` is introduced for writeback `cbo zero` after flush sbuffer. arbitration is performed in `MemBlock`, and currently, `cbo zero` has higher priority by default. `cbo zero` should not be writteback at the same time as `mmio`. --- A check on `CacheLine` has been added to `RAWQueue` to ensure memory consistency when executing `cbo zero`. See this issues:OpenXiangShan#4240 for specific issues. --- The `cbo` instruction requires a trigger check. --------- Co-authored-by: zhanglinjuan <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Before start
Describe the question
It seems that implementation of the
cbo.zero
instruction would require updates to few other places in the code base, analogous to those made at StoreQueueData.scala#L78. For instance, in case of LoadQueueRAW.scala#L287, it would require checks whether "querying" stores (inio.storeIn
) are coming from thecbo.zero
instruction, i.e. writing the entire cache lines or not. Currently such checks seem to be missing, which strongly suggests possible issues for memory model correctness... unless this is taken care of elsewhere in the design. Perhaps you could provide a bit of clarification or hints in the latter case.The text was updated successfully, but these errors were encountered: