Timing Definition Language

Timing Definition Language

Die Timing Definition Language (TDL) erlaubt die Beschreibung des Zeitverhaltens einer komponentenbasierten Echtzeitanwendung basierend auf dem Konzept der logischen Ausführungszeit (Logical Execution Time, LET). Die LET abstrahiert von der tatsächlichen (physischen) Ausführungszeit auf einer bestimmten Ausführungsplattform und erlaubt die Simulation solcher Anwendungen unter Beibehaltung des Echtzeitverhaltens ohne dass sämtliche Plattformdetails (CPU, Speicher, Topologie) bekannt sein müssen. Grundlage für die Ausführung einer TDL-Anwendung auf einer bestimmten Ausführungsplattform ist das Wissen über die im schlechtesten Fall zu erwartende Ausführungszeit (Worst Case Execution Time, WCET) der einzelnen Rechenaufgaben (Tasks). Die Ermittlung der WCET ist nicht Gegenstand von TDL.

Inhaltsverzeichnis

Geschichte

Die konzeptionellen Grundlagen für TDL stammen aus dem Giotto-Projekt der University of California, Berkeley, das in den späten 1990er Jahre begonnen wurde. Giotto führte das Konzept der LET (Logical Execution Time) ein und definierte ein Echtzeitprogramm als einen deterministischen endlichen Automaten (DFA), der in jedem seiner Zustände eine Menge von periodischen Aktivitäten durchführt (multi-mode), die jeweils eine eigene Ausführungsperiode besitzen können (multi-rate) und bedingt ausgeführt werden können (guarded activities). Die Aktivitäten sind Task-Aufrufe, Setzen von Aktuatoren und Zustandswechsel.

TDL baut auf diesen Konzepten auf und führt einige Erweiterungen sowie leistungsfähige Werkzeuge ein, mit deren Hilfe TDL-Programme entwickelt werden können. Die Erweiterungen von TDL bestehen in einem Komponentenmodell und in der Integration von asynchronen Aktivitäten. Die Entwicklung von TDL begann im Jahr 2003 an der Universität Salzburg (Österreich) als Teil des MoDECS-Projektes (Model based Development of Embedded Control Systems). Ab dem Jahr 2007 erfolgte die Weiterentwicklung von TDL als Teil eines CD-Labors (Christian Doppler Laboratory for Embedded Software Systems) ebenfalls an der Universität Salzburg.

Komponentenmodell

TDL erlaubt die gleichzeitige Ausführung von mehreren Giotto-artigen Echtzeitprogrammen, die jeweils in einem benannten Programmkonstrukt, dem Modul, gekapselt sind. Durch die LET-Eigenschaft von Task-Aufrufen können einem System zusätzliche Module hinzugefügt werden ohne dass sich das Zeitverhalten der vorher schon existierenden Module ändert. Das gilt natürlich nur solange die CPU oder CPUs in der Lage ist bzw. sind, die zusätzlichen Module zu rechnen.

Im einfachsten Fall sind die Module unabhängig voneinander und dienen nur dazu mehrere Funktionen auf einem Knoten zu implementieren. Man spricht dann auch von ECU-Konsolidierung. Im allgemeinen Fall können Module aber auch voneinander abhängig sein, was in TDL durch eine import-Deklaration ausgedrückt wird. Der Datenfluss zwischen mehreren Modulen kann auch zyklisch sein.

TDL-Module dienen auch als Basis für die Verteilung einer Anwendung auf mehrere Knoten eines verteilten Systems. In diesem Fall kann ein Werkzeug die erforderliche Netzwerkkommunikation automatisch aus den beteiligten Modulen und deren Knotenzuordnung und Netzwerkeigenschaften ermitteln. Das beobachtbare (logische) Zeitverhalten der entstehenden verteilten Anwendung entspricht dem einer nicht-verteilten. Man spricht deswegen auch von transparenter Verteilung.

Integration von asynchronen Aktivitäten

TDL erlaubt neben den zeitgesteuerten (synchronen) Aktivitäten auch die Spezifikation von ereignisabhängigen (asynchronen) Aktivitäten wie Task-Aufruf und Aktuator-Setzen. Diese können mit einem Hardware-Interrupt, einem periodischen asynchronen Zeitgeber oder mit einem Update auf einem Ausgabe-Port angestoßen werden. Synchrone und asynchrone Aktivitäten können untereinander auch Daten austauschen wobei das Schreiben von Ergebniswerten bzw. das Lesen von Eingabewerten so synchronisiert sind, dass sie jeweils eine untrennbare Einheit darstellen.

