gem5.git
14 years agoX86: Update the stats for the new aux vectors in the ruby regression.
Gabe Black [Thu, 6 May 2010 20:41:08 +0000 (13:41 -0700)]
X86: Update the stats for the new aux vectors in the ruby regression.
I forgot to turn on ruby when updating the stats before.

14 years agoX86: Update stats for the updated auxilliary vectors.
Gabe Black [Mon, 3 May 2010 07:45:01 +0000 (00:45 -0700)]
X86: Update stats for the updated auxilliary vectors.

14 years agoX86: Update the base aux vector X86 processes install.
Gabe Black [Mon, 3 May 2010 07:44:08 +0000 (00:44 -0700)]
X86: Update the base aux vector X86 processes install.

14 years agoX86: Sometimes CPUID depends on ecx, so pass that in.
Gabe Black [Sun, 2 May 2010 07:40:17 +0000 (00:40 -0700)]
X86: Sometimes CPUID depends on ecx, so pass that in.

14 years agoStatetrace: Fix compile problems with the AMD64 version of statetrace.
Gabe Black [Sun, 2 May 2010 07:39:46 +0000 (00:39 -0700)]
Statetrace: Fix compile problems with the AMD64 version of statetrace.

14 years agoX86: Finally fix a division corner case.
Gabe Black [Sun, 2 May 2010 07:39:29 +0000 (00:39 -0700)]
X86: Finally fix a division corner case.

When doing an unsigned 64 bit division with a divisor that has its most
significant bit set, the division code would spill a bit off of the end of a
uint64_t trying to shift the dividend into position. This change adds code
that handles that case specially by purposefully letting it spill and then
going ahead assuming there was a 65th one bit.

14 years agoconfig: fix assertion for x86 in FSConfig.py
Nathan Binkert [Mon, 19 Apr 2010 04:33:59 +0000 (21:33 -0700)]
config: fix assertion for x86 in FSConfig.py

14 years agostats: make simTicks and simFreq accessible from stats.hh
Nathan Binkert [Sun, 18 Apr 2010 20:23:25 +0000 (13:23 -0700)]
stats: make simTicks and simFreq accessible from stats.hh

14 years agocallback: Make helper functions that create callback objects for you
Nathan Binkert [Sun, 18 Apr 2010 20:23:25 +0000 (13:23 -0700)]
callback: Make helper functions that create callback objects for you
clean up callback stuff a little bit while we're at it.

14 years agoevent: Allow EventWrapper to take an object reference
Nathan Binkert [Sun, 18 Apr 2010 20:23:24 +0000 (13:23 -0700)]
event: Allow EventWrapper to take an object reference

14 years agoscons: don't maintain files in sorted order
Nathan Binkert [Thu, 15 Apr 2010 23:25:14 +0000 (16:25 -0700)]
scons: don't maintain files in sorted order
This causes builds to happen in sorted order rather than in
declaration order. This gets annoying when you make a global change
and then you notice that the files that are being compiled are jumping
around the directory hierarchy.

14 years agotick: rename Clock namespace to SimClock
Nathan Binkert [Thu, 15 Apr 2010 23:24:12 +0000 (16:24 -0700)]
tick: rename Clock namespace to SimClock

14 years agoeventq: move EventQueue constructor to cc file
Nathan Binkert [Thu, 15 Apr 2010 23:24:10 +0000 (16:24 -0700)]
eventq: move EventQueue constructor to cc file
Also make copy constructor and assignment operator private.

14 years agoinorder: update regressions for fwd-ing patch
Korey Sewell [Sun, 11 Apr 2010 04:21:49 +0000 (00:21 -0400)]
inorder: update regressions for fwd-ing patch

14 years agoinorder: timing for inst forwarding
Korey Sewell [Sun, 11 Apr 2010 03:31:36 +0000 (23:31 -0400)]
inorder: timing for inst forwarding
when insts execute, they mark the time they finish to be used for subsequent isnts
they may need forwarding of data. However, the regdepmap was using the wrong
value to index into the destination operands of the instruction to be forwarded.
Thus, in some cases, we are checking to see if the 3rd destination register
for an instruction is executed at a certain time, when there is only 1 dest. register
valid. Thus, we get a bad, uninitialized time value that will stall forwarding
causing performance loss but still the correct execution.

