New version page

Network Reprogramming at Scale

This preview shows page 1-2-3-22-23-24-44-45-46 out of 46 pages.

View Full Document
View Full Document

End of preview. Want to read all 46 pages?

Upload your study docs or become a GradeBuddy member to access this document.

View Full Document
Unformatted text preview:

Network Reprogramming at ScaleProgramming wireless sensor nodesOrganizationNode-level Representation and System SupportNetwork Programming ConceptDesign considerations for incremental updateDesign - Memory LayoutDesign - Generating updateExperiments – sample applicationsExperiments – test scenariosExperimentsExperiments – ResultsDiscussion and Future WorksDeluge: Dissemination ProtocolDeluge: GoalsDeluge: AssumptionsDeluge: Data RepresentationDeluge: Basic Protocol (1)Deluge: Basic Protocol (2)Deluge: Basic Protocol (3)Deluge: Basic Protocol (4)Deluge: Basic Protocol (5)Deluge: EnhancementsDeluge: Evaluation StrategyDeluge: Simulation SetupDeluge: Time vs. EnergyDeluge: Optimization TestsDeluge: Transmit Data RateDeluge: ResultsDeluge: Spatial MultiplexingDeluge: ResultsDeluge: Sender SelectionDeluge: ResultsDeluge: Sender SuppressionDeluge: ResultsDeluge: Forward Error CorrectionDeluge: ResultsDeluge: Optimization ConclusionsDeluge: Scalability TestsDeluge: Image ScalingDeluge: Density Scaling Deluge: Size ScalingDeluge: Contention AnalysisDeluge: Hardware ResultsDeluge: Future WorkDeluge: Demonstration1Network Reprogramming at ScaleNEST Retreat January, 2004Jonathan HuiJaein JeongGilman Tolle2Programming wireless sensor nodes In-System-Programming (ISP) Code is loaded to a sensor node through parallel or serial cable directly connected to the host. Can be a problem with a large number of sensor nodes. Network Reprogramming Code is sent to multiple nodes through radio.  Add/change functionality for large number of nodes over a wide area. Increased productivity for debugging/testingHost MachineProgramCodeSensor NodeParallelCableParallel programmingHost MachineProgramCodeSensor NodeRadioChannelSensor Node Sensor Node…Network programming3Organization Network reprogramming implementation in TinyOS 1.1 is limited. Node-level Representation and System Support Supporting incremental updates Jaein Jeong Deluge: Data Dissemination Protocol Multihop code delivery Jonathan Hui, Gilman Tolle4Node-level Representation and System SupportJaein Jeong5Network Programming Concept Unlike ISP, in network programming, a sensor node cannot write program code directly to the program memory. Network programming is done in two steps: Code Delivery Program code is saved in external storage (external flash in XNP). Possible retransmission of lost packets. Program Loading The boot loader loads program code to program memory. Program starts after reboot.External FlashL bytesProgram MemoryProgram ImageBase AddressL bytesUsedforOtherPurposesSREC lineBoot loadersection6Design considerations for incremental update Simple node operations The program history is maintained in the host. The host compares two program images in fixed sized blocks and sends a block or sends a “copy” msg as update script. Sensor nodes builds program image based on update script.  Reuse the existing infrastructure A contiguous memory space is allocated for the new and the previous program images Supports non-incremental network programming with minimum efforts.7Design - Memory Layout The program storage (external flash) is organized in two sections: current and previous sections. In each section, a line of the program binary code (SREC file) is stored as a 32-byte record. Boot loader is modified so that it can copy code from any section on external flash.External FlashL bytesProgram MemoryCurrent ImageBase AddressPrevious ImageBase AddressL bytesL bytesUsedforOtherPurposesSREC lineBoot loadersection8Design - Generating update The host generates update script by comparing program images in fixed size blocks. Current and previous image blocks are compared. If the two blocks match, the host sends “copy” command to sensor nodes. Otherwise, the host sends the data bytes for the current program block.B bytesB bytesB bytesB bytesRemainingCurrentProgramImagePreviousProgramImageB bytesB bytes=?A copy commandorThe block fromthe current program imageB = 256 bytes9Experiments – sample applications We used the two sample applications: XnpBlink and XnpCount. simple applications to demonstrate the use of network programming. Application specific code takes less than 10% of the total source code. XnpBlink: 157 lines out of 2049 XnpCount: 198 lines out of 204910Experiments – test scenarios For evaluation, we considered the following cases: Case 1 (Minimum program change) Two copies of XnpBlink only different in the timestamp embedded during compilation time. Case 2 (Small change) Modified a line in XnpBlink source code to change its LED blinking interval. Case 3 (Major change) We sent the difference in the code for XnpCount from XnpBlink application.11Experiments The transmission time depends on number of blocks common between two program images. The following table shows how many lines (1 block = 16 lines) are different between the previous and the current program image for three test scenarios.Case 1 Case 2 Case 3Lines in SREC file (previous image) 1139 1139 1139Lines in SREC file (new image) 1139 1139 1166Different Lines 1 2 1066Common Lines 1138 1137 100Blocks to transmit 1 2 71Blocks to copy on the sensor node 71 70 212Experiments – Results For case 1 and 2, where most blocks between the two programs are the same, the incremental network programming ran much faster than XNP (3.6 times for case 1 and 3.5 for case 2). For case 3, where most blocks are not common, the programming time was close to that of XNP.0.0 20.0 40.0 60.0 80.0 100.0 120.0 140.0 160.0 180.0 200.0XNP(Case1)Incremental (Caes1)XNP(Case2)Incremental (Caes2)XNP(Case3)Incremental (Caes3)Timing(sec)Start/End DownloadDownloadQueryReprogram13Discussion and Future Works Not much of code is shared in binary files. Our approach reduced code propagation traffic for small change of code, but was not effective for more general cases.  Needs better compiler support for maximizing binary code reuse. Separate code blocks for the current and the previous versions. Programming time increases due to overhead of copying blocks. Needs a level of indirection for the program storage.14Deluge: Dissemination ProtocolJonathan HuiGilman Tolle15Deluge: Goals Create a multi-hop dissemination protocol for program data Program size (128k) >> RAM (4k) 100% Reliability required Minimize energy


Loading Unlocking...
Login

Join to view Network Reprogramming at Scale and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Network Reprogramming at Scale and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?