Embedded Systems Lecture 11: Worst-Case Execution Time. Björn Franke University of Edinburgh
|
|
- Francis Griffith
- 6 years ago
- Views:
Transcription
1 Embedded Systems Lecture 11: Worst-Case Execution Time Björn Franke University of Edinburgh
2 Overview Motivation Worst-Case Execution Time Analysis Types of Execution Times Measuring vs. Analysing Flow Analysis Low-Level Analysis Calculation
3 Motivation: Characteristics of Real-Time Systems Concurrent control of separate system components Reactive behaviour Guaranteed response times Interaction with special purpose hardware Maintenance usually difficult Harsh environment Constrained resources Often cross-development Large and complex Often have to be extremely dependable
4 What is the Execution Time of a program? WCET: Worst-Case Execution Time BCET: Best-Case Execution Time ACET: Average-Case Execution Time [Wilhelm+08] The WCET/BCET is the longest/shortest execution time possible for a program. Must consider all possible inputs including perhaps inputs that violate specification.
5 Why may we care about the WCET? We are interested in WCET to... perform schedulability anaylsis ensure meeting deadlines assess resource needs for real-time systems WCET accuracy may be safety-critical!
6 And why may we care about the BCET? We are interested in BCET to... benchmark hardware assess code quality assess resource needs for non/soft real-time systems ensure meeting livelines (new starting points)
7 What is the Execution Time of a program? safe BCET estimates actual BCET possible execution times actual WCET safe WCET estimates 0 tighter tighter time [EngblomES01] Approaches for approximating WCET or BCET Measuring: Measure run time of program on target hardware Analysis: Compute estimate of run time, based on program analysis and model of target hardware Hybrid: Combine measurements with program analysis
8 Measuring WCET/BCET Execution time may depend on program inputs In this case, quality of measurements depends on judicious choice of inputs Execution time may depend on execution context (cache content, state of pipeline,...) Typically need to add safety margin to best/worst result measured Extensive testing/measurement still common practice
9 Measuring Program Run Times Call OS timing routines Account for cost of calls to timing routines themselves Access hardware timers directly Use external hardware Oscilloscope, Logic analyser Count emulator cycles High water marking Continuously record max execution times Standard feature of RTOSs May include this in shipped products Read at service intervals
10 Analysing WCET/BCET Instead of measuring execution times, compute them Advantages Can ensure safety of result Saves testing effort Disadvantages Try to be as tight as possible may not always succeed Typically requires extensive analysis effort Accuracy depends on Complexity of hardware Program structure Quality of hardware model Program analysis capabilities
11 Analysing WCET/BCET Program Source Flow Analysis Compiler Global Low- Level Analysis Calculation WCET Object Code Local Low- Level Analysis [EngblomES01]
12 Flow Analysis Analyse dynamic behaviour of program Number of loop iterations, Recursion depth, Input dependences, Infeasible paths, Function instances,... Get information from Static Analysis Manual Annotation Analysis level Object code Source code (may need non-trivial mapping to object code)
13 Flow Analysis Structurally possible flows (infinite) Basic finiteness Statically allowed Actual feasible paths WCET found here=desired result WCET found here=overestimation [EngblomES01]
14 Flow Analysis The set of structurally possible flows for a program, i.e. those given by the structure of the program, is usually infinite, since e.g. loops can be taken an arbitrary number of times The executions are made finite by bounding all loops with some upper limit on the number of executions (basic finiteness) Adding even more information, e. g. about the input data, allows the set of executions to be narrowed down further, to a set of statically allowed paths. This is the optimal outcome of the flow analysis.
15 Flow Analysis const int max = 100; foo (float x) { A: for(i = 1; i <= max; i++) { B: if (x > 5) C: x = x * 2; else D: x = x + 2; E: if (x < 0) F: b[i] = a[i]; G: bar (i) }} Loop bounds: Easy to find in this example; in general, very difficult to determine Infeasible paths: Can we exclude a path, based on data analysis? A-B-C-E-F-G is infeasible since if x>5, it is not possible that x * 2 < 0. Well, really? What about integer overflows? Must be sure that these do not happen in the example...
16 Low-Level Analysis Program Source Flow Analysis Compiler Global Low- Level Analysis Calculation WCET Object Code Local Low- Level Analysis [EngblomES01] Determine execution time for program parts Account for hardware effects (pipeline, caches...) Work on object code Exact analysis generally not possible
17 Low-Level Analysis Global Low-Level Analysis Considers execution time effects of machine features that reach across entire program Instruction/data caches, branch predictors, translation lookaside buffers (TLBs) Local Low-Level Analysis Considers machine features that affect single instruction & its neighbours Scalar/superscalar pipelines
18 Worst-Case Execution Time Analysis Flow Analysis Low-Level Analysis Calculation Local low-level analysis Pipelining Local Low-Level Analysis - Pipelining!!"# % 1235"# 1245"$!$#%()7898!)%).)-+!/0, 12345"6!"#%()*+),-)%).)-+!/0,!!""%&'!""$ &!'#%:0;)</,=%!>)%!/?/,=%+@/,=!/?)@%8,;%!/?/,=%)AA)-!@ [EngblomJ02] Fig. 1. Pipelining of instruction execution effect of two successive Pipeline Pipelining effect of two successive instructionsinstructions Pipeline overlap reduces overall computation time!!"b by%δ = 2 Pipeline overlap time by δ!="%&' "B reduces overall 1245"#computation 12D5"B!"!""# & Embedded Real-Time Systems!"#$%&'$()"*+ #$,--#.*/,($("0 1)%*2*$)*-3,43 $53*6*#$, "C SS 2010, Lecture D5"C!"#"%&'!!"# Types of Execution Times Slide 18!#"B (!!"#"%G6
19 $53*6*#$,03 Worst-Case Execution Time 1235"# 1234D5"EF 1245"$ 12345"6!!"# Types of Execution Times! "%&'!""$ Measuring vs.!" % Analyzing Flow Analysis & Low-Level Analysis!"#%1/?/,=%?0;)< Calculation Local Low-Level Analysis - Pipelining Local low-level analysis Pipelining Fig. 2.!$#%()7898!)%).)-+!/0,!'#%:0;)</,=%!>)%!/?/,=%+@/,= Example long timing effect!"#%()*+),-)%).)-+!/0,!/?)@%8,;%!/?/,=%)aa)-!@ Fig. 1. Pipelining of instruction execution I1... Im is different from the execution of the nodes I2... Im starting with node I2 (see Section 4.1 for more details). %&'()*+,--)./ %&'()*+'01)./ ("!""#$%"&'(!!"B %! ( $A the execution profile!;3 of BC is; differ- "&,-.)/*00 Figure 2 shows an example of a LTE, where $5BC000D$(!;= 1235"B 1245"# 12D5"B "%&' sequence!!"the ent when executed in isolation and when executed as part of ABC.!= Note $$(" $ $$$A diagrams, similar to the reservation that we illustrate pipeline execution using pipeline!=6!=< $$$5BC00D$$!""# & tables commonly used to describe the behavior$$$$000$ of pipelined processors. Time runs hor#!6!!< #!"#"%&' $$$-!E!3 cycle. The pipeline!""#$%"&'( izontally, with each 12345"C tick of time corresponding to a processor clock!!"# "%G6! 124D5"C!6> $$$$000$! <>!"#$%&'$()"*+on the vertical axis. Instructions progress from 5''-.)/2)!!#"B ( stages are shown upper left to lower * $$$5BC000D$ " "!?= #$,--#.*/,($("0 5''-.)/800 $$$$000$ & 1)%*2*$)*-3,43!>7!>: right, and each cycle of execution is shown as a square. $53*6*#$,03 5''-.)/*00 $$$-!E! & 7 %!: LTEs can in general be both negative and$$$$000$ positive, %and must be accounted for by $$$F!"#%1/?/,=%?0;)<!!:? 1234D5"EF!$#%H.)-+!/0,%!/?)@ a static WCET analysis method that wants to $$GH5!-C00D be safe and tight. Positive 7?timing effects ' ' [EngblomJ02] an underfig. and 2. Example long$-!etiming add execution time to a program, are critical to effect consider since otherwise!?@ $$$000$*! Pipelining of three instructions 3@ estimate effect of the WCET couldsuccessive result. Negative timing effects indicate potential savings!@;in $F ) ) Pipelining effect ofthem three instructions execution ignoring onlysuccessive makes the WCET I1 time,... Im and is different from the execution of thegh5!-c000d$ nodes I2... Iestimate with tight. node I2 m starting less (see Section 4.1 for more details). "#$%&'()'#*%+(,".$%/+(0-%)'#01%2341%#44#+1-,%56(2%5# Positive LTEs comprise a central three problem for WCET analysis, since theythan make it Reduction of combining instructions can be larger Reduction offigure combining can be 2: larger sum Attached of savingsflow F 2 shows an three example instructions of a LTE, where the execution profile ofthan BC iswith differfigure Scopes necessary to consider effects across more than just adjacent instructions assumption in sum of savings when combining them pair-wise! ent when executed in isolation and when executed as part of the sequence ABC. Note when combining them pair-wise! order to that create a safe analysis. To prove a pipeline particular WCET analysis method safe, it is we illustrate pipeline execution using diagrams, similar to the reservation The target chip fortime theruns present i Embedded Real-Time SS 2010, Lecture 15 have Slide necessary to address theused question ofsystems whether all LTEs been accounted for. tables commonly to describe the behavior ofpositive pipelined processors. hor- 19 implementation V850E, a typical 32-bit embedded tick of corresponding tosufficient a processor clock cycle. The pipeline A centralizontally, issue inwith thiseach paper is time therefore to give conditions forrisc when LTEs are microcon stages are shown on the vertical axis. Instructions progress[6]. fromthe uppercompiler left to lowerused is an IAR V8 chitecture guaranteed not to be positive. right, and each cycle of execution is shown as a square. C/Embedded C++ compiler [32].
20 Global Low-Level Analysis - Caches Instruction Caches Predictable from control flow Data Caches No simple way to predict accesses Very difficult analysis problem Unified Caches Very pessimistic as a result of combining instructions & data
21 Worst-Case Execution Time Analysis Measuring vs. Analyzing Flow Analysis Low-Level Analysis Calculation Global low-level analysis Caches Global Low-Level Analysis - Caches D#73+%.6(+E / '()$*+ 0012)!3!" )2)& +!"#"$%N(($.*O.4!"##$%!($$PQRO.S, )2)& )2)&. '()$4+ )!6 #!7! " 00*+2)!6!$ 0092)!6!!: $ $ $ $ $ $ )2)& - )2)& 4K899 "KJ8=> A!-+B43(C 3C5('*#43(C!"#&$%TU#$.*O.S!"#'$%%V-$PER!"#"$%()*)+,%-(..!"##$%()*)+,%+(/0 %%%%%%%%%%1-,-%2345!"#&$%()*)+,%+(/!"#'$%()*)+,%+(/!"#"$%&%'()*&+",*&-.-/0,"1$&"$21'#(,"1$ / + 4J89; "JL8=@ "KI8=?,. "LM8=9-4I89: "IL8=9 4L8; 4M89< &32,-'&)")-4"$-&($(456"6 Figure 3: Timing Graph with Execution [StappertEE01] Facts May split loops to loops differentiate between first and successive loop iterations May split to differentiate between first and successive loop iterations / / 9,60:41'. "" )2)& )2)& %5#+47 Must combine with pipelining effects effects Must combine with pipelining + Facts n is the NEC ontroller arv850/v850e )2)& + 9,60:41'. / 4!"" K "KJ!*?@ "; << 15 / + Systems 9,60:41'. )2)& Embedded Real-Time SS 2010, Lecture 3.456)-1*'7 1,6,-5*5.4(8 )2)& )2)& 9,60:41,'-*.0-% + 4!"; J =,6,-5*5.4(8 >,18*1,6)% Figure 4: Timing Effect Calculation Slide 21
22 WCET Calculation Program Source Flow Analysis Compiler Global Low- Level Analysis Calculation WCET Object Code Local Low- Level Analysis [EngblomES01] Task: Find the path that results in the longest execution time Several approaches in use Properties of approaches Program flow allowed Object code structure (optimisations?) Pipeline effect modelling Solution complexity
23 WCET Calculation Path-based Constraint-based Implicit Path Enumeration Technique - IPET Structure-based
24 WCET Calculation [Wilhelm+08]
25 Path-Based Bound Calculation Upper bound for a task is determined by computing bounds for different paths in the task, searching for the overall path with the longest execution time. Defining feature is that possible execution paths are represented explicitly. Natural within a single loop iteration, but problems with flow information extending across loop nesting levels. Number of paths is exponential in the number of branch points. Possibly requiring heuristic search methods.
26 Implicit Path Enumeration Program flow and basic block execution time bounds are combined into sets of arithmetic constraints. Each basic block and program flow edge in the task is given a time coefficient, expressing the upper bound of the contribution of that entity to the total execution time every time it is executed.
27 Structure-based Bound Calculation Upper bound is calculated in a bottom-up traversal of the syntax tree of the task combining bounds computed for constituents of statements according to combination rules for that type of statement. Not every control flow can be expressed through the syntax tree Assumes straight-forward correspondence between source structures and the target program Not easily admitting code optimisations In general, not possible to add additional flow information (as in IPET).
28 Summary Motivation Worst-Case Execution Time Analysis Types of Execution Times Measuring vs. Analysing Flow Analysis Low-Level Analysis WCET Calculation
29 Preview Real-Time Operating Systems MQX
Evaluating Static Worst-Case Execution-Time Analysis for a Commercial Real-Time Operating System
Evaluating Static Worst-Case Execution-Time Analysis for a Commercial Real-Time Operating System Daniel Sandell Master s thesis D-level, 20 credits Dept. of Computer Science Mälardalen University Supervisor:
More informationHardware-Software Codesign. 9. Worst Case Execution Time Analysis
Hardware-Software Codesign 9. Worst Case Execution Time Analysis Lothar Thiele 9-1 System Design Specification System Synthesis Estimation SW-Compilation Intellectual Prop. Code Instruction Set HW-Synthesis
More informationStatic WCET Analysis: Methods and Tools
Static WCET Analysis: Methods and Tools Timo Lilja April 28, 2011 Timo Lilja () Static WCET Analysis: Methods and Tools April 28, 2011 1 / 23 1 Methods 2 Tools 3 Summary 4 References Timo Lilja () Static
More informationDissecting Execution Traces to Understand Long Timing Effects
Dissecting Execution Traces to Understand Long Timing Effects Christine Rochange and Pascal Sainrat February 2005 Rapport IRIT-2005-6-R Contents 1. Introduction... 5 2. Long timing effects... 5 3. Methodology...
More informationait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS
ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS Christian Ferdinand and Reinhold Heckmann AbsInt Angewandte Informatik GmbH, Stuhlsatzenhausweg 69, D-66123 Saarbrucken, Germany info@absint.com
More informationHW/SW Codesign. WCET Analysis
HW/SW Codesign WCET Analysis 29 November 2017 Andres Gomez gomeza@tik.ee.ethz.ch 1 Outline Today s exercise is one long question with several parts: Basic blocks of a program Static value analysis WCET
More informationWCET-Aware C Compiler: WCC
12 WCET-Aware C Compiler: WCC Jian-Jia Chen (slides are based on Prof. Heiko Falk) TU Dortmund, Informatik 12 2015 年 05 月 05 日 These slides use Microsoft clip arts. Microsoft copyright restrictions apply.
More informationPROGRAM EFFICIENCY & COMPLEXITY ANALYSIS
Lecture 03-04 PROGRAM EFFICIENCY & COMPLEXITY ANALYSIS By: Dr. Zahoor Jan 1 ALGORITHM DEFINITION A finite set of statements that guarantees an optimal solution in finite interval of time 2 GOOD ALGORITHMS?
More informationactual WCET safe BCET estimates safe WCET estimates time possible execution times
Towards Industry Strength Worst-Case Execution Time Analysis Jakob Engblom? Andreas Ermedahl? Mikael Sjödin? Jan Gustavsson y Hans Hansson y April, 1999? Department of Computer Systems, Uppsala University,
More informationLast Time. Response time analysis Blocking terms Priority inversion. Other extensions. And solutions
Last Time Response time analysis Blocking terms Priority inversion And solutions Release jitter Other extensions Today Timing analysis Answers a question we commonly ask: At most long can this code take
More informationExecution Time Analysis for Embedded Real-Time Systems
Execution Time Analysis for Embedded Real-Time Systems Andreas Ermedahl Dept. of Computer Science and Electronics Mälardalen University, SE-721 23 Västerås, Sweden Jakob Engblom Virtutech AB, Norrtullsgatan
More informationTiming Analysis of Parallel Software Using Abstract Execution
Timing Analysis of Parallel Software Using Abstract Execution Björn Lisper School of Innovation, Design, and Engineering Mälardalen University bjorn.lisper@mdh.se 2014-09-10 EACO Workshop 2014 Motivation
More informationTrickle: Automated Infeasible Path
Trickle: Automated Infeasible Path Detection Using All Minimal Unsatisfiable Subsets Bernard Blackham, Mark Liffiton, Gernot Heiser School of Computer Science & Engineering, UNSW Software Systems Research
More informationEfficient Microarchitecture Modeling and Path Analysis for Real-Time Software. Yau-Tsun Steven Li Sharad Malik Andrew Wolfe
Efficient Microarchitecture Modeling and Path Analysis for Real-Time Software Yau-Tsun Steven Li Sharad Malik Andrew Wolfe 1 Introduction Paper examines the problem of determining the bound on the worst
More informationSimplified design flow for embedded systems
Simplified design flow for embedded systems 2005/12/02-1- Reuse of standard software components Knowledge from previous designs to be made available in the form of intellectual property (IP, for SW & HW).
More informationTiming Anomalies and WCET Analysis. Ashrit Triambak
Timing Anomalies and WCET Analysis Ashrit Triambak October 20, 2014 Contents 1 Abstract 2 2 Introduction 2 3 Timing Anomalies 3 3.1 Retated work........................... 4 3.2 Limitations of Previous
More informationApproximation of the Worst-Case Execution Time Using Structural Analysis. Matteo Corti and Thomas Gross Zürich
Approximation of the Worst-Case Execution Time Using Structural Analysis Matteo Corti and Thomas Gross Zürich Goal Worst-case execution time estimation of softreal time Java applications. We focus on semantic
More informationHistory-based Schemes and Implicit Path Enumeration
History-based Schemes and Implicit Path Enumeration Claire Burguière and Christine Rochange Institut de Recherche en Informatique de Toulouse Université Paul Sabatier 6 Toulouse cedex 9, France {burguier,rochange}@irit.fr
More informationEliminating Annotations by Automatic Flow Analysis of Real-Time Programs
Eliminating Annotations by Automatic Flow Analysis of Real-Time Programs Jan Gustafsson Department of Computer Engineering, Mälardalen University Box 883, S-721 23 Västerås, Sweden jangustafsson@mdhse
More informationFIFO Cache Analysis for WCET Estimation: A Quantitative Approach
FIFO Cache Analysis for WCET Estimation: A Quantitative Approach Abstract Although most previous work in cache analysis for WCET estimation assumes the LRU replacement policy, in practise more processors
More informationIn examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured
System Performance Analysis Introduction Performance Means many things to many people Important in any design Critical in real time systems 1 ns can mean the difference between system Doing job expected
More information6.1 Motivation. Fixed Priorities. 6.2 Context Switch. Real-time is about predictability, i.e. guarantees. Real-Time Systems
Real-Time Systems Summer term 2017 6.1 Motivation 6.1 Motivation Real-Time Systems 6 th Chapter Practical Considerations Jafar Akhundov, M.Sc. Professur Betriebssysteme Real-time is about predictability,
More informationSireesha R Basavaraju Embedded Systems Group, Technical University of Kaiserslautern
Sireesha R Basavaraju Embedded Systems Group, Technical University of Kaiserslautern Introduction WCET of program ILP Formulation Requirement SPM allocation for code SPM allocation for data Conclusion
More informationModule 1 Lecture Notes 2. Optimization Problem and Model Formulation
Optimization Methods: Introduction and Basic concepts 1 Module 1 Lecture Notes 2 Optimization Problem and Model Formulation Introduction In the previous lecture we studied the evolution of optimization
More informationPrecise and Efficient FIFO-Replacement Analysis Based on Static Phase Detection
Precise and Efficient FIFO-Replacement Analysis Based on Static Phase Detection Daniel Grund 1 Jan Reineke 2 1 Saarland University, Saarbrücken, Germany 2 University of California, Berkeley, USA Euromicro
More informationFall 2015 CSE Qualifying Exam Core Subjects
Fall 2015 CSE Qualifying Exam Core Subjects September 26, 2015 Architecture 1. Assuming the classical 5-stage pipeline with no forwarding except through the registers and all operations execute in one
More informationVerification of Quantitative Properties of Embedded Systems: Execution Time Analysis. Sanjit A. Seshia UC Berkeley EECS 249 Fall 2009
Verification of Quantitative Properties of Embedded Systems: Execution Time Analysis Sanjit A. Seshia UC Berkeley EECS 249 Fall 2009 Source Material in this lecture is drawn from the following sources:
More informationIntroduction to Embedded Systems
Introduction to Embedded Systems Edward A. Lee & Sanjit A. Seshia UC Berkeley EECS 124 Spring 2008 Copyright 2008, Edward A. Lee & Sanjit A. Seshia, All rights reserved Lecture 19: Execution Time Analysis
More informationCaches in Real-Time Systems. Instruction Cache vs. Data Cache
Caches in Real-Time Systems [Xavier Vera, Bjorn Lisper, Jingling Xue, Data Caches in Multitasking Hard Real- Time Systems, RTSS 2003.] Schedulability Analysis WCET Simple Platforms WCMP (memory performance)
More informationB553 Lecture 12: Global Optimization
B553 Lecture 12: Global Optimization Kris Hauser February 20, 2012 Most of the techniques we have examined in prior lectures only deal with local optimization, so that we can only guarantee convergence
More informationSearch: Advanced Topics and Conclusion
Search: Advanced Topics and Conclusion CPSC 322 Lecture 8 January 20, 2006 Textbook 2.6 Search: Advanced Topics and Conclusion CPSC 322 Lecture 8, Slide 1 Lecture Overview Recap Branch & Bound A Tricks
More informationOn the False Path Problem in Hard Real-Time Programs
On the False Path Problem in Hard Real-Time Programs Peter Altenbernd C-LAB D-33095 Paderborn, Germany peter@cadlab.de, http://www.cadlab.de/peter/ Abstract This paper addresses the important subject of
More informationStatus of the Bound-T WCET Tool
Status of the Bound-T WCET Tool Niklas Holsti and Sami Saarinen Space Systems Finland Ltd Niklas.Holsti@ssf.fi, Sami.Saarinen@ssf.fi Abstract Bound-T is a tool for static WCET analysis from binary executable
More informationCoding guidelines for WCET analysis using measurement-based and static analysis techniques
INSTITUT DE RECHERCHE EN INFORMATIQUE DE TOULOUSE Coding guidelines for WCET analysis using measurement-based and static analysis techniques Armelle Bonenfant, Ian Broster, Clément Ballabriga, Guillem
More informationCLOCK DRIVEN SCHEDULING
CHAPTER 4 By Radu Muresan University of Guelph Page 1 ENGG4420 CHAPTER 4 LECTURE 2 and 3 November 04 09 7:51 PM CLOCK DRIVEN SCHEDULING Clock driven schedulers make their scheduling decisions regarding
More informationCS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 10: Asymptotic Complexity and
CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims Lecture 10: Asymptotic Complexity and What Makes a Good Algorithm? Suppose you have two possible algorithms or
More informationFMCAD 2011 (Austin, Texas) Jonathan Kotker, Dorsa Sadigh, Sanjit Seshia University of California, Berkeley
FMCAD 2011 (Austin, Texas) Jonathan Kotker, Dorsa Sadigh, Sanjit Seshia University of California, Berkeley 1 Cyber-Physical = Computation + Physical Processes Quantitative analysis of programs is crucial:
More informationCaches in Real-Time Systems. Instruction Cache vs. Data Cache
Caches in Real-Time Systems [Xavier Vera, Bjorn Lisper, Jingling Xue, Data Caches in Multitasking Hard Real- Time Systems, RTSS 2003.] Schedulability Analysis WCET Simple Platforms WCMP (memory performance)
More informationAlgorithm must complete after a finite number of instructions have been executed. Each step must be clearly defined, having only one interpretation.
Algorithms 1 algorithm: a finite set of instructions that specify a sequence of operations to be carried out in order to solve a specific problem or class of problems An algorithm must possess the following
More informationJoint Entity Resolution
Joint Entity Resolution Steven Euijong Whang, Hector Garcia-Molina Computer Science Department, Stanford University 353 Serra Mall, Stanford, CA 94305, USA {swhang, hector}@cs.stanford.edu No Institute
More informationFall 2011 Prof. Hyesoon Kim
Fall 2011 Prof. Hyesoon Kim 1 1.. 1 0 2bc 2bc BHR XOR index 2bc 0x809000 PC 2bc McFarling 93 Predictor size: 2^(history length)*2bit predict_func(pc, actual_dir) { index = pc xor BHR taken = 2bit_counters[index]
More informationWriting Parallel Programs; Cost Model.
CSE341T 08/30/2017 Lecture 2 Writing Parallel Programs; Cost Model. Due to physical and economical constraints, a typical machine we can buy now has 4 to 8 computing cores, and soon this number will be
More informationCpt S 223 Course Overview. Cpt S 223, Fall 2007 Copyright: Washington State University
Cpt S 223 Course Overview 1 Course Goals Learn about new/advanced data structures Be able to make design choices on the suitable data structure for different application/problem needs Analyze (objectively)
More informationTransforming Execution-Time Boundable Code into Temporally Predictable Code
Transforming Execution-Time Boundable Code into Temporally Predictable Code Peter Puschner Institut for Technische Informatik. Technische Universitdt Wien, Austria Abstract: Traditional Worst-Case Execution-Time
More informationImproving Timing Analysis for Matlab Simulink/Stateflow
Improving Timing Analysis for Matlab Simulink/Stateflow Lili Tan, Björn Wachter, Philipp Lucas, Reinhard Wilhelm Universität des Saarlandes, Saarbrücken, Germany {lili,bwachter,phlucas,wilhelm}@cs.uni-sb.de
More informationThe Worst-Case Execution Time Problem Overview of Methods and Survey of Tools
The Worst-Case Execution Time Problem Overview of Methods and Survey of Tools Reinhard Wilhelm, Jakob Engblom, Andreas Ermedahl, Niklas Holsti, Stephan Thesing, David Whalley, Guillem Bernat, Christian
More informationTiming Analysis Enhancement for Synchronous Program
Timing Analysis Enhancement for Synchronous Program Extended Abstract Pascal Raymond, Claire Maiza, Catherine Parent-Vigouroux, Fabienne Carrier, and Mihail Asavoae Grenoble-Alpes University Verimag, Centre
More informationProgram Analysis and Constraint Programming
Program Analysis and Constraint Programming Joxan Jaffar National University of Singapore CPAIOR MasterClass, 18-19 May 2015 1 / 41 Program Testing, Verification, Analysis (TVA)... VS... Satifiability/Optimization
More informationThe Automatic Design of Batch Processing Systems
The Automatic Design of Batch Processing Systems by Barry Dwyer, M.A., D.A.E., Grad.Dip. A thesis submitted for the degree of Doctor of Philosophy in the Department of Computer Science University of Adelaide
More informationAdvanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs
Advanced Operations Research Techniques IE316 Quiz 1 Review Dr. Ted Ralphs IE316 Quiz 1 Review 1 Reading for The Quiz Material covered in detail in lecture. 1.1, 1.4, 2.1-2.6, 3.1-3.3, 3.5 Background material
More informationINTRODUCTION TO ALGORITHMS
UNIT- Introduction: Algorithm: The word algorithm came from the name of a Persian mathematician Abu Jafar Mohammed Ibn Musa Al Khowarizmi (ninth century) An algorithm is simply s set of rules used to perform
More informationCSE 417 Branch & Bound (pt 4) Branch & Bound
CSE 417 Branch & Bound (pt 4) Branch & Bound Reminders > HW8 due today > HW9 will be posted tomorrow start early program will be slow, so debugging will be slow... Review of previous lectures > Complexity
More informationr-tubound: Loop Bounds for WCET Analysis (tool paper)
r-tubound: Loop Bounds for WCET Analysis (tool paper) Jens Knoop, Laura Kovács, and Jakob Zwirchmayr TU Vienna Abstract. We describe the structure and the usage of a new software tool, called r-tubound,
More informationAllowing Cycle-Stealing Direct Memory Access I/O. Concurrent with Hard-Real-Time Programs
To appear in: Int. Conf. on Parallel and Distributed Systems, ICPADS'96, June 3-6, 1996, Tokyo Allowing Cycle-Stealing Direct Memory Access I/O Concurrent with Hard-Real-Time Programs Tai-Yi Huang, Jane
More informationChoice of C++ as Language
EECS 281: Data Structures and Algorithms Principles of Algorithm Analysis Choice of C++ as Language All algorithms implemented in this book are in C++, but principles are language independent That is,
More informationReal-Time and Embedded Systems (M) Lecture 19
Low-Level/Embedded Programming Real-Time and Embedded Systems (M) Lecture 19 Lecture Outline Hardware developments Implications on system design Low-level programming Automatic memory management Timing
More informationCSc 520 Principles of Programming Languages. 26 : Control Structures Introduction
CSc 520 Principles of Programming Languages 26 : Control Structures Introduction Christian Collberg Department of Computer Science University of Arizona collberg+520@gmail.com Copyright c 2008 Christian
More informationReduction of Control Hazards (Branch) Stalls with Dynamic Branch Prediction
ISA Support Needed By CPU Reduction of Control Hazards (Branch) Stalls with Dynamic Branch Prediction So far we have dealt with control hazards in instruction pipelines by: 1 2 3 4 Assuming that the branch
More information(Refer Slide Time: 1:27)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 1 Introduction to Data Structures and Algorithms Welcome to data
More informationCMSC 411 Computer Systems Architecture Lecture 13 Instruction Level Parallelism 6 (Limits to ILP & Threading)
CMSC 411 Computer Systems Architecture Lecture 13 Instruction Level Parallelism 6 (Limits to ILP & Threading) Limits to ILP Conflicting studies of amount of ILP Benchmarks» vectorized Fortran FP vs. integer
More informationRecursion. What is Recursion? Simple Example. Repeatedly Reduce the Problem Into Smaller Problems to Solve the Big Problem
Recursion Repeatedly Reduce the Problem Into Smaller Problems to Solve the Big Problem What is Recursion? A problem is decomposed into smaller sub-problems, one or more of which are simpler versions of
More informationLECTURE 18. Control Flow
LECTURE 18 Control Flow CONTROL FLOW Sequencing: the execution of statements and evaluation of expressions is usually in the order in which they appear in a program text. Selection (or alternation): a
More informationAutomatic flow analysis using symbolic execution and path enumeration
Automatic flow analysis using symbolic execution path enumeration D. Kebbal Institut de Recherche en Informatique de Toulouse 8 route de Narbonne - F-62 Toulouse Cedex 9 France Djemai.Kebbal@iut-tarbes.fr
More informationAutotuning. John Cavazos. University of Delaware UNIVERSITY OF DELAWARE COMPUTER & INFORMATION SCIENCES DEPARTMENT
Autotuning John Cavazos University of Delaware What is Autotuning? Searching for the best code parameters, code transformations, system configuration settings, etc. Search can be Quasi-intelligent: genetic
More informationOptimizations - Compilation for Embedded Processors -
12 Optimizations - Compilation for Embedded Processors - Jian-Jia Chen (Slides are based on Peter Marwedel) TU Dortmund Informatik 12 Germany 2015 年 01 月 13 日 These slides use Microsoft clip arts. Microsoft
More informationOutline EEL 5764 Graduate Computer Architecture. Chapter 3 Limits to ILP and Simultaneous Multithreading. Overcoming Limits - What do we need??
Outline EEL 7 Graduate Computer Architecture Chapter 3 Limits to ILP and Simultaneous Multithreading! Limits to ILP! Thread Level Parallelism! Multithreading! Simultaneous Multithreading Ann Gordon-Ross
More informationPerformance analysis basics
Performance analysis basics Christian Iwainsky Iwainsky@rz.rwth-aachen.de 25.3.2010 1 Overview 1. Motivation 2. Performance analysis basics 3. Measurement Techniques 2 Why bother with performance analysis
More information2. Introduction to Software for Embedded Systems
2. Introduction to Software for Embedded Systems Lothar Thiele ETH Zurich, Switzerland 2-1 Contents of Lectures (Lothar Thiele) 1. Introduction to Embedded System Design 2. Software for Embedded Systems
More informationLecture 12: Instruction Execution and Pipelining. William Gropp
Lecture 12: Instruction Execution and Pipelining William Gropp www.cs.illinois.edu/~wgropp Yet More To Consider in Understanding Performance We have implicitly assumed that an operation takes one clock
More informationEE382V: System-on-a-Chip (SoC) Design
EE382V: System-on-a-Chip (SoC) Design Lecture 5 Performance Analysis Sources: Prof. Jacob Abraham, UT Austin Prof. Lothar Thiele, ETH Zurich Prof. Reinhard Wilhelm, Saarland Univ. Andreas Gerstlauer Electrical
More informationSpring 2011 CSE Qualifying Exam Core Subjects. February 26, 2011
Spring 2011 CSE Qualifying Exam Core Subjects February 26, 2011 1 Architecture 1. Consider a memory system that has the following characteristics: bandwidth to lower level memory type line size miss rate
More informationProgramming Embedded Systems
Programming Embedded Systems Lecture 10 An introduction to Lustre Wednesday Feb 15, 2012 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/34 Course topic: programming lang. Which language to
More informationData Structures Lecture 3 Order Notation and Recursion
Data Structures Lecture 3 Order Notation and Recursion 1 Overview The median grade.cpp program from Lecture 2 and background on constructing and using vectors. Algorithm analysis; order notation Recursion
More informationOptimising with the IBM compilers
Optimising with the IBM Overview Introduction Optimisation techniques compiler flags compiler hints code modifications Optimisation topics locals and globals conditionals data types CSE divides and square
More informationVIII. DSP Processors. Digital Signal Processing 8 December 24, 2009
Digital Signal Processing 8 December 24, 2009 VIII. DSP Processors 2007 Syllabus: Introduction to programmable DSPs: Multiplier and Multiplier-Accumulator (MAC), Modified bus structures and memory access
More informationCritical Analysis of Computer Science Methodology: Theory
Critical Analysis of Computer Science Methodology: Theory Björn Lisper Dept. of Computer Science and Engineering Mälardalen University bjorn.lisper@mdh.se http://www.idt.mdh.se/ blr/ March 3, 2004 Critical
More informationPredictable multithreading of embedded applications using PRET-C
Predictable multithreading of embedded applications using PRET-C Sidharta Andalam University of Auckland New Zealand Interactive Presentation March 2010 Andalam (UoA) PRET DATE'10 1 / 20 Layout 1 Introduction
More informationBinding and Storage. COMP 524: Programming Language Concepts Björn B. Brandenburg. The University of North Carolina at Chapel Hill
Binding and Storage Björn B. Brandenburg The University of North Carolina at Chapel Hill Based in part on slides and notes by S. Olivier, A. Block, N. Fisher, F. Hernandez-Campos, and D. Stotts. What s
More informationAlgorithms for Integer Programming
Algorithms for Integer Programming Laura Galli November 9, 2016 Unlike linear programming problems, integer programming problems are very difficult to solve. In fact, no efficient general algorithm is
More informationImplementation of Lexical Analysis. Lecture 4
Implementation of Lexical Analysis Lecture 4 1 Tips on Building Large Systems KISS (Keep It Simple, Stupid!) Don t optimize prematurely Design systems that can be tested It is easier to modify a working
More information4.1.3 [10] < 4.3>Which resources (blocks) produce no output for this instruction? Which resources produce output that is not used?
2.10 [20] < 2.2, 2.5> For each LEGv8 instruction in Exercise 2.9 (copied below), show the value of the opcode (Op), source register (Rn), and target register (Rd or Rt) fields. For the I-type instructions,
More informationSEARCHING, SORTING, AND ASYMPTOTIC COMPLEXITY. Lecture 11 CS2110 Spring 2016
1 SEARCHING, SORTING, AND ASYMPTOTIC COMPLEXITY Lecture 11 CS2110 Spring 2016 Time spent on A2 2 Histogram: [inclusive:exclusive) [0:1): 0 [1:2): 24 ***** [2:3): 84 ***************** [3:4): 123 *************************
More informationThe Worst-Case Execution-Time Problem Overview of Methods and Survey of Tools
The Worst-Case Execution-Time Problem Overview of Methods and Survey of Tools REINHARD WILHELM TULIKA MITRA Saarland University National University of Singapore JAKOB ENGBLOM FRANK MUELLER Virtutech AB
More informationPipelining, Branch Prediction, Trends
Pipelining, Branch Prediction, Trends 10.1-10.4 Topics 10.1 Quantitative Analyses of Program Execution 10.2 From CISC to RISC 10.3 Pipelining the Datapath Branch Prediction, Delay Slots 10.4 Overlapping
More informationCS433 Final Exam. Prof Josep Torrellas. December 12, Time: 2 hours
CS433 Final Exam Prof Josep Torrellas December 12, 2006 Time: 2 hours Name: Instructions: 1. This is a closed-book, closed-notes examination. 2. The Exam has 6 Questions. Please budget your time. 3. Calculators
More informationWriting Temporally Predictable Code
Writing Temporally Predictable Code Peter Puschner Benedikt Huber slides credits: P. Puschner, R. Kirner, B. Huber VU 2.0 182.101 SS 2015 Task Execution Time a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 9 a 8 1. Sequence
More informationLecture 21. Software Pipelining & Prefetching. I. Software Pipelining II. Software Prefetching (of Arrays) III. Prefetching via Software Pipelining
Lecture 21 Software Pipelining & Prefetching I. Software Pipelining II. Software Prefetching (of Arrays) III. Prefetching via Software Pipelining [ALSU 10.5, 11.11.4] Phillip B. Gibbons 15-745: Software
More informationAnalytic Performance Models for Bounded Queueing Systems
Analytic Performance Models for Bounded Queueing Systems Praveen Krishnamurthy Roger D. Chamberlain Praveen Krishnamurthy and Roger D. Chamberlain, Analytic Performance Models for Bounded Queueing Systems,
More informationIntroduction to Computer Systems and Operating Systems
Introduction to Computer Systems and Operating Systems Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Topics Covered 1. Computer History 2. Computer System
More informationArtificial Intelligence
Artificial Intelligence Search Marc Toussaint University of Stuttgart Winter 2015/16 (slides based on Stuart Russell s AI course) Outline Problem formulation & examples Basic search algorithms 2/100 Example:
More informationCISC 662 Graduate Computer Architecture Lecture 13 - Limits of ILP
CISC 662 Graduate Computer Architecture Lecture 13 - Limits of ILP Michela Taufer http://www.cis.udel.edu/~taufer/teaching/cis662f07 Powerpoint Lecture Notes from John Hennessy and David Patterson s: Computer
More informationSource EE 4770 Lecture Transparency. Formatted 16:43, 30 April 1998 from lsli
17-3 17-3 Rate Monotonic Priority Assignment (RMPA) Method for assigning priorities with goal of meeting deadlines. Rate monotonic priority assignment does not guarantee deadlines will be met. A pure periodic
More informationRegister Allocation. CS 502 Lecture 14 11/25/08
Register Allocation CS 502 Lecture 14 11/25/08 Where we are... Reasonably low-level intermediate representation: sequence of simple instructions followed by a transfer of control. a representation of static
More information/ Approximation Algorithms Lecturer: Michael Dinitz Topic: Linear Programming Date: 2/24/15 Scribe: Runze Tang
600.469 / 600.669 Approximation Algorithms Lecturer: Michael Dinitz Topic: Linear Programming Date: 2/24/15 Scribe: Runze Tang 9.1 Linear Programming Suppose we are trying to approximate a minimization
More informationECE473 Computer Architecture and Organization. Pipeline: Control Hazard
Computer Architecture and Organization Pipeline: Control Hazard Lecturer: Prof. Yifeng Zhu Fall, 2015 Portions of these slides are derived from: Dave Patterson UCB Lec 15.1 Pipelining Outline Introduction
More informationSearch: Advanced Topics and Conclusion
Search: Advanced Topics and Conclusion CPSC 322 Lecture 8 January 24, 2007 Textbook 2.6 Search: Advanced Topics and Conclusion CPSC 322 Lecture 8, Slide 1 Lecture Overview 1 Recap 2 Branch & Bound 3 A
More informationLecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning
Lecture 1 Contracts 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,
More informationImprovement: Correlating Predictors
Improvement: Correlating Predictors different branches may be correlated outcome of branch depends on outcome of other branches makes intuitive sense (programs are written this way) e.g., if the first
More information3 INTEGER LINEAR PROGRAMMING
3 INTEGER LINEAR PROGRAMMING PROBLEM DEFINITION Integer linear programming problem (ILP) of the decision variables x 1,..,x n : (ILP) subject to minimize c x j j n j= 1 a ij x j x j 0 x j integer n j=
More informationNotes slides from before lecture. CSE 21, Winter 2017, Section A00. Lecture 4 Notes. Class URL:
Notes slides from before lecture CSE 21, Winter 2017, Section A00 Lecture 4 Notes Class URL: http://vlsicad.ucsd.edu/courses/cse21-w17/ Notes slides from before lecture Notes January 23 (1) HW2 due tomorrow
More information