Hi all,
The RISC-V Technical Committee has formed a new committee tasked with formally defining the memory consistency model for the RISC-V architecture. I, Dan Lustig (NVIDIA), will be the chair of this committee, and Arvind (MIT) will be the vice-chair.
Our tentative charter is as follows:
- The primary goal is to develop a rigorous and sound memory consistency model to incorporate into the RISC-V ISA specification, and to provide explanatory material as necessary.
- The RISC-V memory model should follow the best modern practices of the field, from academia and from industry.
- Ideally, the RISC-V memory model will remain compatible with existing RISC-V implementations, specifications, compiler mappings, and software toolchains. However, backwards compatibility is not an absolute requirement, and the benefits of backwards compatibility may in some places be outweighed by the need for a sound memory model.
- The memory model should be compatible with and impose minimal design and/or performance burden onto RISC-V implementations. This includes small stand-alone RISC-V cores, large complex RISC-V cores, RISC-V cores deeply-embedded as controllers into an SoC, or otherwise.
Items on the agenda currently include, in rough priority order:
- Ensure everybody understands and agrees with the goals laid out in the charter
- Decide whether global store (multi-copy) atomicity is beneficial/acceptable/unacceptable. This fundamentally affects the design of the rest of the model, and hence will be the top technical priority to start
- Options for forbidding out-of-thin-air executions, and in particular: should load-store reordering be forbidden?
- The legality of same-address load-load reordering, whether memory ordering needs to respect (address/data/control) dependencies, and other details of a similar vein
- Longer-term: ensure compatibility with the virtual memory subsystem (e.g., FENCE.I), and take other potential risk factors (e.g., mixing accesses of different sizes) into consideration
We hope to arrive at a consensus as soon as possible. The process is not meant to become an extended research endeavor. If all goes well, we would even like to have a tentative working proposal as soon as the next RISC-V workshop in May.
Logistically: we expect to have regular weekly phone and/or video meetings, to be scheduled after we get a sense for the interested participants. We also expect to have regular ongoing discussion by email between meetings. All interested RISC-V members are welcome to participate.
If you are interested in participating actively, please reach out to me and Arvind, and please join the newly-formed RISC-V memory model working group inside the technical committee workspace. We will work out the scheduling and logistics for the weekly meetings once we get a sense for who is interested. Feel free to also reach out to us or reply to this message if you have any questions.
Thanks,
Dan Lustig
We hope to arrive at a consensus as soon as possible. The process is not meant to become an extended research endeavor. If all goes well, we would even like to have a tentative working proposal as soon as the next RISC-V workshop in May.