Thursday, 2021-10-28

Veera[m]expected/alu_cases/case_cmp.py... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/9de2f27d5383bd326ea6ff4b7b19b493e26d49a7)01:42
Veera[m] * def case_cmp(self):... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/f29a885bc060ba7628b8d789168f0e15755c4bc0)01:42
Veera[m] * def case_cmp(self):... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/541f41628e4aa8945ba1f1fda92df3276664616d)01:43
Veera[m] * def case_cmp(self):... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/39b17cff4dadfe1b78ea3644a1a37cc562747899)01:46
Veera[m] * def case_cmp(self):... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/97884f14e4a45d6c8495c6f198771c2d4911ab52)01:47
kylelVeera[m], nice catch with the cr...I pushed a fix which now should match to what you thought03:55
Veera[m]kylel:  I will see03:56
Veera[m]is there a way to show XER changes03:58
kylelIt should....03:59
kylelyeah, case_addme_ca_so_3 sets one04:01
kylelor two actually04:01
Veera[m]kylel:  I think I made wrong buzilla post! 0x4 is equal to 0b0100 for cr0 is right! Anyway please clarify?08:03
lkclVeera[m], kylel, yes XER should definitely be part of "ExpectedState", that's quite important.12:47
lkclthe (new) dump function should definitely blat out the XER reg so it can be put into the tests12:48
lkclVeera[m]: please make sure to commit each unit test addition of a new ExpectedState variable one at a time12:48
lkcl*please don't* wait until you have done all unit tests 100% before committing.12:48
lkclthere are (appx) 15 functions in alu_cases.py therefore there should be *fifteen separate commits*12:49
lkcleach commit message saying, "added expected state to case_extsb"12:49
lkcl"added expected state to case_cmpeqb for alu_cases unit test"12:50
lkcletc. etc.12:50
kylellkcl, five months for the msb...yikes12:59
kylelthat had to be frustrating12:59
lkclopenpower summit 2021 started15:13
lkcluses zoom (sigh)15:14
lkclclick on the schedule event to see the zoom link https://cfp.openpower.foundation/summit2021/schedule/15:14
lkclshould work in browser15:14
octaviusJoined, watching atm. Do you know where the link to their mattermost chat is? Or is it just easier to get into the IRC openpower-events channel?15:20
lkclhttps://chat.openpower.foundation/opf/channels/events15:21
octaviusThanks luke!15:21
lkcli'm trying to join now (#openpower-events) but there's no acknowledgement from libera15:21
octaviusAh ok15:21
lkclahh finally15:21
lkclit worked15:21
octaviusmanaged to avoid zoom myself, drawing mode must've been a pain for many a presenter XD15:34
lkcl:)15:41
lkclCXL looks like something we should investigate15:41
octaviusatm we're only using WB 3.0 right?15:42
octaviusThe wishbone spec was a nice read, only 100 ish pages15:42
lkclyes.  except it is a "take-it-or-leave-it" contract15:43
toshywoshyyes, a chiplet design with CXL+OMI ports would be a good idea15:43
octaviusThe wishbone "contract"? As in, you have to implement it exactly?15:43
lkclwhere what we need is more "House Contract-of-Sale" - which is *three* stage: Offer, Exchange, Complete15:43
octaviusAh, sorry, you meant CXL15:44
lkclWishbone you absolutely *must* take the read/write request, right there, right then. the only allowed exception to that is to throw a (catastrophic) wishbone error condition15:45
lkcl[15:45
lkcl'15:45
* lkcl oops dropped the keyboard :)15:45
octaviusSingle R/W, pipelined R/W, optional tags, do you need more flexibility than that? I thought the biggest drawback is the maximum 64-bit width15:48
lkcloctavius: "please hold off don't commit this request until i ask you to, but please let me know if you *can* do it, before you actually do it"16:03
lkclthat is the House "Contract Of Sale" arrangement16:03
lkclwishbone *cannot* ask the question:16:03
lkcl"i am making an OFFER for you to write.  could you let me know, WITHOUT any "commitment", if you COULD fulfil this write?"16:04
lkclif the answer is "yes, you COULD fulfil it, then let us proceed to EXCHANGE where you absolutely must COMPLETE once we have both agreed to"16:05
lkclthis is the kind of protocol needed for caches and for speculative execution.16:05
lkcland Wishbone simply doesn't have it.16:05
lkclhence why wishbone is quotes simple quotes16:05
octaviusI see what you mean. CYC must be asserted for the duration of the transaction, but you just want to query the availability of the slave, not actually start the transaction. Transactions however, also require STB signal to be asserted. I'll read the spec's section on the rules again to confirm, but here's a suggestion. What if the master asserts CYC_O, leaves STB_O negated, and then checks for the16:22
octaviusvalue of STALL_I (coming from the slave)? The slave could leave STALL asserted indicating the slave cannot accept requests (used for pipelined mode). The master could simply wait untill STALL_I is negated, and start a transaction. Only issue is in an arbitrated system, the master shouldn't hold CYC_O for longer than necessary. As for guaranteeing the transaction happens, the master could assert16:22
octaviusLOCK_O, which forces the transaction to become uninterruptable16:22
lkcl"query the availability of the slave, not actually start the transaction" .... yes: but at the same time, *if* the transaction *is* (eventually) accepted, its order *must* be preserved16:25
lkclas in: if there are two such House-Contract-Of-Sale requests, it is critically important that the first is completed before the second, if the first comes in (is initiated) before the second16:26
lkcl"polling" in other words is not an option.16:26
lkclalso, the way that Wishbone is set up, it is a Trademark violation to make fundamental changes to the Wishbone Specification that are incompatible with the Wishbone Specification16:27
lkclabout the only thing you *can* do (and not violate the Trademark) is: use "tags"16:27
cesarIs this something like a cache coherence protocol maybe...16:27
octaviusWhat if the arbitrator took note of the transaction request order?16:28
lkclcesar, i'm honestly not sure.16:28
lkclarbitrators would need to be *aware* of the House-Contract-Of-Sale "1. Offer 2. Exchange 3. Complete" protocol16:29
octaviusSo the master and slave remain as they are, but the arbitrator that multiplexes the bus would have an internal record of "House-Contract-Of-Sale" requests16:29
octaviusah ok16:29
lkclmy understanding is that it would have to be a full end-to-end protocol addition16:30
lkclbecause even peripherals might have speculative execution16:30
lkclcaches definitely would16:31
cesarIt could have separate tagged address and data channels, like AXI.16:31
lkclperipherals which have multiple incoming requests to deal with (DMA + processor) for example might have to receive both requests in order to ascertain which one takes priority16:32
lkclor something16:32
lkclbut16:32
octaviusI think I'll write out what I suggested and see if it makes sense after giving the spec a quick look. If the STALL signal was available outside of pipelined mode (only extension to the slave itself) as well as arbitrator keeping track16:32
lkclif that's an out-of-order speculative memory access by the main processor...16:32
cesarOnly, on AXI, there is no way to abort a transaction.16:32
lkclcesar: not at all?16:33
lkcloctavius, cool16:33
lkcloctavius, are you familiar with multi-issue out-of-order speculative execution?16:33
lkcli studied it 2+ years ago (5 months!!) in particular Mitch Alsup explained to me how "Shadowing" circuits hook into the Write16:34
octaviusNo, just the general concept of OOO exec (processor predicting a branch in advance, and I guess updating the cache to include the branch instructions?)16:34
lkclShadowing "holds off" the Write-Commit (anything that could cause "damage")16:35
lkcl1 sec let me find the page16:35
lkclhttps://libre-soc.org/3d_gpu/architecture/6600scoreboard/16:35
lkclsection "Shadowing"16:35
lkclhttps://libre-soc.org/3d_gpu/shadow.svg16:35
lkclVeera[m], thank you for doing that superb clear diagram :)16:35
lkclbasically, when "Shadow" is HI, you are still in the "Offer" or "Exchange" phase of House-Contract-Of-Sale16:36
lkclonly when "Shadow" goes "LOW" are you permitted to move from "Exchange" to "Complete" phase.16:37
cesarlkcl: not in the middle of a burst.16:37
lkclcesar, ahh that makes sense16:37
lkclMulti-Issue transaction order is preserved in Shadowing by having Transitive relationships.16:38
lkclMemory Request 1 holds a Shadow across Request 2 3 4 5 6 7 816:38
lkclMemory Request 2 holds a Shadow across Request 3 4 5 6 7 816:38
lkcl...16:38
lkclMemory Request 7 holds a Shadow across Request 816:39
octaviusSo request 3, for example, could not come before 2 (as 2 is shadowing it)?16:39
lkcland that capability *actually* needs to be *actually* part of the Memory Bus Architecture16:39
lkclrequest 3 could not be SERVICED before request 2 is completed16:39
lkcland16:39
lkclcrucially.16:39
lkclCancellation of Request 1 causes ALL Requests 2-8 to also be cancelled16:40
octaviusOh, I didn't realise this16:40
lkclcancellation of Request 2 causes ALL Requests 3-8 to also be cancelled16:40
lkcl...16:40
lkclcancellation of Request 7 causes Request 8 to also be cancelled16:40
octaviusSo this would be akin to a failed branch prediction, where the pipeline has to be flushed?16:40
lkclit's pretty complex but also pretty clear and straightforward at the same time16:41
lkclcorrect16:41
lkclShadowing can be used for16:41
lkclBranch Prediction16:41
lkclSpeculative Execution16:41
lkclPredication16:41
lkclMemory "Total Store Order" preservation16:41
lkclCache access resolution16:41
lkcleverything16:41
octaviusAh, that's why you use Shadowing, it's the more generalised concept16:41
lkclyeees :)16:41
lkclotherwise we have to do an absolutely awful concept of "rollback transactions"16:42
lkclwhich would be hell16:42
lkcllike... taking snapshots of register file contents, and having the L1/L2/L3 cache infrastructure be totally "aware" of the rollback capability16:43
* lkcl goes dizzy thinking about it16:43
octaviusThat sounds like pure pain16:43
octaviusso much data to backup16:43
lkclyes!  i have *no idea* why some architects actually implement it!16:43
lkclok that's not totally fair: i do know why16:43
octavius"Seems" easier when first considered?16:44
lkclit's because using Shadowing, you have to have massive numbers of Reservation Stations16:44
lkclin IBM POWER10 and i think in latest x86 cores they have a THOUSAND Reservation Stations.16:44
lkclthat's a THOUSAND "Shadow" Flags!16:44
octavius"flags"? The usual concept of flags (single/multi-bit signals indicating certain states/config, like overflow flag)?16:45
lkclsingle-bit, yes16:50
lkcl"Shadow" in this diagram https://libre-soc.org/3d_gpu/shadow.svg16:50
lkclone off-the-wall idea i had was not to use the WB Spec "tags" (you are allowed to add Address "Tags", and Data "Tags", and Control "Tags")16:51
lkclbut to actually have a dual (synchronous) "Shadow Wishbone Bus"16:51
lkcl(!!)16:51
lkclwhich has its own completely separate CYC/STB/Addr/Data/Wen16:51
lkclmaybe only say 8-bit or 12-bit address (whatever is needed)16:52
lkclbut where the Shadow flag is a... a... data bus item16:52
lkcland Address is... is... "please initiate a Shadow" or "please cancel this Shadow"16:53
lkclbasically, AXI "Control Bus" :)16:53
octaviuslkcl: Sent my wishbone concept. Once you have some more time, please give it a look and let me know if I'm missing something.18:07
lkcloctavius, got it. focussing on the conference at the moment, will at least acknowledge it18:31
lkcli think we have a bugreport somewhere for it18:31
lkclah! yes! https://bugs.libre-soc.org/show_bug.cgi?id=41018:32
octaviusThanks, looking forward to the svp64 summary!18:33
lkclah this one is... complicated.  it's a deep-dive18:34
lkcli recommend skimming the "overview" beforehand18:35
octaviusHahah, everything is complicated18:35
octaviusalthough I'll look at the overview as well18:35
lkclhttps://libre-soc.org/openpower/sv/overview/18:35
lkcl:)18:35
lkclSVP64 talk in 6 mins https://zoom.us/j/9512641219918:54
lkclroom's open now18:54
lkclwheww that was a tech-heavy talk :)19:51
lkclJean-Paul's talk is on soon, 5 mins19:56
lkclhttps://cfp.openpower.foundation/summit2021/talk/SF8YLK/19:56
octaviusGreat to hear about DCT and FFT again though...been a while a few years since I touched maths like this ;)19:58
lkclyeah it was insane19:58
lkcldo support Jean-Paul with the coriolis2 talk19:58
octaviusof course19:58
lkclhttps://zoom.us/j/9923371228019:58
octaviusI want to learn more about our toolflow anyway19:59
lkclit's pretty cool, it's in python19:59
octaviusOh I know, had fun with the setup script earlier ;)20:08
lkcldeep joy :)20:10
octaviusI'm suprised how few joined. Is it not as "exciting" as "AI"? XD21:05
lkclthere were 3 other talks21:07
lkcland it's recorded21:07
lkclLibreBMC started21:07
lkclhttps://cfp.openpower.foundation/summit2021/talk/GLZJVY/21:07
lkclbut Toshaan's talk is in 22 mins21:08
lkclabout the OPF Workgroups21:08
octaviusA live talk is more fun though, you can ask questions ;)21:11
lkclyehyeh21:15
lkcloctavius, nice to hear your voice finally21:15
lkclwhere the heck in the world are you, anyway?21:15
octaviusNorfolk21:23
octaviusalthough my accent is from surrey21:23
octaviusI introduced myself back in september21:24
octaviushttp://lists.libre-soc.org/pipermail/libre-soc-dev/2021-September/003674.html21:25
octaviusFound out about Libre-SOC by discovering EOMA68 first21:26
octaviusI'd argue EOMA68 is what phones should have been21:26
octaviusan actual portable computer21:26
octaviusbut Libre-SOC is a step towards that21:26
octaviusand as for why my nick is very different, I study Latin, and octavius sounded nice XD21:27
lkcl:)21:30
lkcltoshaan's up next, OPF Workgroups21:31
lkclhttps://zoom.us/j/9518161967721:31
octaviushas libresoc done any meetups/calls?21:44
programmerjakewe have a regular meeting every tuesday at 22:00 UTC on jitsi, we can give you the meeting link privately but we don't want to publish the link since we have no auth. system. the meeting is basically us talking about whatever we want (openpower related or not).22:01
programmerjakeit's the continuation of the OpenPower virtual coffee calls22:03
octaviusSure, if you can add me that'd be cool, you could send the link via email?22:05
lkcloctavius, try not to drop that jitsi meet link onto public resources22:07
lkclbecause it's no password22:07
octaviusSure, will keep it to myself22:12
octaviusHas the summit finished?23:35
lkcllooks like it.23:37
octaviusWell, I'm knackered, ttyl23:38
lkclhttps://github.com/open-power/ocmb-explorer-fw23:39
lkclto explore later23:39
octaviusThanks, bookmarked23:39

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