O3CPU.py revision 2362
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 activity = Param.Unsigned("Initial count") 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 checker = Param.BaseCPU(NULL, "checker") 137087Snate@binkert.org if build_env['FULL_SYSTEM']: 145086Sgblack@eecs.umich.edu profile = Param.Latency('0ns', "trace the kernel stack") 157087Snate@binkert.org 167087Snate@binkert.org cachePorts = Param.Unsigned("Cache Ports") 177087Snate@binkert.org 187087Snate@binkert.org decodeToFetchDelay = Param.Unsigned("Decode to fetch delay") 197087Snate@binkert.org renameToFetchDelay = Param.Unsigned("Rename to fetch delay") 207087Snate@binkert.org iewToFetchDelay = Param.Unsigned("Issue/Execute/Writeback to fetch " 217087Snate@binkert.org "delay") 227087Snate@binkert.org commitToFetchDelay = Param.Unsigned("Commit to fetch delay") 235086Sgblack@eecs.umich.edu fetchWidth = Param.Unsigned("Fetch width") 247087Snate@binkert.org 255086Sgblack@eecs.umich.edu renameToDecodeDelay = Param.Unsigned("Rename to decode delay") 265086Sgblack@eecs.umich.edu iewToDecodeDelay = Param.Unsigned("Issue/Execute/Writeback to decode " 275086Sgblack@eecs.umich.edu "delay") 285086Sgblack@eecs.umich.edu commitToDecodeDelay = Param.Unsigned("Commit to decode delay") 295086Sgblack@eecs.umich.edu fetchToDecodeDelay = Param.Unsigned("Fetch to decode delay") 305086Sgblack@eecs.umich.edu decodeWidth = Param.Unsigned("Decode width") 315086Sgblack@eecs.umich.edu 325086Sgblack@eecs.umich.edu iewToRenameDelay = Param.Unsigned("Issue/Execute/Writeback to rename " 335086Sgblack@eecs.umich.edu "delay") 345086Sgblack@eecs.umich.edu commitToRenameDelay = Param.Unsigned("Commit to rename delay") 355086Sgblack@eecs.umich.edu decodeToRenameDelay = Param.Unsigned("Decode to rename delay") 365086Sgblack@eecs.umich.edu renameWidth = Param.Unsigned("Rename width") 375086Sgblack@eecs.umich.edu 385086Sgblack@eecs.umich.edu commitToIEWDelay = Param.Unsigned("Commit to " 395086Sgblack@eecs.umich.edu "Issue/Execute/Writeback delay") 405086Sgblack@eecs.umich.edu renameToIEWDelay = Param.Unsigned("Rename to " 4111793Sbrandon.potter@amd.com "Issue/Execute/Writeback delay") 4211793Sbrandon.potter@amd.com issueToExecuteDelay = Param.Unsigned("Issue to execute delay (internal " 435647Sgblack@eecs.umich.edu "to the IEW stage)") 448466Snilay@cs.wisc.edu dispatchWidth = Param.Unsigned(8, "Dispatch width") 455135Sgblack@eecs.umich.edu issueWidth = Param.Unsigned(8, "Issue width") 465647Sgblack@eecs.umich.edu wbWidth = Param.Unsigned(8, "Writeback width") 479889Sandreas@sandberg.pp.se wbDepth = Param.Unsigned(1, "Writeback depth") 4811800Sbrandon.potter@amd.com fuPool = Param.FUPool(NULL, "Functional Unit pool") 495086Sgblack@eecs.umich.edu 505086Sgblack@eecs.umich.edu iewToCommitDelay = Param.Unsigned("Issue/Execute/Writeback to commit " 515086Sgblack@eecs.umich.edu "delay") 527707Sgblack@eecs.umich.edu renameToROBDelay = Param.Unsigned("Rename to reorder buffer delay") 537707Sgblack@eecs.umich.edu commitWidth = Param.Unsigned("Commit width") 547707Sgblack@eecs.umich.edu squashWidth = Param.Unsigned("Squash width") 5510553Salexandru.dutu@amd.com trapLatency = Param.Tick("Trap latency") 569887Sandreas@sandberg.pp.se fetchTrapLatency = Param.Tick("Fetch trap latency") 579887Sandreas@sandberg.pp.se 589887Sandreas@sandberg.pp.se backComSize = Param.Unsigned(5, "Time buffer size for backwards communication") 599887Sandreas@sandberg.pp.se forwardComSize = Param.Unsigned(5, "Time buffer size for forward communication") 609887Sandreas@sandberg.pp.se 619887Sandreas@sandberg.pp.se predType = Param.String("Branch predictor type ('local', 'tournament')") 629887Sandreas@sandberg.pp.se localPredictorSize = Param.Unsigned("Size of local predictor") 639887Sandreas@sandberg.pp.se localCtrBits = Param.Unsigned("Bits per counter") 649887Sandreas@sandberg.pp.se localHistoryTableSize = Param.Unsigned("Size of local history table") 659887Sandreas@sandberg.pp.se localHistoryBits = Param.Unsigned("Bits for the local history") 669887Sandreas@sandberg.pp.se globalPredictorSize = Param.Unsigned("Size of global predictor") 679887Sandreas@sandberg.pp.se globalCtrBits = Param.Unsigned("Bits per counter") 689887Sandreas@sandberg.pp.se globalHistoryBits = Param.Unsigned("Bits of history") 699887Sandreas@sandberg.pp.se choicePredictorSize = Param.Unsigned("Size of choice predictor") 709887Sandreas@sandberg.pp.se choiceCtrBits = Param.Unsigned("Bits of choice counters") 719887Sandreas@sandberg.pp.se 725086Sgblack@eecs.umich.edu BTBEntries = Param.Unsigned("Number of BTB entries") 735135Sgblack@eecs.umich.edu BTBTagSize = Param.Unsigned("Size of the BTB tags, in bits") 745135Sgblack@eecs.umich.edu 755135Sgblack@eecs.umich.edu RASSize = Param.Unsigned("RAS size") 766048Sgblack@eecs.umich.edu 776048Sgblack@eecs.umich.edu LQEntries = Param.Unsigned("Number of load queue entries") 786048Sgblack@eecs.umich.edu SQEntries = Param.Unsigned("Number of store queue entries") 796048Sgblack@eecs.umich.edu LFSTSize = Param.Unsigned("Last fetched store table size") 806048Sgblack@eecs.umich.edu SSITSize = Param.Unsigned("Store set ID table size") 816048Sgblack@eecs.umich.edu 827720Sgblack@eecs.umich.edu numRobs = Param.Unsigned("Number of Reorder Buffers"); 837720Sgblack@eecs.umich.edu 847720Sgblack@eecs.umich.edu numPhysIntRegs = Param.Unsigned("Number of physical integer registers") 857720Sgblack@eecs.umich.edu numPhysFloatRegs = Param.Unsigned("Number of physical floating point " 865135Sgblack@eecs.umich.edu "registers") 875135Sgblack@eecs.umich.edu numIQEntries = Param.Unsigned("Number of instruction queue entries") 885135Sgblack@eecs.umich.edu numROBEntries = Param.Unsigned("Number of reorder buffer entries") 895135Sgblack@eecs.umich.edu 905135Sgblack@eecs.umich.edu instShiftAmt = Param.Unsigned("Number of bits to shift instructions by") 915135Sgblack@eecs.umich.edu 925135Sgblack@eecs.umich.edu function_trace = Param.Bool(False, "Enable function trace") 935135Sgblack@eecs.umich.edu function_trace_start = Param.Tick(0, "Cycle to start function trace") 945135Sgblack@eecs.umich.edu 955135Sgblack@eecs.umich.edu smtNumFetchingThreads = Param.Unsigned("SMT Number of Fetching Threads") 965135Sgblack@eecs.umich.edu smtFetchPolicy = Param.String("SMT Fetch policy") 975135Sgblack@eecs.umich.edu smtLSQPolicy = Param.String("SMT LSQ Sharing Policy") 985135Sgblack@eecs.umich.edu smtLSQThreshold = Param.String("SMT LSQ Threshold Sharing Parameter") 995135Sgblack@eecs.umich.edu smtIQPolicy = Param.String("SMT IQ Sharing Policy") 1005135Sgblack@eecs.umich.edu smtIQThreshold = Param.String("SMT IQ Threshold Sharing Parameter") 1015135Sgblack@eecs.umich.edu smtROBPolicy = Param.String("SMT ROB Sharing Policy") 1025135Sgblack@eecs.umich.edu smtROBThreshold = Param.String("SMT ROB Threshold Sharing Parameter") 1035264Sgblack@eecs.umich.edu smtCommitPolicy = Param.String("SMT Commit Policy") 1045135Sgblack@eecs.umich.edu