Hello all,

I’ve been staring at the memory trace of a benchmark and am confused as to why 
some loads that I expect to commit are not being committed. Note that I am 
using Ruby.

I’ve been tracing the path loads take and it seems to be the following (More 
information can be found here 
https://www.gem5.org/project/2020/07/18/gem5-o3cpu-backend.html):



instToCommit primarily seems to just add the instruction to a structure called 
an “iewQueue”, but nothing is actually committed.

Then later on, in the tick() function in iew_impl.hh, the load is actually 
committed using the following code:

        // Update structures based on instructions committed.                   
                                                                                
                                            
        if (fromCommit->commitInfo[tid].doneSeqNum != 0 &&
            !fromCommit->commitInfo[tid].squash &&
            !fromCommit->commitInfo[tid].robSquashing) {

            ldstQueue.commitStores(fromCommit->commitInfo[tid].doneSeqNum,tid);

            ldstQueue.commitLoads(fromCommit->commitInfo[tid].doneSeqNum,tid);

            updateLSQNextCycle = true;
            instQueue.commit(fromCommit->commitInfo[tid].doneSeqNum,tid);
        }

In the commitLoads function [see code excerpt above], the load entry is 
actually freed from the LSQ. I’ve been trying to find the link between the 
“instToCommit” function and the code in “tick” but to no avail. Where/how 
exactly does the tick function decide if it can commit a load? Essentially, 
what’s the bridge between IEW:instToCommit and IEW::tick? I was trying to 
figure out the connection between “fromCommit” [see code excerpt above] and 
“iewQueue", but it seems to involve wires, time buffers and several other 
concepts I’m not familiar with.

Thanks,
Farhad



_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to