Does FENCE.TSO flush caches?
Its architectural semantics are ordering constraints, not a general cache flush.
A specific FENCE encoding that orders memory reads and writes in Total Store Order style.
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.
FENCE.TSO is the FENCE encoding for TSO-style memory ordering. It covers only R/W memory accesses, not I/O, and deliberately relaxes store-to-load ordering.
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».
Its architectural semantics are ordering constraints, not a general cache flush.
No. It constrains the order in which the current hart's relevant operations become observable to other observers.