450 likes | 604 Views
Avrora Scalable Sensor Simulation with Precise Timing. Ben L. Titzer UCLA CENS Seminar, February 18, 2005 IPSN 2005. Background - WSNs. Wireless Sensor Networks Microcontroller and battery powered Wireless communication Event-driven programming model Programmed with TinyOS and nesC.
E N D
AvroraScalable Sensor Simulation with Precise Timing Ben L. Titzer UCLA CENS Seminar, February 18, 2005 IPSN 2005
Background - WSNs • Wireless Sensor Networks • Microcontroller and battery powered • Wireless communication • Event-driven programming model • Programmed with TinyOS and nesC Mica2 Dot - based on Atmel AVR microcontroller http://compilers.cs.ucla.edu/avrora
Background - Microcontrollers • Microcontrollers are small • 128KB code, 4KB RAM, 4KB EEPROM • Processor, memory, IO on a single chip • 4 - 16mhz clockspeed • Interrupt-driven programming model • No operating system http://compilers.cs.ucla.edu/avrora
Motivation • Developing sensor software is hard • Constrained resources, bare hardware • Narrow interface for debugging • Delicately timed driver code • Distributed communication • Precise measurements are difficult • Current tools do a poor job • TOSSIM, AtEmu http://compilers.cs.ucla.edu/avrora
The Question • Can we achieve simulation of entire sensor networks? http://compilers.cs.ucla.edu/avrora
The Question • Can we achieve simulation of entire sensor networks? • --[1] And make it precise? http://compilers.cs.ucla.edu/avrora
The Question • Can we achieve simulation of entire sensor networks? • --[1] And make it precise? • --[2] And make it flexible? http://compilers.cs.ucla.edu/avrora
The Question • Can we achieve simulation of entire sensor networks? • --[1] And make it precise? • --[2] And make it flexible? • --[3] And make it fast? http://compilers.cs.ucla.edu/avrora
The Question • Can we achieve simulation of entire sensor networks? • --[1] And make it precise? • --[2] And make it flexible? • --[3] And make it fast? • --[4] And make it scalable? http://compilers.cs.ucla.edu/avrora
The Goals of Avrora • Build a simulator for sensor networks • Cycle accurate • Energy accurate • Simulates sensor devices • Scales to large sensor networks • Allow detailed profiling and instrumentation http://compilers.cs.ucla.edu/avrora
[1] Precision • Can we make it precise? • Instruction-level simulation • Cycle accurate • Accurate device models • Accurate radio / interference model • Well-known http://compilers.cs.ucla.edu/avrora
[2] Flexibility • Can we make the simulator flexible? • Well-designed software architecture • Clear interfaces • Implemented in Java, object-oriented • Instrumentation infrastructure • “Nonintrusive Precision Instrumentation of Microcontroller Software” submitted to LCTES 2005 http://compilers.cs.ucla.edu/avrora
Avrora Software Architecture Platform On-chip devices are controlled by the program through IOReg objects Off-chip devices are controlled through individual pins or through UART and SPI interfaces Time-triggered behavior is accomplished by inserting events into the event queue Microcontroller Simulator Interpreter Event queue interface IOReg interface SPI Ports Timer On-chip devices Pin interface SPI interface Radio LEDs Off-chip devices http://compilers.cs.ucla.edu/avrora
[3] Speed - Event Queue • How can we achieve speed while retaining cycle accuracy? • Naïve implementation scales poorly • Event interface simplifies devices • Better performance • Key to achieving parallelism for sensor network simulations http://compilers.cs.ucla.edu/avrora
4 24 7 12 83 Event Queue Illustration Simulator DeltaQueue Interpreter Timer0Event ProfilingEvent UARTEvent • Interpreter tracks cycles consumed by each instruction • Decrement head of queue and fire event(s) when necessary • Retains cycle accuracy • Allows for sleep optimization http://compilers.cs.ucla.edu/avrora
Single-node Performance http://compilers.cs.ucla.edu/avrora
[4] Scalability • Sensor networks have many nodes (10’s-1000’s) • Software controlled radios • Micro-second level interactions • High-fidelity simulation needed for precise measurements http://compilers.cs.ucla.edu/avrora
The AtEmu Approach • Introduce global clock • Step all nodes one clock cycle at a time • Compute radio waveform (bit level) • Problems: • Slow • Scales poorly - O(n^2) interactions • No parallelism http://compilers.cs.ucla.edu/avrora
Observations • Communication has latency • Nodes only influence each other through communications • Other than that, nodes run in parallel • Hmm…. http://compilers.cs.ucla.edu/avrora
Parallel Simulation • Allow all nodes to run in parallel • One thread per node • Extends single-node simulation to network • Better overall simulation performance • New Problem: • Synchronization necessary to preserve timing and order of communications • Efficient solutions? http://compilers.cs.ucla.edu/avrora
Receive A1 Send-Receive Problem • Nodes send bytes to each other • No node should be allowed to run too far ahead of other nodes that might try to send a byte to it T=k+L T=0 T=k Send A1 Node A Node B Node B should never be more than L cycles ahead of A http://compilers.cs.ucla.edu/avrora
RSSI Sampling Problem • Nodes can sample current radio traffic • Sample cannot be computed until all possible transmitters have passed the time when sampling was begun T=0 T=k+S T=k Send A1 Node A Node B Node B cannot complete sample until node A passes time k http://compilers.cs.ucla.edu/avrora
Reality • RSSI sampled infrequently • Nodes both send and receive • Latency L to send a byte on mica2 • 7372800hz / 2400bps = 3072 cycles • Sampling time S to estimate RSSI • 13 ADC cycles * 64 = 832 cycles http://compilers.cs.ucla.edu/avrora
Two Approaches • Synchronization Intervals • Threads can’t run too far ahead • Period has to be smaller than L • Utilize event queue of each simulator • Wait for Neighbors • Each thread waits for neighbors when necessary (sample or receive) • Requires fast global data structure • Avrora uses both http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B RSSI Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B RSSI Send C1 Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B RSSI Send C1 Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B RSSI Send C1 Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C1 D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B Send C2 RSSI Send C1 Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C1 C1 D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B Send C2 RSSI Send C1 Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C1 C1 D B A E C Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A RSSI Node B Send C2 RSSI Send C1 Node C Node D RSSI Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C1 C1 D B A E C Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A RSSI Node B Send C2 RSSI Send C1 Node C Node D RSSI Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C2 C1 C1 C2+E1 D B A E C Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A RSSI Node B Send C2 RSSI Send C1 Node C Node D Send E1 RSSI Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C2 C1 C1 C2+E1 D B A E C Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A RSSI Node B Send C2 RSSI Send C1 Node C Node D Send E1 RSSI Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C2 C1 C1 C2+E1 D B A E C Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A RSSI Node B Send C2 RSSI Send C1 Node C Node D Send E1 RSSI Node E http://compilers.cs.ucla.edu/avrora
Results - Scalability http://compilers.cs.ucla.edu/avrora
Results - Parallelism http://compilers.cs.ucla.edu/avrora
Measurements • Accurate timing useful for • AEON: power and lifetime estimation • MAC layer tuning • Debugging driver code • Latency estimation for in-network processing • Real-time monitoring http://compilers.cs.ucla.edu/avrora
Channel Utilization http://compilers.cs.ucla.edu/avrora
Partial Preamble Loss • Real radios take time to lock on • First few bits of transmission lost • Subsequent bytes misaligned • MAC software layer must compensate • Latency L between transmission and first reception larger • Admits more concurrency in simulation http://compilers.cs.ucla.edu/avrora
R: A2+A3 R: A2+A3 Adaptive Synchronization • Assume first k [kl, kh] bits lost of first bytes transmitted • Latency for first byte is then: Lf = L + kl * cyclesbit T=0 T=k T=k+L T=k+2L T=k+3L S: A4 S: A1 S: A3 S: A2 Node A Node B kl http://compilers.cs.ucla.edu/avrora
Can we achieve simulation of entire sensor networks? --[1] And make it precise? yes --[2] And make it flexible? yes --[3] And make it fast? yes --[4] And make it scalable? yes Back to the Question http://compilers.cs.ucla.edu/avrora
Future Work • Performance Improvements • Sleeping nodes, M:N thread model • Single-node improvements • Port to other mote platforms • Co-simulation with real network • Implement partial preamble loss • Measure properties of k http://compilers.cs.ucla.edu/avrora
Acknowledgements • NSF: money • Jens Palsberg: patience • Daniel Lee: device implementations • Simon Han: testing, timing validation • Olaf Lansiedel: AEON energy model • CENS: access to a stupidly big Sun V880 machine • Sun: for donating said machine http://compilers.cs.ucla.edu/avrora