Introduction to SimpleScalar

Slides:



Advertisements
Similar presentations
Combining Statistical and Symbolic Simulation Mark Oskin Fred Chong and Matthew Farrens Dept. of Computer Science University of California at Davis.
Advertisements

SimpleScalar Tutorial
SimpleScalar v3.0 Tutorial U. of Wisconsin, CS752, Fall 2004 Andrey Litvin (main source: Austin & Burger) (also Dana Vantrease’ slides)
Sim-alpha: A Validated, Execution-Driven Alpha Simulator Rajagopalan Desikan, Doug Burger, Stephen Keckler, Todd Austin.
SimpleScalar CS401. A Computer Architecture Simulator Primer What is an architectural simulator? – Tool that reproduces the behavior of a computing device.
CpE442 Intro. To Computer Architecture CpE 442 Introduction To Computer Architecture Lecture 1 Instructor: H. H. Ammar These slides are based on the lecture.
Energy Efficient Instruction Cache for Wide-issue Processors Alex Veidenbaum Information and Computer Science University of California, Irvine.
Tutorial 0 SimpleScalar Installation CPEG-323 Intro. To Computer Engineering Tom St. John September 19, 2008.
Virtual Machine Monitors CSE451 Andrew Whitaker. Hardware Virtualization Running multiple operating systems on a single physical machine Examples:  VMWare,
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Introduction to SimpleScalar (Based on SimpleScalar Tutorial) TA: Kyung Hoon Kim CSCE614 Texas A&M University.
SOFTWARE.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Compiled from SimpleScalar Tutorial
Korea Univ B-Fetch: Branch Prediction Directed Prefetching for In-Order Processors 컴퓨터 · 전파통신공학과 최병준 1 Computer Engineering and Systems Group.
SimpleScalar Tool Set, Version 2 CSE 323 Department of Computer Engineering.
1 Introduction to SimpleScalar (Based on SimpleScalar Tutorial) CPSC 614 Texas A&M University.
Nachos Projects Overview and Project 1 TA : 吳哲榮 2010/10/21.
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
MIPS Project -- Simics Yang Diyi Outline Introduction to Simics Simics Installation – Linux – Windows Guide to Labs – General idea Score Policy.
MILAN: Technical Overview October 2, 2002 Akos Ledeczi MILAN Workshop Institute for Software Integrated.
Introduction to SimpleScalar (Based on SimpleScalar Tutorial) CSCE614 Hyunjun Jang Texas A&M University.
CPE 631 Project Presentation Hussein Alzoubi and Rami Alnamneh Reconfiguration of architectural parameters to maximize performance and using software techniques.
Simics: A Full System Simulation Platform Synopsis by Jen Miller 19 March 2004.
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
© Michel Dubois, Murali Annavaram, Per Strenstrom All rights reserved Embedded Computer Architecture 5SAI0 Simulation - chapter 9 - Luc Waeijen 16 Nov.
Performance Performance
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO CS 219 Computer Organization.
Introduction to SimpleScalar Tool Set CPEG323 Tutorial Long Chen September, 2005.
CS203 – Advanced Computer Architecture Computer Architecture Simulators.
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
Virtualization Neependra Khare
Introduction to Operating Systems Concepts
Computer Organization and Architecture Lecture 1 : Introduction
CS203 – Advanced Computer Architecture
Outline Installing Gem5 SPEC2006 for Gem5 Configuring Gem5.
??? ple r B Amulya Sai EDM14b005 What is simple scalar?? Simple scalar is an open source computer architecture simulator developed by Todd.
Virtual Machine Monitors
Microarchitecture.
Amir Roth and Gurindar S. Sohi University of Wisconsin-Madison
A Simulation Framework For Storage System Proposal
nZDC: A compiler technique for near-Zero silent Data Corruption
Advanced Topic: Alternative Architectures Chapter 9 Objectives
Introduction to SimpleScalar (Based on SimpleScalar Tutorial)
Introduction to SimpleScalar (Based on SimpleScalar Tutorial)
A Review of Processor Design Flow
A BRIEF INTRODUCTION TO UNIX OPERATING SYSTEM
Section 1: Introduction to Simics
Agenda Why simulation Simulation and model Instruction Set model
Computer Science I CSC 135.
Lecture 14 Virtual Memory and the Alpha Memory Hierarchy
COSC121: Computer Systems
NVIDIA Fermi Architecture
Detailed Analysis of MiBench benchmark suite
A Survey on Virtualization Technologies
Chapter 5: Computer Systems Organization
A Simulator to Study Virtual Memory Manager Behavior
What is Computer Architecture?
Introduction to Microprocessor Programming
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
COMS 361 Computer Organization
What is Computer Architecture?
What is Computer Architecture?
Computer Architecture
Course Outline for Computer Architecture
UNISIM (UNIted SIMulation Environment) walkthrough
Introduction to Computer Systems Engineering
CSE378 Introduction to Machine Organization
Presentation transcript:

Introduction to SimpleScalar 1

Overview What is an architectural simulator? – a tool that reproduces the behavior of a computing device Device Simulator Why we use a simulator? System outputs System metrics System inputs Leverage a faster, more flexible software development cycle Permit more design space exploration Facilitates validation before H/W becomes available Level of abstraction is tailored by design task Possible to increase/improve system instrumentation Usually less expensive than building a real system 2

A Taxonomy of Simulation Tools Shaded tools are included in SimpleScalar Tool Set

