Commit graph

1047 commits

Author SHA1 Message Date
Steve Reinhardt
7c708c8d1b - Switch events to use a priority enum instead of integers.
This lets us centralize priorities so we can see what's going on.
- Shift serialize & cpu-switch events to happen before CPU ticks (to be
consistent with starting new CPU on same cycle instead of next cycle).
- Get rid of unnecessary bus stats reset callback.

cpu/simple_cpu/simple_cpu.cc:
sim/debug.cc:
sim/eventq.hh:
sim/serialize.cc:
sim/sim_events.cc:
sim/sim_events.hh:
    Switch events to use a priority enum instead of integers.
    This lets us centralize priorities so we can see what's going on.

--HG--
extra : convert_revision : 510d79b43c0a1c97a10eb65916f7335b1de8b956
2003-12-11 08:29:52 -08:00
Steve Reinhardt
777c1ebfab Stats & serialization tweaks & cleanup. Unserializing from
a checkpoint now gives identical results to running from scratch
and doing at switchover at the same cycle!
- CPUs start at cycle 0 again, not cycle 1.
- curTick is now serialized & unserialized.
- Stats get reset in main (before event loop).  Since this is done
after curTick is unserialized, simTicks gets set correctly for
running from a checkpoint.
- Simplify serialization to happen in a single pass.
- s/Serializeable/Serializable/

arch/alpha/isa_traits.hh:
dev/etherlink.hh:
sim/eventq.cc:
sim/eventq.hh:
    s/Serializeable/Serializable/
kern/tru64/tru64_system.cc:
sim/process.cc:
    Make initial CPU activation on cycle 0 again (not 1).
sim/main.cc:
    Reset stats before getting started.
    Make error message on falling out of event loop
    more meaningful.
sim/serialize.cc:
sim/serialize.hh:
    Get rid of now-useless initial pass; serialization is
    done in a single pass now.
    Serialize & unserialize curTick.
    Wrap curTick and mainEventQueue in a "globals" Serializable object.
    s/Serializeable/Serializable/
sim/sim_object.cc:
    Add static function to serialize all SimObjects.
sim/sim_object.hh:
    Add static function to serialize all SimObjects.
    s/Serializeable/Serializable/

--HG--
extra : convert_revision : 9dcc411d0009b54b8eb61c3a509680b81b9f6f68
2003-12-11 00:16:46 -08:00
Steve Reinhardt
7e6dcd812c Rename RegResetCallback to registerResetCallback().
Add reset callback for bus (to fix idle cycles computation).

base/statistics.cc:
base/statistics.hh:
sim/sim_object.cc:
    Rename RegResetCallback to registerResetCallback().

--HG--
extra : convert_revision : c886c98143d4851f709ef95de3120b4494f8e4d2
2003-12-10 17:49:41 -08:00
Steve Reinhardt
4ce6118fda Factor ExecContext::setStatus(), BaseCPU::execCtxStatusChange(),
and SimpleCPU::setStatus() into separate functions.  For example,
setStatus(Active) is now activate().

--HG--
extra : convert_revision : 4392e07caf6c918db0b535f613175109681686fe
2003-12-10 17:47:28 -08:00
Steve Reinhardt
db6038937d Minor fixes. Somehow do-tests.pl suddenly started failing
on test5 because of a wrong exit code; fixed that.

sim/main.cc:
    No need to ignore SIGPIPE, as far as I know.
sim/sim_events.cc:
    A CountedExitEvent is a normal termination, so
    should have an exit code of 0.

--HG--
extra : convert_revision : 8b5072aca54f3ca08b2815b73ac01c00e4da49b6
2003-12-09 20:25:52 -08:00
Steve Reinhardt
3d8cd20467 Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : c8d6f2e6f590b7d1940b889bbec09e0e46f48c86
2003-12-09 16:43:54 -08:00
Nathan Binkert
06aafccce7 Make the simulator compile on an Itanium.
base/hashmap.hh:
    Not all machines need these extra hash functions
    also make Counter int64_t since that's really what is needed