Generell gilt dass asynchrone Aktivitäten nicht sofort ausgeführt werden, sondern zuerst in eine Prioritätswarteschlange eingetragen werden, aus der sie durch einen Hintergrundprozess, der mit niedrigster Priorität läuft, ausgelesen und ausgeführt werden.

TDL-Werkzeugkette

Im Zentrum der TDL-Werkzeugkette steht der TDL:Compiler, der eine Menge von TDL-Modulen in sogenannten E-Code (embedded code) transformiert. Der E-Code wird für jeden Mode jedes Moduls berechnet und beschreibt die Folge von Aktivitäten für die Dauer einer Mode-Periode. Anschließend wiederholen sich die Aktivitäten. Die E-Code-Befehle stellen Instruktionen einer virtuellen Maschine dar, der sogenannten E-Maschine.

Neben der Erstellung des E-Codes erlaubt der TDL-Compiler auch die Erzeugung von plattformspezifischen Ausgaben durch Verwendung von Erweiterungen (Plug-ins), die für eine bestimmte Zielplattform erstellt werden können.

Die Organisation des Compileraufrufes mit allfälligen Parametern wie der Angabe der WCET für die einzelnen Tasks und der Zuordnung der Module zu Knoten eines verteilten Systems erledigt ein Werkzeug namens TDL:VisualDistributor.

Als Alternative für die Beschreibung eines TDL-Moduls in Textform kann mit dem Werkzeug TDL:VisualCreator ein graphisches Frontend verwendet werden.

Zur Überwachung, Protokollierung und Analyse der Netzwerkaktivitäten auf einem FlexRay-Netzwerk kann das Werkzeug TDL:VisualAnalyzer eingesetzt werden.

Für die Simulation von TDL-Anwendungen existiert eine Version von TDL:VisualCreator, die in das Simulationswerkzeug Matlab/Simulink integriert ist. Für die Erzeugung von plattformspezifischem Code steht eine in Simulink integrierte Version von TDL:VisualDistributor zur Verfügung.

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Définition d'une planète — Définition des planètes Article principal : Planète. Photographie de la planète Neptune (en grand) et de sa lune Triton (en petit), prise par Voyager 2 lors de son entrée dans le Système solaire extérieur. Depuis sa création afin de décrire… …   Wikipédia en Français

  • Définition d'une planète (2006) — Définition des planètes Article principal : Planète. Photographie de la planète Neptune (en grand) et de sa lune Triton (en petit), prise par Voyager 2 lors de son entrée dans le Système solaire extérieur. Depuis sa création afin de décrire… …   Wikipédia en Français

  • Definition of planet — Photograph of the crescent planet Neptune (top) and its moon Triton (center) …   Wikipedia

  • Définition des planètes — Pour les articles homonymes, voir Définition (Homonymie). Article principal : Planète. Photographie de la planète Neptune (en gran …   Wikipédia en Français

  • Assembly language — See the terminology section below for information regarding inconsistent use of the terms assembly and assembler. Motorola MC6800 Assembly Language An assembly language is a low level programming language for computers, microprocessors,… …   Wikipedia

  • Comic timing — is the use of rhythm, tempo and pausing to enhance comedy and humour. The pacing of the delivery of a joke can have a strong impact on its comedic effect, even altering its meaning; the same can also be true of more physical comedy such as… …   Wikipedia

  • Nested Context Language — (NCL) is a declarative authoring language for hypermedia documents. NCL is an XML application language, which provides several facilities for authoring a complete hypermedia document with synchronization relationships among its components. Among… …   Wikipedia

  • Glossary of Unified Modeling Language terms — This glossary of Unified Modeling Language terms covers all versions of UML. Individual entries will point out any distinctions that exist between versions.A* Abstract An indicator applied to a classifier (e.g., actor, class, use case) or to some …   Wikipedia

  • Unified modeling language — Pour les articles homonymes, voir UML. Logo d UML UML (en anglais Unified Modeling Language, « langage de modélisation unifié ») est un langage graphique de mod …   Wikipédia en Français

  • Unified Modeling Language — Pour les articles homonymes, voir UML. Logo d UML UML (en anglais Unified Modeling Language ou « langage de modélisation unifié ») est un langage de modélisation graphique à base de pictogrammes …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”