Improvement of Compiled Instruction Set Simulator by Increasing Flexibility and Reducing Compile Time

Size: px
Start display at page:

Download "Improvement of Compiled Instruction Set Simulator by Increasing Flexibility and Reducing Compile Time"

Transcription

1 Improvement of Compiled Instruction Set Simulator by Increasing Flexibility and Reducing Compile Time Moo-Kyoung Chung, Chung-Min Kyung, Department of EECS, KAIST 1 Moo-Kyoung Chung

2 Outline Previous works Introduction to Instruction Set Simulator (ISS) Native code execution Interpretive ISS Compiled ISS Improvement of compiled ISS New approaches Reducing compile time Increasing flexibility Experimental result Conclusion 2 Moo-Kyoung Chung

3 Instruction Set Simulator (ISS) Used for processor design and software design Instruction set simulation/ architecture exploration Early system verification Pre-silicon software development Essential for hardware/software co-simulation For embedded system, SoC design Connected with HDL simulator or emulator ISS S/W H/W HDL simulator or SystemC Host ISS S/W Host H/W Emulator or H/W Prototype 3 Moo-Kyoung Chung

4 Instruction Set Simulator Native code execution Interpretive ISS Compiled ISS Static compiled ISS Dynamic compiled ISS 4 Moo-Kyoung Chung

5 Native Code Execution Target application code is compiled for host machine, executed on the host machine Fastest Inaccurate Only for functionality verification Only support high-level language Cannot support hardware dependent instruction Cannot support assembly language Cannot support library or OS which does not available source code. Difficult to measure performance Target processor instructions may different from the host processor instructions Difficult to handle I/O access Trap-based method 5 Moo-Kyoung Chung

6 Interpretive ISS Simulation loop ( fetch, decode, execute ) for( ; ; ){ inst = fetch( pc ); opcode = decode( inst ); switch( opcode ){ case ADD: break; } } Flexible & Accurate Working in the similar way to the processor behavior Easy to implement, easy to estimate performance Almost commercial available simulators Slow Several millions of simulated instruction per second (MIPS) 6 Moo-Kyoung Chung

7 Static Compiled ISS Target Application Code Target Compiler Binary Translation Host Executable (ISS) No comaptibility for host machine Target Executable Binary (A) Using Binary Translation C Code Generation Simulation C code Host C Compiler Host Executable (ISS) (B) Using C intermediate code 7 Moo-Kyoung Chung

8 Static Compiled ISS Advantage Fast Faster than the corresponding interpretive simulator Move instruction fetch and decode step into compile process Host C compiler optimizes the simulation C code. Powerful optimization effect of host C compiler Unnecessary activities of the processor hardware are not simulated. e.g.) Carry flag does not always need to be updated for all the data processing instructions, if the next instructions do not use and overwrite it. Accurate Easy to estimate performance 8 Moo-Kyoung Chung

9 Static Compiled ISS Disadvantage Cannot support dynamic program code All the target instructions should be compiled in the static time. Self-modifying code External code (loading) Dynamic linking library Multiple instruction set (ARM:Thumb) Enormous compile time overhead for the software designer Indirect branch instruction C compiler is hard to optimize the code Performance (simulation speed) drop Large application Enormous memory usage Generated binary is much larger then original binary. Low locality of binary Basic block is larger in that scale 9 Moo-Kyoung Chung

10 Dynamic Compiled ISS Dynamic compilation Moving compilation step into simulation run-time. Using binary translation Cannot use intermediate C code Problems on the run-time C chuck code compilation Using translation cache No Cache hit? Yes Target Executable Instruction Fetch Relatively slow Binary Translation Run-time compilation (binary translation) overhead Flexible and Relatively accurate Translation Cache Execution 10 Moo-Kyoung Chung

11 ISS Accuracy Static compile ISS = Interpretive ISS > Dynamic Compiled ISS > Native code execution Simulation Speed Native code execution > Static compiled ISS > Dynamic compiled ISS > Interpreted ISS Simplicity Native code execution > Interpretive ISS > Static compiled ISS > Dynamic Compiled ISS Compilation Speed Native code execution = Interpreted ISS = Dynamic compiled ISS > Static compiled ISS Flexibility Interpretive ISS = Dynamic Compiled ISS > Native code execution > Static compile ISS 11 Moo-Kyoung Chung

12 Objective How to reduce compile time (startup cost) of the static compiled ISS? How to increase flexibility of the static compiled ISS? 12 Moo-Kyoung Chung

13 Improvement of Compiled-ISS New approach Using the object files (relocatable format, ELF) as input files instead of binary executable file Making the generated simulation program have the same data and control flow as the target program has. Making the static compiled ISS have built-in interpreter. Advantages Reducing the compile time recompiled time Increasing flexibility Supporting indirect branch efficiently Supporting dynamic code Fast speed Taking all the advantages of the static compiled-iss 13 Moo-Kyoung Chung

14 ISS Generation Flow Source 1 Source 2 Source 3 Target Source Files Having same structure Cross Compile Object 1 Object 2 Object 3 Compile, Excluding Link C Code Generation Simulation Code Generation C 1 C 2 C 3 Target Simulation C Code Host Compile Simulator Host Executable ISS Relocatable files Library files Relocatable file. After COMPILE, before LINK of C compilation 14 Moo-Kyoung Chung

15 C Code Generation ELF (Executable and Linkable Format) is the most widely used file format for object, executable and library file. Object 1 Extracting the CFG, DFG using Symbol table and decoded information Symbol Code Analyzer CFG, DFG ELF Loader Text Decoded Info. Decoder Decoded Data Code Analysis C Code Generation Simulation C Code 1 Identical structure to the target source file Simulation Code Generation 15 Moo-Kyoung Chung

