Embedded Systems Lecture 11: Worst-Case Execution Time. Björn Franke University of Edinburgh

Size: px
Start display at page:

Download "Embedded Systems Lecture 11: Worst-Case Execution Time. Björn Franke University of Edinburgh"

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 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 information

Hardware-Software Codesign. 9. Worst Case Execution Time Analysis

Hardware-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 information

Static WCET Analysis: Methods and Tools

Static 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 information

Dissecting Execution Traces to Understand Long Timing Effects

Dissecting 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 information

ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS

ait: 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 information

HW/SW Codesign. WCET Analysis

HW/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 information

WCET-Aware C Compiler: WCC

WCET-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 information

PROGRAM EFFICIENCY & COMPLEXITY ANALYSIS

PROGRAM 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 information

actual WCET safe BCET estimates safe WCET estimates time possible execution times

actual 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 information

Last Time. Response time analysis Blocking terms Priority inversion. Other extensions. And solutions

Last 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 information

Execution Time Analysis for Embedded Real-Time Systems

Execution 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 information

Timing Analysis of Parallel Software Using Abstract Execution

Timing 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 information

Trickle: Automated Infeasible Path

Trickle: 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 information

Efficient 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 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 information

Simplified design flow for embedded systems

Simplified 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 information

Timing Anomalies and WCET Analysis. Ashrit Triambak

Timing 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 information

Approximation 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 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 information

History-based Schemes and Implicit Path Enumeration

History-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 information

Eliminating Annotations by Automatic Flow Analysis of Real-Time Programs

Eliminating 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 information

FIFO Cache Analysis for WCET Estimation: A Quantitative Approach

FIFO 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 information

In examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured

In 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 information

6.1 Motivation. Fixed Priorities. 6.2 Context Switch. Real-time is about predictability, i.e. guarantees. Real-Time Systems

6.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 information

Sireesha R Basavaraju Embedded Systems Group, Technical University of Kaiserslautern

Sireesha 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 information

Module 1 Lecture Notes 2. Optimization Problem and Model Formulation

Module 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 information

Precise and Efficient FIFO-Replacement Analysis Based on Static Phase Detection

Precise 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 information

Fall 2015 CSE Qualifying Exam Core Subjects

Fall 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 information

Verification 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 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 information

Introduction to Embedded Systems

Introduction 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 information

Caches in Real-Time Systems. Instruction Cache vs. Data Cache

Caches 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 information

B553 Lecture 12: Global Optimization

B553 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 information

Search: Advanced Topics and Conclusion

Search: 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 information

On the False Path Problem in Hard Real-Time Programs

On 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 information

Status of the Bound-T WCET Tool

Status 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 information

Coding guidelines for WCET analysis using measurement-based and static analysis techniques

Coding 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 information

CLOCK DRIVEN SCHEDULING

CLOCK 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 information

CS/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 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 information

FMCAD 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 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 information

Caches in Real-Time Systems. Instruction Cache vs. Data Cache

Caches 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 information

Algorithm must complete after a finite number of instructions have been executed. Each step must be clearly defined, having only one interpretation.

Algorithm 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 information

Joint Entity Resolution

Joint 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 information

Fall 2011 Prof. Hyesoon Kim

Fall 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 information

Writing Parallel Programs; Cost Model.

Writing 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 information

Cpt S 223 Course Overview. Cpt S 223, Fall 2007 Copyright: Washington State University

Cpt 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 information

Transforming Execution-Time Boundable Code into Temporally Predictable Code

Transforming 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 information

Improving Timing Analysis for Matlab Simulink/Stateflow

Improving 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 information

The 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 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 information

Timing Analysis Enhancement for Synchronous Program

Timing 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 information

Program Analysis and Constraint Programming

Program 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 information

The Automatic Design of Batch Processing Systems

The 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 information

Advanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs

Advanced 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 information

INTRODUCTION TO ALGORITHMS

INTRODUCTION 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 information

