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

RiscV A "AMO" with DBusSimplePlugin #83

Open
BlamKiwi opened this issue Aug 12, 2019 · 3 comments
Open

RiscV A "AMO" with DBusSimplePlugin #83

BlamKiwi opened this issue Aug 12, 2019 · 3 comments

Comments

@BlamKiwi
Copy link

I've been playing around with RiscVexV for use as an embedded FPGA processor. The DBusSimplePlugin supports LR/SC but not AMO instructions to enable the full "A" extension. Are there plans to provide an implementation or pointers for how I would implement them myself? I just want to flesh out the implementation to allow full support for the Rust embedded atomics library.

@Dolu1990
Copy link
Member

Right about the dBusSimplePlugin. would you like a real atomic implemention (atomic request going on the memory bus) or a fake atomic extension, which is only local into the CPU which emit a standard read and then a standard write for each atomic extention ?

@BlamKiwi
Copy link
Author

Local to the CPU is fine for my purposes. I mostly use atomics for interrupt safe code in embedded systems.

@Dolu1990
Copy link
Member

That's realy shame that the RISC-V do not split the LR/SC and Atomics operations in two different extension.

So, there is no plan to implement Atomic in the cache-less design. as LR/SC can be used for the same purpose with nearly zero hardware cost, and i personnaly do not have usages of full A for cacheless design.

But if you have time, you can improve the DBusSimplePlugin or implement your own with the plugin system it is totaly fesable :)

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

No branches or pull requests

2 participants