Alex Aiken Chess Kickoff Meeting1 Program Analysis for Embedded Systems Alex Aiken.

Slides:



Advertisements
Similar presentations
Pooja ROY, Manmohan MANOHARAN, Weng Fai WONG National University of Singapore ESWEEK (CASES) October 2014 EnVM : Virtual Memory Design for New Memory Architectures.
Advertisements

ECE 454 Computer Systems Programming Compiler and Optimization (I) Ding Yuan ECE Dept., University of Toronto
Counting the bits Analysis of Algorithms Will it run on a larger problem? When will it fail?
1 A Real Problem  What if you wanted to run a program that needs more memory than you have?
ISBN Chapter 3 Describing Syntax and Semantics.
What is memory? Memory is used to store information within a computer, either programs or data. Programs and data cannot be used directly from a disk or.
CS 153 Design of Operating Systems Spring 2015
Vertically Integrated Analysis and Transformation for Embedded Software John Regehr University of Utah.
Multiprocessing Memory Management
1  2004 Morgan Kaufmann Publishers Chapter Six. 2  2004 Morgan Kaufmann Publishers Pipelining The laundry analogy.
The Procedure Abstraction Part I: Basics Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Advanced Compilers CMPSCI 710.
Introduction to Code Generation Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved.
Overview: Memory Memory Organization: General Issues (Hardware) –Objectives in Memory Design –Memory Types –Memory Hierarchies Memory Management (Software.
Describing Syntax and Semantics
Upstream Prerequisites
P51UST: Unix and Software Tools Unix and Software Tools (P51UST) Compilers, Interpreters and Debuggers Ruibin Bai (Room AB326) Division of Computer Science.
Operating Systems Who’s in charge in there?. Types of Software Application Software : Does things we want to do System Software : Does things we need.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
The Procedure Abstraction Part I: Basics Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412.
General Topics Digital Basics Instructions & Programs.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Chapter Two Memory organisation Examples of operating system n Windows 95/98/2000, Windows NT n Unix, Linux, n VAX/VMS IBM MVS n Novell Netware and Windows.
COMP25212: Virtualization Learning Objectives: a)To describe aims of virtualization - in the context of similar aims in other software components b)To.
Test Anxiety Daniel So 11/6/09 …and how to deal with it.
The Procedure Abstraction, Part VI: Inheritance in OOLs Comp 412 Copyright 2010, Keith D. Cooper & Linda Torczon, all rights reserved. Students enrolled.
Processes and OS basics. RHS – SOC 2 OS Basics An Operating System (OS) is essentially an abstraction of a computer As a user or programmer, I do not.
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2009 Register Allocation John Cavazos University.
VIRTUAL MEMORY By Thi Nguyen. Motivation  In early time, the main memory was not large enough to store and execute complex program as higher level languages.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
Virtual Memory Virtual Memory is created to solve difficult memory management problems Data fragmentation in physical memory: Reuses blocks of memory.
Compilers for Embedded Systems Ram, Vasanth, and VJ Instructor : Dr. Edwin Sha Synthesis and Optimization of High-Performance Systems.
Chapter 1 Computer Abstractions and Technology. Chapter 1 — Computer Abstractions and Technology — 2 The Computer Revolution Progress in computer technology.
DATABASE MANAGEMENT SYSTEM ARCHITECTURE
CS 346 – Chapter 2 OS services –OS user interface –System calls –System programs How to make an OS –Implementation –Structure –Virtual machines Commitment.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
1 Some Real Problem  What if a program needs more memory than the machine has? —even if individual programs fit in memory, how can we run multiple programs?
Memory Management Operating Systems CS550. Memory Manager Memory manager - manages allocation and de-allocation of main memory Plays significant impact.
COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE Lecture 19 & 20 Instruction Formats PDP-8,PDP-10,PDP-11 & VAX Course Instructor: Engr. Aisha Danish.
1 Memory Management Chapter 7. 2 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable.
Philosophy 1050: Introduction to Philosophy Week 3: Personal Identity II.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
1 The Instruction Set Architecture September 27 th, 2007 By: Corbin Johnson CS 146.
(Superficial!) Review of Uniprocessor Architecture Parallel Architectures and Related concepts CS 433 Laxmikant Kale University of Illinois at Urbana-Champaign.
The Process From bare bones to finished product. The Steps Programming Debugging Performance Tuning Optimization.
What is it and why do we need it? Chris Ward CS147 10/16/2008.
CS412/413 Introduction to Compilers and Translators April 2, 1999 Lecture 24: Introduction to Optimization.
ECE 259 / CPS 221 Advanced Computer Architecture II (Parallel Computer Architecture) Evaluation – Metrics, Simulation, and Workloads Copyright 2004 Daniel.
COMPUTER ARCHITECTURE & OPERATIONS I Instructor: Yaohang Li.
CHAPTER 3-1, 3-2 MEMORY MANAGEMENT. MEMORY HIERARCHY Small amount of expensive, fast, volatile cache Larger amount of still fast, but slower, volatile.
Memory Management Chapter 5 Advanced Operating System.
Lecture 10 Page 1 CS 111 Online Memory Management CS 111 On-Line MS Program Operating Systems Peter Reiher.
F453 Module 8: Low Level Languages 8.1: Use of Computer Architecture.
Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 0: Historical Overview.
Free Transactions with Rio Vista Landon Cox April 15, 2016.
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
Free Transactions with Rio Vista
From Monoprogramming to multiprogramming with swapping
Interpreted languages Jakub Yaghob
Microprocessor and Assembly Language
Some Real Problem What if a program needs more memory than the machine has? even if individual programs fit in memory, how can we run multiple programs?
Who’s in charge in there?
Introduction I/O devices can be characterized by I/O bus connections
The Procedure Abstraction Part I: Basics
Free Transactions with Rio Vista
CSE451 Virtual Memory Paging Autumn 2002
Lecture 4: Instruction Set Design/Pipelining
(via graph coloring and spilling)
Presentation transcript:

