summaryrefslogtreecommitdiff
path: root/src/mem/ruby/system
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/ruby/system')
-rw-r--r--src/mem/ruby/system/DirectoryMemory.cc4
-rw-r--r--src/mem/ruby/system/DirectoryMemory.py4
-rw-r--r--src/mem/ruby/system/SparseMemory.cc7
-rw-r--r--src/mem/ruby/system/SparseMemory.hh2
4 files changed, 10 insertions, 7 deletions
diff --git a/src/mem/ruby/system/DirectoryMemory.cc b/src/mem/ruby/system/DirectoryMemory.cc
index 4a72dce33..c9d072c38 100644
--- a/src/mem/ruby/system/DirectoryMemory.cc
+++ b/src/mem/ruby/system/DirectoryMemory.cc
@@ -56,9 +56,7 @@ DirectoryMemory::init()
m_num_entries = m_size_bytes / RubySystem::getBlockSizeBytes();
if (m_use_map) {
- int entry_bits = floorLog2(m_num_entries);
- assert(entry_bits >= m_map_levels);
- m_sparseMemory = new SparseMemory(entry_bits, m_map_levels);
+ m_sparseMemory = new SparseMemory(m_map_levels);
} else {
m_entries = new Directory_Entry*[m_num_entries];
for (int i = 0; i < m_num_entries; i++)
diff --git a/src/mem/ruby/system/DirectoryMemory.py b/src/mem/ruby/system/DirectoryMemory.py
index 784ed628f..d3b6bc591 100644
--- a/src/mem/ruby/system/DirectoryMemory.py
+++ b/src/mem/ruby/system/DirectoryMemory.py
@@ -38,4 +38,6 @@ class RubyDirectoryMemory(SimObject):
size = Param.MemorySize("1GB", "capacity in bytes")
use_map = Param.Bool(False, "enable sparse memory")
map_levels = Param.Int(4, "sparse memory map levels")
- numa_high_bit = Param.Int(0, "numa high bit")
+ # the default value of the numa high bit is specified in the command line
+ # option and must be passed into the directory memory sim object
+ numa_high_bit = Param.Int("numa high bit")
diff --git a/src/mem/ruby/system/SparseMemory.cc b/src/mem/ruby/system/SparseMemory.cc
index 376852826..51d33798d 100644
--- a/src/mem/ruby/system/SparseMemory.cc
+++ b/src/mem/ruby/system/SparseMemory.cc
@@ -27,14 +27,17 @@
*/
#include "mem/ruby/system/SparseMemory.hh"
+#include "mem/ruby/system/System.hh"
using namespace std;
-SparseMemory::SparseMemory(int number_of_bits, int number_of_levels)
+SparseMemory::SparseMemory(int number_of_levels)
{
int even_level_bits;
int extra;
- m_total_number_of_bits = number_of_bits;
+ m_total_number_of_bits = RubySystem::getMemorySizeBits()
+ - RubySystem::getBlockSizeBits();;
+
m_number_of_levels = number_of_levels;
//
diff --git a/src/mem/ruby/system/SparseMemory.hh b/src/mem/ruby/system/SparseMemory.hh
index 0601a8ca5..78a3080a1 100644
--- a/src/mem/ruby/system/SparseMemory.hh
+++ b/src/mem/ruby/system/SparseMemory.hh
@@ -54,7 +54,7 @@ struct CurNextInfo
class SparseMemory
{
public:
- SparseMemory(int number_of_bits, int number_of_levels);
+ SparseMemory(int number_of_levels);
~SparseMemory();
void printConfig(std::ostream& out) { }