Does FENCE.TSO order device I/O?
No. Its pred/succ sets include only R/W memory bits, not I/O bits.
A specific FENCE TSO encoding that orders memory R/W, excludes device I/O, and does not force store-to-load ordering.
FENCE.TSO is a specific FENCE encoding (fm=1000, pred=RW, succ=RW). It orders memory R/W operations but does not include device I/O bits; compared with FENCE RW,RW, it does not require predecessor stores to be ordered before successor loads. Implementations may execute it as the stronger FENCE RW,RW.
Shows the FENCE opcode encoding, fm/pred/succ fields, and current-hart observable ordering constraints without modeling cache, bus, or pipeline behavior.
This animation shows only FENCE/PAUSE architectural semantics defined by the RISC-V unprivileged ISA; it does not represent processor-specific pause duration, cache behavior, interconnect protocol, or execution cost.
FENCE.TSO is a specific TSO FENCE encoding: it covers only memory R/W, not device I/O, and allows predecessor stores not to be ordered before successor loads.
Understand this scenario with real code like «fence.tso # TSO-style memory ordering for R/W accesses».
Understand this scenario with real code like «fence.tso # TSO-style memory ordering for R/W accesses».
Understand this scenario with real code like «fence.tso # TSO-style memory ordering for R/W accesses».
No. Its pred/succ sets include only R/W memory bits, not I/O bits.
Architecturally it is weaker because it does not require predecessor stores before successor loads, although an implementation may execute it as the stronger fence rw,rw.