changeset 04078b1214dd in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=04078b1214dd
description:
        Ruby: Make Address.hh independent of RubySystem
        This patch changes Address.hh so that it is not dependent on RubySystem.
        This dependence seems unecessary. All those functions that depend on
        RubySystem have been moved to Address.cc file.

diffstat:

 src/mem/ruby/common/Address.cc                  |  70 +++++++++++++++++++++++
 src/mem/ruby/common/Address.hh                  |  74 +-----------------------
 src/mem/ruby/filters/BlockBloomFilter.cc        |   1 +
 src/mem/ruby/filters/BulkBloomFilter.cc         |   1 +
 src/mem/ruby/filters/LSB_CountingBloomFilter.cc |   1 +
 src/mem/ruby/filters/MultiGrainBloomFilter.cc   |   1 +
 src/mem/ruby/filters/NonCountingBloomFilter.cc  |   1 +
 7 files changed, 80 insertions(+), 69 deletions(-)

diffs (239 lines):

diff -r 722a0d28ee83 -r 04078b1214dd src/mem/ruby/common/Address.cc
--- a/src/mem/ruby/common/Address.cc    Fri Feb 25 17:51:02 2011 -0600
+++ b/src/mem/ruby/common/Address.cc    Fri Feb 25 17:51:56 2011 -0600
@@ -27,6 +27,76 @@
  */
 
 #include "mem/ruby/common/Address.hh"
+#include "mem/ruby/system/System.hh"
+
+physical_address_t
+Address::getLineAddress() const
+{
+    return bitSelect(RubySystem::getBlockSizeBits(), ADDRESS_WIDTH);
+}
+
+physical_address_t
+Address::getOffset() const
+{
+    return bitSelect(0, RubySystem::getBlockSizeBits() - 1);
+}
+
+void
+Address::makeLineAddress()
+{
+    m_address = maskLowOrderBits(RubySystem::getBlockSizeBits());
+}
+
+// returns the next stride address based on line address
+void
+Address::makeNextStrideAddress(int stride)
+{
+    m_address = maskLowOrderBits(RubySystem::getBlockSizeBits())
+        + RubySystem::getBlockSizeBytes()*stride;
+}
+
+integer_t
+Address::memoryModuleIndex() const
+{
+    integer_t index =
+        bitSelect(RubySystem::getBlockSizeBits() +
+                  RubySystem::getMemorySizeBits(), ADDRESS_WIDTH);
+    assert (index >= 0);
+    return index;
+
+    // Index indexHighPortion =
+    //     address.bitSelect(MEMORY_SIZE_BITS - 1,
+    //                       PAGE_SIZE_BITS + NUMBER_OF_MEMORY_MODULE_BITS);
+    // Index indexLowPortion =
+    //     address.bitSelect(DATA_BLOCK_BITS, PAGE_SIZE_BITS - 1);
+    //
+    // Index index = indexLowPortion |
+    //     (indexHighPortion << (PAGE_SIZE_BITS - DATA_BLOCK_BITS));
+
+    /*
+      Round-robin mapping of addresses, at page size granularity
+
+ADDRESS_WIDTH    MEMORY_SIZE_BITS        PAGE_SIZE_BITS  DATA_BLOCK_BITS
+  |                    |                       |               |
+ \ /                  \ /                     \ /             \ /       0
+  -----------------------------------------------------------------------
+  |       unused        |xxxxxxxxxxxxxxx|       |xxxxxxxxxxxxxxx|       |
+  |                     |xxxxxxxxxxxxxxx|       |xxxxxxxxxxxxxxx|       |
+  -----------------------------------------------------------------------
+                        indexHighPortion         indexLowPortion
+                                        <------->
+                               NUMBER_OF_MEMORY_MODULE_BITS
+    */
+}
+
+void
+Address::print(std::ostream& out) const
+{
+    using namespace std;
+    out << "[" << hex << "0x" << m_address << "," << " line 0x"
+        << maskLowOrderBits(RubySystem::getBlockSizeBits()) << dec << "]"
+        << flush;
+}
 
 void
 Address::output(std::ostream& out) const
diff -r 722a0d28ee83 -r 04078b1214dd src/mem/ruby/common/Address.hh
--- a/src/mem/ruby/common/Address.hh    Fri Feb 25 17:51:02 2011 -0600
+++ b/src/mem/ruby/common/Address.hh    Fri Feb 25 17:51:56 2011 -0600
@@ -29,13 +29,13 @@
 #ifndef __MEM_RUBY_COMMON_ADDRESS_HH__
 #define __MEM_RUBY_COMMON_ADDRESS_HH__
 
+#include <cassert>
 #include <iomanip>
 
 #include "base/hashmap.hh"
 #include "mem/ruby/common/Global.hh"
 #include "mem/ruby/system/MachineID.hh"
 #include "mem/ruby/system/NodeID.hh"
-#include "mem/ruby/system/System.hh"
 
 const int ADDRESS_WIDTH = 64; // address width in bytes
 
@@ -67,31 +67,10 @@
     physical_address_t maskHighOrderBits(int number) const;
     physical_address_t shiftLowOrderBits(int number) const;
 
-    physical_address_t
-    getLineAddress() const
-    {
-        return bitSelect(RubySystem::getBlockSizeBits(), ADDRESS_WIDTH);
-    }
-
-    physical_address_t
-    getOffset() const
-    {
-        return bitSelect(0, RubySystem::getBlockSizeBits() - 1);
-    }
-
-    void
-    makeLineAddress()
-    {
-        m_address = maskLowOrderBits(RubySystem::getBlockSizeBits());
-    }
-
-    // returns the next stride address based on line address
-    void
-    makeNextStrideAddress(int stride)
-    {
-        m_address = maskLowOrderBits(RubySystem::getBlockSizeBits())
-            + RubySystem::getBlockSizeBytes()*stride;
-    }
+    physical_address_t getLineAddress() const;
+    physical_address_t getOffset() const;
+    void makeLineAddress();
+    void makeNextStrideAddress(int stride);
 
     int getBankSetNum() const;
     int getBankSetDist() const;
