Special mpy importer is gone; everything is just plain
Python now (funky, but straight-up).
May not completely work yet... generates identical ini
files for many configs/kernel settings, but I have yet
to run it against regressions. This commit is for my
own convenience and won't be pushed until more testing
is done.
python/m5/__init__.py:
Get rid of mpy_importer and param_types.
python/m5/config.py:
Major cleanup. We now have separate classes and
instances for SimObjects. Proxy handling and param
conversion significantly reorganized. No explicit
instantiation step anymore; we can dump an ini file
straight from the original tree.
Still needs more/better/truer comments.
test/genini.py:
Replace LoadMpyFile() with built-in execfile().
Export __main__.m5_build_env.
python/m5/objects/AlphaConsole.py:
python/m5/objects/AlphaFullCPU.py:
python/m5/objects/AlphaTLB.py:
python/m5/objects/BadDevice.py:
python/m5/objects/BaseCPU.py:
python/m5/objects/BaseCache.py:
python/m5/objects/BaseSystem.py:
python/m5/objects/Bus.py:
python/m5/objects/CoherenceProtocol.py:
python/m5/objects/Device.py:
python/m5/objects/DiskImage.py:
python/m5/objects/Ethernet.py:
python/m5/objects/Ide.py:
python/m5/objects/IntrControl.py:
python/m5/objects/MemTest.py:
python/m5/objects/Pci.py:
python/m5/objects/PhysicalMemory.py:
python/m5/objects/Platform.py:
python/m5/objects/Process.py:
python/m5/objects/Repl.py:
python/m5/objects/Root.py:
python/m5/objects/SimConsole.py:
python/m5/objects/SimpleDisk.py:
python/m5/objects/Tsunami.py:
python/m5/objects/Uart.py:
Fixes for eliminating mpy_importer, and modified
handling of frequency/latency params.
Also renamed parent to Parent.
--HG--
rename : python/m5/objects/AlphaConsole.mpy => python/m5/objects/AlphaConsole.py
rename : python/m5/objects/AlphaFullCPU.mpy => python/m5/objects/AlphaFullCPU.py
rename : python/m5/objects/AlphaTLB.mpy => python/m5/objects/AlphaTLB.py
rename : python/m5/objects/BadDevice.mpy => python/m5/objects/BadDevice.py
rename : python/m5/objects/BaseCPU.mpy => python/m5/objects/BaseCPU.py
rename : python/m5/objects/BaseCache.mpy => python/m5/objects/BaseCache.py
rename : python/m5/objects/BaseSystem.mpy => python/m5/objects/BaseSystem.py
rename : python/m5/objects/Bus.mpy => python/m5/objects/Bus.py
rename : python/m5/objects/CoherenceProtocol.mpy => python/m5/objects/CoherenceProtocol.py
rename : python/m5/objects/Device.mpy => python/m5/objects/Device.py
rename : python/m5/objects/DiskImage.mpy => python/m5/objects/DiskImage.py
rename : python/m5/objects/Ethernet.mpy => python/m5/objects/Ethernet.py
rename : python/m5/objects/Ide.mpy => python/m5/objects/Ide.py
rename : python/m5/objects/IntrControl.mpy => python/m5/objects/IntrControl.py
rename : python/m5/objects/MemTest.mpy => python/m5/objects/MemTest.py
rename : python/m5/objects/Pci.mpy => python/m5/objects/Pci.py
rename : python/m5/objects/PhysicalMemory.mpy => python/m5/objects/PhysicalMemory.py
rename : python/m5/objects/Platform.mpy => python/m5/objects/Platform.py
rename : python/m5/objects/Process.mpy => python/m5/objects/Process.py
rename : python/m5/objects/Repl.mpy => python/m5/objects/Repl.py
rename : python/m5/objects/Root.mpy => python/m5/objects/Root.py
rename : python/m5/objects/SimConsole.mpy => python/m5/objects/SimConsole.py
rename : python/m5/objects/SimpleDisk.mpy => python/m5/objects/SimpleDisk.py
rename : python/m5/objects/Tsunami.mpy => python/m5/objects/Tsunami.py
rename : python/m5/objects/Uart.mpy => python/m5/objects/Uart.py
extra : convert_revision : 9dc55103a6f5b40eada4ed181a71a96fae6b0b76
81 lines
3.6 KiB
Python
81 lines
3.6 KiB
Python
from m5 import *
|
|
from BaseCPU import BaseCPU
|
|
|
|
class DerivAlphaFullCPU(BaseCPU):
|
|
type = 'DerivAlphaFullCPU'
|
|
|
|
numThreads = Param.Unsigned("number of HW thread contexts")
|
|
|
|
if not build_env['FULL_SYSTEM']:
|
|
mem = Param.FunctionalMemory(NULL, "memory")
|
|
|
|
decodeToFetchDelay = Param.Unsigned("Decode to fetch delay")
|
|
renameToFetchDelay = Param.Unsigned("Rename to fetch delay")
|
|
iewToFetchDelay = Param.Unsigned("Issue/Execute/Writeback to fetch "
|
|
"delay")
|
|
commitToFetchDelay = Param.Unsigned("Commit to fetch delay")
|
|
fetchWidth = Param.Unsigned("Fetch width")
|
|
|
|
renameToDecodeDelay = Param.Unsigned("Rename to decode delay")
|
|
iewToDecodeDelay = Param.Unsigned("Issue/Execute/Writeback to decode "
|
|
"delay")
|
|
commitToDecodeDelay = Param.Unsigned("Commit to decode delay")
|
|
fetchToDecodeDelay = Param.Unsigned("Fetch to decode delay")
|
|
decodeWidth = Param.Unsigned("Decode width")
|
|
|
|
iewToRenameDelay = Param.Unsigned("Issue/Execute/Writeback to rename "
|
|
"delay")
|
|
commitToRenameDelay = Param.Unsigned("Commit to rename delay")
|
|
decodeToRenameDelay = Param.Unsigned("Decode to rename delay")
|
|
renameWidth = Param.Unsigned("Rename width")
|
|
|
|
commitToIEWDelay = Param.Unsigned("Commit to "
|
|
"Issue/Execute/Writeback delay")
|
|
renameToIEWDelay = Param.Unsigned("Rename to "
|
|
"Issue/Execute/Writeback delay")
|
|
issueToExecuteDelay = Param.Unsigned("Issue to execute delay (internal "
|
|
"to the IEW stage)")
|
|
issueWidth = Param.Unsigned("Issue width")
|
|
executeWidth = Param.Unsigned("Execute width")
|
|
executeIntWidth = Param.Unsigned("Integer execute width")
|
|
executeFloatWidth = Param.Unsigned("Floating point execute width")
|
|
executeBranchWidth = Param.Unsigned("Branch execute width")
|
|
executeMemoryWidth = Param.Unsigned("Memory execute width")
|
|
|
|
iewToCommitDelay = Param.Unsigned("Issue/Execute/Writeback to commit "
|
|
"delay")
|
|
renameToROBDelay = Param.Unsigned("Rename to reorder buffer delay")
|
|
commitWidth = Param.Unsigned("Commit width")
|
|
squashWidth = Param.Unsigned("Squash width")
|
|
|
|
local_predictor_size = Param.Unsigned("Size of local predictor")
|
|
local_ctr_bits = Param.Unsigned("Bits per counter")
|
|
local_history_table_size = Param.Unsigned("Size of local history table")
|
|
local_history_bits = Param.Unsigned("Bits for the local history")
|
|
global_predictor_size = Param.Unsigned("Size of global predictor")
|
|
global_ctr_bits = Param.Unsigned("Bits per counter")
|
|
global_history_bits = Param.Unsigned("Bits of history")
|
|
choice_predictor_size = Param.Unsigned("Size of choice predictor")
|
|
choice_ctr_bits = Param.Unsigned("Bits of choice counters")
|
|
|
|
BTBEntries = Param.Unsigned("Number of BTB entries")
|
|
BTBTagSize = Param.Unsigned("Size of the BTB tags, in bits")
|
|
|
|
RASSize = Param.Unsigned("RAS size")
|
|
|
|
LQEntries = Param.Unsigned("Number of load queue entries")
|
|
SQEntries = Param.Unsigned("Number of store queue entries")
|
|
LFSTSize = Param.Unsigned("Last fetched store table size")
|
|
SSITSize = Param.Unsigned("Store set ID table size")
|
|
|
|
numPhysIntRegs = Param.Unsigned("Number of physical integer registers")
|
|
numPhysFloatRegs = Param.Unsigned("Number of physical floating point "
|
|
"registers")
|
|
numIQEntries = Param.Unsigned("Number of instruction queue entries")
|
|
numROBEntries = Param.Unsigned("Number of reorder buffer entries")
|
|
|
|
instShiftAmt = Param.Unsigned("Number of bits to shift instructions by")
|
|
|
|
function_trace = Param.Bool(False, "Enable function trace")
|
|
function_trace_start = Param.Tick(0, "Cycle to start function trace")
|