--HG--
extra : convert_revision : b5b5d65db157d01d76adbf4de4882b1516c9f2e7
2003-12-09 17:41:08 -05:00
Steve Reinhardt
a1dcdeb3d8 Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : c74b502bf44ac300e44c9aa7d6d6e3c55a511893
2003-12-09 14:21:46 -08:00
Steve Reinhardt
5e360051cf Minor tweaks to make a switchover at tick N match
restarting from a checkpoint at tick N.

cpu/simple_cpu/simple_cpu.cc:
    On a CPU switchover, schedule the new CPU's first tick event
    for curTick+1 instead of curTick.

--HG--
extra : convert_revision : f0757d6f028214d36c1cff992db688fd6e8a6fdc
2003-12-09 14:21:38 -08:00
Steve Reinhardt
f13509e968 Generate a fault when a privileged PAL call is
executed in non-privileged (non-PAL) mode.

--HG--
extra : convert_revision : c8823a1eec27d801a1ed6110ade07354c4dd2a32
2003-12-09 14:19:35 -08:00
Nathan Binkert
368de4109f Sweeping change in the stats package....again...
base/statistics.cc:
    -  Merge the m5 display and simplescalar compatible display functions.
    -  Use functors for the stats printing instead of functions.  This
    gets rid of the very long argument lists and improves clarity.
    -  Fix a bug in binning that caused an invalid allocation to occur.
base/statistics.hh:
    -  Instead of using a compile time variable to choose whether
    to print in ss compat mode, we use a runtime variable.
    This is how we'll choose python output.
    -  There are no more virtual functions in the statistics themselves.
    All virtual functions have been moved into a secondary helper class.
    Every stat has an associated helper class that knows how to access
    certain variables in that stat.
    There is a hash_map from the stat to it's helper class data.  This was
    done because the helper data is only used during setup, stats reset,
    and printing.  All of which happen rarely, and you want to avoid
    any performance hit that you can.
    -  To provide the name(), desc(), etc functions to classes so that the
    user can set various parameters to the stats class, a single class
    containing all of those functions was created.  An odd trick was
    done to actually make this class derive from the stat class because
    a base class with no data actually does end up taking up space.
    -  The detail namespace was removed for now.  I'll put it back when the
    package is not in so much flux.
    -  Standard deviation, and mean were added to all distribution stats.
    -  There are several bugfixes and changes that aren't mentioned
test/Makefile:
    Don't test sim_stats foo.
test/stattest.cc:
    Don't test sim_stats foo.
    Fix bin usage so that it corresponds to the current usage.

--HG--
extra : convert_revision : ce8d9a8d485a84d55799f253d851e83650684170
2003-12-09 13:05:43 -05:00
Steve Raasch
f8b78a81b9 Remove mostly-broken binning stuff from "get"
Add parser debugging command-line option

--HG--
extra : convert_revision : 2f8a450f11ed10c3d1a5e8e58232aa8f3e5994c2
2003-12-08 17:34:14 -05:00
Steve Raasch
9511bc025d Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/y/sraasch/m5

--HG--
extra : convert_revision : 4e50e20af73d181de7365c9b77de78d70fcede8d
2003-12-08 17:13:18 -05:00
Steve Raasch
ac51f420c7 Fetch-loss now uses the stats package
--HG--
extra : convert_revision : c930a849e866177ceb67ec5db9444e8cfb4e0694
2003-12-08 17:12:45 -05:00
Nathan Binkert
1d7c11af7d Instead of keeping track of the fraction of time that we're
idle, keep track of the fraction of time we're not idle.  This
works better because the default processor state is idle, and
the default stat value is 0.
Keep the stat as idleFraction which is a formula that is equal
to 1 - notIdleFraction

--HG--
extra : convert_revision : 331c2e46f45ae0abda46988567ac2c4f7c42ccad
2003-12-08 14:01:48 -05:00
Nathan Binkert
0ff2457bfa move setStatus into the .cc file
--HG--
extra : convert_revision : 9ccf885274d72ea3151a0db76b580dd51763edab
2003-12-08 13:15:18 -05:00
Steve Reinhardt
37a718e45e Various cleanup. Mostly forcing initialization of some fields...
I noticed that checkpoints dumped from m5.debug and m5.opt had
differences, which is no longer the case (other than addresses
encoded in names).

