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 |