Title: Smart Dust and TinyOS: Hardware and Software for Network Sensors - the software part
1Smart Dust and TinyOS Hardware and Software for
Network Sensors- the software part
- David E. Culler
- Kris Pister
- University of California, Berkeley
- Intel Research Berkeley
2A New Computer Class Emerging
log (people per computer)
year
3CMOS Trends miniaturization and
more
nearly a thousand 8086s fit in a modern
microproc.
4New Role for Computing
Number Crunching Data Storage
log (people per computer)
productivity interactive
streaming information to/from physical world
year
5Example Habitat Monitoring
gt 1000 ft
6Current State of the Art
7Sensor Network Solution
8Typical Applications
- nodes gtgt people
- sensor/actuator data stream
- unattended
- inaccessible
- prolonged deployment
- energy constrained
- operate in aggregate
- in-network processing necessary
- what they do changes over time
- gt must be programmed in situ
9the Technology-Application Gap
mgmt / diag / debug
algorithm / theory
technology
MEMS
Power
Comm.
uRobots
10Open Experimental Platform to Catalyze a Community
Services
Networking
TinyOS
Rene 00
Dot 01
Mica 02
WeC 99
Small microcontroller - 8 kb code, 512 B data
Simple, low-power radio - 10 kb EEPROM
storage (32 KB) Simple sensors
Demonstrate scale
- Designed for experimentation
- sensor boards
- power boards
NEST open exp. platform 128 KB code, 4 KB data 50
KB radio 512 KB Flash comm accelerators
11An Operating System for Tiny Devices embedded in
the Physical World
12Traditional Systems
- Well established layers of abstractions
- Strict boundaries
- Ample resources
- Independent Applications at endpoints communicate
pt-pt through routers - Well attended
Application
Application
User
System
Network Stack
Transport
Threads
Network
Address Space
Data Link
Files
Physical Layer
Drivers
Routers
13by comparison ...
- Highly Constrained resources
- processing, storage, bandwidth, power
- Applications spread over many small nodes
- self-organizing Collectives
- highly integrated with environment and network
- communication is fundamental
- Concurrency intensive in bursts
- streams of sensor data and network traffic
- Robust
- inaccessible, critical operation
- Unclear where the boundaries belong
- gt Provide a framework for
- Resource-constrained concurrency
- Defining boundaries
- Appln-specific processing
- allow abstractions to emerge
14Tiny OS Concepts
- Scheduler Graph of Components
- constrained two-level scheduling model threads
events - Component
- Commands,
- Event Handlers
- Frame (storage)
- Tasks (concurrency)
- Constrained Storage Model
- frame per component, shared stack, no heap
- Very lean multithreading
- Efficient Layering
Events
Commands
send_msg(addr, type, data)
power(mode)
init
Messaging Component
Internal State
internal thread
TX_packet(buf)
Power(mode)
TX_packet_done (success)
init
RX_packet_done (buffer)
15Application Graph of Components
Route map
router
sensor appln
application
Active Messages
Radio Packet
Serial Packet
packet
Temp
photo
SW
Example ad hoc, multi-hop routing of photo
sensor readings
HW
UART
Radio byte
ADC
byte
3450 B code 226 B data
clocks
RFM
bit
Graph of cooperating state machines on shared
stack
16Example TinyOS study
- UAV drops 10 nodes along road,
- hot-water pipe insulation for package
- Nodes self-configure into linear network
- Synchronize (to 1/32 s)
- Calibrate magnetometers
- Each detects passing vehicle
- Share filtered sensor data with 5 neighbors
- Each calculates estimated direction velocity
- Share results
- As plane passes by,
- joins network
- upload as much of missing dataset as possible
from each node when in range - 7.5 KB of code!
- While servicing the radio in SW every 50 us!
17Vast Networks of Tiny Devices
- Past 25 years of internet technology built up
around powerful dedicated devices that are
carefully configured and very stable - local high-power wireless subnets at the edges
- 1-1 communication between named computers
- Here, ...
- every little node is potentially a router
- work together in application specific ways
- collections of data defined by attributes
- connectivity is highly variable
- must self-organize to manage topology, routing,
etc - and for power savings, radios may be off 99 of
the time
18Directed Diffusion Concept
- Nodes express interest in data with certain
attributes (sinks) - Establishes gradient from sources
Estrin, Govindan, Heideman
19Directed Diffusion Concept
- Nodes express interest in data with certain
attributes (sinks) - Establishes gradient from sources
- Sources generate data
- Useful paths reinforced, others suppressed
- in-network aggregation
- nested queries
20Challenges
- Probabilistic Connectivity
- Contention creates interference
- Mobility
- Discovery
- Flooding does not scale
- Mechanism for reinforcement and suppression
- Naming, operators
21Common Special Case Data Gather
- Collection of nodes take periodic samples
- Stream data towards a root node
- Root announces interest
- depth 0
- Nodes listen to neighbors
- When hear neighbor with smaller depth
- start transmitting data to good neighbor with
smallest depth - set own depth to one greater and include with
data - Data transmission continuously reinforces /
adjusts routes
22Network Discovery Radio Cells
23Network Discovery
0
24Surge Demo
25Local Operations gt Global Behavior
- Packets directed to a parent neighbor
- all other neighbors hear too
- carry additional organizational information
- Each nodes builds estimate of neighborhood
- adjusted with every packet and with time
- Interactively selects parent
- Routes traffic upward
- Collectively they build and maintain a stable
spanning tree - takes energy to maintain structure
node depth child? parent? link goodness
17 1 yes 90 .7
6 3 yes 75 .6
...
26Programming Challenges
- thousands of constrained nodes,
- interacting in real-time with physical world,
- where you cannot touch them,
- and what you want them to do changes with time...
- How do you program the network?
- How do you specify what you want it to do?
27Programmable network fabric
- Architectural approach
- new code image pushed through the network as
packets - assembled and verified in local flash
- second watch-dog processor reprograms main
controller - Viral code approach
- each node runs a tiny virtual machine interpreter
- captures the high-level behavior of application
domain as individual instructions - packets are capsule sequence of high-level
instructions - capsules can forward capsules
- Rich challenges
- security
- energy trade-offs
- DOS
pushc 1 Light is sensor 1 sense Push
light reading pushm Push message
buffer clear Clear message buffer add
Append val to buffer send Send message
using AHR forw Forward capsule halt
28Higher-level Programming?
- Ideally, would specify the desired global
behavior - Compilers would translate this into local
operations - High-Performance Fortran (HPF) analog
- program is sequence of parallel operations on
large matrices - each of the matrices are spread over many
processors on a parallel machine - compiler translates from global view to local
view - local operations message passing
- highly structured and regular
- We need a much richer suite of operations on
unstructured aggregates on irregular, changing
networks
29Sensor Databases a start
- Relational databases rich queries described by
declarative queries over tables of data - select, join, count, sum, ...
- user dictates what should be computed
- query optimizer determines how
- assumes data is presented in complete, tabular
form - First step database operations over streams of
data - incremental query processing
- Big step process the query in the sensor net
- query processing content-based routing?
- energy savings, bandwidth, reliability
SELECT AVG(light) GROUP BY roomNo
30TinyDB Demo
Joe Hellerstein, Sam Madden, Wei Hong, Michael
Franklin
31New Architectures?
Embedded Network Arch.
Typical Wireless Arch. (cellphone)
audio
kbd / display
Sensor / Actuators
Codec
Application Controller
CoProc
Multi-Purpose Controller
DSP
protocol accelerators
Protocol Processor
RF Transceiver
RF Transceiver
- Traditional approach is to partition design into
specialized subsystems with rigid interfaces. - TinyOS allows low and high-level processing to be
interleaved. - rich physical information can be exposed
- specialized hardware to accelerate primitives
- Enables cross-layer optimizations
32Example monitoring and alarm
- Monitoring
- sample every 4 seconds, aggregate over 5 minutes,
transmit statistical summary - 20,000 samples, 300 reports per day per node
- aggregate statistics up the routing tree
- schedule rendezvous, so radio mostly off
- Alarm
- upon detection of dramatic environmental change
- routes alarm through parent at any time
- Where the energy goes
- sleeping
- sensing processing
- communication
- listening for communication to start
- listening for an alarm message
33Cross-Layer optimization
- Sensing Processing
- 15 mw 17 mJ per day
- Sleeping
- 45 uw 5038 mJ per day
- Communination
- hardware accelerators for edge capture and
serialization - 10 kbps gt 50 kbps 2262 gt 452 mJ/day 5x
- Rendezvous 2x time-synchronization
- time-stamp packets - 100 ms
- radio bit edge detection - 2 us
- radio-level timesynch 669 gt 33 mj/day 20x
- Wake-up
- packet listen 108 ms (21 ms) 54,000 gt 25
mj/day 2000x - sample radio channel for energy 50 us
- Combined 2AA lifetime grows from 1 year to 9
years - dominated by sleep energy
receiver-based alternative (Elison)
34A rich growing research agenda
- Localization
- High-fidelity Time-Synch
- Collaborative Processing
- Multi-layered storage hierarchy
- Simulation environments
- Distributed Algorithms
35CENS
36Tiny Stuff
37Example Distributed Control
- Sensor field quietly monitors
- net env. data for health monitoring
- off-line geographic localization
- Event detected locally by small group
- Local broadcast of processed data
- Group leader elected to aggregate
- time sensitive
- Multihop geographic transport to well-define dest
- base-station for processing response
- mobile pursuer node
- Additional time-sensitive cooperative
localization data for pursuer navigation and
planning
Hill, Whitehouse, et al.