3 #ifndef __CPU_OZONE_SIMPLE_PARAMS_HH__
4 #define __CPU_OZONE_SIMPLE_PARAMS_HH__
6 #include "cpu/ozone/cpu.hh"
12 class FunctionalMemory;
19 * This file defines the parameters that will be used for the OzoneCPU.
20 * This must be defined externally so that the Impl can have a params class
21 * defined that it can pass to all of the individual stages.
24 class SimpleParams : public BaseCPU::Params
29 AlphaITB *itb; AlphaDTB *dtb;
31 std::vector<Process *> workload;
38 FunctionalMemory *mem;
43 MemInterface *icacheInterface;
44 MemInterface *dcacheInterface;
48 unsigned frontEndWidth;
49 unsigned backEndWidth;
50 unsigned backEndSquashLatency;
51 unsigned backEndLatency;
52 unsigned maxInstBufferSize;
53 unsigned numPhysicalRegs;
54 unsigned maxOutstandingMemOps;
58 unsigned decodeToFetchDelay;
59 unsigned renameToFetchDelay;
60 unsigned iewToFetchDelay;
61 unsigned commitToFetchDelay;
67 unsigned renameToDecodeDelay;
68 unsigned iewToDecodeDelay;
69 unsigned commitToDecodeDelay;
70 unsigned fetchToDecodeDelay;
76 unsigned iewToRenameDelay;
77 unsigned commitToRenameDelay;
78 unsigned decodeToRenameDelay;
84 unsigned commitToIEWDelay;
85 unsigned renameToIEWDelay;
86 unsigned issueToExecuteDelay;
88 unsigned executeWidth;
89 unsigned executeIntWidth;
90 unsigned executeFloatWidth;
91 unsigned executeBranchWidth;
92 unsigned executeMemoryWidth;
98 unsigned iewToCommitDelay;
99 unsigned renameToROBDelay;
100 unsigned commitWidth;
101 unsigned squashWidth;
104 // Branch predictor (BP & BTB)
106 unsigned localPredictorSize;
107 unsigned localCtrBits;
108 unsigned localHistoryTableSize;
109 unsigned localHistoryBits;
110 unsigned globalPredictorSize;
111 unsigned globalCtrBits;
112 unsigned globalHistoryBits;
113 unsigned choicePredictorSize;
114 unsigned choiceCtrBits;
136 unsigned numPhysIntRegs;
137 unsigned numPhysFloatRegs;
138 unsigned numIQEntries;
139 unsigned numROBEntries;
141 bool decoupledFrontEnd;
146 unsigned smtNumFetchingThreads;
148 std::string smtFetchPolicy;
150 std::string smtIQPolicy;
151 unsigned smtIQThreshold;
153 std::string smtLSQPolicy;
154 unsigned smtLSQThreshold;
156 std::string smtCommitPolicy;
158 std::string smtROBPolicy;
159 unsigned smtROBThreshold;
161 // Probably can get this from somewhere.
162 unsigned instShiftAmt;
165 #endif // __CPU_OZONE_SIMPLE_PARAMS_HH__