Commit graph

663 commits

Author SHA1 Message Date
Kevin Lim
8ba73da056 Fix up bus draining and add draining to the caches.
src/mem/bus.cc:
    Fix up draining to work properly.
src/mem/bus.hh:
    Initialize drainEvent to NULL.
src/mem/cache/base_cache.cc:
src/mem/cache/base_cache.hh:
    Add draining to the caches.

--HG--
extra : convert_revision : 3082220a75d50876f10909f9f99bec535889f818
2006-11-07 14:25:54 -05:00
Kevin Lim
244e0c884c Remove hack by setting configuration better.
src/dev/isa_fake.cc:
src/dev/isa_fake.hh:
    No need for specialized init() function any more.
src/python/m5/objects/Tsunami.py:
    Override responder when set by user.  This avoids having bus.responder floating around and not doing anything when the user has specified their own default responder.

--HG--
extra : convert_revision : c547daf15b23a889c98e62bfd53c293c85d7a041
2006-11-07 14:24:31 -05:00
Kevin Lim
4589ec55ae Fix compile error.
--HG--
extra : convert_revision : a4c4195bc07383149a56907f26d327a4bfa77c26
2006-11-07 13:53:49 -05:00
Kevin Lim
d9f159a3b9 Initialize mem dep unit properly.
src/cpu/o3/mem_dep_unit_impl.hh:
    Initialize mem dep unit properly, add debug output.

--HG--
extra : convert_revision : 3c56dedfa57de1edc4b1c8f8d9bc94e18002eff2
2006-11-07 13:53:06 -05:00
Ali Saidi
bf3223d7ce delete pcifake, tsunamifake. Combine BadAddr/IsaFake into one
src/SConscript:
    remove pcifake and tsunami fake from sconscript
src/dev/isa_fake.cc:
src/dev/isa_fake.hh:
    combine badaddr and isa fake into one
src/python/m5/objects/Pci.py:
    remove pcifake
src/python/m5/objects/Tsunami.py:
    make badaddr derive from isafake

--HG--
extra : convert_revision : 91470db60aa1de6b85827304e27bd3414cc9d8d1
2006-11-06 16:24:25 -05:00
Kevin Lim
652281a61c Clean up clock phase drift code a bit.
src/cpu/base.cc:
    Move clock phase drift code to the base CPU so that any CPU model can use it.
src/cpu/base.hh:
    Added two functions to help get the next cycle the CPU should be scheduled.
src/cpu/simple/atomic.cc:
src/cpu/simple/timing.cc:
    Use the function now in BaseCPU.

--HG--
extra : convert_revision : 444494b66ffc85fc473c23f57683c5f9458ad80c
2006-11-06 13:27:45 -05:00
Kevin Lim
067c9c5531 Initialize pointer to NULL.
src/cpu/o3/lsq_unit_impl.hh:
    Be sure to initialize pointer to NULL.

--HG--
extra : convert_revision : 917d5119e4bd8eae10959ed07069d8c694315c7a
2006-11-05 20:29:38 -05:00
Ali Saidi
de90ae4825 Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : d7133e32cfca9f15869ee9ab7a93e3470e7d9038
2006-11-04 21:41:10 -05:00
Ali Saidi
21cf4a46b9 fixes so that M5 will compile under solaris
SConstruct:
    Add check to see if we need to include libsocket
src/arch/sparc/floatregfile.cc:
src/arch/sparc/intregfile.cc:
    use memset rather than bzero and include the appropriate headerfile
src/base/pollevent.cc:
    If we're compling under solaris we need sys/file.h
src/base/random.cc:
src/base/random.hh:
    solaris doesn't have random(), so use rint with the correct rounding mode
    if we're compiling on solaris
src/base/stats/flags.hh:
    u_int32_t??
src/base/time.hh:
    grab the timersub() define from freebsd since it doesn't exist in solaris
src/cpu/inst_seq.hh:
    we don't need to include stdint here
src/sim/byteswap.hh:
    the method to detect endianness on Solaris is a little more complex...

--HG--
extra : convert_revision : 6b7db0e900e7bccfc250d65c125065f27280dda1
2006-11-04 21:41:01 -05:00
Kevin Lim
e71ccde663 Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-busfix

--HG--
extra : convert_revision : a9a41e2c292bd95aa148e1cf4d9a77c0622a462b
2006-11-02 15:20:47 -05:00
Kevin Lim
45363ea658 Have bus use the BadAddress device to handle bad addresses. The O3 CPU should be able to boot into Linux with caches on after this change.
src/mem/bus.cc:
src/mem/bus.hh:
    Bus now will be setup with a default responder, unless the user overrides it.  This default responder should return BadAddress if no matching port is found.
