Commit graph

709 commits

Author SHA1 Message Date
Steve Reinhardt
1d545281b9 Significant changes to ISA description to completely factor
out CPU model.  ISA description now generates multiple
output source files to (in theory) reduce compilation time.

arch/alpha/isa_desc:
    Update for parser changes.  Move most constructors
    out of class declarations (which are now in decoder.hh)
    and into decoder.cc.  Move all execute() methods into
    exec output.
arch/isa_parser.py:
    Significant changes to make ISA description completely
    independent of CPU model, and isolate model-dependent parts
    of parser into one little class (CpuModel).  Also split up code
    output into multiple files (a header, a main source file, and
    per-cpu execute() method files).

    Noticeable changes to language as a result.  See updated Doxygen
    documentation.
cpu/simple_cpu/simple_cpu.hh:
    SimpleCPUExecContext typedef no longer needed.
    Add forward declaration of Process.
cpu/static_inst.hh:
    SimpleCPUExecContext and FullCPUExecContext typedefs no longer needed.
    Make eaCompInst() and memAccInst() return const refs.

--HG--
extra : convert_revision : 71471f267804fafd0a881bac7445677e76334daf
2004-05-17 11:49:46 -07:00
Nathan Binkert
32a8827b3e Now that the generation stuff is working, make the gendir
work correctly.

--HG--
extra : convert_revision : 08a5147f5a5cac46800eeef47b4a23451a1139c2
2004-05-16 11:41:41 -04:00
Nathan Binkert
c6c7e24145 Make the build process deal with the target arch directory
and generated files a bit better.

--HG--
extra : convert_revision : e2216289bb53fd231e228c2d9d740317c00991bb
2004-05-16 09:28:06 -04:00
Nathan Binkert
f13926c099 Add VPtr class that makes it possible to esentially create
a pointer to an object that lives inside simulated memory.
Useful for doing a bit of analysis of what's going on in
the running kernel.

--HG--
extra : convert_revision : d78089cce5ec4334483a710ba512eaf18d9b0319
2004-05-13 08:08:42 -04:00
Nathan Binkert
2d8777a79b remove the annotation junk
arch/alpha/isa_desc:
    remove the annotation junk
    Move some code to AlphaPseudo where it belongs
arch/alpha/pseudo_inst.cc:
arch/alpha/pseudo_inst.hh:
    remove the annotation junk
    add pseudo instruction code that was previously misplaced

--HG--
extra : convert_revision : 97db8402aa34e0bdf044b138c52331fc9e714986
2004-05-13 08:03:36 -04:00
Nathan Binkert
8bc3ce93cb pass the address of both the old an new pcbb on context
switches.  (Makes other uncommitted code easier to merge.)

arch/alpha/ev5.cc:
    pass the address of both the old an new pcbb on context
    switches

--HG--
extra : convert_revision : bff8c8d1b532ad5f9af6270169bbfb1b5c05256a
2004-05-13 07:28:54 -04:00
Nathan Binkert
6a26c92d6f wrap mbuf stuff in the tru64 namespace since other OSes
may be different

--HG--
extra : convert_revision : 75ea218b5219c7a2b5bf7dca7c52dfff22740478
2004-05-13 07:00:31 -04:00
Nathan Binkert
ce697a592e Avoid sending a signal to ourselves if we're not debugging
--HG--
extra : convert_revision : d6ba1ce30bad4a44d716238a8107c3bff0ce89c4
2004-05-13 06:59:05 -04:00
Nathan Binkert
a4d7bb113a Make a new stat type of Value which is a scalar stat that
proxies for a real C/C++ scalar value or scalar functor.
This replaces the scalar() and functor() terms that were
previously used in formulas.  This helps when dumping
statistics because the formulas are not supposed to change.

cpu/base_cpu.cc:
    Add a number of cycles stat to the cpu object that tracks the
    number of cycles that the cpu has executed.  This starts to pave
    the way for cpu cycles being different from event ticks.
cpu/base_cpu.hh:
    provide a functor for calculating all simulated instructions
    of all CPUs and a virtual function for determining that number.
    To deal with the change from functor() to Value::functor()
cpu/simple_cpu/simple_cpu.cc:
    simTicks -> numCycles
    numInsts is now a real Scalar stat, not a Formula
