Thursday, 2021-03-18

programmerjakelkcl: how about I change those back to decimal, but leave the 0b prefix on all binary opcodes? I can do that in a few min06:53
programmerjakeno force pushing06:54
programmerjaketesting changes...07:10
programmerjakelkcl: pushed07:17
programmerjakechanged it to require numbers to be in binary with an 0b... prefix if they are more than 4 characters or have any `-` characters07:22
programmerjakefigured 9999 was getting too big for decimal to be nice07:23
programmerjakelkcl: look good?07:26
programmerjakewell, I'm assuming it's good enough for now...going to sleep07:33
programmerjakelkcl: can you put the old master in a git tag so we don't loose them?08:20
lkclthat will be your responsibility, jacob09:03
lxolkcl, programmerjake, I haven't pulled anything in the last few days, FWIW09:03
lkcllxo: thx12:23
lkclgaah hectic morning.12:50
lkclsorting out microwatt svp64 decode.vhdl prototype13:54
lkcllots more.13:54
lkclhead spinning :)13:54
programmerjakeposted to debian-project about salsa being down, so far 5 people responded with basically the same message:17:47
programmerjakehttps://lists.debian.org/debian-project/2021/03/msg00028.html17:47
lkclurk... ohh there was a way to hack linux announced that dates back NN years recently discovered that only needs a user shell17:48
programmerjakelkcl: you can cherrypick https://git.libre-soc.org/?p=soc.git;a=commit;h=d3767842a2f8f66f9e3de882a36592bfa3d344b817:52
programmerjakeit's a unrelated fix I pushed last night17:52
lkclah yeh good idea18:33
programmerjakelkcl: you managed to change the submodule in the same commit...oops18:37
lkclehh... arg18:44
lkclnuts18:44
lkcli wasn't expecting that18:44
lkclohh i know - i'd just done a git submodule update18:45
lkclhave to keep an eye on that18:45
programmerjakenext time use `git cherrypick` :)18:45
lkcl:)18:48
lkclnever used it before, didn't realise it was an actual command!18:49
jn__`git add -p` might be more appropriate - it lets you select pieces of diff into the index19:06
lkcljn__, oh cool.19:06
jn__`git cherry-pick` (with a dash) lets you pick (copy) commits onto HEAD19:07
lkclcesar[m]1, you probably saw, i'm dropping comments and bits-and-pieces in place for TestIssuer predication21:17
lkclINT predication is easy, it's just read one 64-bit INT21:18
lkclCR predication is a little more awkward, it needs a loop to read multiple CR fields, extract the right "bit", and create the mask one bit at a time21:24
* cesar[m]1 wonders how predication will interact with the Scoreboard, once we get there.21:27
lkclthrough the Shadow Matrix for INT21:28
lkclactually probably for CRs as well21:28
lkclthere would be a "Predication Shadow column" which stops the FU from writing21:28
lkclso it's allowed to ask for Regs, it's allowed to *calculate* the result21:29
lkclbut it's not allowed to *write* the result unless its CR (or INT) predication bit has been also read21:29
lkclit will be important to make the CR/INT predicate Reg-Read a high priority21:30
cesar[m]1So, all instructions in the loop are issued, after all, since you might not know the mask bits in advance.21:30
lkclbecause if, say, VL=20 and the predicate is 0b00001000000 you still have to issue work to 20 FUs.21:30
lkclexactly, yes21:30
lkclexcept for "1<<r3" where we *know* in advance that that's only going to have 1 bit set21:31
lkclin the case where things are stalled because there are not enough FUs to issue the entire Vector21:31
lkclthings can be slightly different21:32
lkclbecause e.g. in the INT case, by then you will have read the full INT (maybe)21:32
lkcland once that's done it's possible to work out only the ones that are needed21:32
lkcland skip the rest21:32
lkclbut if there is a write-hazard on the INT being used for the predicate, obviously you can't play that trick21:33
lkclit's sort-of complicated but also at the same time sort-of not :)21:33
* cesar[m]1 wonders if we shouldn't just pass the predication bit to the core, now, instead of looping in the FSM.21:34
lkcli'd prefer if the core was left alone at the moment21:34
lkclalthough, yes, that will have to be done to support zeroing21:35
lkclbecause the core has to know not to read the regfiles but instead to put zeros into its inputs21:35
lkcland also whether to not execute the instruction and put zeros in the output21:36
cesar[m]1Interesting. Once shadow is really implemented in the core, we could then update the FSM in TestIssuer to send the mask bit, instead of doing the skipping work itself.21:42
lkclTestIssuer will almost certainly need taking apart / replacing :)21:46

Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!