diff options
author | Korey Sewell <ksewell@umich.edu> | 2010-03-23 00:29:10 -0400 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2010-03-23 00:29:10 -0400 |
commit | d484e1b334c6fd3f2721a2a4628c2324ed14fd08 (patch) | |
tree | c95594df5ecae29b11262967f3f8b99fca82ca5d /src/mem/ruby/system/DirectoryMemory.hh | |
parent | 70308bc835035b940efb36d7f335643dfaa39851 (diff) | |
parent | a0651b8f6127c8b7994a165b525e93d87c470d20 (diff) | |
download | gem5-d484e1b334c6fd3f2721a2a4628c2324ed14fd08.tar.xz |
m5merge(2): another merge of regression stats
Diffstat (limited to 'src/mem/ruby/system/DirectoryMemory.hh')
-rw-r--r-- | src/mem/ruby/system/DirectoryMemory.hh | 139 |
1 files changed, 59 insertions, 80 deletions
diff --git a/src/mem/ruby/system/DirectoryMemory.hh b/src/mem/ruby/system/DirectoryMemory.hh index 8b23ced02..4e7bfc4f6 100644 --- a/src/mem/ruby/system/DirectoryMemory.hh +++ b/src/mem/ruby/system/DirectoryMemory.hh @@ -1,4 +1,3 @@ - /* * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood * All rights reserved. @@ -27,94 +26,74 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* - * DirectoryMemory.hh - * - * Description: - * - * $Id$ - * - */ - -#ifndef DIRECTORYMEMORY_H -#define DIRECTORYMEMORY_H +#ifndef __MEM_RUBY_SYSTEM_DIRECTORYMEMORY_HH__ +#define __MEM_RUBY_SYSTEM_DIRECTORYMEMORY_HH__ -#include "mem/ruby/common/Global.hh" +#include "mem/protocol/Directory_Entry.hh" #include "mem/ruby/common/Address.hh" +#include "mem/ruby/common/Global.hh" #include "mem/ruby/system/MemoryVector.hh" -#include "mem/protocol/Directory_Entry.hh" -#include "sim/sim_object.hh" -#include "params/RubyDirectoryMemory.hh" #include "mem/ruby/system/SparseMemory.hh" +#include "params/RubyDirectoryMemory.hh" +#include "sim/sim_object.hh" -class DirectoryMemory : public SimObject { -public: - // Constructors +class DirectoryMemory : public SimObject +{ + public: typedef RubyDirectoryMemoryParams Params; DirectoryMemory(const Params *p); - void init(); - // DirectoryMemory(int version); - - // Destructor - ~DirectoryMemory(); - - uint64 mapAddressToLocalIdx(PhysAddress address); - static uint64 mapAddressToDirectoryVersion(PhysAddress address); - - bool isSparseImplementation() { return m_use_map; } - uint64 getSize() { return m_size_bytes; } - - // Public Methods - void printConfig(ostream& out) const; - static void printGlobalConfig(ostream & out); - bool isPresent(PhysAddress address); - Directory_Entry& lookup(PhysAddress address); - - void invalidateBlock(PhysAddress address); - - void print(ostream& out) const; - void printStats(ostream& out) const; - -private: - // Private Methods - - // Private copy constructor and assignment operator - DirectoryMemory(const DirectoryMemory& obj); - DirectoryMemory& operator=(const DirectoryMemory& obj); - -private: - const string m_name; - // Data Members (m_ prefix) - Directory_Entry **m_entries; - // int m_size; // # of memory module blocks this directory is responsible for - uint64 m_size_bytes; - uint64 m_size_bits; - uint64 m_num_entries; - int m_version; - - static int m_num_directories; - static int m_num_directories_bits; - static uint64_t m_total_size_bytes; - static int m_numa_high_bit; - - MemoryVector* m_ram; - SparseMemory* m_sparseMemory; - bool m_use_map; - int m_map_levels; + ~DirectoryMemory(); + + void init(); + + uint64 mapAddressToLocalIdx(PhysAddress address); + static uint64 mapAddressToDirectoryVersion(PhysAddress address); + + bool isSparseImplementation() { return m_use_map; } + uint64 getSize() { return m_size_bytes; } + + void printConfig(ostream& out) const; + static void printGlobalConfig(ostream & out); + bool isPresent(PhysAddress address); + Directory_Entry& lookup(PhysAddress address); + + void invalidateBlock(PhysAddress address); + + void print(ostream& out) const; + void printStats(ostream& out) const; + + private: + // Private copy constructor and assignment operator + DirectoryMemory(const DirectoryMemory& obj); + DirectoryMemory& operator=(const DirectoryMemory& obj); + + private: + const string m_name; + Directory_Entry **m_entries; + // int m_size; // # of memory module blocks this directory is + // responsible for + uint64 m_size_bytes; + uint64 m_size_bits; + uint64 m_num_entries; + int m_version; + + static int m_num_directories; + static int m_num_directories_bits; + static uint64_t m_total_size_bytes; + static int m_numa_high_bit; + + MemoryVector* m_ram; + SparseMemory* m_sparseMemory; + bool m_use_map; + int m_map_levels; }; -// Output operator declaration -ostream& operator<<(ostream& out, const DirectoryMemory& obj); - -// ******************* Definitions ******************* - -// Output operator definition -extern inline -ostream& operator<<(ostream& out, const DirectoryMemory& obj) +inline ostream& +operator<<(ostream& out, const DirectoryMemory& obj) { - obj.print(out); - out << flush; - return out; + obj.print(out); + out << flush; + return out; } -#endif //DIRECTORYMEMORY_H +#endif // __MEM_RUBY_SYSTEM_DIRECTORYMEMORY_HH__ |