284398b0eaaaef94ec0df589581f614c676f497c
[gem5.git] / python / m5 / objects / AlphaFullCPU.py
1 from m5 import *
2 from BaseCPU import BaseCPU
3
4 class DerivAlphaFullCPU(BaseCPU):
5 type = 'DerivAlphaFullCPU'
6
7 numThreads = Param.Unsigned("number of HW thread contexts")
8
9 if not build_env['FULL_SYSTEM']:
10 mem = Param.FunctionalMemory(NULL, "memory")
11
12 cachePorts = Param.Unsigned("Cache Ports")
13
14 decodeToFetchDelay = Param.Unsigned("Decode to fetch delay")
15 renameToFetchDelay = Param.Unsigned("Rename to fetch delay")
16 iewToFetchDelay = Param.Unsigned("Issue/Execute/Writeback to fetch "
17 "delay")
18 commitToFetchDelay = Param.Unsigned("Commit to fetch delay")
19 fetchWidth = Param.Unsigned("Fetch width")
20
21 renameToDecodeDelay = Param.Unsigned("Rename to decode delay")
22 iewToDecodeDelay = Param.Unsigned("Issue/Execute/Writeback to decode "
23 "delay")
24 commitToDecodeDelay = Param.Unsigned("Commit to decode delay")
25 fetchToDecodeDelay = Param.Unsigned("Fetch to decode delay")
26 decodeWidth = Param.Unsigned("Decode width")
27
28 iewToRenameDelay = Param.Unsigned("Issue/Execute/Writeback to rename "
29 "delay")
30 commitToRenameDelay = Param.Unsigned("Commit to rename delay")
31 decodeToRenameDelay = Param.Unsigned("Decode to rename delay")
32 renameWidth = Param.Unsigned("Rename width")
33
34 commitToIEWDelay = Param.Unsigned("Commit to "
35 "Issue/Execute/Writeback delay")
36 renameToIEWDelay = Param.Unsigned("Rename to "
37 "Issue/Execute/Writeback delay")
38 issueToExecuteDelay = Param.Unsigned("Issue to execute delay (internal "
39 "to the IEW stage)")
40 issueWidth = Param.Unsigned("Issue width")
41 executeWidth = Param.Unsigned("Execute width")
42 executeIntWidth = Param.Unsigned("Integer execute width")
43 executeFloatWidth = Param.Unsigned("Floating point execute width")
44 executeBranchWidth = Param.Unsigned("Branch execute width")
45 executeMemoryWidth = Param.Unsigned("Memory execute width")
46 fuPool = Param.FUPool(NULL, "Functional Unit pool")
47
48 iewToCommitDelay = Param.Unsigned("Issue/Execute/Writeback to commit "
49 "delay")
50 renameToROBDelay = Param.Unsigned("Rename to reorder buffer delay")
51 commitWidth = Param.Unsigned("Commit width")
52 squashWidth = Param.Unsigned("Squash width")
53
54 localPredictorSize = Param.Unsigned("Size of local predictor")
55 localCtrBits = Param.Unsigned("Bits per counter")
56 localHistoryTableSize = Param.Unsigned("Size of local history table")
57 localHistoryBits = Param.Unsigned("Bits for the local history")
58 globalPredictorSize = Param.Unsigned("Size of global predictor")
59 globalCtrBits = Param.Unsigned("Bits per counter")
60 globalHistoryBits = Param.Unsigned("Bits of history")
61 choicePredictorSize = Param.Unsigned("Size of choice predictor")
62 choiceCtrBits = Param.Unsigned("Bits of choice counters")
63
64 BTBEntries = Param.Unsigned("Number of BTB entries")
65 BTBTagSize = Param.Unsigned("Size of the BTB tags, in bits")
66
67 RASSize = Param.Unsigned("RAS size")
68
69 LQEntries = Param.Unsigned("Number of load queue entries")
70 SQEntries = Param.Unsigned("Number of store queue entries")
71 LFSTSize = Param.Unsigned("Last fetched store table size")
72 SSITSize = Param.Unsigned("Store set ID table size")
73
74 numRobs = Param.Unsigned("Number of Reorder Buffers");
75
76 numPhysIntRegs = Param.Unsigned("Number of physical integer registers")
77 numPhysFloatRegs = Param.Unsigned("Number of physical floating point "
78 "registers")
79 numIQEntries = Param.Unsigned("Number of instruction queue entries")
80 numROBEntries = Param.Unsigned("Number of reorder buffer entries")
81
82 instShiftAmt = Param.Unsigned("Number of bits to shift instructions by")
83
84 function_trace = Param.Bool(False, "Enable function trace")
85 function_trace_start = Param.Tick(0, "Cycle to start function trace")
86
87 smtNumFetchingThreads = Param.Unsigned("SMT Number of Fetching Threads")
88 smtFetchPolicy = Param.String("SMT Fetch policy")
89 smtLSQPolicy = Param.String("SMT LSQ Sharing Policy")
90 smtLSQThreshold = Param.String("SMT LSQ Threshold Sharing Parameter")
91 smtIQPolicy = Param.String("SMT IQ Sharing Policy")
92 smtIQThreshold = Param.String("SMT IQ Threshold Sharing Parameter")
93 smtROBPolicy = Param.String("SMT ROB Sharing Policy")
94 smtROBThreshold = Param.String("SMT ROB Threshold Sharing Parameter")
95 smtCommitPolicy = Param.String("SMT Commit Policy")