CSE 417 Branch & Bound (pt 4) Branch & Bound

CSE 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 information

r-tubound: Loop Bounds for WCET Analysis (tool paper)

r-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 information

Allowing Cycle-Stealing Direct Memory Access I/O. Concurrent with Hard-Real-Time Programs

Allowing 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 information

Choice of C++ as Language

Choice 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 information

Real-Time and Embedded Systems (M) Lecture 19

Real-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 information

CSc 520 Principles of Programming Languages. 26 : Control Structures Introduction

CSc 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 information

Reduction of Control Hazards (Branch) Stalls with Dynamic Branch Prediction

Reduction 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)

(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 information

CMSC 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) 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 information

Recursion. What is Recursion? Simple Example. Repeatedly Reduce the Problem Into Smaller Problems to Solve the Big Problem

Recursion. 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 information

LECTURE 18. Control Flow

LECTURE 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 information

Automatic flow analysis using symbolic execution and path enumeration

Automatic 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 information

Autotuning. John Cavazos. University of Delaware UNIVERSITY OF DELAWARE COMPUTER & INFORMATION SCIENCES DEPARTMENT

Autotuning. 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 information

Optimizations - Compilation for Embedded Processors -

Optimizations - 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 information

Outline EEL 5764 Graduate Computer Architecture. Chapter 3 Limits to ILP and Simultaneous Multithreading. Overcoming Limits - What do we need??

Outline 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 information

Performance analysis basics

Performance 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 information

2. Introduction to Software for Embedded Systems

2. 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 information

Lecture 12: Instruction Execution and Pipelining. William Gropp

Lecture 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 information

EE382V: System-on-a-Chip (SoC) Design

EE382V: 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 information

Spring 2011 CSE Qualifying Exam Core Subjects. February 26, 2011

Spring 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 information

Programming Embedded Systems

Programming 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 information

Data Structures Lecture 3 Order Notation and Recursion

Data 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 information

Optimising with the IBM compilers

Optimising 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 information

VIII. DSP Processors. Digital Signal Processing 8 December 24, 2009

VIII. 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 information

Critical Analysis of Computer Science Methodology: Theory

Critical 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 information

Predictable multithreading of embedded applications using PRET-C

Predictable 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 information

Binding and Storage. COMP 524: Programming Language Concepts Björn B. Brandenburg. The University of North Carolina at Chapel Hill

Binding 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 information

Algorithms for Integer Programming

Algorithms 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 information

Implementation of Lexical Analysis. Lecture 4

Implementation 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 information

4.1.3 [10] < 4.3>Which resources (blocks) produce no output for this instruction? Which resources produce output that is not used?

4.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 information

SEARCHING, SORTING, AND ASYMPTOTIC COMPLEXITY. Lecture 11 CS2110 Spring 2016

SEARCHING, 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 information

The 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 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 information

Pipelining, Branch Prediction, Trends

Pipelining, 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 information

CS433 Final Exam. Prof Josep Torrellas. December 12, Time: 2 hours

CS433 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 information

Writing Temporally Predictable Code

Writing 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 information

Lecture 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 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 information

Analytic Performance Models for Bounded Queueing Systems

Analytic 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 information

Introduction to Computer Systems and Operating Systems

Introduction 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 information

Artificial Intelligence

Artificial 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 information

CISC 662 Graduate Computer Architecture Lecture 13 - Limits of ILP

CISC 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 information

Source EE 4770 Lecture Transparency. Formatted 16:43, 30 April 1998 from lsli

Source 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 information

Register Allocation. CS 502 Lecture 14 11/25/08

Register 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

/ 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 information

ECE473 Computer Architecture and Organization. Pipeline: Control Hazard

ECE473 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 information

Search: Advanced Topics and Conclusion

Search: 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 information

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning

Lecture 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 information

Improvement: Correlating Predictors

Improvement: 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 information

3 INTEGER LINEAR PROGRAMMING

3 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 information

Notes 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: 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