Specifications and Modeling

Slides:



Advertisements
Similar presentations
Technische universität dortmund fakultät für informatik informatik 12 Models of computation Peter Marwedel TU Dortmund Informatik 12 Graphics: © Alexandra.
Advertisements

Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund.
Fakultät für informatik informatik 12 technische universität dortmund Imperative model of computation Peter Marwedel TU Dortmund, Informatik 12 Graphics:
Technische universität dortmund fakultät für informatik informatik 12 Specifications and Modeling Peter Marwedel TU Dortmund, Informatik 12 Graphics: ©
Fakult ä t f ü r informatik informatik 12 technische universit ä t dortmund Data flow models Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra.
Fakultät für informatik informatik 12 technische universität dortmund Specifications and Modeling Peter Marwedel TU Dortmund, Informatik 12 Graphics: ©
Fakultät für informatik informatik 12 technische universität dortmund SDL Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte, Gesine.
Technische universität dortmund fakultät für informatik informatik 12 Discrete Event Models Peter Marwedel TU Dortmund, Informatik 12 Germany
Communicating finite state machines
Technische universität dortmund fakultät für informatik informatik 12 Specifications and Modeling Peter Marwedel TU Dortmund, Informatik
Embedded Systems & Parallel Programming P. Marwedel, Univ. Dortmund/Informatik 12 + ICD/ES, 2007 Universität Dortmund A view on embedded systems.
Embedded System, A Brief Introduction
fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund.
Petri Nets Jian-Jia Chen (slides are based on Peter Marwedel)
Technische universität dortmund fakultät für informatik informatik 12 Specifications, Modeling, and Model of Computation Jian-Jia Chen (slides are based.
(slides are based on Peter Marwedel)
Technische universität dortmund fakultät für informatik informatik 12 Discrete Event Models Jian-Jia Chen (slides are based on Peter Marwedel) TU Dortmund,
Technische universität dortmund fakultät für informatik informatik 12 Limits of von-Neumann (thread-based) computing Jian-Jia Chen (Slides are based on.
Hardware/ Software Partitioning 2011 年 12 月 09 日 Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 These.
Fakultät für informatik informatik 12 technische universität dortmund Specifications - Session 5 - Peter Marwedel TU Dortmund Informatik 12 Germany Slides.
PTIDES: Programming Temporally Integrated Distributed Embedded Systems Yang Zhao, EECS, UC Berkeley Edward A. Lee, EECS, UC Berkeley Jie Liu, Microsoft.
Review of “Embedded Software” by E.A. Lee Katherine Barrow Vladimir Jakobac.
Chapter 13 Embedded Systems
Models of Computation for Embedded System Design Alvise Bonivento.
1 I/O Management in Representative Operating Systems.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 2003 Universität Dortmund Actual design flows and tools.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Ch.2 Part A: Requirements, State Charts EECE **** Embedded System Design.
- 1 - Embedded Systems—State charts Specifications.
Course Outline DayContents Day 1 Introduction Motivation, definitions, properties of embedded systems, outline of the current course How to specify embedded.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 2005/6 Universität Dortmund Specifications.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 2005/6 Universität Dortmund Some general properties of languages 1. Synchronous vs. asynchronous languages.
- 1 - Embedded Systems - SDL Some general properties of languages 1. Synchronous vs. asynchronous languages Description of several processes in many languages.
StateCharts Peter Marwedel Informatik 12 Univ. Dortmund Germany.
Evaluation and Validation Peter Marwedel TU Dortmund, Informatik 12 Germany 2013 年 12 月 02 日 These slides use Microsoft clip arts. Microsoft copyright.
Ch. 2. Specification and Modeling 2.1 Requirements Describe requirements and approaches for specifying and modeling embedded systems. Specification for.
1 Concurrency Architecture Types Tasks Synchronization –Semaphores –Monitors –Message Passing Concurrency in Ada Java Threads.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
ICS 313: Programming Language Theory Chapter 13: Concurrency.
technische universität dortmund fakultät für informatik informatik 12 Early design phases Jian-Jia Chen (slides are based on Peter Marwedel) TU Dortmund,
OPERATING SYSTEMS CS 3530 Summer 2014 Systems and Models Chapter 03.
13-1 Chapter 13 Concurrency Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Java Threads C# Threads.
High Performance Embedded Computing © 2007 Elsevier Lecture 4: Models of Computation Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte.
Technische universität dortmund fakultät für informatik informatik 12 Finite state machines & message passing: SDL Peter Marwedel TU Dortmund, Informatik.
Lecture 2 Specification and Requirement Analysis of Embedded System.
From requirements to specification Specification is a refinement of requirements Can be included together as Software Requirements Specifications (SRS)
Pitfalls: Time Dependent Behaviors CS433 Spring 2001 Laxmikant Kale.
Auburn University
OPERATING SYSTEMS CS 3502 Fall 2017
An Overview of Requirements Engineering Tools and Methodologies*
Advantages of FSM Their simplicity make it easy for inexperienced developers to implement with little to no extra knowledge (low entry level)
Advanced Embedded Systems
2. Specification and Modeling
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
Part 3 Design What does design mean in different fields?
Embedded System Design Specifications and Modeling
Standard Optimization Techniques
CSCI1600: Embedded and Real Time Software
Evaluation and Validation
Background and Motivation
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
Semaphores Chapter 6.
Chapter 2: Operating-System Structures
Concurrency: Mutual Exclusion and Process Synchronization
Introduction to Software Testing Chapter 5.1 Syntax-based Testing
Presented By: Darlene Banta
Chapter 2: Operating-System Structures
Chapter 3: Process Management
Presentation transcript:

Specifications and Modeling Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 2011/05/04 These slides use Microsoft clip arts. Microsoft copyright restrictions apply.

Hypothetical design flow Design repository 2: Specification Design 3: ES-hardware 8. Test * Application Knowledge 6: Application mapping 5: Evaluation & Validation (energy, cost, performance, …) 7: Optimization 4: System software (RTOS, middleware, …) * Could be integrated into loop Numbers denote sequence of chapters

Motivation for considering specs Why considering specs? If something is wrong with the specs, then it will be difficult to get the design right, potentially wasting a lot of time. Typically, we work with models of the system under design (SUD) What is a model anyway? time

Models Definition: A model is a simplification of another entity, which can be a physical thing or another model. The model contains exactly those characteristics and properties of the modeled entity that are relevant for a given task. A model is minimal with respect to a task if it does not contain any other characteristics than those relevant for the task. [Jantsch, 2004]: Which requirements do we have for our models?

Requirements for specification techniques: Hierarchy Hierarchy Humans not capable to understand systems containing more than ~5 objects. Most actual systems require more objects  Hierarchy Behavioral hierarchy Examples: states, processes, procedures. Structural hierarchy Examples: processors, racks, printed circuit boards proc

Requirem. for specification techniques (2): Component-based design Systems must be designed from components Must be “easy” to derive behavior from behavior of subsystems Work of Sifakis, Thiele, Ernst, … Concurrency Synchronization and communication

Requirements for specification techniques (3): Timing Timing behavior Essential for embedded and cy-phy systems! Additional information (periods, dependences, scenarios, use cases) welcome Also, the speed of the underlying platform must be known Far-reaching consequences for design processes! “The lack of timing in the core abstraction (of computer science) is a flaw, from the perspective of embedded software” [Lee, 2005]

Requirements for specification techniques (3): Timing (2) 4 types of timing specs required, according to Burns, 1990: Measure elapsed time Check, how much time has elapsed since last call t ? execute Means for delaying processes t

Requirements for specification techniques (3): Timing (3) Possibility to specify timeouts Stay in a certain state a maximum time. Methods for specifying deadlines Not available or in separate control file. t execute

Specification of ES (4): Support for designing reactive systems State-oriented behavior Required for reactive systems; classical automata insufficient. Event-handling (external or internal events) Exception-oriented behavior Not acceptable to describe exceptions for every state We will see, how all the arrows labeled k can be replaced by a single one.

Requirements for specification techniques (5) Presence of programming elements Executability (no algebraic specification) Support for the design of large systems ( OO) Domain-specific support Readability Portability and flexibility Termination Support for non-standard I/O devices Non-functional properties Support for the design of dependable systems No obstacles for efficient implementation Adequate model of computation What does it mean “to compute”?

Problems with classical CS theory and von Neumann computing Even the core … notion of “computable” is at odds with the requirements of embedded software. In this notion, useful computation terminates, but termination is undecidable. In embedded software, termination is failure, and yet to get predictable timing, subcomputations must decidably terminate. What is needed is nearly a reinvention of computer science. Edward A. Lee: Absolutely Positively on Time, IEEE Computer, July, 2005 Search for non-thread-based, non-von-Neumann MoCs; Which are the requirements for specification techniques?

Models of computation What does it mean, “to compute”? Models of computation define: Components and an execution model for computations for each component Communication model for exchange of information between components. C-1 C-2

Dependence graph Definition Sequence constraint Nodes could be programs or simple operations Def.: A dependence graph is a directed graph G=(V,E) in which E  V  V is a relation. If (v1, v2)  E, then v1 is called an immediate predecessor of v2 and v2 is called an immediate successor of v1. Suppose E* is the transitive closure of E. If (v1, v2)  E*, then v1 is called a predecessor of v2 and v2 is called a successor of v1.

Dependence graph Timing information Dependence graphs may contain additional information, for example: Timing information Arrival time deadline

Dependence graph I/O-information

Dependence graph Shared resources

Dependence graph Periodic schedules A job is single execution of the dependence graph Periodic dependence graphs are infinite

Dependence graph Hierarchical task graphs

Communication Shared memory Comp-1 memory Comp-2 Variables accessible to several components/tasks. Model mostly restricted to local systems.

Shared memory Potential race conditions (inconsistent results possible)  Critical sections = sections at which exclusive access to resource r (e.g. shared memory) must be guaranteed. task a { .. P(S) //obtain lock .. // critical section V(S) //release lock } task b { .. P(S) //obtain lock .. // critical section V(S) //release lock } Race-free access to shared memory protected by S possible P(S) and V(S) are semaphore operations, allowing at most n accesses, n =1 in this case (mutex, lock)

Non-blocking/asynchronous message passing Sender does not have to wait until message has arrived; … send () … receive () Potential problem: buffer overflow

Blocking/synchronous message passing - rendez-vous Sender will wait until receiver has received message … send () … receive () No buffer overflow, but reduced performance.

Organization of computations within the components (1) Finite state machines Data flow (models the flow of data in a distributed system)  to be discussed next week Petri nets (models synchronization in a distributed system)  to be discussed next week

Organization of computations within the components (2) Discrete event model queue a b c 6 5 a:=5 b:=7 c:=8 a:=6 a:=9 5 10 13 15 19 time action 7 8 Von Neumann model Sequential execution, program memory etc.

Organization of computations within the components (3) Differential equations

Models of computation considered in this course Communication/ local computations Shared memory Message passing Synchronous | Asynchronous Communicating finite state machines StateCharts SDL Data flow (Not useful) Kahn networks, SDF Petri nets C/E nets, P/T nets, … Discrete event (DE) model VHDL*, Verilog*, SystemC*, … Only experimental systems, e.g. distributed DE in Ptolemy Von Neumann model C, C++, Java C, C++, Java with libraries CSP, ADA | * Classification based on implementation with centralized data structures

Combined models - languages presented later in this chapter - SDL FSM+asynchronous message passing StateCharts FSM+shared memory CSP, ADA von Neumann execution+synchronous message passing …. See also Work by Edward A. Lee, UCB Axel Jantsch: Modeling Embedded Systems and Soc's: Concurrency and Time in Models of Computation, Morgan-Kaufman, 2004

Ptolemy Ptolemy (UC Berkeley) is an environment for simulating multiple models of computation. http://ptolemy.berkeley.edu/ Available examples are restricted to a subset of the supported models of computation. Newton‘s craddle  Ptolemy simulations

Facing reality No language that meets all language requirements  using compromises

Summary Requirements for specification languages Hierarchy .. Appropriate model of computation Models of computation = models for communication Shared memory Message passing models of components finite state machines (FSMs) data flow, …. Task graphs