2010/12/2 沈众 <[email protected]> > Thank you, Avadh. > Now, I'm getting the address trace from > function ReorderBufferEntry::addrgen in oooexec.cpp. And I check whether the > opcode is a ld or st. Can this give correct address? Because I found this > function is sometimes (most of the time) called twice when an instruction is > issued. > > ReorderBufferEntry::addrgen is called multiple times for same instruction and if the instruction is not committed then your trace will contain unnecessary memory accesses. If you are fine with traces that has memory access which is not committed, then you can use 'issueload' and 'issuestore' functions. When all the checks are done at the end you can store the memory access information to your trace from these functions.
And if you want memory traces that are committed, then you can record load/store instruction commits from 'ReorderBufferEntry::commit function. - Avadh 2010/12/2 avadh patel <[email protected]> > > Hi, >> To find data addresses, look at function 'access_cache' in >> memoryHierarchy.cpp. >> This function is called by CPU to access any memory location from >> cache/dram. >> >> One caution, sometimes there might be multiple call for same address to >> this >> function from same opcode, also look at code in ooocore*.cpp files to see >> how they >> call this function to get the data. >> >> - Avadh >> >> On Fri, Nov 26, 2010 at 12:54 AM, 沈众 <[email protected]> wrote: >> >>> Dear all >>> How can I get the data address accessed by each processor/thread? >>> Thank you! >>> >>> -- >>> -- >>> Best Regards >>> Shen Zhong >>> >>> _______________________________________________ >>> http://www.marss86.org >>> Marss86-Devel mailing list >>> [email protected] >>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel >>> >>> >> > > > -- > -- > Best Regards > Shen Zhong >
_______________________________________________ http://www.marss86.org Marss86-Devel mailing list [email protected] https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
