Hi, I'm doing some gem5 hacking for research and have been confused over the timing of when loads search the store queue (SQ) and when stores have valid addresses that can be compared against. Gem5 includes an assert in the read() method in the LSQ unit that the addresses of all stores before the executing loads are valid, but I don't understand how this can be guaranteed in OoO execution.
I found a github issue which explains the issue in more detail with code examples, but hasn't received any answers. I'm hoping someone here could take a look and shed light on what's going on with this part of the code. In my case, I'd like to be able to force executing loads to be dependent on the first older store which has an unknown address, in order to simulate an OoO core without memory dependence prediction. I had imagined implementing this during the store forwarding search in the same way a load is made dependent on a store with a partial address overlap, but again for some reason it's assumed that by the time a load is forwarding all the previous stores have known addresses. Any info would be appreciated, thanks. Sent from Proton Mail Android _______________________________________________ gem5-dev mailing list -- gem5-dev@gem5.org To unsubscribe send an email to gem5-dev-le...@gem5.org