14 years agoeventq: allow an implicit cast from an EventManager to an EventQueue *
Nathan Binkert [Fri, 2 Apr 2010 22:28:22 +0000 (15:28 -0700)]
eventq: allow an implicit cast from an EventManager to an EventQueue *

14 years agoeventq: Clean up some flags
Nathan Binkert [Fri, 2 Apr 2010 22:28:22 +0000 (15:28 -0700)]
eventq: Clean up some flags
- Make the initialized flag always available, not just in debug mode.
- Make the Initialized flag actually use several bits so it is very
unlikely that something that's uninitialized accidentally looks
initialized.
- Add an initialized() function that tells you if the current event is
indeed  initialized.
- Clear the flags on delete so it can't be accidentally thought of as
initialized.
- Fix getFlags assert statement.  "How did this ever work?"

14 years agoeventq: Make priorities just an integer instead of an enum.
Nathan Binkert [Fri, 2 Apr 2010 22:28:21 +0000 (15:28 -0700)]
eventq: Make priorities just an integer instead of an enum.
Symbolic names should still be used, but this makes it easier to do
things like:
Event::Priority MyObject_Pri = Event::Default_Pri + 1

Remember that higher numbers are lower priority (should we fix this?)

14 years agorefcnt: no default copy contructor or copy operator
Nathan Binkert [Fri, 2 Apr 2010 18:20:32 +0000 (11:20 -0700)]
refcnt: no default copy contructor or copy operator
We shouldn't allow these because the default versions will copy
the reference count which is definitely not what we want.

14 years agoruby: get rid of gems_common/util.hh and .cc and use stuff in src/base
Nathan Binkert [Fri, 2 Apr 2010 18:20:32 +0000 (11:20 -0700)]
ruby: get rid of gems_common/util.hh and .cc and use stuff in src/base

14 years agoruby: get "using namespace" out of headers
Nathan Binkert [Fri, 2 Apr 2010 18:20:32 +0000 (11:20 -0700)]
ruby: get "using namespace" out of headers
In addition to obvious changes, this required a slight change to the slicc
grammar to allow types with :: in them.  Otherwise slicc barfs on std::string
which we need for the headers that slicc generates.

14 years agostyle: another ruby style pass
Nathan Binkert [Wed, 31 Mar 2010 23:56:45 +0000 (16:56 -0700)]
style: another ruby style pass

14 years agostyle: cleanup the Ruby Tester
Nathan Binkert [Tue, 30 Mar 2010 00:39:02 +0000 (20:39 -0400)]
style: cleanup the Ruby Tester

14 years agom5: merge inorder updates
Korey Sewell [Sat, 27 Mar 2010 06:23:00 +0000 (02:23 -0400)]
m5: merge inorder updates

14 years agoinorder: update twolf/vortex regressions
Korey Sewell [Sat, 27 Mar 2010 06:21:22 +0000 (02:21 -0400)]
inorder: update twolf/vortex regressions

14 years agoinorder: write-hints bug fix
Korey Sewell [Sat, 27 Mar 2010 05:40:05 +0000 (01:40 -0400)]
inorder: write-hints bug fix
make sure to only read 1 src reg. for write-hint and any other similar
'store' instruction. Reading the source reg when its not necessary
can cause the simulator to read from uninitialized values

14 years agoCPU: Added comments to address translation classes.
Timothy M. Jones [Thu, 25 Mar 2010 12:43:52 +0000 (12:43 +0000)]
CPU: Added comments to address translation classes.

14 years agoruby: continue style pass
Nathan Binkert [Wed, 24 Mar 2010 05:49:43 +0000 (22:49 -0700)]
ruby: continue style pass

14 years agoregress: add some new options
Nathan Binkert [Tue, 23 Mar 2010 23:31:47 +0000 (16:31 -0700)]
regress: add some new options
add -n/--no-exec which doesn't execute scons, but just prints the command line
add -j0 which tries to calculate how many cpus you have
add -D/--build-dir to specify a build directory other than ./build

14 years agocpu: get rid of uncached access "events"
Steve Reinhardt [Tue, 23 Mar 2010 15:50:59 +0000 (08:50 -0700)]
cpu: get rid of uncached access "events"
These recordEvent() calls could cause crashes since they
access the req pointer after it's potentially been
deleted during a failed translation call.  (Similar
problem to the traceData bug fixed in the previous cset.)

