Dear Abhishek, I apologize for my tardy response (I had been travelling and your message fell by the wayside).
I did not realize you were relying on the CMP cache. As you have noticed, unfortunately the FastCMPCache has not been instrumented with TraceTracker callbacks. A couple options: - add TraceTracker callbacks to the FastCMPCache - look at the fillLevel as observed at the L1 cache - see theTraceTracker.fill() calls for examples - eLocalMem or eRemoteMem indicate that the request went off-chip - ePeerL1Cache indicates the data came from another core's L1 cache - eL2 indicates the L2 cache had an up-to-date value for the block Thus, by looking at the fillLevel, you can examine the exact subset of memory accesses that you care about (e.g., only to main memory, only filled on chip, etc). To answer your other question, if the wiring.cpp file for a particular simulator does not initialize a parameter that you know to exist, you can simply add it (to initializeParameters() in wiring.cpp). Or just set the parameter as you need after Flexus has been loaded (look at the configuration.simics files for examples). Regards, Stephen On Thu, 7 May 2009, Abhishek Das wrote: > Hi Stephen, > > The 'TraceTracker.initialize()' call only works for the FastCache component > of the TraceFlex(TraceCMPFlex) simulator. However, the FastCMPCache > component doesn't allow you to load the TraceTracker component. Hence the L2 > accesses cannot be traced. Also, for CMPFlex/UniFlex type of simulators, > neither of Cache or CMPCache component has TraceTracking options. How do I > enable tracking for L2 cache under such circumstances? Is there a way > around? > > Thanks, > Abhishek > > -----Original Message----- > From: simflex-bounces at ece.cmu.edu [mailto:simflex-bounces at ece.cmu.edu] > On > Behalf Of Stephen Somogyi > Sent: Thursday, April 30, 2009 10:17 AM > To: SimFlex software support > Subject: Re: [Simflex] memory access traces > > Hi Abhishek, > > Actually, the TraceTracker works a bit strangely compared with most of the > other Flexus components. You can get callbacks into TraceTracker even if > the TraceTrackerComponent is not enabled (basically, the code in > components/Common/TraceTracker.* is always active, even if the component > in components/TraceTracker/ is not). > > If you are using TraceFlex (or one of its variants), you will need to > enable the callbacks from within the caches, for example: > - at run-time: flexus.set "-L1d:trace_tracker_on" "1" > - at compile time (in wiring.cpp, initializeParameters() function: > theL1DCfg.TraceTracker.initialize(true); > > The easiest way to get a list of all the parameters supported by a > particular Flexus simulator is to load the simulator in Simics and run, > even if just for one cycle. Then look at the configuration.out file that > was generated - this lists all the parameters and their values. > > Stephen > > > On Wed, 29 Apr 2009, Abhishek Das wrote: > > > Hi Stephen, > > > > Thanks for the reply. I have put my own debugging statements in the > > components/Common/TraceTracker.cpp file. However, it seems that I need to > > enable the trace-tracking option in order to get the extra information. > The > > components/TraceTrackerComponent.hpp has a parameter called "enable" which > > is set to 'false' by default. How can I enable this option? Should I > include > > the command { flexus.set "trace-tracker:enable" "true" } in the > > config/flexpoint/start.simics ? > > > > Also, in general where can I get the complete list of component names and > > corresponding parameters which can be used for the 'flexus.set' > statements. > > Currently, I am just looking at the *.hpp files in the components > directory, > > but I am unsure of the names of the components to use. > > > > regards, > > Abhishek > > > > -----Original Message----- > > From: simflex-bounces at ece.cmu.edu [mailto:simflex-bounces at > > ece.cmu.edu] On > > Behalf Of Stephen Somogyi > > Sent: Tuesday, April 28, 2009 11:05 AM > > To: SimFlex software support > > Subject: Re: [Simflex] memory access traces > > > > Dear Abhishek, > > > > Probably the easiest way to accomplish this in Flexus is through the > > TraceTracker. Each cache makes a call into TraceTracker on every access, > > which should provide the information you require. The default > > TraceTracker functions perform no actions, but it is simple to add > > whatever code you need (components/Common/TraceTracker.cpp). To get the > > current cycle, call "theFlexus->cycleCount()". > > > > Cheers, > > Stephen > > > > > > On Mon, 27 Apr 2009, Abhishek Das wrote: > > > > > Hi, > > > > > > > > > > > > I am trying to generate memory traces for some applications using > Flexus. > > > Particularly, I want to track memory accesses by each thread/cpu (read, > > > write, load, store) to physical addresses in memory. I want an output > > > registers the follwwing information: > > > > > > Cpu/Thread Memory Request Physical Addres > > > Cycle > > > > > > --------------- ---------------------- > > -------------------- > > > ---------- > > > > > > > > > > > > I was wondering whether Simflex has debugging options that can enable > such > > > memory access tracing. If yes, what specific debug flags need to be set? > > Or > > > do I have to change in the source code in Flexus to do the same? > > > > > > > > > > > > Thanks, > > > > > > Abhishek > > > > > > > > _______________________________________________ > > SimFlex mailing list > > SimFlex at ece.cmu.edu > > https://sos.ece.cmu.edu/mailman/listinfo/simflex > > SimFlex web page: http://www.ece.cmu.edu/~simflex > > > > _______________________________________________ > > SimFlex mailing list > > SimFlex at ece.cmu.edu > > https://sos.ece.cmu.edu/mailman/listinfo/simflex > > SimFlex web page: http://www.ece.cmu.edu/~simflex > > > _______________________________________________ > SimFlex mailing list > SimFlex at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/simflex > SimFlex web page: http://www.ece.cmu.edu/~simflex > > _______________________________________________ > SimFlex mailing list > SimFlex at ece.cmu.edu > https://sos.ece.cmu.edu/mailman/listinfo/simflex > SimFlex web page: http://www.ece.cmu.edu/~simflex >
