Research Overview John Regehr Sept 06. Part 1 – Embedded Systems.

Slides:



Advertisements
Similar presentations
Microprocessor 8085/8086 Lecturer M A Rahim Khan Computer Engineering and Networks Deptt.
Advertisements

CHAPTER 1 THE 8051 MICROCONTROLLERS. Microcontroller vs. General- Purpose Microprocessor General-purpose microprocessors have ◦ No RAM ◦ No ROM ◦ No I/O.
Microcontroller – PIC – 4 PIC types PIC architecture
Research Overview John Regehr Fall Part 1 – Embedded Systems.
Internet of Things with Intel Edison Presentation Paul Guermonprez Intel Software
Eliminating Stack Overflow by Abstract Interpretation John Regehr Alastair Reid Kirk Webb University of Utah.
Static Analysis of Embedded C Code John Regehr University of Utah Joint work with Nathan Cooprider.
Vertically Integrated Analysis and Transformation for Embedded Software John Regehr University of Utah.
Embedded Systems John Regehr CS 5460, Dec 04. Embedded Systems  Account for >99% of new microprocessors  Consumer electronics  Vehicle control systems.
Basic Stamp II is kinda cool Bytes of EEPROM(non-volatile) - Clock speed of 20 MHz. - Holds 600 lines of code in EEPROM - executes an average of.
Embedded Systems Introduction CS423 Dick Steflik.
Systems Programming Course Gustavo Rodriguez-Rivera.
SM3121 Software Technology Mark Green School of Creative Media.
The 8051 Microcontroller Architecture
Introduction to Arduino Prepared by R. Lamond.  “Arduino is an open-source electronics prototyping platform based on flexible, easy- to-use hardware.
Microcontroller: Introduction
BLDC MOTOR SPEED CONTROL USING EMBEDDED PROCESSOR
Engineering 1040: Mechanisms & Electric Circuits Fall 2011 Introduction to Embedded Systems.
Resources: Hardware and Software Senior Design – Fall 2011.
PIC microcontrollers. PIC microcontrollers come in a wide range of packages from small chips with only 8 pins and 512 words of memory all the way up to.
Atmega32 Architectural Overview
CS-280 Dr. Mark L. Hornick 1 Parts of a GP Computer (Microcomputer) Contains separate Microprocessor chip Memory/Memory controller MB control chips Peripheral.
1 Sensors and Measurements Penderia & Pengukuran ENT 164 Signal Processing Elements Hema C.R. School of Mechatronics Engineering Northern Malaysia University.
66 CHAPTER THE SYSTEM UNIT. © 2005 The McGraw-Hill Companies, Inc. All Rights Reserved. 6-2 Competencies Describe the four basic types of system units.
Description of an “Embedded System” An embedded system is typically a design making use of the power of a small microcontroller. These microcontrollers.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
DLS Digital Controller Tony Dobbing Head of Power Supplies Group.
Arduino. What is it? A open-source software suite and single-board microcontroller. Allows easy and affordable prototyping of microcontroller applications.
MATSEC Past Papers May 2010 Paper 1 Paper 2A. What is the difference between each of the following pairs of items? Syntax Error Caused by forgetting certain.
J. Christiansen, CERN - EP/MIC
Microprocessor-based Systems
COMP 111 Threads and concurrency Sept 28, Tufts University Computer Science2 Who is this guy? I am not Prof. Couch Obvious? Sam Guyer New assistant.
25 April 2000 SEESCOASEESCOA STWW - Programma Evaluation of on-chip debugging techniques Deliverable D5.1 Michiel Ronsse.
ATtiny23131 A SEMINAR ON AVR MICROCONTROLLER ATtiny2313.
Presented by Sadhish Prabhu
Microcontrollers, Microcomputers, and Microprocessors
Embedded Systems Introduction. Microprocessor building blocks 1. ALU (Arithmetic Logic Unit): The ALU is a sequential logic circuitry that is intended.
Submitted by:.  Project overview  Block diagram  Power supply  Microcontroller  MAX232 & DB9 Connector  Relay  Relay driver  Software requirements.
Embedded systems and sensors 1 Part 2 Interaction technology Lennart Herlaar.
HOME AUTOMATION USING PC DONE BY RAJESHKUMAR S SRI HARSHA D.
Components of a typical full-featured microcontroller.
CONTENTS Objective Software &Hardware requirements Block diagram Mems technology Implementation Applications &Advantages Future scope Conclusion References.
MICROCONTROLLER INTERFACING WITH STEPPER MOTOR MADE BY: Pruthvirajsinh Jadeja ( ) COLLEGE:DIET BRANCH:EC.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Microprocessors CSE- 341 Dr. Jia Uddin Assistant Professor, CSE, BRAC University.
Refrigerator Diagnostics Group #14 Jacob Belica Bradley Snyder Darwin Walters.
THE PPT OF THE FINAL YEAR PROJECT OF B-TECH ECE (4-TH YEAR) UNDER THE GUIDANCE OF SWARASATI SAHA,LECTURER OF DEPARTMENT OF ECE IS SUBMITTED BY- ARIJIT.
Programming and Debugging with the Dragon and JTAG Many thanks to Dr. James Hawthorne for evaluating the Dragon system and providing the core content for.
DEPARTMENT OF ELECTRONICS ENGINEERING V-SEMESTER MICROPROCESSOR & MICROCONTROLLER 1 CHAPTER NO microcontroller & programming.
BATCH MEMBERS R.ABHISHEK-08N41A0401 K.DHEERAJ REDDY-08N41A0412 S.RAJENDRA REDDY-08N41A0458 JYOTHISHMATHI COLLEGE OF ENGINEERING AND TECHNOLOGY,TURKAPALLY.
HOME SECURITY USING WIRELESS SENSOR NETWORK UNDER THE ESTEEMED GUIDANCE OF: P.RAMESH D.SIVOM( ) KANMANI RAVI( ) B.SAI RAJSEKHAR( )
Software Architecture of Sensors. Hardware - Sensor Nodes Sensing: sensor --a transducer that converts a physical, chemical, or biological parameter into.
“Atmega32 Architectural Overview” SIGMA INSTITUTE OF ENGINEERING Prepared By: SR.NO NAME OF STUDENT ENROLLMENT 1 Parihar Shipra A Guided By:-
Case Study #1 Microcontroller System. What is a microcontroller? A microcontroller can be considered a self-contained system with a processor, memory.
Introduction to Microcontroller Technology
INTRODUCTION TO WIRELESS SENSOR NETWORKS
IF I ONLY HAD A BRAIN THE MICROCONTROLLER
IoT Milos Hampl.
Atmega32 Architectural Overview
ECE354 Embedded Systems Introduction C Andras Moritz.
RAILWAY TRACK SNAP NOTIFICATION
Chapter 1: The 8051 Microcontrollers
Introduction to Microprocessors and Microcontrollers
Journey: Introduction to Embedded Systems
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
EECE.3170 Microprocessor Systems Design I
Wireless Embedded Systems
CHAPTER 1 THE 8051 MICROCONTROLLERS
Course Code 114 Introduction to Computer Science
Presentation transcript:

