1 / 16

Embedded Software

Embedded Software. Original Paper by: Edward A. Lee Eal@eecs.berkeley.edu Presentation and Review by: Paresh .P. Bafna bafna@usc.edu. What is Embedded Software? . Software Realization of mathematical functions. Like a black box, takes input & gives output.

Donna
Télécharger la présentation

Embedded Software

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. Embedded Software Original Paper by: Edward A. Lee Eal@eecs.berkeley.edu Presentation and Review by: Paresh .P. Bafna bafna@usc.edu

  2. What is Embedded Software? • Software • Realization of mathematical functions. • Like a black box, takes input & gives output. • Not much concerned about non-functional aspects. • Embedded software • It executes on machines, which are not computers e.g. … • Its principle role… interact with physical world. • Its works at low level, as its build by experts of that application domain e.g. • Its designed for specific application and so its not scalable e.g. • It has to consider the non-functional aspects.

  3. Non Functional Properties

  4. Just software on small computers? • Timeliness & Concurrency • Computations take time and primary goal is gain control over time. • Plus doing jobs simultaneously i.e. concurrently. • Various ways to implement concurrency are • Interleaving processes. • CPU bound and I/O bound processes. • Various ways to implement timeliness are • Priority. • Statistical speedups e.g. cache schema, branch prediction etc… • Liveness • Turing view of computation Vs Embedded view of computation. • Programs never terminate.

  5. Just software on small computers? cont... • Interfaces • Component technology: exposes interface and hides complexity. • Embedded software should inherit this interface with dynamic properties e.g. • One form of interface is a procedure. Buts its finite computation. • Similarly, OO design uses procedures along with data. Provide interface. • Lee argues that Embedded software is more like processes than procedures. • However, processes get weak, due to porcess1 + process2 != process3. • To allow dynamic composition, type systems along with temporal prop are used. • Heterogeneity • The system mixes computational styles and implementation technologies i.e. • Reactivity • System reacts to various stimuli at the speed of the environment. e.g.

  6. Limitations of present SE methods. • Complex Embedded system would benefit if components were composing other components. Hide details and expose interfaces in well defined manner. • Procedures and Object Orientation • Procedures are terminating. Objects are passive. • Real world is active and more like processes, with proper semantics rooted in physical world. • Embedded software requires is composition of processes and concurrency among processes. • Hardware design • Distinction among hardware and software, from the perspective of computation: • An application with concurrency and temporal content should be thought using hardware abstractions. • An application with no temporal content should be thought using software abstraction. • Embedded software requires system needs of both hardware and software.

  7. Limitations of present SE methods. Cont… • Real time operating system • Embedded software requiring real-time throughput also require low latency. • Most general purpose processors have dedicated resources e.g. • Embedded system are resource constrained and have to use scheduling techniques to allocate resources at run-time. • Key problem in scheduling is the composition of the components. • A chronic priority based scheduling might lead to e.g. priority inversion. • Real-time Object oriented models • These are real-time practices extended for distributed components e.g. real time CORBA. • Scheduling is done by associating priority with event handling and other parameters (importance etc..).

  8. Actor Oriented Design • What do we need? • Approach which constructs complex applications by composing components. • Emphasizing concurrency, communication abstractions along with time constraints. • What do we have? • Actor oriented design, where components are actor with ports and parameters. • Ports for interaction among actors with proper semantics (not call and return). • Actor oriented design described in two ways: • Abstract syntax : system is decomposed into interconnection components without defining its meaning. • Concrete syntax : various abstract syntax along with concrete define how the components fit together.

  9. Actor oriented design cont… • Semantics of Actor oriented design • Component is a process, and connector represents connection between process. • Component may be a state and connector be transition between states. • Semantics may be viewed as architectural patterns called models of computations. • Key challenges for embedded software to choose models of computations • Support concurrency. • Network systems require communication and bandwidth. • Applications may be interconnection of modules and modules written in c, java etc… • Large applications may mix various models of computations.

  10. Examples of models of computation • Data Flow Model • Actors are atomic components triggered by availability of incoming data. • Connection within actors represents data flow from producer to consumer. • Time Triggered • Connection is represented by events driven by some clock. • Components communicate synchronously with other components. • Synchronous/Reactive Model • Connections represents input and output data values aligned with global clock. • Its not necessary that every signal must have a value at every clock tick. • Discrete Event Model • Connections represented by set of events placed on time line, having values and time stamp. • Specially designed for hardware or communication systems

  11. Examples of models of computation cont… • Process Network • Connection represent sequence of data or values of token. • Components that map input data to output using asynchronous buffered mechanism. • Rendezvous Model • Components communicate in synchronous atomic instantaneous action. • Processes exchange data simultaneously, in single step. • Publish and subscribe Model • Connections represented by named event streams. • Consumer component registers and interest in the stream. • Producer component produces and notifies the consumer component.. • Continuous Time Model • Differential equations coupled together to find solutions (time constraints). • Connection represents continuous time signals.

  12. Examples of models of computation cont… • Finite state Machine • Different from all the above model, it is strictly sequential. • Component in the model is a state or mode. Only one state active at a time. • Connection between states represents transition. • It is used for control logic in embedded system and in-depth analysis. • FSM can be hierarchically combined with other concurrent model to get hybrid model called *chart.

  13. Case Study : Ptolemy II • A project at Berkeley emphasizes on heterogeneous combination of models of computation. • Composition of model is formed via the notion of domain polymorphism. • What is domain polymorphism? It’s a property of components…. • The components are used in several domain, their interface is different for different domain. • Application is a set of composed actor, connected together, assigned a domain. • Govern interaction between components and flow of control. • To get hierarchical mixture of domains, the domain must implement executable interface. E.g. three phases, initialization, iteration and termination.

  14. Component Interface • To make the combination of models of computation more systematic, Lee argues that type system concept should be used. • Type system constrains • What a component can say about its interface. • How compatibility is ensured when components are composed. • In order to provide dynamic properties of an interface, system level type system is introduced.

  15. Conclusion • Embedded system requires a different view of computation. As the software engages the physical world. • The system has to consider time and other non-functional properties. • Models of computation with stronger properties are specialized. • This specialization limits the capability, which can be overcome by hierarchically combining heterogeneous models of computations. • System level types capture key features of components, and provides a robust and understandable composition technology.

  16. End of Presentation

More Related