1 / 20

Component Technologies for Embedded Systems

Component Technologies for Embedded Systems. Johan Eker. Ptolemy II A Software Laboratory. Ptolemy II Actor based models Implemented in Java Graphical modeling and simulation environment Multiple “models of computation” Hierarchical & heterogeneous models Code generation.

scrabtree
Download Presentation

Component Technologies for 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. Component Technologies for Embedded Systems Johan Eker

  2. Ptolemy IIA Software Laboratory Ptolemy II • Actor based models • Implemented in Java • Graphical modeling and simulation environment • Multiple “models of computation” • Hierarchical & heterogeneous models • Code generation

  3. The Caltrop Actor Language • a language for writing dataflow actors. • It is designed as a domain-specific language. • It compiles against the Ptolemy API (Pt/Java).

  4. Component Technology • Examples: Java beans, VB-components, etc • Rationale • Encapsulation • Reuse • Divide complexity • Successful in many areas • Problems with concurrent components • Threads are not components • Priorities are global parameters • Difficult to design embedded systems component with state-of-the art technology

  5. Multipurpose tools • Express almost anything, guarantee almost nothing • You only need to know one programming language • Quick starts, but sometimes slower endings • Programmers+language, a lifelong marriage • Examples: • Java • C/C++ with RTOS, ADA, Modula-2 • RMA & EDF scheduling

  6. Sharpen your tools • Use problem specific tools • Constrain the solutions • Choice of tools, a major design decision • Combine several tools

  7. leader follower sensors actuators controller Br Acc Ba S PID bang-bang Hierarchical, Heterogeneous Modeling and Design in Ptolemy II Models of computation

  8. Are actors active? passive? How is the flow of control determined? Are communications timed? synchronized? buffered? How is the communications mediated? Actor Interaction Semantics

  9. Ptolemy II Basics • A model is a a set of interconnected actors and one director • Actor • Input & output ports, states, & parameters • Atomic or composite • Communicates using tokens • When it is fired it produces and consumes tokens Ports consumer producer actor actor

  10. Ptolemy II Basics • Director • Manages the data flow and the scheduling of the actors • The director fires the actors • Receiver • Defines the semantics of the port buffers • Models of Computation • Define the interaction semantics • Implemented in Ptolemy II by a domain • Director + Receiver

  11. Key: Orthogonalizing the Concerns • Write your actors so that communication and scheduling can be factored out • Requires stylized Java and many informal contracts • Solution: generate Java actors from a more abstract description such as Caltrop Communication Scheduling Algorithm

  12. Output expression Input pattern Output port Input port Input port Action body Caltrop Actor Language • Imperative, but with a functional flavor • Ports, states, parameters & actions • Operates on token streams A:[1,2,3,...], B: [1,2,3,...] ÞC: [2,4,6,...] • Embedded in a host language actor Add () double A, double B  double C: action [a], [b]  [c]: c := a + b; end end

  13. States actor B () Double Input ==> Double Output: Integer n := 0; Double sum := 0; action [a] ==> [sum / n] : n := n + 1; sum := sum + a; end end

  14. Multiple actions, action conditions actor C () Double Input ==> Double Output: action [a] ==> [a] where a >= 0 end action [a] ==> [-a] where a < 0 end end actor D () Double Input ==> Double Output: action [a] ==> [abs(a)] end end

  15. Port patterns actor PairwiseSwap [T] () T Input ==> T Output: action[a, b]==> [b, a] end end • examples • [a, b, c] • [a, b, c | s] • [| s]

  16. Channel selectors actor Switch [T] () multi T Data, Integer Select ==> T Output: action [a] ati, [i] ==> [a] end end

  17. Action tags, action selectors actor FairMerge [T] () T Input1, T Input2 ==> T Output: A:action [a], [] ==> [a] end B:action [], [a] ==> [a] end selector (A B)* end end other selectors are conceivable, e.g. • (A B)* | (B A)* • ( (A B) | (B A) )*

  18. Caltrop implementation—the big picture. source text parsing Caltrop transformation,annotation Caltrop AST Caltrop(0) code generation target platform Caltrop(1) Caltrop(n) split-phase CalCore Ì CalCore Matlab/Pålsjö Koala OS Ptolemy II Moses DSP/FPGA

  19. The Rest of Caltrop • Expressions are side effect free • Lambda, block and actor closures • Statements • foreach, while, if-then-else • Few built-in types: list, map, set • Immutable variable& no aliasing • Allows analysis • Deadlock, schedulability, memory consumption

  20. Summary • “Don’t get it right, keep it right” • Embedded system components • Realized in the Ptolemy II framework • Compiler is being developed at UCB • More information • Edward Lee “What’s Ahead for Embedded Computing?”, IEEE Computer, Sept. 2000 • http://ptolemy.eecs.berkeley.edu • http://www.gigascale.org/caltrop

More Related