O3CPU.py revision 2294
1from m5 import * 2from BaseCPU import BaseCPU 3 4class 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") 96