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

cva6_icache: Allow one outstanding killed miss #1497

Closed
wants to merge 2 commits into from

Conversation

colluca
Copy link
Contributor

@colluca colluca commented Oct 4, 2023

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.

@colluca colluca marked this pull request as ready for review October 4, 2023 08:47
@github-actions
Copy link
Contributor

github-actions bot commented Oct 4, 2023

❌ failed run, report available here.

@JeanRochCoulon
Copy link
Contributor

JeanRochCoulon commented Oct 4, 2023

Good catch, the execution is faster!

Your PR triggers this assertion:
image

@JeanRochCoulon
Copy link
Contributor

@colluca can you rebase to solve the conflicts ?

@JeanRochCoulon
Copy link
Contributor

Hello @colluca Since 4 weeks the PR is open... To be able to help in fixing the current issues, can you rebase the PR ?

@colluca colluca force-pushed the feature/async-kill-miss branch from d3792cf to 51c7999 Compare October 30, 2023 11:50
@colluca
Copy link
Contributor Author

colluca commented Oct 30, 2023

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.

@JeanRochCoulon
Copy link
Contributor

Ok, I will relaunch the Thales CI

@github-actions
Copy link
Contributor

❌ failed run, report available here.

@cathales
Copy link
Contributor

Hello @colluca,
Do you need help to reproduce the issue reported by CI in your local environment?

@colluca
Copy link
Contributor Author

colluca commented Nov 22, 2023

@cathales That would be great, now I have time to get back to this work item :)

Copy link
Contributor

👋 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. 😊

@github-actions github-actions bot added the Status:Stale Issue or PR is stale and hasn't received any updates. label Dec 23, 2023
@github-actions github-actions bot closed this Dec 28, 2023
@JeanRochCoulon
Copy link
Contributor

Hello @colluca Do you have time to look at it ?

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Copy link
Contributor

❌ failed run, report available here.

@github-actions github-actions bot removed the Status:Stale Issue or PR is stale and hasn't received any updates. label Dec 29, 2023
@JeanRochCoulon
Copy link
Contributor

As this PR cannot be merged. I close it and open a github issue to log the issue #1785.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants