[Libre-soc-dev] Simple-V svp64 draft spec

Luke Kenneth Casson Leighton lkcl at lkcl.net
Fri Jan 29 14:26:56 GMT 2021


sorry, one important factor i missed out: the fundamental principle of SV
is that it can be left "switched on" all the time, due to something known
as "scalar identity behaviour".

all SPRs related to SV, when set to zero, result *automatically* in
absolute full without exception 100% compliant v3.0B (scalar) behaviour.

this is very very deliberate so that implementations have absolutely no
need to do this:

   if SV Enabled
       for i in range(VL)
           DO instruction
   else
       DO instruction

it can be LITERALLY just

       for i in range(VL)
           DO instruction

with absolute 100% confidence that VL=1 and that all "augmentations" are
100% disabled (identity transforms).

  predication: off
  saturation: off
  element width overrides: off

and so on.

the reason i mention this Paul is to reduce codepaths.  i mean, you _could_
do the above test, it is simple enough (SVSTATE==0, svp64 24 bit prefix ==
0)

but the reasons why that if statement would be done would be for "code
clarity", not for technical ones.

otherwise you might be thinking, "argh i have to have two sets of ISA
decoders, two sets of this, two sets of that", *no*!  it really is "the
scalar ISA with a Sub-Program-Counter" where the svp64 prefix simply
provides the context.

l.






-- 
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68


More information about the Libre-soc-dev mailing list