CMO operation list for encodings - riscvarchive/riscv-CMOs-discuss GitHub Wiki

(This page CMO operation list for encodings extracted from parent Actual CMO Operations because GitHub wiki doesn't have section editing (but also lacks transclusion :-( ) )

The list below ... + annotated according to priority / possible extensions (trying to diet, reduce to <= 8, 3 bits)

  • B = base - surely must have
  • +x?? - possible extensions
priority rw name detail
B r WRITEBACK
IBM: CLEAN
dirty --wb--> clean,
clean-->unaffected
B r WB-INVALIDATE
IBM: FLUSH
dirty --wb--> clean,
clean-->unaffected
+xIO r INVALIDATE CLEAN clean --> invalid
dirty --> unaffected
secure
suitable for NC I/O
B w INVALIDATE
IBM: DISCARD
clean --> invalid,
dirty -- no wb --> invalid
e.g. n on-coherent I/O, reset
+xD+ w safer discards see elsewhere
+xLRU r Set LRU wish: prefetches/loads/stores that have LRU / not MRU / non-temporal hints
B r PREFETCH-R PREFETCH-X has I$ target
B r PREFETCH-W prefetch to write, may be clean or dirty
+xPE r ? PREFETCH-E prefetch as if to write, but must be clean
may need to update outer $/DRAM on way
+xL r FETCH-W + LOCK like creating local writable copy of shared RAM
+xL r FETCH-R + LOCK like creating local copy of shared ROM
+xxLP r FETCH-E + LOCK like creating private ROM
+xxLP r FETCH-EW + LOCK like creating private RAM
.xA w NO-FILL ALLOC like DCBA (security hole)
.xZ w ZALLOC like DCBZ
.xZ w ZALLOC + LOCK like creating local RAM
TBD: private / shared
.xW r way locking beyond scope, way mask separate
⚠️ **GitHub.com Fallback** ⚠️