Timing Definition Language

from Wikipedia, the free encyclopedia

The Timing Definition Language ( TDL ) is a declarative programming language for describing the timing of a component-based real-time application based on the concept of Logical Execution Time (LET). The LET abstracts from the actual (physical) execution time on a specific execution platform and allows such applications to be simulated while maintaining real-time behavior without all platform details (CPU, memory, topology) having to be known. The basis for the execution of a TDL application on a specific execution platform is knowledge of the worst case execution time (WCET) of the individual computing tasks. The determination of the WCET is not part of the TDL.

history

The conceptual foundations for TDL come from the Giotto project at the University of California, Berkeley , which began in the late 1990s. Giotto introduced the concept of LET (Logical Execution Time) and defined a real-time program as a deterministic finite automaton (DFA), which in each of its states carries out a number of periodic activities ( multi-mode ), each of which can have its own execution period ( multi-rate) and can be carried out conditionally ( guarded activities ). The activities are task calls, setting actuators and status changes.

TDL builds on these concepts and introduces some enhancements and powerful tools that can be used to develop TDL programs. The extensions of TDL consist of a component model and the integration of asynchronous activities. The development of TDL began in 2003 at the University of Salzburg (Austria) as part of the MoDECS project (Model based Development of Embedded Control Systems). From 2007 onwards, TDL was further developed as part of a CD laboratory (Christian Doppler Laboratory for Embedded Software Systems), also at the University of Salzburg.

Component model

TDL allows the simultaneous execution of several Giotto-like real-time programs, each of which is encapsulated in a named program construct, the module . The LET property of task calls allows additional modules to be added to a system without changing the timing of the previously existing modules. Of course, this only applies as long as the CPU or CPUs are able to calculate the additional modules.

In the simplest case, the modules are independent of each other and only serve to implement several functions on one node. One then speaks of ECU consolidation. In the general case, however, modules can also be dependent on each other, which is expressed in TDL by an import declaration. The data flow between several modules can also be cyclical.

TDL modules also serve as the basis for distributing an application to several nodes of a distributed system . In this case, a tool can automatically determine the required network communication from the modules involved and their node assignment and network properties. The observable (logical) time behavior of the emerging distributed application corresponds to that of a non-distributed application. That is why one speaks of transparent distribution .

Integration of asynchronous activities

In addition to time-controlled (synchronous) activities, TDL also allows the specification of event-dependent (asynchronous) activities such as task calls and actuator setting. These can be triggered with a hardware interrupt , a periodic asynchronous timer or with an update on an output port. Synchronous and asynchronous activities can also exchange data with one another, whereby the writing of result values ​​and the reading of input values ​​are synchronized in such a way that they each represent an inseparable unit.

In general, asynchronous activities are not carried out immediately, but are first entered in a priority queue from which they are read out and carried out by a background process that runs with the lowest priority.

TDL tool chain

At the center of the TDL tool chain is the TDL: Compiler , which transforms a number of TDL modules into so-called E-Code (embedded code). The E-code is calculated for each mode of each module and describes the sequence of activities for the duration of a mode period. The activities are then repeated. The e-code commands represent instructions for a virtual machine , the so-called e-machine .

In addition to creating the e-code, the TDL compiler also allows platform-specific outputs to be created using extensions ( plug-ins ) that can be created for a specific target platform.

The organization of the compiler call with possible parameters such as the specification of the WCET for the individual tasks and the assignment of the modules to nodes of a distributed system is done by a tool called TDL: VisualDistributor .

As an alternative to describing a TDL module in text form, a graphic front end can be used with the TDL: VisualCreator tool .

The TDL: VisualAnalyzer tool can be used to monitor, log and analyze network activities on a FlexRay network .

A version of TDL exists for the simulation of TDL applications : VisualCreator , which is integrated into the Matlab / Simulink simulation tool . A version of TDL: VisualDistributor integrated in Simulink is available for generating platform-specific code .

Web links