BaseCPU.py revision 1366
1simobj BaseCPU(SimObject):
2    type = 'BaseCPU'
3    abstract = True
4    icache = Param.BaseMem(NULL, "L1 instruction cache object")
5    dcache = Param.BaseMem(NULL, "L1 data cache object")
6
7    dtb = Param.AlphaDTB("Data TLB")
8    itb = Param.AlphaITB("Instruction TLB")
9    mem = Param.FunctionalMemory("memory")
10    system = Param.BaseSystem(Super, "system object")
11    workload = VectorParam.Process("processes to run")
12
13    max_insts_all_threads = Param.Counter(0,
14        "terminate when all threads have reached this inst count")
15    max_insts_any_thread = Param.Counter(0,
16        "terminate when any thread reaches this inst count")
17    max_loads_all_threads = Param.Counter(0,
18        "terminate when all threads have reached this load count")
19    max_loads_any_thread = Param.Counter(0,
20        "terminate when any thread reaches this load count")
21
22    defer_registration = Param.Bool(false,
23        "defer registration with system (for sampling)")
24
25    def check(self):
26        has_workload = self._hasvalue('workload')
27        has_dtb = self._hasvalue('dtb')
28        has_itb = self._hasvalue('itb')
29        has_mem = self._hasvalue('mem')
30        has_system = self._hasvalue('system')
31
32        if has_workload:
33            self.dtb.disable = True
34            self.itb.disable = True
35            self.mem.disable = True
36            self.system.disable = True
37
38        if has_dtb or has_itb or has_mem or has_system:
39            self.workload.disable = True
40