Commit graph

1881 commits

Author SHA1 Message Date
Steve Reinhardt
9dec81719e More cleanup of fetch code.
--HG--
extra : convert_revision : a2279283be76341467e228ad1d56989a2be383eb
2005-05-14 19:42:46 -04:00
Steve Reinhardt
16dcebf4c4 Add mem_trace parameter to BaseCache.
python/m5/objects/BaseCache.mpy:
    Add mem_trace parameter.

--HG--
extra : convert_revision : a0bab53fabd7426eee5ca9c845c02a6ac2e1722f
2005-05-13 15:01:42 -04:00
Steve Reinhardt
581ef3c076 panic vs fatal fixes in bus.cc
base/misc.hh:
    Add some comments explaining the difference between
    panic() and fatal().

--HG--
extra : convert_revision : 876f0c98276fa1060c0589dc179022a297a8ed2e
2005-05-13 00:28:42 -04:00
Steve Reinhardt
ea18fda771 Force pipeline drain on first instruction of async interrupt handler.
Done by marking DynInst as serializing... requires adding the ability
to check both DynInst and StaticInst for serializing behavior.

--HG--
extra : convert_revision : 00db3e16d3b13dd9663f5a9f1bd8f724ed499914
2005-05-12 19:25:38 -04:00
Steve Reinhardt
31db1f3c09 Get rid of unused SMT code from FullCPU.
--HG--
extra : convert_revision : 7a047b36718a44a8f3a43e3c0f54ca796d19f10a
2005-05-12 15:36:42 -04:00
Steve Reinhardt
480dd22d02 Add definitions for memory trace writers.
--HG--
extra : convert_revision : bb27c2a2ba8f97f186b712165db9a25f3fe61dda
2005-05-09 12:12:07 -04:00
Kevin Lim
c03e97b62d Merge ktlim@zizzer:/bk/m5 into zamp.eecs.umich.edu:/z/ktlim2/current/m5
--HG--
extra : convert_revision : b868e7920eaa3682c6123651f0c598673ebb7f22
2005-05-04 14:41:36 -04:00
Ron Dreslinski
3b0464127e Add support for dedicated 1GHz Simple CPU
New examples of test.py files in ~rdreslin/jobs/ancs0 and ~rdreslin/cpt/ancs0

--HG--
extra : convert_revision : c2337874199fae9cbd43da9dbc3b9bd85ea2c92e
2005-05-03 14:42:58 -04:00
Kevin Lim
61d95de4c8 Large update of several parts of my code. The most notable change is the inclusion of a full-fledged load/store queue. At the moment it still has some issues running, but most of the code is hopefully close to the final version.
SConscript:
arch/isa_parser.py:
cpu/base_dyn_inst.cc:
    Remove OOO CPU stuff.
arch/alpha/faults.hh:
    Add fake memory fault.  This will be removed eventually.
arch/alpha/isa_desc:
    Change EA comp and Mem accessor to be const StaticInstPtrs.
cpu/base_dyn_inst.hh:
    Update read/write calls to use load queue and store queue indices.
cpu/beta_cpu/alpha_dyn_inst.hh:
    Change to const StaticInst in the register accessors.
cpu/beta_cpu/alpha_dyn_inst_impl.hh:
    Update syscall code with thread numbers.
cpu/beta_cpu/alpha_full_cpu.hh:
    Alter some of the full system code so it will compile without errors.
cpu/beta_cpu/alpha_full_cpu_builder.cc:
    Created a DerivAlphaFullCPU class so I can instantiate different CPUs that have different template parameters.
cpu/beta_cpu/alpha_full_cpu_impl.hh:
    Update some of the full system code so it compiles.
cpu/beta_cpu/alpha_params.hh:
cpu/beta_cpu/fetch_impl.hh:
    Remove asid.
cpu/beta_cpu/comm.hh:
    Remove global history field.
cpu/beta_cpu/commit.hh:
    Comment out rename map.
