Merge zizzer:/bk/newmem
[gem5.git] / src / python / m5 / objects / OzoneCPU.py
1 from m5.params import *
2 from m5 import build_env
3 from BaseCPU import BaseCPU
4
5 class DerivOzoneCPU(BaseCPU):
6 type = 'DerivOzoneCPU'
7
8 numThreads = Param.Unsigned("number of HW thread contexts")
9
10 checker = Param.BaseCPU("Checker CPU")
11 if build_env['FULL_SYSTEM']:
12 profile = Param.Latency('0ns', "trace the kernel stack")
13
14 icache_port = Port("Instruction Port")
15 dcache_port = Port("Data Port")
16
17 width = Param.Unsigned("Width")
18 frontEndWidth = Param.Unsigned("Front end width")
19 frontEndLatency = Param.Unsigned("Front end latency")
20 backEndWidth = Param.Unsigned("Back end width")
21 backEndSquashLatency = Param.Unsigned("Back end squash latency")
22 backEndLatency = Param.Unsigned("Back end latency")
23 maxInstBufferSize = Param.Unsigned("Maximum instruction buffer size")
24 maxOutstandingMemOps = Param.Unsigned("Maximum number of outstanding memory operations")
25 decodeToFetchDelay = Param.Unsigned("Decode to fetch delay")
26 renameToFetchDelay = Param.Unsigned("Rename to fetch delay")
27 iewToFetchDelay = Param.Unsigned("Issue/Execute/Writeback to fetch "
28 "delay")
29 commitToFetchDelay = Param.Unsigned("Commit to fetch delay")
30 fetchWidth = Param.Unsigned("Fetch width")
31
32 renameToDecodeDelay = Param.Unsigned("Rename to decode delay")
33 iewToDecodeDelay = Param.Unsigned("Issue/Execute/Writeback to decode "
34 "delay")
35 commitToDecodeDelay = Param.Unsigned("Commit to decode delay")
36 fetchToDecodeDelay = Param.Unsigned("Fetch to decode delay")
37 decodeWidth = Param.Unsigned("Decode width")
38
39 iewToRenameDelay = Param.Unsigned("Issue/Execute/Writeback to rename "
40 "delay")
41 commitToRenameDelay = Param.Unsigned("Commit to rename delay")
42 decodeToRenameDelay = Param.Unsigned("Decode to rename delay")
43 renameWidth = Param.Unsigned("Rename width")
44
45 commitToIEWDelay = Param.Unsigned("Commit to "
46 "Issue/Execute/Writeback delay")
47 renameToIEWDelay = Param.Unsigned("Rename to "
48 "Issue/Execute/Writeback delay")
49 issueToExecuteDelay = Param.Unsigned("Issue to execute delay (internal "
50 "to the IEW stage)")
51 issueWidth = Param.Unsigned("Issue width")
52 executeWidth = Param.Unsigned("Execute width")
53 executeIntWidth = Param.Unsigned("Integer execute width")
54 executeFloatWidth = Param.Unsigned("Floating point execute width")
55 executeBranchWidth = Param.Unsigned("Branch execute width")
56 executeMemoryWidth = Param.Unsigned("Memory execute width")
57
58 iewToCommitDelay = Param.Unsigned("Issue/Execute/Writeback to commit "
59 "delay")
60 renameToROBDelay = Param.Unsigned("Rename to reorder buffer delay")
61 commitWidth = Param.Unsigned("Commit width")
62 squashWidth = Param.Unsigned("Squash width")
63
64 predType = Param.String("Type of branch predictor ('local', 'tournament')")
65 localPredictorSize = Param.Unsigned("Size of local predictor")
66 localCtrBits = Param.Unsigned("Bits per counter")
67 localHistoryTableSize = Param.Unsigned("Size of local history table")
68 localHistoryBits = Param.Unsigned("Bits for the local history")
69 globalPredictorSize = Param.Unsigned("Size of global predictor")
70 globalCtrBits = Param.Unsigned("Bits per counter")
71 globalHistoryBits = Param.Unsigned("Bits of history")
72 choicePredictorSize = Param.Unsigned("Size of choice predictor")
73 choiceCtrBits = Param.Unsigned("Bits of choice counters")
74
75 BTBEntries = Param.Unsigned("Number of BTB entries")
76 BTBTagSize = Param.Unsigned("Size of the BTB tags, in bits")
77
78 RASSize = Param.Unsigned("RAS size")
79
80 LQEntries = Param.Unsigned("Number of load queue entries")
81 SQEntries = Param.Unsigned("Number of store queue entries")
82 lsqLimits = Param.Bool(True, "LSQ size limits dispatch")
83 LFSTSize = Param.Unsigned("Last fetched store table size")
84 SSITSize = Param.Unsigned("Store set ID table size")
85
86 numPhysIntRegs = Param.Unsigned("Number of physical integer registers")
87 numPhysFloatRegs = Param.Unsigned("Number of physical floating point "
88 "registers")
89 numIQEntries = Param.Unsigned("Number of instruction queue entries")
90 numROBEntries = Param.Unsigned("Number of reorder buffer entries")
91
92 instShiftAmt = Param.Unsigned("Number of bits to shift instructions by")
93
94 function_trace = Param.Bool(False, "Enable function trace")
95 function_trace_start = Param.Tick(0, "Cycle to start function trace")