Commit graph

2255 commits

Author SHA1 Message Date
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
Nathan Binkert
6d412f63a3 Add TcpPort and UdpPort as python types
python/m5/objects/SimConsole.mpy:
    the listener port is a TcpPort

--HG--
extra : convert_revision : c26fdd93d3bc35d9f1563ac1087a7f75471c9020
2005-04-06 17:05:30 -04:00
Nathan Binkert
b82bd61946 Move back to vmlinux-latest
--HG--
extra : convert_revision : 9a14f21768f075f0c84f90feebb6d3d897286e34
2005-04-06 17:00:31 -04:00
Nathan Binkert
c82562c740 full_system isn't a useful parameter anymore, get rid of it.
python/m5/objects/Root.mpy:
sim/universe.cc:
util/stats/stats.py:
    full_system isn't a useful parameter

--HG--
extra : convert_revision : 557091be1faa3cf121c55102aba4e6f4c1bd45ef
2005-04-06 16:58:40 -04:00
Kevin Lim
225730378e Minor fixes for g++ 3.4
--HG--
extra : convert_revision : cb3931c72cfa737414404b7ebebfad7cfea8ef8a
2005-04-05 16:20:55 -04:00
Ron Dreslinski
1b2c81b9d7 Add more prefetcher support.
SConscript:
    Add GHB prefetcher to build list
python/m5/objects/BaseCache.mpy:
    Add parameters about when to remove prefetches and wether or not to use cpuid to differentiate access patterns

--HG--
extra : convert_revision : 1d3fef21910f2f34b8c28d01b5f6e86eef53357c
2005-04-04 16:25:22 -04:00
Ron Dreslinski
a07340f6cd Merge zizzer:/z/m5/Bitkeeper/m5
into zazzer.eecs.umich.edu:/z/rdreslin/m5bk/prefetcher

--HG--
extra : convert_revision : b89d95b6b09a70dc060747f9703643af008c2ddd
2005-04-04 08:34:16 -04:00
Ron Dreslinski
4889d8f788 Added support for multiple prefetch address from single access (depth of prefetch) also added the ability to squash some prefetchs to match the GHB technique
python/m5/objects/BaseCache.mpy:
    Added parameters

--HG--
extra : convert_revision : 92b646eb61455d283a5c2ac0b3f8fbd62e39fb87
2005-04-02 20:36:08 -05:00
Ron Dreslinski
46a832eb3b Rework some statistics and add some prefetcher statistics. Also remove an unneeded function call.
--HG--
extra : convert_revision : b40cfc16f237ec03aac15d42fe34d5676b0c71c1
2005-04-02 18:40:59 -05:00
Steve Reinhardt
a72deba708 Fix up Python ParamContext support.
--HG--
extra : convert_revision : cd2fe692b42016c4e2a84cd5c8f615c16217254a
2005-04-02 01:20:47 -05:00
Ron Dreslinski
9f2d8346c7 Set the time in the request to proprley calculate latencies
--HG--
extra : convert_revision : cd54e924ad89cebbd797beda7dbbdae53eec66a7
2005-04-01 21:08:03 -05:00
Ron Dreslinski
23396b1438 Make sure to calculate the new state properly in coherence protocol
--HG--
extra : convert_revision : 5a983f5d2e225d4be205faa9bacffc2258452efc
2005-04-01 21:07:08 -05:00
Ron Dreslinski
fdceb0f00c Some hand merges
--HG--
rename : objects/BaseCache.mpy => python/m5/objects/BaseCache.mpy
extra : convert_revision : b24ff4c1feb480cf280207d4bbdfe08ef80d1aa2
2005-04-01 19:39:23 -05:00
Ron Dreslinski
c21bf8e7ae Another pass at the prefetcher. Now it works with both miss and access reference streams.
Reworked how it is instattiated and how it communicates with other cache objects.

SConscript:
    Compile all the prefetcher files
objects/BaseCache.mpy:
    Add parameters for prefetcher

--HG--
extra : convert_revision : 2faa81c17673420ffae72a50a27e310d4c0f4135
2005-04-01 19:26:44 -05:00
Ron Dreslinski
9ba57eafc2 Remove a printf that shouldn't be there, Fix some errors with full system config files that wasn't using coherence in MP cases
--HG--
extra : convert_revision : 32670b9252fd4be61ab4dcc8d90f4251d9db5069
2005-04-01 18:25:34 -05:00
Ron Dreslinski
13608a9b85 Rework the way the prefetcher is used. Now we copy the request from the prefetch queue and into the mq when issued
objects/BaseCache.mpy:
    Add some parameters for prefetcher

--HG--
extra : convert_revision : 1a2e6d2ce5359fab0a4d5d4639a701131101d68c
2005-03-30 15:05:58 -05:00
Ron Dreslinski
cda8f99a56 First pass at a prefetcher
SConscript:
    Add prefetcher to the compilation