cpu/beta_cpu/commit_impl.hh:
    Update some of the full system code so it compiles.  Also change it so that it handles memory instructions properly.
cpu/beta_cpu/cpu_policy.hh:
    Removed IQ from the IEW template parameter to make it more uniform.
cpu/beta_cpu/decode.hh:
    Add debug function.
cpu/beta_cpu/decode_impl.hh:
    Slight updates for decode in the case where it causes a squash.
cpu/beta_cpu/fetch.hh:
cpu/beta_cpu/rob.hh:
    Comment out unneccessary code.
cpu/beta_cpu/full_cpu.cc:
    Changed some of the full system code so it compiles.  Updated exec contexts and so forth to hopefully make multithreading easier.
cpu/beta_cpu/full_cpu.hh:
    Updated some of the full system code to make it compile.
cpu/beta_cpu/iew.cc:
    Removed IQ from template parameter to IEW.
cpu/beta_cpu/iew.hh:
    Removed IQ from template parameter to IEW. Updated IEW to recognize the Load/Store queue.
cpu/beta_cpu/iew_impl.hh:
    New handling of memory instructions through the Load/Store queue.
cpu/beta_cpu/inst_queue.hh:
    Updated comment.
cpu/beta_cpu/inst_queue_impl.hh:
    Slightly different handling of memory instructions due to Load/Store queue.
cpu/beta_cpu/regfile.hh:
    Updated full system code so it compiles.
cpu/beta_cpu/rob_impl.hh:
    Moved some code around; no major functional changes.
cpu/ooo_cpu/ooo_cpu.hh:
    Slight updates to OOO CPU; still does not work.
cpu/static_inst.hh:
    Remove OOO CPU stuff.  Change ea comp and mem acc to return const StaticInst.
kern/kernel_stats.hh:
    Extra forward declares added due to compile error.

--HG--
extra : convert_revision : 594a7cdbe57f6c2bda7d08856fcd864604a6238e
2005-05-03 10:56:47 -04:00
Nathan Binkert
90422716f8 Fix ethernet configuration
--HG--
extra : convert_revision : 9ee6e620b722d39d234b15785852a6cc00ffe041
2005-05-02 19:05:20 -04:00
Nathan Binkert
6606a37546 Skip calibrate delay again.
kern/linux/linux_system.cc:
    calibrate delay starts three instructions after the symbol now.

--HG--
extra : convert_revision : f9c2bed3bca1f3394801fe7696cfff870443c204
2005-05-02 19:01:11 -04:00
Nathan Binkert
364f6e3235 Make sinic work with mpy
dev/sinic.cc:
dev/sinic.hh:
    Fix sinic parameters. (header_bus -> io_bus)
python/m5/objects/Ethernet.mpy:
    Add simobj definitions for sinic.

--HG--
extra : convert_revision : 77d5b80bd1f1708329b263fb48965d7f555cc9d1
2005-05-02 19:00:11 -04:00
Nathan Binkert
5921d6beb8 workaround configuration bug in tick is ps.
--HG--
extra : convert_revision : 301b6e4d590efc7a4d11959a932d5349edc59041
2005-05-02 18:56:50 -04:00
Nathan Binkert
1760925f73 Improve checkpointing of ethernet packets a bit.
dev/etherpkt.cc:
    Don't try to suck in the packet if the length is zero.

--HG--
extra : convert_revision : 7212f3b677777fbce301f0613b9f513bb9fe057e
2005-05-02 18:55:39 -04:00
Nathan Binkert
306a4f2014 Better configurations for checkpointing. Add more NIC options.
--HG--
extra : convert_revision : d0b9ccbcb4ac14f0d305bfcbfb9a041dfb5d3465
2005-05-02 18:54:36 -04:00
Ron Dreslinski
a35c6fd4c6 Make sure to just do the dma No Allocation on reads
--HG--
extra : convert_revision : f5d0b6753958c36fd3678c61b5e9af943e24d517
2005-05-02 18:02:51 -04:00
Ron Dreslinski
13d0e7c626 Add environment parameter for Allocation policy of DMA's
--HG--
extra : convert_revision : 444952065b0508c083e8c64fa5f9f5a761787900
2005-05-02 14:25:54 -04:00
Kevin Lim
6191d3e444 Merge ktlim@zizzer.eecs.umich.edu:/bk/m5
into zamp.eecs.umich.edu:/z/ktlim2/m5

