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

Access exceptions caused by PTW are probably broken right now. #170

Closed
jerryz123 opened this issue Jan 27, 2019 · 3 comments
Closed

Access exceptions caused by PTW are probably broken right now. #170

jerryz123 opened this issue Jan 27, 2019 · 3 comments
Labels

Comments

@jerryz123
Copy link
Contributor

The D$ TLB handles both PTW and core requests, and does not differentiate between either. To re-enable PMPs, #123 ignores access exceptions thrown by the D$ TLB, since core requests check the PMPs in the LSU TLB instead.

However, PTW requests may still fail a PMP check, and that exception needs to propagate.

Essentially, the D$ needs to differentiate between core and PTW requests somehow.

@pentin-as
Copy link
Contributor

pentin-as commented Mar 22, 2019

Until you have done more closely L1D and LSU, I would like to try to make the following temporary correction:

  • TLB inside LSU only translate address;
  • D$ contains PMPChecker (instead LSU), which checks all requests (from LSU and PTW).

Additionally, I can say that PMP inside LSU contains one of the critical path that would be good to remove:
#224

What do you think about that?

@jerryz123
Copy link
Contributor Author

The issue is this would require forking the TLB and PMPChecker from Rocket, which currently combines them in one module. I'm not sure how much work this would be, and in any case forking would leave behind a lot of duplicate code between BOOM and Rocket.

It also looks like it will be challenging to split up the functionality of PMPChecker from the TLB, since on refills, the PMPChecker marks bits in the TLB entries.

@jerryz123
Copy link
Contributor Author

Resolved in #275

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

No branches or pull requests

2 participants