Moving them above the translation call (as was done
recentlyi in cset 8b2b8e5e7d35) avoids the crash
but doesn't work, since at that point we don't know if
the access is uncached or not.

It's not clear why these calls are there, and no one
seems to use them, so we'll just delete them.  If they
are needed, they should be moved to somewhere that's
guaranteed to be after the translation completes but
before the request is possibly deleted, e.g., in
finishTranslation().

14 years agocpu: fix exec tracing memory corruption bug
Steve Reinhardt [Tue, 23 Mar 2010 15:50:57 +0000 (08:50 -0700)]
cpu: fix exec tracing memory corruption bug
Accessing traceData (to call setAddress() and/or setData())
after initiating a timing translation was causing crashes,
since a failed translation could delete the traceData
object before returning.

It turns out that there was never a need to access traceData
after initiating the translation, as the traced data was
always available earlier; this ordering was merely
historical.  Furthermore, traceData->setAddress() and
traceData->setData() were being called both from the CPU
model and the ISA definition, often redundantly.

This patch standardizes all setAddress and setData calls
for memory instructions to be in the CPU models and not
in the ISA definition.  It also moves those calls above
the translation calls to eliminate the crashes.

14 years agom5merge(2): another merge of regression stats
Korey Sewell [Tue, 23 Mar 2010 04:29:10 +0000 (00:29 -0400)]
m5merge(2): another merge of regression stats

14 years agoinorder: update hello world for alpha and mips
Korey Sewell [Tue, 23 Mar 2010 04:26:53 +0000 (00:26 -0400)]
inorder: update hello world for alpha and mips

14 years agom5merge: ruby + inorder
Korey Sewell [Tue, 23 Mar 2010 04:21:19 +0000 (00:21 -0400)]
m5merge: ruby + inorder
automerge of updated inorder regressions and ruby style pass

14 years agoinorder: update twolf regression
Korey Sewell [Tue, 23 Mar 2010 04:14:52 +0000 (00:14 -0400)]
inorder: update twolf regression

14 years agoinorder: update vortex regression
Korey Sewell [Tue, 23 Mar 2010 03:39:23 +0000 (23:39 -0400)]
inorder: update vortex regression

14 years agoruby: style pass
Nathan Binkert [Tue, 23 Mar 2010 01:43:53 +0000 (18:43 -0700)]
ruby: style pass

14 years agoinorder: import name for addtl. bpred stats
Korey Sewell [Mon, 22 Mar 2010 21:19:48 +0000 (17:19 -0400)]
inorder: import name for addtl. bpred stats

14 years agoinorder: fix squash bug in branch predictor
Maximilien Breughe [Mon, 22 Mar 2010 20:59:12 +0000 (16:59 -0400)]
inorder: fix squash bug in branch predictor

14 years agoinorder: fix address list bug
Korey Sewell [Mon, 22 Mar 2010 19:38:28 +0000 (15:38 -0400)]
inorder: fix address list bug

14 years agoruby: improved isReadWrite fix me comment
Brad Beckmann [Mon, 22 Mar 2010 18:19:17 +0000 (11:19 -0700)]
ruby: improved isReadWrite fix me comment

14 years agoruby: Regression updates for new ruby config locations
Brad Beckmann [Mon, 22 Mar 2010 04:22:22 +0000 (21:22 -0700)]
ruby: Regression updates for new ruby config locations

14 years agoruby: Removed the unnecessary MachineType message fields
Brad Beckmann [Mon, 22 Mar 2010 04:22:22 +0000 (21:22 -0700)]
ruby: Removed the unnecessary MachineType message fields

14 years agoruby: Reorganized Ruby topology and protocol files
Brad Beckmann [Mon, 22 Mar 2010 04:22:22 +0000 (21:22 -0700)]
ruby: Reorganized Ruby topology and protocol files

--HG--
rename : configs/ruby/MESI_CMP_directory.py => configs/ruby/protocols/MESI_CMP_directory.py
rename : configs/ruby/MI_example.py => configs/ruby/protocols/MI_example.py
rename : configs/ruby/MOESI_CMP_directory.py => configs/ruby/protocols/MOESI_CMP_directory.py
rename : configs/ruby/MOESI_CMP_token.py => configs/ruby/protocols/MOESI_CMP_token.py
rename : configs/ruby/MOESI_hammer.py => configs/ruby/protocols/MOESI_hammer.py
rename : configs/ruby/networks/MeshDirCorners.py => src/mem/ruby/network/topologies/MeshDirCorners.py

