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

Feature request (not for CV32E40P): Implement external flush handshake for FENCE.I #366

Open
Silabs-ArjanB opened this issue Jun 16, 2020 · 0 comments
Labels
Component:RTL For issues in the RTL (e.g. for files in the rtl directory) Type:Enhancement For feature requests and enhancements WAIVED:CV32E40P Issue does not impact a major release of CV32E40P and is waived

Comments

@Silabs-ArjanB
Copy link
Contributor

As CV32E40P does not have internal cache(s) the FENCE.I instruction only flushes the internal pipeline and prefetch buffer. For systems with an external (non-coherent) cache a 'software-directed cache-flushing followed by a FENCE.I instruction' can be used to achieve the desired effect (as described in #328).

For future cores (not CV32E40P) this feature request is to add an external interface (flush_req_o, flush_ack_i) which will get triggered by a FENCE.I instruction and can therefore be used to implement hardware-based flushing of external caches. The flush_ack_i would then be used to prevent any instruction fetch after the FENCE.I until the acknowledge is provided.

@Silabs-ArjanB Silabs-ArjanB added Component:RTL For issues in the RTL (e.g. for files in the rtl directory) Type:Enhancement For feature requests and enhancements WAIVED:CV32E40P Issue does not impact a major release of CV32E40P and is waived labels Jul 16, 2020
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:Enhancement For feature requests and enhancements WAIVED:CV32E40P Issue does not impact a major release of CV32E40P and is waived
Projects
None yet
Development

No branches or pull requests

1 participant