[Libre-soc-dev] sv.mv x: the instruction from hell

lkcl luke.leighton at gmail.com
Wed Jun 8 18:12:44 BST 2022


quick rundown on REMAP:

1) it's a "register tag" system.

2) registers RA RB RC RT RS/EA may each be "tagged", with "please put this register VL for-loop element index (srcstep, dststep) through "Remap" before using it.  RA+remap(i) instead of just RA+i

3) the REMAP SPR can refer each of the 5 registers RA RB RC RT RS to any one of 4 SVSHAPE SPRs, 0-3

4) the 4 identical SVSHAPE SPRs specify the REMAP characteristics. Matrix and its dimensions, FFT size, etc etc.

5) setting up those SPRs manually would be such a laborious task that there are "helper" instructions, svshape (and now svindex) which "pre-load" certain commonly-used REMAP and SVSHAPE patterns.  this *includes* modifying SVSTATE (changing VL) so
that yet another instruction (setvl) is not needed.

6) there is nowhere near enough bits in 32 bits of svshape instruction to cover all the power of SVSHAPE capabilities. svshape does the best it can.

there is a hell of a lot of work and thought gone into the REMAP system.

l.


More information about the Libre-soc-dev mailing list