Introduction to SimpleScalar Tool Set CPEG323 Tutorial Long Chen September, 2005.

Slides:



Advertisements
Similar presentations
SimpleScalar Tutorial
Advertisements

Program Development Tools The GNU (GNU’s Not Unix) Toolchain The GNU toolchain has played a vital role in the development of the Linux kernel, BSD, and.
Systems Software.
SimpleScalar CS401. A Computer Architecture Simulator Primer What is an architectural simulator? – Tool that reproduces the behavior of a computing device.
EENG449b/Savvides Lec 9.1 2/10/04 February 9, 2004 Prof. Andreas Savvides Spring EENG 449bG/CPSC 439bG Computer.
Embedded Systems Programming Introduction to cross development techniques.
1 UQC122S3 Real-Time and Embedded Systems GCC as a cross compiler.
How to Start Up CCStudio 3 DSP LAB T.A.:
Selecting a Cross Development Environment. Why do you need to select a CDE? Through out your career the target systems will change rapidly –Both the h/w.
1 Real-Time System Design Developing a Cross Compiler and libraries for a target system.
1 Capstone projects supervised by Yinong Chen (1) Implementation of a Shell on Palm Hand Held Device (2) Building a Programmer’s Interface to the Palm.
Embedded Control Systems Introduction to cross development techniques.
Chapter 1 Introduction to C Programming. 1.1 INTRODUCTION This book is about problem solving with the use of computers and the C programming language.
Evaluation of Branch Predictors Using High-density-branch Programs Fang Pang MEng. Lei Zhu MEng. Electrical and Computer Engineering Department University.
Memory & Storage Architecture Seoul National University Computer Architecture “ Bomb Lab Hints” 2nd semester, 2014 Modified version : The original.
Makefiles, Unix, and Project 1 Q&A : Recitation 2 September 12, 2007.
Tutorial 0 SimpleScalar Installation CPEG-323 Intro. To Computer Engineering Tom St. John September 19, 2008.
Computer System Laboratory
Introduction Purpose Objectives Content Learning Time
1 SEEM3460 Tutorial Unix Introduction. 2 Introduction What is Unix? An operation system (OS), similar to Windows, MacOS X Why learn Unix? Greatest Software.
Part 1 Using the ARM board And start working with C Tutorial 5 and 6
1 uClinux course Day 3 of 5 The uclinux toolchain, elf format and ripping a “hello world”
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
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.
Building a Cross Compiler, Assembler and Linker Designed by Prof. Peng-Sheng Chen.
Apr 14,2003CPE 631 Project Performance Analysis and Power Estimation of ARM Processor Team: Ajayshanker Krishnamurthy Swathi Tanjore Gurumani Zexin Pan.
F13 Forensic tool analysis Dr. John P. Abraham Professor UTPA.
1 uClinux course. 2 Author: D L Johnson Overview u Day 1 +Survey of embedded operating systems - why uclinux? +The uclinux environment - the directory.
Lab 3 Department of Computer Science and Information Engineering National Taiwan University Lab3 - Cross Tools 2014/10/7/ 20 1.
Computer Organization
Introduction Purpose This training course introduces the free GNU tools that can be used for debugging embedded system application software in the Renesas.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
1 Embedded Linux porting Speaker: Yi-Ji Jheng Date:
Compiled from SimpleScalar Tutorial
CS-2710 Computer Organization Dr. Mark L. Hornick web: faculty-web.msoe.edu/hornick – CS-2710 info syllabus, homework, labs… –
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.
COMP 3438 System Programming
ICS – Software Engineering Group 1 Cross Compiling vxWorks on Linux EPICS Collaboration Meeting l May 2002 at BESSY, Germany May 2002 at BESSY,
Cross-Compiler Issues EPICS Meeting, May 2001 Markus Janousch (SLS)
Lecture 7. Instructions and High-Level to Machine Code Prof. Taeweon Suh Computer Science Education Korea University 2010 R&E Computer System Education.
Developing C/C++ applications with the Eclipse CDT David Gallardo.
Introduction Purpose This training course covers debugging an application on an SH target in the Renesas HEW (High-performance Embedded Workshop) development.
 Overview › Requirements › Proof of Principal › Issues … › First Step – Wrap Altera NIOS2 GNU Tools › Next Step – Build RTEMS/NIOS GNU Tools › Future.
MIPS Project -- Simics Yang Diyi Outline Introduction to Simics Simics Installation – Linux – Windows Guide to Labs – General idea Score Policy.
City College of New York 1 Player Stage Gazebo Rex Wong CCNY Robotic Lab A robotic research and development environment.
Introduction to SimpleScalar (Based on SimpleScalar Tutorial) CSCE614 Hyunjun Jang Texas A&M University.
1 COMS 261 Computer Science I Title: C++ Fundamentals Date: September 05, 2005 Lecture Number: 4.
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
The Development Process Compilation. Compilation - Dr. Craig A. Struble 2 Programming Process Problem Solving Phase We will spend significant time on.
Lab 9 Department of Computer Science and Information Engineering National Taiwan University Lab9 - Debugging I 2014/11/4/ 28 1.
Internals of SimpleScalar Simulators CPEG323 Tutorial Long Chen November, 2005.
Tutorial for Modelsim 1 Installation Download the Modelsim Student Edition: Follow the.
The World Leader in High Performance Signal Processing Solutions Toolchain Basics.
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
Developing Portable Applications ● Introduction GNU autotools – GNU toolchain ● Goals - cross-platform ● Supported platforms (POSIX compliant) ● GNU autotools.
??? ple r B Amulya Sai EDM14b005 What is simple scalar?? Simple scalar is an open source computer architecture simulator developed by Todd.
Computer System Laboratory
System Programming and administration
Microprocessor and Assembly Language
Introduction to SimpleScalar
Introduction to SimpleScalar (Based on SimpleScalar Tutorial)
Introduction to SimpleScalar (Based on SimpleScalar Tutorial)
Computer Architecture “Bomb Lab Hints”
Lab 00 Discussion Linux Basics
Program Execution in Linux
Appendix F C Programming Environment on UNIX Systems
Computer System Laboratory
Chapter 1 Introduction.
System Programming By Prof.Naveed Zishan.
Presentation transcript:

Introduction to SimpleScalar Tool Set CPEG323 Tutorial Long Chen September, 2005

Outline ● Why this tutorial? ● What is SimpleScalar Tool Set? ● Where to get it? ● How to install it? ● How to use it? ● Demo

Why This Tutorial? ● Course Labs and projects are based on SimpleScalar tool set. ● It will help you develop the ability to practice what you learned in class.

Outline ● Why this tutorial? ● What is SimpleScalar Tool Set? ● Where to get it? ● How to install it? ● How to use it? ● Demo

What is SimpleScalar Tool Set? A Complete Computer Architecture Test Bed ● Simulators ● Compiler, assembler, linker ● Targeted to the SimpleScalar PISA architecture ● A source–level debugger.

A Computer Architecture Simulator Primer ● What is an architecture simulator? – A tool that reproduces the behaviors of a computer device ● Why use a simulator? – Leverage faster, more flexible S/W development cycle Device Simulator System input System output System metrics

Simulators ● sim-fast-> a very fast functional (i.e., no timing) simulator ● sim-safe-> the minimal functional SimpleScalar simulator ● sim-profile-> a program profiling simulator ● sim-cache-> a multi-level cache simulator ● sim-cheetah-> a single-pass multi-configuration cache simulator ● sim-bpred-> a branch predictor simulator ● sim-outorder-> a detailed out-of-order issue performance (timing) simulator with a multi-level memory system

Compiler & Other Utilities ● Compiler: ported from GNU gcc ● Assembler: as ● Linker & Loader: ld ● Binary Utilities: ar, nm, objdump, objcopy, ranlib, size, strings, strip,... ● C library: pre-built glibc-1.09

