Convergence at the Extremes – HPDC meets Tiny Networked Sensors David Culler Computer Science Division U.C.
Download
Report
Transcript Convergence at the Extremes – HPDC meets Tiny Networked Sensors David Culler Computer Science Division U.C.
Convergence at the Extremes –
HPDC meets Tiny Networked Sensors
David Culler
Computer Science Division
U.C. Berkeley
Intel Research @ Berkeley
www.cs.berkeley.edu/~culler
Characteristics of the Large ...and Small
• Concurrency intensive
– data streams and real-time events, not command-response
•
•
•
•
•
•
Communications-centric
Limited resources (relative to load)
Huge variation in load
Robustness (despite unpredictable change)
Hands-off (no UI)
Dynamic configuration, discovery
– Self-organized and reactive control
• Similar execution model (component-based events)
• Complimentary roles (eyes/ears of the grid)
• Huge space of open problems
8/8/2001
HPDC
2
Emerging Microscopic Devices
• CMOS trend is not just Moore’s law
• Micro Electical Mechanical Systems (MEMS)
– rich array of sensors are becoming cheap and tiny
• Low-power Wireless Communication
I SDQ SD
• Imagine, all sorts of chips
that are connected to the
physical world and to
cyberspace!
8/8/2001
PLL
HPDC
baseband
filters
mixer
LNA
3
What can you do with them?
• Embed many distributed
devices to monitor and
interact with physical world
• Network these devices so
that they can coordinate to
perform higher-level tasks.
=> Requires robust
distributed systems of
hundreds or thousands of
devices.
Disaster Management
Habitat Monitoring
Circulatory Net
8/8/2001
HPDC
4
Getting started in the small
• 1” x 1.5” motherboard
–
–
–
–
–
–
–
ATMEL 4Mhz, 8bit MCU, 512 bytes RAM, 8K pgm flash
900Mhz Radio (RF Monolithics) 10-100 ft. range
ATMEL network pgming assist
Radio Signal strength control and sensing
I2C EPROM (logging)
Base-station ready (UART)
stackable expansion connector
» all ports, i2c, pwr, clock…
• Several sensor boards
–
–
–
–
–
basic protoboard
tiny weather station (temp,light,hum,prs)
vibrations (2d acc, temp, light)
accelerometers, magnetometers,
current, acoustics
8/8/2001
HPDC
5
Emerging execution model (at large)
• Application is graph of event-driven components
– robust to huge surges in demand
read
cache
header
miss
read
cache
header
check
read
read
header
header
read
write
header
resp
read
exec
header
6000
1-w ay Java
max server throughput
(S tasks/sec)
m ax s e r ve r thr oughput
(S tas k s /s e c)
2500
4-w ay Java
2000
1500
1000
500
5000
1-way Java
4000
4-way Java
3000
2000
1000
0
0
1
8/8/2001
10
100
# threads executing in server (T)
1000
10000
1
HPDC
10
100
# tasks in client-server pipeline
1000
10000
6
application
...and in the small
Route map
router
sensor appln
packet
Radio Packet
byte
Radio byte
bit
Active Messages
RFM
8/8/2001
Serial Packet
UART
Temp
photo
SW
HW
ADC
clocks
HPDC
Example: ad hoc, multi-hop
routing of photo sensor
readings
7
A Operating System for Tiny Devices?
• Traditional approaches
– command processing loop (wait request, act, respond)
– monolithic event processing
– bring full thread/socket posix regime to platform
• Alternative
–
–
–
–
8/8/2001
provide framework for concurrency and modularity
never poll, never block
interleaving flows, events, energy management
allow appropriate abstractions to emerge
HPDC
8
Tiny OS Concepts
Messaging Component
– frame per component, shared stack, no
heap
• Very lean multithreading
• Efficient Layering
HPDC
internal thread
Internal
State
TX_pack
et_done
(success
RX_pack
)et_done
(buffer)
• Constrained Storage Model
8/8/2001
msg_rec(type, data)
msg_sen
d_done)
Commands,
Event Handlers
Frame (storage)
Tasks (concurrency)
init
Power(mode)
TX_packet(buf)
–
–
–
–
init
• Component:
Events
send_msg
(addr,
type, data)
– constrained two-level scheduling
model: threads + events
Commands
power(mode)
• Scheduler + Graph of
Components
9
TinyOS Execution Contexts
events
Tasks
commands
Interrupts
Hardware
8/8/2001
HPDC
10
TOS Execution Model
• commands request action
– ack/nack at every boundary
– call cmd or post task
message-event driven
• events notify occurrence
• Tasks provide logical
concurrency
event-driven packet-pump
packet
HW intrpt at lowest level
may signal events
call cmds
post tasks
active message
8/8/2001
crc
Radio byte
encode/decode
event-driven bit-pump
bit
– preempted by events
• Migration of HW/SW
boundary
Radio Packet
event-driven byte-pump
byte
–
–
–
–
data processing
application comp
HPDC
RFM
11
Dynamics of Events and Threads
bit event filtered
at byte layer
bit event =>
end of byte =>
end of packet =>
end of msg send
thread posted to start
send next message
radio takes clock events to detect recv
8/8/2001
HPDC
12
Event-Driven Sensor Access Pattern
char TOS_EVENT(SENS_OUTPUT_CLOCK_EVENT)(){
return TOS_CALL_COMMAND(SENS_GET_DATA)();
}
char TOS_EVENT(SENS_DATA_READY)(int data){
return TOS_CALL_COMMAND(SENS_OUTPUT_OUTPUT)((data >> 2) &0x7);
}
• clock event handler initiates data collection
• sensor signals data ready event
• data event handler calls output command
• common pattern
8/8/2001
HPDC
13
Tiny Active Messages
• Sending
– Declare buffer storage in a
frame
– Request Transmission
– Naming a handler
– Handle Completion signal
• Receiving
– Declare a handler
– Firing a handler
» automatic
» behaves like any other
event
• Buffer management
– strict ownership exchange
– tx: done event => reuse
– rx: must rtn a buffer
8/8/2001
TOS_FRAME_BEGIN(INT_TO_RFM_frame) {
char pending;
TOS_Msg msg;
}
TOS_FRAME_END(INT_TO_RFM_frame);
...
ok = TOS_COMMAND(SUB_SEND_MSG)(TOS_MSG_BCAST,
AM_MSG(INT_READING),
&VAR(msg)))
...
char TOS_EVENT(SUB_MSG_SEND_DONE)(
TOS_MsgPtr sentBuffer){
...}
TOS_MsgPtr
TOS_MSG_EVENT(INT_READING)(TOS_MsgPtr val){
...
return val;
} HPDC
14
Example: multihop network discovery
• message handler:
– if this is a ‘new’ discover message,
» record its source as parent
» retransmit with self as source
8/8/2001
HPDC
15
Network Discovery: Radio Cells
8/8/2001
HPDC
16
Network Discovery
8/8/2001
HPDC
17
Multihop Network Topology
8/8/2001
HPDC
18
Storage Breakdown (C Code)
4000
Multihop Router
3500
AM light
AM Temp
3000
AM
3450 B code
226 B data
Packet
2500
Radio Byte
RFM
2000
Photo
Temp
UART Packet
1500
UART
i2c
1000
Init
TinyOS Scheduler
500
C Runtime
0
8/8/2001
HPDC
19
DARPA-esq demo
• UAV drops nodes along road,
– hot-water pipe insulation for package
•
•
•
•
•
•
•
Nodes self configure into linear network
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!
8/8/2001
HPDC
20
Cory Energy Monitoring/Mgmt System
•
•
•
•
50 nodes on 4th floor
5 level ad hoc net
30 sec sampling
250K samples to database over 6 weeks
8/8/2001
HPDC
21
Energy Monitoring Network Arch
20-ton
chiller
sensor net
GW
control net
GW
GW
802-11
PC
modbus
PC
MYSQL
telegraph
scada term
UCB power
monitor net
8/8/2001
Browser
HPDC
22
Huge Space of Open Problems
• Working across levels of abstractions
–
–
–
–
ex: DC-balanced packet encoding
low-power listening
CSMA MAC for highly correlated traffic
adaptive transmission control when every node is originating
and forwarding traffic
– Packets can carry time and place information
– implicit network discovery
• Scale
– ex: discovery for 1,000 nodes with ~30 per ‘cell’
» probabalistic flooding
• Long term management
– sleep/wakeup when need to be awake to hear
– in situ network programming
– operating within ambient energy envelop
8/8/2001
HPDC
23
Larger Challenges
• Security / Authentication / Privacy
• Programming support for systems of generalized
state machines
– language, debugging, verification
•
•
•
•
Simulation and Testing Environments
Programming the unstructured aggregates
Resilient Aggregators
Understanding how an extreme system is
behaving and what is its envelope
– adversarial simulation
• Constructive foundations of self-organization
8/8/2001
HPDC
24
and of course
•
•
•
•
Mobility
Efficiency
Application execution resource estimation
Automatically interface networks of tiny devices
with grid frameworks
8/8/2001
HPDC
25
To learn more
•
•
•
•
http://www.cs.berkeley.edu/~culler
http://tinyos.millennium.berkeley.edu/
http://webs.cs.berkeley.edu/
http://ninja.cs.berkeley.edu/
8/8/2001
HPDC
26
8/8/2001
HPDC
27
Typical application use of tasks
• event driven data acquisition
• schedule task to do computational portion
char TOS_EVENT(MAGS_DATA_EVENT)(int data){
struct adc_packet* pack = (struct adc_packet*)(VAR(msg).data);
printf("data_event\n");
VAR(reading) = data;
TOS_POST_TASK(FILTER_DATA);
...
• 128 Hz sampling rate
• simple FIR filter
• dynamic software tuning for centering
the magnetometer signal (1208 bytes)
• digital control of analog, not DSP
• ADC (196 bytes)
8/8/2001
HPDC
28
Tasks in low-level operation
• transmit packet
– send command schedules task to calculate CRC
– task initiated byte-level datapump
– events keep the pump flowing
• receive packet
– receive event schedules task to check CRC
– task signals packet ready if OK
• byte-level tx/rx
– task scheduled to encode/decode each complete byte
– must take less time that byte data transfer
• i2c component
– i2c bus has long suspensive operations
– tasks used to create split-phase interface
– events can procede during bus transactions
8/8/2001
HPDC
29
Deadline avoidance
• Pipelines transmission – transmits single byte
while encoding next byte
• Trades 1 byte of buffering for easy deadline
• Separates high level latencies from low level
real-time requirements
• Encoding Task must complete before byte
transmission completes
• Decode must complete before next byte arrives
Encode Task
Bit transmission
Byte 1
start
Byte 2
Byte 1
RFM Bits
8/8/2001
HPDC
Byte 3
Byte 2
…
Byte 4
Byte 3
30