cpu/simple_cpu/simple_cpu.hh:
    numInsts is now a real Scalar stat, not a Formula
    count all instructions
sim/stat_control.cc:
    simInsts, simTicks, hostMemory, and hostSeconds are no
    longer Statistics::Formula but rather Statistics::Value
    add new stat for tick frequency
sim/stats.hh:
    don't need everything to be extern.
test/Makefile:
    Make stuff work a tad bit better
test/stattest.cc:
    test out Statistics::Value

--HG--
extra : convert_revision : c812e8baa2b17c08abf3a68ed1e1125dc6f2cfb4
2004-05-12 15:49:01 -04:00
Steve Reinhardt
2cc4fd87eb dma_bus_interface_impl.hh:
Fix template param (breaks on g++ 3.3).

--HG--
extra : convert_revision : b469aa9aab105bbc5a72a20a48a4abd2e218ff8c
2004-05-10 22:21:04 -04:00
Steve Reinhardt
7cab07268f Do a better job of factoring out CPU model in ISA description.
(Still not perfect though.)

arch/alpha/isa_desc:
    Do a better job of factoring out CPU model.  (Still not perfect though.)
    Pull execute() methods out of class declarations into separate section
    of file, allowing (1) easier replication for different CPU models and
    (2) a path to putting them all in a separate file.  Force all instruction
    execution context into a single model-dependent class (SimpleCPU itself
    for SimpleCPU, DynInst for FullCPU).
arch/isa_parser.py:
    Do a better job of factoring out CPU model.  (Still not perfect though.)
    Pull execute() methods out of class declarations into separate section
    of file, allowing (1) easier replication for different CPU models and
    (2) a path to putting them all in a separate file.
    Also restructure top level to allow parser to run under interactive
    interpreter session for easier debugging.
cpu/exec_context.hh:
    Add a few new methods to clean up isa_desc.
cpu/simple_cpu/simple_cpu.cc:
cpu/static_inst.hh:
    StaticInst::execute no longer takes a CPU and an ExecContext,
    just a unified FooCPUExecContext.
cpu/simple_cpu/simple_cpu.hh:
    Add methods to redirect calls to ExecContext so SimpleCPU
    can act as sole instruction execution context for itself.
    Typedef SimpleCPU to SimpleCPUExecContext.

--HG--
extra : convert_revision : ecc445503bc585585da5663fe61796580e744da6
2004-05-10 16:10:47 -07:00
Steve Reinhardt
d66ae60f6b Very minor fixes.
util/tracediff:
    stats:file option is now stats:text_file

--HG--
extra : convert_revision : 74b6294da0003345e84bc1533d536dab271b6033
2004-05-08 23:32:30 -07:00
Steve Reinhardt
5685020c82 Merge
--HG--
extra : convert_revision : 7999c243a80482b9feffdf8f3dd4ff061b189377
2004-05-07 19:20:30 -07:00
Nathan Binkert
1d44903071 don't do dependencies on make generate
--HG--
extra : convert_revision : 0dac37a1676e795bf2ebf9572e37b6b78af7929a
2004-05-06 19:01:16 -04:00
Nathan Binkert
1a90fecc24 Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/.automount/ziff/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : 12234085865daa71e32981177d3376c93b3ed11e
2004-05-06 12:10:16 -04:00
Nathan Binkert
24715f50ac add support for sticking generated files in the build directory
instead of with the source code.  This will hopefully be especially
useful when we're generating dozens of files when we flesh out the
object description stuff.
remove generated files from the source tree.  python is required
to build now.

base/trace.hh:
    no need for the underscore in the name
base/traceflags.py:
    clean up code

--HG--
extra : convert_revision : f68af8c3460eb7e73a1defaea3081a02ad7db33c
2004-05-06 12:09:54 -04:00
Erik Hallnor
51e4d64551 Documentation fixes
--HG--
extra : convert_revision : 9f62115463e6e624a95ae83189dac21c593a2ee4
2004-05-05 20:57:07 -04:00
Nathan Binkert
569cb477d4 file used by old compile time binning which lisa's since fixed
--HG--
extra : convert_revision : b8ae8371fdf22b601bcfd15ce7c28af6ed081dc0
2004-05-04 23:44:09 -04:00
Nathan Binkert
6c3173bbe2 add a bit more data to the rob dump
--HG--
extra : convert_revision : 99f76a62d1a1f057868c4303905cc269fd56aab7
2004-05-04 23:42:15 -04:00
Nathan Binkert
25a358983a Major stats package cleanup
Add support for generic visitors for stats and use them
to implement independent output functions.

