O3CPU.py revision 2362
1from m5 import * 2from BaseCPU import BaseCPU 3 4class DerivAlphaFullCPU(BaseCPU): 5 type = 'DerivAlphaFullCPU' 6 activity = Param.Unsigned("Initial count") 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 checker = Param.BaseCPU(NULL, "checker") 13 if build_env['FULL_SYSTEM']: 14 profile = Param.Latency('0ns', "trace the kernel stack") 15 16 cachePorts = Param.Unsigned("Cache Ports") 17 18 decodeToFetchDelay = Param.Unsigned("Decode to fetch delay") 19 renameToFetchDelay = Param.Unsigned("Rename to fetch delay") 20 iewToFetchDelay = Param.Unsigned("Issue/Execute/Writeback to fetch " 21 "delay") 22 commitToFetchDelay = Param.Unsigned("Commit to fetch delay") 23 fetchWidth = Param.Unsigned("Fetch width") 24 25 renameToDecodeDelay = Param.Unsigned("Rename to decode delay") 26 iewToDecodeDelay = Param.Unsigned("Issue/Execute/Writeback to decode " 27 "delay") 28 commitToDecodeDelay = Param.Unsigned("Commit to decode delay") 29 fetchToDecodeDelay = Param.Unsigned("Fetch to decode delay") 30 decodeWidth = Param.Unsigned("Decode width") 31 32 iewToRenameDelay = Param.Unsigned("Issue/Execute/Writeback to rename " 33 "delay") 34 commitToRenameDelay = Param.Unsigned("Commit to rename delay") 35 decodeToRenameDelay = Param.Unsigned("Decode to rename delay") 36 renameWidth = Param.Unsigned("Rename width") 37 38 commitToIEWDelay = Param.Unsigned("Commit to " 39 "Issue/Execute/Writeback delay") 40 renameToIEWDelay = Param.Unsigned("Rename to " 41 "Issue/Execute/Writeback delay") 42 issueToExecuteDelay = Param.Unsigned("Issue to execute delay (internal " 43 "to the IEW stage)") 44 dispatchWidth = Param.Unsigned(8, "Dispatch width") 45 issueWidth = Param.Unsigned(8, "Issue width") 46 wbWidth = Param.Unsigned(8, "Writeback width") 47 wbDepth = Param.Unsigned(1, "Writeback depth") 48 fuPool = Param.FUPool(NULL, "Functional Unit pool") 49 50 iewToCommitDelay = Param.Unsigned("Issue/Execute/Writeback to commit " 51 "delay") 52 renameToROBDelay = Param.Unsigned("Rename to reorder buffer delay") 53 commitWidth = Param.Unsigned("Commit width") 54 squashWidth = Param.Unsigned("Squash width") 55 trapLatency = Param.Tick("Trap latency") 56 fetchTrapLatency = Param.Tick("Fetch trap latency") 57 58 backComSize = Param.Unsigned(5, "Time buffer size for backwards communication") 59 forwardComSize = Param.Unsigned(5, "Time buffer size for forward communication") 60 61 predType = Param.String("Branch predictor type ('local', 'tournament')") 62 localPredictorSize = Param.Unsigned("Size of local predictor") 63 localCtrBits = Param.Unsigned("Bits per counter") 64 localHistoryTableSize = Param.Unsigned("Size of local history table") 65 localHistoryBits = Param.Unsigned("Bits for the local history") 66 globalPredictorSize = Param.Unsigned("Size of global predictor") 67 globalCtrBits = Param.Unsigned("Bits per counter") 68 globalHistoryBits = Param.Unsigned("Bits of history") 69 choicePredictorSize = Param.Unsigned("Size of choice predictor") 70 choiceCtrBits = Param.Unsigned("Bits of choice counters") 71 72 BTBEntries = Param.Unsigned("Number of BTB entries") 73 BTBTagSize = Param.Unsigned("Size of the BTB tags, in bits") 74 75 RASSize = Param.Unsigned("RAS size") 76 77 LQEntries = Param.Unsigned("Number of load queue entries") 78 SQEntries = Param.Unsigned("Number of store queue entries") 79 LFSTSize = Param.Unsigned("Last fetched store table size") 80 SSITSize = Param.Unsigned("Store set ID table size") 81 82 numRobs = Param.Unsigned("Number of Reorder Buffers"); 83 84 numPhysIntRegs = Param.Unsigned("Number of physical integer registers") 85 numPhysFloatRegs = Param.Unsigned("Number of physical floating point " 86 "registers") 87 numIQEntries = Param.Unsigned("Number of instruction queue entries") 88 numROBEntries = Param.Unsigned("Number of reorder buffer entries") 89 90 instShiftAmt = Param.Unsigned("Number of bits to shift instructions by") 91 92 function_trace = Param.Bool(False, "Enable function trace") 93 function_trace_start = Param.Tick(0, "Cycle to start function trace") 94 95 smtNumFetchingThreads = Param.Unsigned("SMT Number of Fetching Threads") 96 smtFetchPolicy = Param.String("SMT Fetch policy") 97 smtLSQPolicy = Param.String("SMT LSQ Sharing Policy") 98 smtLSQThreshold = Param.String("SMT LSQ Threshold Sharing Parameter") 99 smtIQPolicy = Param.String("SMT IQ Sharing Policy") 100 smtIQThreshold = Param.String("SMT IQ Threshold Sharing Parameter") 101 smtROBPolicy = Param.String("SMT ROB Sharing Policy") 102 smtROBThreshold = Param.String("SMT ROB Threshold Sharing Parameter") 103 smtCommitPolicy = Param.String("SMT Commit Policy") 104