Commit graph

1062 commits

Author SHA1 Message Date
Kevin Lim e3fb9afa79 Update to make multiple instruction issue and different latencies work.
Also change to ref counted DynInst.

SConscript:
    Add branch predictor, BTB, load store queue, and storesets.
arch/isa_parser.py:
    Specify the template parameter for AlphaDynInst
base/traceflags.py:
    Add load store queue, store set, and mem dependence unit to the
    list of trace flags.
cpu/base_dyn_inst.cc:
    Change formating, add in debug statement.
cpu/base_dyn_inst.hh:
    Change DynInst to be RefCounted, add flag to clear whether or not this
    instruction can commit.  This is likely to be removed in the future.
cpu/beta_cpu/alpha_dyn_inst.cc:
    AlphaDynInst has been changed to be templated, so now this CC file
    is just used to force instantiations of AlphaDynInst.
cpu/beta_cpu/alpha_dyn_inst.hh:
    Changed AlphaDynInst to be templated on Impl.  Removed some unnecessary
    functions.
cpu/beta_cpu/alpha_full_cpu.cc:
    AlphaFullCPU has been changed to be templated, so this CC file is now
    just used to force instantation of AlphaFullCPU.
cpu/beta_cpu/alpha_full_cpu.hh:
    Change AlphaFullCPU to be templated on Impl.
cpu/beta_cpu/alpha_impl.hh:
    Update it to reflect AlphaDynInst and AlphaFullCPU being templated
    on Impl.  Also removed time buffers from here, as they are really
    a part of the CPU and are thus in the CPU policy now.
cpu/beta_cpu/alpha_params.hh:
    Make AlphaSimpleParams inherit from the BaseFullCPU so that it doesn't
    need to specifically declare any parameters that are already in the
    BaseFullCPU.
cpu/beta_cpu/comm.hh:
    Changed the structure of the time buffer communication structs.  Now
    they include the size of the packet of instructions it is sending.
    Added some parameters to the backwards communication struct, mainly
    for squashing.
cpu/beta_cpu/commit.hh:
    Update typenames to reflect change in location of time buffer structs.
    Update DynInst to DynInstPtr (it is refcounted now).
cpu/beta_cpu/commit_impl.hh:
    Formatting changes mainly.  Also sends back proper information
    on branch mispredicts so that the bpred unit can update itself.
    Updated behavior for non-speculative instructions (stores, any
    other non-spec instructions): once they reach the head of the ROB,
    the ROB signals back to the IQ that it can go ahead and issue the
    non-speculative instruction.  The instruction itself is updated so that
    commit won't try to commit it again until it is done executing.
cpu/beta_cpu/cpu_policy.hh:
    Added branch prediction unit, mem dependence prediction unit, load
    store queue.  Moved time buffer structs from AlphaSimpleImpl to here.
cpu/beta_cpu/decode.hh:
    Changed typedefs to reflect change in location of time buffer structs
    and also the change from DynInst to ref counted DynInstPtr.
cpu/beta_cpu/decode_impl.hh:
    Continues to buffer instructions even while unblocking now.  Changed
    how it loops through groups of instructions so it can properly block
    during the middle of a group of instructions.
cpu/beta_cpu/fetch.hh:
    Changed typedefs to reflect change in location of time buffer structs
    and the change to ref counted DynInsts.  Also added in branch
    brediction unit.
cpu/beta_cpu/fetch_impl.hh:
    Add in branch prediction.  Changed how fetch checks inputs and its
    current state to make for easier logic.
cpu/beta_cpu/free_list.cc:
    Changed int regs and float regs to logically use one flat namespace.
    Future change will be moving them to a single scoreboard to conserve
    space.
cpu/beta_cpu/free_list.hh:
    Mostly debugging statements.  Might be removed for performance in future.
cpu/beta_cpu/full_cpu.cc:
    Added in some debugging statements.  Updated BaseFullCPU to take
    a params object.
