02a_tdl

Upload: shamsher-singh

Post on 10-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 02a_TDL

    1/25

    The Timing Definition Language

    (TDL)

    Prof. Dr. Wolfgang Pree

    Dr. (ETH) Josef TemplDepartment of Computer Science

    Universitt Salzburg

    cs.uni-salzburg.at

    MoDECS.cc

    PREEtec.com

  • 8/8/2019 02a_TDL

    2/25

    W. Pree, J. Templ: TDL2 LASER 2005

    Overview

    TDL programming model for concurrent hard real-time software

    TDL component model

    Simple TDL example

    Tool chain

    Current state

  • 8/8/2019 02a_TDL

    3/25

    W. Pree, J. Templ: TDL3 LASER 2005

    What is TDL?

    A high-level textual notation for defining the timing behavior of a

    real-time application.

    Conceptually based on Giotto (University of California, Berkeley).

    TDL = Giotto + syntax + component architecture + cleanups.

    Analogy: IDL (CORBA, MIDL) vs. TDL

    IDL defines an interface for a distributed application

    => Separates interface from implementation

    TDL defines the timing for a real-time application

    => Separates timing from implementation

  • 8/8/2019 02a_TDL

    4/25

    W. Pree, J. Templ: TDL4 LASER 2005

    Schematic overview of Giotto/TDL concepts

    SampleModule

    Sensor Actuator

    InitMode

    Task1 300Hz

    Task2 100Hz

    OperationMode

    Task1 200Hz

    Task3 600Hz

    mode switch

    Giotto programs are multi mode & multi rate systems

    for long running tasks.

  • 8/8/2019 02a_TDL

    5/25

    W. Pree, J. Templ: TDL5 LASER 2005

    The Giotto/TDL Programming Model (LET)

    ET

  • 8/8/2019 02a_TDL

    6/25

    W. Pree, J. Templ: TDL6 LASER 2005

    Unit Delay

    time

    LET

    task a

    task b

    1 2 3

    1 2 3

    o:1 o:2 o:3

  • 8/8/2019 02a_TDL

    7/25

    W. Pree, J. Templ: TDL7 LASER 2005

    Unit Delay

    ... but isn't it a waste of time?

    => determinism, composition, transparent distribution

    time

    LET

    task a

    task b

    task c 1 2 3 4

    1 2 3

    1 2 3

    o:1 o:2 o:3

  • 8/8/2019 02a_TDL

    8/25

    W. Pree, J. Templ: TDL8 LASER 2005

    Summary of Giotto Heritage

    Sensor and actuator ports are used to interact with the environment.

    A program is in one of potentially multiple modes.

    Every mode consists of periodic activities:

    task invocations

    actuator updates

    mode switches

    A mode has a fixed period.

    Activities are carried out conditionally.

    Activities have their individual execution rate.

    Timing and interaction of activities follows LET semantics.

  • 8/8/2019 02a_TDL

    9/25

    W. Pree, J. Templ: TDL9 LASER 2005

    TDL Component Model: Motivation

    e.g. modern cars have up to 80 control units (ECUs)

    ECU consolidation is a topic run multiple programs on one ECU

    leads to TDL component model

    ECU1

    Program1

    ECU2

    Program2

    ECU3

    Program3

  • 8/8/2019 02a_TDL

    10/25

    W. Pree, J. Templ: TDL10 LASER 2005

    TDL Component Model

    ProgramX is called a module

    modules may be independent

    modules may also refer to each other (DAG) modules can be used for multiple purposes

    ECU

    Program1

    Program2

    Program3

  • 8/8/2019 02a_TDL

    11/25

    W. Pree, J. Templ: TDL11 LASER 2005

    Usage of Modules

    decomposition of large programs

    grouping of unrelated modules

    parallel automatons

    ECU consolidation

    client/service relationship

    provide common definitions for constants, types, etc.

    data flow from service to client module

    distributed execution

  • 8/8/2019 02a_TDL

    12/25

  • 8/8/2019 02a_TDL

    13/25

    W. Pree, J. Templ: TDL13 LASER 2005

    Module Import

    module M2{

    importM1;

    task clientTask [wcet=10ms] {

    input int i1;

    }

    mode main [period=100ms] {

    task [freq=1] clientTask(M1.inc.o);

    }

    }

    Import relationship forms a DAG.

    TDL supports structured module names (e.g. com.avl.p1.M1)

    import with rename: (e.g. import com.avl.p1.M1 as A1;)

    group import: (e.g. import com.avl.p1 {M1, M2, M3};)

  • 8/8/2019 02a_TDL

    14/25

    W. Pree, J. Templ: TDL14 LASER 2005

    Module Summary

    provides a named program component

    provides a name space

    allows for exporting sensors, constants, types, task outputs

    may be imported by other module(s)

    acts as unit of composition

    acts as the unit of loading

    acts as the unit of execution

    partitions the set of actuators

    acts as the unit of distribution

    TDL supports multi mode & multi rate & multi program systems.

  • 8/8/2019 02a_TDL

    15/25

    W. Pree, J. Templ: TDL15 LASER 2005

    More Language Constructs

    Constants

    const c1 = 100;

    const p = 100ms;

    Types

    Basic types: like Java

    byte, short, int, ...

    User defined opaque types: defined externally

    type T;

  • 8/8/2019 02a_TDL

    16/25

    W. Pree, J. Templ: TDL16 LASER 2005

    Differences to Giotto

    TDL provides a component model (module).

    TDL defines a concrete syntax and .ecode file format.

    TDL does not need explicit task invocation drivers, mode switch

    drivers and actuator update drivers as Giotto does.

    Drivers are defined implicitly by the TDL syntax and semantics.The user needs to implement only guards, sensor getters, actuator

    setters, port initializers, and, of course, task functions.

    TDL defines program start as mode switch to start mode.

    TDL disallows non-harmonic mode switches.

    Mode port assignments differ.

    Timing is in us.

  • 8/8/2019 02a_TDL

    17/25

    W. Pree, J. Templ: TDL17 LASER 2005

    Tool Chain Overview

    .tdl Compiler E-machine*.ecode

    functionality

    code

    *Java, OSEK, InTIME, RTLinux, ...

  • 8/8/2019 02a_TDL

    18/25

    W. Pree, J. Templ: TDL18 LASER 2005

    Tool Chain Overview

    .tdl Compiler

    Platform

    plugin*

    platform

    specific

    AST

    platform

    specific

    .ecode

    *Java, OSEK, InTIME, RTLinux, ...

    functionality

    code

    E-machine*

  • 8/8/2019 02a_TDL

    19/25

    W. Pree, J. Templ: TDL19 LASER 2005

    Tool Chain Overview

    .tdl Compiler

    Platform

    plugin*

    platform

    specific

    AST

    platform

    specific

    .ecode

    Decoder .txt

    VisualTDL

    Editor

    Matlab/Simulink

    *Java, OSEK, InTIME, RTLinux, ...

    functionality

    code

    E-machine*

    Model

  • 8/8/2019 02a_TDL

    20/25

    W. Pree, J. Templ: TDL20 LASER 2005

    Source Code Organization

    emcore (37.775 loc)

    ast abstract syntax tree (1.180)

    ecode ecode instructions and reader (613)

    scheduler node schedulers (1.039)

    tools (34.829)

    decode .ecode decoder (222)emachine E-machine (3.323)

    tdlc TDL compiler (5.248)

    platform standard platform plugins (2.261)

    vtdl visual TDL editor (24.198)

    busch bus scheduler (1.824)util various utility classes (114)

  • 8/8/2019 02a_TDL

    21/25

    W. Pree, J. Templ: TDL21 LASER 2005

    TDL Compiler

    implemented with compiler generator Coco/R for Java.

    (Mssenbck, JKU Linz)

    production quality recursive descent compiler in Java.

    2 phases:

    1. parse source text and build AST

    2. generate .ecode file from AST

    plugin interface defined by base class Platform

    plugin life cycle: open {emitCode} close

    additionally: setErrorHandler, setDestDir

  • 8/8/2019 02a_TDL

    22/25

    W. Pree, J. Templ: TDL22 LASER 2005

    Java-based E-machine

    used as proof of concept

    experimentation platform

    not hard-real time

    consists of

    .ecode loader

    task scheduler E-code interpreter

    dispatcher

    bus controller (for distribution)

    Interacts with functionality code via drivers

  • 8/8/2019 02a_TDL

    23/25

    W. Pree, J. Templ: TDL23 LASER 2005

    State

    Ready

    TDL Compiler for complete TDL

    Decoder

    Java-based E-machine for multiple modules

    Visual TDL Editor

    InTIME, OSEK, TTA TDK (from MoDECS.cc)

    Work in Progress

    ANSI C back ends for POSIX, RTLinux, OSEK, InTIME

    E-machines for distribution

    Bus Scheduler

  • 8/8/2019 02a_TDL

    24/25

    W. Pree, J. Templ: TDL24 LASER 2005

    Thank you for your attention!

  • 8/8/2019 02a_TDL

    25/25

    W. Pree, J. Templ: TDL25 LASER 2005

    TDK - TDL Development Kit

    preconfigured collection of Java-based TDL tools (tdlc, emachine,decoder, Java plugin, JavaDocs, Tutorial)

    for learning TDL and for easy experimentation with real time

    applications

    batch files for Windows command prompt

    downloadable from MoDECS home page (MoDECS.cc) TDL Tutorial:

    Explains how to use the TDL tools from command line.

    Uses sequence of examples with increasing complexity:

    single rate, multi rate, multi mode, multi module, [multi node]