gem5.git
18 years agoThis changeset gets the MIPS ISA pretty much working in the O3CPU. It builds, runs...
Korey Sewell [Sun, 23 Jul 2006 17:39:42 +0000 (13:39 -0400)]
This changeset gets the MIPS ISA pretty much working in the O3CPU. It builds, runs, and gets very very close to completing the hello world
succesfully but there are some minor quirks to iron out. Who would've known a DELAY SLOT introduces that much complexity?! arrgh!

Anyways, a lot of this stuff had to do with my project at MIPS and me needing to know how I was going to get this working for the MIPS
ISA. So I figured I would try to touch it up and throw it in here (I hate to introduce non-completely working components... )

src/arch/alpha/isa/mem.isa:
    spacing
src/arch/mips/faults.cc:
src/arch/mips/faults.hh:
    Gabe really authored this
src/arch/mips/isa/decoder.isa:
    add StoreConditional Flag to instruction
src/arch/mips/isa/formats/basic.isa:
    Steven really did this file
src/arch/mips/isa/formats/branch.isa:
    fix bug for uncond/cond control
src/arch/mips/isa/formats/mem.isa:
    Adjust O3CPU memory access to use new memory model interface.
src/arch/mips/isa/formats/util.isa:
    update LoadStoreBase template
src/arch/mips/isa_traits.cc:
    update SERIALIZE partially
src/arch/mips/process.cc:
src/arch/mips/process.hh:
    no need for this for NOW. ASID/Virtual addressing handles it
src/arch/mips/regfile/misc_regfile.hh:
    add in clear() function and comments for future usage of special misc. regs
src/cpu/base_dyn_inst.hh:
    add in nextNPC variable and supporting functions.

    add isCondDelaySlot function

    Update predTaken and mispredicted functions
src/cpu/base_dyn_inst_impl.hh:
    init nextNPC
src/cpu/o3/SConscript:
    add MIPS files to compile
src/cpu/o3/alpha/thread_context.hh:
    no need for my name on this file
src/cpu/o3/bpred_unit_impl.hh:
    Update RAS appropriately for MIPS
src/cpu/o3/comm.hh:
    add some extra communication variables to aid in handling the
    delay slots
src/cpu/o3/commit.hh:
    minor name fix for nextNPC functions.
src/cpu/o3/commit_impl.hh:
src/cpu/o3/decode_impl.hh:
src/cpu/o3/fetch_impl.hh:
src/cpu/o3/iew_impl.hh:
src/cpu/o3/inst_queue_impl.hh:
src/cpu/o3/rename_impl.hh:
    Fix necessary variables and functions for squashes with delay slots
src/cpu/o3/cpu.cc:
    Update function interface ...

    adjust removeInstsNotInROB function to recognize delay slots insts
src/cpu/o3/cpu.hh:
    update removeInstsNotInROB
src/cpu/o3/decode.hh:
    declare necessary variables for handling delay slot
src/cpu/o3/dyn_inst.hh:
    Add in MipsDynInst
src/cpu/o3/fetch.hh:
src/cpu/o3/iew.hh:
src/cpu/o3/rename.hh:
    declare necessary variables and adjust functions for handling delay slot
src/cpu/o3/inst_queue.hh:
src/cpu/simple/base.cc:
    no need for my name here
src/cpu/o3/isa_specific.hh:
    add in MIPS files
src/cpu/o3/scoreboard.hh:
    dont include alpha specific isa traits!
src/cpu/o3/thread_context.hh:
    no need for my name here, i just rearranged where the file goes
src/cpu/static_inst.hh:
    add isCondDelaySlot function
src/cpu/o3/mips/cpu.cc:
src/cpu/o3/mips/cpu.hh:
src/cpu/o3/mips/cpu_builder.cc:
src/cpu/o3/mips/cpu_impl.hh:
src/cpu/o3/mips/dyn_inst.cc:
src/cpu/o3/mips/dyn_inst.hh:
src/cpu/o3/mips/dyn_inst_impl.hh:
src/cpu/o3/mips/impl.hh:
src/cpu/o3/mips/params.hh:
src/cpu/o3/mips/thread_context.cc:
src/cpu/o3/mips/thread_context.hh:
    MIPS file for O3CPU...mirrors ALPHA definition

--HG--
extra : convert_revision : 9bb199b4085903e49ffd5a4c8ac44d11460d988c

18 years agoMinor changes to reflect state used for regression stats.
Kevin Lim [Wed, 19 Jul 2006 20:09:34 +0000 (16:09 -0400)]
Minor changes to reflect state used for regression stats.

src/cpu/checker/cpu.hh:
    Don't count checker's instructions towards total instructions committed.
src/python/m5/objects/Root.py:
    Set default clock to 1 THz.

--HG--
extra : convert_revision : 0b5eaa197c860c361a3b00087e45ddc249ff1918

18 years agoPut regression tests back into m5. They are located in the "tests" directory. The...
Kevin Lim [Wed, 19 Jul 2006 20:07:25 +0000 (16:07 -0400)]
Put regression tests back into m5.  They are located in the "tests" directory.  The directory output and reference outputs have changed slightly.  Now the directory is ALPHA_SE/test/<test>/<cpu_model>/, and for the reference stats <test>/ref/<arch>/<cpu_model>

Right now only non-SMT SE regression tests have been added back in.  The rest are pending getting SMT working, and consolidating the FS configuration files.

Eventually support for different OSs can be added so you can specify which versions of the binary you want to run from one config file.

Note: mp-test1 doesn't have any reference stats because MP mode doesn't currently work.  The test itself should probably work once the code is fixed.

SConstruct:
    Updates to allow for regression tests to work via the command line "scons build/ALPHA_SE/test/debug/quick" and such once again.
src/cpu/SConscript:
    Keep a list of SMT supporting CPUs so that the regression tests can easily specify which CPUs to use if they are SMT only.

--HG--
extra : convert_revision : 34e6286150aae8f316ae694f6c00be8f510522f2

18 years agoGet the path to load the ini file from. I'm not sure if this fix is needed in other...
Kevin Lim [Wed, 19 Jul 2006 19:28:53 +0000 (15:28 -0400)]
Get the path to load the ini file from.  I'm not sure if this fix is needed in other places as well.

src/sim/main.cc:
    Get the path to load the ini file from.

--HG--
extra : convert_revision : aa38fc9b1bc99cd74d095cbfc67253e4549f91d3

18 years agoO3CPU fixes.
Kevin Lim [Wed, 19 Jul 2006 19:28:02 +0000 (15:28 -0400)]
O3CPU fixes.

src/cpu/o3/lsq_unit.hh:
    LSQ needs to decrement the WB counter if the load is going to be replayed.
src/cpu/o3/lsq_unit_impl.hh:
    LSQ needs to decrement the WB counter if the load is squashed.

--HG--
extra : convert_revision : 20a10baf0d6ab46065e561ddba231251865ebdbd

18 years agoSome minor compiling fixes.
Kevin Lim [Wed, 19 Jul 2006 19:26:48 +0000 (15:26 -0400)]
Some minor compiling fixes.

src/cpu/o3/iew.hh:
    Non-debug compile fixes.
src/cpu/simple/atomic.cc:
src/cpu/simple/atomic.hh:
    Merge fix.

