def METHOD_NAME(self, board: AbstractBoard) -> None:
    if any(core.is_kvm_core() for core in self.get_cores()):
        board.kvm_vm = self.kvm_vm
        # To get the KVM CPUs to run on different host CPUs
        # Specify a different event queue for each CPU
        for i, core in enumerate(self.cores):
            for obj in core.get_simobject().descendants():
                obj.eventq_index = 0
            core.get_simobject().eventq_index = i + 1
        board.set_mem_mode(MemMode.ATOMIC_NONCACHING)
    elif isinstance(
        self.cores[0].get_simobject(),
        (BaseTimingSimpleCPU, BaseO3CPU, BaseMinorCPU),
    ):
        board.set_mem_mode(MemMode.TIMING)
    elif isinstance(
        self.cores[0].get_simobject(), BaseNonCachingSimpleCPU
    ):
        board.set_mem_mode(MemMode.ATOMIC_NONCACHING)
    elif isinstance(self.cores[0].get_simobject(), BaseAtomicSimpleCPU):
        if board.get_cache_hierarchy().is_ruby():
            warn(
                "Using an atomic core with Ruby will result in "
                "'atomic_noncaching' memory mode. This will skip caching "
                "completely."
            )
            board.set_mem_mode(MemMode.ATOMIC_NONCACHING)
        else:
            board.set_mem_mode(MemMode.ATOMIC)
    else:
        raise NotImplementedError