base/traceflags.py:
    Add a trace flag for hardware prefetches

--HG--
extra : convert_revision : bc210192a2b75b1470b2cd9d5d470fc61cb11315
2005-03-30 04:46:04 -05:00
Nathan Binkert
43a9caa221 expose variables for number of global events per simulated second,
millisecond, microsecond, etc. so that the user can explicitly
convert between system ticks and time and know what sorts of
expensive operations are being used for that conversion.

arch/alpha/alpha_tru64_process.cc:
arch/alpha/pseudo_inst.cc:
dev/etherdump.cc:
dev/etherlink.cc:
dev/ns_gige.cc:
dev/sinic.cc:
dev/tsunami_io.cc:
dev/uart.cc:
sim/stat_control.cc:
sim/syscall_emul.hh:
    Use the new variables for getting the event clock
dev/etherdump.hh:
    delete variables that are no longer needed.

--HG--
extra : convert_revision : d95fc7d44909443e1b7952a24ef822ef051c7cf2
2005-03-29 07:55:44 -05:00
Kevin Lim
2e2d9b5c35 Merge ktlim@zizzer.eecs.umich.edu:/bk/m5
into zamp.eecs.umich.edu:/z/ktlim2/m5

--HG--
extra : convert_revision : 95e94251150a3eea380b6b3bc3a9596e188df315
2005-03-28 14:40:02 -05:00
Nathan Binkert
a86b95cb18 If we find the mysql libraries on the machine, just compile
with mysql and remove the special compile type.

SConscript:
    If we find the mysql libraries on the machine, just compile
    with mysql.
build/SConstruct:
    we always use mysql, and we got rid of the FS_MEASURE

--HG--
extra : convert_revision : a7c4277c890e1b6390ef06288114c9bdde11b178
2005-03-28 00:41:28 -05:00
Nathan Binkert
1cd15e8e4a style
--HG--
extra : convert_revision : 3a45fb5dbd0975f60a37e0e0c3ab27450b7d749e
2005-03-25 23:03:31 -05:00
Nathan Binkert
40bab977bc Better handling of latency/frequency parameter types
python/m5/config.py:
    Addr is slightly different from memory size in that Addr
    will take non strings.
    Deal with the fact that the convert.toFoo functions only accept
    strings.
    Add RootFrequency as a special type for the Root.frequency
    parameter which is not scaled.
    Add ClockPeriod parameter type.
python/m5/convert.py:
    Be more strict about what's allowed.
    Only accept strings as inputs for these conversion functions.
    If the user wants to accept something else, they need to deal
    with the failure and convert other types on their own.
python/m5/objects/Bus.mpy:
    Use the new ClockPeriod parameter type
python/m5/objects/Root.mpy:
    Can't use integers for frequency anymore
python/m5/smartdict.py:
    rename SmartDict.Proxy to just Variable.  Create a new class
    UndefinedVariable that is returned when the user tries to get
    a variable that is not in the dict.  Undefined variable evaluates
    to false, and will cause an error elsewhere.

--HG--
extra : convert_revision : 1d55246fd1af65106f102396234827d6401ef9ce
2005-03-25 22:59:29 -05:00
Nathan Binkert
7e1995a29c Better exceptions in python config
python/m5/config.py:
    Don't raise a new exception, just modify and re-raise the old one.

--HG--
extra : convert_revision : 47f6da3a8cb2ee18a6b400863e7ea80ab0c9a5ea
2005-03-25 22:32:00 -05:00
Ron Dreslinski
59f43580bc Update so that statistics can be plotted correctly
util/stats/stats.py:
    Changed some stuff for graphing purposes:
    full_cpu is now full0
    frequencies are now s,m,f,q not s,6,8,q
    L2 is now l2
    etherdev is now etherdev0

    May want to consider fact that NAT box should be the sum of etherdev0 and etherdev1 (not in script yet)

--HG--
extra : convert_revision : 39a7d0bcf1b9354a77c12de5981e8277408ba791
2005-03-24 15:52:30 -05:00
Nathan Binkert
50269754f9 Simple python cleanup
--HG--
extra : convert_revision : 1c2d3551f8057ae9fdb9fc5a6a853ad380afdc49
2005-03-24 14:30:00 -05:00
Nathan Binkert
c5b63bc4c1 Improvements to send.py to allow the user to specify the jobfile
util/pbs/send.py:
    Allow the user to specify the jobfile

--HG--
extra : convert_revision : 0e21d2b03355bb7e8938c828bbaa441dc51afd1a
2005-03-24 12:25:34 -05:00
Nathan Binkert
d10412d565 Improve toBool
python/m5/convert.py:
    an empty string should still be false

--HG--
extra : convert_revision : dd9900794d94cd018b57ec81bcbce1d412e2a83e
2005-03-24 12:24:54 -05:00