Skip to content
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

[XIF] LSU may send mpu_status to WB too early #653

Open
silabs-oysteink opened this issue Aug 25, 2022 · 2 comments
Open

[XIF] LSU may send mpu_status to WB too early #653

silabs-oysteink opened this issue Aug 25, 2022 · 2 comments
Labels
Component:RTL For issues in the RTL (e.g. for files in the rtl directory) Type:Bug For bugs in any content (RTL, Documentation, etc.)

Comments

@silabs-oysteink
Copy link
Contributor

If there is an offloaded instruction in WB waiting for xif_result_valid, and the MPU blocks a load or store in EX, the lsu_mpu_status_wb may get updated with the LSU instruction related fault before the offloaded instruction is completed.

The MPU does not get backpressure from wb_ready, but rather the LSU internal counter that counts outstanding transactions. When X_EXT=0 this works, but with X_EXT=1 the MPU must take wb_ready into account.

@Silabs-ArjanB Silabs-ArjanB added Component:RTL For issues in the RTL (e.g. for files in the rtl directory) Type:Bug For bugs in any content (RTL, Documentation, etc.) labels Aug 25, 2022
@Silabs-ArjanB Silabs-ArjanB added Status:Resolved Issue has been resolved, but closure is pending on git merge and/or issuer confirmation and removed Status:Resolved Issue has been resolved, but closure is pending on git merge and/or issuer confirmation labels Jan 20, 2023
@Silabs-ArjanB
Copy link
Contributor

Removing resolved label as applied fix does not actually address the stated issue. The MPU status can still get updated too early. In the applied fix it is just kept valid longer. Need to reconsider fix strategy.

@Silabs-ArjanB
Copy link
Contributor

The LSU as a whole (including watchpoint unit and MPU) should not need to deal with back pressure from WB simply because the OBI response data itself can also not deal with back pressure (as rready=1 always). Therefore the WB stage needs to be receptive for 1-cycle (non-sticky) outputs from the LSU always only assuming that the OBI protocol is being followed (e.g. earliest rvalid the cycle after granted request and responses are in order). (Therefore potentially additional buffering or priority logic needs to be added in WB).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component:RTL For issues in the RTL (e.g. for files in the rtl directory) Type:Bug For bugs in any content (RTL, Documentation, etc.)
Projects
None yet
Development

No branches or pull requests

2 participants