aboutsummaryrefslogtreecommitdiff
path: root/src/memory.tex
diff options
context:
space:
mode:
authorDaniel Lustig <dlustig@nvidia.com>2018-06-20 10:46:27 -0700
committerDaniel Lustig <dlustig@nvidia.com>2018-06-20 10:46:27 -0700
commitc9efdca6ff6be6e793b1056766867340bb9dcaab (patch)
treea5d0d4840fc19a6ffbc0eaeb28e0ccdc4f08b01a /src/memory.tex
parent0334f2236f4033620a604116cf24139a20e3990c (diff)
downloadriscv-isa-manual-c9efdca6ff6be6e793b1056766867340bb9dcaab.zip
riscv-isa-manual-c9efdca6ff6be6e793b1056766867340bb9dcaab.tar.gz
riscv-isa-manual-c9efdca6ff6be6e793b1056766867340bb9dcaab.tar.bz2
Clarify that AMOs are always semantically stores
...even if they don't actually change the value in memory.
Diffstat (limited to 'src/memory.tex')
-rw-r--r--src/memory.tex2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/memory.tex b/src/memory.tex
index fad05ff..e62855b 100644
--- a/src/memory.tex
+++ b/src/memory.tex
@@ -1275,7 +1275,7 @@ Architectures that implement RVTSO can safely do the following:
Other general notes:
\begin{itemize}
- \item Silent stores (i.e., stores that write the same value that already exists at a memory location) behave like any other store from a memory model point of view. Microarchitectures that attempt to implement silent stores must take care to ensure that the memory model is still obeyed, particularly in cases such as RSW (Section~\ref{sec:memory:overlap}) which tend to be incompatible with silent stores.
+ \item Silent stores (i.e., stores that write the same value that already exists at a memory location) behave like any other store from a memory model point of view. Likewise, AMOs which do not actually change the value in memory (e.g., an AMOMAX for which the value in {\em rs2} is smaller than the value currently in memory) are still semantically considered store operations. Microarchitectures that attempt to implement silent stores must take care to ensure that the memory model is still obeyed, particularly in cases such as RSW (Section~\ref{sec:memory:overlap}) which tend to be incompatible with silent stores.
\item Writes may be merged (i.e., two consecutive writes to the same address may be merged) or subsumed (i.e., the earlier of two back-to-back writes to the same address may be elided) as long as the resulting behavior does not otherwise violate the memory model semantics.
\end{itemize}