Support for mysql output and some initial code for hacking
on mysql output with python

arch/alpha/pseudo_inst.cc:
base/hybrid_pred.cc:
base/hybrid_pred.hh:
base/sat_counter.cc:
base/sat_counter.hh:
cpu/simple_cpu/simple_cpu.cc:
kern/tru64/tru64_events.cc:
sim/main.cc:
sim/process.cc:
sim/process.hh:
sim/sim_events.cc:
sim/sim_object.cc:
sim/system.hh:
    update for changes in stats package
base/statistics.cc:
    move the python output code to base/stats/puthon.(cc|hh)
    and reimplement it as a visitor.

    move the text output code to base/stats/text.(cc|hh) and
    reimplement it as a visitor.

    move the database stuff into base/stats/statdb.(cc|hh) and
    get rid of the class.  Put everything as globals in the
    Statistics::Database namespace.

    allocate unique ids for all stats.

    directly implement the check routine and get rid of the
    various dumping routines since they're now in separate files.

    make sure that no two stats have the same name

    clean up some loops
base/statistics.hh:
    major changes to the statistics package again

    lots of code was factored out of statistics.hh into several
    separate files in base/stats/ (this will continue)

    There are now two Stat package types Result and Counter that
    are specified to allow the user to keep the counted type
    separate from the result type.  They are currently both doubles
    but that's an experiment.  There is no more per stat ability to
    set the type.  Statistics::Counter is not the same as Counter!

    Implement a visitor for statistics output so that new output
    types can be implemented independently from the stats package
    itself.

    Add a unique id to each stat so that it can be used to keep
    track of stats more simply.  This number can also be used in
    debugging problems with stats.

    Tweak the bucket size stuff a bit to make it work better.

    fixed VectorDist size bug
cpu/memtest/memtest.cc:
    Fix up for changes in stats package
    Don't use value() since it doesn't work with binning.  If you
    want a number as a stat, and to use it in the program itself,
    you really want two separate variables, one that's a stat,
    and one that's not.
cpu/memtest/memtest.hh:
    Fix up for changes in stats package
test/Makefile:
    Try to build stuff now that directories matter
test/stattest.cc:
    test all new output types
    choose which one with command line options

--HG--
extra : convert_revision : e3a3f5f0828c67c0e2de415d936ad240adaddc89
2004-05-04 17:01:00 -04:00
Erik Hallnor
1eb08bcf89 Update for doxygen 1.3.6
--HG--
extra : convert_revision : e7a1820a5651dc68e2927194aeabd23a3d852487
2004-05-04 16:32:43 -04:00
Nathan Binkert
3a12b6d7ce Function for getting username
--HG--
extra : convert_revision : 50c0bf7b083e780071e85fabdcd6f91a96f4b2e3
2004-05-04 12:23:57 -04:00
Nathan Binkert
5ed057bb8b don't duplicate stat names
--HG--
extra : convert_revision : 2a19b12457cb19e233e4b133044ff95eb5d44e2f
2004-05-04 08:20:21 -04:00
Erik Hallnor
efbbd43a54 Derive from SimObject so stats are registered.
--HG--
extra : convert_revision : cbc70641235f040ebff6a98de7ff6384e06b8dbd
2004-04-29 02:12:49 -04:00
Erik Hallnor
841f6205f1 Change the way the DMAInterface works internally to make it easier to change things in the future.
--HG--
extra : convert_revision : 2f7275f95433918549e76b16a8903e5df2d0188c
2004-04-29 00:52:43 -04:00
Steve Reinhardt
d85b26d65a Minor enhancements to Python config stuff:
- Add support for assigning NULL to SimObject pointers.  In Python,
this is a special value, distinct from None.
- Initial, incomplete pass at regenerating C++ parameter code (declarations
and INIT_PARAM macros) from .odesc files.