cpu/beta_cpu/full_cpu.hh:
    Added params class within BaseCPU that other param classes will be
    able to inherit from.  Updated typedefs to reflect change in location
    of time buffer structs and ref counted DynInst.
cpu/beta_cpu/iew.hh:
    Updated typedefs to reflect change in location of time buffer structs
    and use of ref counted DynInsts.
cpu/beta_cpu/iew_impl.hh:
    Added in load store queue, updated iew to be able to execute non-
    speculative instructions, instead of having them execute in commit.
cpu/beta_cpu/inst_queue.hh:
    Updated change to ref counted DynInsts.  Changed inst queue to hold
    non-speculative instructions as well, which are issued only when
    commit signals backwards that a nonspeculative instruction is at
    the head of the ROB.
cpu/beta_cpu/inst_queue_impl.hh:
    Updated to allow for non-speculative instructions to be in the inst
    queue.  Also added some debug functions.
cpu/beta_cpu/regfile.hh:
    Added debugging statements, changed formatting.
cpu/beta_cpu/rename.hh:
    Updated typedefs, added some functions to clean up code.
cpu/beta_cpu/rename_impl.hh:
    Moved some code into functions to make it easier to read.
cpu/beta_cpu/rename_map.cc:
    Changed int and float reg behavior to use a single flat namespace.  In
    the future, the rename maps can be combined to a single rename map to
    save space.
cpu/beta_cpu/rename_map.hh:
    Added destructor.
cpu/beta_cpu/rob.hh:
    Updated it with change from DynInst to ref counted DynInst.
cpu/beta_cpu/rob_impl.hh:
    Formatting, updated to use ref counted DynInst.
cpu/static_inst.hh:
    Updated forward declaration for AlphaDynInst now that it is templated.

--HG--
extra : convert_revision : 1045f240ee9b6a4bd368e1806aca029ebbdc6dd3
2004-09-23 14:06:03 -04:00
Kevin Lim 04745696b6 Check in of new CPU. This checkin works under non-Fullsystem mode, with no caches.
SConscript:
    Added new CPU files to build.
arch/alpha/isa_desc:
    Changed rduniq and wruniq to be nonspeculative because the uniq register is not renamed.
arch/isa_parser.py:
    Added new CPU exec method.
base/statistics.hh:
    Minor change for namespace conflict.  Probably can change back one the new CPU files are cleaned up.
base/traceflags.py:
    Added new CPU trace flags.
cpu/static_inst.hh:
    Changed static inst to use a file that defines the execute functions.

--HG--
extra : convert_revision : bd4ce34361308280168324817fc1258dd253e519
2004-08-20 14:54:07 -04:00
Nathan Binkert 8295a8050c Whack the make stuff since it doesn't work anymore anyway.
We're solely using SCons now.

--HG--
extra : convert_revision : 122b255e3143d1192c136211cbf3618ff7262fa9
2004-08-11 10:19:22 -04:00
Nathan Binkert e3d0e9cf76 commented script with various kernel parameter tweaks for better
network performance

--HG--
extra : convert_revision : 9fd2f18a0d2b79942661d764d90177a50754d9c0
2004-08-11 10:17:11 -04:00
Nathan Binkert 40174f119d cleanup interrupt code for gigabit device
dev/ns_gige.cc:
    Clean up the interrupt code.  Do a better job determining when
    coalescing should happen.
    Remove some bogus comments
    Stop using magic numbers in initialization and comment what
    the various numbers do
dev/ns_gige_reg.h:
    #define describing which interrupts cannot be delayed and
    which interrrupts we don't implement

--HG--
extra : convert_revision : eb196afa0bf448e1849dd2bd30dde32134effee7
2004-08-11 10:14:26 -04:00
Nathan Binkert 256afbbe26 std::
--HG--
extra : convert_revision : 8383048265ef5b4d7c995dbf44f7d85e349ddbde
2004-08-11 09:05:13 -04:00
Ali Saidi abcd11d36f Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/z/saidi/work/m5
--HG--
extra : convert_revision : 006842b706c7d972f6722b2767c82c6761c447b2
2004-08-10 13:32:15 -04:00
Nathan Binkert 00270ba3a7 tweak a bunch of kernel parameters to get better performance
--HG--
extra : convert_revision : 57cca576fac4013027c2cb6c85cc73cbbcf772ae
2004-08-10 09:08:36 -04:00
Nathan Binkert 2771abb6ed Totally re-do/reorganize the python part of the statistics code
Make the database creation/removal/cleanup code use python
Make formulas work with the database
Add support to do some graphing, but needs more work
Still need to work on vectors, 2d vectors, dists and vectordists