--HG--
extra : convert_revision : 38081925d2b74d8f64acdb65dba94b2bf465b16a

18 years agoUpdate configs.
Kevin Lim [Wed, 19 Jul 2006 19:24:22 +0000 (15:24 -0400)]
Update configs.

configs/test/test.py:
    Update for changes to SEConfig.

--HG--
extra : convert_revision : a089a7db4035889db01d543d9a18ea6526f832ca

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Wed, 19 Jul 2006 18:46:05 +0000 (14:46 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-merge

--HG--
extra : convert_revision : 06cb509fbbce882793997db275ff7c54058ae619

18 years agoupdate test3
Korey Sewell [Mon, 17 Jul 2006 20:50:20 +0000 (16:50 -0400)]
update test3

--HG--
extra : convert_revision : e41feeee87d1da348604a37f7349900dcbd3a4d9

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Fri, 14 Jul 2006 21:54:43 +0000 (17:54 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-merge

configs/test/fs.py:
configs/test/test.py:
    SCCS merged

--HG--
extra : convert_revision : 7b2dbcd5881fac01dec38001c4131e73b5be52b5

18 years agoMinor updates.
Kevin Lim [Fri, 14 Jul 2006 21:53:16 +0000 (17:53 -0400)]
Minor updates.

src/python/m5/config.py:
    Formatting.
src/python/m5/main.py:
    Slightly more useful output when you don't enter in a valid script file.

--HG--
extra : convert_revision : 5a71a6c94dbedeb000f83f57b0b575c2df924509

18 years agoFix the CheckerCPU being included via python.
Kevin Lim [Fri, 14 Jul 2006 21:51:29 +0000 (17:51 -0400)]
Fix the CheckerCPU being included via python.

src/arch/SConscript:
    Fixes for including the CheckerCPU if it's specified via command line.  Previously the env variable was actually being modified.
src/cpu/SConscript:
    Copy the CPU_MODELS from the env, don't create a proxy to it.

--HG--
extra : convert_revision : 7d069bd93a6834ccaa1c378b2bc76dce76745c19

18 years agoforgot tid
Korey Sewell [Fri, 14 Jul 2006 17:22:35 +0000 (13:22 -0400)]
forgot tid

--HG--
extra : convert_revision : 272ef8f9cd0802770edc4dcef2c26dc44de71e47

18 years agoFor now, halt context is the same as deallocating.
Korey Sewell [Fri, 14 Jul 2006 17:06:37 +0000 (13:06 -0400)]
For now, halt context is the same as deallocating.
suspend context will now take the thread off the activeThread list.

src/arch/mips/isa_traits.cc:
    add in copy MiscRegs unimplemented function

--HG--
extra : convert_revision : 3ed5320b3786f84d4bb242e3a32b6f415339c3ba

18 years agoMIPS specific fixes ... the main thing is that SMT threads get their own stack space...
Korey Sewell [Fri, 14 Jul 2006 08:52:08 +0000 (04:52 -0400)]
MIPS specific fixes ... the main thing is that SMT threads get their own stack space instead of all stacks start to space

src/arch/mips/isa_traits.hh:
    MaxAddr is defined in config.py now
src/arch/mips/process.cc:
    adjust process so SMT threads get their own stack space
src/arch/mips/process.hh:
    add stack_start static variable

--HG--
extra : convert_revision : 73fdf3da9831d86536651835d209806c7f0d59da

18 years agoMerge zizzer:/bk/newmem
Ali Saidi [Thu, 13 Jul 2006 19:50:09 +0000 (15:50 -0400)]
Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem

src/python/m5/main.py:
    merge two help fixes

--HG--
extra : convert_revision : b5c4a88bb84b726bebd3e357a4ef29acc0d95600

18 years agofix help when no arguments are passed to m5
Ali Saidi [Thu, 13 Jul 2006 19:48:41 +0000 (15:48 -0400)]
fix help when no arguments are passed to m5

--HG--
extra : convert_revision : ee6614166fd5814654309298abe5a706ff02c4c2

18 years agoadd system.mem_mode = ['timing', 'atomic']
Ali Saidi [Thu, 13 Jul 2006 19:48:17 +0000 (15:48 -0400)]
add system.mem_mode = ['timing', 'atomic']
update scripts acordingly

configs/test/SysPaths.py:
    new syspaths from nate, this one allows you to set script, binary, and disk paths like
    system.dir = 'aouaou' in your script
configs/test/fs.py:
    update for system mem_mode
    Put small checkpoint example
    Make clock 1THz
configs/test/test.py:
src/arch/alpha/freebsd/system.cc:
src/arch/alpha/linux/system.cc:
src/arch/alpha/system.cc:
src/arch/alpha/tru64/system.cc:
src/arch/sparc/system.cc:
src/python/m5/objects/System.py:
src/sim/system.cc:
src/sim/system.hh:
    update for system mem_mode
src/dev/io_device.cc:
    Use time returned from sendAtomic to delay

--HG--
extra : convert_revision : 67eedb3c84ab2584613faf88a534e793926fc92f

18 years agoMove Dcache port creation from LSQUnit to LSQ in order to support Ron's recent change...
Kevin Lim [Thu, 13 Jul 2006 17:12:51 +0000 (13:12 -0400)]
Move Dcache port creation from LSQUnit to LSQ in order to support Ron's recent changes, and using the O3CPU in SMT mode.

src/cpu/o3/lsq.hh:
    Update to have LSQ work with only one dcache port for all LSQ Units.  LSQ has the dcache port, and the LSQ Units must tell the LSQ if the cache has become blocked.
src/cpu/o3/lsq_impl.hh:
    Updates to have the LSQ work with only one dcache port for all LSQUnits.
src/cpu/o3/lsq_unit.hh:
src/cpu/o3/lsq_unit_impl.hh:
    Update for LSQ to create dcache port instead of LSQUnits.  Now LSQUnits are given the dcache port from the LSQ, and also must check the LSQ if the cache is blocked prior to accessing the cache.

--HG--
extra : convert_revision : 2708adbf323f4e7647dc0c1e31ef5bb4596b89f8

18 years agoFix for bug when squashing and the fetching. Now fetch checks if the cache data...
Kevin Lim [Thu, 13 Jul 2006 17:09:29 +0000 (13:09 -0400)]
Fix for bug when squashing and the fetching.  Now fetch checks if the cache data is valid.

--HG--
extra : convert_revision : 07b8eda3e90bbbb3ed470c8cc3cf1b63371ab529

18 years agoUpdate for changes to draining.
Kevin Lim [Thu, 13 Jul 2006 17:08:58 +0000 (13:08 -0400)]
Update for changes to draining.

--HG--
extra : convert_revision : 5038dd8be72827f40cf89318db0b2bb4f9bbd864

18 years agoFix help message printing. Might need to clean up the handling of the sys.exit(...
Kevin Lim [Thu, 13 Jul 2006 16:21:21 +0000 (12:21 -0400)]
Fix help message printing.  Might need to clean up the handling of the sys.exit() call, as right now it prints out "None" at the end (not sure why).

src/python/m5/main.py:
    Fix help message printing.

--HG--
extra : convert_revision : 6906234101eb7ff7df7933e9aede0362b5a991bd

18 years agomemory mode information now contained in system object
Ali Saidi [Thu, 13 Jul 2006 00:22:07 +0000 (20:22 -0400)]
memory mode information now contained in system object
States are now running, draining, or drained. memory state information moved into system object
system parameter is not fs only for cpus
Implement drain() support in devices
Update for drain() call that returns number of times drain_event->process() will be called

Break O3 CPU! No sense in putting in a hack change that kevin is going to remove in a few minutes i imagine

src/cpu/simple/atomic.cc:
src/cpu/simple/atomic.hh:
    Since se mode has a system, allow access to it
    Verify that the atomic cpu is connected to an atomic system on resume
src/cpu/simple/base.cc:
    Since se mode has a system, allow access to it
src/cpu/simple/timing.cc:
src/cpu/simple/timing.hh:
    Update for new drain() call that returns number of times drain_event->process() will be called and memory state being moved into the system
    Since se mode has a system, allow access to it
    Verify that the timing cpu is connected to an timing system on resume
src/dev/ide_disk.cc:
src/dev/io_device.cc:
src/dev/io_device.hh:
src/dev/ns_gige.cc:
src/dev/ns_gige.hh:
src/dev/pcidev.cc:
src/dev/pcidev.hh:
src/dev/sinic.cc:
src/dev/sinic.hh:
    Implement drain() support in devices
src/python/m5/config.py:
    Allow drain to return number of times drain_event->process() will be called. Normally 0 or 1 but things like O3 cpu or devices with multiple ports may want to call it many times
src/python/m5/objects/BaseCPU.py:
    move system parameter out of fs to everyone
src/sim/sim_object.cc:
src/sim/sim_object.hh:
    States are now running, draining, or drained. memory state information moved into system object
src/sim/system.cc:
src/sim/system.hh:
    memory mode information now contained in system object

--HG--
extra : convert_revision : 1389c77e66ee6d9710bf77b4306fb47e107b21cf

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Wed, 12 Jul 2006 21:21:25 +0000 (17:21 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-merge

configs/test/test.py:
    Hand merge.

--HG--
extra : convert_revision : e3fce9cf50a65a9400cd3ec887b13e4765274ec2

18 years agoBe sure to include the EIO sources as well so we can run regression tests.
Kevin Lim [Wed, 12 Jul 2006 21:20:01 +0000 (17:20 -0400)]
Be sure to include the EIO sources as well so we can run regression tests.

src/SConscript:
    It's no longer "ALPHA_ISA".  I don't think we meant to leave out the EIO sources.

--HG--
extra : convert_revision : 1ca63ffb571d9021f1ced0bf0df1816b0b798edc

18 years agoSerialization changes to make O3CPU consistent with the other models.
Kevin Lim [Wed, 12 Jul 2006 21:18:34 +0000 (17:18 -0400)]
Serialization changes to make O3CPU consistent with the other models.

src/cpu/o3/commit_impl.hh:
    Always set instruction.  This is necessary for serialization as the instruction is also serialized.
src/cpu/o3/cpu.cc:
    Change serialization so it matches other CPU's output.  Also fix up some indexing.

--HG--
extra : convert_revision : 52f6e183132d177bed6e29dd7cf0c10aed6d8534

18 years agoInitial try of consolidating configuration files so they can be shared more easily...
Kevin Lim [Wed, 12 Jul 2006 21:17:17 +0000 (17:17 -0400)]
Initial try of consolidating configuration files so they can be shared more easily, especially across regression tests and simple examples.

configs/test/fs.py:
    Pull a lot of the default options out of the config file now that they are in the Python objects themselves.  Also merge this file with the single_fs.py, allowing one file to be used for both.  Previously they differed only by the system they instantiated.
configs/test/test.py:
    Initial stab at consolidating configuration files so they aren't redundant between the regression tests and the simple examples.

--HG--
extra : convert_revision : e8ae3de5a6d8864831f21089d4fdb8ec690e4731

18 years agoPush more default options to the Python object level as they are rarely changed....
Kevin Lim [Wed, 12 Jul 2006 21:16:00 +0000 (17:16 -0400)]
Push more default options to the Python object level as they are rarely changed.  These are the changes that Steve was working on.

src/python/m5/objects/DiskImage.py:
src/python/m5/objects/Ethernet.py:
src/python/m5/objects/Ide.py:
src/python/m5/objects/Tsunami.py:
    Push more default options to the Python object level as they are rarely changed.

--HG--
extra : convert_revision : 963eb7a34cd04529b3c5f24b92904ab725c93efb

18 years agoUpdates for serialization. As long as the tickEvent doesn't need to be serialized...
Kevin Lim [Wed, 12 Jul 2006 21:11:57 +0000 (17:11 -0400)]
Updates for serialization.  As long as the tickEvent doesn't need to be serialized (I don't believe it does because we drain all CPUs prior to checkpointing), it should be feasible to start up from other CPU's checkpoints.

src/cpu/simple/atomic.cc:
src/cpu/simple/atomic.hh:
src/cpu/simple/base.cc:
src/cpu/simple/timing.cc:
src/cpu/simple_thread.cc:
    Updates for serialization.

--HG--
extra : convert_revision : 0f150de75d4bc833e4c9b83568e7fd22688d5727

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Wed, 12 Jul 2006 19:25:34 +0000 (15:25 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem

src/cpu/o3/fetch_impl.hh:
    Hand merge.

--HG--
extra : convert_revision : 820dab2bc921cbadecaca51cd069327f984f5c74

18 years agoTrack the PC of the cache data stored in fetch so it doesn't access memory multiple...
Kevin Lim [Wed, 12 Jul 2006 19:24:27 +0000 (15:24 -0400)]
Track the PC of the cache data stored in fetch so it doesn't access memory multiple times if information is already in fetch.

--HG--
extra : convert_revision : 00b160b255e998cf99286bcc21894110c7642624

18 years agoAdd --pdb
Nathan Binkert [Wed, 12 Jul 2006 19:21:23 +0000 (15:21 -0400)]
Add --pdb

src/python/m5/main.py:
    Add a command line option to invoke pdb on your script

--HG--
extra : convert_revision : ef5a2860bd3f6e479fa80eccaae0cb5541a20b50

18 years agoMerge m5.eecs.umich.edu:/bk/newmem
Nathan Binkert [Wed, 12 Jul 2006 19:19:08 +0000 (15:19 -0400)]
Merge m5.eecs.umich.edu:/bk/newmem
into  iceaxe.:/Volumes/work/research/m5/current

--HG--
extra : convert_revision : 842a23da034c40c75364b76ca75de076da776ac6

18 years agoFix __file__ for scripts
Nathan Binkert [Wed, 12 Jul 2006 19:18:49 +0000 (15:18 -0400)]
Fix __file__ for scripts

src/python/m5/main.py:
    set __file__ to the script, not the m5 binary.

--HG--
extra : convert_revision : a0bbd059d2fd321ae8ff68225abc8a7bb5c410ed

18 years agoAdd a cache version of FS (should really make this an option in original)
Ron Dreslinski [Tue, 11 Jul 2006 20:03:42 +0000 (16:03 -0400)]
Add a cache version of FS (should really make this an option in original)

Now to work on caches in FS, first steps:
1) LL/SC support (Top Level Cache Hooks)
2) Snooping in the bus (CSHR's for DMA Invalidates)

--HG--
extra : convert_revision : b4e7984712f7dcd42649070c5ca538c87461e179

18 years agoMerge zizzer:/z/m5/Bitkeeper/newmem
Ron Dreslinski [Tue, 11 Jul 2006 19:42:49 +0000 (15:42 -0400)]
Merge zizzer:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/.automount/zazzer/z/rdreslin/m5bk/newmem

--HG--
extra : convert_revision : 3be1aa4892aa8bbd458bdc5538bbcbd6c1ebe299

18 years agoFix ordering issue with squashed Icache Fetches and Static data in packet.
Ron Dreslinski [Tue, 11 Jul 2006 19:42:31 +0000 (15:42 -0400)]
Fix ordering issue with squashed Icache Fetches and Static data in packet.

Now hello world works with 2 levels of cache with O3 CPU(multiple outstanding requests).

src/cpu/o3/fetch_impl.hh:
    Fix ordering issue with squashed Icache Fetches and Static data in packet.

--HG--
extra : convert_revision : a6adb87540b007ead0b4982cb3f31da8199fb5ca

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Tue, 11 Jul 2006 17:43:30 +0000 (13:43 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem

--HG--
extra : convert_revision : c565fd7cebaa4058ba510b3db50a9c76bf301228

18 years agoFix option parsing.
Nathan Binkert [Tue, 11 Jul 2006 15:28:59 +0000 (11:28 -0400)]
Fix option parsing.

src/python/m5/main.py:
    Don't allow interspersed arguments, it messes things up

--HG--
extra : convert_revision : 8f1bcf4391f570741d92bf5420879862a48f6016

18 years agoMigrate most of main() and and all option parsing to python
Nathan Binkert [Tue, 11 Jul 2006 03:00:13 +0000 (23:00 -0400)]
Migrate most of main() and and all option parsing to python

configs/test/fs.py:
configs/test/test.py:
    update for the new way that m5 deals with options
src/python/SConscript:
    Compile AUTHORS, LICENSE, README, and RELEASE_NOTES into the
    python stuff.
src/python/m5/__init__.py:
    redo the way options work.
    Move them all to main.py
src/sim/main.cc:
    Migrate more functionality for main() into python.
    Namely option parsing
src/python/m5/attrdict.py:
    A dictionary object that overrides attribute access to
    do item access.
src/python/m5/main.py:
    The new location for M5's option parsing, and the main()
    routine to set up the simulation.

--HG--
extra : convert_revision : c86b87a9f508bde1994088e23fd470c7753ee4c1

18 years agoMerge zizzer:/z/m5/Bitkeeper/newmem
Ron Dreslinski [Mon, 10 Jul 2006 21:19:54 +0000 (17:19 -0400)]
Merge zizzer:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/.automount/zazzer/z/rdreslin/m5bk/newmem

--HG--
extra : convert_revision : c811eb9eacc480b14862f8074af80c56ec1e07f1

18 years agoSome fixes so that MSHR's are matched and we don't issue overlapping requests with...
Ron Dreslinski [Mon, 10 Jul 2006 21:16:15 +0000 (17:16 -0400)]
Some fixes so that MSHR's are matched and we don't issue overlapping requests with detailed cpu

src/mem/cache/base_cache.cc:
    If we still have outstanding requests, need to schedule event again
src/mem/cache/miss/miss_queue.cc:
    Need to use block size so overlapping requests match in the MSHR's
src/mem/cache/miss/mshr.cc:
    Actually save the address, otherwise we can't match MSHR's

--HG--
extra : convert_revision : f0f018b89c2fb99f3ce8d6eafc0712ee8edeeda8

18 years agoMinor fixes.
Kevin Lim [Mon, 10 Jul 2006 20:31:42 +0000 (16:31 -0400)]
Minor fixes.

src/cpu/checker/thread_context.hh:
src/cpu/ozone/cpu.hh:
src/cpu/ozone/cpu_impl.hh:
    Change functions to match Korey's changes.
src/cpu/ozone/lw_back_end.hh:
    Fix compile error.

--HG--
extra : convert_revision : fb11ac2d6db3a75c1cdbad2c1c02f921ad7344a6

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Mon, 10 Jul 2006 19:41:35 +0000 (15:41 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-merge

--HG--
extra : convert_revision : 0e4c7684879b8552908e0b64a00b4824de807244

18 years agoSome minor cleanups.
Kevin Lim [Mon, 10 Jul 2006 19:41:28 +0000 (15:41 -0400)]
Some minor cleanups.

src/cpu/SConscript:
    Change the error message to be slightly nicer.
src/cpu/o3/commit.hh:
    Remove old code.
src/cpu/o3/commit_impl.hh:
    Remove old unused code.

--HG--
extra : convert_revision : 48aa430e1f3554007dd5e4f3d9e89b5e4f124390

18 years agoAdd parameters for backwards and forwards sizes for time buffers.
Kevin Lim [Mon, 10 Jul 2006 19:40:28 +0000 (15:40 -0400)]
Add parameters for backwards and forwards sizes for time buffers.

src/base/timebuf.hh:
    Add a function to return the size of the time buffer.

--HG--
extra : convert_revision : 8ffacd8b9013eb76264df065244e00dc1460efd4

18 years agoUpdate config for a system with an L2
Ron Dreslinski [Mon, 10 Jul 2006 16:42:35 +0000 (12:42 -0400)]
Update config for a system with an L2

--HG--
extra : convert_revision : c73a532ad6ad8d5115bda81fa778a4b97fbab713

18 years agoFix offset calculation. Now L2's work with timing&atomic.
Ron Dreslinski [Mon, 10 Jul 2006 16:35:18 +0000 (12:35 -0400)]
Fix offset calculation.  Now L2's work with timing&atomic.

src/mem/packet.hh:
    Offset is based on packet, not request.

--HG--
extra : convert_revision : d85af5838370541328ca35072c612d8198020625

18 years agoUpdate FS configs to use cpu connectors for ports
Ron Dreslinski [Mon, 10 Jul 2006 16:07:21 +0000 (12:07 -0400)]
Update FS configs to use cpu connectors for ports

--HG--
extra : convert_revision : 1e2e503401f92c1f30e2e487d7aeed1c7c5b7ee4

18 years agoFix cpu in full system to match SE.
Ron Dreslinski [Mon, 10 Jul 2006 16:03:13 +0000 (12:03 -0400)]
Fix cpu in full system to match SE.

--HG--
extra : convert_revision : 95e422221ff5bab6104925d50a8882d31729b0f5

18 years agoMerge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
Korey Sewell [Fri, 7 Jul 2006 23:02:12 +0000 (19:02 -0400)]
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-o3

--HG--
extra : convert_revision : 9098d989832e2a5818b80771e3c02170c5c8cd5b

18 years agoSupport for recent port changes.
Kevin Lim [Fri, 7 Jul 2006 22:24:13 +0000 (18:24 -0400)]
Support for recent port changes.

src/cpu/ozone/cpu.hh:
src/cpu/ozone/cpu_impl.hh:
src/cpu/ozone/front_end.hh:
src/cpu/ozone/front_end_impl.hh:
src/cpu/ozone/lw_back_end.hh:
src/cpu/ozone/lw_lsq.hh:
src/cpu/ozone/lw_lsq_impl.hh:
src/python/m5/objects/OzoneCPU.py:
    Support Ron's recent port changes.
src/cpu/ozone/lw_back_end_impl.hh:
    Support Ron's recent port changes.  Also support handling faults in SE.

--HG--
extra : convert_revision : aa1ba5111b70199c052da3e13bae605525a69891

18 years agoSupport Ron's changes for hooking up ports.
Kevin Lim [Fri, 7 Jul 2006 21:33:24 +0000 (17:33 -0400)]
Support Ron's changes for hooking up ports.

src/cpu/checker/cpu.hh:
    Now that BaseCPU is a MemObject, the checker must define this function.
src/cpu/o3/cpu.cc:
src/cpu/o3/cpu.hh:
src/cpu/o3/fetch.hh:
src/cpu/o3/iew.hh:
src/cpu/o3/lsq.hh:
src/cpu/o3/lsq_unit.hh:
    Implement getPort function so the connector can connect the ports properly.
src/cpu/o3/fetch_impl.hh:
src/cpu/o3/lsq_unit_impl.hh:
    The connector handles connecting the ports now.
src/python/m5/objects/O3CPU.py:
    Add ports to the parameters.

--HG--
extra : convert_revision : 0b1a216b9a5d0574e62165d7c6c242498104d918

18 years agoFix for bug when draining and a memory access is outstanding.
Kevin Lim [Fri, 7 Jul 2006 20:48:44 +0000 (16:48 -0400)]
Fix for bug when draining and a memory access is outstanding.

--HG--
extra : convert_revision : 1af782cf023ae74c2a3ff9f7aefcea880bc87936

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Fri, 7 Jul 2006 20:47:28 +0000 (16:47 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-merge

--HG--
extra : convert_revision : e8933f852352164f4e50444f94cc6ee260e06766

18 years agoTake the name of the checkpoint directory in when calling checkpoint() or restoreChec...
Kevin Lim [Fri, 7 Jul 2006 20:46:08 +0000 (16:46 -0400)]
Take the name of the checkpoint directory in when calling checkpoint() or restoreCheckpoint().

src/sim/main.cc:
src/sim/serialize.cc:
src/sim/serialize.hh:
    Take in the directory name when checkpointing.

--HG--
extra : convert_revision : 040e828622480f1051e2156f4439e24864c38d45

18 years agoMerge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
Korey Sewell [Fri, 7 Jul 2006 20:19:13 +0000 (16:19 -0400)]
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-o3

--HG--
extra : convert_revision : be8b295ebf54a7c6bf720a20ab6aa9f02aee8060

18 years agoFix address range calculation. Still need bus to handle snoop ranges.
Ron Dreslinski [Fri, 7 Jul 2006 20:02:22 +0000 (16:02 -0400)]
Fix address range calculation.  Still need bus to handle snoop ranges.
On the way towards multi-level caches (L2)

src/mem/cache/base_cache.cc:
src/mem/cache/base_cache.hh:
    Fix address range calculation.  Still need bus to handle snoop ranges.

--HG--
extra : convert_revision : 800078d88aab5e563f4a9bb599f91cd44f36e625

18 years agoMerge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
Korey Sewell [Fri, 7 Jul 2006 19:58:22 +0000 (15:58 -0400)]
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-o3

--HG--
extra : convert_revision : f97469b7d19c82deb3d068f80546d729757c25e3

18 years agoMinor fix for SMT Hello Worlds to finish correctly.
Korey Sewell [Fri, 7 Jul 2006 19:58:03 +0000 (15:58 -0400)]
Minor fix for SMT Hello Worlds to finish correctly.
Still, there is a problem with the LSQ and indexing out of range in the buffer.
I havent nailed down the fix yet, but it's coming ...

src/cpu/o3/commit_impl.hh:
    add space to DPRINT
src/cpu/o3/cpu.cc:
    add newline to DPRINT
src/cpu/o3/rob.hh:
src/cpu/o3/rob_impl.hh:
    Each thread needs it's own squashedSeqNum for the case where they are both squashing at the same time and they dont
    write over each other's squash number.

--HG--
extra : convert_revision : 2155421a8b5b20e4544eea3d3c53d3e715465fa6

18 years agoSwitch out fixes for CPUs.
Kevin Lim [Fri, 7 Jul 2006 19:38:15 +0000 (15:38 -0400)]
Switch out fixes for CPUs.

src/cpu/o3/cpu.cc:
    Fix up keeping proper state when switched out and drained.
src/cpu/simple/timing.cc:
src/cpu/simple/timing.hh:
    Keep track of the event we use to schedule fetch initially and upon resume.  We may have to cancel the event if the CPU is switched out.

--HG--
extra : convert_revision : 60a2a1bd2cdc67bd53ca4a67aa77166c826a4c8c

18 years agoRemove hack now that ports work properly
Ron Dreslinski [Fri, 7 Jul 2006 19:16:41 +0000 (15:16 -0400)]
Remove hack now that ports work properly

--HG--
extra : convert_revision : 43c22294867d7cbbc67ae66ec41a1d1c89f5a59d

18 years agoUpdate cpus to use the getPort function to use a connector object to connect the...
Ron Dreslinski [Fri, 7 Jul 2006 19:15:11 +0000 (15:15 -0400)]
Update cpus to use the getPort function to use a connector object to connect the I/D cache ports to memory

configs/test/test.py:
    Update to use new cpu getPort functionality
src/cpu/base.cc:
    Make cpu's a memObject to expose getPort interface
src/cpu/base.hh:
    Make cpu's a memObject to export getPort interface
src/cpu/simple/atomic.cc:
src/cpu/simple/atomic.hh:
src/cpu/simple/timing.cc:
src/cpu/simple/timing.hh:
    Now use the connector via getPort interface
src/mem/cache/base_cache.cc:
    Make sure the cache recognizes all port names

--HG--
extra : convert_revision : dbfefa978ec755bc8aa6f962ae158acf32dafe61

18 years agoMerge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
Korey Sewell [Fri, 7 Jul 2006 08:07:00 +0000 (04:07 -0400)]
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-o3

--HG--
extra : convert_revision : 90717b492139428e0c48be35a6bda45960c61086

18 years agoFix so that O3CPU doesnt segfault on exit.
Korey Sewell [Fri, 7 Jul 2006 08:06:26 +0000 (04:06 -0400)]
Fix so that O3CPU doesnt segfault on exit.
Major thing was to not execute commit if there are no active threads in CPU.

src/cpu/o3/alpha/thread_context.hh:
    call deallocate instead of deallocateContext
src/cpu/o3/commit_impl.hh:
    dont run commit stage if there are no instructions
src/cpu/o3/cpu.cc:
    add deallocate event, deactivateThread function, and edit deallocateContext.
src/cpu/o3/cpu.hh:
    add deallocate event and add optional delay to deallocateContext
src/cpu/o3/thread_context.hh:
    optional delay for deallocate
src/cpu/o3/thread_context_impl.hh:
    edit DPRINTFs to say Thread Context instead of Alpha TC
src/cpu/thread_context.hh:
    optional delay
src/sim/syscall_emul.hh:
    name stuff

--HG--
extra : convert_revision : f4033e1f66b3043d30ad98dcc70d8b193dea70b6

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Fri, 7 Jul 2006 03:20:44 +0000 (23:20 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-merge

--HG--
extra : convert_revision : 942c43e2fdd68cde7aaaba5e88a667f80feab162

18 years agoBe sure to call resume after restoring from a checkpoint.
Kevin Lim [Fri, 7 Jul 2006 03:16:22 +0000 (23:16 -0400)]
Be sure to call resume after restoring from a checkpoint.

--HG--
extra : convert_revision : 4d672917038779a23f4ce7eb5d4e3039c1f5d726

18 years agoSupport serializing and unserializing in the O3 CPU. Also a few small fixes for...
Kevin Lim [Fri, 7 Jul 2006 03:13:38 +0000 (23:13 -0400)]
Support serializing and unserializing in the O3 CPU.  Also a few small fixes for draining/switching CPUs.

src/cpu/o3/commit_impl.hh:
    Fix to clear drainPending variable on call to resume.
src/cpu/o3/cpu.cc:
src/cpu/o3/cpu.hh:
    Support serializing and unserializing in the O3 CPU.
src/cpu/o3/lsq_impl.hh:
    Be sure to say we have no stores to write back if the active thread list is empty.
src/cpu/simple_thread.cc:
src/cpu/simple_thread.hh:
    Slightly change how SimpleThread is used to copy from other ThreadContexts.

--HG--
extra : convert_revision : 92a5109b3783a989d5b451036061ef82c56d3121

18 years agoFix the O3CPU to support the multi-pass method for checking if the system has fully...
Kevin Lim [Thu, 6 Jul 2006 21:57:20 +0000 (17:57 -0400)]
Fix the O3CPU to support the multi-pass method for checking if the system has fully drained.

src/cpu/o3/commit.hh:
src/cpu/o3/commit_impl.hh:
src/cpu/o3/decode.hh:
src/cpu/o3/decode_impl.hh:
src/cpu/o3/fetch.hh:
src/cpu/o3/fetch_impl.hh:
src/cpu/o3/iew.hh:
src/cpu/o3/iew_impl.hh:
src/cpu/o3/rename.hh:
src/cpu/o3/rename_impl.hh:
    Return a value so that the CPU can instantly return from draining if the pipeline is already drained.
src/cpu/o3/cpu.cc:
    Use values returned from pipeline stages so that the CPU can instantly return from draining if the pipeline is already drained.

--HG--
extra : convert_revision : d8ef6b811644ea67c8b40c4719273fa224105811

18 years agoVarious serialization changes to make it possible for the O3CPU to checkpoint.
Kevin Lim [Thu, 6 Jul 2006 21:53:26 +0000 (17:53 -0400)]
Various serialization changes to make it possible for the O3CPU to checkpoint.

src/arch/alpha/regfile.hh:
    Define serialize/unserialize functions on MiscRegFile itself.
src/cpu/o3/regfile.hh:
    Remove old commented code.
src/cpu/simple_thread.cc:
src/cpu/simple_thread.hh:
    Push common serialization code to ThreadState level.  Also allow the SimpleThread to be used for checkpointing by other models.
src/cpu/thread_state.cc:
src/cpu/thread_state.hh:
    Move common serialization code into ThreadState.

--HG--
extra : convert_revision : ef64ef515355437439af967eda2e610e8c1b658b

18 years agoTiming cache works for hello world test.
Ron Dreslinski [Thu, 6 Jul 2006 20:52:05 +0000 (16:52 -0400)]
Timing cache works for hello world test.
Still need
1) detailed CPU (blocking ability in cache)
1a) Multiple outstanding requests (need to keep track of times for events)
2)Multi-level support
3)MP coherece support
4)LL/SC support
5)Functional path needs to be correctly implemented (temporarily works without multiple outstanding requests (simple cpu))

src/cpu/simple/timing.cc:
    Temp hack because timing cpu doesn't export ports properly so single I/D cache communicates only through the Icache port.
src/mem/cache/base_cache.cc:
    Handle marking MSHR's in service
    Add support for getting CSHR's
src/mem/cache/base_cache.hh:
    Make these functions visible at the base cache level
src/mem/cache/cache.hh:
    make the functions virtual
src/mem/cache/cache_impl.hh:
    Rename the function to make sense
src/mem/packet.hh:
    Accidentally clearing the needsResponse field when sending a response back.

--HG--
extra : convert_revision : 2325d4e0b77e470fa9da91490317dc8ed88b17e2

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Thu, 6 Jul 2006 20:51:50 +0000 (16:51 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem

--HG--
extra : convert_revision : 7c7fc8a2f9579d443786e86dbcf906b355de69fc

18 years agoTwo minor FS compile fixes.
Kevin Lim [Thu, 6 Jul 2006 20:26:44 +0000 (16:26 -0400)]
Two minor FS compile fixes.

src/dev/tsunami_pchip.hh:
    Need ULL() for 32-bit hosts.
src/sim/pseudo_inst.cc:
    Forgot to remove sampler include from here.

--HG--
extra : convert_revision : 6ab6bdc721290167b4c2b78da3d28a4992eb24d5

18 years agoFixes for draining.
Kevin Lim [Thu, 6 Jul 2006 20:06:00 +0000 (16:06 -0400)]
Fixes for draining.

src/cpu/simple/timing.cc:
    Update for changed return values.
src/python/m5/__init__.py:
    Loop in order to make sure all objects are really drained.  Objects may become undrained as other objects become drained (e.g. a bus-bridge has a packet, while a bus is empty, and the first drain() will cause the bus-bridge to give the packet to the bus).

    The only case we know every object is actually drained is if they all return immediately that they are drained.

--HG--
extra : convert_revision : 80057a1d6d30381bd0b67b23549bd202f447c5cb

18 years agoMerge zizzer:/z/m5/Bitkeeper/newmem
Ron Dreslinski [Thu, 6 Jul 2006 19:16:15 +0000 (15:16 -0400)]
Merge zizzer:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/.automount/zazzer/z/rdreslin/m5bk/newmem

--HG--
extra : convert_revision : 507eefde3514c35ca8420408cc89590d83cc6fc6

18 years agoNow timing reads work in single level of cache with simple cpu
Ron Dreslinski [Thu, 6 Jul 2006 19:15:37 +0000 (15:15 -0400)]
Now timing reads work in single level of cache with simple cpu

src/mem/cache/base_cache.cc:
src/mem/cache/base_cache.hh:
src/mem/cache/cache.hh:
    Changes to handle timing reads in Simple CPU (blocking buffers)

--HG--
extra : convert_revision : a2e7d4287d7cdfd1bbf9c929ecbeafde499a5b9f

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Thu, 6 Jul 2006 18:54:09 +0000 (14:54 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-merge

--HG--
extra : convert_revision : 0c4fbbe0826358a6a58f844bec34ce830ffd4ced

18 years agoMerge zizzer:/bk/newmem
Ali Saidi [Thu, 6 Jul 2006 18:41:09 +0000 (14:41 -0400)]
Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : 4669e87d29fa3e0ca9009f6b9dce72113220d7bc

18 years agoAdd default responder to bus
Ali Saidi [Thu, 6 Jul 2006 18:41:01 +0000 (14:41 -0400)]
Add default responder to bus
Update configuration for new default responder on bus
Update to devices to handle their own pci config space without pciconfigall
Remove most of pciconfigall, it now is a dumbdevice which gets it's address based on the bus it's supposed to respond for
Remove need for pci config space from platform, add registerPciDevice function to prevent more than one device from having same
bus:dev:func and interrupt
Remove pciconfigspace from pci devices, and py files
Add calcConfigAddr that returns address for config space based on bus/dev/function + offset

configs/test/fs.py:
    Update configuration for new default responder on bus
src/dev/ide_ctrl.cc:
src/dev/ide_ctrl.hh:
src/dev/ns_gige.cc:
src/dev/ns_gige.hh:
src/dev/pcidev.cc:
src/dev/pcidev.hh:
    Update to handle it's own pci config space without pciconfigall
src/dev/io_device.cc:
src/dev/io_device.hh:
    change naming for pio port
    break out recvTiming into two functions to reuse code
src/dev/pciconfigall.cc:
src/dev/pciconfigall.hh:
    removing most of pciconfigall, it now is a dumbdevice which gets it's address based on the bus it's supposed to respond for
src/dev/pcireg.h:
    add a max size for PCI config space (per PCI spec)
src/dev/platform.cc:
src/dev/platform.hh:
    remove need for pci config space from platform, add registerPciDevice function to prevent more than one device from having same
    bus:dev:func and interrupt
src/dev/sinic.cc:
    remove pciconfigspace as it's no longer a needed parameter
src/dev/tsunami.cc:
src/dev/tsunami.hh:
src/dev/tsunami_pchip.cc:
src/dev/tsunami_pchip.hh:
    add calcConfigAddr that returns address for config space based on bus/dev/function + offset (per PCI spec)
src/mem/bus.cc:
src/mem/bus.hh:
src/python/m5/objects/Bus.py:
    add idea of default responder to bus
src/python/m5/objects/Pci.py:
    add config port for pci devices
    add latency, bus and size parameters for pci config all (min is 8MB, max is 256MB see pci spec)

--HG--
extra : convert_revision : 99db43b0a3a077f86611d6eaff6664a3885da7c9

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Thu, 6 Jul 2006 17:59:13 +0000 (13:59 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-merge

--HG--
extra : convert_revision : 00f8eecf99c771ae8943ed1d3a652bfbcfe1c6bc

18 years agoSupport for draining, and the new method of switching out. Now switching out happens...
Kevin Lim [Thu, 6 Jul 2006 17:59:02 +0000 (13:59 -0400)]
Support for draining, and the new method of switching out.  Now switching out happens after the pipeline has been drained, deferring the three way handshake to the normal drain mechanism.  The calls of switchOut() and takeOverFrom() both take action immediately.

src/cpu/o3/commit.hh:
src/cpu/o3/commit_impl.hh:
src/cpu/o3/cpu.cc:
src/cpu/o3/cpu.hh:
src/cpu/o3/decode.hh:
src/cpu/o3/decode_impl.hh:
src/cpu/o3/fetch.hh:
src/cpu/o3/fetch_impl.hh:
src/cpu/o3/iew.hh:
src/cpu/o3/iew_impl.hh:
src/cpu/o3/rename.hh:
src/cpu/o3/rename_impl.hh:
    Support for draining, new method of switching out.

--HG--
extra : convert_revision : 05bf8b271ec85b3e2c675c3bed6c42aeba21f465

18 years agoChange the return value of drain. False means the object wasn't able to drain yet.
Kevin Lim [Thu, 6 Jul 2006 17:57:21 +0000 (13:57 -0400)]
Change the return value of drain.  False means the object wasn't able to drain yet.

src/python/m5/config.py:
    Invert the return value.
src/sim/sim_object.cc:
    Invert the return value of drain.
src/sim/sim_object.hh:
    Change the return value of drain.

--HG--
extra : convert_revision : 41bb122c6f29302d8b3815d7bd6a2ea8fba64df9

18 years agoHad to add this because for some reason gcc wasnt recognizing "THE_ISA == ALPHA_ISA...
Korey Sewell [Thu, 6 Jul 2006 16:29:34 +0000 (12:29 -0400)]
Had to add this because for some reason gcc wasnt recognizing "THE_ISA == ALPHA_ISA"... wierd but OK

--HG--
extra : convert_revision : f847d6c01212e32200a319c16596b8e1c1d15c7d

18 years agoMerge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
Korey Sewell [Thu, 6 Jul 2006 16:19:29 +0000 (12:19 -0400)]
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-o3

--HG--
extra : convert_revision : 2f08ea52ef54118d42aa590c0d86aa0cc7988713

18 years agoUse O3DynInst in cpu_models.py and in static_inst_exec_sigs.hh instead of a specific...
Korey Sewell [Thu, 6 Jul 2006 16:18:55 +0000 (12:18 -0400)]
Use O3DynInst in cpu_models.py and in static_inst_exec_sigs.hh instead of a specific ISA dyn. inst.

src/cpu/cpu_models.py:
    Use O3DynInst
src/cpu/o3/dyn_inst.hh:
    declare O3DynInst here based off of ISA ... this must be updated for each ISA.
src/cpu/static_inst.hh:
    take out O3 forward declarations here and include header file to keep this file clean

--HG--
extra : convert_revision : 0d65463479c3cfc2d1154935b1032dae32c5efd0

18 years agomore steps toward O3 SMT
Korey Sewell [Thu, 6 Jul 2006 15:25:44 +0000 (11:25 -0400)]
more steps toward O3 SMT

src/arch/mips/isa/formats/fp.isa:
    Adjust for newmem
src/cpu/cpu_models.py:
    Use O3DynInst instead of convoluted way
src/cpu/o3/alpha/impl.hh:
    take out O3DynInst typedef here ...
src/cpu/o3/cpu.cc:
    open up the SMT functions in the O3CPU
src/cpu/static_inst.hh:
    Add O3DynInst
src/cpu/o3/dyn_inst.hh:
    Use to get ISA-specific O3DynInst

--HG--
extra : convert_revision : 3713187ead93e336e80889e23a1f1d2f36d664fe

18 years agoFor now using the checkpoint or switchcpu pseudo instructions will return control...
Kevin Lim [Thu, 6 Jul 2006 03:38:11 +0000 (23:38 -0400)]
For now using the checkpoint or switchcpu pseudo instructions will return control to Python, returning the cause to be the instruction name.  The user's script must then interpret the reason for exiting the simulation loop and handle the action accordingly.  This may change in the future.

src/sim/pseudo_inst.cc:
    Exit sim loop with a specific string to indicate to Python what caused the exit.  The user's script needs to interpret the exit events and handle them as desired.

--HG--
extra : convert_revision : 8eb4a42285dacb3ada3a791173c605b5acb78598

18 years agoRemove sampler and serializer. Now they are handled through C++ interacting with...
Kevin Lim [Thu, 6 Jul 2006 01:14:36 +0000 (21:14 -0400)]
Remove sampler and serializer.  Now they are handled through C++ interacting with Python.

src/SConscript:
src/cpu/base.cc:
src/cpu/base.hh:
src/cpu/checker/cpu.hh:
src/cpu/checker/cpu_impl.hh:
src/cpu/o3/cpu.cc:
src/cpu/o3/cpu.hh:
src/cpu/o3/fetch.hh:
src/cpu/ozone/cpu.hh:
src/cpu/ozone/cpu_impl.hh:
src/cpu/simple/base.cc:
src/cpu/simple/base.hh:
src/sim/pseudo_inst.cc:
    Remove sampler.
src/sim/sim_object.cc:
    Remove serializer.

--HG--
extra : convert_revision : ce7616189440f3dc70040148da6d07309a386008

18 years agoRename quiesce to drain to avoid confusion with the pseudo instruction.
Kevin Lim [Wed, 5 Jul 2006 21:59:33 +0000 (17:59 -0400)]
Rename quiesce to drain to avoid confusion with the pseudo instruction.

src/cpu/simple/timing.cc:
src/cpu/simple/timing.hh:
src/python/m5/__init__.py:
src/python/m5/config.py:
src/sim/main.cc:
src/sim/sim_events.cc:
src/sim/sim_events.hh:
src/sim/sim_object.cc:
src/sim/sim_object.hh:
    Rename quiesce to drain.

--HG--
extra : convert_revision : fc3244a3934812e1edb8050f1f51f30382baf774

18 years agoChecker ignores any faults that occur in syscall emulation mode for now.
Kevin Lim [Wed, 5 Jul 2006 21:25:37 +0000 (17:25 -0400)]
Checker ignores any faults that occur in syscall emulation mode for now.

src/cpu/checker/cpu_impl.hh:
    The only fault we handle in SE causes troubles when invoked with the Checker.  This is because it changes state within the process, and not the checker, so the state isn't correct when the main CPU calls invoke.  It's safe to just ignore the fault in the Checker and continue.

--HG--
extra : convert_revision : 5000d763a75009c7a6011646a6790ac5b23df6bb

18 years agoFix up some merge problems.
Kevin Lim [Wed, 5 Jul 2006 20:54:24 +0000 (16:54 -0400)]
Fix up some merge problems.

src/base/traceflags.py:
    Remove BaseCPU traceflag.
src/cpu/o3/alpha/params.hh:
    Move non-Alpha specific parameters out of this params class.
src/cpu/o3/params.hh:
    Move non-Alpha specific params into this params class.

--HG--
extra : convert_revision : e5b652adb47a240376733400e6054c66c50bd514

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Wed, 5 Jul 2006 20:08:18 +0000 (16:08 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-merge

src/base/traceflags.py:
src/cpu/SConscript:
    Hand merge.
src/cpu/o3/alpha/params.hh:
    Hand merge.  This needs to get changed.

--HG--
rename : src/cpu/o3/alpha_cpu_builder.cc => src/cpu/o3/alpha/cpu_builder.cc
rename : src/cpu/o3/alpha_params.hh => src/cpu/o3/alpha/params.hh
rename : src/python/m5/objects/AlphaO3CPU.py => src/python/m5/objects/O3CPU.py
extra : convert_revision : 581f338f5bce35288f7d15d95cbd0ac3a9135e6a

18 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Wed, 5 Jul 2006 20:01:38 +0000 (16:01 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem

--HG--
extra : convert_revision : f5b6daa2d512f38153246fc9a39cc6560d939ebc

18 years agoNeed to change state upon quiescing.
Kevin Lim [Wed, 5 Jul 2006 19:57:02 +0000 (15:57 -0400)]
Need to change state upon quiescing.

--HG--
extra : convert_revision : 25e3b0a463a0191cab9290665409d0abca6a179a

18 years agoAlphabetize traceflags, rename FullCPUAll flag to O3CPUAll.
Kevin Lim [Wed, 5 Jul 2006 19:55:45 +0000 (15:55 -0400)]
Alphabetize traceflags, rename FullCPUAll flag to O3CPUAll.

--HG--
extra : convert_revision : f558966154376223674c82d513afc2dad6591426

18 years agoSplit off files that are shared across the O3 and Ozone models.
Kevin Lim [Wed, 5 Jul 2006 19:53:22 +0000 (15:53 -0400)]
Split off files that are shared across the O3 and Ozone models.

--HG--
extra : convert_revision : 023e84660d5cee5162d39548f87e5ca8ec68115f

18 years agoAdd some different parameters. The main change is that the writeback count is now...
Kevin Lim [Wed, 5 Jul 2006 19:51:36 +0000 (15:51 -0400)]
Add some different parameters.  The main change is that the writeback count is now limited so that it doesn't overflow the buffer.

src/cpu/o3/alpha_cpu_builder.cc:
src/cpu/o3/alpha_params.hh:
    Add in dispatchWidth, wbWidth, wbDepth parameters.  wbDepth is the number of cycles of wbWidth instructions that can be buffered.
src/cpu/o3/iew.hh:
    Include separate parameter for dispatch width.
    Also limit the number of outstanding writebacks so the writeback buffer isn't overflowed.  The IQ must make sure with the IEW stage that it can issue instructions prior to issuing.
src/cpu/o3/iew_impl.hh:
    Include separate parameter for dispatch width.
    Also limit the number of outstanding writebacks so the writeback buffer isn't overflowed.
src/cpu/o3/inst_queue_impl.hh:
    IQ needs to check with the IEW to make sure it can issue instructions, and increments the IEW wb counter each time there is an outstanding instruction that will writeback.
src/cpu/o3/lsq_unit_impl.hh:
    Be sure to decrement the writeback counter if there's a squashed load that returned.
src/python/m5/objects/AlphaO3CPU.py:
    Change the parameters to include dispatch width, writeback width, and writeback depth.

--HG--
extra : convert_revision : 31c8cc495273e3c481b79055562fc40f71291fc4

18 years agoFix some unset values in the request in the timing CPU.
Ron Dreslinski [Wed, 5 Jul 2006 19:13:27 +0000 (15:13 -0400)]
Fix some unset values in the request in the timing CPU.
Properly implement the MSHR allocate function.

src/cpu/simple/timing.cc:
    Set the thread context in the CPU.

    Need to do this properly, currently I just set it to Cpu=0 Thread=0.  This will just cause all the stats in the cache based on these to just yield totals and not a distribution.
src/mem/cache/miss/mshr.cc:
    Properly implement the allocate function for the MSHR.

--HG--
extra : convert_revision : bcece518e54ed1404db3196f996a77b4dd5c1c1e

18 years agoMerge ktlim@zamp:/z/ktlim2/clean/newmem-merge
Kevin Lim [Wed, 5 Jul 2006 17:22:46 +0000 (13:22 -0400)]
Merge ktlim@zamp:/z/ktlim2/clean/newmem-merge
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem

--HG--
extra : convert_revision : 20e45bec8c3911a6389a89e2d193aa1de867c89e

18 years agoFix for FS O3CPU compile ... missing forward class declaration/header file after...
Korey Sewell [Mon, 3 Jul 2006 16:19:35 +0000 (12:19 -0400)]
Fix for FS O3CPU compile ... missing forward class declaration/header file after files got split for ISA-independence

src/cpu/o3/alpha/thread_context.hh:
    Use 'this' when accessing cpu
src/cpu/o3/cpu.hh:
    add numActiveThreds function
src/cpu/o3/thread_context.hh:
    forward class declarations
src/cpu/o3/thread_context_impl.hh:
    add quiesce event header file
src/cpu/thread_context.hh:
    add exit() function to thread context (read comments in file)
src/sim/syscall_emul.cc:
    adjust exitFunc syscall

--HG--
extra : convert_revision : 323dc871e2b4f4ee5036be388ceb6634cd85a83e