gem5  v22.1.0.0
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
gem5::ruby::AddressProfiler Class Reference

#include <AddressProfiler.hh>

Public Types

typedef std::unordered_map< Addr, AccessTraceForAddressAddressMap
 

Public Member Functions

 AddressProfiler (int num_of_sequencers, Profiler *profiler)
 
 ~AddressProfiler ()
 
void printStats (std::ostream &out) const
 
void clearStats ()
 
void addTraceSample (Addr data_addr, Addr pc_addr, RubyRequestType type, RubyAccessMode access_mode, NodeID id, bool sharing_miss)
 
void profileRetry (Addr data_addr, AccessType type, int count)
 
void profileGetX (Addr datablock, Addr PC, const Set &owner, const Set &sharers, NodeID requestor)
 
void profileGetS (Addr datablock, Addr PC, const Set &owner, const Set &sharers, NodeID requestor)
 
void print (std::ostream &out) const
 
void setHotLines (bool hot_lines)
 
void setAllInstructions (bool all_instructions)
 
void regStats (const std::string &name)
 
void collateStats ()
 

Private Member Functions

 AddressProfiler (const AddressProfiler &obj)
 
AddressProfileroperator= (const AddressProfiler &obj)
 

Private Attributes

int64_t m_sharing_miss_counter
 
AddressMap m_dataAccessTrace
 
AddressMap m_macroBlockAccessTrace
 
AddressMap m_programCounterAccessTrace
 
AddressMap m_retryProfileMap
 
Histogram m_retryProfileHisto
 
Histogram m_retryProfileHistoWrite
 
Histogram m_retryProfileHistoRead
 
Histogram m_getx_sharing_histogram
 
Histogram m_gets_sharing_histogram
 
Profilerm_profiler
 
bool m_hot_lines
 
bool m_all_instructions
 
int m_num_of_sequencers
 

Detailed Description

Definition at line 50 of file AddressProfiler.hh.

Member Typedef Documentation

◆ AddressMap

Definition at line 53 of file AddressProfiler.hh.

Constructor & Destructor Documentation

◆ AddressProfiler() [1/2]

gem5::ruby::AddressProfiler::AddressProfiler ( int  num_of_sequencers,
Profiler profiler 
)

Definition at line 157 of file AddressProfiler.cc.

References clearStats(), and m_num_of_sequencers.

◆ ~AddressProfiler()

gem5::ruby::AddressProfiler::~AddressProfiler ( )

Definition at line 164 of file AddressProfiler.cc.

◆ AddressProfiler() [2/2]

gem5::ruby::AddressProfiler::AddressProfiler ( const AddressProfiler obj)
private

Member Function Documentation

◆ addTraceSample()

void gem5::ruby::AddressProfiler::addTraceSample ( Addr  data_addr,
Addr  pc_addr,
RubyRequestType  type,
RubyAccessMode  access_mode,
NodeID  id,
bool  sharing_miss 
)

◆ clearStats()

void gem5::ruby::AddressProfiler::clearStats ( )

◆ collateStats()

void gem5::ruby::AddressProfiler::collateStats ( )
inline

Definition at line 77 of file AddressProfiler.hh.

Referenced by gem5::ruby::Profiler::collateStats().

◆ operator=()

AddressProfiler& gem5::ruby::AddressProfiler::operator= ( const AddressProfiler obj)
private

◆ print()

void gem5::ruby::AddressProfiler::print ( std::ostream &  out) const

Referenced by gem5::ruby::operator<<().

◆ printStats()

void gem5::ruby::AddressProfiler::printStats ( std::ostream &  out) const

◆ profileGetS()

void gem5::ruby::AddressProfiler::profileGetS ( Addr  datablock,
Addr  PC,
const Set owner,
const Set sharers,
NodeID  requestor 
)

◆ profileGetX()

void gem5::ruby::AddressProfiler::profileGetX ( Addr  datablock,
Addr  PC,
const Set owner,
const Set sharers,
NodeID  requestor 
)

◆ profileRetry()

void gem5::ruby::AddressProfiler::profileRetry ( Addr  data_addr,
AccessType  type,
int  count 
)

