Improvement of Compiled Instruction Set Simulator by Increasing Flexibility and Reducing Compile Time
|
|
- Stephanie Dennis
- 5 years ago
- Views:
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 Mehrdad Reshadi Center for Embedded Computer Systems (CECS) University of California Irvine Irvine, CA 92697, USA reshadi@cecs.uci.edu ABSTRACT
More informationCycle 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 informationInstruction 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 informationHybrid-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 informationFast 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 informationA 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 informationCycle-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 informationA 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 informationTechniques 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 informationUltra 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 informationUltra 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 informationA 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 informationNative 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 informationAutomatic 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 informationCycle 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 informationConfigurable 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 informationTrace-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 informationIlmenau 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 informationBASIC 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 informationAutomated 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 informationAdvanced 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 informationIntroduction 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 informationTimed 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 informationThe 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 informationReXSim: 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 informationVirtual 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 informationSynthesis-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 informationCosimulation 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 informationMemory 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 informationArchitecture 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 informationAssembly 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 informationENGN1640: 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 informationNISC 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 informationHardware 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 informationPractical 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 informationLecture 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 informationBinary-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 informationReminder: 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 informationCSE 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 informationA 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 informationAssembly 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 informationFor 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 informationAdvanced 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 informationPydgin 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 informationHowever, 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 informationNext 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 informationA 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 informationLec 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 informationRTOS-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 informationComputer-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 informationPipeline 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 informationSimCore/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 informationComputer 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 informationHigh-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 informationSoC 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 informationA 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 informationAn 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 informationComputer 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 informationInstruction 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 informationMechanisms 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 informationExecuting 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 informationCOMPUTER 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 informationLEON2/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 informationVLIW 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 informationFine-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 informationRuntime 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 informationA 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 informationCS 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 informationHW/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 informationESE 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 informationReal 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 informationChapter 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 informationENGN1640: 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 informationECE 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 informationEN164: 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 informationCSc 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 informationInstruction 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 informationDesign 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 informationSYSTEMS 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 informationLoop 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 informationSwift: 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 informationPerformance 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 informationAries: 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 informationSystem-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 informationContext 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 informationTopic 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 informationCycle 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 informationArchitecture 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 informationEITF20: 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 informationCS577 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 informationComputer 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 informationFunctional 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 informationOptimizing 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 informationA 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 informationCS553 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 informationECE 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 informationIntroduction 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 informationEmbedded 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 informationIntroduction 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 informationA 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