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

Reply via email to