High-Level Optimizations for Low-Level Software John Regehr University of Utah.

Slides:



Advertisements
Similar presentations
SIGBED Viability Review Rajeev Alur October 2006.
Advertisements

IPS: Implementation of Protocol Stacks for Embedded Systems Yan Wang Halmstad University, Sweden The Second Internal EPC Workshop IPS, Halmstad University,
Research Overview John Regehr Fall Part 1 – Embedded Systems.
Performance Analysis of Multiprocessor Architectures
Secure web browsers, malicious hardware, and hardware support for binary translation Sam King.
Online Performance Auditing Using Hot Optimizations Without Getting Burned Jeremy Lau (UCSD, IBM) Matthew Arnold (IBM) Michael Hind (IBM) Brad Calder (UCSD)
Eliminating Stack Overflow by Abstract Interpretation John Regehr Alastair Reid Kirk Webb University of Utah.
Vertically Integrated Analysis and Transformation for Embedded Software John Regehr University of Utah.
1 HOIST: A System for Automatically Deriving Static Analyzers for Embedded Systems John Regehr Alastair Reid School of Computing, University of Utah.
1 Efficient Memory Safety for TinyOS Nathan Cooprider Will Archer Eric Eide David Gay † John Regehr University of Utah School of Computing † Intel Research.
Alex Aiken Chess Kickoff Meeting1 Program Analysis for Embedded Systems Alex Aiken.
Core-based SoCs Testing Julien Pouget Embedded Systems Laboratory (ESLAB) Linköping University Julien Pouget Embedded Systems Laboratory (ESLAB) Linköping.
Embedded Systems Programming Introduction to cross development techniques.
1 TinyOS 2.1: Deploying Memory Safety Nathan Cooprider Yang Chen Will Archer Eric Eide David Gay † John Regehr University of Utah School of Computing †
Analysis of power dissipation in embedded systems using real-time operating systems Dick, R.P. Lakshminarayana, G. Raghunathan, A. Jha, N.K. Dept. of Electr.
Random Testing of Interrupt-Driven Software John Regehr University of Utah.
Lock Inference for Systems Software John Regehr Alastair Reid University of Utah March 17, 2003.
1 Efficient Memory Safety for TinyOS 2.1 Yang Chen Nathan Cooprider Will Archer Eric Eide David Gay † John Regehr University of Utah School of Computing.
The Challenging (and Fun!) World of Computer Engineering Professor Dave Meyer School of Electrical & Computer Engineering Purdue University.
Recap from last time We saw various different issues related to program analysis and program transformations You were not expected to know all of these.
A Static Analysis Framework For Embedded Systems Nathan Cooprider John Regehr's Embedded Systems Group.
Development of Computer - Story of Steve. What is a computer A high intelligence machine A tool – make our life much convenient A very loyal servant Pretty.
Evolving Real-Time Systems using Hierarchical Scheduling and Concurrency Analysis John Regehr Alastair Reid Kirk Webb Michael Parker Jay Lepreau School.
Introduction to Embedded Development. What is an Embedded System ? An embedded system is a computer system embedded in a device with a dedicated function.
OPERATING SYSTEMS AND SYSTEMS SOFTWARE. SYSTEMS SOFTWARE Systems software consists of the programs that control the operations of the computer and its.
Query Processing Presented by Aung S. Win.
Former Students Kingdom of Saudi Arabia Prince Norah Bint Abdul Rahman University College of Computer Since and Information System NET201.
MDK-ARM Microcontroller Development Kit MDK: Microcontroller Development Kit.
Unit VI. Keil µVision3/4 IDE for 8051 Tool for embedded firmware development Steps for using keil.
L29:Lower Power Embedded Architecture Design 성균관대학교 조 준 동 교수,
Course Outline DayContents Day 1 Introduction Motivation, definitions, properties of embedded systems, outline of the current course How to specify embedded.
EMBEDDED SYSTEMS G.V.P.COLLEGE OF ENGINEERING Affiliated to J.N.T.U. By By D.Ramya Deepthi D.Ramya Deepthi & V.Soujanya V.Soujanya.
Invitation to Computer Science 5th Edition
1 TOPIC 1 INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING Topic 1 Introduction to Computer Science and Programming Notes adapted from Introduction to.
Overview of the Course Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at Rice University.
©2003/04 Alessandro Bogliolo Computer systems A quick introduction.
Presentation of Singularity OS Seminar, winter 2005 by Jacob Munk-Stander November 23 rd, 2005.
EET 4250: Chapter 1 Computer Abstractions and Technology Acknowledgements: Some slides and lecture notes for this course adapted from Prof. Mary Jane Irwin.
1 Efficient Type and Memory Safety for Tiny Embedded Systems John Regehr Nathan Cooprider Will Archer Eric Eide University of Utah School of Computing.
Hardware-software Interface Xiaofeng Fan
Chapter 1 Computer Abstractions and Technology. Chapter 1 — Computer Abstractions and Technology — 2 The Computer Revolution Progress in computer technology.
1 EECS 6083 Compiler Theory Based on slides from text web site: Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved.
CS 3500 L Performance l Code Complete 2 – Chapters 25/26 and Chapter 7 of K&P l Compare today to 44 years ago – The Burroughs B1700 – circa 1974.
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2009 Overview of Compilers and JikesRVM John.
Tool Working Group Report John Regehr. 2 Tool WG Agenda Technology transfer: Move software tools from research into practical use for TinyOS 2.x developers.
CML SSDM: Smart Stack Data Management for Software Managed Multicores Jing Lu Ke Bai, and Aviral Shrivastava Compiler Microarchitecture Lab Arizona State.
Power and Control in Networked Sensors E. Jason Riedy and Robert Szewczyk Presenter: Fayun Luo.
Introduction to Code Generation Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at Rice.
An Integrated Design Environment to Evaluate Power/Performance Tradeoffs for Sensor Network Applications Amol Bakshi, Jingzhao Ou, and Viktor K. Prasanna.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
ECE 371 Microprocessor Interfacing
What is a Microprocessor ? A microprocessor consists of an ALU to perform arithmetic and logic manipulations, registers, and a control unit Its has some.
© 2000 Morgan Kaufman Overheads for Computers as Components Host/target design  Use a host system to prepare software for target system: target system.
What Makes Device Driver Development Hard Synthesizing Device Drivers Roumen Kaiabachev and Walid Taha Department of Computer Science, Rice University.
1 Minggu 6, Pertemuan 12 Query Processing Matakuliah: T0206-Sistem Basisdata Tahun: 2005 Versi: 1.0/0.0.
Boris Jabes Program Manager Visual C++ Microsoft Corporation.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Virtual enterprises : challenges, concepts, solutions Marco Alessi Engineering Group SpA, Italy.
Operating systems depend on device drivers to communicate with attached hardware. A device driver is a collection of subroutines written in a low-level.
1 ”MCUDA: An efficient implementation of CUDA kernels for multi-core CPUs” John A. Stratton, Sam S. Stone and Wen-mei W. Hwu Presentation for class TDT24,
Nathan Cooprider and John Regehr University of Utah School of Computing Pluggable Abstract Domains for Analyzing Embedded Software.
Hardware and Software Hardware refers to the physical devices of the computer system e.g. monitor, keyboard, printer, RAM etc. Software is a set of programs,
OPERATING SYSTEMS DESIGN AND IMPLEMENTATION Third Edition ANDREW S
Diamond Box Developed by: Darshan Patel 13bce071 Kirtik Patel 13bce078.
Overview of the Course Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at Rice University.
Prof. Onur Mutlu Carnegie Mellon University Spring 2014, 1/14/2013
Computer Science I CSC 135.
Efficient Memory Safety for TinyOS 2.1
Recent topics in Smart City
Lecture 2 The Art of Concurrency
Presentation transcript:

High-Level Optimizations for Low-Level Software John Regehr University of Utah

Embedded Systems  Most new microprocessors are embedded  Consumer electronics  Vehicle control systems  Medical equipment  Sensor networks

 Compilers can make stupid code run fast  To a limited extent!  This work: Help stupid embedded code run fast and use less memory  Coarse-grain program transformations  Explicit support for tradeoffs

Strategy  Integrate analysis and transformation tools  Not hacking the compiler  Common analysis result formats  Callgraph  Task/thread decomposition  Exclusive modes

Reducing Stack Depth [EMSOFT 2003] C compiler (source) stack analyzer (binary) whole program inliner (source) search heuristic

Result  Averaged over a bunch of TinyOS kernels…  60% reduction in stack requirements compared to no inlining  32% reduction compared to whole- program inlining not aimed at reducing stack depth

Research Challenges  Maintaining invariants  Transformations will invalidate some analysis results  Avoiding bloat in the trusted computing base  Embedded developers have a hard time trusting just the compiler

More info here: