Presentation is loading. Please wait.

Presentation is loading. Please wait.

Convergence at the Extremes – HPDC meets Tiny Networked Sensors David Culler Computer Science Division U.C. Berkeley Intel Berkeley

Similar presentations


Presentation on theme: "Convergence at the Extremes – HPDC meets Tiny Networked Sensors David Culler Computer Science Division U.C. Berkeley Intel Berkeley"— Presentation transcript:

1 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

2 8/8/2001HPDC2 Characteristics of the Large 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...and Small

3 8/8/2001HPDC3 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! LNA mixer PLL baseband filters I  Q  Low-power Wireless Communication

4 8/8/2001HPDC4 Disaster Management Circulatory Net 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. Habitat Monitoring

5 8/8/2001HPDC5 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

6 8/8/2001HPDC6 Emerging execution model (at large) Application is graph of event-driven components –robust to huge surges in demand read header read header read header exec read header cache check read header cache miss read header write resp

7 8/8/2001HPDC7...and in the small RFM Radio byte Radio Packet UART Serial Packet ADC Tempphoto Active Messages clocks bit byte packet Route map routersensor appln application HW SW Example: ad hoc, multi-hop routing of photo sensor readings

8 8/8/2001HPDC8 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 –provide framework for concurrency and modularity –never poll, never block –interleaving flows, events, energy management –allow appropriate abstractions to emerge

9 8/8/2001HPDC9 Tiny 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 Messaging Component init Power(mode) TX_packet(buf) TX_pack et_done (success ) RX_pack et_done (buffer) Internal State init power(mode) send_msg (addr, type, data) msg_rec(type, data) msg_sen d_done) internal thread Commands Events

10 8/8/2001HPDC10 TinyOS Execution Contexts Hardware Interrupts events commands Tasks

11 8/8/2001HPDC11 TOS Execution Model commands request action –ack/nack at every boundary –call cmd or post task events notify occurrence –HW intrpt at lowest level –may signal events –call cmds –post tasks Tasks provide logical concurrency –preempted by events Migration of HW/SW boundary RFM Radio byte Radio Packet bit byte packet event-driven bit-pump event-driven byte-pump event-driven packet-pump message-event driven active message application comp encode/decode crc data processing

12 8/8/2001HPDC12 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

13 8/8/2001HPDC13 Event-Driven Sensor Access Pattern clock event handler initiates data collection sensor signals data ready event data event handler calls output command common 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); }

14 8/8/2001HPDC14 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 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; }

15 8/8/2001HPDC15 Example: multihop network discovery message handler: –if this is a ‘new’ discover message, »record its source as parent »retransmit with self as source

16 8/8/2001HPDC16 Network Discovery: Radio Cells

17 8/8/2001HPDC17 Network Discovery

18 8/8/2001HPDC18 Multihop Network Topology

19 8/8/2001HPDC19 Storage Breakdown (C Code) 3450 B code 226 B data

20 8/8/2001HPDC20 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!

21 8/8/2001HPDC21 Cory Energy Monitoring/Mgmt System 50 nodes on 4 th floor 5 level ad hoc net 30 sec sampling 250K samples to database over 6 weeks

22 8/8/2001HPDC22 Energy Monitoring Network Arch sensor net GW 802-11 control net GW 20-ton chiller PC scada term modbus UCB power monitor net PC telegraph MYSQL Browser

23 8/8/2001HPDC23 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

24 8/8/2001HPDC24 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

25 8/8/2001HPDC25 and of course Mobility Efficiency Application execution resource estimation Automatically interface networks of tiny devices with grid frameworks

26 8/8/2001HPDC26 To learn more http://www.cs.berkeley.edu/~culler http://tinyos.millennium.berkeley.edu/ http://webs.cs.berkeley.edu/ http://ninja.cs.berkeley.edu/

27 8/8/2001HPDC27

28 8/8/2001HPDC28 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)

29 8/8/2001HPDC29 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

30 8/8/2001HPDC30 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 Byte 2 RFM Bits Byte 2 Byte 1Byte 3 Byte 4 start …


Download ppt "Convergence at the Extremes – HPDC meets Tiny Networked Sensors David Culler Computer Science Division U.C. Berkeley Intel Berkeley"

Similar presentations


Ads by Google