logging in or signing up ASPLOS 2000 Brainy007 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 237 Category: Education License: All Rights Reserved Like it (0) Dislike it (0) Added: June 18, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript A System Architecture for Networked Sensors: A System Architecture for Networked Sensors Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler, Kris Pister http://tinyos.millennium.berkeley.edu U.C. Berkeley 11/13/2000 Computing in a cubic millimeter:: Computing in a cubic millimeter: Advances in low power wireless communication technology and micro-electromechanical sensors (MEMS) transducers make this possible How do you combine sensing, communication and computation into a complete architecture What are the requirements of the software? How do you evaluate a given design? Ad hoc sensing: Ad hoc sensing Autonomous nodes self assembling into a network of sensors Sensor information propagated to central collection point Intermediate nodes assist distant nodes to reach the base station Connectivity and error rates used to infer distance Base Station Organization: Organization The Vision Hardware of today Software Requirements TinyOS system architecture System evaluation Today’s Hardware: Today’s Hardware Assembled from off-the-shelf components 4Mhz, 8bit MCU (ATMEL) 512 bytes RAM, 8K ROM 900Mhz Radio (RF Monolithics) 10-100 ft. range Temperature Sensor andamp; Light Sensor LED outputs Serial Port 1.5' x 1.5' No dedicated I/O controllers: No dedicated I/O controllers Bit by bit interaction with Radio Software must process bit every 100µs No buffering missed deadline lost data Must time share on granularity of 2x sampling rate Key Software Requirements: Key Software Requirements Capable of fine grained concurrency Small physical size Efficient Resource Utilization Highly Modular TinyOS system architecture: TinyOS system architecture State Machine Programming Model: State Machine Programming Model System composed of state machines Command and event handlers transition a module from one state to another Quick, low overhead, non-blocking state transitions Many independent modules allowed to efficiently share a single execution context Simple State Machine Logic: Simple State Machine Logic bit_cnt++ bit_cnt==8 Send Byte Event bit_cnt = 0 Done No Yes Bit_Arrival_Event_Handler State: {bit_cnt} Don’t you have to do computational work eventually? 'Tasks' used to perform computational work Start TinyOS component model: TinyOS component model Component has: Frame (storage) Tasks (computation) Command and Event Interface Constrained Storage Model allows compile time memory allocation Provides efficient modularity Explicit Interfaces help with robustness Messaging Component Internal State Internal Tasks Commands Events TinyOS – The Software: TinyOS – The Software Scheduler and graph of components constrained two-level scheduling model: tasks + events Provides a component based model abstracting hardware specifics from application programmer Capable of maintaining fine grained concurrency Can interchange system components to get application specific functionality Composition into a Complete Application: Composition into a Complete Application RFM Radio byte Radio Packet i2c Temp photo Messaging Layer clocks bit byte packet Routing Layer sensing application application HW SW ADC messaging routing The Application: The Application The single node application is just another state machine A network of devices is just another collection of state machines Message_Handler(incoming_message){ if(sender_is_better_parent()){ my_parent = sender(); }else if(I_am_parent_of_sender(){ forward_message(my_parent, incoming_message); } } Clock_Event_Handler(){ check_expire(my_parent); if(my_parent != null){ send_data(my_parent); } } Analysis: Analysis Let’s take apart Space, Power and Time Space Breakdown…: Space Breakdown… Code size for ad hoc networking application Scheduler: 144 Bytes code Totals: 3430 Bytes code 226 Bytes data Power Breakdown… : Power Breakdown… But what does this mean? Lithium Battery runs for 35 hours at peak load and years at minimum load! That’s three orders of magnitude difference! A one byte transmission uses the same energy as approx 11000 cycles of computation. Time Breakdown…: Time Breakdown… 50 cycle thread overhead (6 byte copies) 10 cycle event overhead (1.25 byte copes) How well did we meet the requirements?: How well did we meet the requirements? Capable of fine grained concurrency Small physical size Efficient Resource Utilization Highly Modular Conclusions: Conclusions People are working on shrinking sensors and communication, we need to focus on what brings them together TinyOS is a highly modular software environment tailored to the requirements of Network Sensors, stressing efficiency, modularity and concurrency We now have a whole new set of tradeoffs need to investigate Hardware Kits: Hardware Kits Two Board Sandwich Main CPU board with Radio Communication Secondary Sensor Board Allows for expansion and customization Current sensors include: Acceleration, Magnetic Field, Temperature, Pressure, Humidity, Light, and RF Signal Strength Can control RF transmission strength andamp; Sense Reception Strength How to get more information:: How to get more information: http://tinyos.millennium.berkeley.edu Real time operating systems: Real time operating systems QNX context switch = 2400 cycles on x86 pOSEK context switch andgt; 40 µs Creem -andgt; no preemption TOS Component: TOS Component Messaging Component AM_SUB_INIT AM_SUB_POWER AM_SUB_TX_PACKET AM_TX_PACKET _DONE AM_RX_PACKET _DONE Internal State AM_INIT AM_POWER AM_SEND_MSG AM_MSG_REC AM_MSG_SEND_DONE Internal Tasks Commands Events //AM.comp// TOS_MODULE AM; ACCEPTS{ char AM_SEND_MSG(char addr, char type, char* data); void AM_POWER(char mode); char AM_INIT(); }; SIGNALS{ char AM_MSG_REC(char type, char* data); char AM_MSG_SEND_DONE(char success); }; HANDLES{ char AM_TX_PACKET_DONE(char success); char AM_RX_PACKET_DONE(char* packet); }; USES{ char AM_SUB_TX_PACKET(char* data); void AM_SUB_POWER(char mode); char AM_SUB_INIT(); }; Assembling Components: Assembling Components Assemble overall system structurally using either textual tools or structural VHDL Allows for compile time resolution of event handlers Eliminates need for registration mechanisms and dynamic dispatch Automatically allows events to be handled by multiple components. (Power, Init,…) Significantly more flexibility than library based component models Less runtime overhead than OOP Allows for more aggressive in-lining Ad hoc networking: Ad hoc networking Each node needs to determine it’s parent and its depth in the tree Each node broadcasts out andlt;identity, depth, dataandgt; when parent is known At start, Base Station knows it is at depth 0 It send out andlt;Base ID, 0, **andgt; Individuals listen for minimum depth parent 0 Base Easy Migration of the Hardware Software Boundary: Easy Migration of the Hardware Software Boundary TinyOS component models hardware abstractions in software Component model allows migration of software components into hardware Example: Bit level radio processing component could be implemented as specialized FIFO with complex pattern matching Could reduce CPU utilization while sending by more than 50% Sample tradeoffs: Sample tradeoffs Hardware Kits: Hardware Kits Two Board Sandwich Main CPU board with Radio Communication Secondary Sensor Board Allows for expansion and customization Current sensors include: Acceleration, Magnetic Field, Temperature, Pressure, Humidity, Light, and RF Signal Strength Can control RF transmission strength andamp; Sense Reception Strength TOS Component: TOS Component Messaging Component Internal State Internal Tasks Commands Events Energy: Energy It turns out energy is your most valuable resource Traditional notions of resources – memory, CPU, I/O become expenses, not resources All components must support low power modes How well did we meet the requirements?: How well did we meet the requirements? Small physical size Complete applications in 3.5 Kbytes Useful applications developed for 4Mhz, 8-bit CPU Efficiency Demonstrated by our ability to use a single controller to manage multiple RAW I/O sources State Machine programming model allows efficient use of CPU and memory Support multiple simultaneous flows of data though single node 50 cycle thread overhead, 10 cycle event overhead Modular Component model allows efficient composition of task specific applications Model allows multiple applications to run side-by-side What does it take to do this with…: What does it take to do this with… 4 MHz embedded microcontroller 512 bytes of RAM 8K of ROM Radio with 'bit-by-bit' interface Milliamps of power Emerging Themes: Emerging Themes Growth rates… data andgt; storage andgt; CPU andgt; communication andgt; batteries Graph of ^ Future Goals:: Future Goals: Short Term Deploy sensor net for week long trials Target Civil Engineering’s and The Center For the Built Environment’s needs for a real world deployment. Determine algorithms for aggregation and analysis of data inside the network. Support applications where data is 'picked up' by roaming data collection nodes. Long Term Deploy networks of 1000s of nodes Year long, unattended deployments What is performance: What is performance Physical Size? Power consumption? Overhead? Data Throughput? Total network battery life? Measurement accuracy? Data Latency? Reconfigurability? Dynamics of Events and Threads: Dynamics of Events and Threads Message Send Transition Cut from energy slide.: Cut from energy slide. How do you allocate your power? Communication, computation, sensing or actuating What new tricks can you play to conserve it Duty cycle Lower accuracy Data compression, aggregation, filtering State machine example: State machine example n++ You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
ASPLOS 2000 Brainy007 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 237 Category: Education License: All Rights Reserved Like it (0) Dislike it (0) Added: June 18, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript A System Architecture for Networked Sensors: A System Architecture for Networked Sensors Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler, Kris Pister http://tinyos.millennium.berkeley.edu U.C. Berkeley 11/13/2000 Computing in a cubic millimeter:: Computing in a cubic millimeter: Advances in low power wireless communication technology and micro-electromechanical sensors (MEMS) transducers make this possible How do you combine sensing, communication and computation into a complete architecture What are the requirements of the software? How do you evaluate a given design? Ad hoc sensing: Ad hoc sensing Autonomous nodes self assembling into a network of sensors Sensor information propagated to central collection point Intermediate nodes assist distant nodes to reach the base station Connectivity and error rates used to infer distance Base Station Organization: Organization The Vision Hardware of today Software Requirements TinyOS system architecture System evaluation Today’s Hardware: Today’s Hardware Assembled from off-the-shelf components 4Mhz, 8bit MCU (ATMEL) 512 bytes RAM, 8K ROM 900Mhz Radio (RF Monolithics) 10-100 ft. range Temperature Sensor andamp; Light Sensor LED outputs Serial Port 1.5' x 1.5' No dedicated I/O controllers: No dedicated I/O controllers Bit by bit interaction with Radio Software must process bit every 100µs No buffering missed deadline lost data Must time share on granularity of 2x sampling rate Key Software Requirements: Key Software Requirements Capable of fine grained concurrency Small physical size Efficient Resource Utilization Highly Modular TinyOS system architecture: TinyOS system architecture State Machine Programming Model: State Machine Programming Model System composed of state machines Command and event handlers transition a module from one state to another Quick, low overhead, non-blocking state transitions Many independent modules allowed to efficiently share a single execution context Simple State Machine Logic: Simple State Machine Logic bit_cnt++ bit_cnt==8 Send Byte Event bit_cnt = 0 Done No Yes Bit_Arrival_Event_Handler State: {bit_cnt} Don’t you have to do computational work eventually? 'Tasks' used to perform computational work Start TinyOS component model: TinyOS component model Component has: Frame (storage) Tasks (computation) Command and Event Interface Constrained Storage Model allows compile time memory allocation Provides efficient modularity Explicit Interfaces help with robustness Messaging Component Internal State Internal Tasks Commands Events TinyOS – The Software: TinyOS – The Software Scheduler and graph of components constrained two-level scheduling model: tasks + events Provides a component based model abstracting hardware specifics from application programmer Capable of maintaining fine grained concurrency Can interchange system components to get application specific functionality Composition into a Complete Application: Composition into a Complete Application RFM Radio byte Radio Packet i2c Temp photo Messaging Layer clocks bit byte packet Routing Layer sensing application application HW SW ADC messaging routing The Application: The Application The single node application is just another state machine A network of devices is just another collection of state machines Message_Handler(incoming_message){ if(sender_is_better_parent()){ my_parent = sender(); }else if(I_am_parent_of_sender(){ forward_message(my_parent, incoming_message); } } Clock_Event_Handler(){ check_expire(my_parent); if(my_parent != null){ send_data(my_parent); } } Analysis: Analysis Let’s take apart Space, Power and Time Space Breakdown…: Space Breakdown… Code size for ad hoc networking application Scheduler: 144 Bytes code Totals: 3430 Bytes code 226 Bytes data Power Breakdown… : Power Breakdown… But what does this mean? Lithium Battery runs for 35 hours at peak load and years at minimum load! That’s three orders of magnitude difference! A one byte transmission uses the same energy as approx 11000 cycles of computation. Time Breakdown…: Time Breakdown… 50 cycle thread overhead (6 byte copies) 10 cycle event overhead (1.25 byte copes) How well did we meet the requirements?: How well did we meet the requirements? Capable of fine grained concurrency Small physical size Efficient Resource Utilization Highly Modular Conclusions: Conclusions People are working on shrinking sensors and communication, we need to focus on what brings them together TinyOS is a highly modular software environment tailored to the requirements of Network Sensors, stressing efficiency, modularity and concurrency We now have a whole new set of tradeoffs need to investigate Hardware Kits: Hardware Kits Two Board Sandwich Main CPU board with Radio Communication Secondary Sensor Board Allows for expansion and customization Current sensors include: Acceleration, Magnetic Field, Temperature, Pressure, Humidity, Light, and RF Signal Strength Can control RF transmission strength andamp; Sense Reception Strength How to get more information:: How to get more information: http://tinyos.millennium.berkeley.edu Real time operating systems: Real time operating systems QNX context switch = 2400 cycles on x86 pOSEK context switch andgt; 40 µs Creem -andgt; no preemption TOS Component: TOS Component Messaging Component AM_SUB_INIT AM_SUB_POWER AM_SUB_TX_PACKET AM_TX_PACKET _DONE AM_RX_PACKET _DONE Internal State AM_INIT AM_POWER AM_SEND_MSG AM_MSG_REC AM_MSG_SEND_DONE Internal Tasks Commands Events //AM.comp// TOS_MODULE AM; ACCEPTS{ char AM_SEND_MSG(char addr, char type, char* data); void AM_POWER(char mode); char AM_INIT(); }; SIGNALS{ char AM_MSG_REC(char type, char* data); char AM_MSG_SEND_DONE(char success); }; HANDLES{ char AM_TX_PACKET_DONE(char success); char AM_RX_PACKET_DONE(char* packet); }; USES{ char AM_SUB_TX_PACKET(char* data); void AM_SUB_POWER(char mode); char AM_SUB_INIT(); }; Assembling Components: Assembling Components Assemble overall system structurally using either textual tools or structural VHDL Allows for compile time resolution of event handlers Eliminates need for registration mechanisms and dynamic dispatch Automatically allows events to be handled by multiple components. (Power, Init,…) Significantly more flexibility than library based component models Less runtime overhead than OOP Allows for more aggressive in-lining Ad hoc networking: Ad hoc networking Each node needs to determine it’s parent and its depth in the tree Each node broadcasts out andlt;identity, depth, dataandgt; when parent is known At start, Base Station knows it is at depth 0 It send out andlt;Base ID, 0, **andgt; Individuals listen for minimum depth parent 0 Base Easy Migration of the Hardware Software Boundary: Easy Migration of the Hardware Software Boundary TinyOS component models hardware abstractions in software Component model allows migration of software components into hardware Example: Bit level radio processing component could be implemented as specialized FIFO with complex pattern matching Could reduce CPU utilization while sending by more than 50% Sample tradeoffs: Sample tradeoffs Hardware Kits: Hardware Kits Two Board Sandwich Main CPU board with Radio Communication Secondary Sensor Board Allows for expansion and customization Current sensors include: Acceleration, Magnetic Field, Temperature, Pressure, Humidity, Light, and RF Signal Strength Can control RF transmission strength andamp; Sense Reception Strength TOS Component: TOS Component Messaging Component Internal State Internal Tasks Commands Events Energy: Energy It turns out energy is your most valuable resource Traditional notions of resources – memory, CPU, I/O become expenses, not resources All components must support low power modes How well did we meet the requirements?: How well did we meet the requirements? Small physical size Complete applications in 3.5 Kbytes Useful applications developed for 4Mhz, 8-bit CPU Efficiency Demonstrated by our ability to use a single controller to manage multiple RAW I/O sources State Machine programming model allows efficient use of CPU and memory Support multiple simultaneous flows of data though single node 50 cycle thread overhead, 10 cycle event overhead Modular Component model allows efficient composition of task specific applications Model allows multiple applications to run side-by-side What does it take to do this with…: What does it take to do this with… 4 MHz embedded microcontroller 512 bytes of RAM 8K of ROM Radio with 'bit-by-bit' interface Milliamps of power Emerging Themes: Emerging Themes Growth rates… data andgt; storage andgt; CPU andgt; communication andgt; batteries Graph of ^ Future Goals:: Future Goals: Short Term Deploy sensor net for week long trials Target Civil Engineering’s and The Center For the Built Environment’s needs for a real world deployment. Determine algorithms for aggregation and analysis of data inside the network. Support applications where data is 'picked up' by roaming data collection nodes. Long Term Deploy networks of 1000s of nodes Year long, unattended deployments What is performance: What is performance Physical Size? Power consumption? Overhead? Data Throughput? Total network battery life? Measurement accuracy? Data Latency? Reconfigurability? Dynamics of Events and Threads: Dynamics of Events and Threads Message Send Transition Cut from energy slide.: Cut from energy slide. How do you allocate your power? Communication, computation, sensing or actuating What new tricks can you play to conserve it Duty cycle Lower accuracy Data compression, aggregation, filtering State machine example: State machine example n++