No description
Find a file
Mitch Hayenga ext:(%2C%20Amin%20Farmahini%20%3Caminfar%40gmail.com%3E) 95735e10e7 mem: prefetcher: add options, support for unaligned addresses
This patch extends the classic prefetcher to work on non-block aligned
addresses.  Because the existing prefetchers in gem5 mask off the lower
address bits of cache accesses, many predictable strides fail to be
detected.  For example, if a load were to stride by 48 bytes, with 64 byte
cachelines, the current stride based prefetcher would see an access pattern
of 0, 64, 64, 128, 192.... Thus not detecting a constant stride pattern.  This
patch fixes this, by training the prefetcher on access and not masking off the
lower address bits.

It also adds the following configuration options:
1) Training/prefetching only on cache misses,
2) Training/prefetching only on data acceses,
3) Optionally tagging prefetches with a PC address.
#3 allows prefetchers to train off of prefetch requests in systems with
multiple cache levels and PC-based prefetchers present at multiple levels.
It also effectively allows a pipelining of prefetch requests (like in POWER4)
across multiple levels of cache hierarchy.

Improves performance on my gem5 configuration by 4.3% for SPECINT and 4.7%  for SPECFP (geomean).
2014-01-29 23:21:25 -06:00
build_opts ruby: rename MESI_CMP_directory to MESI_Two_Level 2014-01-04 00:03:33 -06:00
configs x86: add a warning about the number of memory controllers 2014-01-28 07:15:53 -06:00
ext arm: Add support for ARMv8 (AArch64 & AArch32) 2014-01-24 15:29:34 -06:00
src mem: prefetcher: add options, support for unaligned addresses 2014-01-29 23:21:25 -06:00
system arm: Add support for ARMv8 (AArch64 & AArch32) 2014-01-24 15:29:34 -06:00
tests stats: update sparc fs stats 2014-01-27 13:30:37 -06:00
util arm: Add support for ARMv8 (AArch64 & AArch32) 2014-01-24 15:29:34 -06:00
.hgignore .hgignore: added src/doxygen 2010-07-27 20:00:38 -07:00
.hgtags Added tag stable_2013_10_14 to the changeset 6a043adb1e8d 2013-10-14 13:58:02 -05:00
COPYING copyright: Add code for finding all copyright blocks and create a COPYING file 2011-06-02 17:36:07 -07:00
LICENSE copyright: Add code for finding all copyright blocks and create a COPYING file 2011-06-02 17:36:07 -07:00
README gem5: Update the README file to be a bit less out-of-date. 2012-09-25 11:49:40 -05:00
SConstruct kvm: Set the perf exclude_host attribute if available 2013-10-15 10:09:23 +02:00

This is the gem5 simulator.

For detailed information about building the simulator and getting
started please refer to:
* The main website:     http://www.gem5.org
* Documentation wiki:   http://www.gem5.org/Documentation 
* Doxygen generated:    http://www.gem5.org/docs
* Tutorials:            http://www.gem5.org/Tutorials


Specific pages of interest are:
http://www.gem5.org/Introduction
http://www.gem5.org/Build_System
http://www.gem5.org/Dependencies
http://www.gem5.org/Running_gem5

Short version:
External tools and required versions

To build gem5, you will need the following software:
g++ version 4.3 or newer.
Python, version 2.4 - 2.7 (we don't support Python 3.X). gem5 links in the 
    Python interpreter, so you need the Python header files and shared 
    library (e.g., /usr/lib/libpython2.4.so) in addition to the interpreter
    executable. These may or may not be installed by default. For example,
    on Debian/Ubuntu, you need the "python-dev" package in addition to the
    "python" package. If you need a newer or different Python installation
     but can't or don't want to upgrade the default Python on your system,
     see http://www.gem5.org/Using_a_non-default_Python_installation
SCons, version 0.98.1 or newer. SCons is a powerful replacement for make. 
    If you don't have administrator privileges on your machine, you can use the
    "scons-local" package to install scons in your m5 directory, or install SCons
    in your home directory using the '--prefix=' option.  
SWIG, version 1.3.34 or newer
zlib, any recent version. For Debian/Ubuntu, you will need the "zlib-dev" or
    "zlib1g-dev" package to get the zlib.h header file as well as the library
    itself.
m4, the macro processor.


4. In this directory, type 'scons build/<ARCH>/gem5.opt' where ARCH is one
of ALPHA, ARM, MIPS, POWER, SPARC, or X86. This will build an optimized version
of the gem5 binary (gem5.opt) for the the specified architecture.

If you have questions, please send mail to gem5-users@gem5.org

WHAT'S INCLUDED (AND NOT)
-------------------------

The basic source release includes these subdirectories:
 - gem5:
   - configs: example simulation configuration scripts
   - ext: less-common external packages needed to build gem5
   - src: source code of the gem5 simulator
   - system: source for some optional system software for simulated systems
   - tests: regression tests
   - util: useful utility programs and files

To run full-system simulations, you will need compiled system firmware
(console and PALcode for Alpha), kernel binaries and one or more disk images. 
Please see the gem5 download page for these items at http://www.gem5.org/Download