[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