14 years agoadded sparse memory support to hammer
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
added sparse memory support to hammer

14 years agoruby: Disable adaptive routing by for faster simulation perf.
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Disable adaptive routing by for faster simulation perf.

14 years agoruby: Changed the default set size to 1
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Changed the default set size to 1

Previously, the set size was set to 4.  This was mostly do to the fact that a
crazy graduate student use to create networks with 256 l2 cache banks.  Now it
is far more likely that users will create systems with less than 64 of any
particular controller type.  Therefore Ruby should be optimized for a set size
of 1.

14 years agoruby: Reordered protocol buffers
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Reordered protocol buffers

Reordered vnet priorities to agree with PerfectSwitch for protocols MI_example,
MOESI_CMP_token, and MOESI_hammer

14 years agoruby: Adds configurable bit selection for numa mapping
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Adds configurable bit selection for numa mapping

14 years agoruby: Added flag to disable mem_vec allocation
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Added flag to disable mem_vec allocation

The RubySystem flag no_mem_vec will disable Ruby from allocating it's memory
data array.

14 years agoruby: Ruby support for sparse memory
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Ruby support for sparse memory

The patch includes direct support for the MI example protocol.

14 years agoruby: Finally removed bash code cira. 2001ish!
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Finally removed bash code cira. 2001ish!

14 years agoruby: Ruby support for LLSC
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Ruby support for LLSC

14 years agoruby: Minor dma latency initialization fix
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Minor dma latency initialization fix