src/python/m5/objects/Bus.py:
    Bus now has a default responder for FS mode if the user doesn't override it.  It returns BadAddress if no matching port is found.
src/python/m5/objects/Tsunami.py:
    Add bad address device.  Also record when the user has specified their own default responder.

--HG--
extra : convert_revision : 59070477ae313ee711b2d59baa2369c9a91c5b85
2006-11-02 15:20:37 -05:00
Kevin Lim
c3485a6548 Implement device that will return BadAddress.
--HG--
extra : convert_revision : d833c20f691e01c84a0678f19f7d83f3ee50c0c1
2006-11-02 15:18:35 -05:00
Kevin Lim
8d53f298a6 Caches return a new functional port whenever asked for one.
src/mem/cache/base_cache.cc:
    Have caches return a new functional port whenever asked for them.  I'm pretty sure this is desired behavior.  Ron can correct me if it's not.

--HG--
extra : convert_revision : e1fadf895a7d714968128ff900d10e86fde53387
2006-11-02 15:17:45 -05:00
Kevin Lim
dd5e2cd959 More proper handling of the ports.
src/cpu/simple_thread.cc:
    Fix up port handling to share code.
src/cpu/thread_state.cc:
    Separate code off into a function.
src/cpu/thread_state.hh:
    Make a separate function that will get the CPU's memory's functional port.

--HG--
extra : convert_revision : 96a9bb3c5e4b9ba5511678c0fd17f0017c8cd312
2006-11-02 14:58:31 -05:00
Kevin Lim
64f8cd12c6 Remove function that should have been deleted.
src/cpu/simple_thread.cc:
    This function should have been deleted from an earlier push.
src/cpu/simple_thread.hh:
    Delete this function; it's now in thread_state.hh/.cc.

--HG--
extra : convert_revision : f78dcf9c2b388418030d48d0ea4911c8b8b1f5ff
2006-11-02 13:12:36 -05:00
Kevin Lim
ccaf80cc46 Use ISA specific makeExtMI.
src/arch/alpha/utility.hh:
    For now makeExtMI will be specific to the ISA.

--HG--
extra : convert_revision : 89959c6499efcc3df9301ad8ea039580764a1496
2006-11-02 13:11:38 -05:00
Gabe Black
b565660c42 Merge zizzer.eecs.umich.edu:/bk/newmem/
into  zeep.eecs.umich.edu:/home/gblack/m5/newmemmemops

--HG--
extra : convert_revision : c2f7398a0d14dd11108579bb243ada7420285a22
2006-11-01 19:00:59 -05:00
Gabe Black
8dbab9f701 Added code to handle draining.
--HG--
extra : convert_revision : 3861f553bde5865cd21a8a58a4c410896726f0a3
2006-11-01 19:00:49 -05:00
Gabe Black
6f78d49410 Fix a range check on the ipr_index.
--HG--
extra : convert_revision : 84e25abd4bb2de0c877c883804d39feb019c7030
2006-11-01 18:46:18 -05:00
Gabe Black
2b11b47357 Adjustments for the AlphaTLB changing to AlphaISA::TLB and changing register file functions to not take faults
--HG--
extra : convert_revision : 1cef0734462ee2e4db12482462c2ab3c134d3675
2006-11-01 16:44:45 -05:00
Gabe Black
f3ba6d20f6 Arg!
--HG--
extra : convert_revision : 8328d002780c0291e7eb264076a62084de88b7a5
2006-10-31 18:59:50 -05:00
Gabe Black
1543c3d0a1 More typos! I need to get nfs to work.
--HG--
extra : convert_revision : f5693e96d376254f777fb0cce7b5be3d36efbea9
2006-10-31 18:51:26 -05:00
Gabe Black
1dd903e856 Fix another typo
--HG--
extra : convert_revision : ad7058babf2a13bfe543e05f2662dc49a18a8b8b
2006-10-31 18:39:17 -05:00
Gabe Black
39de635fbf Check for out of range IPR values as well.
--HG--
extra : convert_revision : 9ca241bb71d8a1d022e54485383a88d2abece663
2006-10-31 18:19:45 -05:00
Gabe Black
45368c0300 Fix stupid typo
--HG--
extra : convert_revision : fbfc82974e89b2c726b689674c9f5d957682b280
2006-10-31 18:01:31 -05:00
Gabe Black
fb5ba85abb Make two simple utility functions to determine if a MiscReg index corresponding to an IPR is readable or writable.
--HG--
extra : convert_revision : 89eebba5eec01e629213997d24c734a6acad0ecb
2006-10-31 17:50:57 -05:00
Gabe Black
ad201172c9 We don't include ipr.cc in SE builds, so don't call it.
--HG--
extra : convert_revision : 45e52d7afbf74e0ddde11f58aeb084186389fc06
2006-10-31 16:59:41 -05:00
Gabe Black
ace4f0c188 Made the old name refer to the miscreg index to prevent having to change code all over the place.
--HG--
extra : convert_revision : e890a3ce420336acdb220396dcbf66d4b9974c76
2006-10-31 16:36:45 -05:00
Gabe Black
44f2c05118 Forgot to change the index.
--HG--
extra : convert_revision : 5a444e635d20bcca445a10e43592b6c10d25e879
2006-10-31 16:18:54 -05:00
Gabe Black
ece796ab8a Make the IPRs use regular miscreg indexes, and make a table or two to find the miscreg index of a specific IPR.
--HG--
extra : convert_revision : dd235261e7086d6667b1b2bdc4a81b2573e21d53
2006-10-31 16:02:28 -05:00
Kevin Lim
5825a6c9d8 Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-busfix

