O3CPU.py revision 2294
15086Sgblack@eecs.umich.edufrom m5 import * 25086Sgblack@eecs.umich.edufrom BaseCPU import BaseCPU 38466Snilay@cs.wisc.edu 45086Sgblack@eecs.umich.educlass DerivAlphaFullCPU(BaseCPU): 55086Sgblack@eecs.umich.edu type = 'DerivAlphaFullCPU' 67087Snate@binkert.org 77087Snate@binkert.org numThreads = Param.Unsigned("number of HW thread contexts") 87087Snate@binkert.org 97087Snate@binkert.org if not build_env['FULL_SYSTEM']: 107087Snate@binkert.org mem = Param.FunctionalMemory(NULL, "memory") 117087Snate@binkert.org 127087Snate@binkert.org cachePorts = Param.Unsigned("Cache Ports") 137087Snate@binkert.org 145086Sgblack@eecs.umich.edu decodeToFetchDelay = Param.Unsigned("Decode to fetch delay") 157087Snate@binkert.org renameToFetchDelay = Param.Unsigned("Rename to fetch delay") 167087Snate@binkert.org iewToFetchDelay = Param.Unsigned("Issue/Execute/Writeback to fetch " 177087Snate@binkert.org "delay") 187087Snate@binkert.org commitToFetchDelay = Param.Unsigned("Commit to fetch delay") 197087Snate@binkert.org fetchWidth = Param.Unsigned("Fetch width") 207087Snate@binkert.org 217087Snate@binkert.org renameToDecodeDelay = Param.Unsigned("Rename to decode delay") 227087Snate@binkert.org iewToDecodeDelay = Param.Unsigned("Issue/Execute/Writeback to decode " 235086Sgblack@eecs.umich.edu "delay") 247087Snate@binkert.org commitToDecodeDelay = Param.Unsigned("Commit to decode delay") 255086Sgblack@eecs.umich.edu fetchToDecodeDelay = Param.Unsigned("Fetch to decode delay") 265086Sgblack@eecs.umich.edu decodeWidth = Param.Unsigned("Decode width") 275086Sgblack@eecs.umich.edu 285086Sgblack@eecs.umich.edu iewToRenameDelay = Param.Unsigned("Issue/Execute/Writeback to rename " 295086Sgblack@eecs.umich.edu "delay") 305086Sgblack@eecs.umich.edu commitToRenameDelay = Param.Unsigned("Commit to rename delay") 315086Sgblack@eecs.umich.edu decodeToRenameDelay = Param.Unsigned("Decode to rename delay") 325086Sgblack@eecs.umich.edu renameWidth = Param.Unsigned("Rename width") 335086Sgblack@eecs.umich.edu 345086Sgblack@eecs.umich.edu commitToIEWDelay = Param.Unsigned("Commit to " 355086Sgblack@eecs.umich.edu "Issue/Execute/Writeback delay") 365086Sgblack@eecs.umich.edu renameToIEWDelay = Param.Unsigned("Rename to " 375086Sgblack@eecs.umich.edu "Issue/Execute/Writeback delay") 385086Sgblack@eecs.umich.edu issueToExecuteDelay = Param.Unsigned("Issue to execute delay (internal " 395086Sgblack@eecs.umich.edu "to the IEW stage)") 405086Sgblack@eecs.umich.edu issueWidth = Param.Unsigned("Issue width") 415647Sgblack@eecs.umich.edu executeWidth = Param.Unsigned("Execute width") 428466Snilay@cs.wisc.edu executeIntWidth = Param.Unsigned("Integer execute width") 438466Snilay@cs.wisc.edu executeFloatWidth = Param.Unsigned("Floating point execute width") 445086Sgblack@eecs.umich.edu executeBranchWidth = Param.Unsigned("Branch execute width") 455135Sgblack@eecs.umich.edu executeMemoryWidth = Param.Unsigned("Memory execute width") 465647Sgblack@eecs.umich.edu fuPool = Param.FUPool(NULL, "Functional Unit pool") 475234Sgblack@eecs.umich.edu 485086Sgblack@eecs.umich.edu iewToCommitDelay = Param.Unsigned("Issue/Execute/Writeback to commit " 495086Sgblack@eecs.umich.edu "delay") 505086Sgblack@eecs.umich.edu renameToROBDelay = Param.Unsigned("Rename to reorder buffer delay") 517707Sgblack@eecs.umich.edu commitWidth = Param.Unsigned("Commit width") 527707Sgblack@eecs.umich.edu squashWidth = Param.Unsigned("Squash width") 537707Sgblack@eecs.umich.edu 545086Sgblack@eecs.umich.edu localPredictorSize = Param.Unsigned("Size of local predictor") 555086Sgblack@eecs.umich.edu localCtrBits = Param.Unsigned("Bits per counter") 565086Sgblack@eecs.umich.edu localHistoryTableSize = Param.Unsigned("Size of local history table") 575135Sgblack@eecs.umich.edu localHistoryBits = Param.Unsigned("Bits for the local history") 585135Sgblack@eecs.umich.edu globalPredictorSize = Param.Unsigned("Size of global predictor") 595135Sgblack@eecs.umich.edu globalCtrBits = Param.Unsigned("Bits per counter") 606048Sgblack@eecs.umich.edu globalHistoryBits = Param.Unsigned("Bits of history") 616048Sgblack@eecs.umich.edu choicePredictorSize = Param.Unsigned("Size of choice predictor") 626048Sgblack@eecs.umich.edu choiceCtrBits = Param.Unsigned("Bits of choice counters") 636048Sgblack@eecs.umich.edu 646048Sgblack@eecs.umich.edu BTBEntries = Param.Unsigned("Number of BTB entries") 656048Sgblack@eecs.umich.edu BTBTagSize = Param.Unsigned("Size of the BTB tags, in bits") 667720Sgblack@eecs.umich.edu 677720Sgblack@eecs.umich.edu RASSize = Param.Unsigned("RAS size") 687720Sgblack@eecs.umich.edu 697720Sgblack@eecs.umich.edu LQEntries = Param.Unsigned("Number of load queue entries") 705135Sgblack@eecs.umich.edu SQEntries = Param.Unsigned("Number of store queue entries") 715135Sgblack@eecs.umich.edu LFSTSize = Param.Unsigned("Last fetched store table size") 725135Sgblack@eecs.umich.edu SSITSize = Param.Unsigned("Store set ID table size") 735135Sgblack@eecs.umich.edu 745135Sgblack@eecs.umich.edu numRobs = Param.Unsigned("Number of Reorder Buffers"); 755135Sgblack@eecs.umich.edu 765135Sgblack@eecs.umich.edu numPhysIntRegs = Param.Unsigned("Number of physical integer registers") 775135Sgblack@eecs.umich.edu numPhysFloatRegs = Param.Unsigned("Number of physical floating point " 785135Sgblack@eecs.umich.edu "registers") 795135Sgblack@eecs.umich.edu numIQEntries = Param.Unsigned("Number of instruction queue entries") 805135Sgblack@eecs.umich.edu numROBEntries = Param.Unsigned("Number of reorder buffer entries") 815135Sgblack@eecs.umich.edu 825135Sgblack@eecs.umich.edu instShiftAmt = Param.Unsigned("Number of bits to shift instructions by") 835135Sgblack@eecs.umich.edu 845135Sgblack@eecs.umich.edu function_trace = Param.Bool(False, "Enable function trace") 855135Sgblack@eecs.umich.edu function_trace_start = Param.Tick(0, "Cycle to start function trace") 865135Sgblack@eecs.umich.edu 875264Sgblack@eecs.umich.edu smtNumFetchingThreads = Param.Unsigned("SMT Number of Fetching Threads") 885135Sgblack@eecs.umich.edu smtFetchPolicy = Param.String("SMT Fetch policy") 895135Sgblack@eecs.umich.edu smtLSQPolicy = Param.String("SMT LSQ Sharing Policy") 905135Sgblack@eecs.umich.edu smtLSQThreshold = Param.String("SMT LSQ Threshold Sharing Parameter") 915135Sgblack@eecs.umich.edu smtIQPolicy = Param.String("SMT IQ Sharing Policy") 925141Sgblack@eecs.umich.edu smtIQThreshold = Param.String("SMT IQ Threshold Sharing Parameter") 935141Sgblack@eecs.umich.edu smtROBPolicy = Param.String("SMT ROB Sharing Policy") 945141Sgblack@eecs.umich.edu smtROBThreshold = Param.String("SMT ROB Threshold Sharing Parameter") 955141Sgblack@eecs.umich.edu smtCommitPolicy = Param.String("SMT Commit Policy") 965141Sgblack@eecs.umich.edu