Help on the SimpleScalar Visualizer
Topics
Introduction
The SimpleScalar Visualizer is an easy-to-use graphical front-end to the
SimpleScalar simulation engine. Although the popular command-line
version of SimpleScalar generates large quantities of data and useful summaries,
the Visualizer enables you to view real-time changes to the data and study
dynamic behavior.
Features of the SimpleScalar Visualizer include:
-
The same capabilities of the sim-outorder SimpleScalar simulator, with
multi-level caches and out-of-order execution.
-
Animation of microarchitecture elements, such as the Instruction Fetch
Queue (IFQ), the Register Update Unit (RUU), the Load/Store Queue (LSQ),
and the various Functional Units (FUs).
-
Push-button operation of processor execution.
-
Built-in benchmark tests and input files, for easy loading and execution.
-
A variety of statistic windows, updated at user-specified intervals.
-
A variety of graphical output, for viewing real-time profiles of IPC, cache
misses, and branch prediction.
top...
Getting Started With SimpleScalar Visualizer
Because the SimpleScalar Visualizer is an X windows application built with
a SPARC compiler, you will need to access a Solaris workstation to run
the visualizer.
If you are sitting at the console:
-
Log into the workstation and start X windows.
-
Ensure that your workstation can execute an arbitrary X client from within
a command line shell. For example, try running xclock
to ensure that the application window is properly displayed.
-
Run the the SimpleScalar Visualizer application. For example, execute:
% /projects/cart/projects/visualization/ss-viz/ss-viz
If you are accessing the workstation remotely:
-
Ensure that your local client will allow the workstation to display the
application on your client, typically by executing the xhost
command. For example:
% /usr/openwin/bin/xhost <my_host>
-
Ensure that your DISPLAY variable is set correctly. For example,
try running xclock to ensure that the application window is properly displayed.
-
Run the SimpleScalar Visualizer application. For example, execute:
% /projects/cart/projects/visualization/ss-viz/ss-viz
Note: The first time you execute the SimpleScalar Visualizer, the
application will create a .ss-viz directory
in your $HOME directory to store
configuration information. You can remove this directory at any time
when done with the application.
See also Reading Program Output
for information about the output messages from the application to the console.
top...
Loading Benchmarks
When started, the SimpleScalar Visualizer loads the SPEC95 COMPRESS benchmark,
ready to run.
To load a different benchmark:
-
Click on the Benchmarks menu item and select the desired benchmark.
-
Press [OK] in the pop-up confirmation window.
Note: When loading a benchmark, the SimpleScalar Visualizer completely
restarts itself with the new settings. Hence, the application window
will momentarily disappear as the application restarts.
To load a benchmark that isn't listed on the menu list:
-
Select the Load Benchmark... menu
item.
-
Type the complete file path to the benchmark in the Benchmark
Path: field.
-
Type the complete file path to the benchmark input data in the Input
Path: field.
-
Press the [OK] button
A dialog will appear to confirm your choice. Press [OK] to re-start
the application with the new benchmark.
top...
Controlling Program Execution
Executing programs on the SimpleScalar Visualizer is easy: Push one of
the arrow buttons in the SimpleScalar Visualizer toolbar:
-
To run the program continuously, press the double-arrow-with-vertical-bar
(|) button.
-
To run the program a discrete number of steps, press the double-arrow button.
The Number of cycles per step: field
is set by default to 500.
-
To single-step the program, press the single-arrow button.
To stop execution when the program is running:
-
Press the Pause (||)
button.
Note that the units are updated only when the program has paused.
You can use the the Number of cycles
per step: field to move to a precise cycle of the benchmark's execution.
For example, if the program is paused at cycle 5,000 and you'd like to
examine the machine state at cycle 45,000, then you can enter 40000
into the field and press the double-arrow button once.
Or if you want to examine the simulator's behavior at cycle 104538, then
you can enter that value in the field before starting the execution
and then press the double-arrow button.
top...
Displaying Execution Graphs
The SimpleScalar Visualizer offers four types of graphs:
-
Instructions Per Cycle
-
Level 1 Data Cache Miss Rate
-
Level 1 Instruction Miss Rate
-
Branch Predication Success Rate
To display these graphs individually, press the Graphs menu item
and select the desired graph.
These graphs will be updated continuously during benchmark execution.
You may need to move the windows around the display to view the dynamic
updates.
You can close the graph windows individually by pressing the Close
button in each window, or you can close all the graph windows simultaneously
by selecting the Close Graphs menu item from the Graphs menu.
If you minimize the SimpleScalar Visualizer window, any open graph window
will likewise be minimized.
See also Configuring Graphical
Output for more information on graph options.
top...
Displaying Execution Statistics
top...
Configuring Graphical Output
Press the Configure... button on a graph window to change its settings,
which include:
-
The width and height of the window in centimeters.
-
The scale
-
The interval of hash marks.
-
The label along the X axis and Y axis.
These settings are stored in your $HOME/.ss-viz
directory when you press the OK button.
See also Advanced Options for
more information on the graph configuration files.
top...
Reading Program Output
By default, the SimpleScalar Visualizer logs its output, including SimpleScalar
options, summary statistics, and error messages to an ASCII text file in
your $HOME directory, named ss_results.txt.
top...
Visualizer Terms
IFQ |
Instruction Fetch Queue |
RUU |
Register Update Unit |
LSQ |
Load Store Queue |
BPB |
Branch Prediction |
BTB |
Branch Prediction |
ITLB |
Level 1 Instruction Translation Lookaside Buffer |
IL1 |
Level 1 Instruction Cache |
DL1 |
Level 1 Data Cache |
L2 |
Level 2 Cache |
DTLB |
Level 1 Data Translation Lookaside Buffer |
FUs |
Functional Units |
|
|
top...
Advanced Options
To control simulator settings and behavior, you have a variety of means:
-
Invoke the simulator with command line parameters.
-
Modify the GUI configuration files.
-
Modify the SimpleScalar configuration files.
-
Modify the options in the Load Benchmarks dialog.
-
If you inadvertently specify a bad option, the application will exit immediately.
The error message and the cause of the problem will be logged to your output
file.
top...
Known Defects
-
The SimpleScalar Visualizer will go away when a benchmark finishes execution.
Although the results file will be updated with final statistics,
the application itself will terminate, which it shouldn't.
-
The graph slider switcher allows you to scroll too far left on the x-axis,
into negative values.
-
The graph windows do not auto-scroll when the execution tracking reaches
the right edge of the windows.
-
Re-sizing the application window does not correctly display information
in the unit cells.