mem-ruby: changes to MESIThreeLevel, MIExample, OctopiCache

This commit changes MESIThreeLevel, MIExample, and OctopiCache
so they work with this PR. It also adds MESIThreeLevel and
OctopiCache to the testlib tests.
This commit is contained in:
Erin Le
2024-10-31 15:20:29 -07:00
committed by Bobby R. Bruce
parent 8fe1228f3e
commit 2ee40f1c11
11 changed files with 109 additions and 31 deletions

View File

@@ -151,6 +151,39 @@ def cache_factory(cache_class: str):
size="16KiB",
assoc=8,
)
elif cache_class == "MESIThreeLevel":
from gem5.components.cachehierarchies.ruby.mesi_three_level_cache_hierarchy import (
MESIThreeLevelCacheHierarchy,
)
return MESIThreeLevelCacheHierarchy(
l1i_size="32KiB",
l1i_assoc="8",
l1d_size="32KiB",
l1d_assoc="8",
l2_size="256KiB",
l2_assoc="4",
l3_size="16MiB",
l3_assoc="16",
num_l3_banks=1,
)
elif cache_class == "OctopiCache":
from gem5.components.cachehierarchies.ruby.caches.prebuilt.octopi_cache.octopi import (
OctopiCache,
)
return OctopiCache(
l1i_size="32KiB",
l1i_assoc=8,
l1d_size="32KiB",
l1d_assoc=8,
l2_size="256KiB",
l2_assoc=4,
l3_size="16MiB",
l3_assoc=16,
num_core_complexes=1,
is_fullsystem=False,
)
else:
raise ValueError(f"The cache class {cache_class} is not supported.")
@@ -188,6 +221,8 @@ parser.add_argument(
"MESITwoLevel",
"MIExample",
"CHIL1",
"MESIThreeLevel",
"OctopiCache",
],
)

View File

@@ -77,13 +77,23 @@ def test_memory(
config_args=[generator, generator_cores, cache, module]
+ [memory]
+ list(args),
valid_isas=(constants.all_compiled_tag,),
valid_isas=(constants.null_all_ruby,),
valid_hosts=constants.supported_hosts,
length=constants.quick_tag,
)
cache_classes = ["NoCache", "PrivateL1", "PrivateL1PrivateL2", "MESITwoLevel"]
cache_classes = [
"NoCache",
"PrivateL1",
"PrivateL1PrivateL2",
"MESITwoLevel",
"MIExample",
"CHIL1",
"MESIThreeLevel",
"OctopiCache",
]
memory_classes = [
"SingleChannelDDR3_1600",
"SingleChannelDDR3_2133",