O3CPU.py (8733:64a7bf8fa56c) O3CPU.py (8793:5f25086326ac)
1# Copyright (c) 2005-2007 The Regents of The University of Michigan
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met: redistributions of source code must retain the above copyright
7# notice, this list of conditions and the following disclaimer;
8# redistributions in binary form must reproduce the above copyright

--- 26 unchanged lines hidden (view full) ---

35if buildEnv['USE_CHECKER']:
36 from O3Checker import O3Checker
37
38class DerivO3CPU(BaseCPU):
39 type = 'DerivO3CPU'
40 activity = Param.Unsigned(0, "Initial count")
41
42 if buildEnv['USE_CHECKER']:
1# Copyright (c) 2005-2007 The Regents of The University of Michigan
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met: redistributions of source code must retain the above copyright
7# notice, this list of conditions and the following disclaimer;
8# redistributions in binary form must reproduce the above copyright

--- 26 unchanged lines hidden (view full) ---

35if buildEnv['USE_CHECKER']:
36 from O3Checker import O3Checker
37
38class DerivO3CPU(BaseCPU):
39 type = 'DerivO3CPU'
40 activity = Param.Unsigned(0, "Initial count")
41
42 if buildEnv['USE_CHECKER']:
43 if not buildEnv['FULL_SYSTEM']:
44 # FIXME: Shouldn't need to derefernce Parent.workload
45 # Somewhere in the param parsing code
46 # src/python/m5/params.py is and error that
47 # has trouble converting the workload parameter properly.
48 checker = Param.BaseCPU(O3Checker(workload=Parent.workload[0],
49 exitOnError=False,
50 updateOnError=True,
51 warnOnlyOnLoadError=True),
52 "checker")
53 else:
54 checker = Param.BaseCPU(O3Checker(exitOnError=False,
55 updateOnError=True,
56 warnOnlyOnLoadError=True),
57 "checker")
43 checker = Param.BaseCPU(O3Checker(workload=Parent.workload,
44 exitOnError=False,
45 updateOnError=True,
46 warnOnlyOnLoadError=False),
47 "checker")
58 checker.itb = Parent.itb
59 checker.dtb = Parent.dtb
60
61 cachePorts = Param.Unsigned(200, "Cache Ports")
48 checker.itb = Parent.itb
49 checker.dtb = Parent.dtb
50
51 cachePorts = Param.Unsigned(200, "Cache Ports")
52 icache_port = Port("Instruction Port")
53 dcache_port = Port("Data Port")
54 _cached_ports = BaseCPU._cached_ports + ['icache_port', 'dcache_port']
62
63 decodeToFetchDelay = Param.Unsigned(1, "Decode to fetch delay")
64 renameToFetchDelay = Param.Unsigned(1 ,"Rename to fetch delay")
65 iewToFetchDelay = Param.Unsigned(1, "Issue/Execute/Writeback to fetch "
66 "delay")
67 commitToFetchDelay = Param.Unsigned(1, "Commit to fetch delay")
68 fetchWidth = Param.Unsigned(8, "Fetch width")
69

--- 74 unchanged lines hidden (view full) ---

144 smtLSQPolicy = Param.String('Partitioned', "SMT LSQ Sharing Policy")
145 smtLSQThreshold = Param.Int(100, "SMT LSQ Threshold Sharing Parameter")
146 smtIQPolicy = Param.String('Partitioned', "SMT IQ Sharing Policy")
147 smtIQThreshold = Param.Int(100, "SMT IQ Threshold Sharing Parameter")
148 smtROBPolicy = Param.String('Partitioned', "SMT ROB Sharing Policy")
149 smtROBThreshold = Param.Int(100, "SMT ROB Threshold Sharing Parameter")
150 smtCommitPolicy = Param.String('RoundRobin', "SMT Commit Policy")
151
55
56 decodeToFetchDelay = Param.Unsigned(1, "Decode to fetch delay")
57 renameToFetchDelay = Param.Unsigned(1 ,"Rename to fetch delay")
58 iewToFetchDelay = Param.Unsigned(1, "Issue/Execute/Writeback to fetch "
59 "delay")
60 commitToFetchDelay = Param.Unsigned(1, "Commit to fetch delay")
61 fetchWidth = Param.Unsigned(8, "Fetch width")
62

--- 74 unchanged lines hidden (view full) ---

137 smtLSQPolicy = Param.String('Partitioned', "SMT LSQ Sharing Policy")
138 smtLSQThreshold = Param.Int(100, "SMT LSQ Threshold Sharing Parameter")
139 smtIQPolicy = Param.String('Partitioned', "SMT IQ Sharing Policy")
140 smtIQThreshold = Param.Int(100, "SMT IQ Threshold Sharing Parameter")
141 smtROBPolicy = Param.String('Partitioned', "SMT ROB Sharing Policy")
142 smtROBThreshold = Param.Int(100, "SMT ROB Threshold Sharing Parameter")
143 smtCommitPolicy = Param.String('RoundRobin', "SMT Commit Policy")
144
152 needsTSO = Param.Bool(buildEnv['TARGET_ISA'] == 'x86',
153 "Enable TSO Memory model")
145 def addPrivateSplitL1Caches(self, ic, dc, iwc = None, dwc = None):
146 BaseCPU.addPrivateSplitL1Caches(self, ic, dc, iwc, dwc)
147 self.icache.tgts_per_mshr = 20
148 self.dcache.tgts_per_mshr = 20