Research Overview John Regehr Sept 06

Part 1 – Embedded Systems

Embedded Systems  Account for >99% of new microprocessors  Consumer electronics  Vehicle control systems  Medical equipment  Etc.

Definitions of “Embedded System” 1. A special-purpose computer that interacts with the real world through sensing and/or actuation 2. A computer that you don’t think of as a computer 3. Almost any computer that isn’t a PC 4. …

More definitions  Microprocessor: A regular CPU  Microcontroller: A system on chip that contains extra support for dealing with the real world  Analog to digital and digital to analog converters  Pulse width modulation  Networks: serial, I2C, CAN, USB, , etc…  General-purpose I/O pins  Lots of interrupts  Low-power sleep modes  Voltage / frequency scaling  Temperature / vibration resistance  Incremental cost of an extra feature is near zero

Why Are Microcontrollers Cool?  Because you can easily make almost anything smart  Microcontroller: Under $1  Contains almost everything you need  Board space + support logic: Cheap  GNU compilers: Free  Hardest part: Writing the software  Embarrassment of riches…  But, this is a serious problem

Fun Microcontroller Example: ChipCon 2430  8051 processor  Old-style 8-bit, originated at Intel  32 MHz, 8 KB RAM, 128 KB Flash  radio on-chip  Short-range, low-power wireless  Zigbee is based on this  Low power: 25 mA for CPU + Zigbee receive  Low cost: <$4 in large quantities  This has potential to be big  Cheaply add wireless connectivity to any device  Examples?

