260 likes | 273 Views
This article discusses the design principles for extremely diverse system architectures, the use of tiny devices as the "eyes and ears" of ubiquitous computing, and the emergence of microscopic devices such as MEMS. It also explores the approach of TinyOS, a low-power wireless communication platform for tiny devices, and showcases examples of its applications and networked sensor systems.
E N D
Endeavouring to Build Networksof Tiny Devices David Culler Computer Science Division U.C. Berkeley www.cs.berkeley.edu/~culler
Background • Q1: design principles for Extremely Diverse system architectures? • immense services (Millennium, Ninja) • tiny devices • appln as graph of state machines • concurrency intensive, variation in load, robustness • reactive • tiny devices became “eyes and ears” of ubiquitous computing • become source of control as well TinyOS
Low-power Wireless Communication I SD Q SD baseband PLL filters mixer LNA 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 • Imagine, all sorts of chips that are connected to the physical world and to cyberspace! TinyOS
Current One-Inch Networked Sensor • 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 • stackable expansion connector • all ports, i2c, pwr, clock… • Several sensor boards • basic protoboard • tiny weather station (temp,light,hum,press) • vibrations (2d acc, temp, LIGHT) • accelerometers • magnetometers TinyOS
TinyOS Approach • Stylized programming model with extensive static information • Program = graph of TOS components • TOS component = command/event interface + behavior • Rich expression of concurrency • Events propagate across many components • Tasks provide internal concurrency • Regimented storage management • Very simple implementation • Broad range of alternative execution mechanisms • For More see http://tinyos.millennium.berkeley.edu TinyOS
msg_rec(type, data) msg_send_done) Tiny OS Concurrency Framework • 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 thread Internal State TX_packet(buf) Power(mode) TX_packet_done (success) init RX_packet_done (buffer) TinyOS
Application = Component Graph Route map router sensor appln application Active Messages Serial Packet Radio Packet packet Temp photo SW HW UART Radio byte ADC byte Example: ad hoc, multi-hop routing of photo sensor readings clocks RFM bit TinyOS
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! TinyOS
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 TinyOS
20-ton chiller GW GW GW MYSQL Energy Monitoring Network Arch sensor net control net 802-11 telegraph PC PC modbus scada term UCB power monitor net Browser TinyOS
Directions • Systems technology: long-term management • integrate new MAC and rate control (Alec Woo) • in situ network programming (Rob Szewczyk) • node query scheme (Sam Madden) • implicit discovery (Phil Levi) • signal strength adaptation • telegraph • Power management • Battery monitoring and adaptation • current and voltage sensors • non-intrusive load monitoring • integrate with broader sensor net • alert response TinyOS
Emerging “de facto” tiny system • Feb. bootcamp • 40 people • UCB, UCLA, USC, Cornell, Rutgers, Wash., • LANL, Bosch, Accenture, Intel, crossbow • Several groups actively developing around tinyOS on “rene” node • Concurrency framework has held up well. • Next generation(s) selected as DARPA networked embedded system tech (NEST) open platform • Smaller building blocks for ubicomp TinyOS
Challenge Application composition services coordination services synthesis services SW platform HW platform sensors processing communication storage actuators NEST Program Structure – evolution Composition Open Platform initial low-power wireless Open Platform 100+ tiny devices for alg. dev. year 3 2 1 0 TinyOS
HW Platforms • Current: SmartDust MacroMOTE => Renes => • Phase 1: 6 months => algorithm studies • Mote++, MEMS sensors, TinyOS • more microcontroller • atmega163 => 2x storage • atmega103 => 128K flash, 4k ram • TIMSP430 => 60k flash, 2k ram, HW *, ... • many subtle factors • RFM with “ASH” 100 kb/s • too early for bluetooth • 100+ nodes for < 20K$ • Phase 2: 30 months => composition of alg’s • ARM-power, Bluetooth physical • integrated system • OS?? TinyOS
SW Platform • Tiny event-driven component OS • allows NEST abstractions to emerge and each level • Language-based robustness and optimization • eg., critical path and jitter analysis • inter-component transformations • narrow interface with simple IDL • Tiny networking • power-aware appln-specific ad hoc routing, MAC, transmission control • in network aggregation • in situ programming • Algorithm building blocks • Local multicast • event-driven reception • intelligent pruning of retransmission • non-blocking execution TinyOS
Programming Environment & Tools • Provide support for: event-driven programming, composition, debugging & visualization in the small (node) and large (collection) • Emulation => simulation => real devices • identical APIs, range of visibility, and reality • Debugging and visualization tools • geared toward many interacting nodes & event-centric development • Application-Specific Virtual Machines • analogous to query-plan vs query-processing engine • FSM-based programming abstractions • Macrocomputing TinyOS
FSM-based Software Approach • Fundamentally, we are not computing, we are moving data intelligently • threads are a computing abstraction, FSMs are a protocol abstraction • use FSMs as the base then add some computing • natural high concurrency • natural handling of events, exceptions, and the environment • tools for understanding stability (e.g markov models, game theory, control theory) • composition is separate from creation • late bind the callee in a separate step called "composition" TinyOS
Macrocomputing • Program a large, unstructured collection in aggregate • Single program, multiple data • but errors and probabilistic behavior • unstructured collection • “global” variables that reflect collections • need to handle error propagation • scatter/gather for collections? • online query processing? • multi-WEbS abstractions TinyOS
Security • Individual nodes may be compromised, but hard to get large fraction of nodes. • Attacks introduce another form of unreliability in the data. • Lightweight encryption/decryption, authentication. • Novel protocols to support aggregate operations, eg., broadcast, w/o shared root key • Resilient aggregation TinyOS
Resilient Aggregators • operate in the face of faulty nodes, intermittent communication, and security attacks • ex max is not resilient, nine-tile is. • develop algebra of resilient aggregators • Random sampling as implementation • foundation for security model • easy to attack a node • hard to attack large fraction of the nodes TinyOS
Simulation • Large-scale NEST simulator • very large number of small nodes • integrated with event-driven OS design for efficiency • checkpointing • Adversarial simulation mode • Detecting “composition” bugs and scaling bugs • Target failure: search for bugs • test race conditions automatically • pick orders that consume resources • more efficient than random-walk testing • simulator is an adversary… • guided search • Hybrid simulator/testbed TinyOS
Test-bed Kits • in situ programming/upgrade and debugging • synchronized logging (trace extraction) • passive monitoring • data collection TinyOS
Challenge Applications active markers obstacles • sequence of applications • interactive spaces • flock of model cars • Multi-agent pursuit-evasion • also environmental monitoring • stunt ranch “whole canopy ecophysiology” with UCLA UAVs evader TinyOS
Closed-loop at many levels • Within a node • behavior adapts to available energy, physical measurements, network condition • Across the network • discovery and routing, transmission rate and schedule • adopting roles, • Within the middleware components • synchronization, scheduling • On the vehicle • direction, stability, probabalistic map building • Among the vehicles • competitive, hidden markov decision processes TinyOS
New Collaboration • Intel Berkeley LabletExtreme Interconnected Systems (XIS) lab TinyOS