(no commit message)
authorlkcl <lkcl@web>
Tue, 7 Jun 2022 18:35:21 +0000 (19:35 +0100)
committerIkiWiki <ikiwiki.info>
Tue, 7 Jun 2022 18:35:21 +0000 (19:35 +0100)
openpower/sv/compliancy_levels.mdwn

index 6299b3eb526f17ac2fe6d56ce5cbfc6744f8e9cf..f6546b9ca2f5f1c53e35d929ce6853110fd23b99 100644 (file)
@@ -4,9 +4,10 @@
 
 The purpose of the Compliancy Levels is to provide a documented
 stable base for implementors to achieve software interoperability
-without requiring a high and unnecessary hardware cost.  The bare
+without requiring a high and unnecessary hardware cost unrelated
+to their needs. The bare
 minimum requirement, particularly suited for Ultra-embedded, requires
-just two instructions, reservation of SPRs, and the rest may entirely
+just one instruction, reservation of SPRs, and the rest may entirely
 be Soft-emulated by raising Illegal Instruction traps.  At the other
 end of the spectrum is the full REMAP Structure Packing suitable
 for traditional Vector Processing workloads and High-performance
@@ -24,7 +25,8 @@ Summary of Compliancy Levels, each Level includes all lower levels:
 * **Embedded**: `svstep` instruction,
   and support for Hardware for-looping
   in both Horizontal-First and Vertical-First Mode as well as Predication
-  (Single and Twin)
+  (Single and Twin) for the GPRs r3, r10 and r30.  CR-Field-based
+  Predicates, if used, may still raise illegal instruction trap.
 * **DSP/VPU**: 128 registers, all SV Branch instructions,
   crweird instructions, element-width
   overrides, and all Modes (Saturation, Fail-First, Predicate-Result,
@@ -72,3 +74,27 @@ Illegal Instruction Trap **must** be raised on:
 Implementors are free and clear to implement any other features of
 SVP64 however only by meeting all of the mandatory requirements above
 will Compliance with the Ultra-Embedded Level be achieved.
+
+# Embedded Level
+
+This level is more suitable for Hardware implementations where performance and power saving begins to matter.  A second instruction, `svstep`, used
+by Vertical-First Mode, is required, as is hardware-level looping in
+Horizontal-First Mode. Illegal Instruction trap may not be called to
+emulate `svstep`.
+
+At the bare minimum, Twin and Single Predication must be supported for
+at least the GPRs r3, r10 and r30.  CR Field Predication may also be
+supported in hardware but only by also increasing the number of CR Fields
+to 128.
+
+Another important aspect is that when Rc=1 is set, CR Field Vector co-results
+are produced. Should these exceed CR7 (CR8-CR127) and the number of CR Fields
+has not been increased to 128 then an Illegal Instruction Trap must be
+raised.  In practical terms, to avoid this scenario, MAXVL should not
+exceed 8 for Arithmetic or Logical operations when Rc=1.
+
+Zeroing on source and destination for Predicates
+must also be supported (sz, dz) however
+all other Modes (Saturation, Fail-First, Predicate-Result,
+Iteration/Reduction) are entirely optional. Implementation of Element-Width
+Overrides is also optional.