aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Scheid <jscheid@ventanamicro.com>2021-06-04 14:52:49 -0700
committerJosh Scheid <jscheid@ventanamicro.com>2021-06-04 14:52:49 -0700
commit89236ffe51cb686e769425ce20fc0eb2369bb8bb (patch)
tree4370fc915c1c62fa8afdadf5bd190306d8c0c93d
parentc346913dd6cc641e7025a28dab0bac6425faeafa (diff)
downloadriscv-isa-manual-89236ffe51cb686e769425ce20fc0eb2369bb8bb.zip
riscv-isa-manual-89236ffe51cb686e769425ce20fc0eb2369bb8bb.tar.gz
riscv-isa-manual-89236ffe51cb686e769425ce20fc0eb2369bb8bb.tar.bz2
State PMAs that are required for these mappings.
Explicitly state the PMAs required for this set of mappings to allow C to run on RISC-V.
-rw-r--r--src/memory.tex10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/memory.tex b/src/memory.tex
index f35d247..1b57f95 100644
--- a/src/memory.tex
+++ b/src/memory.tex
@@ -1230,6 +1230,16 @@ For example, the LR must also be made to respect any data dependencies that the
Likewise, the effect a FENCE~R,R elsewhere in the same hart must also be made to apply to the SC, which would not otherwise respect that fence.
The emulator may achieve this effect by simply mapping AMOs onto {\tt lr.aq;~<op>;~sc.aqrl}, matching the mapping used elsewhere for fully ordered atomics.
+These C11/C++11 mappings require the platform to provide the following Physical Memory Attributes (as defined in the RISC-V Privileged ISA) for all memory:
+\begin{itemize}
+ \item main memory
+ \item coherent
+ \item AMOArithmetic
+ \item RsrvEventual
+ \item RVWMO
+\end{itemize}
+Platforms with different attributes may require different mappings, or require platform-specific SW (e.g., memory-mapped I/O).
+
\section{Implementation Guidelines}
The RVWMO and RVTSO memory models by no means preclude microarchitectures from employing sophisticated speculation techniques or other forms of optimization in order to deliver higher performance.