Functional vs. Performance Functional simulators Model the function of each component Does not have timing accuracy Faster Performance simulators Model system at finer detail Timing in addition to functionality For example: Branch prediction accuracy vs. memory latency

Trace- vs. Execution-Driven Trace-Driven Simulator reads a ‘trace’ of the instructions captured during a previous execution Easy to implement, no functional components necessary Execution-Driven Simulator runs the program (trace-on-the-fly) Hard to implement Advantages No need to store traces Register and memory values usually are not in trace Support mis-speculation cost modeling

SimpleScalar Tool Set Computer system design and analysis infrastructure – Processor/device (behavioral) models build modeling applications that simulate real programs running on a range of modern processors and system Support many ISAs and I/O interfaces Alpha, PISA, ARM, and x86 instr. sets Hosted on most any Unix-like machine Application Application Input/output Simplescalar Simulators Freely available for academic non-commercial use with source from www.simplescalar.com Performance results Host Machine

Advantages of SimpleScalar Highly flexible functional simulator + performance simulator Portable Host: virtual target runs on most Unix-like systems Target: simulators can support multiple ISAs Extensible Source is included for compiler, libraries, simulators Easy to write simulators Performance Sim-Fast: 10+ MIPS Sim-OutOrder: 350+ KIPS

Simulator Suite Performance Detail Sim-Fast Sim-Safe Sim-Profile Sim-Cache Sim-BPred Sim-Outorder -3900 lines -performance -OoO issue -Branch pred. -Mis-spec. -ALUs -Cache -TLB -420 lines -functional -4+ MIPS -350 lines -functional w/checks -900 lines -functional -Lot of stats -~1000 lines -functional -Cache stats Performance Detail

Sim-Outorder Most complicated and detailed simulator Supports out-of-order issue and execution Provides reports branch prediction cache external memory various configuration

Specifying Sim-outorder Running a program sim-outorder [sim opts] program [program opts] e.g. $SIMPLESIM/simplesim-3.0/sim-outorder -config cfg_file bzip2_base.i386-m32-gcc42-nn dryer.jpg

Benchmark SPEC 2006 – Six benchmarks (4 integer, 2 floating point) bzip2(INT) equake(FP) hmmer(INT) mcf(INT) milc(FP) sjeng(INT)

Installation of simplescalar Simplescalar 3.0 is already installed bg machines Path setup log on into one of the bg machines Go to your home directory: cd >vim .cshrc (or gedit .cshrc) export SIMPLESIM=/home/scratch/massem/research/Simulators/sim plescalar > source .cshrc To verify, run >echo $SIMPLESIM the return should be /home/scratch/massem/research/Simulators/simplescalar

Installation of simplescalar Create a local directory >mkdir simplescalar >cd simplescalar >cp -r $SIMPLESIM/simplesim-3.0/ss- benchmark ss-benchmark >cp -r $SIMPLESIM/simplesim-3.0/config config >cd ss-benchmark

Running Benchmarks Run benchmark (bzip2) >cd bzip2 >$SIMPLESIM/simplesim-3.0/sim-outorder - config ../../config/tmp.cfg bzip2_base.i386- m32-gcc42-nn dryer.jpg 14

Check results Check simulation results – vim sim1.out (or gedit sim1.out) 15

Modify config Modify a parameter in the config file >cd ../../config >vim tmp.cfg (or gedit tmp.cfg) Increase L2 Data Cache Latency from 4 to 10 -cache:dl2lat 10 Change output file name (-redir:sim sim2.out) Save and close tmp.cfg

bzip2_base.i386-m32-gcc42-nn dryer.jpg Re-run Benchmark Run benchmark (bzip2) >cd ss-benchmark >cd bzip2 >$SIMPLESIM/simplesim-3.0/sim-outorder –config ../../config/tmp.cfg bzip2_base.i386-m32-gcc42-nn dryer.jpg

Check result Check simulation results – vim sim2.out (or gedit sim2.out)

Global Simulator Options Supported on all simulators -h -d -q -config <file> -dumpconfig <file> Configuration files -print simulator help message -enable debug message -quit immediately -read config parameters from <file> -save config parameters into <file> To generate a configuration file: -dumpconfig <file> Change parameters in <file> Comments allowed in configuration file, “#” Reload configuration file using: -config <file>

Log into bg machines using SSH ssh <username>@bg1.cs.wm.edu You can use machines from bg1 to bg9

Running rest of benchmarks mcf > cd mcf > $SIMPLESIM/simplesim-3.0/sim-outorder –config ../../config/tmp.cfg mcf_base.i386-m32-gcc42- nn inp.in

hmmer > cd hmmer > $SIMPLESIM/simplesim-3.0/sim-outorder –config ../../config/tmp.cfg hmmer_base.i386-m32-gcc42-nn bombesin.hmm

sjeng > cd sjeng > $SIMPLESIM/simplesim-3.0/sim-outorder –config ../../config/tmp.cfg sjeng_base.i386-m32-gcc42- nn test.txt

milc > cd milc > $SIMPLESIM/simplesim-3.0/sim-outorder –config ../../config/tmp.cfg milc_base.i386-m32-gcc42-nn < su3imp.in

equake > cd equake > $SIMPLESIM/simplesim-3.0/sim-outorder –config ../../config/tmp.cfg equake_base.pisa_little < inp.in > inp.out