sorear changed the topic of #riscv to: RISC-V instruction set architecture | https://riscv.org | Logs: https://libera.irclog.whitequark.org/riscv
heat has joined #riscv
frkzoid has joined #riscv
JanC has quit [Ping timeout: 255 seconds]
JanC has joined #riscv
freakazoid332 has joined #riscv
frkzoid has quit [Ping timeout: 240 seconds]
NishanthMenon has quit [Ping timeout: 240 seconds]
frkazoid333 has quit [Ping timeout: 240 seconds]
frkazoid333 has joined #riscv
NishanthMenon has joined #riscv
jmdaemon has quit [Ping timeout: 240 seconds]
hays has joined #riscv
_whitelogger has quit [Ping timeout: 240 seconds]
_whitelogger_ has joined #riscv
_whitelogger_ has quit [Ping timeout: 240 seconds]
_whitelogger has joined #riscv
frkazoid333 has joined #riscv
wigyori_ has quit [Ping timeout: 255 seconds]
mmind00 has quit [Ping timeout: 240 seconds]
alexfanqi has quit [Ping timeout: 240 seconds]
mmind00_ has joined #riscv
JanC has joined #riscv
panzeroceania_ has quit [Ping timeout: 255 seconds]
JSharp has joined #riscv
paulk-bis has quit [Ping timeout: 240 seconds]
raym_ has quit [Ping timeout: 240 seconds]
wigyori has joined #riscv
FL4SHK has joined #riscv
sorear_ has joined #riscv
joev1 has joined #riscv
ssb has joined #riscv
dlan has joined #riscv
aurel32 has joined #riscv
alexfanqi has joined #riscv
haritz has joined #riscv
haritz has quit [Changing host]
raym has joined #riscv
dlan has quit [Changing host]
dlan has joined #riscv
zjason`` has quit [Ping timeout: 240 seconds]
alexfanqi has quit [Changing host]
alexfanqi has joined #riscv
paulk-bis has joined #riscv
raym has quit [Changing host]
raym has joined #riscv
Armand has joined #riscv
Armand has quit [Remote host closed the connection]
Raito_Bezarius has joined #riscv
jacklsw has joined #riscv
jacklsw has quit [Client Quit]
Raito_Bezarius has quit [Client Quit]
Armand has joined #riscv
Armand has quit [Remote host closed the connection]
Leopold has joined #riscv
Raito_Bezarius has joined #riscv
Raito_Bezarius has quit [Client Quit]
matoro has joined #riscv
Raito_Bezarius has joined #riscv
Armand has joined #riscv
sm2n has joined #riscv
Armand has quit [Remote host closed the connection]
jleightcap has joined #riscv
catcream_ has joined #riscv
Raito_Bezarius has quit [Client Quit]
Armand has joined #riscv
Raito_Bezarius has joined #riscv
Armand has quit [Remote host closed the connection]
Armand has joined #riscv
pld has joined #riscv
m5zs7k has joined #riscv
yyp has joined #riscv
geertu has joined #riscv
sumoon has joined #riscv
elastic_dog has joined #riscv
yongxiang_ has joined #riscv
jbowen_ has joined #riscv
panzeroceania_ has joined #riscv
shreyasminocha has joined #riscv
Raito_Bezarius has quit [Quit: free()]
Raito_Bezarius has joined #riscv
heat has joined #riscv
deflated8837 has joined #riscv
q66 has quit [Quit: WeeChat 3.8]
q66 has joined #riscv
nathanchance_ is now known as nathanchance
nathanchance has quit []
nathanchance has joined #riscv
armand_ has joined #riscv
heat_ has joined #riscv
yongxiang_ has quit [Ping timeout: 255 seconds]
m5zs7k_ has joined #riscv
Raito_Bezarius has quit [Ping timeout: 255 seconds]
geertu has quit [Ping timeout: 255 seconds]
aurel32 has quit [Ping timeout: 255 seconds]
mlaga97_ has quit [Read error: Connection reset by peer]
aurel32 has joined #riscv
geertu has joined #riscv
m5zs7k has quit [Quit: m5zs7k]
Armand has quit [Ping timeout: 255 seconds]
paulk-bis has quit [Ping timeout: 255 seconds]
mlaga97 has joined #riscv
Leopold has quit [Read error: Connection reset by peer]
heat has quit [Ping timeout: 255 seconds]
Leopold has joined #riscv
Raito_Bezarius has joined #riscv
yongxiang_ has joined #riscv
armand__ has joined #riscv
paulk-bis has joined #riscv
armand_ has quit [Ping timeout: 255 seconds]
aurel32 has quit [Ping timeout: 255 seconds]
geertu has quit [Ping timeout: 255 seconds]
aurel32 has joined #riscv
geertu has joined #riscv
m5zs7k_ is now known as m5zs7k
jacklsw has joined #riscv
bgamari has quit [Server closed connection]
bgamari has joined #riscv
balrog has quit [Server closed connection]
balrog has joined #riscv
nebu has joined #riscv
nebu has left #riscv [#riscv]
hays has joined #riscv
wingsorc has joined #riscv
armand__ is now known as Armand
JanC has quit [Ping timeout: 240 seconds]
JanC_ has joined #riscv
JanC_ is now known as JanC
armand_ has joined #riscv
Armand has quit [Killed (NickServ (GHOST command used by armand_))]
armand_ is now known as Armand
yongxiang_ has quit [Ping timeout: 255 seconds]
paulk-bis has quit [Ping timeout: 255 seconds]
Raito_Bezarius has quit [Ping timeout: 255 seconds]
paulk-bis has joined #riscv
mlaga97 has quit [Ping timeout: 255 seconds]
aparri has joined #riscv
mlaga97 has joined #riscv
yongxiang_ has joined #riscv
bauruine has joined #riscv
crabbedhaloablut has quit [Server closed connection]
crabbedhaloablut has joined #riscv
Raito_Bezarius has joined #riscv
sakman has quit [Remote host closed the connection]
sakman has joined #riscv
heat_ has quit [Ping timeout: 255 seconds]
Trifton has joined #riscv
anup_patel has joined #riscv
JanC has quit [Ping timeout: 240 seconds]
JanC has joined #riscv
BootLayer has joined #riscv
bauruine has quit [Ping timeout: 260 seconds]
bauruine has joined #riscv
jljusten has quit [Server closed connection]
jljusten has joined #riscv
anup_patel has quit [Ping timeout: 240 seconds]
billchenchina has joined #riscv
MaxGanzII_ has joined #riscv
ldevulder has joined #riscv
jacklsw has quit [Ping timeout: 255 seconds]
BootLayer has quit [Read error: Connection reset by peer]
BootLayer has joined #riscv
ldevulder has quit [Remote host closed the connection]
Stat_headcrabed has joined #riscv
MaxGanzII_ has quit [Ping timeout: 240 seconds]
Stat_headcrabed has quit [Client Quit]
danilogondolfo has joined #riscv
ldevulder has joined #riscv
frkzoid has joined #riscv
freakazoid332 has quit [Ping timeout: 240 seconds]
ximet43 has quit [Quit: The Lounge - https://thelounge.chat]
ximet43 has joined #riscv
TMM_ has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
TMM_ has joined #riscv
MaxGanzII_ has joined #riscv
tux3 has quit [Ping timeout: 240 seconds]
tux3 has joined #riscv
ldevulder has quit [Read error: Connection reset by peer]
ldevulder has joined #riscv
pecastro has joined #riscv
ldevulder has quit [Quit: Leaving]
prabhakarlad has joined #riscv
prabhakar has joined #riscv
DynamiteDan has quit [Excess Flood]
DynamiteDan has joined #riscv
zjason``` is now known as zjason
terminalpusher has quit [Ping timeout: 245 seconds]
ldevulder has joined #riscv
dilfridge has quit [Server closed connection]
dilfridge has joined #riscv
awita has joined #riscv
aerkiaga has joined #riscv
awita has quit [Ping timeout: 240 seconds]
koolazer has quit [Server closed connection]
koolazer has joined #riscv
jim-wilson[m]1 is now known as jim-wilson[m]
wingsorc has quit [Ping timeout: 255 seconds]
Armand has quit [Ping timeout: 260 seconds]
prabhakarlad has quit [Quit: Client closed]
ZipCPU has quit [Server closed connection]
ZipCPU has joined #riscv
MaxGanzII_ has quit [Ping timeout: 240 seconds]
MaxGanzII_ has joined #riscv
awita has joined #riscv
aparri has quit [Quit: Client closed]
aparri has joined #riscv
Tenkawa has joined #riscv
BootLayer has quit [Quit: Leaving]
joev1 is now known as joev
joev has joined #riscv
joev has quit [Changing host]
MaxGanzII_ has quit [Ping timeout: 240 seconds]
dzaima[m] has joined #riscv
Trifton_ has joined #riscv
Trifton has quit [Ping timeout: 240 seconds]
awita has quit [Ping timeout: 240 seconds]
BootLayer has joined #riscv
knolle has joined #riscv
heat_ has joined #riscv
bauruine has quit [Remote host closed the connection]
pabs3 has quit [Ping timeout: 246 seconds]
awita has joined #riscv
patersonc[m] has quit [Read error: Connection reset by peer]
dzaima[m] has quit [Read error: Connection reset by peer]
jim-wilson[m] has quit [Read error: Connection reset by peer]
mtinman[m] has quit [Read error: Connection reset by peer]
khem has quit [Read error: Connection reset by peer]
pierce has quit [Read error: Connection reset by peer]
Cambridge[m] has quit [Read error: Connection reset by peer]
pabs3 has joined #riscv
mtinman[m] has joined #riscv
<drewfustini> No patchwork meeting?
<bjoto> Hmm, still waiting to be let in...
cwebber`` is now known as cwebber
cwebber has joined #riscv
cwebber has quit [Changing host]
patersonc[m] has joined #riscv
pierce has joined #riscv
Cambridge[m] has joined #riscv
dzaima[m] has joined #riscv
<palmer> ya, sorry, I slept in this morning -- I still don't know how to let people in automatically
smaeul has quit [Ping timeout: 260 seconds]
jbowen_ has quit []
jbowen_ has joined #riscv
jbowen_ is now known as jbowen
jbowen has quit [Changing host]
jbowen has joined #riscv
aerkiaga has quit [Remote host closed the connection]
prabhakarlad has joined #riscv
smaeul has joined #riscv
awita has quit [Ping timeout: 240 seconds]
khem has joined #riscv
JanC_ has joined #riscv
JanC has quit [Killed (mercury.libera.chat (Nickname regained by services))]
JanC_ is now known as JanC
MaxGanzII has joined #riscv
junaid_ has joined #riscv
JanC has quit [Ping timeout: 240 seconds]
JanC has joined #riscv
junaid_ has quit [Quit: leaving]
jacklsw has joined #riscv
aparri has left #riscv [#riscv]
Andre_Z has joined #riscv
mechaniputer has joined #riscv
JanC has quit [Remote host closed the connection]
JanC has joined #riscv
jacklsw has quit [Quit: Back to the real life]
terminalpusher has joined #riscv
MaxGanzII has quit [Ping timeout: 240 seconds]
mechaniputer has quit [Quit: leaving]
raym has quit [Ping timeout: 260 seconds]
heat_ is now known as heat
JanC has quit [Ping timeout: 248 seconds]
ldevulder has quit [Quit: Leaving]
JanC has joined #riscv
Xark has quit [Server closed connection]
Xark has joined #riscv
<courmisch> what happened to Zb{a,b,c,s} support in __riscv_hwprobe() ? :/
jim-wilson[m] has joined #riscv
terminalpusher has quit [Remote host closed the connection]
<conchuod> The ones apart from c are still on the list
<courmisch> don't they conflict with the merged RVV stuff?
<conchuod> Trivially?
<courmisch> can't exactly use them if neither the code points nor the names are settled
<courmisch> trivial conflict is as bad as any conflict
<conchuod> Ah, see I have a different view on conflicts - "is resubmission required?"
<conchuod> For Zbc, Heiko's patches for it didn't include hwprobe support, so there's nothing for that.
<jrtc27> welcome to the world of "having your own centralised registry of all possible extensions that assigns each a unique integer" chosen by y'all
<jrtc27> sure would be nice if you didn't have to do that and could use some other unique thing like, I don't know, the name
awita has joined #riscv
MaxGanzII has joined #riscv
MaxGanzII has quit [Ping timeout: 240 seconds]
BootLayer has quit [Quit: Leaving]
awita has quit [Ping timeout: 246 seconds]
TMM_ has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
TMM_ has joined #riscv
Gravis has quit [Server closed connection]
Gravis has joined #riscv
billchenchina has quit [Ping timeout: 255 seconds]
cousteau has joined #riscv
billchenchina has joined #riscv
<cousteau> Hi
<cousteau> A hart / hyperthreading thread includes a separate copy of (1) the register file, (2) the program counter, and (3) the CSR file?
<cousteau> Or do all harts share the CSR?
heat has quit [Remote host closed the connection]
heat has joined #riscv
<jrtc27> harts have their own copy of architectural state
<jrtc27> they don't mean "hyperthreading thread"
<cousteau> https://groups.google.com/a/groups.riscv.org/g/sw-dev/c/fH15cXf5H0g -- "Is CSR per hart or per core?" "The spec requires they be per-hart." -- ok thanks Andrew :)
<jrtc27> they mean "hardware thread"
<jrtc27> ie logical cores
<cousteau> jrtc27: I meant harts are "the threads as used in hyperthreading", not that hart literally means "hyperthreading thread"
<cousteau> So... basically everything that comprises a state has a replica per hart, right? So pc, registers (x1-31, f0-31), CSR, and maybe even pipeline stages and other flip-flops in the design?
<jrtc27> technically hyperthreading is Intel's branding for the technology otherwise known more generally as SMT
<jrtc27> everything architectural
<cousteau> oh I see
<jrtc27> pipeline stages are not architectural
<jrtc27> they are microarchitectural
<cousteau> so "multithreading" might be more appropriate
<cousteau> oh
<cousteau> ...I still don't know what's the difference between architecture and microarchitecture
<jrtc27> interface vs implementation
<cousteau> interface as in specification?
<jrtc27> interface as in what the programmer sees
<cousteau> as in, ISA vs how it's actually implemented?
<cousteau> I see
<jrtc27> implementation as in how the hardware designers made it do what the specification says it should
<jrtc27> yes
<jrtc27> registers are IAS
<jrtc27> *ISA
<jrtc27> pipelines, caches, etc are not
<cousteau> good point
<cousteau> registers are probably mapped to "registers" as in "vectors of flip-flops" in the implementation but I guess they don't have to
<jrtc27> exactly
<jrtc27> you could put them in hidden DRAM if you really wanted to
<cousteau> (registers = RISC-V x1-x31; "registers" = RTL reg signals)
<cousteau> yeah, or replicated or something
<jrtc27> most processors already lie to you by saying there is "the" x1
<jrtc27> in reality there's a bank of flip-flops and it keeps track of which one is the current x1
<cousteau> ...actually the register file is likely to be implemented as some distributed RAM, or at least the ISA hints to a dual-port (2R+1W) implementation
<cousteau> jrtc27: oh really? how so?
<jrtc27> look up register renaming
<cousteau> like, there are 31 or 32 registers, and at some point it decides that register number [24] is going to be x1, whereas x2 is going to be [15]?
<cousteau> so like "virtual memory but at a register level"?
<dh`> yeah except more than 32
<cousteau> yeah I was thinking that, why only 32, could be more
<cousteau> I guess simple implementations don't do that, though. Like the Rocket core.
<cousteau> The BOOM core probably does...
<dh`> basically the idea is that you have more registers than the ISA actually exhibits
<dh`> would recommend actually looking it up, though
<cousteau> I see, makes sense
<cousteau> I have the wikipedia article open
<cousteau> (oh wow, IA-64 has 128 registers?? and here I was thinking that that sort of thing tended to have few registers)
JanC_ has joined #riscv
JanC is now known as Guest340
Guest340 has quit [Killed (lithium.libera.chat (Nickname regained by services))]
JanC_ is now known as JanC
<dh`> also, "the current x1" is a bit misleading because which register is "x1" depends on where in the pipeline you're looking
<cousteau> got it
<cousteau> oh wow, this IA-64 arch (which so far I had only heard of, mostly in the context of "you can refer to x86 as IA-32, but be careful not to refer to x86-64/amd64 as IA-64 because that's something else") is big...
<cousteau> it uses the "register window" thing I studied at university (I think)
<dh`> e.g. if I start something slow like multiply x1 into x2, the view of that instruction remains constant as it floats through, but earlier instructions will be seeing a different x2 (with the value from before I started) and other things that run later might allocate a different x1 to write into without messing me up
<dh`> oh yeah, itanium is/was notorious
<dh`> surprised you could have not heard about it, but I guess that happens
<gurki> imho ia64 was a really cool idea but our compilers werent even remotely up to the task
<gurki> would be interesting to try a similar thing with 23 tools
<gurki> (ignoring all the other problems :p)
<cousteau> dh`: I mean... I did hear of itanium and "ia-64", I just had no idea WHAT it was :)
<cousteau> it's like SPARC. I know it exists but I have no idea what it is... guess I could look into it
<cousteau> (with OpenSPARC being one of the possible contenders / inspiration for RISC-V, I'm going to guess it's a RISC architecture)
<gurki> you need to do less guessing and more reading *runs*
<cousteau> I just came to the same conclusion, did the reading, and realized that my guess was right, so next time I'm going to skip the reading and trust my guesses :P
<gurki> *g
<gurki> *
<cousteau> (most of the time my "guesses" are actually "I already knew this, but forgot I knew it"
<cousteau> I think Plato referred to that as "anamnesis"
* cousteau reads the article on anamnesis
<cousteau> wow, SPARC uses register windows too
wigyori has quit [Ping timeout: 240 seconds]
<cousteau> Wikipedia says register windows were "one of the most influential features of the Berkeley RISC design"... but now the RISC-V doesn't use them
wigyori has joined #riscv
scruffyfurn has quit [Server closed connection]
scruffyfurn has joined #riscv
danilogondolfo has quit [Remote host closed the connection]
clandmeter has quit [Quit: Alpine Linux, the security-oriented, lightweight Linux distribution]
ncopa has quit [Quit: Alpine Linux, the security-oriented, lightweight Linux distribution]
billchenchina has quit [Ping timeout: 268 seconds]
clandmeter has joined #riscv
ncopa has joined #riscv
cousteau has quit [Quit: ♫ I can't forget the day I shot that network down ♫]
Andre_Z has quit [Quit: Leaving.]
<muurkha> cousteau: yeah, register windows turned out to be a mistake, and the SPARC was the most widespread arch that used them. https://stackoverflow.com/a/60920481 mentions that SPARC implementors already deplored this by the 01990s
<muurkha> 21:26 < jrtc27> most processors already lie to you by saying there is "the" x1
<muurkha> I don't think this is correct; the vast majority CPUs are simple low-performance in-order designs without register renaming, speculation, etc.
<jrtc27> most processors *that you will deal with* then
<jrtc27> fine
<jrtc27> clearly I'm not talking about some tiny Cortex M0
<muurkha> I would agree with "all current high-performance processors", I just think that's a small minority of processors, maybe 5%
<drmpeg> i960 also used register windows.
<muurkha> drmpeg: oh neat, I didn't know that
<muurkha> jrtc27: I've spent a lot of time dealing with tiny in-order Atom and Cortex-M and Cortex-R processors
<muurkha> even in recent years
<jrtc27> I'm willing to bet Atom cores have at least some form of register renaming
<jrtc27> sure looks like it has renaming to me
<jrtc27> oh hm Reg RenamingNo
<muurkha> oddly WP says the opposite about Bonnell
<muurkha> "This enables relatively good performance with only two integer ALUs, and without any instruction reordering, speculative execution, or register renaming. The Bonnell microarchitecture therefore represents a partial revival of the principles used in earlier Intel designs such as P5 and the i486, with the sole purpose of enhancing the performance per watt ratio."
<muurkha> but later "Atom" microarchitectures probably did
<muurkha> I saw a lovely plot the other day in some lecture slides about the, uh, OR10N?
<muurkha> it claims in-order single-issue execution is significantly more energy-efficient than any of the alternatives up to about 750MIPS
<muurkha> and most of the rest of the slides are about some ungodly hacks they bolted onto OpenRISC to reduce the performance penalty of in-order single-issue execution to goose the speed of their cluster-on-a-chip
<muurkha> that plot is from 13 years ago, so I don't know if it's still correct or ever really was
<muurkha> but it does seem to be true that most processors slower than that are still in-order even today
terminalpusher has joined #riscv
wingsorc has joined #riscv
<muurkha> those slides make me think they grafted the same pleasing ungodly hacks onto RISC-V in "RI5CY" but the paper I read is maybe from before that: https://ieeexplore.ieee.org/abstract/document/7314386/
<dh`> the sparc t1/t2 (aka niagara) were based on that premise and it didn't really pan out
pecastro has quit [Ping timeout: 246 seconds]
<dh`> although by that point, like with DEC and late alphas, it was probably too late commercially
pecastro has joined #riscv
Leopold has quit [Ping timeout: 255 seconds]
<muurkha> which premise, the premise that for power efficiency you want lots of small simple cores rather than a big one full of speculation and reordering?
<muurkha> https://pulp-platform.org/implementation.html now mostly talks about their RISC-V work (but not about the ungodly hacks)
pecastro has quit [Ping timeout: 240 seconds]