--HG--
extra : convert_revision : ac0788599c365b2d7fe0870f0fea4b62c3b3ef22
2005-05-02 14:16:33 -04:00
Ron Dreslinski
950ce813c4 Merge zizzer:/z/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/.automount/zazzer/z/rdreslin/m5bk/clean

--HG--
extra : convert_revision : eb92d2799c76fad09f6b5a9476e4e9fc7c8dbfca
2005-04-30 12:54:28 -04:00
Ron Dreslinski
cf88d0e271 Handle no_allocates as needing the response in miss_queue, like uncacheables
Add support for hit under miss of a no allocate (It seems as though DMA reads to the same block happen close together, is this an artifact of the header/payload splitting)
Make sure to respond to all targets of a no_allocate request

--HG--
extra : convert_revision : a9d733f499face4039929524573ffc9500e93d83
2005-04-30 12:53:58 -04:00
Nathan Binkert
849c954adf Cleanup rcS files. Make sure there are enough tracked connections.
Delay before singalling peer to make sure that the peer is ready

configs/boot/nat-netperf-server.rcS:
    delay before singalling to make sure that the natbox is ready
configs/boot/nat-netperf-stream-client.rcS:
    increase the number of tracked connections
configs/boot/nat-spec-surge-client.rcS:
configs/boot/nfs-client-nhfsstone.rcS:
configs/boot/nfs-client-smallb.rcS:
configs/boot/nfs-client-tcp-smallb.rcS:
configs/boot/nfs-client-tcp.rcS:
configs/boot/nfs-client.rcS:
configs/boot/nfs-server.rcS:
configs/boot/spec-surge-client.rcS:
configs/boot/spec-surge-server.rcS:
configs/boot/surge-client.rcS:
configs/boot/surge-server.rcS:
    increase the number of tracked connections
    cleanup
configs/boot/nat-spec-surge-server.rcS:
configs/boot/natbox-netperf.rcS:
configs/boot/nfs-server-nhfsstone.rcS:
    delay before singalling to make sure that the natbox is ready
    increase the number of tracked connections
    cleanup
configs/boot/natbox-spec-surge.rcS:
    delay before singalling to make sure that the natbox is ready
    increase the number of tracked connections

--HG--
extra : convert_revision : 9faa5ec11c9c02fed3d1cff922ca42c41d364204
2005-04-30 11:00:43 -04:00
Ron Dreslinski
602a489573 Add suport for no allocation of cache block on a dma read passing through a cache from the cpu-side interface
--HG--
extra : convert_revision : 0a3b3741924ed39c1c8710d0963e4c8f3e73f81a
2005-04-29 21:01:43 -04:00
Ron Dreslinski
e07fee31cb Clean up output for pc break events, and remove a unneeded break event.
cpu/pc_event.cc:
    Add a newline to the printout to clean up output
kern/linux/linux_system.cc:
    Remove the die_if_kernel pc break event, it is being called when not the kernel and leads to unneeded printouts

--HG--
extra : convert_revision : c359532db31c961074894cc6c44c8452592caca8
2005-04-28 17:24:04 -04:00
Ron Dreslinski
2bb9126a7a Make ip_conntrack table size larger
--HG--
extra : convert_revision : bda54b29cb15144907b186f06517477dea13ba06
2005-04-28 16:13:30 -04:00
Nathan Binkert
3154e2a0c7 Add the m5 parameter to the ns83820 device model so that we
can pass simulator specific options to the device driver.

