ruby: some small changes
authorNilay Vaish <nilay@cs.wisc.edu>
Sat, 4 Jan 2014 06:03:30 +0000 (00:03 -0600)
committerNilay Vaish <nilay@cs.wisc.edu>
Sat, 4 Jan 2014 06:03:30 +0000 (00:03 -0600)
configs/ruby/Ruby.py
src/mem/ruby/common/NetDest.cc
src/mem/ruby/common/NetDest.hh
src/mem/ruby/system/DirectoryMemory.cc

index 0cd63b4f98cda35e11bbcbf890757b008d55d797..f8ca597345c3d64e33c59e2e70914978daadda1d 100644 (file)
@@ -167,7 +167,6 @@ def create_system(options, system, piobus = None, dma_ports = []):
     #
     total_mem_size = MemorySize('0B')
 
-    dir_bits = int(math.log(options.num_dirs, 2))
     ruby.block_size_bytes = options.cacheline_size
     block_size_bits = int(math.log(options.cacheline_size, 2))
 
@@ -177,6 +176,7 @@ def create_system(options, system, piobus = None, dma_ports = []):
         # if the numa_bit is not specified, set the directory bits as the
         # lowest bits above the block offset bits, and the numa_bit as the
         # highest of those directory bits
+        dir_bits = int(math.log(options.num_dirs, 2))
         numa_bit = block_size_bits + dir_bits - 1
 
     for dir_cntrl in dir_cntrls:
index 97788345ceb5ebab66bc788c7b93542ccf0a16f0..f7508f1da0aa3ec953dac48c8b524a0dc64cc951 100644 (file)
@@ -275,3 +275,13 @@ NetDest::print(std::ostream& out) const
     out << "]";
 }
 
+bool
+NetDest::isEqual(const NetDest& n) const
+{
+    assert(m_bits.size() == n.m_bits.size());
+    for (unsigned int i = 0; i < m_bits.size(); ++i) {
+        if (!m_bits[i].isEqual(n.m_bits[i]))
+            return false;
+    }
+    return true;
+}
index 5ad1b61001933b5c6adb85e6187873cc52e3b980..0e113c26917d48373839cda3962a58c0206ff145 100644 (file)
@@ -66,7 +66,7 @@ class NetDest
     void broadcast();
     void broadcast(MachineType machine);
     int count() const;
-    bool isEqual(const NetDest& netDest);
+    bool isEqual(const NetDest& netDest) const;
 
     // return the logical OR of this netDest and orNetDest
     NetDest OR(const NetDest& orNetDest) const;
index 1cf02091084288d0d4b129214e3a331d98a8931b..cb1bf6f90841edace56166f19b538ff67de7b598 100644 (file)
@@ -68,7 +68,7 @@ DirectoryMemory::init()
     }
 
     m_num_directories++;
-    m_num_directories_bits = floorLog2(m_num_directories);
+    m_num_directories_bits = ceilLog2(m_num_directories);
     m_total_size_bytes += m_size_bytes;
 
     if (m_numa_high_bit == 0) {