On Sun, May 6, 2018 at 11:30 AM, Andrew Waterman
<
wate...@eecs.berkeley.edu> wrote:
>
https://github.com/riscv/riscv-isa-manual/commit/b875fe417948635ed68b9644ffdf718cb343a81a
fantastic, thank you andrew
-The execution environment may require that the address held in {\em rs1} be
+For AMOs, the A extension requires that the address held in {\em rs1} be
clear language! no either/or. whew. either/or is a pain for proofs.
+64-bit words and four-byte aligned for 32-bit words). If the address is
+not naturally aligned, a misaligned address exception will be generated.
+The ``Zam'' extension, described in Chapter~\ref{sec:zam}, relaxes this
+requirement and specifies the semantics of misaligned AMOs.
how about:
+64-bit words and four-byte aligned for 32-bit words). If the address is
+not naturally aligned, and the ``Zam'' extension is not enabled,
+ a misaligned address exception will be generated.
+ The requirements and semantics of misaligned AMOs when the ``Zam''
+ extension is enabled are specifically covered by Chapter~\ref{sec:zam}.
here:
-preceding the AMO in this RISC-V hart.
+preceding the AMO in this RISC-V hart. Setting both the {\em aq} and the {\em
+rl} bit on an AMO makes the it sequence sequentially consistent, meaning that
+it cannot be reordered with earlier or later memory operations from the same
+hart.
"makes the it sequence"? that should probably be "makes the sequence"?
src/machine.tex
+Support for misaligned LR/SC sequences is not currently standardized.
+
is that to _be_ standardised (ever)? are implementors prevented and
prohibited *from* supporting (non-standardised) misligned LR/SC
sequences? if not, that would result in.. non-standard *differing*
implementations, and they could end up getting it "wrong" (not
technically, but wrong as in "they implemented something different
from a future standard covering this specific area"). my feeling is:
it should be made absolutely clear that it's prohibited, and that
anyone wishing to do so should approach the RISC-V Foundation to start
the standardisation process.
standards really really must not let anyone have *any* wiggle-room
unless it has no impact i.e. there is only forward-interaction within
the "uncontrolled" (out-of-scope) state diagram. if there *is* any
interaction of state it *must* be covered by the standard i.e. must
*not* link or combine with another "uncontrolled" piece of state
(hardware or software) that is also out-of-scope for the standard. i
was beginning to formulate this clearly in another thread.
l.