From: lkcl Date: Fri, 8 Jul 2022 20:17:29 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~1241 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bc8eb08cc32afa722b4d967621484265b9635534;p=libreriscv.git --- diff --git a/openpower/atomics.mdwn b/openpower/atomics.mdwn index 39dc94d02..22e17801b 100644 --- a/openpower/atomics.mdwn +++ b/openpower/atomics.mdwn @@ -115,7 +115,12 @@ see [[discussion]] for proposed operations and thoughts TODO remove this sentence -# TODO: add list of proposed instructions +# DRAFT atomic instructions + +These two instructions, `lat` and `stat`, are identical +to `lwat/ldat` and `stwat/stdat` except add acquire and +release guaranteed ordering semantics as well as 8 and +16 bit memory widths as well. AT-Form (TODO) @@ -139,13 +144,15 @@ atomic memory operations * `ew` specifies the memory operation width: 0/1/2/3 8/16/32/64 * If the `aq` bit is set, then no later atomic memory operations can be observed - to take place before the AMO. + to take place before the AMO in this or other cores. + (A Write-after-Read Memory Hazard is created) * If the `rl` bit is set, then other cores will not observe the AMO before memory accesses preceding the AMO. + (A Read-after-Write Memory Hazard is created) * Setting both the `aq` and the `rl` bit makes the sequence sequentially consistent, meaning that - it cannot be reordered with earlier or later atomic - memory operations. + it cannot be reordered with respect to earlier or later atomic + memory operations. (Both a RaW and WaR are simultaneously created) * `FC` is identical to the Function tables used in Power ISA v3 for `lwat` and `stwat`