Yes, you can call your function inside the Sequencer instead of SLICC.
A sequencer is already created for each processor. Call your function
like this:
g_system_ptr->getProfiler()->miss_profile(msg,
m_chip_ptr->getID()*RubyConfig::numberOfProcsPerChip() + m_version));
Where to add it? You should be able to add this inside of
Sequencer::issueRequest
--Mike
> I'm planning to add a function:
> void miss_profile(const CacheMsg& msg, NodeID id) in
> Profiler.C to account
> for read and write misses. Also, I noticed that a function in
> Sequencer.C
> (doRequest(const CacheMsg& request)) that can be used to find
> out a cache
> hit and hence read or write miss. I have the following questions:
> o How do I access doRequest() inside Profiler.C (Do I need to
> instantiate a Sequencer object ?)
> o Is this the right way of finding out miss statistics -or- is
> there any
> other way to calcuate the same inside Profiler.C ?
>
> ---- Original message ----
> >Date: Mon, 10 Oct 2005 10:40:08 -0500 (CDT)
> >From: Mike Marty <mikem@xxxxxxxxxxx>
> >Subject: Re: [Gems-users] Read and write misses
> >To: adash@xxxxxxx, Gems Users <gems-users@xxxxxxxxxxx>
> >
> >You will need to add some code to do this. First, modify
> >ruby/profiler/Profiler.C and Profiler.h to add a function to
> track the
> >read and write misses in which you can pass the processor ID.
> To hook
> >this up to SLICC, you will also need to add a function to
> >ruby/slicc_interface/RubySlicc_Profiler_interface.[Ch] to
> access the
> >function you added to the Profiler object. Finally add the same
> >definition to the RubySlicc_Profiler_interface.sm file in the
> protocols
> >directory.
> >
> >Then in the SLICC protocol specification, you will need to
> call your new
> >function passing the "machineID" variable (which is of type
> MachineID)
> >when a miss occurs. To extract a processor number (starting
> with P0) from
> >the MachineID in the C++ function, dereference the "num" field of
> >MachineID (like id.num).
> >
> >--Mike
> >
> >
> >> Hi,
> >>
> >> I am interested in finding out the number of read and write
> >> misses(separately)on the system bus generated for a single
> >> processor (when the snoop controller probes the Cache because
> >> of these misses)
> >>
> >> I would like to know the following for that.
> >> How to I differentiate one processor from other ...(Is is from
> >> some proc_id)
> >> How to I link GETS and GETX to the read and write misses and
> >> where do I modify the code?
> >>
> >> In the Ruby Dump stats file I have event counts Own_GETS,
> >> Other_GETS .....Is it something relevant to the read and
> >> misses that I want monitor?
> >>
> >> -Alokika
> >>
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> Gems-users mailing list
> >> Gems-users@xxxxxxxxxxx
> >> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> >>
> ***********************************
> Alokika Dash
> Academic Adviser(LTSC)
> Graduate Student
> ECE Department
> University of Maryland,College Park
> ***********************************
>
|