Alex Aiken Chess Kickoff Meeting1 Program Analysis for Embedded Systems Alex Aiken

Alex Aiken Chess Kickoff Meeting2 A Confession I am here under false pretenses I know –little about embedded systems –a bit about programming languages and compilers This talk is all questions, no answers

Alex Aiken Chess Kickoff Meeting3 How is Embedded Software Different from Ordinary Software? It has to work One or more (very) limited resources –Registers –RAM –Bandwidth –Time

Alex Aiken Chess Kickoff Meeting4 Devil’s Advocate So what’s different? All software works with limited resources We have compiler technology to deal with it –Various forms of program analysis

Alex Aiken Chess Kickoff Meeting5 Example: Registers All machines have only a few registers Compiler uses the registers as best it can –Spills the remaining values to main memory –Manages transfers to and from registers The programmer feels she has 1 registers

Alex Aiken Chess Kickoff Meeting6 The Standard Trick This idea generalizes For scarce resource X –Manage X as best we can –If we need more, fall back to secondary strategy –Give the programmer a nice abstraction

Alex Aiken Chess Kickoff Meeting7 The Standard Trick This idea generalizes For scarce resource X –Manage X as best we can –Any correct heuristic is OK, no matter how complex –If we need more, fall back to secondary strategy –Focus on average case behavior –Give the programmer a nice abstraction

Alex Aiken Chess Kickoff Meeting8 Examples of the Standard Trick Compilers –Register allocation –Dynamic memory management OS –Virtual memory –Caches Summary: abstract and hide complexity of resources

Alex Aiken Chess Kickoff Meeting9 What’s Wrong with This? Embedded systems have limited resources Meaning hard limits –Cannot use more time –Cannot use more registers The compiler must either –Produce code within these limits –Report failure The standard trick is anathema to embedded systems –Can’t hide resources

Alex Aiken Chess Kickoff Meeting10 Revisiting the Assumptions Any correct heuristic is OK, no matter how complex –Embedded programmer must understand reasons for failure –Feedback must be relatively straightforward Focus on average case behavior –Embedded compiler must reason about the worst case –Cannot improve average case at expense of worst case Give the programmer a nice abstraction –Still need abstractions, but likely different ones

Alex Aiken Chess Kickoff Meeting11 Questions What are good models for programming with resource constraints? –Made explicit in the programming language How do we combine standard and embedded programming models? –Would like to build on what we know and have How do we give programmers good feedback?