91e3aa6295
Minor further cleanup & commenting of Packet class.
Steve Reinhardt
2006-05-30 22:30:42 -04:00
0e5db091e9
Fix Port pointer initialization.
Steve Reinhardt
2006-05-30 19:49:28 -04:00
f0c05de9f9
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem into zizzer.eecs.umich.edu:/z/stever/bk/newmem-py
Steve Reinhardt
2006-05-30 19:45:54 -04:00
e371dc32a9
Clean up Python embedding to build on zizzer (where python2.4 is currently in /usr/local instead of /usr).
Steve Reinhardt
2006-05-30 19:44:57 -04:00
aa11330ddb
Merge zizzer:/bk/newmem into zeep.pool:/z/saidi/work/m5.newmem
Ali Saidi
2006-05-30 18:57:53 -04:00
09d8a1e125
Add a very poor implementation of dealing with retries on timing requests. It is especially slow with tracing on since it ends up being O(N^2). But it's probably going to have to change for the real bus anyway, so it should be rewritten then Change recvRetry() to not accept a packet. Sendtiming should be called again (and can respond with false or true) Removed Port Blocked/Unblocked and replaced with sendRetry(). Remove possibility of packet mangling if packet is going to be refused anyway in bridge
Ali Saidi
2006-05-30 18:57:42 -04:00
4a5b51b516
Merge ktlim@zizzer:/bk/m5 into zamp.eecs.umich.edu:/z/ktlim2/clean/newmem
Kevin Lim
2006-05-30 14:17:41 -04:00
0337db3388
Link in Python interpreter. Use embedded zip archive to carry Python code instead of homegrown embedded string/file mechanism. Do argument parsing in Python instead of C++.
Steve Reinhardt
2006-05-30 13:11:34 -04:00
d308055afc
Fix SCons version check.
Steve Reinhardt
2006-05-30 06:34:26 -04:00
e60dc5195c
commit a couple of minor things that I forgot to last time.
Ali Saidi
2006-05-29 18:25:02 -04:00
c0cf76c837
Create a new CpuEvent class that has a pointer to an execution context in the object and places itself on a global list so so the events can be migrated on cpu switches. Create a new wrapper classe called CpuEventWrapper that works like the old wrapper class but calls the function with the xc parameter Use new CpuEventWrapper class from tick compare events on sparc
Ali Saidi
2006-05-29 18:24:27 -04:00
dc29a7c8ae
split off fullsystem and se iprs into two functions to remove lots of #ifs setup all initialization stuff for UA2005 Setup fullsys build options Start to make fullsystem compile
Ali Saidi
2006-05-29 16:53:47 -04:00
4b855592eb
Added in the IprAccessOp flag for priveleged and hyperpriveleged instructions.
Gabe Black
2006-05-29 00:02:44 -04:00
5cc0306691
Moved the Bit64 constant out of the regfile.hh into isa_traits.cc, which is the only place it was used.
Gabe Black
2006-05-28 23:50:23 -04:00
981471c31d
Used the Priv and new HPriv instruction formats, which have been tweaked to let some checks be done by the misc reg file.
Gabe Black
2006-05-28 23:49:29 -04:00
a433cf140e
Fixed this to run from the newmem directory to be compatible with how things have been moved around.
Gabe Black
2006-05-28 23:48:24 -04:00
82a76d18e1
Remove authors from copyright.
Ali Saidi
2006-05-28 23:26:15 -04:00
de20b819f1
remove some getPtr() calls by changing having function return values instead of taking a pointer
Ali Saidi
2006-05-28 22:21:57 -04:00
5df77b865d
Merge zizzer:/bk/newmem into zeep.pool:/z/saidi/work/m5.newmem
Ali Saidi
2006-05-26 18:40:08 -04:00
e04f60667a
Implement PR/HPR/ASR for full system Rip out storage in miscreg file that will never store anything Add storage and defines for Priv and Hyperpriv registers Change defines to match the spec register numbers Change the way misc registers are named to match the spec with offsets to deal with ASR/PR/HPR/FSR. Change contextval to an int since both global registers and windowed registers are indexed by int in UA2005. Use bitfields for things that are rarely used in decoder Instead of decoding ASR/PR/HPR and having a specfic instruction, use a generic instruction instead
Ali Saidi
2006-05-26 18:40:00 -04:00
f456360bbc
Merge zeep.pool:/z/saidi/work/m5.newmem into zeep.pool:/z/saidi/work/m5.newmem.head
Ali Saidi
2006-05-26 17:03:47 -04:00
53510f1844
Fixes for TimingSimpleCPU under full system. Now boots Alpha Linux!
Steve Reinhardt
2006-05-26 14:33:43 -04:00
acb05ebcf6
Reorganize bridge as pair of cooperating ports. Store original source & senderState for timing packets that get a response, so we can properly route the response packet back to the original sender.
Steve Reinhardt
2006-05-26 14:29:29 -04:00
cdad113afb
Add a little more tracing support for Bus/Port stuff.
Steve Reinhardt
2006-05-26 14:24:46 -04:00
e533fad711
Significant rework of Packet class interface: - new constructor guarantees initialization of most fields - flags track status of non-guaranteed fields (addr, size, src) - accessor functions (getAddr() etc.) check status on access - Command & Result classes are nested in Packet class scope - Command now built from vector of behavior bits - string version of Command for tracing - reinitFromRequest() and makeTimingResponse() encapsulate common manipulations of existing packets
Steve Reinhardt
2006-05-26 14:17:33 -04:00
da6a7b1263
Add names to memory Port objects for tracing.
Steve Reinhardt
2006-05-26 13:48:35 -04:00
94eff2f485
Merge ktlim@zamp:/z/ktlim2/clean/m5-merge into zamp.eecs.umich.edu:/z/ktlim2/clean/m5-o3
Kevin Lim
2006-05-25 17:56:23 -04:00
f1fab2a446
Fix stat typo.
Kevin Lim
2006-05-25 17:56:01 -04:00
f5b5391cfb
Missed this file in last check in.
Kevin Lim
2006-05-25 17:13:00 -04:00
248bd2bb62
Various branch predictor fixes/cleanup. It works more correctly now and supports both local and tournament predictors.
Kevin Lim
2006-05-25 17:01:48 -04:00
02aa549c9b
Fix minor memory leak.
Kevin Lim
2006-05-25 14:41:36 -04:00
32509d8387
Fix up kernel stats, allow them to not be used as well.
Kevin Lim
2006-05-25 11:50:42 -04:00
3fe3523232
Support new flags now used instead of flags in decoder.isa.
Kevin Lim
2006-05-24 14:31:06 -04:00
16df8221ff
Merge ktlim@zizzer:/bk/m5 into zamp.eecs.umich.edu:/z/ktlim2/clean/m5-o3
Kevin Lim
2006-05-23 18:19:04 -04:00
5d3a1e8f65
Updates to isa parser to make it see dependencies properly with the new scanner.
Kevin Lim
2006-05-23 18:18:16 -04:00
cf826ae296
Minor fixes for full-system timing memory. Need to rewrite bus bridge to get any further.
Steve Reinhardt
2006-05-23 17:16:45 -04:00
b414c9e736
Merge ktlim@zizzer:/bk/m5 into zamp.eecs.umich.edu:/z/ktlim2/clean/m5-o3
Kevin Lim
2006-05-23 17:04:25 -04:00
358cf1b117
Rework how instructions are scheduled and executed. The "execute" portion of IEW is really just the last cycle of execution, at which point execute() gets called. Execution begins inside the IQ, when it schedules FUs for specific instructions. As a result, the Execute stage should just pull all completing instructions out of the IQ stage and execute them. Limiting the number of writebacks outstanding must still be done.
Kevin Lim
2006-05-23 17:03:43 -04:00
c9ad4a15d6
Cleanup checker.
Kevin Lim
2006-05-23 16:59:13 -04:00
6c386396fa
Code cleanup.
Kevin Lim
2006-05-23 16:57:14 -04:00
ff3d16ca1f
Move kernel stats out of CPU and into XC.
Kevin Lim
2006-05-23 16:51:16 -04:00
eeeee7c58f
Add extra flags to help new CPU handle various instructions. IsIprAccess flag may go away in the future (op class can be used to tell this), and the CPU still needs a specific way to identify/deal with syscalls.
Kevin Lim
2006-05-23 14:38:16 -04:00
20051d41d5
Make scons auto-configure stuff per-build-root. Undo changes to allow multiple build roots in a single invocation... this would have been too messy to maintain with the auto-configure stuff, and probably isn't useful anyway.
Steve Reinhardt
2006-05-22 22:37:56 -04:00
475a981f6e
Get rid of FastCPU model. It doesn't compile, and if we really want this we should start over from scratch and see if we can reuse parts from BaseSimpleCPU (e.g., derive a FastSimpleCPU).
Steve Reinhardt
2006-05-22 22:18:08 -04:00
3878895264
Fix to SPARC Nop class for multiple CPU models.
Steve Reinhardt
2006-05-22 22:15:22 -04:00
2af0daa59f
Make CPU_MODELS default to just the two SimpleCPU variants for now (since those are the only ones that compile).
Steve Reinhardt
2006-05-22 22:14:10 -04:00
a7c95f702c
Clean up libelf handling.
Steve Reinhardt
2006-05-22 21:51:59 -04:00
28ea972942
have multiple global levels (as required by UA2005)
Ali Saidi
2006-05-22 17:38:00 -04:00
7df1412ccd
Undo changes to instruction flags that has caused statistics to change in regressions. This temporarily will break the O3 and Ozone CPU models. Updates to fix them will be coming soon.
Kevin Lim
2006-05-22 16:01:25 -04:00
c88f0810c0
Forgot to delete the now-obsolete mkbuilddir script.
Steve Reinhardt
2006-05-22 14:41:49 -04:00
ba2eae5d52
New directory structure: - simulator source now in 'src' subdirectory - imported files from 'ext' repository - support building in arbitrary places, including outside of the source tree. See comment at top of SConstruct file for more details. Regression tests are temporarily disabled; that syetem needs more extensive revisions.
Steve Reinhardt
2006-05-22 14:29:33 -04:00
5a7db55e9a
Threads start off in suspended status now (Korey's changes for SMT).
Kevin Lim
2006-05-21 01:55:58 -04:00
e3d5588ca7
O3 code update/cleanup.
Kevin Lim
2006-05-19 15:53:17 -04:00
1a6f21b8d2
Remove sat_counter.cc and put its code into sat_counter.hh.
Kevin Lim
2006-05-19 15:47:55 -04:00
fda6ddbffd
Rename function to be more expressive.
Kevin Lim
2006-05-19 15:45:06 -04:00
5df3e61f16
IEW/IQ code cleanup and reorganization. Dependecy graph code moved into its own class. This requires the changes to the functional units, which is in the next check in.
Kevin Lim
2006-05-19 15:44:03 -04:00
c4a87f874a
Move activity tracking code into its own class. Now the CPU no longer has to keep track of the activity tracking internals; it just calls advance() on the class and uses it to tell if it should deschedule itself.
Kevin Lim
2006-05-19 15:37:52 -04:00
c7e7d07ec3
Fixes for regression build errors.
Kevin Lim
2006-05-19 14:27:46 -04:00
86777c9db1
First steps toward getting full system to work with TimingSimpleCPU. Not there yet.
Steve Reinhardt
2006-05-18 22:54:19 -04:00
796fa429fe
Change Packet parameters on Port methods from references to pointers.
Steve Reinhardt
2006-05-18 22:32:21 -04:00
381c4f6720
add regStats() back to ide_disk add sinic back to sconscript file
Ali Saidi
2006-05-18 13:33:14 -04:00
a5ccef0058
Merge zizzer:/bk/newmem into zeep.pool:/z/saidi/work/m5.nm_m5_pull
Ali Saidi
2006-05-18 12:52:37 -04:00
2a5cd79986
fix ide stats and make sinic compile after merge.
Ali Saidi
2006-05-18 12:52:16 -04:00
935ba67b4f
Get basic full-system working with AtomicSimpleCPU.
Steve Reinhardt
2006-05-17 22:08:44 -04:00
36581a5342
Faults generated at fetch are passed to the backend by creating a dummy nop instruction and giving it the fault. This unifies front end faults and normal instruction faults.
Kevin Lim
2006-05-17 14:25:10 -04:00
343bff3b7d
Backport ISA scanner fix from newmem to work with scons 0.96.9* versions.
Steve Reinhardt
2006-05-17 07:05:27 -04:00
5da14ec60a
Merge zizzer:/bk/newmem into zeep.pool:/z/saidi/work/m5.newmem
Ali Saidi
2006-05-16 23:58:37 -04:00
a873cd2ca1
add single fs newmem test
Ali Saidi
2006-05-16 23:58:31 -04:00
309e1d8193
Split SimpleCPU into two different models, AtomicSimpleCPU and TimingSimpleCPU, which use atomic and timing memory accesses respectively. Common code is factored into the BaseSimpleCPU class. AtomicSimpleCPU includes an option (simulate_stalls) to add delays based on the estimated latency reported by the atomic accesses. Plain old "SimpleCPU" is gone; I have not updated all the config files (just test/test.py). Also fixes to get timing accesses working in new memory model and to get split-phase memory instruction definitions working with new memory model as well.
Steve Reinhardt
2006-05-16 17:36:50 -04:00
aaf1969c78
Merge ktlim@zamp:/z/ktlim2/clean/m5-o3 into zamp.eecs.umich.edu:/z/ktlim2/clean/m5-merge
Kevin Lim
2006-05-16 15:30:36 -04:00
578777d48e
Update configuration files.
Kevin Lim
2006-05-16 15:25:46 -04:00
044f3998d0
Merge ktlim@zizzer:/bk/m5 into zamp.eecs.umich.edu:/z/ktlim2/clean/m5-merge
Kevin Lim
2006-05-16 15:09:06 -04:00
abe14c253b
Include checker and trap latency parameters.
Kevin Lim
2006-05-16 14:47:09 -04:00
52383ca7cc
Sampler updates.
Kevin Lim
2006-05-16 14:09:04 -04:00
ef6e2eb3c4
Updates for sampler, checker, and general correctness.
Kevin Lim
2006-05-16 14:06:35 -04:00
c23b23f4e7
Add in checker. Supports dynamically verifying the execution of instructions, as well as limited amount of control path verification. It will verify anything within the program, but anything external (traps, interrupts, XC) it assumes is redirected properly by the CPU. Similarly it assumes the results of store conditionals, uncached loads, and instructions marked as "unverifiable" are correct from the CPU.
Kevin Lim
2006-05-16 13:59:29 -04:00
bd88385034
Sampler updates.
Kevin Lim
2006-05-16 13:52:03 -04:00
989cc1735e
Sampling fixes related to the quiesce event.
Kevin Lim
2006-05-16 13:51:18 -04:00
bfa9cc2c3a
Add some flags for the upcoming checker.
Kevin Lim
2006-05-16 13:48:05 -04:00
2db12b3d6c
Many files: Get rid of more unneeded includes.
Steve Reinhardt
2006-05-15 20:30:20 -04:00
2d9b7846c6
Many files: Fix sstream includes
Steve Reinhardt
2006-05-15 20:06:42 -04:00
7d3eb0fe80
Merge zizzer:/bk/newmem into zeep.pool:/z/saidi/work/m5.newmem
Ali Saidi
2006-05-15 17:52:50 -04:00
a6266a99e2
Add support for sparc/solaris syscall emulation. Not tested yet because I can't get a static sparc 64 binary
Ali Saidi
2006-05-15 17:37:03 -04:00
c7b26d015a
fix typo, headers protection should be named __DIR_DIR_..._FILE_HH__
Ali Saidi
2006-05-15 17:35:51 -04:00
0a053c7919
Merge m5.eecs.umich.edu:/bk/newmem into ewok.(none):/home/gblack/m5/newmem
Gabe Black
2006-05-14 23:58:23 -04:00
149b724b86
Fixed some problems with signed vs. unsigned numbers which were breaking conditional moves and signed divisions. Also did some minor clean ups.
Gabe Black
2006-05-14 23:57:21 -04:00
42313f33ef
Made the decoder handle reg_or_imm type arguments with type qualifiers.
Gabe Black
2006-05-14 23:56:16 -04:00
b91b877e9a
Made EM_SPARC32PLUS be recognized as belonging to the SPARC architecture. Programs which have this set will not work because the stack works differently, so this should probably throw an error and quit.
Gabe Black
2006-05-14 23:55:07 -04:00
9955ebd03c
Moved the UnimpFault to be global
Gabe Black
2006-05-14 23:53:29 -04:00
8db6dd370c
Copied Korey's MIPS tests over to SPARC
Gabe Black
2006-05-14 23:52:45 -04:00
0be3d001c9
Merge zeep.pool:/z/saidi/work/m5.head into zeep.pool:/z/saidi/work/m5.nm_m5_pull
Ali Saidi
2006-05-12 18:51:42 -04:00
4644eab6d8
replace /.automount/ with /n/
Ali Saidi
2006-05-12 18:51:23 -04:00
03a00e5d32
Merge zeep.pool:/z/saidi/work/m5.head into zeep.pool:/z/saidi/work/m5.nm_m5_pull
Ali Saidi
2006-05-12 18:16:07 -04:00
7929b9ee19
fix the checkpoint bug
Ali Saidi
2006-05-12 17:47:23 -04:00
a91ee5abc2
FP programs are back to running... Condition Codes can be read and set... Special Regs (Hi,Lo,FCSR) are now added to the operands for use in decoder.isa.
Korey Sewell
2006-05-12 02:57:32 -04:00
21df09cf7a
Fixes for ozone CPU to successfully boot and run linux.
Kevin Lim
2006-05-11 19:18:36 -04:00
e5064e470c
Initialize the count on the number of devices drained properly.
Ron Dreslinski
2006-05-11 17:26:11 -04:00
5cfff7d5bb
First pass at a serializer object, may need to work on naming of object and functions:
Ron Dreslinski
2006-05-11 17:24:15 -04:00
d1e6f48203
make the dma buffer equal to the max dma size
Ali Saidi
2006-05-11 17:19:17 -04:00
9892bdb342
ide printing to match newmem
Ali Saidi
2006-05-11 17:18:19 -04:00