Download presentation
Presentation is loading. Please wait.
Published byBrittney Snow Modified over 9 years ago
1
Research Overview John Regehr Sept 06
2
Part 1 – Embedded Systems
3
Embedded Systems Account for >99% of new microprocessors Consumer electronics Vehicle control systems Medical equipment Etc.
4
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. …
5
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, 802.15.4, 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
6
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
7
Fun Microcontroller Example: ChipCon 2430 8051 processor Old-style 8-bit, originated at Intel 32 MHz, 8 KB RAM, 128 KB Flash 802.15.4 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?
8
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?
9
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
10
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
11
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
12
Part 2 – Research Overview
13
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%
14
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!
15
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
16
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!
17
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; … }
18
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
19
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]
20
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
21
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
22
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.