Section: New Results

New features of Polychrony

Participants : Loïc Besnard, Thierry Gautier, Paul Le Guernic.

Reduction of communications. We have developed, as a general functionality of the Signal toolbox, a means to reduce communications between two graphs, using assignment clocks and utility clocks.

For a given signal x, its assignment clock represents the instants at which it may be modified (otherwise than keeping its previous value x$) while its utility clock in a given graph represents the instants at which it is effectively used in this graph.

Considering two graphs Gi and Gj with a signal x sent from Gi to Gj, containers are built above Gi and Gj in order to minimize the clock at which x must be communicated. On the sender side, the signal which has to be sent can be reduced to xj with xj:=x𝚠𝚑𝚎𝚗h, where h is the lower bound of the assignment clock of x and the utility clock of x in Gj. On the receiver side, x is replaced in Gj by x_r with x_r:=xj𝚍𝚎𝚏𝚊𝚞𝚕𝚝x_r$.

Note that this reduction is not always possible because it may introduce cycles between signals and clocks.

Experiments have been made on programs intended to the distribution of Quartz applications, with a gain of up to 40on some of them [18] .

Polychronous automata. We have defined a new model of polychronous constrained automata that has been provided as semantic model for our proposal of an extension of the AADL behavioural annex [20] . An algebra of regular expressions is also defined to represent abstractions of constrained automata or, more specifically, their time constraints.

An experimental implementation of the semantic features of this “timing annex” will be provided through the Polychrony framework. For that purpose, representations of automata are introduced in the Signal toolbox of Polychrony. In a first step, we have decided to provide only a minimal extension of the Signal language itself. A new syntactic category of process model, which is an automaton model, has been introduced. States are described by the association of labels with subprocesses, as it is available in Signal, and transitions between states, at a given clock, are written as calls to intrinsic (predefined) processes. Constraints described as regular expressions on events should also be introduced using intrinsic processes.

Automata will be used in different ways related to stategies of compilation. In particular, they will serve as an alternative model for the code generation. For that purpose, polychronous programs are rewritten thanks to valuations of memorized boolean signals. The resulting partially valuated programs are the states of a control automaton.

Such techniques can be applied to implement endo-isochronous programs. Currently, code may be generated only for endochronous programs, for which clock hierarchy is a tree. Endo-isochronous programs are compositions of endochronous programs the “intersection” of which is also endochronous. For example, an automaton can be built to generate code when two signals are known to alternate.