Hi, I've been looking at how Gem5 executes loads in O3 for a research project
and there's something I've found in the code that I can't get my head around.
In lsq_unit.cc in the 'read' function, there's a loop for searching over the SQ
to try and find a matching store address to forward from. However, it's my
understanding that not all stores in the SQ will have known addresses when a
load searches. This seems to be supported by the fact in Gem5 that stores are
inserted into the SQ before they're ready to issue and still have dependencies.
However, in this SQ search loop is an assertion on each store that is has a
valid virtual address? I'm confused about why this is a guarantee when
executing a load, and where the stores that don't have valid addresses are
instead.
I'm interested in this because I'd like to mess around with an idea that
involves loads changing behaviour when they encounter a store in the SQ that
has an uncomputed address. If anyone can help explain how Gem5 is working here
and where I might want to look I'd appreciate it, thanks!
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org