@@ -224,49 +203,6 @@
     return (m_address >> number);
 }
 
-inline integer_t
-Address::memoryModuleIndex() const
-{
-    integer_t index =
-        bitSelect(RubySystem::getBlockSizeBits() +
-                  RubySystem::getMemorySizeBits(), ADDRESS_WIDTH);
-    assert (index >= 0);
-    return index;
-
-    // Index indexHighPortion =
-    //     address.bitSelect(MEMORY_SIZE_BITS - 1,
-    //                       PAGE_SIZE_BITS + NUMBER_OF_MEMORY_MODULE_BITS);
-    // Index indexLowPortion =
-    //     address.bitSelect(DATA_BLOCK_BITS, PAGE_SIZE_BITS - 1);
-    //
-    // Index index = indexLowPortion |
-    //     (indexHighPortion << (PAGE_SIZE_BITS - DATA_BLOCK_BITS));
-
-    /*
-      Round-robin mapping of addresses, at page size granularity
-
-ADDRESS_WIDTH    MEMORY_SIZE_BITS        PAGE_SIZE_BITS  DATA_BLOCK_BITS
-  |                    |                       |               |
- \ /                  \ /                     \ /             \ /       0
-  -----------------------------------------------------------------------
-  |       unused        |xxxxxxxxxxxxxxx|       |xxxxxxxxxxxxxxx|       |
-  |                     |xxxxxxxxxxxxxxx|       |xxxxxxxxxxxxxxx|       |
-  -----------------------------------------------------------------------
-                        indexHighPortion         indexLowPortion
-                                        <------->
-                               NUMBER_OF_MEMORY_MODULE_BITS
-    */
-}
-
-inline void
-Address::print(std::ostream& out) const
-{
-    using namespace std;
-    out << "[" << hex << "0x" << m_address << "," << " line 0x"
-        << maskLowOrderBits(RubySystem::getBlockSizeBits()) << dec << "]"
-        << flush;
-}
-
 class Address;
 namespace __hash_namespace {
 template <> struct hash<Address>
diff -r 722a0d28ee83 -r 04078b1214dd src/mem/ruby/filters/BlockBloomFilter.cc
--- a/src/mem/ruby/filters/BlockBloomFilter.cc  Fri Feb 25 17:51:02 2011 -0600
+++ b/src/mem/ruby/filters/BlockBloomFilter.cc  Fri Feb 25 17:51:56 2011 -0600
@@ -29,6 +29,7 @@
 #include "base/intmath.hh"
 #include "base/str.hh"
 #include "mem/ruby/filters/BlockBloomFilter.hh"
+#include "mem/ruby/system/System.hh"
 
 using namespace std;
 
diff -r 722a0d28ee83 -r 04078b1214dd src/mem/ruby/filters/BulkBloomFilter.cc
--- a/src/mem/ruby/filters/BulkBloomFilter.cc   Fri Feb 25 17:51:02 2011 -0600
+++ b/src/mem/ruby/filters/BulkBloomFilter.cc   Fri Feb 25 17:51:56 2011 -0600
@@ -31,6 +31,7 @@
 #include "base/intmath.hh"
 #include "base/str.hh"
 #include "mem/ruby/filters/BulkBloomFilter.hh"
+#include "mem/ruby/system/System.hh"
 
 using namespace std;
 
diff -r 722a0d28ee83 -r 04078b1214dd 
src/mem/ruby/filters/LSB_CountingBloomFilter.cc
--- a/src/mem/ruby/filters/LSB_CountingBloomFilter.cc   Fri Feb 25 17:51:02 
2011 -0600
+++ b/src/mem/ruby/filters/LSB_CountingBloomFilter.cc   Fri Feb 25 17:51:56 
2011 -0600
@@ -29,6 +29,7 @@
 #include "base/intmath.hh"
 #include "base/str.hh"
 #include "mem/ruby/filters/LSB_CountingBloomFilter.hh"
+#include "mem/ruby/system/System.hh"
 
 using namespace std;
 
diff -r 722a0d28ee83 -r 04078b1214dd 
src/mem/ruby/filters/MultiGrainBloomFilter.cc
--- a/src/mem/ruby/filters/MultiGrainBloomFilter.cc     Fri Feb 25 17:51:02 
2011 -0600
+++ b/src/mem/ruby/filters/MultiGrainBloomFilter.cc     Fri Feb 25 17:51:56 
2011 -0600
@@ -29,6 +29,7 @@
 #include "base/intmath.hh"
 #include "base/str.hh"
 #include "mem/ruby/filters/MultiGrainBloomFilter.hh"
+#include "mem/ruby/system/System.hh"
 
 using namespace std;
 
diff -r 722a0d28ee83 -r 04078b1214dd 
src/mem/ruby/filters/NonCountingBloomFilter.cc
--- a/src/mem/ruby/filters/NonCountingBloomFilter.cc    Fri Feb 25 17:51:02 
2011 -0600
+++ b/src/mem/ruby/filters/NonCountingBloomFilter.cc    Fri Feb 25 17:51:56 
2011 -0600
@@ -29,6 +29,7 @@
 #include "base/intmath.hh"
 #include "base/str.hh"
 #include "mem/ruby/filters/NonCountingBloomFilter.hh"
+#include "mem/ruby/system/System.hh"
 
 using namespace std;
 
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to