--HG--
extra : convert_revision : 1a88320dcc036a3751e8a036770766dce76a568c
2004-08-09 21:20:52 -04:00
Steve Reinhardt 2c5356835d Split libelf/SConscript into two parts, one for the
shared build and one for the per-config header file
copying.

SConscript:
    Just include libelf/SConscript-local.
build/SConstruct:
    Include libelf/SConscript-global.

--HG--
extra : convert_revision : 0a4ae8f1514819f99fec101b898c19dabd4d59bd
2004-08-07 14:23:01 -07:00
Steve Reinhardt 2eed802774 make_c_file.py, load_odescs.py:
Change mode to -rwxrwx--x

--HG--
extra : convert_revision : 253dc560ed7b1f321635a9420e47d6d6e53c30ad
2004-08-07 02:38:27 -04:00
Steve Reinhardt d7dfe51fae Integrate Python configuration script parsing into m5 itself.
SConscript:
    Add pyconfig/{pyconfig,code}.cc
    Add list of object description (.od) files.
    Include pyconfig/SConscript.
base/inifile.cc:
    Get rid of CPP_PIPE... it never really worked anyway.
base/inifile.hh:
    Make load(ifstream&) method public so pyconfig
    code can call it.
sim/main.cc:
    Handle Python config scripts (end in '.py' instead of '.ini').
sim/pyconfig/m5configbase.py:
    Add license.
    Fix minor __setattr__ problem (2.3 related?)

--HG--
rename : util/config/m5configbase.py => sim/pyconfig/m5configbase.py
extra : convert_revision : 5e004922f950bfdefced333285584b80ad7ffb83
2004-08-05 02:03:47 -07:00
Steve Reinhardt 1939370c96 Move libelf/SConscript include to m5/SConscript, so elf
headers get created in build tree (under build/FOO/libelf)
instead of source tree (m5/libelf).

SConscript:
    Move libelf/SConscript include here.
build/SConstruct:
    Get rid of libelf/SConscript include (moved to
    m5/SConscript).

--HG--
extra : convert_revision : c0acb3bab2afa5079748b907c5917f548582099e
2004-08-03 22:46:03 -07:00
Ali Saidi 6ee18e4616 added p4 config
--HG--
extra : convert_revision : e64b1d6340f7a262653847f15f736e25356ed2d2
2004-08-03 18:05:54 -04:00
Ali Saidi 8f19fd2cbe merged full_cpu.ini, system.ini and devtime.c
util/ccdrv/devtime.c:
    coding style