configs/example/fs.py:
configs/example/se.py:
src/mem/tport.hh:
    Hand merge.

--HG--
extra : convert_revision : b9df95534d43b3b311f24ae24717371d03d615bf
2006-10-31 14:37:19 -05:00
Kevin Lim
bfd5eb2b08 Remove mem parameter. Now the translating port asks the CPU's dcache's peer for its MemObject instead of having to have a paramter for the MemObject.
configs/example/fs.py:
configs/example/se.py:
src/cpu/simple/base.cc:
src/cpu/simple/base.hh:
src/cpu/simple/timing.cc:
src/cpu/simple_thread.cc:
src/cpu/simple_thread.hh:
src/cpu/thread_state.cc:
src/cpu/thread_state.hh:
tests/configs/o3-timing-mp.py:
tests/configs/o3-timing.py:
tests/configs/simple-atomic-mp.py:
tests/configs/simple-atomic.py:
tests/configs/simple-timing-mp.py:
tests/configs/simple-timing.py:
tests/configs/tsunami-simple-atomic-dual.py:
tests/configs/tsunami-simple-atomic.py:
tests/configs/tsunami-simple-timing-dual.py:
tests/configs/tsunami-simple-timing.py:
    No need for mem parameter any more.
src/cpu/checker/cpu.cc:
    Use new constructor for simple thread (no more MemObject parameter).
src/cpu/checker/cpu.hh:
    Remove MemObject parameter.
src/cpu/memtest/memtest.hh:
    Ports now take in their MemObject owner.
src/cpu/o3/alpha/cpu_builder.cc:
    Remove mem parameter.
src/cpu/o3/alpha/cpu_impl.hh:
    Remove memory parameter and clean up handling of TranslatingPort.
src/cpu/o3/cpu.cc:
src/cpu/o3/cpu.hh:
src/cpu/o3/fetch.hh:
src/cpu/o3/fetch_impl.hh:
src/cpu/o3/mips/cpu_builder.cc:
src/cpu/o3/mips/cpu_impl.hh:
src/cpu/o3/params.hh:
src/cpu/o3/thread_state.hh:
src/cpu/ozone/cpu.hh:
src/cpu/ozone/cpu_builder.cc:
src/cpu/ozone/cpu_impl.hh:
src/cpu/ozone/front_end.hh:
src/cpu/ozone/front_end_impl.hh:
src/cpu/ozone/lw_lsq.hh:
src/cpu/ozone/lw_lsq_impl.hh:
src/cpu/ozone/simple_params.hh:
src/cpu/ozone/thread_state.hh:
src/cpu/simple/atomic.cc:
    Remove memory parameter.

--HG--
extra : convert_revision : 43cb44a33b31320d44b69679dcf646c0380d07d3
2006-10-31 14:33:56 -05:00
Kevin Lim
b26355daa8 Ports now have a pointer to the MemObject that owns it (can be NULL).
src/cpu/simple/atomic.hh:
    Port now takes in the MemObject that owns it.
src/cpu/simple/timing.hh:
    Port now takes in MemObject that owns it.
src/dev/io_device.cc:
src/mem/bus.hh:
    Ports now take in the MemObject that owns it.
src/mem/cache/base_cache.cc:
    Ports now take in the MemObject that own it.
src/mem/port.hh:
src/mem/tport.hh:
    Ports now optionally take in the MemObject that owns it.

