0% found this document useful (0 votes)
63 views25 pages

The Timing Definition Language (TDL)

TDL is a high-level textual notation for defining the timing behavior of a real-time application. Conceptually based on gitto (university of california, berkeley) TDL = Giotto + syntax + component architecture + cleanups.

Uploaded by

Shamsher Singh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views25 pages

The Timing Definition Language (TDL)

TDL is a high-level textual notation for defining the timing behavior of a real-time application. Conceptually based on gitto (university of california, berkeley) TDL = Giotto + syntax + component architecture + cleanups.

Uploaded by

Shamsher Singh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

The Timing Definition Language

(TDL)

Prof. Dr. Wolfgang Pree


Dr. (ETH) Josef Templ
Department of Computer Science
Universität Salzburg

cs.uni-salzburg.at
MoDECS.cc
PREEtec.com
Overview

 TDL programming model for concurrent hard real-time software


 TDL component model
 Simple TDL example
 Tool chain
 Current state

2 © W. Pree, J. Templ: TDL 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

3 © W. Pree, J. Templ: TDL LASER 2005


Schematic overview of Giotto/TDL concepts

SampleModule
InitMode

Task1 300Hz

Task2 100Hz
Sensor Actuator
mode switch

OperationMode

Task1 200Hz

Task3 600Hz

Giotto programs are multi mode & multi rate systems


for long running tasks.

4 © W. Pree, J. Templ: TDL LASER 2005


The Giotto/TDL Programming Model (LET)

release terminate
Logical Execution Time (LET)

Logical
task invocation time

Physical

start suspend resume stop

ET <= WCET <= LET


results are available at 'terminate'

5 © W. Pree, J. Templ: TDL LASER 2005


Unit Delay
LET

task a 1 2 3
time

o:1 o:2 o:3

task b 1 2 3

6 © W. Pree, J. Templ: TDL LASER 2005


Unit Delay
LET

task a 1 2 3
time

o:1 o:2 o:3

task b 1 2 3

task c 1 2 3 4

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


=> determinism, composition, transparent distribution

7 © W. Pree, J. Templ: TDL 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 © W. Pree, J. Templ: TDL LASER 2005


TDL Component Model: Motivation

ECU1 ECU2

Program1 Program2

ECU3

Program3

 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

9 © W. Pree, J. Templ: TDL LASER 2005


TDL Component Model

ECU

Program1
Program2
Program3

 ProgramX is called a module


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

10 © W. Pree, J. Templ: TDL 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

11 © W. Pree, J. Templ: TDL LASER 2005


TDL Syntax by Example
module M1 {

sensor boolean s1 uses getS1;


actuator int a1 uses setA1;

public task inc [wcet=4ms] {


output int o := 10;
uses incImpl(o);
}

start mode main [period=10ms] {


task
[freq=1] inc();
actuator
[freq=2] a1 := inc.o;
mode
[freq=1] if exitMain(s1) then freeze;
}

mode freeze [period=1000ms] {}


}

12 © W. Pree, J. Templ: TDL LASER 2005


Module Import

module M2{

import M1;

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};)

13 © W. Pree, J. Templ: TDL 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.

14 © W. Pree, J. Templ: TDL 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;

15 © W. Pree, J. Templ: TDL 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.

16 © W. Pree, J. Templ: TDL LASER 2005


Tool Chain Overview

functionality
code

.tdl Compiler .ecode E-machine*

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

17 © W. Pree, J. Templ: TDL LASER 2005


Tool Chain Overview

functionality
code

.tdl Compiler .ecode E-machine*

AST

platform
Platform platform
specific plugin* specific

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

18 © W. Pree, J. Templ: TDL LASER 2005


Tool Chain Overview

Matlab/Simulink
Decoder .txt
Visual
Model
TDL
Editor
functionality
code

.tdl Compiler .ecode E-machine*

AST

platform
Platform platform
specific plugin* specific

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

19 © W. Pree, J. Templ: TDL 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)

20 © W. Pree, J. Templ: TDL LASER 2005


TDL Compiler

 implemented with compiler generator Coco/R for Java.


(Mössenböck, 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

21 © W. Pree, J. Templ: TDL 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

22 © W. Pree, J. Templ: TDL 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

23 © W. Pree, J. Templ: TDL LASER 2005


Thank you for your attention!

24 © W. Pree, J. Templ: TDL 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]

25 © W. Pree, J. Templ: TDL LASER 2005

You might also like