Go to file
Todd Austin @ Agita Labs e0e977fada Grammar fix. 2023-03-26 17:24:02 -04:00
config Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
libexo Fixed sysprobe relative directory problems. 2023-03-25 18:16:42 -04:00
target-alpha Cleaning up more recent GCC warnings. 2023-03-25 08:34:13 -04:00
target-pisa Fixed a few warnings in the PISA target. 2023-03-25 16:17:54 -04:00
tests-alpha Fixed empty directory handling in git. 2023-03-25 20:54:41 -04:00
tests-pisa Fixed empty directory handling in git. 2023-03-25 20:54:41 -04:00
.gitignore Fixed empty directory handling in git. 2023-03-25 20:54:41 -04:00
ANNOUNCE-3.0 Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
CONTRIBUTORS Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
FAQ Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
HISTORY Grammar fix. 2023-03-26 17:24:02 -04:00
LICENSE Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
Makefile Fixed sysprobe relative directory problems. 2023-03-25 18:16:42 -04:00
PROJECTS Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
README Freshened up the documentation. 2023-03-25 21:06:29 -04:00
README.eio Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
README.retarget Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
README.sim-inorder Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
README.windows Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
WARRANTY Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
bitmap.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
bpred.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
bpred.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
cache.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
cache.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
config.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
dlite.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
dlite.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
eio.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
eio.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
endian.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
endian.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
eval.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
eval.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
eventq.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
eventq.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
hack_guide.pdf Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
hack_guide.ps Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
host.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
loader.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
loader.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
machine.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
machine.def Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
machine.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
main.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
memory.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
memory.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
misc.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
misc.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
options.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
options.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
pipeview.pl Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
ptrace.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
ptrace.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
range.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
range.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
redir.bash Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
redir.sh Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
regress.sh Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
regs.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
regs.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
resource.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
resource.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
sim-bpred.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
sim-cache.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
sim-eio.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
sim-fast.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
sim-outorder.c Fixed a few warnings in the PISA target. 2023-03-25 16:17:54 -04:00
sim-profile.c Cleaning up more recent GCC warnings. 2023-03-25 08:34:13 -04:00
sim-safe.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
sim.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
stats.c Cleaning up more recent GCC warnings. 2023-03-25 08:34:13 -04:00
stats.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
symbol.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
symbol.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
syscall.c Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
syscall.h Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
sysprobe.c More precision on what files to .gitignore... 2023-03-25 16:05:26 -04:00
tests Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
textprof.pl Initial commit of version 3v0e. 2023-03-24 16:25:47 -04:00
version.h Freshened up the documentation. 2023-03-25 21:06:29 -04:00

README

OVERVIEW:

This README file is for the SimpleScalar simulator release 3.0e.  This release
is available from:

	https://github.com/toddmaustin/simplesim-3.0

TO INSTALL:

The following details how to build and install the SimpleScalar simulators:

  a) git clone https://github.com/toddmaustin/simplesim-3.0

  Clone the SimpleScalar 3.0 repository into your local simplesim-3.0/
  directory. This is a public repository, so you won't even need a
  GitHub account to get access to this code.

	b) vi Makefile

	Make sure all compile options are set for your host, we've listed
	the options for the OS/compiler combinations that were tested,
	uncomment one of these if appropriate.  You'll likely not have to
	change anything for the supported hosts, and if you need to change
	anything, it will likely be the CC variable (which specifies
	the ANSI C compiler to use to build the simulators).  NOTE: the
	simulators must be built with an ANSI-C compatible compiler, if you
	have problems with your compiler, try using GNU GCC as it is known
	to build the simulators on all the supported platforms.

	c) make config-pisa			(to build SimpleScalar/PISA)
	   or
	   make config-alpha			(to build SimpleScalar/Alpha)

	Execute one of the above commands to configure the SimpleScalar
	build.  The SimpleScalar/PISA build executes SimpleScalar PISA
	(Portable ISA) binaries (the old "SimpleScalar ISA"), and the
	SimpleScalar/Alpha build executes statically linked Alpha OSF
	binaries.  If building with Cygwin/32 (www.cygwin.com) on Windows,
        be sure to unpack with "tar" to set up the symbolic links.

	d) make

	This builds the simplescalar simulators.

	e) make sim-tests

	This tests the simulators, this step will take anywhere from ~5 min
	to an hour, depending on the performance of your host.  Inspect the
	output of this command, when the script diff's the outputs of the
	simulators against the known good outputs, there should be no
	differences.

	f) vi pipeview.pl textprof.pl

	Configure these two perl scripts by placing the location of your
	perl executable on the first line of each script.


