programmerjake | lkcl: how about I change those back to decimal, but leave the 0b prefix on all binary opcodes? I can do that in a few min | 06:53 |
---|---|---|
programmerjake | no force pushing | 06:54 |
programmerjake | testing changes... | 07:10 |
programmerjake | lkcl: pushed | 07:17 |
programmerjake | changed it to require numbers to be in binary with an 0b... prefix if they are more than 4 characters or have any `-` characters | 07:22 |
programmerjake | figured 9999 was getting too big for decimal to be nice | 07:23 |
programmerjake | lkcl: look good? | 07:26 |
programmerjake | well, I'm assuming it's good enough for now...going to sleep | 07:33 |
programmerjake | lkcl: can you put the old master in a git tag so we don't loose them? | 08:20 |
lkcl | that will be your responsibility, jacob | 09:03 |
lxo | lkcl, programmerjake, I haven't pulled anything in the last few days, FWIW | 09:03 |
lkcl | lxo: thx | 12:23 |
lkcl | gaah hectic morning. | 12:50 |
lkcl | sorting out microwatt svp64 decode.vhdl prototype | 13:54 |
lkcl | lots more. | 13:54 |
lkcl | head spinning :) | 13:54 |
programmerjake | posted to debian-project about salsa being down, so far 5 people responded with basically the same message: | 17:47 |
programmerjake | https://lists.debian.org/debian-project/2021/03/msg00028.html | 17:47 |
lkcl | urk... ohh there was a way to hack linux announced that dates back NN years recently discovered that only needs a user shell | 17:48 |
programmerjake | lkcl: you can cherrypick https://git.libre-soc.org/?p=soc.git;a=commit;h=d3767842a2f8f66f9e3de882a36592bfa3d344b8 | 17:52 |
programmerjake | it's a unrelated fix I pushed last night | 17:52 |
lkcl | ah yeh good idea | 18:33 |
programmerjake | lkcl: you managed to change the submodule in the same commit...oops | 18:37 |
lkcl | ehh... arg | 18:44 |
lkcl | nuts | 18:44 |
lkcl | i wasn't expecting that | 18:44 |
lkcl | ohh i know - i'd just done a git submodule update | 18:45 |
lkcl | have to keep an eye on that | 18:45 |
programmerjake | next time use `git cherrypick` :) | 18:45 |
lkcl | :) | 18:48 |
lkcl | never 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 index | 19:06 |
lkcl | jn__, oh cool. | 19:06 |
jn__ | `git cherry-pick` (with a dash) lets you pick (copy) commits onto HEAD | 19:07 |
lkcl | cesar[m]1, you probably saw, i'm dropping comments and bits-and-pieces in place for TestIssuer predication | 21:17 |
lkcl | INT predication is easy, it's just read one 64-bit INT | 21:18 |
lkcl | CR 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 time | 21:24 |
* cesar[m]1 wonders how predication will interact with the Scoreboard, once we get there. | 21:27 | |
lkcl | through the Shadow Matrix for INT | 21:28 |
lkcl | actually probably for CRs as well | 21:28 |
lkcl | there would be a "Predication Shadow column" which stops the FU from writing | 21:28 |
lkcl | so it's allowed to ask for Regs, it's allowed to *calculate* the result | 21:29 |
lkcl | but it's not allowed to *write* the result unless its CR (or INT) predication bit has been also read | 21:29 |
lkcl | it will be important to make the CR/INT predicate Reg-Read a high priority | 21:30 |
cesar[m]1 | So, all instructions in the loop are issued, after all, since you might not know the mask bits in advance. | 21:30 |
lkcl | because if, say, VL=20 and the predicate is 0b00001000000 you still have to issue work to 20 FUs. | 21:30 |
lkcl | exactly, yes | 21:30 |
lkcl | except for "1<<r3" where we *know* in advance that that's only going to have 1 bit set | 21:31 |
lkcl | in the case where things are stalled because there are not enough FUs to issue the entire Vector | 21:31 |
lkcl | things can be slightly different | 21:32 |
lkcl | because e.g. in the INT case, by then you will have read the full INT (maybe) | 21:32 |
lkcl | and once that's done it's possible to work out only the ones that are needed | 21:32 |
lkcl | and skip the rest | 21:32 |
lkcl | but if there is a write-hazard on the INT being used for the predicate, obviously you can't play that trick | 21:33 |
lkcl | it'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 | |
lkcl | i'd prefer if the core was left alone at the moment | 21:34 |
lkcl | although, yes, that will have to be done to support zeroing | 21:35 |
lkcl | because the core has to know not to read the regfiles but instead to put zeros into its inputs | 21:35 |
lkcl | and also whether to not execute the instruction and put zeros in the output | 21:36 |
cesar[m]1 | Interesting. 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 |
lkcl | TestIssuer 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/!