Estimating Timing Profiles for Simulation of Embedded Systems

Slides:



Advertisements
Similar presentations
Applications of Synchronization Coverage A.Bron,E.Farchi, Y.Magid,Y.Nir,S.Ur Tehila Mayzels 1.
Advertisements

Techniques to analyze workflows (design-time)
Discovering and Exploiting Program Phases Timothy Sherwood, Erez Perelman, Greg Hamerly, Suleyman Sair, Brad Calder CSE 231 Presentation by Justin Ma.
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Whitebox Testing Fra: CS Fall Whitebox Testing AKA Structural, Basis Path Test Normally used at unit level Assumes errors at unit level are.
RISC and Pipelining Prof. Sin-Min Lee Department of Computer Science.
Wish Branches Combining Conditional Branching and Predication for Adaptive Predicated Execution The University of Texas at Austin *Oregon Microarchitecture.
CS412/413 Introduction to Compilers Radu Rugina Lecture 37: DU Chains and SSA Form 29 Apr 02.
Stanford University CS243 Winter 2006 Wei Li 1 Register Allocation.
1 Symbolic Execution for Model Checking and Testing Corina Păsăreanu (Kestrel) Joint work with Sarfraz Khurshid (MIT) and Willem Visser (RIACS)
1/20 Generalized Symbolic Execution for Model Checking and Testing Charngki PSWLAB Generalized Symbolic Execution for Model Checking and Testing.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Introduction to Software Engineering Lecture 11 André van der Hoek.
Constraint Systems used in Worst-Case Execution Time Analysis Andreas Ermedahl Dept. of Information Technology Uppsala University.
44 nd DAC, June 4-8, 2007 Processor External Interrupt Verification Tool (PEVT) Fu-Ching Yang, Wen-Kai Huang and Ing-Jer Huang Dept. of Computer Science.
Vector Processing. Vector Processors Combine vector operands (inputs) element by element to produce an output vector. Typical array-oriented operations.
SKELETON BASED PERFORMANCE PREDICTION ON SHARED NETWORKS Sukhdeep Sodhi Microsoft Corp Jaspal Subhlok University of Houston.
Efficient Software Performance Estimation Methods for Hardware/Software Codesign Kei Suzuki Alberto Sangiovanni-Vincentelli Present: Yanmei Li.
Timed Simulation with Multiple Resource Schedulability Analysis Yang Zhao and Slobodan Matic University of California, BerkeleyDec 10, 2004.
A High Performance Application Representation for Reconfigurable Systems Wenrui GongGang WangRyan Kastner Department of Electrical and Computer Engineering.
Process Scheduling for Performance Estimation and Synthesis of Hardware/Software Systems Slide 1 Process Scheduling for Performance Estimation and Synthesis.
Source Code Optimization and Profiling of Energy Consumption in Embedded System Simunic, T.; Benini, L.; De Micheli, G.; Hans, M.; Proceedings on The 13th.
Dynamic Hardware Software Partitioning A First Approach Komal Kasat Nalini Kumar Gaurav Chitroda.
Software Metrics *** state of the art, weak points and possible improvements Gordana Rakić, Zoran Budimac Department of Mathematics and Informatics, Faculty.
Macro instruction synthesis for embedded processors Pinhong Chen Yunjian Jiang (william) - CS252 project presentation.
A Graph Based Algorithm for Data Path Optimization in Custom Processors J. Trajkovic, M. Reshadi, B. Gorjiara, D. Gajski Center for Embedded Computer Systems.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
Introduction to Software Testing Chapter 2.3 Graph Coverage for Source Code Paul Ammann & Jeff Offutt.
Practical Path Profiling for Dynamic Optimizers Michael Bond, UT Austin Kathryn McKinley, UT Austin.
Lecture 2COMPSCI AP G Gimel'farb1 Estimated Time to Sum Subarrays Ignore data initialisation “Brute-force” summing with two nested loops: T(n) 
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Wajid Minhass, Paul Pop, Jan Madsen Technical University of Denmark
Hy-C A Compiler Retargetable for Single-Chip Heterogeneous Multiprocessors Philip Sweany 8/27/2010.
CS 590 Term Project Epidemic model on Facebook
( = “unknown yet”) Our novel symbolic execution framework: - extends model checking to programs that have complex inputs with unbounded (very large) data.
Control Flow Graphs : The if Statement 1 if (x < y) { y = 0; x = x + 1; } else { x = y; } x >= yx < y x = y y = 0 x = x + 1 if (x < y) { y = 0;
CSE 522 WCET Analysis Computer Science & Engineering Department Arizona State University Tempe, AZ Dr. Yann-Hang Lee (480)
Cyclomatic complexity (or conditional complexity) is a software metric (measurement). Its gives the number of indepented paths through strongly connected.
ECE 526 – Network Processing Systems Design Programming Model Chapter 21: D. E. Comer.
Symbolic Execution in Software Engineering By Xusheng Xiao Xi Ge Dayoung Lee Towards Partial fulfillment for Course 707.
The Effect of Data-Reuse Transformations on Multimedia Applications for Application Specific Processors N. Vassiliadis, A. Chormoviti, N. Kavvadias, S.
ARM7 Architecture What We Have Learned up to Now.
White-Box Testing Statement coverage Branch coverage Path coverage
Beyond Application Profiling to System Aware Analysis Elena Laskavaia, QNX Bill Graham, QNX.
CHaRy Software Synthesis for Hard Real-Time Systems
Software Testing.
Control Flow Testing Handouts
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 4 Control Flow Testing
Optimizing Compilers Background
Outline of the Chapter Basic Idea Outline of Control Flow Testing
Online Subpath Profiling
Structural testing, Path Testing
Fei Li Jinjun Xiong University of Wisconsin-Madison
White-Box Testing.
CSCI1600: Embedded and Real Time Software
Control Flow Analysis CS 4501 Baishakhi Ray.
CS170 Computer Organization and Architecture I
White-Box Testing.
CS 201 Compiler Construction
Evaluation and Validation
Lesson 4 Synchronous Design Architectures: Data Path and High-level Synthesis (part two) Sept EE37E Adv. Digital Electronics.
Hyesoon Kim Onur Mutlu Jared Stark* Yale N. Patt
CprE 588 Embedded Computer Systems
Amir Kamil and Katherine Yelick
Paul Ammann & Jeff Offutt
Whitebox Testing.
CSCI1600: Embedded and Real Time Software
Phase based adaptive Branch predictor: Seeing the forest for the trees
Srinivas Neginhal Anantharaman Kalyanaraman CprE 585: Survey Project
Presentation transcript:

Estimating Timing Profiles for Simulation of Embedded Systems Andrew H. Chan May 15, 2009

Introduction Timing estimation Timing and Concurrency Many parts working together Need to be aware of timing characteristics Given hardware, software and control flow, estimate execution time

Motivation Access Point Event Simulation of Legacy Embedded Software Systems (APES) Discrete event model in Ptolemy Needs timing estimates of code fragments Easier/less expensive to simulate in software without maintaining actual hardware Might not have direct access to hardware

Motivation Explore timing behavior of hardware Guided testing to assess timing characteristics Simplify problem by deciding on both software and hardware

Timing Model Control Flow Graph (CFG) Conditionals, branches Basic blocks Directed acyclic graph

Example void func(int x, int y) { if(x > y) { x = 3; } else { return;

Algorithm Represent paths with an “edge” vector Vector of 0s and 1s, where each component corresponds to an “edge” x = 1. 1. 0. 1. 0. 0.

Algorithm Calculate 2-barycentric spanner Good representative set of basis paths Every path can be represented by a linear combination with coeff less than 2 Sample on these paths to obtain timing information Only get total path execution times No execution times for individual basic blocks

Algorithm B is a matrix with basis vectors as rows v is a vector of the average execution times for the basis vectors w is the “edge weight” vector Bw = v w = B-1v Estimate for path x wTx = estimated time

Algorithm Estimate “edge” weights Path lengths are more important Not all edges are assigned accurate weights, but it doesn’t matter Only the overall path length matters

Example CFG for Altitude 11 paths 6 basis paths

Example

Example Record average time for each basis path Place in vector Basis Matrix B = 1. 0. 1. 0. 0. 0. 0. 1. 0. 1. 0. 1. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 0. 1. 0. 0. 0. 0. 1. 1. 0. 1. 0. 0. 0. 1.

Example Calculate B-1 Compute B-1v = w Take the “edge” vector of the path you want to estimate x = 1. 1. 0. 1. 0. 0. Estimated time = wTx 865 estimated cycles 851 actual cycles

Implementation SimIt ARM simulator CREST: branch coverage CIL: C front-end, instrumentation Yices: satisfiability solver SciPy and Numpy

Implementation SimIt ARM 2.1 simulator Cycle-accurate simulator for the StrongARM microprocessor ARM V4 instruction set architecture 206MHz processor

Experiments CFG for Altitude 11 paths 6 basis paths

Experiments Altitude, 12 lines of code 15 nodes, 19 edges 6 basis paths, 11 possible paths in CFG 5 non-basis paths tested Mean: 794 cycles, Std Dev: 54% Average estimation diff: 0.9 % Max estimation diff: 1.62 %

Experiments Climb Control CFG

Experiments Climb Control 50 nodes, 66 edges 18 basis paths, 657 possible paths in CFG 94 non-basis paths tested Mean: 1178 cycles, Std Dev: 35% Average estimation diff: 2.5 % Max estimation diff: 12.7 %

Conclusion Important to choose a good set of basis paths Context-switching effects are not handled Data-dependent effects Can be used to estimate time given trace of execution

Questions?