SimpleScalar - Southern Illinois University Carbondale

Download Report

Transcript SimpleScalar - Southern Illinois University Carbondale

SimpleScalar
CS401
A Computer Architecture Simulator Primer

What is an architectural simulator?

– Tool that reproduces the behavior of a computing device
Simulation Suite Overview
Global Simulator Options (cont.)







• Supported on all simulators
-h
-d
-i
-q
-config <file>
-dumpconfig <file>
- print simulator help message
- enable debug message
- start up in DLite! debugger
- quit immediately
- read config parameters from <file>
- save config parameters into <file>
Global Simulator Options








• Configuration files
– To generate a configuration file
• Specify non-default options on command line
• And, include “-dumpconfig <file>” to generate
configuration file
– Comments allowed in configuration files, all after
“#” ignored
– Reload configuration files using “-config <file>”
sim-cheetah …(cont.)








-R
<string>
# replacement policy, i.e., lru or opt
-C
<string>
# cache configuration, i.e., fa, sa, or dm
-a
<int>
# min number of sets (log
base 2, line size for DM)
-b
<int>
# max number of sets
(log base 2, line size for DM)
-l
<int>
# line size of the caches
(log base 2)
-n
<int>
# max degree of
associativity to analyze (log base 2)
sim-cheetah (example)

Configurations:

least-recently-used (LRU) replacement policy
128 to 2048 sets
1-way to 4-way associativity
16-byte cache lines

Configuration file:








-R
-a
-b
-l
-n
lru
7
11
4
2
# replacement policy is lru.
# min number of sets (log 128)
# max number of sets (log 2048)
# line size of the caches (log 16)
# max degree of associativity to analyze (log 4)
sim-cache …(cont.)












-cache:dl1
<string>
# l1 data cache config, i.e., {<config>|none}
-cache:dl2
<string>
# l2 data cache config, i.e., {<config>|none}
-cache:il1
<string>
# l1 inst cache config, i.e., {<config>|dl1|dl2|none}
-cache:il2
<string>
# l2 instruction cache config, i.e., {<config>|dl2|none}
-tlb:itlb
<string>
# instruction TLB config, i.e., {<config>|none}
-tlb:dtlb
<string>
# data TLB config, i.e., {<config>|none}
sim-cache …(cont.)
sim-cache …(cont.)
sim-bpred











-bpred
<string>
-bpred:bimod
<int>
-bpred:2lev
<int list...>
-bpred:comb
<int>
# branch predictor type {nottaken|taken|bimod|2lev|comb}
# bimodal predictor config (<table size>)
# 2-level predictor config (<l1size> <l2size> <hist_size> <xor>)
# combining predictor config (<meta_table_size>)
* Predictor `comb' combines a bimodal and a 2-level predictor.
-bpred:ras
<int>
# return address stack size (0 for no return stack)
Running SimpleScalar Tools …(cont.)



The tool set takes binaries compiled for the
SimpleScalar architecture and simulates their
execution on one of several provided processor
simulators.
sets of precompiled binaries (including SPEC95)
a modified version of GNU GCC (with associated
utilities) that allows you to compile your own
SimpleScalar test binaries from FORTRAN or C code.
Running SimpleScalar Tools
(The SPEC95 Benchmark Binaries)



The Standard Performance Evaluation
Corporation (SPEC) provides (for a fee)
a set of benchmarks that are used to
evaluate processors.
You can find information about these benchmarks on
the Web at
http://www.spec.org/osg/cpu95/.
Running SimpleScalar Tools
(compile your own test binaries )

Compiling a C program, e.g.

ssbig-na-sstrix-gcc -g -O -o foo foo.c –lm

Compiling a Fortran program, e.g.

ssbig-na-sstrix-f77 -g -O -o foo foo.f -lm
Running SimpleScalar Tools …(cont.)

• Running a program
./sim-cheetah -config <file> <executable file
for SimpleScalar> <parameters>

• Example
./sim-cheetah -config test go.ss 2 8 go.in
Running SimpleScalar Tools

• Example
./sim-cheetah -config <arguments> go.ss 2 8 go.in







• Where
<arguments> : the list of sim-cheetah parameters needed to
produce results for the specified cache configurations.
go.ss : the SimpleScalar binary for the "go" benchmark.
"2 8“ : the play quality and the board size for the go simulation.
"go.in" : a file that specifies the starting board position
(in this case an empty file.)
More Information


http://www.simplescalar.com
For more information about simplescalar,
you can download userguide and
hackguide for it.