1/* 2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 17 unchanged lines hidden (view full) --- 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29#ifndef __MEM_RUBY_PROFILER_ADDRESSPROFILER_HH__ 30#define __MEM_RUBY_PROFILER_ADDRESSPROFILER_HH__ 31 32#include <iostream> 33 |
34#include "base/hashmap.hh" |
35#include "mem/protocol/AccessType.hh" 36#include "mem/protocol/CacheMsg.hh" 37#include "mem/ruby/common/Address.hh" 38#include "mem/ruby/common/Global.hh" 39#include "mem/ruby/common/Histogram.hh" |
40#include "mem/ruby/profiler/AccessTraceForAddress.hh" |
41#include "mem/ruby/system/NodeID.hh" 42 |
43class Set; |
44 45class AddressProfiler 46{ 47 public: |
48 typedef m5::hash_map<Address, AccessTraceForAddress> AddressMap; |
49 50 public: 51 AddressProfiler(int num_of_sequencers); 52 ~AddressProfiler(); 53 54 void printStats(std::ostream& out) const; 55 void clearStats(); 56 --- 14 unchanged lines hidden (view full) --- 71 72 private: 73 // Private copy constructor and assignment operator 74 AddressProfiler(const AddressProfiler& obj); 75 AddressProfiler& operator=(const AddressProfiler& obj); 76 77 int64 m_sharing_miss_counter; 78 |
79 AddressMap m_dataAccessTrace; 80 AddressMap m_macroBlockAccessTrace; 81 AddressMap m_programCounterAccessTrace; 82 AddressMap m_retryProfileMap; |
83 Histogram m_retryProfileHisto; 84 Histogram m_retryProfileHistoWrite; 85 Histogram m_retryProfileHistoRead; 86 Histogram m_getx_sharing_histogram; 87 Histogram m_gets_sharing_histogram; 88 89 //added by SS 90 bool m_hot_lines; --- 14 unchanged lines hidden --- |