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

[FIX] m/sret optimization #35

Merged
merged 1 commit into from
Aug 11, 2023
Merged

[FIX] m/sret optimization #35

merged 1 commit into from
Aug 11, 2023

Conversation

ezelioli
Copy link

@ezelioli ezelioli commented Aug 9, 2023

Treat m/sret operations as direct jumps to PC + 0 when computing the npc_d. This avoids polluting the cache with useless instructions, and generating spurious icache misses.

@ezelioli ezelioli requested a review from niwis as a code owner August 9, 2023 21:01
@niwis
Copy link
Collaborator

niwis commented Aug 11, 2023

Thanks @ezelioli! Did you observe a performance improvements for your use case?

@ezelioli
Copy link
Author

Yes, that indeed avoids the deterministic icache misses I was experiencing when returning from interrupt service routines, which was increasing the pipeline recover time after an ISR from 6 to over 30 cycles.

Copy link
Collaborator

@niwis niwis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! LGTM. Would you mind opening the same PR upstream? https://github.com/openhwgroup/cva6

@niwis niwis merged commit 112cba1 into pulp-platform:pulp Aug 11, 2023
14 checks passed
niwis pushed a commit that referenced this pull request Apr 25, 2024
* I-cache generats snoop read requests + fix in cache_ctrl to avoid deadlock

* update ace lib

* add WB w/ H config

* revert read requests from the I-cache are forwarded to all D-caches

* partial merge from origin/culsans_pulp

* Bump ace

---------

Co-authored-by: Massimiliano Giacometti <[email protected]>
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.

2 participants