ruby: check for compatibility between mem size and num dirs
authorNilay Vaish <nilay@cs.wisc.edu>
Sat, 29 Jun 2013 02:36:11 +0000 (21:36 -0500)
committerNilay Vaish <nilay@cs.wisc.edu>
Sat, 29 Jun 2013 02:36:11 +0000 (21:36 -0500)
The configuration scripts provided for ruby assume that the available
physical memory is equally distributed amongst the directory controllers.
But there is no check to ensure this assumption has been adhered to. This
patch adds the required check.

configs/ruby/MESI_CMP_directory.py
configs/ruby/MI_example.py
configs/ruby/MOESI_CMP_directory.py
configs/ruby/MOESI_CMP_token.py
configs/ruby/MOESI_hammer.py
configs/ruby/Network_test.py

index 4128f87ad7844cf1dd8c1f2e870bac65deea7116..e263b4e5a1cb3680c9ed3fc7270af2ab53eb05b0 100644 (file)
@@ -142,6 +142,7 @@ def create_system(options, system, piobus, dma_ports, ruby_system):
 
     phys_mem_size = sum(map(lambda mem: mem.range.size(),
                             system.memories.unproxy(system)))
+    assert(phys_mem_size % options.num_dirs == 0)
     mem_module_size = phys_mem_size / options.num_dirs
 
     # Run each of the ruby memory controllers at a ratio of the frequency of
index 6bbd35ea7890669c458c1fd9a36d3c776c40274c..896a01a61e0d3063a92b5533b9e90c74d72e1d9f 100644 (file)
@@ -107,6 +107,7 @@ def create_system(options, system, piobus, dma_ports, ruby_system):
 
     phys_mem_size = sum(map(lambda mem: mem.range.size(),
                             system.memories.unproxy(system)))
+    assert(phys_mem_size % options.num_dirs == 0)
     mem_module_size = phys_mem_size / options.num_dirs
 
     # Run each of the ruby memory controllers at a ratio of the frequency of
index 81d04914c689ed8c35e2d99ca0a5265317df39da..bc1f7d6410104e2c88e116097974f49dd57819b8 100644 (file)
@@ -137,6 +137,7 @@ def create_system(options, system, piobus, dma_ports, ruby_system):
 
     phys_mem_size = sum(map(lambda mem: mem.range.size(),
                             system.memories.unproxy(system)))
+    assert(phys_mem_size % options.num_dirs == 0)
     mem_module_size = phys_mem_size / options.num_dirs
 
     # Run each of the ruby memory controllers at a ratio of the frequency of
index 9c2598a1dfd20a192be038d0c9f2fc2cca3377f1..4ede788a82e7b0b1cc382aa6de1579ced8ad2472 100644 (file)
@@ -158,6 +158,7 @@ def create_system(options, system, piobus, dma_ports, ruby_system):
 
     phys_mem_size = sum(map(lambda mem: mem.range.size(),
                             system.memories.unproxy(system)))
+    assert(phys_mem_size % options.num_dirs == 0)
     mem_module_size = phys_mem_size / options.num_dirs
 
     # Run each of the ruby memory controllers at a ratio of the frequency of
index 11ea579ea5454b99569b6a748bbc3a9d3828ce17..da8b004ee32e3754c5a628f5f14b3aa0c82c3301 100644 (file)
@@ -133,6 +133,7 @@ def create_system(options, system, piobus, dma_ports, ruby_system):
 
     phys_mem_size = sum(map(lambda mem: mem.range.size(),
                             system.memories.unproxy(system)))
+    assert(phys_mem_size % options.num_dirs == 0)
     mem_module_size = phys_mem_size / options.num_dirs
 
     #
index c4df4dddbd6986e506403a31895614df623d73af..d7b04cd313ecf926503e226adc1d32bd7876b993 100644 (file)
@@ -105,6 +105,7 @@ def create_system(options, system, piobus, dma_ports, ruby_system):
 
     phys_mem_size = sum(map(lambda mem: mem.range.size(),
                             system.memories.unproxy(system)))
+    assert(phys_mem_size % options.num_dirs == 0)
     mem_module_size = phys_mem_size / options.num_dirs
 
     # Run each of the ruby memory controllers at a ratio of the frequency of