O3CPU.py revision 2318
14120Sgblack@eecs.umich.edufrom m5 import * 24120Sgblack@eecs.umich.edufrom BaseCPU import BaseCPU 34120Sgblack@eecs.umich.edu 44120Sgblack@eecs.umich.educlass DerivAlphaFullCPU(BaseCPU): 54120Sgblack@eecs.umich.edu type = 'DerivAlphaFullCPU' 64120Sgblack@eecs.umich.edu 74120Sgblack@eecs.umich.edu numThreads = Param.Unsigned("number of HW thread contexts") 84120Sgblack@eecs.umich.edu 94120Sgblack@eecs.umich.edu if not build_env['FULL_SYSTEM']: 104120Sgblack@eecs.umich.edu mem = Param.FunctionalMemory(NULL, "memory") 114120Sgblack@eecs.umich.edu 124120Sgblack@eecs.umich.edu checker = Param.BaseCPU(NULL, "checker") 134120Sgblack@eecs.umich.edu 144120Sgblack@eecs.umich.edu cachePorts = Param.Unsigned("Cache Ports") 154120Sgblack@eecs.umich.edu 164120Sgblack@eecs.umich.edu decodeToFetchDelay = Param.Unsigned("Decode to fetch delay") 174120Sgblack@eecs.umich.edu renameToFetchDelay = Param.Unsigned("Rename to fetch delay") 184120Sgblack@eecs.umich.edu iewToFetchDelay = Param.Unsigned("Issue/Execute/Writeback to fetch " 194120Sgblack@eecs.umich.edu "delay") 204120Sgblack@eecs.umich.edu commitToFetchDelay = Param.Unsigned("Commit to fetch delay") 214120Sgblack@eecs.umich.edu fetchWidth = Param.Unsigned("Fetch width") 224120Sgblack@eecs.umich.edu 234120Sgblack@eecs.umich.edu renameToDecodeDelay = Param.Unsigned("Rename to decode delay") 244120Sgblack@eecs.umich.edu iewToDecodeDelay = Param.Unsigned("Issue/Execute/Writeback to decode " 254120Sgblack@eecs.umich.edu "delay") 264120Sgblack@eecs.umich.edu commitToDecodeDelay = Param.Unsigned("Commit to decode delay") 274120Sgblack@eecs.umich.edu fetchToDecodeDelay = Param.Unsigned("Fetch to decode delay") 284120Sgblack@eecs.umich.edu decodeWidth = Param.Unsigned("Decode width") 294120Sgblack@eecs.umich.edu 304120Sgblack@eecs.umich.edu iewToRenameDelay = Param.Unsigned("Issue/Execute/Writeback to rename " 315334Sgblack@eecs.umich.edu "delay") 324120Sgblack@eecs.umich.edu commitToRenameDelay = Param.Unsigned("Commit to rename delay") 334120Sgblack@eecs.umich.edu decodeToRenameDelay = Param.Unsigned("Decode to rename delay") 344120Sgblack@eecs.umich.edu renameWidth = Param.Unsigned("Rename width") 354120Sgblack@eecs.umich.edu 364120Sgblack@eecs.umich.edu commitToIEWDelay = Param.Unsigned("Commit to " 374120Sgblack@eecs.umich.edu "Issue/Execute/Writeback delay") 384120Sgblack@eecs.umich.edu renameToIEWDelay = Param.Unsigned("Rename to " 394120Sgblack@eecs.umich.edu "Issue/Execute/Writeback delay") 404120Sgblack@eecs.umich.edu issueToExecuteDelay = Param.Unsigned("Issue to execute delay (internal " 414120Sgblack@eecs.umich.edu "to the IEW stage)") 424120Sgblack@eecs.umich.edu issueWidth = Param.Unsigned("Issue width") 434120Sgblack@eecs.umich.edu executeWidth = Param.Unsigned("Execute width") 444120Sgblack@eecs.umich.edu executeIntWidth = Param.Unsigned("Integer execute width") 454120Sgblack@eecs.umich.edu executeFloatWidth = Param.Unsigned("Floating point execute width") 464120Sgblack@eecs.umich.edu executeBranchWidth = Param.Unsigned("Branch execute width") 474120Sgblack@eecs.umich.edu executeMemoryWidth = Param.Unsigned("Memory execute width") 484120Sgblack@eecs.umich.edu fuPool = Param.FUPool(NULL, "Functional Unit pool") 494120Sgblack@eecs.umich.edu 504120Sgblack@eecs.umich.edu iewToCommitDelay = Param.Unsigned("Issue/Execute/Writeback to commit " 514120Sgblack@eecs.umich.edu "delay") 524120Sgblack@eecs.umich.edu renameToROBDelay = Param.Unsigned("Rename to reorder buffer delay") 534120Sgblack@eecs.umich.edu commitWidth = Param.Unsigned("Commit width") 544120Sgblack@eecs.umich.edu squashWidth = Param.Unsigned("Squash width") 554120Sgblack@eecs.umich.edu trapLatency = Param.Tick("Trap latency") 564120Sgblack@eecs.umich.edu fetchTrapLatency = Param.Tick("Fetch trap latency") 574120Sgblack@eecs.umich.edu 584120Sgblack@eecs.umich.edu localPredictorSize = Param.Unsigned("Size of local predictor") 594120Sgblack@eecs.umich.edu localCtrBits = Param.Unsigned("Bits per counter") 604120Sgblack@eecs.umich.edu localHistoryTableSize = Param.Unsigned("Size of local history table") 614120Sgblack@eecs.umich.edu localHistoryBits = Param.Unsigned("Bits for the local history") 624120Sgblack@eecs.umich.edu globalPredictorSize = Param.Unsigned("Size of global predictor") 634120Sgblack@eecs.umich.edu globalCtrBits = Param.Unsigned("Bits per counter") 644120Sgblack@eecs.umich.edu globalHistoryBits = Param.Unsigned("Bits of history") 654120Sgblack@eecs.umich.edu choicePredictorSize = Param.Unsigned("Size of choice predictor") 664120Sgblack@eecs.umich.edu choiceCtrBits = Param.Unsigned("Bits of choice counters") 674120Sgblack@eecs.umich.edu 684120Sgblack@eecs.umich.edu BTBEntries = Param.Unsigned("Number of BTB entries") 694120Sgblack@eecs.umich.edu BTBTagSize = Param.Unsigned("Size of the BTB tags, in bits") 704120Sgblack@eecs.umich.edu 714120Sgblack@eecs.umich.edu RASSize = Param.Unsigned("RAS size") 724120Sgblack@eecs.umich.edu 734120Sgblack@eecs.umich.edu LQEntries = Param.Unsigned("Number of load queue entries") 744120Sgblack@eecs.umich.edu SQEntries = Param.Unsigned("Number of store queue entries") 754120Sgblack@eecs.umich.edu LFSTSize = Param.Unsigned("Last fetched store table size") 764120Sgblack@eecs.umich.edu SSITSize = Param.Unsigned("Store set ID table size") 774120Sgblack@eecs.umich.edu 784120Sgblack@eecs.umich.edu numRobs = Param.Unsigned("Number of Reorder Buffers"); 794120Sgblack@eecs.umich.edu 804120Sgblack@eecs.umich.edu numPhysIntRegs = Param.Unsigned("Number of physical integer registers") 814120Sgblack@eecs.umich.edu numPhysFloatRegs = Param.Unsigned("Number of physical floating point " 824120Sgblack@eecs.umich.edu "registers") 834120Sgblack@eecs.umich.edu numIQEntries = Param.Unsigned("Number of instruction queue entries") 844120Sgblack@eecs.umich.edu numROBEntries = Param.Unsigned("Number of reorder buffer entries") 854120Sgblack@eecs.umich.edu 864202Sbinkertn@umich.edu instShiftAmt = Param.Unsigned("Number of bits to shift instructions by") 875069Sgblack@eecs.umich.edu 884202Sbinkertn@umich.edu function_trace = Param.Bool(False, "Enable function trace") 894601Sgblack@eecs.umich.edu function_trace_start = Param.Tick(0, "Cycle to start function trace") 904202Sbinkertn@umich.edu 915124Sgblack@eecs.umich.edu smtNumFetchingThreads = Param.Unsigned("SMT Number of Fetching Threads") 925083Sgblack@eecs.umich.edu smtFetchPolicy = Param.String("SMT Fetch policy") 934679Sgblack@eecs.umich.edu smtLSQPolicy = Param.String("SMT LSQ Sharing Policy") 945083Sgblack@eecs.umich.edu smtLSQThreshold = Param.String("SMT LSQ Threshold Sharing Parameter") 954679Sgblack@eecs.umich.edu smtIQPolicy = Param.String("SMT IQ Sharing Policy") 964679Sgblack@eecs.umich.edu smtIQThreshold = Param.String("SMT IQ Threshold Sharing Parameter") 974202Sbinkertn@umich.edu smtROBPolicy = Param.String("SMT ROB Sharing Policy") 984202Sbinkertn@umich.edu smtROBThreshold = Param.String("SMT ROB Threshold Sharing Parameter") 995124Sgblack@eecs.umich.edu smtCommitPolicy = Param.String("SMT Commit Policy") 1004249Sgblack@eecs.umich.edu