-
Notifications
You must be signed in to change notification settings - Fork 685
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
Add the HPDcache as cache subsystem #1513
Add the HPDcache as cache subsystem #1513
Conversation
Hello everyone ! Finally 😃 the pull-request to add the HPDcache as one of the cache subsystems for the CVA6. In this pull-request:
Let me know if you think this is the good way, Thanks |
By the way, CMOs and Hardware Prefetcher interfaces to the cache are wired to 0 for the moment. Regarding the CMOs, I have a patch that allows to support Zicbom (cache-block management operations, e.g. inval, flush) and Zicbop (cache-block prefetch operations). But we can discuss about integrating these extensions in the CVA6 after. I know that @Jbalkind is also working in these extensions to integrate with OpenPiton. Regarding the hardware prefetcher, most of the configuration registers will be actually part of the HPDcache CSR register map. Thus, signals will not come from the CVA6 pipeline, but from the HPDcache itself. This interface will then disappear. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, very exciting - looks good! I've only gone through the cva6
related files.
I am okay with merging since it doesn't touch CVA6 sources much, but I would suggest we add some sort of sanity check (verilator compilation + dhrystone test for example?) to the CI to make sure there are no breaking changes happening :-)
Thanks @zarubaf, I made the modification you proposed. For the CI, I think that having at least Dhrystone as you proposed is a good idea. |
❌ failed run, report available here. |
That is Ok for me. However, people may be surprised of having a new cache subsystem with their currently used configuration. |
I would prefer an extra sanity test in GitHub CI. It would indeed be surprising if the cache suddenly changed. The extra test should not add much additional delay as we are in general anyway waiting for the Thales CI. |
434449e
to
504cc80
Compare
Hm, since the CI passed on @niwis PR, could it be that you have some similar named function/module/etc. in the HPDCache and |
❌ failed run, report available here. |
Yes I agree. It looks like a side-effect. I don't have any function with the same or similar name. Somehow, compiling the extra files for the HPDcache, now verilator is having some trouble with the inlining of code, even if the HPDcache is not actually used in the configurations failing. It clearly looks like a Verilator bug... |
504cc80
to
b0f9859
Compare
❌ failed run, report available here. |
2f3afb3
to
0c3a57d
Compare
@zarubaf and @JeanRochCoulon, I'm starting to getting out of ideas... I commented out all HPDcache files in the Flist.cva6 file and the CI still fails on tests using the WB cache. WT tests go farther but they are cancelled after a while because of the WB failing. Do you have any ideas ? Thanks ! |
❌ failed run, report available here. |
@cfuguet labelling the WB generate block seems to fix this: pulp-platform@e8f51a7 |
64309bb
to
83f470d
Compare
Good catch. That is great. Thank you @niwis |
83f470d
to
d976311
Compare
Additional changes introduced in the pull-request:
|
By the way, @niwis your patch fixes the issue. Thank you again ! |
3d283c7
to
5a740c7
Compare
❌ failed run, report available here. |
Hi @JeanRochCoulon, Could you please send me the failing report in the Thales CI ? It is currently failing on UVM tests and I guess it is because I changed the ariane_axi_soc_pkg and ariane_soc_pkg files and I did not modify completely the UVM testbench in cv_verif. I don't have yet a local working cv_verif because some tooling issues. If the CI failing issue is not straightforward, I will make the effort of making the cv_verif work in my environment. Thank you ! |
Hi @cfuguet Of course I can help, but I am busy Today. I let you know. |
Here is the error
|
0e5697c
to
2355d98
Compare
❌ failed run, report available here. |
1 similar comment
❌ failed run, report available here. |
|
Signed-off-by: Cesar Fuguet <[email protected]>
Rename cache subsystem generation label Co-authored-by: Florian Zaruba <[email protected]> Signed-off-by: Cesar Fuguet <[email protected]>
Signed-off-by: Cesar Fuguet <[email protected]>
All AXI related definitions are moved from the ariane_soc_pkg to the ariane_axi_soc_pkg. By computing the AXI ID width for slaves and masters of the crossbar in the ariane_axi_soc_pkg, widths can be correctly propagated from the CVA6 configuration package to the testbench. Signed-off-by: Cesar Fuguet <[email protected]>
Signed-off-by: Cesar Fuguet <[email protected]>
Co-authored-by: Nils Wistoff <[email protected]> Signed-off-by: Cesar Fuguet <[email protected]>
Signed-off-by: Cesar Fuguet <[email protected]>
Signed-off-by: Cesar Fuguet <[email protected]>
Signed-off-by: Cesar Fuguet <[email protected]>
Signed-off-by: Cesar Fuguet <[email protected]>
cbcc056
to
33fb5fc
Compare
❌ failed run, report available here. |
Signed-off-by: Cesar Fuguet <[email protected]>
33fb5fc
to
3972fbe
Compare
✔️ successful run, report available here. |
Congratulations, and thank you for the code modifications. I am pretty sure this cache will be widely used by the OS community. |
Thank you @JeanRochCoulon, I'm very happy that we finally made this integration. Regards, |
Add the HPDcache as another alternative for the cache subsystem.
The HPDcache is a highly configurable L1 Dcache that mainly targets high-performance systems.