--HG--
extra : convert_revision : 890a72a871795987c2236c65937e06973412d349
2006-10-31 13:59:30 -05:00
Ali Saidi
17141a1be9 remove connectAll() and connect() code since it isn't used anymore. (The python does it all)
--HG--
extra : convert_revision : e16a1ff59d4522703b155c2e68379a3072e8f47f
2006-10-31 13:23:49 -05:00
Ali Saidi
c68f7feaa8 add the ability to insert into the middle of the timing port send list
--HG--
extra : convert_revision : 5422025f74ba7013f98d1d1dcbd1070f580aae61
2006-10-31 13:23:17 -05:00
Gabe Black
3c19c5f0f2 Missed a few instances of this function.
--HG--
extra : convert_revision : 581f97dafc2b30bd5067f6ff7f9cdbabc6890622
2006-10-31 04:12:52 -05:00
Gabe Black
eab445e1bc Get rid of old, commented out code.
--HG--
extra : convert_revision : 46e9f26917efab642b80ea9e4303ec95d43d935e
2006-10-31 03:44:39 -05:00
Gabe Black
038217049a Move IntrFlag into the MiscRegFile and get rid of specialized accessor functions.
--HG--
extra : convert_revision : e0d12a150b01d05de9bc02bcbc7c22797975a5b9
2006-10-31 03:37:01 -05:00
Gabe Black
4862879a94 Put the Alpha tlb stuff into the AlphaISA namespace, and give the classes more neutral names.
--HG--
extra : convert_revision : 702c715b7516a16602172deb1b78d6a7ab848fd4
2006-10-31 02:08:44 -05:00
Gabe Black
628a3b1d01 An attempt to serialize the state of the micro code mechanism in the simple cpu.
src/cpu/simple/base.cc:
    Make a microcoded op start at the current micropc, rather than starting at 0.
src/cpu/thread_state.cc:
    Serialize the microPC and nextMicroPC

--HG--
extra : convert_revision : 5302215f17312ecef3ff4c6548acb05297ee4ff6
2006-10-29 04:04:50 -05:00
Gabe Black
349c7aff9b Move the mem classes into util.isa so that multiple inheritance can be used in the future for micro insts.
--HG--
extra : convert_revision : c71faa5e43b56ed15d00ed5fd57c020d1c845445
2006-10-29 03:40:52 -05:00
Gabe Black
6e66de7c75 Fix when the IsDelayedCommit flag is set.
--HG--
extra : convert_revision : ab6cd69f82b2013d66a91beaa3e39d8f417a9251
2006-10-29 03:26:41 -05:00
Gabe Black
9adba8d98e Bring casa and casxa up to date
src/arch/sparc/isa/decoder.isa:
    Fix up the casa and casxa instructions.
src/arch/sparc/isa/formats/formats.isa:
    This is handled in loadstore.isa now
src/arch/sparc/isa/formats/mem/basicmem.isa:
src/arch/sparc/isa/formats/mem/blockmem.isa:
    Renamed doSplitExecute to doDualSplitExecute. This differentiates between the version that does both a register and immediate version, and one that just does a register version.
src/arch/sparc/isa/formats/mem/mem.isa:
    The cas format is handled in loadstore.isa as well now.
src/arch/sparc/isa/formats/mem/util.isa:
    Reorganized things a bit to better support cas

--HG--
extra : convert_revision : 12411e89e763287e52f9825bf7a417b263c1037f
2006-10-29 02:57:32 -05:00
Gabe Black
ce313a15d5 Fixed ldstub to use the right format, and made the load/store operations use the integer microcode register.
--HG--
extra : convert_revision : 7df5bd4bbe8a2607c7d2b4799826831d6a440926
2006-10-29 01:59:30 -05:00
Gabe Black
6dddca9511 Add an integer microcode register.
--HG--
extra : convert_revision : f23dbfdfe44e8e6cdd6948000669ad4f743b9fb4
2006-10-29 01:58:37 -05:00
Ali Saidi
61c808ae1c Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem.head

--HG--
extra : convert_revision : df73fd850d6638cbce6ff31203857f51235b8763
2006-10-28 13:17:05 -04:00
Ali Saidi
14f53b9b6b remove intel nic from SConscript
--HG--
extra : convert_revision : b01bb258c97cf42d46a94faedab31726623fe437
2006-10-28 13:16:53 -04:00
Gabe Black
ab6b6a9202 This one really needs to be arch/faults.hh
--HG--
extra : convert_revision : aad1ee04ade9f4394c9ef0386f23d6f2ca373412
2006-10-28 04:44:05 -04:00
Gabe Black
7f1463f94a Include the right version of faults.hh
--HG--
extra : convert_revision : 4762b8ab46ac755726cc658a378c2cf5b2061dc3
2006-10-28 04:00:24 -04:00
Gabe Black
477693c519 Merge zizzer.eecs.umich.edu:/bk/newmem
into  zeep.eecs.umich.edu:/home/gblack/m5/newmem

--HG--
extra : convert_revision : 9883fb35fd9c36e1819153f9976f8bdc73dbe8f3
2006-10-28 03:48:23 -04:00