aboutsummaryrefslogtreecommitdiff
path: root/src/ztso.tex
diff options
context:
space:
mode:
authorDaniel Lustig <dlustig@nvidia.com>2018-07-05 14:20:15 -0700
committerDaniel Lustig <dlustig@nvidia.com>2018-07-05 14:43:04 -0700
commit4efa37665abe4198ff46fdf2c5cbf42a385a0427 (patch)
tree3bc9269c2fcac80e38e4d4010c5b1a0d52281188 /src/ztso.tex
parentce3f33670ac9fa928dd2a15c110b8ff8a4797e10 (diff)
downloadriscv-isa-manual-4efa37665abe4198ff46fdf2c5cbf42a385a0427.zip
riscv-isa-manual-4efa37665abe4198ff46fdf2c5cbf42a385a0427.tar.gz
riscv-isa-manual-4efa37665abe4198ff46fdf2c5cbf42a385a0427.tar.bz2
Small updates to the Ztso spec
The notes about PPO rules becoming redundant are really commentary. The note about code assuming Ztso is not just commentary; it is actually a requirement imposed by the extension.
Diffstat (limited to 'src/ztso.tex')
-rw-r--r--src/ztso.tex18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/ztso.tex b/src/ztso.tex
index 2cddb37..36ab2a8 100644
--- a/src/ztso.tex
+++ b/src/ztso.tex
@@ -5,12 +5,11 @@ This chapter defines the ``Ztso'' extension for the RISC-V Total Store Ordering
RVTSO is defined as a delta from RVWMO, which is defined in Chapter~\ref{sec:rvwmo}.
\begin{commentary}
- 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, as well as to support implementations which inherently implement RVTSO.
- However, 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.
+ 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.
\end{commentary}
-RVTSO requires the following adjustments to RVWMO:
+RVTSO makes the following adjustments to RVWMO:
\begin{itemize}
\item All load operations behave as if they have an acquire-RCpc annotation
@@ -18,6 +17,11 @@ RVTSO requires the following adjustments to RVWMO:
\item All AMOs behave as if they have both acquire-RCsc and release-RCsc annotations.
\end{itemize}
-These rules render all PPO rules except \ref{ppo:fence}--\ref{ppo: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 instruction will be reordered past an AMO in either direction.
+\begin{commentary}
+ These rules render all PPO rules except \ref{ppo:fence}--\ref{ppo: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 instruction will be reordered past an AMO in either direction.
+\end{commentary}
+
+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.