gem5.components.memory.abstract_memory_system module

class gem5.components.memory.abstract_memory_system.AbstractMemorySystem

Bases: SubSystem

abstract = False
cxx_exports = []
cxx_extra_bases = []
cxx_param_exports = []
cxx_template_params = []
abstract get_mem_interfaces() List[MemInterface]

Get all memory interfaces in this memory system. Useful when creating physical memory objects.

abstract get_mem_ports() Sequence[Tuple[AddrRange, Port]]

Get the ports to connect this memory system to the cache.

abstract get_memory_controllers() List[MemCtrl]

Get all of the memory controllers in this memory system.

abstract get_size() int

Returns the total size of the memory system.

abstract get_uninterleaved_range() List[AddrRange]

Returns the range of the memory system without interleaving. This is useful when other components in the system want to interleave the memory range different to how the memory has interleaved them.

abstract incorporate_memory(board: AbstractBoard) None

This function completes all of the necessary steps to add this memory system to the board.

abstract set_memory_range(ranges: List[AddrRange]) None

Set the total range for this memory system.

May pass multiple non-overlapping ranges. The total size of the ranges should match the size of the memory.

If this memory system is incompatible with the ranges, an exception will be raised.