dev/ns_gige.cc:
    Add the m5 register and parameter to the ns83820 device model
    so that we can pass simulator specific options to the device
    driver.
dev/ns_gige.hh:
dev/ns_gige_reg.h:
    Add the m5 register to the ns83820 device model

--HG--
extra : convert_revision : 84674887560fa3b607e725b8e5bc8272761fcf09
2005-04-24 21:32:32 -04:00
Nathan Binkert
6f9dba3cec cleanup mpy file
--HG--
extra : convert_revision : ddde8f1b60dfa0c637d82d9217e713f071af6ccb
2005-04-24 21:28:54 -04:00
Nathan Binkert
5a7ee2b495 Make code more portable and port to cygwin
arch/alpha/alpha_tru64_process.cc:
    getdirent isn't implemented by cygwin.  panic if this function is
    executed.  (It shouldn't be too much to emulate it using opendir,
    readdir, etc.)
arch/alpha/pseudo_inst.cc:
    Use lseek once and read instead pread.
base/intmath.hh:
    we want int, long, and long long variations of FloorLog2 instead
    of int32_t, int64_t.  Otherwise, we leave one out.
base/socket.cc:
    Fix define that seems to be for apple
sim/serialize.cc:
    don't use the intXX_t stuff, instead, use the real types
    so we're sure that we cover all of them.

--HG--
extra : convert_revision : 9fccaff583100b06bbaafd95a162c4e19beed59e
2005-04-22 13:12:03 -04:00
Steve Reinhardt
535cfaa01e Mostly hacks for multiplying Frequency-type proxies by constants
(plus some small fixes).

python/m5/config.py:
    Hacks to allow multiplication on Frequency/Latency-valued proxies.
    Provide __rmul__ as well as __mul__ on Proxy objects.
test/genini.py:
    Default value for -EFOO should be True not 1 (since 1 is no longer
    convertable to Bool).

--HG--
extra : convert_revision : f8a221fcd9e095fdd7b7db4be0ed0cdcd20074be
2005-04-17 00:41:50 -04:00
Kevin Lim
e2ad9e6816 Merge ktlim@zizzer.eecs.umich.edu:/bk/m5
into zamp.eecs.umich.edu:/z/ktlim2/m5

--HG--
extra : convert_revision : febc87fb6083ef8b80a2bc91a766ea9e13d82744
2005-04-15 15:10:07 -04:00
Ron Dreslinski
26df1a96c9 F
--HG--
extra : convert_revision : 22245997131432986d94105957461275ee4ae07e
2005-04-14 18:38:56 -04:00
Kevin Lim
26d6d97f5d Merge ktlim@zizzer.eecs.umich.edu:/bk/m5
into zamp.eecs.umich.edu:/z/ktlim2/m5

--HG--
extra : convert_revision : 0baadd8d68bfa6f8e96307eb2d4426b0d9e0b8b4
2005-04-14 16:06:34 -04:00
Nathan Binkert
5e67b78af7 Make multiple calls to SimExit work.
--HG--
extra : convert_revision : 91a5652913b7278efe6a3a4955e5e2f723ba59eb
2005-04-13 14:26:57 -04:00
Nathan Binkert
0f894a7b25 Make the exit after max checkpoints code compile.
sim/serialize.cc:
    call exitNow instead of SimExit.  Include the header too.

--HG--
extra : convert_revision : 633a8533b23cac914a2b09bd2d3ea5d85243c675
2005-04-13 14:26:56 -04:00
Nathan Binkert
d86bed198a Add support to limit the number of checkpoints dropped.
sim/serialize.hh:
    Add variables to keep track of the number of checkpoints
    dropped and maximum allowed.

