-
Notifications
You must be signed in to change notification settings - Fork 214
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
[pmp tests] fence.i needed before TEST_FOR_EXECUTION #569
Comments
The changes were updated in this repository : https://github.com/kumaransvyoma/riscv-arch-test-pmp/tree/pmp-fence |
Can you explain why a store followed by a load from the same address requires a fence.i between the load and the store? |
To state the issue more clearly: The stores were done to code segment, so fence.i is required to clear and refetch from the icache so we can see the new instructions |
That matters - but only if you are executing code at an address you just
stored into, and the few examples I saw didn't seem to be doing that.
The snippets I saw were just storing, then loading from the same address.
Maybe I wasn't looking at the entire picture?
…On Mon, Nov 25, 2024 at 11:22 PM Lavanya J ***@***.***> wrote:
To state the issue more clearly: The stores were done to code segment, so
fence.i is required to clear and refetch from the icache so we can see the
new instructions
—
Reply to this email directly, view it on GitHub
<#569 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHPXVJTHUWR5L2LE7D5NL7T2CQORTAVCNFSM6AAAAABSNH7UMKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJZHA2TINJYGA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Sorry for the duplicate #588. See where the fence.i needs to be inserted.
|
From our design team (SHAKTI out-of-order), 2 tests (pmp64-NAPOT-RWX.S and TOR-RWX.S) require the fence. I am attaching their analysis as below:
At 0x80M820, we do not see the write that has just gone through and as a result we have incorrect execution. The following section is from the patched test with the fence included, here we can observe correct execution (write has been reflected).
|
OK, that's a known problem; It not a store/load dependency, it's a store/execute dependency and the fix is coming (in a few other places as well!) There needs to be a fence.i inbetween the store and the jal. |
In all the tests, load/store instructions happen to the pmp regions. Before checking the effect of it, fence is require to see the changes for any DUT. spike does this immediately, so issue will not be seen in models
The text was updated successfully, but these errors were encountered: