Modeling and Simulation Issues of Programmable Architectures

Slides:



Advertisements
Similar presentations
Xtensa C and C++ Compiler Ding-Kai Chen
Advertisements

EEE226 MICROPROCESSORBY DR. ZAINI ABDUL HALIM School of Electrical & Electronic Engineering USM.
Systems Software.
System Programming Mr. M. V. Nikum (B.E.I.T). Introduction What is System? System is the collection of various components Ex:- College is a system What.
General information Course web page: html Office hours:- Prof. Eyal.
RTL Processor Synthesis for Architecture Exploration and Implementation Schliebusch, O. Chattopadhyay, A. Leupers, R. Ascheid, G. Meyr, H. Steinert, M.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Ritu Varma Roshanak Roshandel Manu Prasanna
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 1, Lab.
Trend towards Embedded Multiprocessors Popular Examples –Network processors (Intel, Motorola, etc.) –Graphics (NVIDIA) –Gaming (IBM, Sony, and Toshiba)
Educational Computer Architecture Experimentation Tool Dr. Abdelhafid Bouhraoua.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Computer Organization and Assembly language
CSE378 Gen. Intro1 Machine Organization and Assembly Language Programming Machine Organization –Hardware-centric view (in this class) –Not at the transistor.
Computer Organization & Assembly Language
410/510 1 of 20 Week 1 – Lecture 1 Introduction The Textbook Assessment Programming & Tools A v. small compiler Compiler Construction.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Computer Architecture ECE 4801 Berk Sunar Erkay Savas.
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
1 COMP 3438 – Part II-Lecture 1: Overview of Compiler Design Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
Macro instruction synthesis for embedded processors Pinhong Chen Yunjian Jiang (william) - CS252 project presentation.
Developing software and hardware in parallel Vladimir Rubanov ISP RAS.
BridgePoint Integration John Wolfe / Robert Day Accelerated Technology.
Introduction to the C6713 Laurier Boulianne
Introduction Why are virtual machines interesting?
Lecture 7: Overview Microprocessors / microcontrollers.
Basic Concepts Computer Organization & Assembly Language Programming Instructor: Maram Alsahafi [Some of the contents Adapted from slides Dr Adnan Gutub,
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
1 TM 1 Embedded Systems Lab./Honam University ARM Microprocessor Programming Model.
Computer Operation. Binary Codes CPU operates in binary codes Representation of values in binary codes Instructions to CPU in binary codes Addresses in.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
1 The user’s view  A user is a person employing the computer to do useful work  Examples of useful work include spreadsheets word processing developing.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
DDC 2223 SYSTEM SOFTWARE DDC2223 SYSTEM SOFTWARE.
System-on-Chip Design
Advanced Computer Systems
Andreas Hoffmann Andreas Ropers Tim Kogel Stefan Pees Prof
PROGRAMMABLE LOGIC CONTROLLERS SINGLE CHIP COMPUTER
Testing of Heterogeneous Multi-Core Embedded Systems
Chapter 1 Introduction.
Introduction to Compiler Construction
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Evaluating Register File Size
Why to use the assembly and why we need this course at all?
Microprocessor and Assembly Language
Chapter 1 Introduction.
课程名 编译原理 Compiling Techniques
Introduction to SimpleScalar
Chapter 1: Introduction
CSCI/CMPE 3334 Systems Programming
Microcomputer Systems 1
Introduction to cosynthesis Rabi Mahapatra CSCE617
Agenda Why simulation Simulation and model Instruction Set model
Behavioral Models for Software Development
EE 445S Real-Time Digital Signal Processing Lab Spring 2014
VLIW DSP vs. SuperScalar Implementation of a Baseline H.263 Encoder
Chapter 1 Introduction.
CMP 131 Introduction to Computer Programming
Introduction to Microprocessor Programming
COMS 361 Computer Organization
Chapter 6 Programming the basic computer
Lecture 4: Instruction Set Design/Pipelining
Computer Architecture
Computer Systems An Introducton.
Introduction COE 301 Computer Organization Prof. Aiman El-Maleh
UNISIM (UNIted SIMulation Environment) walkthrough
ADSP 21065L.
Presentation transcript:

Modeling and Simulation Issues of Programmable Architectures Andreas Hoffmann Achim Nohl, Gunnar Braun Oliver Wahlen, Andreas Ropers Prof. Heinrich Meyr Integrated Signal Processing Systems (ISS) Aachen University of Technology Germany http://www.iss.rwth-aachen.de/lisa

Outline Introduction Model requirements LISA approach Retargetable development tools Case studies Future research

Exploration by Iterative Improvement Complete tool-suite required HLL-compiler assembler, linker simulator Application Profiling Design criterias met ? Assembler regs data mem prog pipeline control IF/ID ID/EX EX/WB seq ASIP Core Linker Simulator

SW development tools usually written by hand extremely error-prone tedious and lengthy process difficulty of matching the tools to the abstract model of the processor architecture verification against golden model generic approach formalized processor description (LISA)

Design Space Exploration with LISA RESOURCES { REGISTER int reg[0..16]; PROGRAM_MEMORY prog_mem; DATA_MEMORY data_mem; } OPERATION ALU1 .... LISA RESOURCES { REGISTER int reg[0..32]; PROGRAM_MEMORY prog_mem; DATA_MEMORY data_mem; } LISA OPERATION ALU1 { .... } Application assembler #2 linker #2 simulator #2 assembler #1 linker #1 simulator #1 Profiling Design criterias met ? generic assembler regs data mem prog pipeline control IF/ID ID/EX EX/WB seq ASIP Core generic linker generic simulator

Model requirements

abstraction of architecture Abstraction Levels abstraction of architecture interrupt control I/O instruction-pipeline architecture model caches peripherals instruction set model program sequencer memory data data-paths data-flow model

high-level language statement Abstraction Levels (2) abstraction of time abstraction level high-level language statement ... instruction ... cycle ... phase ... time

Model Components of SW Tools Memory model registers, memories bit widths, ranges Resource model hardware resources resource requirements of operations Behavioral Model abstracted hardware activities (various levels) changing the system state Instruction-set model composed of valid HW operations assembly syntax instruction word coding instruction semantics Timing model activation sequence of hardware operations pipeline

LISA Approach

LISA Approach Joint HW/SW model instruction set processor architecture LISA description

LISA Description Components - HW Processor Architecture Description mixed behavioral/structural model based on C/C++ VLIW support fixed-point data types enriched by timing information allow instruction/cycle/phase-accurate models predefined pipeline operations processor architecture (HW)

LISA Description Components - SW Instruction Set Description instruction word coding variable widths multiple words assembly syntax mnemonic based syntax algebraic (C-like) syntax instruction semantics basic functionality configurable instruction set information (power, etc.) instruction set (SW)

Retargetable development tools

Retargetable Environment LISA processor description Generic processor model LISA compiler lc Processor model (intermediate representation) generator generator generator generator Simulator debugger frontend LISA description Debugger Assembler/ Linker Disassembler Co-simulation interface

Target-Independent Debugger

Retargetable LISA Assembler & Linker features support of 30 common assembler directives labels and symbols, named user sections detailed error report/debugging facilities adapted for embedded systems driven by the LISA linker command file linking sections into separate address spaces paging support support of user defined memory models executable generated in COFF

LISA model debugger

LISA Model Debugging Breakpoint LISA source code LISA operation execution stack Control panel System messages Instruction registers Assembly input

Design effort - efficiency

Case Studies ARM 7 Texas Instruments C6201 instruction-accurate model 4000 lines of LISA and C code (164kB) (incl. comments & empty lines) design effort: 2 weeks Texas Instruments C6201 cycle-accurate model 9978 lines of LISA and C code (253kB) (incl. comments & empty lines) design effort: 6 weeks

Model Design Effort: A Comparison TI C54x: cycle-accurate model Development & verification handwritten: 20 months (only cycle accurate simulator) LISA: 2 months generated tools: simulator debugger co-simulation interface assembler, linker model changes take minutes 10x improved designer efficiency!

Case studies: TI C62x DSP (phase), TI C54x DSP (cycle), ARM7 (cycle count)

Simulation of TI C6201 model TI sim62x LISA simulator 450 400 350 300 Host: Sun Ultra Sparc 10 300 MHz, 256MB Solaris 2.7 Speed in KIPS 250 200 150 100 50 FIR ADPCM GSM

Simulation of TI C54x model ADPCM codec simulation 4500 4000 3500 Host: Sun Ultra Sparc 10 300 MHz, 256MB Solaris 2.7 3000 2500 Speed in KIPS 2000 1500 1000 500 Texas Instr. sim54x LISA dynamic Scheduling LISA static Scheduling

Simulation of ARM7 model 40 Instruction-based Code Translation 35 Dynamic Scheduling ARM7 Simulator 30 Hardware at 25 MHz Host: AMD Athlon 800 MHz, 256MB Windows 2000 25 Speed in MIPS 20 15 10 Sehr, sehr schnell !! ARM7 Microprocessor Hardware läuft mit 17 MIPS bei 25 MHz (siehe ARM7 Datenblatt) Bei 800 MHz Simulations-Host und vereinfachter Annahme, daß auf Host eine Instruktion pro Zyklus abgearbeitet wird: nur 32 Instruktionen auf Host um 1 Instruktion des ARM7 zu simulieren Achsen muessen erklärt werden Welcher Simulations-Host ? 5 FIR ADPCM ATM-QFC

Summary & outlook

Outlook Summary Future research software development tools can be generated from LISA simulator, assembler, linker and debugger tools proved to be “production quality” Future research modeling & simulation of processor architectures extend pool of processor architectures (DSP & µC) HW synthesis of pipeline control and instruction decoder automatic test pattern generation retargetable compilation