embedded systems: supercomputing in a pencil tip frank vahid* department of computer science and...
Post on 21-Dec-2015
227 views
TRANSCRIPT
Embedded Systems: Supercomputing in a Pencil Tip
Frank Vahid*Department of Computer Science and Engineering
University of California, [email protected]
http://www.cs.ucr.edu/~vahid* Also with the Center for Embedded Computer Systems at UC Irvine
This work is being supported by the National Science Foundation
Frank Vahid, UCR Industry Day, 2005 2 of 21
Key Trend: Moore’s Law Higher Performance
Source: Intel
• Transistors per chip double roughly every 18 months
•1980: ~10,000 transistors
•Today: ~1,000,000,000 (1 billion) transistors
• Means higher performance computers
Frank Vahid, UCR Industry Day, 2005 3 of 21
Moore’s Law also means Smaller & Cheaper
Same chip shrinks to half its size every 18 months
Means we can put powerful computers in places never dreamed of before
J. Wiley and Sons, 2006
Frank Vahid, UCR Industry Day, 2005 4 of 21
Supercomputing in a Pencil Tip?
Remember the Cray 1A supercomputer?
Fastest computer in the world in 1976
Cost about $10 million dollars (1976 $)
Roughly 100 MHz 5.5 tons, freon cooled $100,000 per month to
maintain Used for atmospheric
research, physical simulations, etc.
About 1 million transistors
Cray 1A
Frank Vahid, UCR Industry Day, 2005 5 of 21
Today – A Supercomputer in a Pencil Tip
Approaching 1 billion transistors per square centimeter (65 nm)
1 million transistors (Cray 1): 0.1 millimeters2
1 million transistors approaching the size of a speck of dust – literally
And often can use fewer transistors
ARM 32-bit processor only about 100,000 transistors
1 million transistors (Cray 1)
Modern chip –
1 billion transistors
1 cm
1 c
m
Photo: Jason Hillhttp://www.dustnetworks.com/
Frank Vahid, UCR Industry Day, 2005 6 of 21
Tiny Embedded Computers
Smart Dust (UCB) Millimeter scale Includes sensors,
microprocessors, wireless communication, power supply
Costs dollars, even just cents, each
Potential uses Weather/seismological
monitoring on Mars Land/space comm.
networks Chemical/biological
sensors Defense-related sensor
networks Inventory Control Product quality monitoring Smart office spaces
Image: "Smart dust" particles self-assembled
on drops of oil in water. The microscopic particles are
nanostructured flakes of porous
silicon that spontaneously
assemble, orient, sense, and
report on their local
environment. UCSD, 2003.
Frank Vahid, UCR Industry Day, 2005 7 of 21
Tiny Embedded Computers
Smart Pills Electronically tracked and
instructed to deliver medicine to specific location
“Swallowing the pill and the instrument”
iPills – micropump, sensors, and medicine
Pump controls amount of medicine based on body temperature and pH
Other uses of tiny computers?
Who knows 10 years from now?
See http://www.smalltimes.com
http://www.templehealth.org/capsule/april_22_05/
april2205_news03.htm
Frank Vahid, UCR Industry Day, 2005 8 of 21
One Project at UCR – eBlocks
NSF-funded project to empower non-engineers to build useful custom sensor-based systems
Plug together blocks, configure, done! Low-cost mass-produced block types:
Sensors – motion, light, contact, etc. Output – led, electric relay, beeper, etc. Compute – logic, prolong, toggle, etc.
Basic configuration required (dials, switches) Communicate – wireless point-to-point link
Simple example: Garage open at night? Toggle
Electric Relay
Magnetic Contact Switch
Light Sensor
Splitter
Tripper
Motion Sensor
2-Input Logic
Button
LED
LED Need something to indicate garage open at night – use led
LED
2-Input Logic
Configure Logic Block to turn led on when it’s night and when door is open
A’B’
Need a function of light sensor output and contact switch output – use Logic Block
2-Input Logic
Light Sensor
We want to detect night – use light sensor
Light Sensor
Magnetic Contact Switch
We want to know if garage door open – use contact switch
Magnetic Contact Switch
2-Input Logic
A’B’
Plug pieces together and the system is
done!
Frank Vahid, UCR Industry Day, 2005 9 of 21
Building eBlocks Systems
The same building blocks can be used in a variety of applications
2-Input Logic
A’B’
Light Sensor
Magnetic Contact Switch
Garage Door Open At Night Detector
Motion on Property Detector
Motion Sensor
2-Input Logic
A+B
Prolonger
1 2 3 4 5 6 7 8 9
Beeper
Sleepwalker at Night Alarm
Motion Sensor
2-Input Logic
A’B
Light Sensor
Animal Videoing System
Motion Sensor
2-Input Logic
A+B
eBlock to Camera Interface
Light Sensor
Button
LED
BeeperTripper
Prolonger
1 2 3 4 5 6 7 8 9
Frank Vahid, UCR Industry Day, 2005 10 of 21
Design Entry/Simulation
Welcome to the eBlocks Simulator! In this area, you’ll find helpful hints on creating your own designs.
Click and drag an eBlock off of the “Available eBlocks” panel to add it to your design.To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle).A connection can be destroyed by clicking on a connected port.To move a block around the workspace, click and drag its orange area.Blocks can be moved into the trash can to delete them.Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellowCircles indicate that the port is sending an error signal, and gray circles denote an input port.
User specifies and tests block design
Java-based simulator User can choose a
variety of blocks by selecting between pallets
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Green/Red Light
Beeper
Output
Available eBlocks
Advanced ModeHide this panel
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Frank Vahid, UCR Industry Day, 2005 11 of 21
Design Entry/Simulation
Welcome to the eBlocks Simulator! In this area, you’ll find helpful hints on creating your own designs.
Click and drag an eBlock off of the “Available eBlocks” panel to add it to your design.To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle).A connection can be destroyed by clicking on a connected port.To move a block around the workspace, click and drag its orange area.Blocks can be moved into the trash can to delete them.Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellowCircles indicate that the port is sending an error signal, and gray circles denote an input port.
User specifies and tests block design
Java-based simulator User can choose a
variety of blocks by selecting between pallets
Blocks are added to workspace by clicking or dragging blocks from “Available eBlocks” tray
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Available eBlocks
Advanced ModeHide this panel
Green/Red Light
Beeper
Output
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Button
Frank Vahid, UCR Industry Day, 2005 12 of 21
Design Entry/Simulation
Welcome to the eBlocks Simulator! In this area, you’ll find helpful hints on creating your own designs.
Click and drag an eBlock off of the “Available eBlocks” panel to add it to your design.To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle).A connection can be destroyed by clicking on a connected port.To move a block around the workspace, click and drag its orange area.Blocks can be moved into the trash can to delete them.Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellowCircles indicate that the port is sending an error signal, and gray circles denote an input port.
User specifies and tests block design
Java-based simulator User can choose a
variety of blocks by selecting between pallets
Blocks are added to workspace by clicking or dragging blocks from “Available eBlocks” tray
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Button
Light Sensor
Frank Vahid, UCR Industry Day, 2005 13 of 21
Design Entry/Simulation
Welcome to the eBlocks Simulator! In this area, you’ll find helpful hints on creating your own designs.
Click and drag an eBlock off of the “Available eBlocks” panel to add it to your design.To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle).A connection can be destroyed by clicking on a connected port.To move a block around the workspace, click and drag its orange area.Blocks can be moved into the trash can to delete them.Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellowCircles indicate that the port is sending an error signal, and gray circles denote an input port.
User specifies and tests block design
Java-based simulator User can choose a
variety of blocks by selecting between pallets
Blocks are added to workspace by clicking or dragging blocks from “Available eBlocks” tray
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Button
Light Sensor
Available eBlocks
Advanced ModeHide this panel
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Frank Vahid, UCR Industry Day, 2005 14 of 21
Design Entry/Simulation
Welcome to the eBlocks Simulator! In this area, you’ll find helpful hints on creating your own designs.
Click and drag an eBlock off of the “Available eBlocks” panel to add it to your design.To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle).A connection can be destroyed by clicking on a connected port.To move a block around the workspace, click and drag its orange area.Blocks can be moved into the trash can to delete them.Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellowCircles indicate that the port is sending an error signal, and gray circles denote an input port.
User specifies and tests block design
Java-based simulator User can choose a
variety of blocks by selecting between pallets
Blocks are added to workspace by clicking or dragging blocks from “Available eBlocks” tray
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Button
Light Sensor
Available eBlocks
Advanced ModeHide this panel
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Green/Red Light
Beeper
Output
Beeper
Frank Vahid, UCR Industry Day, 2005 15 of 21
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Design Entry/Simulation
Welcome to the eBlocks Simulator! In this area, you’ll find helpful hints on creating your own designs.
Click and drag an eBlock off of the “Available eBlocks” panel to add it to your design.To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle).A connection can be destroyed by clicking on a connected port.To move a block around the workspace, click and drag its orange area.Blocks can be moved into the trash can to delete them.Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellowCircles indicate that the port is sending an error signal, and gray circles denote an input port.
User specifies and tests block design
Java-based simulator User can choose a
variety of blocks by selecting between pallets
Blocks are added to workspace by clicking or dragging blocks from “Available eBlocks” tray
User is able to configure various blocks by clicking on switches
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Button
Light Sensor
Available eBlocks
Advanced ModeHide this panel
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Green/Red Light
Beeper
Output
Beeper
Frank Vahid, UCR Industry Day, 2005 16 of 21
Design Entry/Simulation
Welcome to the eBlocks Simulator! In this area, you’ll find helpful hints on creating your own designs.
Click and drag an eBlock off of the “Available eBlocks” panel to add it to your design.To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle).A connection can be destroyed by clicking on a connected port.To move a block around the workspace, click and drag its orange area.Blocks can be moved into the trash can to delete them.Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellowCircles indicate that the port is sending an error signal, and gray circles denote an input port.
User specifies and tests block design
Java-based simulator User can choose a
variety of blocks by selecting between pallets
Blocks are added to workspace by clicking or dragging blocks from “Available eBlocks” tray
User is able to configure various blocks by clicking on switches
Connections created by drawing lines between blocks
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Button
Light Sensor
Available eBlocks
Advanced ModeHide this panel
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Green/Red Light
Beeper
Output
Beeper
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Frank Vahid, UCR Industry Day, 2005 17 of 21
Design Entry/Simulation
Welcome to the eBlocks Simulator! In this area, you’ll find helpful hints on creating your own designs.
Click and drag an eBlock off of the “Available eBlocks” panel to add it to your design.To connect two blocks, click and drag from an output port (colored circle) to an input port (gray circle).A connection can be destroyed by clicking on a connected port.To move a block around the workspace, click and drag its orange area.Blocks can be moved into the trash can to delete them.Green circles indicate that the port is sending a yes, red circles indicate that the port is sending a no, yellowCircles indicate that the port is sending an error signal, and gray circles denote an input port.
User specifies and tests block design
Java-based simulator User can choose a
variety of blocks by selecting between pallets
Blocks are added to workspace by clicking or dragging blocks from “Available eBlocks” tray
User is able to configure various blocks by clicking on switches
Connections created by drawing lines between blocks
User can create, experiment, test and configure design
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
SensorsLight
Sensor
Available eBlocks
Advanced ModeHide this panel
Green/Red Light
Beeper
Output
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Available eBlocks
Advanced ModeHide this panel
Compute/Communications
Prolonger
1 2 3 4 5 6 7 8 9
seconds
Once Yes, Stays Yes
rst
in
Toggle
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Motion Sensor
Yes/No
Button
Light Sensor
Sensors
Green/Red Light
Beeper
Output
Beeper
Combine
AND OR
yes no
When A is yes no
B is
then the output is yes
Light Sensor
Button
Frank Vahid, UCR Industry Day, 2005 18 of 21
Usability of eBlocks
eBlocks usability experiments >500 participants, 2 years Participants of various
expertise levels None had previous eBlocks
experience
Simple Systems – Sensor blocks directly to output block
Motion Sensor
Beeper
Button LED
Motion Sensor Prolonger
1 2 3 4 5 6 7 8 9
Beeper
2-Input Logic
A’B’
Light Sensor
Magnetic Contact Switch
LED
Intermediate Systems – Systems that require intermediate logic OR state blocks
2-Input Logic
A+B
eBlock to Camera Interface
Light Sensor
Prolonger
1 2 3 4 5 6 7 8 9
Motion Sensor
Complex Systems – Systems that require intermediate logic AND state blocks
0
10
20
30
40
50
60
70
80
90
100
Simple Intermediate Complex Overall
Categories of eBlock Systems
Succ
ess
Rate
Days to weeks required by advanced students to build similar systems without benefit of eBlocks
More than half of the students were able to build these systems in
less than 10 minutes!
Frank Vahid, UCR Industry Day, 2005 19 of 21
Use virtual eBlocks in graphical simulator to describe desired sensor system behavior
Intuitive due to spatial emphasis, not temporal emphasis Automatically compile to code on programmable eBlocks
eBlocks as a Programming Paradigm
Programmable eBlocksPartitions
Frank Vahid, UCR Industry Day, 2005 20 of 21
eBlock Synthesis Tool – Programming
Tool generates C code automatically
#include <pic.h>#include “sci.h”
#include “io.h”
#include “constants.h”
Unsigned char data_val = ERROR;
...
main(void) {
unsigned I, j;
TRISB = 0;
...
}
main(void) {
ORTA = 0xff;
CMCON = 0x07;
TRISA = 0x00;
TRISB = 0x02;
asm("CLRWDT");
...
}
C Code
Download code to block with click of a button
Ordinary users can “write” programs in minutes
Spatial vs. temporally-oriented language 20 high school graduates: eBlocks (spatial)
vs. LEGO Mindstorms (temporal), 6 example systems, 40 minutes to build
Programmable eBlock
TypeAverage Success
Rate
Mindstorms
0%
eBlocks 54%
Frank Vahid, UCR Industry Day, 2005 21 of 21
Low-cost powerful computer chips opening vast new territory Sensors with compute and communication nearly free Smart Dust, Smart Pills, RFID, … What new useful applications will evolve? eBlocks – Enables user-customized systems
Monitor home/office/school/store/etc. Sample application: Monitor activity level and patterns of ageing parent –
must be customized, behaviors highly person-specific Detect unusual behavior Response (phone call, visit, …) Monitor trends (w/ doctor) Early detection and correction of
problems
Other sensor-network projects happening at UCR too Future is wide open!
Collaborators Ph.D students: Susan Lysecky, Ryan Mannion, David Sheldon; Profs. Harry
Hsieh, Walid Najjar, Crista Lopes (UC Irvine)
Conclusions