14 years agoruby: Fix multiple wakeups in Ruby Eventqueue
Tushar Krishna [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Fix multiple wakeups in Ruby Eventqueue

Fix bug in Ruby Event queue to avoid multiple wakeups of same consumer in
same cycle

14 years agoruby: Removed the obsolete file specified network files
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Removed the obsolete file specified network files

14 years agoruby: Added copyright to many Ruby *.py files
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
ruby: Added copyright to many Ruby *.py files

14 years agoruby: removed ruby.config from configs/example
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
ruby: removed ruby.config from configs/example

14 years agoruby: Fixed small data msg bug in MOESI_hammer-dir
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
ruby: Fixed small data msg bug in MOESI_hammer-dir

14 years agoTimingSimpleCPU: Fixed uncacacheable request read bug
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
TimingSimpleCPU: Fixed uncacacheable request read bug

Previously the recording of an uncached read occurred after the request was
possibly deleted within the translateTiming function.

14 years agoruby: Python config files now sets a unique id for each sequencer
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
ruby: Python config files now sets a unique id for each sequencer

14 years agoruby: fixed how ruby_fs creates phsyical memory
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
ruby: fixed how ruby_fs creates phsyical memory

Now ruby_fs creates physical memory of the right size.

14 years agoruby: Removed the no longer used rubymem files
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
ruby: Removed the no longer used rubymem files

14 years agoruby: Fix MOESI_hammer cache profiler calls for L2 misses
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
ruby: Fix MOESI_hammer cache profiler calls for L2 misses

14 years agoruby: Added a mesh network with directories at the corners
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
ruby: Added a mesh network with directories at the corners

The patch creates a specific mesh network where directories are at the corners.
The patch is a good example of how to create an arbitrary network, similar to
the old file specified network, while leveraging scripts and loops when
possible.

14 years agoruby: Removed deprecated stats from the main profiler
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
ruby: Removed deprecated stats from the main profiler

14 years agoorion: Make declarations match definition
Nathan Binkert [Tue, 16 Mar 2010 15:15:16 +0000 (08:15 -0700)]
orion: Make declarations match definition

14 years agoruby: Fix copyrights on files
Nathan Binkert [Mon, 15 Mar 2010 03:58:45 +0000 (20:58 -0700)]
ruby: Fix copyrights on files
Mostly files missed during import or screwed up during import

14 years agoslicc: Change the code generation so that the generated code is easier to read
Nathan Binkert [Sat, 13 Mar 2010 02:42:56 +0000 (18:42 -0800)]
slicc: Change the code generation so that the generated code is easier to read

14 years agopacket: add a method to set the size
Nathan Binkert [Sat, 13 Mar 2010 01:31:08 +0000 (17:31 -0800)]
packet: add a method to set the size

14 years agoeventq: rearrange a little bit so I can add some stuff
Nathan Binkert [Sat, 13 Mar 2010 01:31:04 +0000 (17:31 -0800)]
eventq: rearrange a little bit so I can add some stuff

14 years agoeventq: remove some unused includes
Nathan Binkert [Sat, 13 Mar 2010 01:31:02 +0000 (17:31 -0800)]
eventq: remove some unused includes

14 years agobugfix: since pow() causes a bug don't use it
Nathan Binkert [Fri, 12 Mar 2010 23:11:09 +0000 (15:11 -0800)]
bugfix: since pow() causes a bug don't use it
It's a power of two anyway, so why use it in the first place.

14 years agoruby: get rid of std-includes.hh
Nathan Binkert [Thu, 11 Mar 2010 02:33:11 +0000 (18:33 -0800)]
ruby: get rid of std-includes.hh
Do not use "using namespace std;" in headers
Include header files as needed

14 years agoruby: remove calc_host.diff since we don't use it
Nathan Binkert [Thu, 11 Mar 2010 00:22:27 +0000 (16:22 -0800)]
ruby: remove calc_host.diff since we don't use it

14 years agoruby: get rid of the ioutil stuff since it isn't used anymore
Nathan Binkert [Thu, 11 Mar 2010 00:22:26 +0000 (16:22 -0800)]
ruby: get rid of the ioutil stuff since it isn't used anymore

14 years agoslicc: have a central mechanism for creating a code_formatter.
Nathan Binkert [Thu, 11 Mar 2010 00:22:26 +0000 (16:22 -0800)]
slicc: have a central mechanism for creating a code_formatter.
This makes it easier to add global variables like protocol

14 years agoscons: import ply to work around scons sys.path weirdness
Nathan Binkert [Wed, 10 Mar 2010 23:39:34 +0000 (15:39 -0800)]
scons: import ply to work around scons sys.path weirdness

14 years agoSmartDict: Make SmartDict an attrdict
Nathan Binkert [Mon, 1 Mar 2010 03:28:09 +0000 (19:28 -0800)]
SmartDict: Make SmartDict an attrdict

14 years agouart: use integer versions of time instead of messing around with floats
Nathan Binkert [Mon, 1 Mar 2010 03:28:09 +0000 (19:28 -0800)]
uart: use integer versions of time instead of messing around with floats

14 years agoConfig: Fix fs.py's call to CacheConfig.config_cache.
Gabe Black [Sun, 28 Feb 2010 02:52:57 +0000 (18:52 -0800)]
Config: Fix fs.py's call to CacheConfig.config_cache.

14 years agocpu_models: get rid of cpu_models.py and move the stuff into SCons
Nathan Binkert [Sat, 27 Feb 2010 02:14:48 +0000 (18:14 -0800)]
cpu_models: get rid of cpu_models.py and move the stuff into SCons

14 years agoisa_parser: Make SCons import the isa_parser
Nathan Binkert [Sat, 27 Feb 2010 02:14:48 +0000 (18:14 -0800)]
isa_parser: Make SCons import the isa_parser
this is instead of forking a new interpreter

14 years agoisa_parser: move the operand map stuff into the ISAParser class.
Nathan Binkert [Sat, 27 Feb 2010 02:14:48 +0000 (18:14 -0800)]
isa_parser: move the operand map stuff into the ISAParser class.

14 years agoisa_parser: move more support functions into the ISAParser class
Nathan Binkert [Sat, 27 Feb 2010 02:14:48 +0000 (18:14 -0800)]
isa_parser: move more support functions into the ISAParser class

14 years agoisa_parser: move more stuff into the ISAParser class
Nathan Binkert [Sat, 27 Feb 2010 02:14:48 +0000 (18:14 -0800)]
isa_parser: move more stuff into the ISAParser class

14 years agoisa_parser: move the formatMap and exportContext into the ISAParser class
Nathan Binkert [Sat, 27 Feb 2010 02:14:48 +0000 (18:14 -0800)]
isa_parser: move the formatMap and exportContext into the ISAParser class

14 years agoisa_parser: Make stack objects class members instead of globals
Nathan Binkert [Sat, 27 Feb 2010 02:14:48 +0000 (18:14 -0800)]
isa_parser: Make stack objects class members instead of globals

14 years agoisa_parser: add a debug variable that changes how errors are reported.
Nathan Binkert [Sat, 27 Feb 2010 02:14:48 +0000 (18:14 -0800)]
isa_parser: add a debug variable that changes how errors are reported.
This allows us to get tracebacks in certain cases where they're more
useful than our error message.

14 years agoisa_parser: Use an exception to flag error
Nathan Binkert [Sat, 27 Feb 2010 02:14:48 +0000 (18:14 -0800)]
isa_parser: Use an exception to flag error
This allows the error to propagate more easily

14 years agoisa_parser: Move more stuff into the ISAParser class
Nathan Binkert [Sat, 27 Feb 2010 02:14:48 +0000 (18:14 -0800)]
isa_parser: Move more stuff into the ISAParser class

14 years agoisa_parser: move code around to prepare for putting more stuff in the class
Nathan Binkert [Sat, 27 Feb 2010 02:14:48 +0000 (18:14 -0800)]
isa_parser: move code around to prepare for putting more stuff in the class

14 years agoisa_parser: simple fixes, formatting and style
Nathan Binkert [Sat, 27 Feb 2010 02:14:48 +0000 (18:14 -0800)]
isa_parser: simple fixes, formatting and style

14 years agoevents: Give EventWrapped a default name and description
Nathan Binkert [Sat, 27 Feb 2010 02:09:41 +0000 (18:09 -0800)]
events: Give EventWrapped a default name and description

14 years agoconfigs: pull out cache configuration code from se.py and fs.py.
Lisa Hsu [Thu, 25 Feb 2010 18:13:40 +0000 (10:13 -0800)]
configs: pull out cache configuration code from se.py and fs.py.
Most of these frontend configurations share cache configuration code, pull it out so that
changes to caches don't have to require changing multiple config files.

14 years agostats: update stats for the changes I pushed re: shared cache occupancy
Lisa Hsu [Thu, 25 Feb 2010 18:08:41 +0000 (10:08 -0800)]
stats: update stats for the changes I pushed re: shared cache occupancy

14 years agocache stats: account for writebacks and/or device occupancy in the cache.
Lisa Hsu [Wed, 24 Feb 2010 21:46:55 +0000 (13:46 -0800)]
cache stats: account for writebacks and/or device occupancy in the cache.
Plus, a minor bugfix that neglects to update blk->contextSrc in certain cases on a cache insert.

14 years agocache: Make caches sharing aware and add occupancy stats.
Lisa Hsu [Tue, 23 Feb 2010 17:34:22 +0000 (09:34 -0800)]
cache: Make caches sharing aware and add occupancy stats.
On the config end, if a shared L2 is created for the system, it is
parameterized to have n sharers as defined by option.num_cpus. In addition to
making the cache sharing aware so that discriminating tag policies can make use
of context_ids to make decisions, I added an occupancy AverageStat and an occ %
stat to each cache so that you could know which contexts are occupying how much
cache on average, both in terms of blocks and percentage. Note that since
devices have context_id -1, having an array of occ stats that correspond to
each context_id will break here, so in FS mode I add an extra bucket for device
blocks. This bucket is explicitly not added in SE mode in order to not only
avoid ugliness in the stats.txt file, but to avoid broken stats (some formulas
break when a bucket is 0).

14 years agostats: this makes some fixes to AverageStat and AverageVector.
Lisa Hsu [Tue, 23 Feb 2010 17:33:18 +0000 (09:33 -0800)]
stats: this makes some fixes to AverageStat and AverageVector.
Also, make Formulas work on AverageVector.  First, Stat::Average (and thus
Stats::AverageVector) was broken when coming out of a checkpoint and on resets,
this fixes that.  Formulas also didn't work with AverageVector, but added
support for that.

14 years agocache: pull CacheSet out of LRU so that other tags can use associative sets.
Lisa Hsu [Tue, 23 Feb 2010 17:33:09 +0000 (09:33 -0800)]
cache: pull CacheSet out of LRU so that other tags can use associative sets.