(no commit message)
authorlkcl <lkcl@web>
Fri, 6 May 2022 13:39:57 +0000 (14:39 +0100)
committerIkiWiki <ikiwiki.info>
Fri, 6 May 2022 13:39:57 +0000 (14:39 +0100)
openpower/sv/SimpleV_rationale.mdwn

index b94578c40113a2ba4876f98d2166667848a11fc3..4a6f610602cc611228c4c470a84123f014e6fa22 100644 (file)
@@ -578,3 +578,22 @@ as powerful as OpenCAPI as part of that picture.
 
 **Snitch**
 
+Snitch is an elegant Memory-Coherent Barrel-Processor where registers
+become "tagged" with a Memory-access Mode that went out of fashion
+over forty years ago: Load-and-Increment. Expressed in c as
+`src = *x++`, and requiring special Address Registers (PDP-11, 68000)
+the efficiency of these Load-Store-with-Increment instructions has been
+forgotten until Snitch.
+
+What the designers did however was not to add new Load-Store
+or Arithmetic instructions to RISC-V, but instead to "mark"
+registers with a tag.  These tags tell the CPU: when you perform
+an add on r6 and r7, please perform a Cache-coherent Load-with-Increment
+on each, using special Address Registers for each.  Each reference
+to r6 therefore brings in an entirely new value *directly from
+memory*. Likewise on the second operand, r7, and likewise on
+the destination which can be automatic Store-and-increment.
+
+On top of a barrel-architecture the slowness of Memory access
+was not a problem because the Deterministic nature of classic
+Load-Store-Increment