What Do Embedded Systems Do?  Five main categories:  Digital signal processing  Control – open loop or closed loop  Networking – wired or wireless  User interfacing – speech, text, graphics, …  Data storage  Most embedded systems do 1-4 of these  Which apply to:  Cell phone?  LinkSys home router?  Cruise control?  iPod?

Issues Cutting Across System Designs  These are external system requirements not directly tied to what a system does  Safety critical  Real-time  Upgradeable  Energy-efficient  Cost sensitive  Highly available or fault-tolerant  Secure  Distributed  Dealing with these is very hard

Problems Creating Software  Significant number of projects fail due to problems creating good software  Fail means…  Project unacceptably delayed  Software has unacceptably low quality  Extreme cases: Spacecraft lost or people killed  Important skills for you to have:  System-level understanding  Debugging  Testing  Critical thinking  Selective paranoia  Don’t underestimate the difficulty of creating good software

Future of Embedded Systems  Future is bright  1.6 B ARM processors sold in 2005  Trends for new systems  Software intensive  Networked  Many new designs will use 32-bit chips  Many new designs will be heterogeneous multiprocessors / NoC  CE is a great major  People skilled in software + control, signals, circuits, analog are extremely valuable  CS and EE curricula both miss the boat on this  Lots of jobs for people like you

Part 2 – Research Overview

A Day in the Life…  Teaching – 20%  Research  Advising students – 15%  Writing papers – 15%  Writing grants – 10%  Travel – 10%  My own research – 10%  Service  Department service – 10%  External service – 10%

My Research Algorithm 1. Find a problem that embedded system programmers have  Another embarrassment of riches 2. Create a software tool that solves the problem  Solution should involve ideas from compilers and operating systems 3. Publish paper describing the solution  As a professor, must do this 4. Sometimes: Release tool as open source  Doing this well is a lot of work  It’s (sometimes) easy and (usually) fun!

Example Tool: Saving RAM  Observation 1: RAM is often the most limited resource on a microcontroller  < 1 KB is common on inexpensive chips  Running out of RAM == hosed  Observation 2: Many programs use RAM very poorly  We ran an experiment showing that many programs use only 1 bit out of every allocated byte, on average

How to Save RAM? 1. Identify variables that use RAM poorly, e.g.  Boolean A uses 1 bit  Enumerated type B with 6 variants uses 3 bits  Pointer C that references a buffer of 16 elements uses 4 bits  Integer D with range -10 to 20 uses 5 bits 2. Perform bit-level packing struct { A_compressed : 1; B_compressed : 3: C_compressed : 4; D_compressed : 5; } compressed_variables;  Challenge: Do this all automatically!

How to Save RAM Cont’d  Machine-generated compression and decompression functions are needed void * decompress_ptr (int compressed) { switch (compressed) { case 0: return (void *)0xabcd; case 1: return (void *)0x1214; case 2: return (void *)0xaa55; … }

How to Save RAM Cont’d  How do we automatically find limited- bitwidth variables?  WRONG – look at the types  E.g. bools, enums, etc.  These can lie! – if they do, compressing will break the system  RIGHT – use dataflow analysis  Analysis is conservative – if it says a variable has limited bit-width, it does

Dataflow Analysis x = y-7 test x z-flag set? w = 10w = 2*x mem[w] = 7 YES NO Z-flag =  If z=1 then x=[0,0] If z=0 then x=[1,4] x = [0,  ] y = [7,11] w = [0,  ] x = [0,4] y,w remains the same w = [10,10] x = [0,0] x = [1,4] w = [2,8] x = [0,4] w = [2,10]

RAM Compression  Difficulties:  Dataflow analysis is difficult when there are interrupts, threads, pointers, etc.  We solved these problems  This transformation will slow down execution  How to deal with this?  This transformation will bloat code size  How to deal with this?  Work is ongoing – no real results yet  Being done by Nathan Cooprider, a PhD student

We also created tools to:  Avoid the need to declare variables as volatile  Detect potential for stack overflow  Predict worst-case execution time  Prevent ALL pointer and array errors in C code  Do automatic stress testing  Optimize much better than GCC  Compile towards application-specific goals

Summary  Embedded systems are fun  Courses to keep in mind  Myers: Embedded Systems  Regehr: Advanced Embedded Systems  Provancher (ME): Advanced Mechatronics  Research is fun  I’m always looking for smart people to work in my group  But generally people who have taken my advanced embedded systems course