Outline ● Why this tutorial? ● What is SimpleScalar Tool Set? ● Where to get it? ● How to install it? ● How to use it? ● Demo

Where to Get It? ● simplesim-3v0d.tgz: SimpleScalar simulator source code; ● simpletools-2v0.tgz: gcc compiler and glibc; ● simpleutils-2v0.tgz: binary utilities; Obtain tar balls from or

Outline ● Why this tutorial? ● What is SimpleScalar Tool Set? ● Where to get it? ● How to install it? ● How to use it? ● Demo

Preparation ● Logon the Linux machine in the Computer Lab, 132 Evans Hall ● Create an empty directory in you home directory, say, “$HOME/simplescalar/” ● Copy all three tar balls to that directory. ● cd $HOME/simplescalar/ ● tar xzvf simplesim-3v0d.tgz ● tar xzvf simpletools-2v0.tgz ● tar xzvf simpleutils-2v0.tgz

Directories ● simplesim-3.0/: the sources of the SimpleScalar simulators. ● binutils-2.5.2/: the GNU binary utilities code, ported to the SimpleScalar architecture. ● sslittle-na-sstrix/: the root directory for the tree in which little- endian SimpleScalar binary utilities and compiler tools will be installed. The unpacked directories contain header files and a pre-compiled copy of libc. ● ssbig-na-sstrix/: the same as above, except that it holds big- endian staffs. ● gcc-2.6.3/: the GNU C compiler code, ported to SimpleScalar architecture. ● glibc-1.09/: the GNU libraries code, ported to SimpleScalar architecture.

Build GNU Binary Utilities ● cd $HOME/simplescalar/binutil ●./configure --host=i386-\*-gnu/linux -- target=sslittle-na-sstrix --with-gnu-as --with-gnu- ld --prefix=$HOME/simplescalar ● make ● make install Build & Install Steps - 1

Build Simulators ● cd $HOME/simplescalar/simplesim-3.0 ● make config-pisa ● make Build & Install Steps - 2

Build the Compiler ● cd $HOME/simplescalar/gcc ●./configure --host=i386-\*-gnu/linux -- target=sslittle-na-sstrix --with-gnu-as --with-gnu-ld - -prefix=$HOME/simplescalar ● make LANGUAGE=c ●../simplesim-3.0/sim-safe./enquire -f >! float.h- cross ● make install Build & Install Steps - 3

Got Error Messages! ● Do not panic! Try to solve these problems by yourself first. You will gain valuable experience in this procedure. ● If you REALLY need help, please refer to the appendix of the simplescalar build memo. ● If you STILL have difficulty to install the tool set, you might seek help from TA.

Check Your Installation ● Check $HOME/simplescalar/bin for the complier, assembler, linker, and other binary utilities. – Write simple program to verify it ● Check $HOME/simplescalar/simplesim-3.0 for simulators – cd $HOME/simplescalar/simplesim-3.0 – make sim-tests

Outline ● Why this tutorial? ● What is SimpleScalar Tool Set? ● Where to get it? ● How to install it? ● How to use it? ● Demo

How to Use it? ● Write program – Write C code. – Or, just write assembly code (you will learn how to do it in the following lectures) ● Compile the source code – sslittle-na-sstrix-gcc –o foo foo.cC code to binary code – sslittle-na-sstrix-gcc –o foo.s –S foo.cC code to Assemble code – sslittle-na-sstrix-gcc –o foo foo.sAssemble code to binary code ● Use the simulator to run the binary code – sim-fast foo – …

Hints for Lab1 ● Do Problem 2 first ● Generate the assembly code from C code ● Investigate the assembly code ● Try to modify the assembly code by your own (for Problem 1) ● Compile the modified assembly code, run the binary code, find the difference between outputs

Outline ● Why this tutorial? ● What is SimpleScalar Tool Set? ● Where to get it? ● How to install it? ● How to write program for it? ● Demo

SimpleScalar Demo