embedded systems: supercomputing in a pencil tip frank vahid* department of computer science and...

21
Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside [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

Post on 21-Dec-2015

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 2: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 3: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 4: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 5: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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/

Page 6: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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.

Page 7: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 8: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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!

Page 9: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 10: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 11: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 12: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 13: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 14: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 15: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 16: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 17: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 18: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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!

Page 19: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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

Page 20: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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%

Page 21: Embedded Systems: Supercomputing in a Pencil Tip Frank Vahid* Department of Computer Science and Engineering University of California, Riverside vahid@cs.ucr.edu

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