util/config/m5config.py:
    - Add support for assigning NULL to SimObject pointers.  In Python,
    this is a special value, distinct from None.
    - Initial, incomplete pass at regenerating C++ parameter code (declarations
    and INIT_PARAM macros) from .odesc files.

--HG--
extra : convert_revision : d7ae8f32e30b3c0829fd1a60589dd998e2e0d0d7
2004-04-28 16:28:37 -07:00
Erik Hallnor
05f29b8d8d Merge ehallnor@zizzer:/bk/m5
into zizzer.eecs.umich.edu:/y/ehallnor/work/m5

--HG--
extra : convert_revision : f658c6d2e86a736702fcb88b0493904a72f5e47f
2004-04-28 16:14:29 -04:00
Erik Hallnor
3cfe87d95f Little updates do the documentation.
--HG--
extra : convert_revision : 647f2bc32064b1f330513d812d59357f01adc012
2004-04-28 16:12:20 -04:00
Erik Hallnor
851dc20bed Add an adaptive compression scheme.
--HG--
extra : convert_revision : 4ebf32976ba983cb3b9175cdf5f2e1359fa49c8b
2004-04-27 20:16:00 -04:00
Nathan Binkert
aa026cb009 Cleanup configs since bridges are now autosensing of addresses
and are bidirectional.

--HG--
extra : convert_revision : 840c940b4cee991f3a0c8e365fb60c0ef9166cf2
2004-04-22 18:10:35 -04:00
Erik Hallnor
407348adfb Fix the way write delay are sent on the data bus so that they are always sent. Also fixes the problem of sending both responses and write delays.
--HG--
extra : convert_revision : 3bb684526bf2ed5ab7b05c54d768291baf5dec02
2004-04-15 23:47:17 -04:00
Erik Hallnor
c053a94214 Code cleanup and debugging for the bus.
--HG--
extra : convert_revision : 8356dbf022e1aca71ff75f2947382af6a37d65b4
2004-04-14 18:44:38 -04:00
Erik Hallnor
db1b39cead Each direction in the BusBridge can now buffer max requests before blocking
--HG--
extra : convert_revision : c411cbf0affafebbc914d92d6691729fc3125486
2004-04-12 23:54:21 -04:00
Erik Hallnor
c7b0e5b58f Delete the new store data.
--HG--
extra : convert_revision : 1a03ab0500867e9855ff0cc343e29200c109cb1f
2004-04-12 23:52:53 -04:00
Erik Hallnor
f76c5ce05c Add data to stores to make compression results consistant across version of the code.
--HG--
extra : convert_revision : c72f46685e31cc93b1c1ddab78b8cf30473d4ac9
2004-04-12 22:07:33 -04:00
Erik Hallnor
cd232f6660 Connect the bus bridge up correctly, internally.
--HG--
extra : convert_revision : 323c0a79800721e4ecd253000095eb0a7a36bb29
2004-04-09 00:36:53 -04:00
Steve Reinhardt
d4069233eb Beta version of Python configuration tool. Generates .ini files from
Python script description.

arch/alpha/alpha_memory.cc:
dev/io_device.cc:
    Add DEFINE_SIM_OBJECT_CLASS_NAME for intermediate SimObjects.
test/paramtest.cc:
    Fix stupid spelling.

--HG--
extra : convert_revision : dc020208cb6507c1afb1ed771a7218daba678e09
2004-04-06 10:02:00 -07:00
Steve Reinhardt
82837b1c36 Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : ca1c124e667fb6d2927959a2078dd2e28c26cd2b
2004-04-05 11:01:01 -07:00
Steve Reinhardt
0ef91aa905 Changes to config to allow everything (including 'children'
and 'type') to be specified via instance name and not just
config class.  Old code only did instance-name lookup for
SimObject parameters.  This feature makes life easier for
transitioning to the Python script-based config.

sim/builder.cc:
    Use ConfigNode::find to look for "type" parameter so it can
    be found if set under instance name (not config class).
sim/param.cc:
    Make Param<bool> accept "1" for true and "0" for false.