16 Generating Constructed C Code int result; void cfunction( int number ) { if( number >= 5 ) result = number - 5; } (A) Target C Source... 14:[e51b3010] ldr r3,[r11,#0x10] 18:[e ] cmps r3,#0x4 1c:[da000003] ble #0xc 20:[e59f300c] ldr r3,#0xc 24:[e51b2010] ldr r2,[r11,#0x10] 28:[e ] sub r2,r2,#0x5 2c:[e ] str r2,[r3,#0x0]... (B) Object File (Disassemble) 1 int T_result; 2 void T_cfunction() 3 { LDType=W;Rd=3;Rn=11;LDDir=PRE_DOWN;Imm=0x10;LDWBack=0; LDR_L_I(); 6 Rn=3;Imm=0x4;SType=SHT_LSL;SAmt=0x0; CMP_I(); 7 WR_COND(); 8 Imm=0xc;Cond=0x000d; B(); 9 if( conpass ) goto T newsym_30; 10 LDType=W;Rd=3;Rn=15;LDDir=PRE_UP;Imm=0xc;LDWBack=0; LDR_L_I(); 11 R[3] = &T_result; 12 LDType=W;Rd=2;Rn=11;LDDir=PRE_DOWN;Imm=0x10;LDWBack=0; LDR_L_I(); 13 Rd=2;Rn=2;Imm=0x5;SType=SHT_LSL;SAmt=0x0; SUB_I(); 14 LDType=W;Rd=2;Rn=3;LDDir=PRE_UP;Imm=0x0;LDWBack=0; STR_L_I(); 15 *(R[3]+0) = R[2]; 16 T_newsym_30: } (C) Simulation C Code 16 Moo-Kyoung Chung

17 Reducing Compile Time Previous static compiled ISS The simulation C code has a large function that contains all of the generated simulation code from the target binary. Increasing the function size, the C code compilation time is more increased because of the host compiler optimization. Even a slight change of the source code causes the timeconsuming compilation process. How to reduce compile time The simulation C code is composed of many of small functions. Generated C file has the same structure with target C code The same CFG/DFG It speeds up compiler optimization and reduce compile time Selective Compilation Compiling only the files that are changed Using make utility It speeds up regeneration of ISS 17 Moo-Kyoung Chung

18 Reducing Compile Time Target Program A.c B.c C.c D.c A.c B.c C.c D.c Compile Compile a.o B.o C.o D.o A.o B.o C.o D.o Link Code Gen Generated C code Appl.exe Code Gen A_G.c B_G.c C_G.c D_G.c Compile Gen.c A_G.o B_G.o C_G.o D_G.o Timeconsuming because it handles the large single function. Gen.o Simulator Previous Simulator Generation Process Compile link Re-compilation should have all the time-consuming compilation steps Simulator Only the modified files goes through these steps New Simulator Generation Process Link It is fast because it handles many of small C files 18 Moo-Kyoung Chung

19 Supporting Indirect Branch Supporting Indirect Branch Could not determine the branch target address at compile time Previous Static Compiled-ISS To support the indirect branch, it is necessary to insert labels into every start line of the instruction simulation code in the simulation C file. Those labels take basic block apart. It makes interference with the compiler optimization. Runtime Branch Target Search There should be a symbol (label) at a possible branch target address in target C code according to the normal usage of C language Since the simulation C code has the same CFG with the target code, It also has the corresponding symbols. I made so-called Dynamic Branch Handler which finds the destination symbol (label) and jumps to the address We can handle the indirect branch without adding labels. 19 Moo-Kyoung Chung

20 Supporting Indirect Branch Target_code(){ Label_250:... Label_700:... Label_1000: Inst.1 simulation code label_1001: Inst.2 simulation code label_1002: Inst.3 simulation code label_1003: Inst.4 simulation code label_1004: // Bx R1 goto addr2(r1)... } ISS does not know which address will be the destination at compile time. Unnecessary labels make interference with the optimization and make simulation slow. Generated C Code of Previous Compiled-ISS Function_A(){...} Function_B(){...} Function_C(){ Inst.1 simulation code } Inst.2 simulation code Inst.3 simulation code Inst.4 simulation code //Bx R1 target = DynamicBH( R1 ) *(target)()... ISS knows the possible branch destination address where should be a lable No redundant labels. Taking better optimization effect of host C compiler Generated C Code of New Approach 20 Moo-Kyoung Chung

21 Supporting Dynamic Code Static Compiled ISS Cannot support run-time change of the execution code. Self-modifying code External memory code Downloaded code Dynamic Code Handler Built-in Interpreter Handles the dynamic code. Fetch, Decode, Dispatch Cache Target processor resources are shared between the two ISS s It is necessary to check the modification of binary to be executed. The code executed by the interpretive block runs without speed improvement of the compiled ISS. 21 Moo-Kyoung Chung

22 Supporting Dynamic Code Compiled ISS shares the target processor resource data The next instruction was not compiled at static time Next PC Compiled ISS Execute Instruction Simulation Code Target Processor Resource No Self-modifying Code TEXT Range? External Code Could not get speedup of compiled ISS Only for the dynamic code. Dynamic Code Handler Yes Modified Code? Yes No Modified? Yes Decode No Store to TEXT Addr/Data Self-Modifying Code Table Dispatch Cache Manager Dispatch Cache Built-in in Interpreter Execute Simulation Flow Data Access 22 Moo-Kyoung Chung

23 Experimental Result Performance of Compiled ISS Platform CPU : Intel Xeon CPU 2GHz, 512K Cache OS : Linux Redhat 7.2 Target Processor ARM 7 Target Application IDCT Matrix multiply FIR JPEG Decoder MP3 Decoder 23 Moo-Kyoung Chung

24 Simulation Speed Benchmarks (Target Program) Executed Instruction Count Native Execution (sec.) GNU(GDB) ISS (sec.) Interpretive ISS Commercial ISS (sec.) OBSIM (sec.) Matrix Multiply 1,601 M 0.97 x x x X35 IDCT 1,812 M 1.51 x x x x44 FIR 1,140 M 0.81 x1 137 x x X38 24 Moo-Kyoung Chung

25 Compile Time Benchmarks (Target Program) Source Existing Method Total Compile Time (sec.) Recompile Time (sec.) Total Compile Time (sec.) OBSIM Recompile Time (sec.) JPEG Decoder 12 C Files 137,875 Lines MP3 Decoder 18 C Files 199,220 Lines Moo-Kyoung Chung

26 Summary New approach Keeping speed of static compiled ISS Reducing the compile time Increasing the flexibility Supporting indirect branch without speed losses Supporting dynamic code Practical use Co-simulation for embedded system exploration Fast simulation speed Fast compilation/recompilation speed Easy to estimate performance Powerful semi-hosting features 26 Moo-Kyoung Chung

27 Reference [1] Reshadi M., Mishra P., Dutt N., Instruction set compiled simulation: a technique for fast and flexible instruction set simulation, 38th DAC, Proceedings of, 2003 [2] Jianwen Zhu, Gajski D.D., An ultra-fast instruction set simulator, VLSI Systems, IEEE Transactions on, June 2002, Volume: 10, Issue: 3 [3] Reshadi M., Dutt N., Reducing compilation time overhead in compiled simulators, 21st ICCD, Proceedings of, 2003 [4] Amicel R., Bodin F., Mastering startup costs in assembler-based compiled instruction-set simulation, sixth Annual Workshop on Interaction between Compilers and Computer Architectures, Proceedings of, 2002 [5] Nohl A., Braun G., Schliebusch O., Leupers R., Meyr H., Hoffmann A., A universal technique for fast and flexible instruction-set architecture simulation, 39th DAC, Proceedings of, 2002 [6] Zivojnvic V., Tjiang S., Meyr H., Compiled simulation of programmable DSP architectures, IEEE Workshop VLSI Signal Processing, Proceedings of, [7] Emmett Witchel, Mendel Rosenblum, Embra: fast and flexible machine simulation, ACM SIGMETRICS, Proceedings of, May 1996, Volume 24 Issue 1 27 Moo-Kyoung Chung

28 Reference [8] R. F. Cmelik, D. Keppel Shade, A fast instruction-set simulator for execution profiling, ACM SIGMETRICS, Proceedings of, 1994 [9] ARM9 User Manual manual. Available at [10] Zivojnovic V., Meyr H., Compiled HW/SW co-simulation, 33rd DAC, Proceedings of, 1996 [11] Hoffmann A., Kogel T., Nohl A., Braun G., Schliebusch O., Wahlen O., Wieferink A., Meyr H., A novel methodology for the design of application-specific instruction-set processors (ASIPs) using a machine description language, Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on, Nov. 2001, Volume: 20, Issue: 11 [12] Eric C. Schnarr, Mark D. Hill, James R. Larus, Facile: a language and compiler for high-performance processor simulators, Programming language design and implementation, Proceedings of, 2001 [13] Jong-Yeol Lee, In-Cheol Park, Timed compiled-code simulation of embedded software for performance analysis of SOC design, 39th DAC, Proceedings of, 2002 [14] Bammi J.R., Harcourt E., Kruitzer W., Lavagno L., Lazarescu M.T., Software performance estimation strategies in a system-level design tool, Eighth CODES, Proceedings of, 2000 [15] Nagendra G.D., Kumar V.G.P., Sheshadri B.S., Simulation Bridge: a framework for multi-processor simulation, Tenth CODES, Proceedings of, Moo-Kyoung Chung

Memory Access Optimizations in Instruction-Set Simulators

Memory Access Optimizations in Instruction-Set Simulators Memory Access Optimizations in Instruction-Set Simulators Mehrdad Reshadi Center for Embedded Computer Systems (CECS) University of California Irvine Irvine, CA 92697, USA reshadi@cecs.uci.edu ABSTRACT

More information

Cycle Accurate Binary Translation for Simulation Acceleration in Rapid Prototyping of SoCs

Cycle Accurate Binary Translation for Simulation Acceleration in Rapid Prototyping of SoCs Cycle Accurate Binary Translation for Simulation Acceleration in Rapid Prototyping of SoCs Jürgen Schnerr 1, Oliver Bringmann 1, and Wolfgang Rosenstiel 1,2 1 FZI Forschungszentrum Informatik Haid-und-Neu-Str.

More information

Instruction Set Compiled Simulation: A Technique for Fast and Flexible Instruction Set Simulation

Instruction Set Compiled Simulation: A Technique for Fast and Flexible Instruction Set Simulation Instruction Set Compiled Simulation: A Technique for Fast and Flexible Instruction Set Simulation Mehrdad Reshadi Prabhat Mishra Nikil Dutt Architectures and Compilers for Embedded Systems (ACES) Laboratory

More information

Hybrid-Compiled Simulation: An Efficient Technique for Instruction-Set Architecture Simulation

Hybrid-Compiled Simulation: An Efficient Technique for Instruction-Set Architecture Simulation Hybrid-Compiled Simulation: An Efficient Technique for Instruction-Set Architecture Simulation MEHRDAD RESHADI University of California Irvine PRABHAT MISHRA University of Florida and NIKIL DUTT University

More information

Fast and Accurate Simulation using the LLVM Compiler Framework

Fast and Accurate Simulation using the LLVM Compiler Framework Fast and Accurate Simulation using the LLVM Compiler Framework Florian Brandner, Andreas Fellnhofer, Andreas Krall, and David Riegler Christian Doppler Laboratory: Compilation Techniques for Embedded Processors

More information

A Universal Technique for Fast and Flexible Instruction-Set Architecture Simulation

A Universal Technique for Fast and Flexible Instruction-Set Architecture Simulation A Universal Technique for Fast and Flexible Instruction-Set Architecture Simulation Achim Nohl, Gunnar Braun, Oliver Schliebusch, Rainer Leupers, Heinrich Meyr Integrated Signal Processing Systems Templergraben

More information

Cycle-approximate Retargetable Performance Estimation at the Transaction Level

Cycle-approximate Retargetable Performance Estimation at the Transaction Level Cycle-approximate Retargetable Performance Estimation at the Transaction Level Yonghyun Hwang Samar Abdi Daniel Gajski Center for Embedded Computer Systems University of California, Irvine, 92617-2625

More information

A Multiprocessing Approach to Accelerate Retargetable and Portable Dynamic-compiled Instruction-set Simulation

A Multiprocessing Approach to Accelerate Retargetable and Portable Dynamic-compiled Instruction-set Simulation A Multiprocessing Approach to Accelerate Retargetable and Portable Dynamic-compiled Instruction-set Simulation Wei Qin Boston University Boston, MA, U.S.A. wqin@bu.edu Joseph D Errico Cavium Networks,

More information

Techniques described here for one can sometimes be used for the other.

Techniques described here for one can sometimes be used for the other. 01-1 Simulation and Instrumentation 01-1 Purpose and Overview Instrumentation: A facility used to determine what an actual system is doing. Simulation: A facility used to determine what a specified system

More information

Ultra Fast Cycle-Accurate Compiled Emulation of Inorder Pipelined Architectures

Ultra Fast Cycle-Accurate Compiled Emulation of Inorder Pipelined Architectures Ultra Fast Cycle-Accurate Compiled Emulation of Inorder Pipelined Architectures Stefan Farfeleder 1, Andreas Krall 1, and Nigel Horspool 2 1 Institut für Computersprachen, TU Wien, Austria {stefanf, andi}@complang.tuwien.ac.at

More information

Ultra Fast Cycle-Accurate Compiled Emulation of Inorder Pipelined Architectures

Ultra Fast Cycle-Accurate Compiled Emulation of Inorder Pipelined Architectures Ultra Fast Cycle-Accurate Compiled Emulation of Inorder Pipelined Architectures Stefan Farfeleder Andreas Krall Institut für Computersprachen, TU Wien Nigel Horspool Department of Computer Science, University

More information

A SoC simulator, the newest component in Open64 Report and Experience in Design and Development of a baseband SoC

A SoC simulator, the newest component in Open64 Report and Experience in Design and Development of a baseband SoC A SoC simulator, the newest component in Open64 Report and Experience in Design and Development of a baseband SoC Wendong Wang, Tony Tuo, Kevin Lo, Dongchen Ren, Gary Hau, Jun zhang, Dong Huang {wendong.wang,

More information

Native Simulation of Complex VLIW Instruction Sets Using Static Binary Translation and Hardware-Assisted Virtualization

Native Simulation of Complex VLIW Instruction Sets Using Static Binary Translation and Hardware-Assisted Virtualization Native Simulation of Complex VLIW Instruction Sets Using Static Binary Translation and Hardware-Assisted Virtualization Mian-Muhammad Hamayun, Frédéric Pétrot and Nicolas Fournel System Level Synthesis

More information

Automatic Instrumentation of Embedded Software for High Level Hardware/Software Co-Simulation

Automatic Instrumentation of Embedded Software for High Level Hardware/Software Co-Simulation Automatic Instrumentation of Embedded Software for High Level Hardware/Software Co-Simulation Aimen Bouchhima, Patrice Gerin and Frédéric Pétrot System-Level Synthesis Group TIMA Laboratory 46, Av Félix

More information

Cycle Approximate Simulation of RISC-V Processors

Cycle Approximate Simulation of RISC-V Processors Cycle Approximate Simulation of RISC-V Processors Lee Moore, Duncan Graham, Simon Davidmann Imperas Software Ltd. Felipe Rosa Universidad Federal Rio Grande Sul Embedded World conference 27 February 2018

More information

Configurable and Extensible Processors Change System Design. Ricardo E. Gonzalez Tensilica, Inc.

Configurable and Extensible Processors Change System Design. Ricardo E. Gonzalez Tensilica, Inc. Configurable and Extensible Processors Change System Design Ricardo E. Gonzalez Tensilica, Inc. Presentation Overview Yet Another Processor? No, a new way of building systems Puts system designers in the

More information

Trace-Driven Hybrid Simulation Methodology for Simulation Speedup : Rapid Evaluation of a Pipelined Processor

Trace-Driven Hybrid Simulation Methodology for Simulation Speedup : Rapid Evaluation of a Pipelined Processor Trace-Driven Hybrid Simulation Methodology for Simulation Speedup : Rapid Evaluation of a Pipelined Processor Ho Young Kim and Tag Gon Kim Systems Modeling Simulation Lab., Department of Electrical Engineering

More information

Ilmenau Technical University Faculty of Computer Science and Automation Department of System and Control Theory

Ilmenau Technical University Faculty of Computer Science and Automation Department of System and Control Theory Ilmenau Technical University Faculty of Computer Science and Automation Department of System and Control Theory Software Performance Estimation for a Mission Level Design Flow Date: 28.09.2004 Author:

More information

BASIC COMPUTER ORGANIZATION. Operating System Concepts 8 th Edition

BASIC COMPUTER ORGANIZATION. Operating System Concepts 8 th Edition BASIC COMPUTER ORGANIZATION Silberschatz, Galvin and Gagne 2009 Topics CPU Structure Registers Memory Hierarchy (L1/L2/L3/RAM) Machine Language Assembly Language Running Process 3.2 Silberschatz, Galvin

More information

Automated Generation of Dynamic Binary Translators for Instruction Set Simulation. Katsumi Okuda

Automated Generation of Dynamic Binary Translators for Instruction Set Simulation. Katsumi Okuda Automated Generation of Dynamic Binary Translators for Instruction Set Simulation Katsumi Okuda 1 Outline Introduction Interpreter Dynamic binary translator Related work Generation method Experimental

More information

Advanced Computer Architecture

Advanced Computer Architecture ECE 563 Advanced Computer Architecture Fall 2007 Lecture 14: Virtual Machines 563 L14.1 Fall 2009 Outline Types of Virtual Machine User-level (or Process VMs) System-level Techniques for implementing all

More information

Introduction to gem5. Nizamudheen Ahmed Texas Instruments

Introduction to gem5. Nizamudheen Ahmed Texas Instruments Introduction to gem5 Nizamudheen Ahmed Texas Instruments 1 Introduction A full-system computer architecture simulator Open source tool focused on architectural modeling BSD license Encompasses system-level

More information

Timed Compiled-Code Functional Simulation of Embedded Software for Performance Analysis of SOC Design

Timed Compiled-Code Functional Simulation of Embedded Software for Performance Analysis of SOC Design IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 22, NO. 1, JANUARY 2003 1 Timed Compiled-Code Functional Simulation of Embedded Software for Performance Analysis of

More information

The SimCore/Alpha Functional Simulator

The SimCore/Alpha Functional Simulator The SimCore/Alpha Functional Simulator Kenji Kise,, Takahiro Katagiri,, Hiroki Honda, and Toshitsugu Yuba Graduate School of Information Systems The University of Electro-Communications PRESTO, Japan Science

More information

ReXSim: A Retargetable Framework for Instruction-Set Architecture Simulation

ReXSim: A Retargetable Framework for Instruction-Set Architecture Simulation ReXSim: A Retargetable Framework for Instruction-Set Architecture Simulation Mehrdad Reshadi, Prabhat Mishra, Nikhil Bansal, Nikil Dutt Architectures and Compilers for Embedded Systems (ACES) Laboratory

More information

Virtual Machines and Dynamic Translation: Implementing ISAs in Software

Virtual Machines and Dynamic Translation: Implementing ISAs in Software Virtual Machines and Dynamic Translation: Implementing ISAs in Software Krste Asanovic Laboratory for Computer Science Massachusetts Institute of Technology Software Applications How is a software application

More information

Synthesis-driven Exploration of Pipelined Embedded Processors Λ

Synthesis-driven Exploration of Pipelined Embedded Processors Λ Synthesis-driven Exploration of Pipelined Embedded Processors Λ Prabhat Mishra Arun Kejariwal Nikil Dutt pmishra@cecs.uci.edu arun kejariwal@ieee.org dutt@cecs.uci.edu Architectures and s for Embedded

More information

Cosimulation of ITRON-Based Embedded Software with SystemC

Cosimulation of ITRON-Based Embedded Software with SystemC Cosimulation of ITRON-Based Embedded Software with SystemC Shin-ichiro Chikada, Shinya Honda, Hiroyuki Tomiyama, Hiroaki Takada Graduate School of Information Science, Nagoya University Information Technology

More information

Memory Access Reconstruction Based on Memory Allocation Mechanism for Source-Level Simulation of Embedded Software

Memory Access Reconstruction Based on Memory Allocation Mechanism for Source-Level Simulation of Embedded Software Technische Universität München Memory Access Reconstruction Based on Memory Allocation Mechanism for Source-Level Simulation of Embedded Software Kun Lu, Daniel Müller-Gritschneder, Ulf Schlichtmann Lehrstuhl

More information

Architecture Implementation Using the Machine Description Language LISA

Architecture Implementation Using the Machine Description Language LISA Architecture Implementation Using the Machine Description Language LISA Oliver Schliebusch, Andreas Hoffmann, Achim Nohl, Gunnar Braun and Heinrich Meyr Integrated Signal Processing Systems, RWTH Aachen,

More information

Assembly Language. Lecture 2 - x86 Processor Architecture. Ahmed Sallam

Assembly Language. Lecture 2 - x86 Processor Architecture. Ahmed Sallam Assembly Language Lecture 2 - x86 Processor Architecture Ahmed Sallam Introduction to the course Outcomes of Lecture 1 Always check the course website Don t forget the deadline rule!! Motivations for studying

More information

ENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design

ENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design ENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 Sources: Computer

More information

NISC Application and Advantages

NISC Application and Advantages NISC Application and Advantages Daniel D. Gajski Mehrdad Reshadi Center for Embedded Computer Systems University of California, Irvine Irvine, CA 92697-3425, USA {gajski, reshadi}@cecs.uci.edu CECS Technical

More information

Hardware Emulation and Virtual Machines

Hardware Emulation and Virtual Machines Hardware Emulation and Virtual Machines Overview Review of How Programs Run: Registers Execution Cycle Processor Emulation Types: Pure Translation Static Recompilation Dynamic Recompilation Direct Bytecode

More information

Practical Malware Analysis

Practical Malware Analysis Practical Malware Analysis Ch 4: A Crash Course in x86 Disassembly Revised 1-16-7 Basic Techniques Basic static analysis Looks at malware from the outside Basic dynamic analysis Only shows you how the

More information

Lecture 3: Instruction Set Architecture

Lecture 3: Instruction Set Architecture Lecture 3: Instruction Set Architecture CSE 30: Computer Organization and Systems Programming Summer 2014 Diba Mirza Dept. of Computer Science and Engineering University of California, San Diego 1. Steps

More information

Binary-to-Binary Translation Literature Survey. University of Texas at Austin Department of Electrical and Computer Engineering

Binary-to-Binary Translation Literature Survey. University of Texas at Austin Department of Electrical and Computer Engineering Binary-to-Binary Translation Literature Survey University of Texas at Austin Department of Electrical and Computer Engineering Juan Rubio Wade Schwartzkopf March 16, 1998 I. INTRODUCTION...4 II. HISTORY...4

More information

Reminder: tutorials start next week!

Reminder: tutorials start next week! Previous lecture recap! Metrics of computer architecture! Fundamental ways of improving performance: parallelism, locality, focus on the common case! Amdahl s Law: speedup proportional only to the affected

More information

CSE 237B Fall 2009 Virtualization, Security and RTOS. Rajesh Gupta Computer Science and Engineering University of California, San Diego.

CSE 237B Fall 2009 Virtualization, Security and RTOS. Rajesh Gupta Computer Science and Engineering University of California, San Diego. CSE 237B Fall 2009 Virtualization, Security and RTOS Rajesh Gupta Computer Science and Engineering University of California, San Diego. Overview What is virtualization? Types of virtualization and VMs

More information

A Continuation based Programming Language for Embedded Systems

A Continuation based Programming Language for Embedded Systems e C U P A Continuation based Programming Language for Embedded Systems Shinji Kono E-Mail: kono@ie.u-ryukyu.ac.jp Information Engineering, University of the Ryukyus, PRESTO, Japan Science and Technology

More information

Assembly Language. Lecture 2 x86 Processor Architecture

Assembly Language. Lecture 2 x86 Processor Architecture Assembly Language Lecture 2 x86 Processor Architecture Ahmed Sallam Slides based on original lecture slides by Dr. Mahmoud Elgayyar Introduction to the course Outcomes of Lecture 1 Always check the course

More information

For our next chapter, we will discuss the emulation process which is an integral part of virtual machines.

For our next chapter, we will discuss the emulation process which is an integral part of virtual machines. For our next chapter, we will discuss the emulation process which is an integral part of virtual machines. 1 2 For today s lecture, we ll start by defining what we mean by emulation. Specifically, in this

More information

Advanced Debug Methods for ARM DSM-Based Simulation. Jim Kenney SoC Verification Product Manager

Advanced Debug Methods for ARM DSM-Based Simulation. Jim Kenney SoC Verification Product Manager Advanced Debug Methods for ARM DSM-Based Simulation Jim Kenney SoC Verification Product Manager Agenda The ARM Design Simulation (signoff) Model Processor driven tests Current DSM debug methods Advanced

More information

Pydgin for RISC-V: A Fast and Productive Instruction-Set Simulator

Pydgin for RISC-V: A Fast and Productive Instruction-Set Simulator Pydgin for RISC-V: A Fast and Productive Instruction-Set Simulator Berkin Ilbeyi, Derek Lockhart, and Christopher Batten School of Electrical and Computer Engineering, Cornell University, Ithaca, NY {bi45,dml257,cbatten}@cornell.edu

More information

However, no results are published that indicate the applicability for cycle-accurate simulation purposes. The language RADL [12] is derived from earli

However, no results are published that indicate the applicability for cycle-accurate simulation purposes. The language RADL [12] is derived from earli Retargeting of Compiled Simulators for Digital Signal Processors Using a Machine Description Language Stefan Pees, Andreas Homann, Heinrich Meyr Integrated Signal Processing Systems, RWTH Aachen pees[homann,meyr]@ert.rwth-aachen.de

More information

Next Generation Verification Process for Automotive and Mobile Designs with MIPI CSI-2 SM Interface

Next Generation Verification Process for Automotive and Mobile Designs with MIPI CSI-2 SM Interface Thierry Berdah, Yafit Snir Next Generation Verification Process for Automotive and Mobile Designs with MIPI CSI-2 SM Interface Agenda Typical Verification Challenges of MIPI CSI-2 SM designs IP, Sub System

More information

A Hybrid Instruction Set Simulator for System Level Design

A Hybrid Instruction Set Simulator for System Level Design Center for Embedded Computer Systems University of California, Irvine A Hybrid Instruction Set Simulator for System Level Design Yitao Guo, Rainer Doemer Technical Report CECS-10-06 June 11, 2010 Center

More information

Lec 13: Linking and Memory. Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University. Announcements

Lec 13: Linking and Memory. Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University. Announcements Lec 13: Linking and Memory Kavita Bala CS 3410, Fall 2008 Computer Science Cornell University PA 2 is out Due on Oct 22 nd Announcements Prelim Oct 23 rd, 7:30-9:30/10:00 All content up to Lecture on Oct

More information

RTOS-Centric Hardware/Software Cosimulator for Embedded System Design

RTOS-Centric Hardware/Software Cosimulator for Embedded System Design RTOS-Centric Hardware/Software Cosimulator for Embedded System Design Shinya Honda Takayuki Wakabayashi Hiroyuki Tomiyama Hiroaki Takada Department of Information and Computer Science Toyohashi University

More information

Computer-Aided Recoding for Multi-Core Systems

Computer-Aided Recoding for Multi-Core Systems Computer-Aided Recoding for Multi-Core Systems Rainer Dömer doemer@uci.edu With contributions by P. Chandraiah Center for Embedded Computer Systems University of California, Irvine Outline Embedded System

More information

Pipeline Hazards. Midterm #2 on 11/29 5th and final problem set on 11/22 9th and final lab on 12/1. https://goo.gl/forms/hkuvwlhvuyzvdat42

Pipeline Hazards. Midterm #2 on 11/29 5th and final problem set on 11/22 9th and final lab on 12/1. https://goo.gl/forms/hkuvwlhvuyzvdat42 Pipeline Hazards https://goo.gl/forms/hkuvwlhvuyzvdat42 Midterm #2 on 11/29 5th and final problem set on 11/22 9th and final lab on 12/1 1 ARM 3-stage pipeline Fetch,, and Execute Stages Instructions are

More information

SimCore/Alpha Functional Simulator Version 1.0 : Simple and Readable Alpha Processor Simulator

SimCore/Alpha Functional Simulator Version 1.0 : Simple and Readable Alpha Processor Simulator SimCore/Alpha Functional Simulator Version 1.0 : Simple and Readable Alpha Processor Simulator Kenji KISE kis@is.uec.ac.jp Graduate School of Information Systems, University of Electro-Communications 2003-09-28

More information

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: MIPS Instruction Set Architecture

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: MIPS Instruction Set Architecture Computer Science 324 Computer Architecture Mount Holyoke College Fall 2009 Topic Notes: MIPS Instruction Set Architecture vonneumann Architecture Modern computers use the vonneumann architecture. Idea:

More information

High-Level Synthesis of Programmable Hardware Accelerators Considering Potential Varieties

High-Level Synthesis of Programmable Hardware Accelerators Considering Potential Varieties THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS TECHNICAL REPORT OF IEICE.,, (VDEC) 113 8656 7 3 1 CREST E-mail: hiroaki@cad.t.u-tokyo.ac.jp, fujita@ee.t.u-tokyo.ac.jp SoC Abstract

More information

SoC Design Environment with Automated Configurable Bus Generation for Rapid Prototyping

SoC Design Environment with Automated Configurable Bus Generation for Rapid Prototyping SoC esign Environment with utomated Configurable Bus Generation for Rapid Prototyping Sang-Heon Lee, Jae-Gon Lee, Seonpil Kim, Woong Hwangbo, Chong-Min Kyung P PElectrical Engineering epartment, KIST,

More information

A Bit of History. Program Mem Data Memory. CPU (Central Processing Unit) I/O (Input/Output) Von Neumann Architecture. CPU (Central Processing Unit)

A Bit of History. Program Mem Data Memory. CPU (Central Processing Unit) I/O (Input/Output) Von Neumann Architecture. CPU (Central Processing Unit) Memory COncepts Address Contents Memory is divided into addressable units, each with an address (like an array with indices) Addressable units are usually larger than a bit, typically 8, 16, 32, or 64

More information

An Assembler for the MSSP Distiller Eric Zimmerman University of Illinois, Urbana Champaign

An Assembler for the MSSP Distiller Eric Zimmerman University of Illinois, Urbana Champaign An Assembler for the MSSP Distiller Eric Zimmerman University of Illinois, Urbana Champaign Abstract It is important to have a means of manually testing a potential optimization before laboring to fully

More information

Computer Organization & Assembly Language Programming (CSE 2312)

Computer Organization & Assembly Language Programming (CSE 2312) Computer Organization & Assembly Language Programming (CSE 2312) Lecture 15: Running ARM Programs in QEMU and Debugging with gdb Taylor Johnson Announcements and Outline Homework 5 due Thursday Midterm

More information

Instruction Set Architecture

Instruction Set Architecture Computer Architecture Instruction Set Architecture Lynn Choi Korea University Machine Language Programming language High-level programming languages Procedural languages: C, PASCAL, FORTRAN Object-oriented

More information

Mechanisms and constructs for System Virtualization

Mechanisms and constructs for System Virtualization Mechanisms and constructs for System Virtualization Content Outline Design goals for virtualization General Constructs for virtualization Virtualization for: System VMs Process VMs Prevalent trends: Pros

More information

Executing Legacy Applications on a Java Operating System

Executing Legacy Applications on a Java Operating System Executing Legacy Applications on a Java Operating System Andreas Gal, Michael Yang, Christian Probst, and Michael Franz University of California, Irvine {gal,mlyang,probst,franz}@uci.edu May 30, 2004 Abstract

More information

COMPUTER ORGANIZATION & ARCHITECTURE

COMPUTER ORGANIZATION & ARCHITECTURE COMPUTER ORGANIZATION & ARCHITECTURE Instructions Sets Architecture Lesson 5a 1 What are Instruction Sets The complete collection of instructions that are understood by a CPU Can be considered as a functional

More information

LEON2/3 SystemC Instruction Set Simulator

LEON2/3 SystemC Instruction Set Simulator LEON2/3 SystemC Instruction Set Simulator Luca Fossati Luca.Fossati@esa.int European Space Agency Outline 1 LEON2/3 IP Model Contract Aim 2 Instruction Set Simulator 3 Results 4 Conclusion 1 / 17 Overview

More information

VLIW DSP Processor Design for Mobile Communication Applications. Contents crafted by Dr. Christian Panis Catena Radio Design

VLIW DSP Processor Design for Mobile Communication Applications. Contents crafted by Dr. Christian Panis Catena Radio Design VLIW DSP Processor Design for Mobile Communication Applications Contents crafted by Dr. Christian Panis Catena Radio Design Agenda Trends in mobile communication Architectural core features with significant

More information

Fine-grained Application Source Code Profiling for ASIP Design

Fine-grained Application Source Code Profiling for ASIP Design 2.1 Fine-grained Application Source Code Profiling for ASIP Design Kingshuk Karuri, Mohammad Abdullah Al Faruque, Stefan Kraemer, Rainer Leupers, Gerd Ascheid, Heinrich Meyr Institute for Integrated Signal

More information

Runtime Integrity Checking for Exploit Mitigation on Embedded Devices

Runtime Integrity Checking for Exploit Mitigation on Embedded Devices Runtime Integrity Checking for Exploit Mitigation on Embedded Devices Matthias Neugschwandtner IBM Research, Zurich eug@zurich.ibm.com Collin Mulliner Northeastern University, Boston collin@mulliner.org

More information

A Framework for the Performance Evaluation of Operating System Emulators. Joshua H. Shaffer. A Proposal Submitted to the Honors Council

A Framework for the Performance Evaluation of Operating System Emulators. Joshua H. Shaffer. A Proposal Submitted to the Honors Council A Framework for the Performance Evaluation of Operating System Emulators by Joshua H. Shaffer A Proposal Submitted to the Honors Council For Honors in Computer Science 15 October 2003 Approved By: Luiz

More information

CS 310 Embedded Computer Systems CPUS. Seungryoul Maeng

CS 310 Embedded Computer Systems CPUS. Seungryoul Maeng 1 EMBEDDED SYSTEM HW CPUS Seungryoul Maeng 2 CPUs Types of Processors CPU Performance Instruction Sets Processors used in ES 3 Processors used in ES 4 Processors used in Embedded Systems RISC type ARM

More information

HW/SW Codesign w/ FPGAsGeneral Purpose Embedded Cores ECE 495/595

HW/SW Codesign w/ FPGAsGeneral Purpose Embedded Cores ECE 495/595 G.P. Embedded Cores (A Practical Intro. to HW/SW Codesign, P. Schaumont) The most successful programmable component on silicon is the microprocessor Fueled by a well-balanced mix of efficient implementations,

More information

ESE Back End 2.0. D. Gajski, S. Abdi. (with contributions from H. Cho, D. Shin, A. Gerstlauer)

ESE Back End 2.0. D. Gajski, S. Abdi. (with contributions from H. Cho, D. Shin, A. Gerstlauer) ESE Back End 2.0 D. Gajski, S. Abdi (with contributions from H. Cho, D. Shin, A. Gerstlauer) Center for Embedded Computer Systems University of California, Irvine http://www.cecs.uci.edu 1 Technology advantages

More information

Real instruction set architectures. Part 2: a representative sample

Real instruction set architectures. Part 2: a representative sample Real instruction set architectures Part 2: a representative sample Some historical architectures VAX: Digital s line of midsize computers, dominant in academia in the 70s and 80s Characteristics: Variable-length

More information

Chapter 2 M3-SCoPE: Performance Modeling of Multi-Processor Embedded Systems for Fast Design Space Exploration

Chapter 2 M3-SCoPE: Performance Modeling of Multi-Processor Embedded Systems for Fast Design Space Exploration Chapter 2 M3-SCoPE: Performance Modeling of Multi-Processor Embedded Systems for Fast Design Space Exploration Hector Posadas, Sara Real, and Eugenio Villar Abstract Design Space Exploration for complex,

More information

ENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design

ENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design ENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2016 1 ISA is the HW/SW

More information

ECE 498 Linux Assembly Language Lecture 1

ECE 498 Linux Assembly Language Lecture 1 ECE 498 Linux Assembly Language Lecture 1 Vince Weaver http://www.eece.maine.edu/ vweaver vincent.weaver@maine.edu 13 November 2012 Assembly Language: What s it good for? Understanding at a low-level what

More information

EN164: Design of Computing Systems Topic 03: Instruction Set Architecture Design

EN164: Design of Computing Systems Topic 03: Instruction Set Architecture Design EN164: Design of Computing Systems Topic 03: Instruction Set Architecture Design Professor Sherief Reda http://scale.engin.brown.edu Electrical Sciences and Computer Engineering School of Engineering Brown

More information

CSc 453 Interpreters & Interpretation

CSc 453 Interpreters & Interpretation CSc 453 Interpreters & Interpretation Saumya Debray The University of Arizona Tucson Interpreters An interpreter is a program that executes another program. An interpreter implements a virtual machine,

More information

Instruction Set Principles and Examples. Appendix B

Instruction Set Principles and Examples. Appendix B Instruction Set Principles and Examples Appendix B Outline What is Instruction Set Architecture? Classifying ISA Elements of ISA Programming Registers Type and Size of Operands Addressing Modes Types of

More information

Design of Embedded DSP Processors Unit 7: Programming toolchain. 9/26/2017 Unit 7 of TSEA H1 1

Design of Embedded DSP Processors Unit 7: Programming toolchain. 9/26/2017 Unit 7 of TSEA H1 1 Design of Embedded DSP Processors Unit 7: Programming toolchain 9/26/2017 Unit 7 of TSEA26 2017 H1 1 Toolchain introduction There are two kinds of tools 1.The ASIP design tool for HW designers Frontend

More information

SYSTEMS ON CHIP (SOC) FOR EMBEDDED APPLICATIONS

SYSTEMS ON CHIP (SOC) FOR EMBEDDED APPLICATIONS SYSTEMS ON CHIP (SOC) FOR EMBEDDED APPLICATIONS Embedded System System Set of components needed to perform a function Hardware + software +. Embedded Main function not computing Usually not autonomous

More information

Loop Aware IR-Level Annotation Framework for Performance Estimation in Native Simulation

Loop Aware IR-Level Annotation Framework for Performance Estimation in Native Simulation Loop Aware IR-Level Annotation Framework for Performance Estimation in Native Simulation Omayma matoussi Frédéric Pétrot TIMA Laboratory France 01/17/2017 1 / 43 Outline Introduction Software back-annotation

More information

Swift: A Register-based JIT Compiler for Embedded JVMs

Swift: A Register-based JIT Compiler for Embedded JVMs Swift: A Register-based JIT Compiler for Embedded JVMs Yuan Zhang, Min Yang, Bo Zhou, Zhemin Yang, Weihua Zhang, Binyu Zang Fudan University Eighth Conference on Virtual Execution Environment (VEE 2012)

More information

Performance Verification for ESL Design Methodology from AADL Models

Performance Verification for ESL Design Methodology from AADL Models Performance Verification for ESL Design Methodology from AADL Models Hugues Jérome Institut Supérieur de l'aéronautique et de l'espace (ISAE-SUPAERO) Université de Toulouse 31055 TOULOUSE Cedex 4 Jerome.huges@isae.fr

More information

Aries: Transparent Execution of PA-RISC/HP-UX Applications on IPF/HP-UX

Aries: Transparent Execution of PA-RISC/HP-UX Applications on IPF/HP-UX Aries: Transparent Execution of PA-RISC/HP-UX Applications on IPF/HP-UX Keerthi Bhushan Rajesh K Chaurasia Hewlett-Packard India Software Operations 29, Cunningham Road Bangalore 560 052 India +91-80-2251554

More information

System-level simulation (HW/SW co-simulation) Outline. EE290A: Design of Embedded System ASV/LL 9/10

System-level simulation (HW/SW co-simulation) Outline. EE290A: Design of Embedded System ASV/LL 9/10 System-level simulation (/SW co-simulation) Outline Problem statement Simulation and embedded system design functional simulation performance simulation POLIS implementation partitioning example implementation

More information

Context Threading: A flexible and efficient dispatch technique for virtual machine interpreters

Context Threading: A flexible and efficient dispatch technique for virtual machine interpreters : A flexible and efficient dispatch technique for virtual machine interpreters Marc Berndl Benjamin Vitale Mathew Zaleski Angela Demke Brown Research supported by IBM CAS, NSERC, CITO 1 Interpreter performance

More information

Topic Notes: MIPS Instruction Set Architecture

Topic Notes: MIPS Instruction Set Architecture Computer Science 220 Assembly Language & Comp. Architecture Siena College Fall 2011 Topic Notes: MIPS Instruction Set Architecture vonneumann Architecture Modern computers use the vonneumann architecture.

More information

Cycle Accurate Simulator for TMS320C62x, 8 way VLIW DSP Processor

Cycle Accurate Simulator for TMS320C62x, 8 way VLIW DSP Processor Cycle Accurate Simulator for TMS320C62x, 8 way VLIW DSP Processor Vinodh Cuppu, Graduate Student, Electrical Engineering, University of Maryland, College Park For ENEE 646 - Digital Computer Design, Fall

More information

Architecture choices. Functional specifications. expensive loop (in time and cost) Hardware and Software partitioning. Hardware synthesis

Architecture choices. Functional specifications. expensive loop (in time and cost) Hardware and Software partitioning. Hardware synthesis Introduction of co-simulation in the design cycle of the real- control for electrical systems R.RUELLAND, J.C.HAPIOT, G.GATEAU Laboratoire d'electrotechnique et d'electronique Industrielle Unité Mixte

More information

EITF20: Computer Architecture Part2.2.1: Pipeline-1

EITF20: Computer Architecture Part2.2.1: Pipeline-1 EITF20: Computer Architecture Part2.2.1: Pipeline-1 Liang Liu liang.liu@eit.lth.se 1 Outline Reiteration Pipelining Harzards Structural hazards Data hazards Control hazards Implementation issues Multi-cycle

More information

CS577 Modern Language Processors. Spring 2018 Lecture Interpreters

CS577 Modern Language Processors. Spring 2018 Lecture Interpreters CS577 Modern Language Processors Spring 2018 Lecture Interpreters 1 MAKING INTERPRETERS EFFICIENT VM programs have an explicitly specified binary representation, typically called bytecode. Most VM s can

More information

Computer System: An Overview

Computer System: An Overview C Programming 1 Computer System: An Overview C Programming 2 VDU Processor Memory Disk etc. Keyboard Mouse C Programming 3 01 00 11 00 11 00 11 00 11 00 11 00 11 00 11 Primergy 000000000000 11111111111100

More information

Functional Units of a Modern Computer

Functional Units of a Modern Computer Functional Units of a Modern Computer We begin this lecture by repeating a figure from a previous lecture. Logically speaking a computer has four components. Connecting the Components Early schemes for

More information

Optimizing Models of an FPGA Embedded System. Adam Donlin Xilinx Research Labs September 2004

Optimizing Models of an FPGA Embedded System. Adam Donlin Xilinx Research Labs September 2004 Optimizing Models of an FPGA Embedded System Adam Donlin Xilinx Research Labs September 24 Outline Target System Architecture Model Optimizations and Simulation Impact Port Datatypes Threads and Methods

More information

A MACHINE INDEPENDENT WCET PREDICTOR FOR MICROCONTROLLERS AND DSPS

A MACHINE INDEPENDENT WCET PREDICTOR FOR MICROCONTROLLERS AND DSPS A MACHINE INDEPENDENT WCET PREDICTOR FOR MICROCONTROLLERS AND DSPS Adriano José Tavares Department of Industrial Electronics, University of Minho, 4800 Guimarães, Portugal e-mail: atavares@dei.uminho.pt,

More information

CS553 Lecture Dynamic Optimizations 2

CS553 Lecture Dynamic Optimizations 2 Dynamic Optimizations Last time Predication and speculation Today Dynamic compilation CS553 Lecture Dynamic Optimizations 2 Motivation Limitations of static analysis Programs can have values and invariants

More information

ECE 111 ECE 111. Advanced Digital Design. Advanced Digital Design Winter, Sujit Dey. Sujit Dey. ECE Department UC San Diego

ECE 111 ECE 111. Advanced Digital Design. Advanced Digital Design Winter, Sujit Dey. Sujit Dey. ECE Department UC San Diego Advanced Digital Winter, 2009 ECE Department UC San Diego dey@ece.ucsd.edu http://esdat.ucsd.edu Winter 2009 Advanced Digital Objective: of a hardware-software embedded system using advanced design methodologies

More information

Introduction to Digital Logic

Introduction to Digital Logic Introduction to Digital Logic Lecture 5 Simple CPU Overview Instruction Set Software Process Software Program High Level Language Description if (x > ) x = x + y - z; a = b*x; Compiler JLEZ X,SKIP MOVE.W

More information

Embedded System Design

Embedded System Design Modeling, Synthesis, Verification Daniel D. Gajski, Samar Abdi, Andreas Gerstlauer, Gunar Schirner 9/29/2011 Outline System design trends Model-based synthesis Transaction level model generation Application

More information

Introduction to Virtual Machines. Michael Jantz

Introduction to Virtual Machines. Michael Jantz Introduction to Virtual Machines Michael Jantz Acknowledgements Slides adapted from Chapter 1 in Virtual Machines: Versatile Platforms for Systems and Processes by James E. Smith and Ravi Nair Credit to

More information

A Highly Efficient Virtualization-Assisted Approach for Full-System Virtual Prototypes

A Highly Efficient Virtualization-Assisted Approach for Full-System Virtual Prototypes R1-1 SASIMI 2018 Proceedings A Highly Efficient Virtualization-Assisted Approach for Full-System Virtual Prototypes Hsin-I Wu 1, Chi-Kang Chen 2, Da-Yi Guo 3 and Ren-Song Tsay 4 1,3,4 Department of Computer

More information