BaseCPU.py revision 1366
12SN/Asimobj BaseCPU(SimObject):
211856Sbrandon.potter@amd.com    type = 'BaseCPU'
31762SN/A    abstract = True
42SN/A    icache = Param.BaseMem(NULL, "L1 instruction cache object")
52SN/A    dcache = Param.BaseMem(NULL, "L1 data cache object")
62SN/A
72SN/A    dtb = Param.AlphaDTB("Data TLB")
82SN/A    itb = Param.AlphaITB("Instruction TLB")
92SN/A    mem = Param.FunctionalMemory("memory")
102SN/A    system = Param.BaseSystem(Super, "system object")
112SN/A    workload = VectorParam.Process("processes to run")
122SN/A
132SN/A    max_insts_all_threads = Param.Counter(0,
142SN/A        "terminate when all threads have reached this inst count")
152SN/A    max_insts_any_thread = Param.Counter(0,
162SN/A        "terminate when any thread reaches this inst count")
172SN/A    max_loads_all_threads = Param.Counter(0,
182SN/A        "terminate when all threads have reached this load count")
192SN/A    max_loads_any_thread = Param.Counter(0,
202SN/A        "terminate when any thread reaches this load count")
212SN/A
222SN/A    defer_registration = Param.Bool(false,
232SN/A        "defer registration with system (for sampling)")
242SN/A
252SN/A    def check(self):
262SN/A        has_workload = self._hasvalue('workload')
272SN/A        has_dtb = self._hasvalue('dtb')
282665Ssaidi@eecs.umich.edu        has_itb = self._hasvalue('itb')
292665Ssaidi@eecs.umich.edu        has_mem = self._hasvalue('mem')
302665Ssaidi@eecs.umich.edu        has_system = self._hasvalue('system')
3111856Sbrandon.potter@amd.com
322SN/A        if has_workload:
332SN/A            self.dtb.disable = True
34360SN/A            self.itb.disable = True
35360SN/A            self.mem.disable = True
362SN/A            self.system.disable = True
3711854Sbrandon.potter@amd.com
3811854Sbrandon.potter@amd.com        if has_dtb or has_itb or has_mem or has_system:
3911800Sbrandon.potter@amd.com            self.workload.disable = True
404117Sgblack@eecs.umich.edu