diff options
author | elisa <elisa@riscv.org> | 2021-09-10 14:07:18 -0700 |
---|---|---|
committer | elisa <elisa@riscv.org> | 2021-09-10 14:07:18 -0700 |
commit | 64353b3717c9d387759c61d16d3984760a028046 (patch) | |
tree | 7dc4b3a1aff37dfd38ff921fa21113a64989a5aa /src/ztso-st-ext.adoc | |
parent | e1a563505224b47129b0cbb5c46ee22f5e0acddb (diff) | |
download | riscv-isa-manual-64353b3717c9d387759c61d16d3984760a028046.zip riscv-isa-manual-64353b3717c9d387759c61d16d3984760a028046.tar.gz riscv-isa-manual-64353b3717c9d387759c61d16d3984760a028046.tar.bz2 |
adding converted adoc files
Diffstat (limited to 'src/ztso-st-ext.adoc')
-rw-r--r-- | src/ztso-st-ext.adoc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/ztso-st-ext.adoc b/src/ztso-st-ext.adoc new file mode 100644 index 0000000..2ec457d --- /dev/null +++ b/src/ztso-st-ext.adoc @@ -0,0 +1,38 @@ +[[ztso]] +== `Ztso` Standard Extension for Total Store Ordering, v0.1 + +This chapter defines the ``Ztso`` extension for the RISC-V Total Store +Ordering (RVTSO) memory consistency model. RVTSO is defined as a delta +from RVWMO, which is defined in <<rvwmo>>. + +The Ztso extension is meant to facilitate the porting of code originally +written for the x86 or SPARC architectures, both of which use TSO by +default. It also supports implementations which inherently provide RVTSO +behavior and want to expose that fact to software. + +RVTSO makes the following adjustments to RVWMO: + +* All load operations behave as if they have an acquire-RCpc annotation +* All store operations behave as if they have a release-RCpc annotation. +* All AMOs behave as if they have both acquire-RCsc and release-RCsc +annotations. + +These rules render all PPO rules except +<<fence>>–<<rcsc>> redundant. They also make +redundant any non-I/O fences that do not have both PW and SR set. +Finally, they also imply that no memory operation will be reordered past +an AMO in either direction. + +In the context of RVTSO, as is the case for RVWMO, the storage ordering +annotations are concisely and completely defined by PPO rules +<<acquire>>–<<rcsc>>. In both of these +memory models, it is the that allows a hart to forward a value from its +store buffer to a subsequent (in program order) load—that is to say that +stores can be forwarded locally before they are visible to other harts. + +In spite of the fact that Ztso adds no new instructions to the ISA, code +written assuming RVTSO will not run correctly on implementations not +supporting Ztso. Binaries compiled to run only under Ztso should +indicate as such via a flag in the binary, so that platforms which do +not implement Ztso can simply refuse to run them. + |