O3CPU.py revision 1681
113465Sgabeblack@google.comfrom BaseCPU import BaseCPU 213465Sgabeblack@google.com 313465Sgabeblack@google.comsimobj DerivAlphaFullCPU(BaseCPU): 413465Sgabeblack@google.com type = 'DerivAlphaFullCPU' 513465Sgabeblack@google.com 613465Sgabeblack@google.com numThreads = Param.Unsigned("number of HW thread contexts") 713465Sgabeblack@google.com 813465Sgabeblack@google.com if not build_env['FULL_SYSTEM']: 913465Sgabeblack@google.com mem = Param.FunctionalMemory(NULL, "memory") 1013465Sgabeblack@google.com 1113465Sgabeblack@google.com decodeToFetchDelay = Param.Unsigned("Decode to fetch delay") 1213465Sgabeblack@google.com renameToFetchDelay = Param.Unsigned("Rename to fetch delay") 1313465Sgabeblack@google.com iewToFetchDelay = Param.Unsigned("Issue/Execute/Writeback to fetch " 1413465Sgabeblack@google.com "delay") 1513465Sgabeblack@google.com commitToFetchDelay = Param.Unsigned("Commit to fetch delay") 1613465Sgabeblack@google.com fetchWidth = Param.Unsigned("Fetch width") 1713465Sgabeblack@google.com 1813465Sgabeblack@google.com renameToDecodeDelay = Param.Unsigned("Rename to decode delay") 1913465Sgabeblack@google.com iewToDecodeDelay = Param.Unsigned("Issue/Execute/Writeback to decode " 2013465Sgabeblack@google.com "delay") 2113465Sgabeblack@google.com commitToDecodeDelay = Param.Unsigned("Commit to decode delay") 2213465Sgabeblack@google.com fetchToDecodeDelay = Param.Unsigned("Fetch to decode delay") 2313465Sgabeblack@google.com decodeWidth = Param.Unsigned("Decode width") 2413465Sgabeblack@google.com 2513465Sgabeblack@google.com iewToRenameDelay = Param.Unsigned("Issue/Execute/Writeback to rename " 2613465Sgabeblack@google.com "delay") 2713465Sgabeblack@google.com commitToRenameDelay = Param.Unsigned("Commit to rename delay") 2813465Sgabeblack@google.com decodeToRenameDelay = Param.Unsigned("Decode to rename delay") 2913465Sgabeblack@google.com renameWidth = Param.Unsigned("Rename width") 3013465Sgabeblack@google.com 3113465Sgabeblack@google.com commitToIEWDelay = Param.Unsigned("Commit to " 3213465Sgabeblack@google.com "Issue/Execute/Writeback delay") 3313465Sgabeblack@google.com renameToIEWDelay = Param.Unsigned("Rename to " 3413465Sgabeblack@google.com "Issue/Execute/Writeback delay") 3513465Sgabeblack@google.com issueToExecuteDelay = Param.Unsigned("Issue to execute delay (internal " 3613465Sgabeblack@google.com "to the IEW stage)") 3713465Sgabeblack@google.com issueWidth = Param.Unsigned("Issue width") 3813465Sgabeblack@google.com executeWidth = Param.Unsigned("Execute width") 3913465Sgabeblack@google.com executeIntWidth = Param.Unsigned("Integer execute width") 4013465Sgabeblack@google.com executeFloatWidth = Param.Unsigned("Floating point execute width") 4113465Sgabeblack@google.com executeBranchWidth = Param.Unsigned("Branch execute width") 4213465Sgabeblack@google.com executeMemoryWidth = Param.Unsigned("Memory execute width") 4313465Sgabeblack@google.com 4413465Sgabeblack@google.com iewToCommitDelay = Param.Unsigned("Issue/Execute/Writeback to commit " 4513465Sgabeblack@google.com "delay") 4613465Sgabeblack@google.com renameToROBDelay = Param.Unsigned("Rename to reorder buffer delay") 4713465Sgabeblack@google.com commitWidth = Param.Unsigned("Commit width") 4813465Sgabeblack@google.com squashWidth = Param.Unsigned("Squash width") 4913465Sgabeblack@google.com 5013465Sgabeblack@google.com local_predictor_size = Param.Unsigned("Size of local predictor") 5113465Sgabeblack@google.com local_ctr_bits = Param.Unsigned("Bits per counter") 5213465Sgabeblack@google.com local_history_table_size = Param.Unsigned("Size of local history table") 5313465Sgabeblack@google.com local_history_bits = Param.Unsigned("Bits for the local history") 5413465Sgabeblack@google.com global_predictor_size = Param.Unsigned("Size of global predictor") 5513465Sgabeblack@google.com global_ctr_bits = Param.Unsigned("Bits per counter") 5613465Sgabeblack@google.com global_history_bits = Param.Unsigned("Bits of history") 5713465Sgabeblack@google.com choice_predictor_size = Param.Unsigned("Size of choice predictor") 5813465Sgabeblack@google.com choice_ctr_bits = Param.Unsigned("Bits of choice counters") 5913465Sgabeblack@google.com 6013465Sgabeblack@google.com BTBEntries = Param.Unsigned("Number of BTB entries") 6113465Sgabeblack@google.com BTBTagSize = Param.Unsigned("Size of the BTB tags, in bits") 6213465Sgabeblack@google.com 6313465Sgabeblack@google.com RASSize = Param.Unsigned("RAS size") 6413465Sgabeblack@google.com 6513465Sgabeblack@google.com LQEntries = Param.Unsigned("Number of load queue entries") 6613465Sgabeblack@google.com SQEntries = Param.Unsigned("Number of store queue entries") 6713465Sgabeblack@google.com LFSTSize = Param.Unsigned("Last fetched store table size") 6813465Sgabeblack@google.com SSITSize = Param.Unsigned("Store set ID table size") 6913465Sgabeblack@google.com 7013465Sgabeblack@google.com numPhysIntRegs = Param.Unsigned("Number of physical integer registers") 7113465Sgabeblack@google.com numPhysFloatRegs = Param.Unsigned("Number of physical floating point " 7213465Sgabeblack@google.com "registers") 7313465Sgabeblack@google.com numIQEntries = Param.Unsigned("Number of instruction queue entries") 7413465Sgabeblack@google.com numROBEntries = Param.Unsigned("Number of reorder buffer entries") 7513465Sgabeblack@google.com 7613465Sgabeblack@google.com instShiftAmt = Param.Unsigned("Number of bits to shift instructions by") 7713465Sgabeblack@google.com 7813465Sgabeblack@google.com function_trace = Param.Bool(False, "Enable function trace") 7913465Sgabeblack@google.com function_trace_start = Param.Tick(0, "Cycle to start function trace") 8013465Sgabeblack@google.com