[Libre-soc-dev] svp64

Luke Kenneth Casson Leighton lkcl at lkcl.net
Thu Dec 17 22:37:04 GMT 2020


On Thursday, December 17, 2020, Jacob Lifshay <programmerjake at gmail.com>
wrote:
> On Wed, Dec 16, 2020, 14:54 Luke Kenneth Casson Leighton <lkcl at lkcl.net>
> wrote:
>

> In summary, there is a scalar-only mode, but I think we don't need to
force
> it to be encoded as all-0s.

see below, i worked out that this is critical rather than "nice to have".

> Note that those 24 bits are already completely taken from the range of
> currently-illegal 64-bit instructions, the other 8 bits are what
> differentiate it from other 64-bit instructions, so none of the 24-bit
> encodings need to be reserved for non-SV purposes.

well the idea is to leverage that existing currently-illegal encoding
rather than have another one that is redundant.

plus, there will be circumstances.... ah no i got it: we *have* to have all
0s as default/disabled

the reason is: if it is not, and the encoding of all 0s happens to be used,
and that happens to be SUBVL=4, predicate=Xxx blah blah

then what will happen on a v3.B POWER10 system that does not have SV?

*no trap will be raised and the standard instruction will be executed*.

that will be catastrophic.  and that is avoided very simply by making all
0s be *defined* as, "SV is disabled/quiescent, v3.1B is in effect".


> You don't need to specially turn VL off, it's just ignored if all
> inputs/outputs are set to scalar mode.

and predication is off, and ffirst is off, and elwidth is default etc etc.

i actually have difficulty describing this, because in the pseudocode,
simulator *and* HDL, when VL=1 SUBVL=1 elwidth=default predicates=all1s etc
etc. there are two ways to view this:

* SV is "disabled" or
* every augmentation feature does nothing even the for-loops are for i in
range(1) and whilst SV is technically still active it isn't actually doing
anything...

*yet it is still running*.  which is very weird, and i have no idea how to
succinctly put this.

SV is quiescent?

there must be a word somewhere.  i will ask around.  any ideas do say.
 suggestions so far: suppressed, nullified, disabled, quiescent, redundant,
superset.

l.


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


More information about the Libre-soc-dev mailing list