Download presentation
Presentation is loading. Please wait.
1
TinyGALS: A Programming Model for Event-Driven Embedded Systems Elaine Cheong UC Berkeley Ptolemy Group / PARC Judy Liebman (LLNL) Jie Liu, Feng Zhao (PARC) Fifth Biennial Ptolemy Miniconference Berkeley, CA, May 9, 2003
2
Introduction Embedded software architecture today Inherited from writing device drivers and optimizing assembly code. Poor scalability. Poor common infrastructure. Poor resource management. Embedded software architecture tomorrow Reusable, reconfigurable components. Easy to use. Fast prototyping. Software synthesis
3
Motivation Application characteristics Ad-hoc networked embedded systems Low-power Unstructured, unsynchronized events Collaborative nodes Local communication (peer-to-peer) Global communication (ad-hoc routing)
4
Example: Sensor Networks Base Sensing motes
5
TinyGALS POT Clock logic CLOCK Get sensor data PHOTO sensing clock Send local data GENERIC_COMM Send BLESS mesg BLESS send Receive packets GENERIC_COMM receiving Update local data init start global_nodedata; global_parent_id; BLESS receive GENERIC_COMM BLESS forward GENERIC_COMM Update Routing Table Routing Table
6
TinyGALS Architecture init Component Module A ___________________ outportA1 Synchronous Communication Component Module B Component inportB1 Asynchronous Communication Scheduler Event Queue start TinyGUYS global name Synchronous Read Asynchronous Write Guarded Variable TinyGUYS local name Globally Asynchronous Locally Synchronous Guarded Yet Synchronous
7
Software Synthesis app_start() app_init() init Module B start Module A Event Queue PARAM_PUT() PARAM_GET() data structures A_out1() B_in1_put() BCOMP1_INPUT() data structures Scheduler
8
Target Tracking Example: Before and After… MAIN TARGET_TRACKING CLOCK GENERIC_COMM BLESS Init Clock Send done LEDS Send Send done Receive channel 8 Send Send done Receive channel 7 Init Start Init Fire event OnOff PHOTO Init Get data Data ready POT Clock logic CLOCK Get sensor data PHOTO sensing clock Send local data GENERIC_COMM Send BLESS mesg BLESS send Receive packets GENERIC_COMM receiving Update local data init start global_nodedata; global_parent_id; BLESS receive GENERIC_COMM BLESS forward GENERIC_COMM Update Routing Table Routing Table OS View (TinyOS)TinyGALS View
9
Memory Usage Code SizeSchedulerTarget counting application TinyOS86 bytes19929 bytes TinyGALS112 bytes24750 bytes
10
Future Work Port to NesC language (TinyOS). Implement as Ptolemy domain? Compare to CI domain. Blocking write: retry when queue is full. Priority scheduling algorithm with queue insertions. Run-time reconfigurability of modules. Heterarchy: distributed multi-tasking.
11
Conclusions TinyGALS provides a globally asynchronous, locally synchronous model of computation for event-driven embedded software. Allows reuse of software components. TinyGUYS provides protected, quick access to global data. Software synthesis tools created to generate communication and scheduling code. http://ptolemy.eecs.berkeley.edu/papers/03/TinyGALS/
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.