1 / 11

TinyGALS: A Programming Model for Event-Driven Embedded Systems

TinyGALS: A Programming Model for Event-Driven Embedded Systems. Elaine Cheong, Judy Liebman University of California, Berkeley Jie Liu, Feng Zhao Palo Alto Research Center. ACM Symposium on Applied Computing Melbourne, FL, March 9-12, 2003. Embedded software architecture tomorrow

duc
Download Presentation

TinyGALS: A Programming Model for Event-Driven Embedded Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TinyGALS: A Programming Model for Event-Driven Embedded Systems Elaine Cheong, Judy Liebman University of California, Berkeley Jie Liu, Feng Zhao Palo Alto Research Center ACM Symposium on Applied Computing Melbourne, FL, March 9-12, 2003

  2. Embedded software architecture tomorrow • Reusable, reconfigurable components. • Easy to use. • Fast prototyping. • Software synthesis Introduction • Embedded software architecture today • Inherited from writing device drivers and optimizing assembly code. • Poor scalability. • Poor common infrastructure. • Poor resource management.

  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 Sensing motes Base

  5. global_nodedata; global_parent_id; sensing clock Get sensor data Send local data init init init POT PHOTO GENERIC_COMM Clock logic receiving start CLOCK Receive packets Update local data init Update Routing Table GENERIC_COMM BLESS send BLESS forward Send BLESS mesg Routing Table GENERIC_COMM BLESS receive GENERIC_COMM TinyGALS

  6. Scheduler Guarded Variable Asynchronous Write Synchronous Read Event Queue Module A Module B TinyGUYS local name init Component ___________________ ___________________ ___________________ ___________________ ___________________ ___________________ Component Component start outportA1 inportB1 Synchronous Communication Asynchronous Communication TinyGALS Architecture Guarded Yet Synchronous TinyGUYS global name Globally Asynchronous Locally Synchronous

  7. PARAM_GET() data structures data structures Event Queue PARAM_PUT() Module A Module B app_init() init start app_start() A_out1() BCOMP1_INPUT() B_in1_put() Software Synthesis Scheduler

  8. global_nodedata; global_parent_id; sensing MAIN clock Get sensor data Send local data Init init Init Start init init POT PHOTO GENERIC_COMM TARGET_TRACKING Clock logic Send done Init Init Init Clock Send receiving Send Get data Fire event Send done Data ready start BLESS Receive channel 8 CLOCK Receive packets Update local data init Send On Off Update Routing Table Send done GENERIC_COMM LEDS CLOCK PHOTO Receive channel 7 BLESS send BLESS forward Send BLESS mesg GENERIC_COMM Routing Table GENERIC_COMM BLESS receive GENERIC_COMM Target Tracking Example:Before and After… OS View (TinyOS) TinyGALS View

  9. Memory Usage

  10. 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.

  11. Future Work • Blocking write: retry when queue is full. • Priority scheduling algorithm with queue insertions. • Run-time reconfigurability of modules. • Heterarchy: distributed multi-tasking.

More Related