diff --git a/configs/common/Options.py b/configs/common/Options.py index ff4acbe371..1941875bc2 100644 --- a/configs/common/Options.py +++ b/configs/common/Options.py @@ -85,6 +85,10 @@ parser.add_option("--work-end-checkpoint-count", action="store", type="int", help="checkpoint at specified work end count") parser.add_option("--work-cpus-checkpoint-count", action="store", type="int", help="checkpoint and exit when active cpu count is reached") +parser.add_option("--restore-with-cpu", action="store", type="choice", + default="atomic", choices = ["atomic", "timing", + "detailed", "inorder"], + help = "cpu type for restoring from a checkpoint") # CPU Switching - default switch model goes from a checkpoint diff --git a/configs/common/Simulation.py b/configs/common/Simulation.py index 1897fa8cbc..434fe8369c 100644 --- a/configs/common/Simulation.py +++ b/configs/common/Simulation.py @@ -60,7 +60,15 @@ def setCPUClass(options): test_mem_mode = 'atomic' if not atomic: - if options.checkpoint_restore != None or options.fast_forward: + if options.checkpoint_restore != None: + if options.restore_with_cpu != options.cpu_type: + CPUClass = TmpClass + class TmpClass(AtomicSimpleCPU): pass + else: + if options.restore_with_cpu != "atomic": + test_mem_mode = 'timing' + + elif options.fast_forward: CPUClass = TmpClass class TmpClass(AtomicSimpleCPU): pass else: