[Libre-soc-dev] efficient decoding algorithm for variable-length instructions

Jacob Lifshay programmerjake at gmail.com
Thu Nov 26 19:12:12 GMT 2020

On Thu, Nov 26, 2020, 10:33 Luke Kenneth Casson Leighton <lkcl at lkcl.net>

> On 11/26/20, Jacob Lifshay <programmerjake at gmail.com> wrote:
> > I think it can be done in much less than that (would fit entirely into
> the
> > scheme I proposed with 32/48-bit in opcode 0, 64-bit in opcode 1 shared
> > with v3.1 instructions), I'll make a prototype soon.
> you've missed two crucial points:
> 1) reassuring a Silver Member of the OPF that we've listened to what
> they have to say is a higher priority

that can be done by requiring the instructions to be enabled before they
can be used, they can be made to trap otherwise. This allows
virtualization/emulation as well as detecting non-allowed instructions (if
someone wants to disallow SV). Enabling can be a privileged operation.

> 2) redesigning SV Prefixes and taking 2 to 3 months to do so will
> jeapordise our timeline.

If we design SVP64 first, we can always fall back on that, SVP32/48 are
only used to save space, so are more of a nice-to-have rather than a
must-have-or-it-won't-work. I think I could have a decent initial version
covering all vectorizable instructions after a week or two of work, it
shouldn't take that long, probably only a few min per instruction form.

> i cannot emphasise strongly enough that we need to be strict with
> ourselves about pruning potential development paths.
> we need to deliver and fast.
> can you therefore please make some notes (so that we can return to it
> in 1 years time once we have a "100% completed NLnet Project") but
> otherwise shelve and defer full replacement alternatives that
> duplicate the work done 18 months ago and help get us to 100%
> completion?

The problem is that the work done 18 months ago works on RISC-V, not Power.
We would be severely constraining ourselves if we try to force it to work
without any adaptation. The amount of effort to adapt it to work on Power
is about the same as the amount of work to design a new version of SVP
tailored for Power (we can and should reuse parts of the old design where
it makes sense). The other part is that we could get stuck using a much
worse design if we just push ahead now without regard.

> if we do not get to 100% Project Completion *we cannot apply for any
> more money* from NLnet.

yeah, I understand.


More information about the Libre-soc-dev mailing list