Skip to content

Commit

Permalink
Relaxed I/O adheres to Appendix A 4.2
Browse files Browse the repository at this point in the history
aswaterman committed Aug 26, 2019

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 5186fc7 commit c2baba9
Showing 2 changed files with 12 additions and 9 deletions.
18 changes: 9 additions & 9 deletions src/machine.tex
Original file line number Diff line number Diff line change
@@ -2703,15 +2703,15 @@ \subsection{Memory-Ordering PMAs}
requests in the main memory system (e.g., DMA engines). Main memory
regions always have either the RVWMO or RVTSO memory model.

Accesses by one hart to the I/O space are observable not only by other
harts and bus mastering devices, but also by targeted slave I/O
devices. Within I/O, regions may further be classified as
implementing either {\em relaxed} or {\em strong} ordering. A relaxed
I/O region has no ordering guarantees on how memory accesses made by
one hart are observable by different harts or I/O devices beyond those
enforced by FENCE and AMO instructions. A strongly ordered I/O region
ensures that all accesses made by a hart to that region are only
observable in program order by all other harts or I/O devices.
Accesses by one hart to an I/O region are observable not only by other harts
and bus mastering devices but also by targeted slave I/O devices, and I/O
regions may be accessed with either {\em relaxed} or {\em strong} ordering.
Accesses to an I/O region with relaxed ordering are generally observed by
other harts and bus mastering devices in a manner similar to the ordering of
accesses to an RVWMO memory region, as discussed in Section A.4.2 in Volume
I of this specification.
By contrast, accesses to an I/O region with strong ordering are generally
observed by other harts and bus mastering devices in program order.

Each strongly ordered I/O region specifies a numbered ordering
channel, which is a mechanism by which ordering guarantees can be
3 changes: 3 additions & 0 deletions src/priv-preface.tex
Original file line number Diff line number Diff line change
@@ -32,6 +32,9 @@ \chapter{Preface}
\itemsep 1pt
\item Defined the RV32-only CSR {\tt mstatush}, which contains most of the
same fields as the upper 32 bits of RV64's {\tt mstatus}.
\item Relaxed I/O regions have been specified to follow RVWMO. The previous
specification implied that PPO rules other than fences and acquire/release
annotations did not apply.
\item Revised the hypervisor architecture proposal to represent VS-mode CSR
state more simply.
\item Added optional big-endian and bi-endian support.

0 comments on commit c2baba9

Please sign in to comment.