--HG--
extra : convert_revision : 32241b90c58def6958ec84c53cc2cca996007506
2005-04-13 09:38:50 -04:00
Nathan Binkert
be7152b552 Fixup split stats.
--HG--
extra : convert_revision : 5f3d162c3f4d90f481393f812e6138c659e4f6e2
2005-04-11 15:44:21 -04:00
Nathan Binkert
104af3ba07 Update for changes in the way latencies and bandwidths are dealt with.
--HG--
extra : convert_revision : 1d183bf47222599ee11154ab0c9eb9cd99a29806
2005-04-11 15:42:35 -04:00
Nathan Binkert
5eab6c4b41 Make the notion of a global event tick independent of the actual
CPU cycle ticks.  This allows the user to have CPUs of different
frequencies, and also allows frequencies and latencies that are
not evenly divisible by the CPU frequency.  For now, the CPU
frequency is still set to the global frequency, but soon, we'll
hopefully make the global frequency fixed at something like 1THz
and set all other frequencies independently.

arch/alpha/ev5.cc:
    The cycles counter is based on the current cpu cycle.
cpu/base_cpu.cc:
    frequency isn't the cpu parameter anymore, cycleTime is.
cpu/base_cpu.hh:
    frequency isn't the cpu parameter anymore, cycleTime is.
    create several public functions for getting the cpu frequency
    and the numbers of ticks for a given number of cycles, etc.
cpu/memtest/memtest.cc:
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
cpu/trace/trace_cpu.cc:
    Now that ticks aren't cpu cycles, fixup code to advance
    by the proper number of ticks.
cpu/memtest/memtest.hh:
cpu/trace/trace_cpu.hh:
    Provide a function to get the number of ticks for a given
    number of cycles.
dev/alpha_console.cc:
    Update for changes in the way that frequencies and latencies are
    accessed.  Move some stuff to init()
dev/alpha_console.hh:
    Need a pointer to the system and the cpu to get the frequency
    so we can pass the info to the console code.
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/ethertap.cc:
dev/ide_disk.hh:
dev/ns_gige.cc:
dev/ns_gige.hh:
    update for changes in the way bandwidths are passed from
    python to C++ to accomidate the new way that ticks works.
dev/ide_disk.cc:
    update for changes in the way bandwidths are passed from
    python to C++ to accomidate the new way that ticks works.
    Add some extra debugging printfs
dev/platform.cc:
dev/sinic.cc:
dev/sinic.hh:
    outline the constructor and destructor
dev/platform.hh:
    outline the constructor and destructor.
    don't keep track of the interrupt frequency.  Only provide the
    accessor function.
dev/tsunami.cc:
dev/tsunami.hh:
    outline the constructor and destructor
    Don't set the interrupt frequency here.  Get it from the actual device
    that does the interrupting.
dev/tsunami_io.cc:
dev/tsunami_io.hh:
    Make the interrupt interval a configuration parameter.  (And convert
    the interval to the new latency/frequency stuff in the python)
kern/linux/linux_system.cc:
    update for changes in the way bandwidths are passed from
    python to C++ to accomidate the new way that ticks works.
    For now, we must get the boot cpu's frequency as a parameter
    since allowing the system to have a pointer to the boot cpu would
    cause a cycle.
kern/tru64/tru64_system.cc:
    For now, we must get the boot cpu's frequency as a parameter
    since allowing the system to have a pointer to the boot cpu would
    cause a cycle.
python/m5/config.py:
    Fix support for cycle_time relative latencies and frequencies.
    Add support for getting a NetworkBandwidth or a MemoryBandwidth.
python/m5/objects/BaseCPU.mpy:
    All CPUs now have a cycle_time.  The default is the global frequency,
    but it is now possible to set the global frequency to some large value
    (like 1THz) and set each CPU frequency independently.
python/m5/objects/BaseCache.mpy:
python/m5/objects/Ide.mpy:
    Make this a Latency parameter
python/m5/objects/BaseSystem.mpy:
    We need to pass the boot CPU's frequency to the system
python/m5/objects/Ethernet.mpy:
    Update parameter types to use latency and bandwidth types
