summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configs/ruby/Ruby.py2
-rw-r--r--src/mem/ruby/common/NetDest.cc10
-rw-r--r--src/mem/ruby/common/NetDest.hh2
-rw-r--r--src/mem/ruby/system/DirectoryMemory.cc2
4 files changed, 13 insertions, 3 deletions
diff --git a/configs/ruby/Ruby.py b/configs/ruby/Ruby.py
index 0cd63b4f9..f8ca59734 100644
--- a/configs/ruby/Ruby.py
+++ b/configs/ruby/Ruby.py
@@ -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:
diff --git a/src/mem/ruby/common/NetDest.cc b/src/mem/ruby/common/NetDest.cc
index 97788345c..f7508f1da 100644
--- a/src/mem/ruby/common/NetDest.cc
+++ b/src/mem/ruby/common/NetDest.cc
@@ -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;
+}
diff --git a/src/mem/ruby/common/NetDest.hh b/src/mem/ruby/common/NetDest.hh
index 5ad1b6100..0e113c269 100644
--- a/src/mem/ruby/common/NetDest.hh
+++ b/src/mem/ruby/common/NetDest.hh
@@ -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;
diff --git a/src/mem/ruby/system/DirectoryMemory.cc b/src/mem/ruby/system/DirectoryMemory.cc
index 1cf020910..cb1bf6f90 100644
--- a/src/mem/ruby/system/DirectoryMemory.cc
+++ b/src/mem/ruby/system/DirectoryMemory.cc
@@ -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) {