cpu/full_cpu/smt.hh:
    Get rid of unused SMT_MAX_CPUS.
sim/debug.cc:
    Use AutoDelete for DebugBreakEvent.
sim/serialize.cc:
sim/serialize.hh:
    Move constructor & destructor to header so they can be inlined.

--HG--
extra : convert_revision : bc68c2c9b053b1de0d655ed555734419fafd0b83
2003-12-06 09:57:59 -08:00
Lisa Hsu
b6c77fe6f8 remote_gdb.cc:
fix remote gdb

base/remote_gdb.cc:
    fix remote gdb

--HG--
extra : convert_revision : 886cad5037e2124e6087be03f2903f07aeed0679
2003-12-04 19:26:31 -05:00
Steve Raasch
a229495400 Minor fixes to the Segmented and Seznec IQ models
--HG--
extra : convert_revision : c8f9dc0465da1b119d6cf7d4eb599f0a16a25c92
2003-12-03 12:48:57 -05:00
Steve Reinhardt
9984b2bd6c Formatting & doxygen docs for new syscall emulation code.
arch/alpha/alpha_linux_process.cc:
arch/alpha/alpha_linux_process.hh:
arch/alpha/alpha_tru64_process.cc:
arch/alpha/alpha_tru64_process.hh:
sim/syscall_emul.cc:
sim/syscall_emul.hh:
    Formatting & doxygen.

--HG--
extra : convert_revision : 4f07dd37e254120800dd0d5c0eb47acc9c00cb3f
2003-12-01 22:39:27 -08:00
Steve Reinhardt
745f0044cd Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : d66ebc598fdcfc9477ea5a1e455b21d7b9e56936
2003-12-01 19:34:51 -08:00
Steve Reinhardt
7976794aad Restructuring of LiveProcess etc. to support multiple emulated OS syscall
interfaces, and specific support for Alpha Linux.  Split syscall emulation
functions into several groups, based on whether they depend on the specific
OS and/or architecture (and all combinations of above), including the use of
template functions to support syscalls with slightly different constants
or interface structs.

arch/alpha/alpha_tru64_process.cc:
    Incorporate full Tru64 object definition here, including structure and constant definitions.
    This way we can wrap all of the functions inside the object, and not worry about namespace
    conflicts because no one outside this file will ever see it.
base/loader/aout_object.cc:
base/loader/aout_object.hh:
base/loader/ecoff_object.cc:
base/loader/ecoff_object.hh:
base/loader/elf_object.cc:
base/loader/elf_object.hh:
base/loader/object_file.cc:
base/loader/object_file.hh:
    Add enums to ObjectFile to indicate the object's architecture and operating system.
cpu/exec_context.cc:
    prog.hh is now process.hh
cpu/exec_context.hh:
    prog.hh is now process.hh
    move architecture-specific syscall arg accessors into ExecContext
cpu/simple_cpu/simple_cpu.cc:
    No need to include prog.hh (which has been renamed)
sim/process.cc:
sim/process.hh:
    LiveProcess is now effectively an abstract base class.
    New LiveProcess::create() function takes an object file and dynamically picks the
    appropriate subclass of LiveProcess to handle the syscall interface that file expects
    (currently Tru64 or Linux).

