-
Notifications
You must be signed in to change notification settings - Fork 705
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
cva6_icache: Allow one outstanding killed miss #1497
Conversation
❌ failed run, report available here. |
@colluca can you rebase to solve the conflicts ? |
Hello @colluca Since 4 weeks the PR is open... To be able to help in fixing the current issues, can you rebase the PR ? |
d3792cf
to
51c7999
Compare
Hi @JeanRochCoulon, sorry I'm very busy at the moment and could only have a deep look at it after mid November, but I have rebased it as requested. |
Ok, I will relaunch the Thales CI |
❌ failed run, report available here. |
Hello @colluca, |
@cathales That would be great, now I have time to get back to this work item :) |
👋 Hi there! This pull request seems inactive. Need more help or have updates? Feel free to let us know. If there are no updates within the next few days, we'll go ahead and close this PR. 😊 |
Hello @colluca Do you have time to look at it ? |
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
❌ failed run, report available here. |
As this PR cannot be merged. I close it and open a github issue to log the issue #1785. |
This PR relates to the following behaviour.
The I$ can receive a speculative request from the instruction fetch unit (e.g. upon a branch). If this instruction is not in the cache we will incur a miss and a refill request will be issued to the memory. If, when the branch is resolved, the speculated instruction is killed, the refill request will be killed (i.e. the speculated instruction will never be loaded into the cache). Despite being killed, the I$ still waits on the request from memory to be back, stalling all other operation. This implies that even with a hot cache, we can still experience cache miss stalls on speculated instructions which will never enter the cache, and hence the cache will never truely be "hot" (in this sense, speculated instructions should be considered part of the working set).
This PR attempts to improve performance in this condition by handling up to one killed refill request asynchronously. A speculated miss will only induce a stall if another miss occurs before the killed refill returns from memory.