--HG--
extra : convert_revision : f40d0878d0f03b2e216f0506c05d0e52db608cca
2004-04-05 11:00:48 -07:00
Erik Hallnor
704da6a10e Make BusBridge bidirectional. Add a new slave and master interface to help accomplish this.
--HG--
extra : convert_revision : 41bf9ce95e2965e13f7325b0b0b3be198ca86aee
2004-04-05 01:09:46 -04:00
Steve Reinhardt
65205b82ac More {Itb,Dtb} -> {ITB,DTB} renames (forgot to test build KERNEL).
Also missed renames in a bunch of config files somehow.
(See previous changeset for list of renames.)

arch/alpha/alpha_memory.cc:
arch/alpha/ev5.cc:
arch/alpha/faults.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/simple_cpu/simple_cpu.hh:
    More {Itb,Dtb} -> {ITB,DTB} renames (forgot to test build KERNEL).

--HG--
extra : convert_revision : b2c6ca0916b72b59895520fcacaf028667560a0d
2004-04-03 13:46:10 -08:00
Steve Reinhardt
b3b0a4705b Merge
--HG--
extra : convert_revision : dadfa2cd97908d769f1e2d5c645140f296ec6a82
2004-04-02 23:19:08 -08:00
Steve Reinhardt
782fb42992 Basic cleanup pass to get rid of a few things that made the Python
configuration unnecessarily awkward.  Biggest changes are:

- External and internal object names now match in all cases.  The
macros still allow them to be different; the only reason I didn't
get rid of that is that the macros themselves should be going away
soon.  In the few conflicting cases, I sometimes renamed the C++ object
and sometimes renamed the config object.  The latter sets of substitions
are:

s/BaseBus/Bus/;
s/MemoryObject/FunctionalMemory/;
s/MemoryControl/MemoryController/;
s/FUPool/FuncUnitPool/;

- SamplingCPU is temporarily broken... we need to change the model
of how this works in the .ini file.  Having it as a CPU proxy is
really awkward.

arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
cpu/simple_cpu/simple_cpu.cc:
sim/process.cc:
    Rename objects to match config name.
cpu/base_cpu.cc:
    Uncomment SimObject define since SamplingCPU no longer
    does this for us.
dev/ethertap.cc:
    Use unsigned instead of uint16_t for params.
kern/tru64/tru64_system.cc:
    Use unsigned instead of uint64_t for init_param param.
test/paramtest.cc:
    Fix old SimObjectParam.

--HG--
extra : convert_revision : 378ebbc6a71ad0694501d09979a44d111a59e8dc
2004-04-02 22:57:08 -08:00
Erik Hallnor
ae06629947 Add new range functions to DmaInterface as well.
--HG--
extra : convert_revision : 3a7aa3e6495de86c365128b4bd1ef41fe8ff4142
2004-04-02 04:13:48 -05:00
Erik Hallnor
92c1584f1a Add automatic bus bridge address range setting/resetting. You can no longer directly set a address range on a bus bridge.
--HG--
extra : convert_revision : 708fb67b82c619f340f2b5a95f4542b573004774
2004-04-02 03:03:30 -05:00
Steve Reinhardt
3622f332f9 Fix dependencies (broken since Nate's tree-build change).
--HG--
extra : convert_revision : 7be203a46c53ac7cf464ac3857e27259a846dcfb
2004-04-01 22:18:00 -08:00
Erik Hallnor
ac016ab4b0 Add a average references to a cache block stat.
--HG--
extra : convert_revision : ba0ff82985a44c8e2de129194b1f755199469f8f
2004-04-01 18:23:17 -05:00
Nathan Binkert
13483c98be Get rid of the printExtraOutput stuff
--HG--
extra : convert_revision : d82718ad4b3c5dd56a99c727e78b39917f9d4541
2004-03-26 05:43:29 -05:00
Nathan Binkert
f299bb01ac Merge zizzer.eecs.umich.edu:/bk/m5
into crampon.:/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : f210926c232d2999703bbb0adf08899d8c041729
2004-03-25 05:46:35 -05:00
Nathan Binkert
ae48fb794c Get rid of symlink hack in makefile
--HG--
extra : convert_revision : c1bc90a1d823f8034da692afd6005456ef98831b
2004-03-25 05:46:16 -05:00