[Libre-soc-dev] v3.1B prefix

Luke Kenneth Casson Leighton lkcl at lkcl.net
Thu Dec 3 23:40:03 GMT 2020

jacob, hi,

i was going to write paul a message yesterday, summarising that we
need 24 bits for SVP and so started looking at v3.1B 64 bit for the
first time.

the first thing that struck me was: the entirety of the EXT01 range is
used up with 4 formats, 2 bits to identify each.  one for LD/ST, and
so on.

the next puzzling part was, ok so if the EXT01 area contains nothing
(no opcodes), how the heck does it work? so i went to the Opcode Map
in the appendix and found a prefix/suffix map.

this apparently says that you should look at the *other* EXTNNN to
determine the instruction.  which makes sense.

here then there are some major opcodes marked reserved (only around 6
or so), 60 to 70% are blank, some have "redefined" meanings (Major 132
for example), some are entire rows.

my overall impressions are:

a) it looks confusing as hell and could take significant time to
unpick the chaos.

b) there is no immediate sign of there being 24 bits available unless
by that you meant to suggest taking up opcodes that happen... *at the
moment* not to have been allocated

c) finding those unallocated opcodes is itself concerning as far as
time is concerned.

d) even if some can be "found" it is just not as straightforward as
assuming that IBM and other OPF Members will be happy to allocate
large swathes of them to SV.

given the long-term multi-decade burden and consequences of a reduced
space for everyone else if we take up large parts of the space it
seems highly unlikely that they'd approve it.

e) even if they were *it's still a 64 bit ISA* which leaves us
compromised on packing efficiency, particularly given that it is
flat-out impossible to jam in every single feature of SV into so few

remember we're barely scratching the surface with SVP the original
version, which was severely compromised in packing space and now *even
less* bits are available in v3.1B prefixes.

so the first question is: what did i miss?  where do the 24 bits come
from?  i found no evidence of a 3 bit selection mechanism (but a 2 bit
one was clear)

second question is: how much percentage wise of the prefix space are
we talking about taking up?

if it is "80%" i do not think it is a good idea to even ask.  even 20%
may cause some alarm (remember: the VLE switching *isolates* the
encoding, and the re-engineering of the opcode space itself set a
precedent that will be difficult for IBM to say "no you can't do the
exact same thing we did 12 years ago with VLE")


More information about the Libre-soc-dev mailing list