diff --git a/src/python/gem5/components/cachehierarchies/chi/private_l1_cache_hierarchy.py b/src/python/gem5/components/cachehierarchies/chi/private_l1_cache_hierarchy.py index f3b7036e66..29df2a969c 100644 --- a/src/python/gem5/components/cachehierarchies/chi/private_l1_cache_hierarchy.py +++ b/src/python/gem5/components/cachehierarchies/chi/private_l1_cache_hierarchy.py @@ -36,6 +36,10 @@ from m5.objects import ( from m5.objects.SubSystem import SubSystem from gem5.coherence_protocol import CoherenceProtocol +from gem5.utils.requires import requires + +requires(coherence_protocol_required=CoherenceProtocol.CHI) + from gem5.components.boards.abstract_board import AbstractBoard from gem5.components.cachehierarchies.abstract_cache_hierarchy import ( AbstractCacheHierarchy, @@ -49,7 +53,6 @@ from gem5.components.cachehierarchies.ruby.topologies.simple_pt2pt import ( from gem5.components.processors.abstract_core import AbstractCore from gem5.isas import ISA from gem5.utils.override import overrides -from gem5.utils.requires import requires from .nodes.directory import SimpleDirectory from .nodes.dma_requestor import DMARequestor @@ -79,8 +82,6 @@ class PrivateL1CacheHierarchy(AbstractRubyCacheHierarchy): @overrides(AbstractCacheHierarchy) def incorporate_cache(self, board: AbstractBoard) -> None: - requires(coherence_protocol_required=CoherenceProtocol.CHI) - self.ruby_system = RubySystem() # Ruby's global network. diff --git a/src/python/gem5/components/cachehierarchies/ruby/mesi_three_level_cache_hierarchy.py b/src/python/gem5/components/cachehierarchies/ruby/mesi_three_level_cache_hierarchy.py index 039ba8fb7a..66fea95636 100644 --- a/src/python/gem5/components/cachehierarchies/ruby/mesi_three_level_cache_hierarchy.py +++ b/src/python/gem5/components/cachehierarchies/ruby/mesi_three_level_cache_hierarchy.py @@ -33,8 +33,11 @@ from m5.objects import ( ) from ....coherence_protocol import CoherenceProtocol -from ....isas import ISA from ....utils.requires import requires + +requires(coherence_protocol_required=CoherenceProtocol.MESI_THREE_LEVEL) + +from ....isas import ISA from ...boards.abstract_board import AbstractBoard from ..abstract_three_level_cache_hierarchy import ( AbstractThreeLevelCacheHierarchy, @@ -84,10 +87,6 @@ class MESIThreeLevelCacheHierarchy( self._num_l3_banks = num_l3_banks def incorporate_cache(self, board: AbstractBoard) -> None: - requires( - coherence_protocol_required=CoherenceProtocol.MESI_THREE_LEVEL - ) - cache_line_size = board.get_cache_line_size() self.ruby_system = RubySystem() diff --git a/src/python/gem5/components/cachehierarchies/ruby/mesi_two_level_cache_hierarchy.py b/src/python/gem5/components/cachehierarchies/ruby/mesi_two_level_cache_hierarchy.py index 083e4d43fe..004c2ff9d2 100644 --- a/src/python/gem5/components/cachehierarchies/ruby/mesi_two_level_cache_hierarchy.py +++ b/src/python/gem5/components/cachehierarchies/ruby/mesi_two_level_cache_hierarchy.py @@ -33,8 +33,11 @@ from m5.objects import ( ) from ....coherence_protocol import CoherenceProtocol -from ....isas import ISA from ....utils.requires import requires + +requires(coherence_protocol_required=CoherenceProtocol.MESI_TWO_LEVEL) + +from ....isas import ISA from ...boards.abstract_board import AbstractBoard from ..abstract_two_level_cache_hierarchy import AbstractTwoLevelCacheHierarchy from .abstract_ruby_cache_hierarchy import AbstractRubyCacheHierarchy @@ -80,8 +83,6 @@ class MESITwoLevelCacheHierarchy( self._num_l2_banks = num_l2_banks def incorporate_cache(self, board: AbstractBoard) -> None: - requires(coherence_protocol_required=CoherenceProtocol.MESI_TWO_LEVEL) - cache_line_size = board.get_cache_line_size() self.ruby_system = RubySystem() diff --git a/src/python/gem5/components/cachehierarchies/ruby/mi_example_cache_hierarchy.py b/src/python/gem5/components/cachehierarchies/ruby/mi_example_cache_hierarchy.py index 328fb0f998..478c793560 100644 --- a/src/python/gem5/components/cachehierarchies/ruby/mi_example_cache_hierarchy.py +++ b/src/python/gem5/components/cachehierarchies/ruby/mi_example_cache_hierarchy.py @@ -32,9 +32,12 @@ from m5.objects import ( ) from ....coherence_protocol import CoherenceProtocol +from ....utils.requires import requires + +requires(coherence_protocol_required=CoherenceProtocol.MI_EXAMPLE) + from ....isas import ISA from ....utils.override import overrides -from ....utils.requires import requires from ...boards.abstract_board import AbstractBoard from ..abstract_cache_hierarchy import AbstractCacheHierarchy from .abstract_ruby_cache_hierarchy import AbstractRubyCacheHierarchy @@ -62,8 +65,6 @@ class MIExampleCacheHierarchy(AbstractRubyCacheHierarchy): @overrides(AbstractCacheHierarchy) def incorporate_cache(self, board: AbstractBoard) -> None: - requires(coherence_protocol_required=CoherenceProtocol.MI_EXAMPLE) - self.ruby_system = RubySystem() # Ruby's global network.