--HG--
extra : convert_revision : 972941e100ba13a2ece0986454c4a3485841d9cb
2004-08-02 17:16:54 -04:00
Ali Saidi 6c954de33e added m5 debug and m5 switch cpu instruction (doesn't work yet) and
a p4 memory/cpu config

arch/alpha/alpha_memory.cc:
    Added code to fault on an unaligned access
arch/alpha/isa_desc:
arch/alpha/pseudo_inst.cc:
arch/alpha/pseudo_inst.hh:
    Added m5debug break and m5switchcpu (the latter doesn't work)

--HG--
extra : convert_revision : 409e73adb151600a4fea49f35bf6f503f66fa916
2004-08-02 17:10:02 -04:00
Nathan Binkert e79dee27ce fix compile
base/stats/events.cc:
    Make this compile with MYSQL stuff

--HG--
extra : convert_revision : e4e8f9b078447f5e7f535b2678a2ed7d44fa8644
2004-08-02 15:42:25 -04:00
Ali Saidi 7243f48116 moved alpha access to an unused part of the uncachebale address
space in tsunami.

--HG--
extra : convert_revision : 53eb2ed0cf869565b76d1576c65e29fb3df4dcb6
2004-08-01 00:52:32 -04:00
Ali Saidi aff3e7b07c Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/tmp/m5-dprintk
--HG--
extra : convert_revision : d26b89ff1bf224dbcd6c9eeeab361f516a8d7360
2004-07-31 00:55:15 -04:00
Ali Saidi d616b2cb5e few forgotten changes for dprintk
SConscript:
    Added printk to scons
kern/linux/linux_system.cc:
kern/linux/printk.cc:
    Forgot to commit this dprintk change

--HG--
extra : convert_revision : d9a71835b55ece7e84b34632ee6646ac2d0535da
2004-07-31 00:55:05 -04:00
Lisa Hsu ec3a9e3cfc added printk.cc to the sconsscript so it will actually build.
SConscript:
    grrr, spent half an hour looking for why the linker was dying.  needed to include the new file printk.cc

--HG--
extra : convert_revision : 4c461d9dbe96e94d7c312bf71ee8ad4c87a3b1a1
2004-07-30 21:14:05 -04:00
Ali Saidi b376c6f420 Added debug printk support
arch/alpha/ev5.hh:
    Added max address PAL code can be at
arch/alpha/vtophys.cc:
    Check max address pal can be at so we don't do the wrong conversion
    if gdb asks for an unaligned access.

--HG--
extra : convert_revision : b44f6a8fcd8582337a7d4033f28137c7e718a6a8
2004-07-30 17:13:24 -04:00
Nathan Binkert 46d3c40675 Clean up the functional memory debugging stuff a bit.
--HG--
extra : convert_revision : 3e05996af51c1c051b044864b50edb21e39368e4
2004-07-30 12:57:12 -04:00
Nathan Binkert 7aed9495e1 name this stat since it makes life easier with the mysql stuff
--HG--
extra : convert_revision : cad76b1741f17e183285a8805198345bd815e98b
2004-07-30 11:37:15 -04:00
Nathan Binkert a3a1b4dbae better debugging
dev/ns_gige.cc:
    Make all DPRINTF statements take one line. If they need two lines,
    break them up into separate statements.  This makes grep much more
    effective since *every* line will be prefixed by the cycle that the
    trace message is from and the object that caused the message.
    normalize some debugging statements so that searching is easier
    (e.g. always say rxState, not rx state or receive state)
    break into the debugger when a packet is dropped since we don't really
    like dropping packets.

--HG--
extra : convert_revision : 9cf309ca2143a6b8c8215ac5dd6a31aae60173cd
2004-07-30 11:33:45 -04:00
Nathan Binkert e60a4c58ee Fix a few bugs in the receive state machine. In doing back to tracking
whether or not the state machine is enabled rather than tracking the
specific instance of trying to halt the state machine.

dev/ns_gige.cc:
    change back to tracking the state machine's enableness instead of
    whether or not it is trying to halt.  Also fix a major bug that
    would cause the NIC to drop packets when the rx state machine was
    idle, but enabled.
    Fix a couple other bugs in the state machine where the idle interrupt
    would happen at the wrong time.
    Add a warning to deal with improper values of intrTick
dev/ns_gige.hh:
    We need to keep track of whether the state machine is enabled
    or not separately from the control register since the bits don't
    always reflect the truth.

--HG--
extra : convert_revision : 20056b225fa62a0744473babfd693506aa5f29b2
2004-07-30 11:29:45 -04:00
Nathan Binkert 8f87a57e70 make all ethernet dma use the new interface
--HG--
extra : convert_revision : 1cab883fac2bffd83cb035ebf28958c15118dfdc
2004-07-30 11:17:20 -04:00
Nathan Binkert f1f85c5470 better debugging of DMA operations
dev/ns_gige.cc:
    use the new PhysicalMemory dma_read and dma_write functions

--HG--
extra : convert_revision : 427049d43355f02ac8bdfe2e60c24825dd734006
2004-07-30 11:09:03 -04:00
Nathan Binkert 4ad33d3eff Improve the debuggability of FunctionalMemory objects by allowing
the user to choose which objects will break  (so you can have only
the client system break for example.)  Add features to differentiate
between breaking on reads and writes and break when an address gets
a specific data value.

--HG--
extra : convert_revision : b8b2d1b43832bf74ee75b3f789df829f5b876a17
2004-07-30 10:59:59 -04:00
Nathan Binkert 3711ea7347 Move all of the object matching code to a shared file so it can
be more easily re-used.  This currently uses some cooked up matching
function that I wrote a while ago, but should probably be changed
to use regular expressions in the future.
add doDebugBreak to control breakpoints on a per SimObject basis

SConscript:
    add match
base/stats/events.cc:
base/trace.cc:
    Move the object matching code into a separate file so it can be
    more easily shared
base/trace.hh:
    the object matching code was wrapped up and moved.  adapt.
sim/sim_object.cc:
    add the doDebugBreak flag that can be set on a per-SimObject
    basis.  This will be used in the future to control whether or
    not debug_break() will actually break for a given object.

    provide a function interface that can be called from the debugger.
sim/sim_object.hh:
    add the doDebugBreak flag that can be set on a per-SimObject
    basis.  This will be used in the future to control whether or
    not debug_break() will actually break for a given object.

--HG--
extra : convert_revision : 6bf7924de63d41f5ba6b80d579efdf26ba265a8f
2004-07-30 10:47:53 -04:00
Nathan Binkert 41988a86b5 Make the DDUMP tracing feature output the cycle number and
the object name on every line.
This makes grep a bit more effective.

kern/tru64/dump_mbuf.cc:
    use the new data dump format that trace.hh now provides

--HG--
extra : convert_revision : 179efa96aaff9da710baae13c9e981975d2abdc1
2004-07-30 10:18:04 -04:00
Ali Saidi b1fa4e9f0a Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/tmp/m5
--HG--
extra : convert_revision : 11ce57baaa1ccdb159d83bdad527c92087aa0502
2004-07-28 17:56:42 -04:00
Ali Saidi df61a1d3ef updated readme to reflect linux/scons changes
Put correct date in copyright headers based on bk changesets

LICENSE:
    Updated copyright on license file
README:
    Updaded readme to reflect shift to scons and linux support
cpu/trace/reader/ibm_reader.cc:
cpu/trace/reader/ibm_reader.hh:
cpu/trace/reader/itx_reader.cc:
cpu/trace/reader/itx_reader.hh:
cpu/trace/reader/m5_reader.cc:
cpu/trace/reader/m5_reader.hh:
cpu/trace/reader/mem_trace_reader.cc:
cpu/trace/reader/mem_trace_reader.hh:
cpu/trace/trace_cpu.cc:
cpu/trace/trace_cpu.hh:
    updated copyright (only changeset in 2004)
kern/kernel_stats.cc:
kern/kernel_stats.hh:
    updated copyright

--HG--
extra : convert_revision : 726aed4b38ff4d230c63a570df83c63075b3c76f
2004-07-28 17:56:36 -04:00
Nathan Binkert da2566f014 style
--HG--
extra : convert_revision : 7489726b6c7bd11af603a448e4ff56c1e46139fe
2004-07-26 23:10:20 -04:00
Nathan Binkert ac61adef91 Move the query function to the cc file and make trace stuff work
base/mysql.cc:
    Move the query function to the cc file
    make the trace stuff work
base/mysql.hh:
    Move the query function to the cc file

--HG--
extra : convert_revision : c47cb12afa47d3fe4a7a031b3563601adab62913
2004-07-26 13:03:27 -04:00
Nathan Binkert a5b541150c Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/current

--HG--
extra : convert_revision : 375f5dc9556fa12bd67915b8c348f35f49ca5049
2004-07-23 16:30:35 -04:00
Nathan Binkert 095851dbb2 add a trace mechanism to trace sql stuff
base/mysql.hh:
    Trace sql queries
base/traceflags.py:
    Add a trace flag to trace sql queries

--HG--
extra : convert_revision : dc25abb474db7334529b791a7aa90f8178ea59ea
2004-07-23 15:52:28 -04:00
Nathan Binkert e8faa32ca8 use the linux 2.6 kernel
Make it so the two system config can have one system with
a cache hier and the other without

--HG--
extra : convert_revision : 32403821cb889d00283ae0982e3fbe21a93acce4
2004-07-23 12:44:55 -04:00
Nathan Binkert 0650e4a43f When a packet has finished transmitting, kick the state
machine too.  The fifo may have been full and we want
to get another packet into it if we can.

--HG--
extra : convert_revision : 8f57294bd18f5eccb900118f2de83a4ccfd20dbb
2004-07-23 12:19:27 -04:00
Nathan Binkert 70eb684500 formatting
--HG--
extra : convert_revision : a1577ca129ff98ab83bb46714331831c15156adc
2004-07-23 11:54:54 -04:00
Nathan Binkert 75a2b149ee sim ticks should be the number of elapsed ticks, not curTick
--HG--
extra : convert_revision : 709753255e3e0425940b49e5df0271105935f3d4
2004-07-23 00:24:24 -04:00
Nathan Binkert 4f8612e0cf a little bit more info when dumping the event queue.
add a function that can be called from the debugger to dump
the event queue

--HG--
extra : convert_revision : 2a8bb9b948abf611e8dc8cefe208a33b7a3c2c90
2004-07-23 00:15:52 -04:00
Nathan Binkert b443aeb7cb If we're doing mysql, we're doing binning
--HG--
extra : convert_revision : a5a15136d991b41263d6e5aa2f79deefc85a99a9
2004-07-23 00:14:26 -04:00
Nathan Binkert 8844eadcdf notify the transmitter when the packet has finished transmitting.
--HG--
extra : convert_revision : 66f6f80945c1f621cdc3e743f601d2a73361bacd
2004-07-23 00:05:29 -04:00
Nathan Binkert 1987dd82d1 Stats database fixes to avoid naming conflicts in the database
and to do proper dumping of non-binned stats.

base/stats/mysql.cc:
    have configure return whether or not the stat is a printable
    stat.  This avoids naming problems in the database.
    don't store non printable stats.
    dump non-binned stats into the special bin 0
base/stats/mysql.hh:
    have configure return whether or not the stat is a printable
    stat.  This avoids naming problems in the database.

--HG--
extra : convert_revision : e33b115d605226a838eee2e6489e03b8d77ffc02
2004-07-22 23:59:12 -04:00
Nathan Binkert c9e6a15196 Add support to store less than the full packet in an etherdump
and actually default to only storing a max of 96 bytes per
packet since that should be plenty to fit all of the headers in.

--HG--
extra : convert_revision : 0c4a6571d80536477ed166e695d957e39da0334e
2004-07-22 23:54:24 -04:00
Nathan Binkert 552b954180 more initial checking of stats
base/statistics.cc:
    add more checking to the stats stuff to make sure that
    things are set up correctly
base/stats/statdb.cc:
    Check that bins are only registered once.

--HG--
extra : convert_revision : b0eafe4f584a8587dc3bf48812c632531ca28cb6
2004-07-22 21:31:35 -04:00
Ali Saidi 2f973954ca one more fix to the ini files
--HG--
extra : convert_revision : 1261cb1dd78c3a7e4ec1c99de4b6136819375016
2004-07-21 18:48:13 -04:00
Ali Saidi eb15e8ba0b Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/tmp/m5
--HG--
extra : convert_revision : 8444a4f15530bef95350e124f9b840c74e236f7d
2004-07-21 16:26:51 -04:00
Ali Saidi 2497bb5990 updated config files to fix what was broken in paper rush
--HG--
extra : convert_revision : 3128d0edd9367cff6a24cd923068535b59de25fd
2004-07-21 16:26:43 -04:00