--HG--
rename : arch/alpha/fake_syscall.cc => arch/alpha/alpha_tru64_process.cc
rename : sim/prog.cc => sim/process.cc
rename : sim/prog.hh => sim/process.hh
extra : convert_revision : 4a03ca7d94a34177cb672931f8aae83a6bad179a
2003-12-01 19:34:38 -08:00
Erik Hallnor
5b24b5a5c5 Change the way writebacks are handled to make probing easier. Minor fixes to get coherence-test to work again.
--HG--
extra : convert_revision : 86915c6651e72ca4cbf85111599e451237f74a71
2003-11-25 18:11:48 -05:00
Erik Hallnor
6f1fa02f51 Extract documentation for all classes.
--HG--
extra : convert_revision : 17428b19a2230199a8ac79b7d8f727d58d3428ac
2003-11-24 15:46:39 -05:00
Lisa Hsu
c02fc7e99f get rid of the errors from simple-test1 and test1-6
base/statistics.cc:
    fix how some stats are printed to get rid of some of those pesky regression errors.  this does not fix all of them, just the unimportant ones.

--HG--
extra : convert_revision : 247675fd5bbb47e29c8c077a8d2b2996be1b7072
2003-11-23 12:57:16 -05:00
Nathan Binkert
55a7490a11 Go Blue!!!!
base/statistics.hh:
    Simple formatting fixes

--HG--
extra : convert_revision : 608fe1c37f58426d65cb5ec172764a6b610be6c8
2003-11-22 15:12:56 -05:00
Nathan Binkert
713e2b12e4 Merge zizzer.eecs.umich.edu:/bk/m5
into zans.eecs.umich.edu:/z/binkertn/research/m5/stats

--HG--
extra : convert_revision : cc1611895ad790cdaff75f752f10c048a5bff323
2003-11-22 15:09:30 -05:00
Nathan Binkert
d1e12b57ce We only need to choose that we do want binning, or we don't.
no need for multiple bin classes.  If multiple bins are needed, we
can always do it with ini type config instead.

kern/tru64/tru64_events.hh:
sim/system.cc:
sim/system.hh:
    No more GenBin always use MainBin

--HG--
extra : convert_revision : 8c466f302324c33b59d47d0da04583b2517fc72c
2003-11-22 15:07:53 -05:00
Erik Hallnor
d760ca18ab Merge ehallnor@zizzer:/bk/m5 into zazzer.eecs.umich.edu:/z/ehallnor/m5
--HG--
extra : convert_revision : 184533b3ec794bdff49cd1a6b8f2814f7af4237c
2003-11-20 23:03:42 -05:00
Lisa Hsu
e5eb961274 full_cpu.cc:
change name of numTicks to "numTicks" instead of "number of ticks" (which screws up scripts).

--HG--
extra : convert_revision : 9f68c5586743ea4c284609b405d5d9f23bd7cd49
2003-11-20 08:06:33 -05:00
Erik Hallnor
3e57b99ad6 Pass all the related information (the memreq) to the findBlock call. Working towards not caring about block addresses anymore.
--HG--
extra : convert_revision : 5700b8e843cd97c9bf1793d81615e65f1cf1e1aa
2003-11-19 16:41:41 -05:00
Erik Hallnor
24061d5bff Pass MemReqPtr by reference.
--HG--
extra : convert_revision : 141d50bb0bb010cee38231ec7b7289fa834b37d5
2003-11-19 16:40:05 -05:00
Erik Hallnor
65ea19b6f5 Move some MSHR typedefs into the class, transition from MSHRblah to MSHR::blah.
--HG--
extra : convert_revision : 4deb260e4374ca05f965cfc27169e838971d5e0f
2003-11-19 15:26:14 -05:00
Nathan Binkert
92348c503c make the name consistent with what it does.
--HG--
extra : convert_revision : 34ad9362bfe8a80a4c4ed332f7254f99da51c015
2003-11-15 12:32:36 -05:00
Nathan Binkert
123d0294b5 Make it so that we create a directory for each checkpoint so that
there aren't so many files littering your directory

dev/disk_image.cc:
    Checkpoints now in a directory
sim/serialize.hh:
    Make it so that we create a directory for each checkpoint so that
    there aren't so many files littering your directory.
    Remove unused variable

--HG--
extra : convert_revision : 261824eee62f7b68f6ae6e3dbd49ad5128ced148
2003-11-14 01:19:16 -05:00
Nathan Binkert
0bd909277d statistics.cc:
Only reactivate the original bin if it actually exists.

base/statistics.cc:
    Only reactivate the original bin if it actually exists.

