From: Nilay Vaish Date: Sat, 29 Jun 2013 02:36:11 +0000 (-0500) Subject: ruby: check for compatibility between mem size and num dirs X-Git-Tag: stable_2013_10_14~6 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=62a93f0bf03385c5ed298b740162b06022f2e2ee;p=gem5.git ruby: check for compatibility between mem size and num dirs 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. --- diff --git a/configs/ruby/MESI_CMP_directory.py b/configs/ruby/MESI_CMP_directory.py index 4128f87ad..e263b4e5a 100644 --- a/configs/ruby/MESI_CMP_directory.py +++ b/configs/ruby/MESI_CMP_directory.py @@ -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 diff --git a/configs/ruby/MI_example.py b/configs/ruby/MI_example.py index 6bbd35ea7..896a01a61 100644 --- a/configs/ruby/MI_example.py +++ b/configs/ruby/MI_example.py @@ -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 diff --git a/configs/ruby/MOESI_CMP_directory.py b/configs/ruby/MOESI_CMP_directory.py index 81d04914c..bc1f7d641 100644 --- a/configs/ruby/MOESI_CMP_directory.py +++ b/configs/ruby/MOESI_CMP_directory.py @@ -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 diff --git a/configs/ruby/MOESI_CMP_token.py b/configs/ruby/MOESI_CMP_token.py index 9c2598a1d..4ede788a8 100644 --- a/configs/ruby/MOESI_CMP_token.py +++ b/configs/ruby/MOESI_CMP_token.py @@ -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 diff --git a/configs/ruby/MOESI_hammer.py b/configs/ruby/MOESI_hammer.py index 11ea579ea..da8b004ee 100644 --- a/configs/ruby/MOESI_hammer.py +++ b/configs/ruby/MOESI_hammer.py @@ -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 # diff --git a/configs/ruby/Network_test.py b/configs/ruby/Network_test.py index c4df4dddb..d7b04cd31 100644 --- a/configs/ruby/Network_test.py +++ b/configs/ruby/Network_test.py @@ -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