O3CPU.py revision 2318
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 checker = Param.BaseCPU(NULL, "checker") 13 14 cachePorts = Param.Unsigned("Cache Ports") 15 16 decodeToFetchDelay = Param.Unsigned("Decode to fetch delay") 17 renameToFetchDelay = Param.Unsigned("Rename to fetch delay") 18 iewToFetchDelay = Param.Unsigned("Issue/Execute/Writeback to fetch " 19 "delay") 20 commitToFetchDelay = Param.Unsigned("Commit to fetch delay") 21 fetchWidth = Param.Unsigned("Fetch width") 22 23 renameToDecodeDelay = Param.Unsigned("Rename to decode delay") 24 iewToDecodeDelay = Param.Unsigned("Issue/Execute/Writeback to decode " 25 "delay") 26 commitToDecodeDelay = Param.Unsigned("Commit to decode delay") 27 fetchToDecodeDelay = Param.Unsigned("Fetch to decode delay") 28 decodeWidth = Param.Unsigned("Decode width") 29 30 iewToRenameDelay = Param.Unsigned("Issue/Execute/Writeback to rename " 31 "delay") 32 commitToRenameDelay = Param.Unsigned("Commit to rename delay") 33 decodeToRenameDelay = Param.Unsigned("Decode to rename delay") 34 renameWidth = Param.Unsigned("Rename width") 35 36 commitToIEWDelay = Param.Unsigned("Commit to " 37 "Issue/Execute/Writeback delay") 38 renameToIEWDelay = Param.Unsigned("Rename to " 39 "Issue/Execute/Writeback delay") 40 issueToExecuteDelay = Param.Unsigned("Issue to execute delay (internal " 41 "to the IEW stage)") 42 issueWidth = Param.Unsigned("Issue width") 43 executeWidth = Param.Unsigned("Execute width") 44 executeIntWidth = Param.Unsigned("Integer execute width") 45 executeFloatWidth = Param.Unsigned("Floating point execute width") 46 executeBranchWidth = Param.Unsigned("Branch execute width") 47 executeMemoryWidth = Param.Unsigned("Memory execute width") 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 localPredictorSize = Param.Unsigned("Size of local predictor") 59 localCtrBits = Param.Unsigned("Bits per counter") 60 localHistoryTableSize = Param.Unsigned("Size of local history table") 61 localHistoryBits = Param.Unsigned("Bits for the local history") 62 globalPredictorSize = Param.Unsigned("Size of global predictor") 63 globalCtrBits = Param.Unsigned("Bits per counter") 64 globalHistoryBits = Param.Unsigned("Bits of history") 65 choicePredictorSize = Param.Unsigned("Size of choice predictor") 66 choiceCtrBits = Param.Unsigned("Bits of choice counters") 67 68 BTBEntries = Param.Unsigned("Number of BTB entries") 69 BTBTagSize = Param.Unsigned("Size of the BTB tags, in bits") 70 71 RASSize = Param.Unsigned("RAS size") 72 73 LQEntries = Param.Unsigned("Number of load queue entries") 74 SQEntries = Param.Unsigned("Number of store queue entries") 75 LFSTSize = Param.Unsigned("Last fetched store table size") 76 SSITSize = Param.Unsigned("Store set ID table size") 77 78 numRobs = Param.Unsigned("Number of Reorder Buffers"); 79 80 numPhysIntRegs = Param.Unsigned("Number of physical integer registers") 81 numPhysFloatRegs = Param.Unsigned("Number of physical floating point " 82 "registers") 83 numIQEntries = Param.Unsigned("Number of instruction queue entries") 84 numROBEntries = Param.Unsigned("Number of reorder buffer entries") 85 86 instShiftAmt = Param.Unsigned("Number of bits to shift instructions by") 87 88 function_trace = Param.Bool(False, "Enable function trace") 89 function_trace_start = Param.Tick(0, "Cycle to start function trace") 90 91 smtNumFetchingThreads = Param.Unsigned("SMT Number of Fetching Threads") 92 smtFetchPolicy = Param.String("SMT Fetch policy") 93 smtLSQPolicy = Param.String("SMT LSQ Sharing Policy") 94 smtLSQThreshold = Param.String("SMT LSQ Threshold Sharing Parameter") 95 smtIQPolicy = Param.String("SMT IQ Sharing Policy") 96 smtIQThreshold = Param.String("SMT IQ Threshold Sharing Parameter") 97 smtROBPolicy = Param.String("SMT ROB Sharing Policy") 98 smtROBThreshold = Param.String("SMT ROB Threshold Sharing Parameter") 99 smtCommitPolicy = Param.String("SMT Commit Policy") 100