--HG--
extra : convert_revision : e71ba0680d79ca439487a31d8f365429bff8c375
2003-11-12 15:23:31 -05:00
Nathan Binkert
74aaf2401c in the case where we don't have any bins, we don't want to panic
--HG--
extra : convert_revision : e9056ca020d0f3db388b31a074b03e4d521f8705
2003-11-12 14:59:58 -05:00
Steve Reinhardt
94f98b43b3 Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : bb9bba89ad0b25b0a4748bf46b714e2259321ad9
2003-11-12 10:36:12 -08:00
Steve Reinhardt
166bb3fff4 Change setup scheme to split base configurations from configuration options.
Completely backward compatible except for setup file locations.
See comment in setup script for more details.

--HG--
extra : convert_revision : 4e4a28bcbe36e0c6fd688dd133274bb80ae442f5
2003-11-12 10:35:48 -08:00
Erik Hallnor
790d1da2fa Merge ehallnor@zizzer:/bk/m5
into zizzer.eecs.umich.edu:/y/ehallnor/work/m5

--HG--
extra : convert_revision : 7835ada99c5ff47a9013d2827311a24e1447ac16
2003-11-12 11:59:04 -05:00
Erik Hallnor
d41cf8bd24 Create a compressed cache if there is a compressed bus or data should be stored compressed
--HG--
extra : convert_revision : eade8951bed25a222e5e1ee370d431ec5c0a200d
2003-11-12 11:58:56 -05:00
Steve Reinhardt
bfed4de8f4 Add config for simple purely functional simulation (no caches).
--HG--
extra : convert_revision : e2466d051e67d76e841416deeb95974c8f9516fe
2003-11-12 08:41:09 -08:00
Steve Reinhardt
0a7f82da7d Rewrite getdirentries to replace SS-derived version.
--HG--
extra : convert_revision : 72eced315bbb331d3068279e60f1f0a390eb687a
2003-11-12 08:40:32 -08:00
Steve Reinhardt
7651e19cd1 Minor enhancements to rundiff script.
util/rundiff:
    Make sure Algorithm::Diff is loaded only if you need it
    (so it's ok if you don't have it installed).
    Add command-line options for things you might want to change:
    - diff algorithm
    - # of context lines
    - # of lines of lookahead

--HG--
extra : convert_revision : b3ba02e1816eee286f47eb28ab578fa4734bac3a
2003-11-09 20:36:54 -08:00
Steve Reinhardt
ebaecd1b6c Setup to build with gcc 3.3.2.
--HG--
extra : convert_revision : 27e73ded6c1a2089427391bfdf1afa1f020ba14f
2003-11-09 10:39:44 -08:00
Steve Reinhardt
ba0672a2e2 ISCA hack is for FULL_SYSTEM only.
--HG--
extra : convert_revision : a90fec583e6147bda8023da7f405aeecdb469128
2003-11-09 10:03:33 -08:00
Steve Raasch
e8a682c3c4 Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/y/sraasch/new_head

--HG--
extra : convert_revision : 05dbe5ff1097b16430b647e599e56c556683c026
2003-11-07 17:49:50 -05:00
Steve Raasch
4ff3843027 updates for the new stats format
--HG--
extra : convert_revision : 7da435e2369a0ab4647f033e9ce16125ac7b9302
2003-11-07 17:45:59 -05:00
Steve Raasch
541598bc6f It's important that there be white-space between each element
of a printed statistics line.

base/statistics.cc:
    Add spaces between printed elements

--HG--
extra : convert_revision : edcc9460fa178c39f7e3c15b3bad866ef9b263e4
2003-11-07 08:35:55 -05:00
Nathan Binkert
7f7dcf4e1f add a couple of hacks to get thigns going for ISCA
arch/alpha/pseudo_inst.hh:
    Give temporary access of these functions to full cpu junk
    (this is a hack!)

--HG--
extra : convert_revision : 35499d6bf03b1c21dc918ccc09a6d21719262120
2003-11-07 05:06:22 -05:00