◆ regStats()

void gem5::ruby::AddressProfiler::regStats ( const std::string &  name)
inline

Definition at line 76 of file AddressProfiler.hh.

◆ setAllInstructions()

void gem5::ruby::AddressProfiler::setAllInstructions ( bool  all_instructions)

Definition at line 175 of file AddressProfiler.cc.

References m_all_instructions.

Referenced by gem5::ruby::Profiler::Profiler().

◆ setHotLines()

void gem5::ruby::AddressProfiler::setHotLines ( bool  hot_lines)

Definition at line 169 of file AddressProfiler.cc.

References m_hot_lines.

Referenced by gem5::ruby::Profiler::Profiler().

Member Data Documentation

◆ m_all_instructions

bool gem5::ruby::AddressProfiler::m_all_instructions
private

Definition at line 100 of file AddressProfiler.hh.

Referenced by addTraceSample(), printStats(), and setAllInstructions().

◆ m_dataAccessTrace

AddressMap gem5::ruby::AddressProfiler::m_dataAccessTrace
private

Definition at line 86 of file AddressProfiler.hh.

Referenced by addTraceSample(), clearStats(), and printStats().

◆ m_gets_sharing_histogram

Histogram gem5::ruby::AddressProfiler::m_gets_sharing_histogram
private

Definition at line 94 of file AddressProfiler.hh.

Referenced by clearStats(), printStats(), and profileGetS().

◆ m_getx_sharing_histogram

Histogram gem5::ruby::AddressProfiler::m_getx_sharing_histogram
private

Definition at line 93 of file AddressProfiler.hh.

Referenced by clearStats(), printStats(), and profileGetX().

◆ m_hot_lines

bool gem5::ruby::AddressProfiler::m_hot_lines
private

Definition at line 99 of file AddressProfiler.hh.

Referenced by printStats(), and setHotLines().

◆ m_macroBlockAccessTrace

AddressMap gem5::ruby::AddressProfiler::m_macroBlockAccessTrace
private

Definition at line 87 of file AddressProfiler.hh.

Referenced by addTraceSample(), clearStats(), and printStats().

◆ m_num_of_sequencers

int gem5::ruby::AddressProfiler::m_num_of_sequencers
private

Definition at line 102 of file AddressProfiler.hh.

Referenced by AddressProfiler(), and printStats().

◆ m_profiler

Profiler* gem5::ruby::AddressProfiler::m_profiler
private

Definition at line 96 of file AddressProfiler.hh.

Referenced by printStats().

◆ m_programCounterAccessTrace

AddressMap gem5::ruby::AddressProfiler::m_programCounterAccessTrace
private

Definition at line 88 of file AddressProfiler.hh.

Referenced by addTraceSample(), clearStats(), and printStats().

◆ m_retryProfileHisto

Histogram gem5::ruby::AddressProfiler::m_retryProfileHisto
private

Definition at line 90 of file AddressProfiler.hh.

Referenced by clearStats(), printStats(), and profileRetry().

◆ m_retryProfileHistoRead

Histogram gem5::ruby::AddressProfiler::m_retryProfileHistoRead
private

Definition at line 92 of file AddressProfiler.hh.

Referenced by clearStats(), printStats(), and profileRetry().

◆ m_retryProfileHistoWrite

Histogram gem5::ruby::AddressProfiler::m_retryProfileHistoWrite
private

Definition at line 91 of file AddressProfiler.hh.

Referenced by clearStats(), printStats(), and profileRetry().

◆ m_retryProfileMap

AddressMap gem5::ruby::AddressProfiler::m_retryProfileMap
private

Definition at line 89 of file AddressProfiler.hh.

Referenced by clearStats(), printStats(), and profileRetry().

◆ m_sharing_miss_counter

int64_t gem5::ruby::AddressProfiler::m_sharing_miss_counter
private

Definition at line 84 of file AddressProfiler.hh.

Referenced by addTraceSample(), clearStats(), and printStats().


The documentation for this class was generated from the following files:

Generated on Wed Dec 21 2022 10:24:23 for gem5 by doxygen 1.9.1