python/m5/objects/Platform.mpy:
    this frequency isn't needed.  We get it from the clock interrupt.
python/m5/objects/Tsunami.mpy:
    The clock generator should hold the frequency
sim/eventq.hh:
    Need to remove this assertion because the writeback event
    queue is different from the CPU's event queue which can cause
    this assertion to fail.
sim/process.cc:
    Fix comment.
sim/system.hh:
    Struct member to hold the boot CPU's frequency.
sim/universe.cc:
    remove unneeded variable.

--HG--
extra : convert_revision : 51efe4041095234bf458d9b3b0d417f4cae16fdc
2005-04-11 15:32:06 -04:00
Nathan Binkert
61a20bc32d Merge zizzer.eecs.umich.edu:/bk/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/current

--HG--
extra : convert_revision : 84720ab5c8123e7bc72b20c877499a0846ea1a4f
2005-04-08 21:33:45 -04:00
Nathan Binkert
6fc4c64203 full_system no longer exists as a parameter
--HG--
extra : convert_revision : 173cd24c130cb981036688d9cd8ba3e418d51068
2005-04-08 21:33:35 -04:00
Ron Dreslinski
0d2e816a4c Hand merged a this-> statement for gcc3.4
--HG--
extra : convert_revision : 11daa94a0631da5e9c2e4262a448035491dd86e5
2005-04-08 18:26:00 -04:00
Ron Dreslinski
2d2f663d3a Add Parameter to only do prefetch calculations on data accesses not instruction accesses
--HG--
extra : convert_revision : 85c987561a962f21466f0c1bd0473300d341c398
2005-04-08 17:19:56 -04:00
Kevin Lim
dcedd7866e Hand merge
base/traceflags.py:
    Include new flags

--HG--
extra : convert_revision : 8017cbe256860dce8b1efc1b4e1e81e883895b90
2005-04-07 16:34:02 -04:00
Kevin Lim
d261ee86c4 Include new CPUs.
--HG--
extra : convert_revision : 710597ae0b84404f0a5b737229391042a15c6e14
2005-04-07 16:30:40 -04:00
Nathan Binkert
9f2568f966 Support copying memory requests.
--HG--
extra : convert_revision : 783a778e5eeef36eab22a7c855a5474b83ff4488
2005-04-07 00:07:48 -04:00
Nathan Binkert
28ee66cd56 Add support for acking writes with a configurable delay
as they are received by the bus bridge.
Better Bus debugging.

--HG--
extra : convert_revision : c6329384276e0ebcf8ae12b86fddb377af66bbba
2005-04-06 23:31:31 -04:00
Nathan Binkert
9fead747f5 fix typo in python config stuff
python/m5/config.py:
    fix typo

--HG--
extra : convert_revision : 2208453d93149ba4af140dd78c29be4c4943b397
2005-04-06 18:00:44 -04:00
Nathan Binkert
f3544a13f3 Fix the python NetworkBandwidth conversion function
python/m5/convert.py:
    Fix the NetworkBandwidth conversion function

--HG--
extra : convert_revision : 93d9856fe6b59827c116e15835d2ef51292bd6c4
2005-04-06 17:59:31 -04:00
Nathan Binkert
1ee77fb23e formatting
--HG--
extra : convert_revision : 0b041556222c3892ee72e4d56c8acdda72bfc303
2005-04-06 17:58:57 -04:00
Nathan Binkert
060bb32f27 Cleanup diagnostic and error messages for the IDE disk
dev/ide_disk.cc:
    Cleanup diagnostic and error messages

--HG--
extra : convert_revision : fb1bc6d9f28a10961c9d3ee1dc81b540b92653b8
2005-04-06 17:47:32 -04:00
Nathan Binkert
235186859c Better debugging output for the ide controller
dev/ide_ctrl.cc:
    Better debugging

--HG--
extra : convert_revision : 854e17f9f36fe4a0b6b69fd48027d2b1b231e858
2005-04-06 17:39:25 -04:00