BUILDING BINARIES FOR SIMPLESCALAR

SimpleScalar/PISA binaries must be built using the SimpleScalar GNU tool
chain (e.g., GCC, GAS, GLD), available from:

    http://www.cs.wisc.edu/~mscalar/simplescalar.html

Prebuilt SimpleScalar PISA (Portable ISA) binaries, for big- and
little-endian hosts, are also available from that site.

SimpleScalar/Alpha binaries must be built on Digitial Alpha OSF Unix (or
with a suitable cross compiler).  Any Alpha OSF Unix compiler should
work, however, the binaries must be statically linked.  To statically
link a binary, add the "-static" flag to the link line of GNU GCC, or add
"-non_shared" to the link line of the DEC compilers.  NOTE: if you get
a "dnet_conn not found" error when linking Alpha OSF binaries, add
"-ldnet_stub" to your link line.


IS SIMPLESCALAR FREE?

No, but academic users (e.g., users at education institutions, U.S.
government research labs, and non-profit research institutes) may use
SimpleScalar tools free-of-charge for non-commercial research and
instruction. Support is provided to non-commercial users as resources
permit. Any use of SimpleScalar software, in binary or source form,
in a commercial setting or application (e.g., use within a for-profit
business, use to generate intellectual property for patents, or use
to implement a consulting contract) for any reason, purpose or goal
is commercial use of SimpleScalar software and thus requires a
commercial use license from SimpleScalar LLC.  Contact SimpleScalar
LLC at info@simplescalar.com for commercial licensing details.


PUBLISHING PAPERS WITH SIMPLESCALAR

When publishing a paper with SimpleScalar results, please refer to the
specific target you use as "SimpleScalar/PISA" or "SimpleScalar/Alpha".
In addition, please make reference to the latest SimpleScalar report,
this reference is available from:

    http://www.simplescalar.com

Above all, please use good judgement when doing research with the
SimpleScalar tool set.  Before publishing any numbers you should validate
your results.  Use the pipetrace facility, combined with microbenchmarks,
to test our code, your code, and your intuitions.  If the simulators are
not appropriate for your experiments, build a new simulator or use
another more appropriate simulation tool set.  The SimpleScalar tool set
is not appropriate for all computer architecture research, and it's
certainly not any substitute for good science.


USING SIMPLESCALAR FOR INSTRUCTION

Many instructors have found the SimpleScalar tools useful in their
courses.  To make this process as painless as possible, we've made
available an instructors kit that includes pre-built binaries with
small-ish inputs.  Also included are directions on how to build and
run the experiments, suggested projects at all levels, and slides
that the instructor can use to introduce students to the Simplescalar
tool set.  The instructions kit is available from http://www.simplescalar.com.


FOR MORE INFORMATION:

For general documentation on the tool set, see the hacker's guide in the
file "hack_guide.{pfd,ps,ppt}".  Frequently asked questions are answered
in the FAQ file.  And suggested projects are listed in the file PROJECTS.
The simulators (the sim-* executables) are self-documenting, just run
them with the "-h" flag.

To get plugged into the SimpleScalar scene, visit the SimpleScalar GitHub
respository (https://github.com/toddmaustin/simplesim-3.0).  And please
send us your comments regarding this tool set, we are continually trying
to improve it and we appreciate your input.

Best Regards,

Todd Austin
todd.m.austin@gmail.com