gem5.coherence_protocol module

Specifies the coherence protocol enum

class gem5.coherence_protocol.CoherenceProtocol(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

AMD_MOESI_HAMMER = 'AMD_MOESI_hammer'
CHI = 'CHI'
GARNET_STANDALONE = 'Garnet_standalone'
GPU_VIPER = 'GPU_VIPER'
MESI_THREE_LEVEL = 'MESI_Three_Level'
MESI_THREE_LEVEL_HTM = 'MESI_Three_Level_HTM'
MESI_TWO_LEVEL = 'MESI_Two_Level'
MI_EXAMPLE = 'MI_example'
MOESI_AMD_BASE = 'MOESI_AMD_Base'
MOESI_CMP_DIRECTORY = 'MOESI_CMP_directory'
MOESI_CMP_TOKEN = 'MOESI_CMP_token'
MSI = 'MSI'
NULL = 'no protocol (classic only)'
gem5.coherence_protocol.get_protocol_from_str(protocol_str: str) CoherenceProtocol

Will return the correct enum given the input string. This is matched on the enum’s value. E.g., “CHI” will return CoherenceProtocol.CHI. Throws an exception if the input string is invalid.

get_protocols_str_set() can be used to determine the valid strings.

This is for parsing text inputs that specify protocol targets.

Parameters:

input – The protocol to return, as a string. Case-insensitive.

gem5.coherence_protocol.get_protocols_str_set()