<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    <title>Project-Team:TEA</title>
    <link rel="stylesheet" href="../static/css/raweb.css" type="text/css"/>
    <meta name="description" content="New Results - New features of Polychrony"/>
    <meta name="dc.title" content="New Results - New features of Polychrony"/>
    <meta name="dc.creator" content="Loïc Besnard"/>
    <meta name="dc.creator" content="Thierry Gautier"/>
    <meta name="dc.creator" content="Paul Le Guernic"/>
    <meta name="dc.subject" content=""/>
    <meta name="dc.publisher" content="INRIA"/>
    <meta name="dc.date" content="(SCHEME=ISO8601) 2014-01"/>
    <meta name="dc.type" content="Report"/>
    <meta name="dc.language" content="(SCHEME=ISO639-1) en"/>
    <meta name="projet" content="TEA"/>
    <!-- Piwik -->
    <script type="text/javascript" src="/rapportsactivite/piwik.js"></script>
    <noscript><p><img src="//piwik.inria.fr/piwik.php?idsite=49" style="border:0;" alt="" /></p></noscript>
    <!-- End Piwik Code -->
  </head>
  <body>
    <div class="tdmdiv">
      <div class="logo">
        <a href="http://www.inria.fr">
          <img style="align:bottom; border:none" src="../static/img/icons/logo_INRIA-coul.jpg" alt="Inria"/>
        </a>
      </div>
      <div class="TdmEntry">
        <div class="tdmentete">
          <a href="uid0.html">Project-Team Tea</a>
        </div>
        <span>
          <a href="uid1.html">Members</a>
        </span>
      </div>
      <div class="TdmEntry">Overall Objectives<ul><li><a href="./uid3.html">Introduction</a></li><li><a href="./uid4.html">Motivations</a></li><li><a href="./uid6.html">Challenge</a></li></ul></div>
      <div class="TdmEntry">Research Program<ul><li><a href="uid13.html&#10;&#9;&#9;  ">State of the Art</a></li><li><a href="uid26.html&#10;&#9;&#9;  ">Modelling Time</a></li><li><a href="uid37.html&#10;&#9;&#9;  ">Modelling Architectures</a></li><li><a href="uid43.html&#10;&#9;&#9;  ">Time Scheduling</a></li><li><a href="uid59.html&#10;&#9;&#9;  ">Virtual Prototyping</a></li><li><a href="uid65.html&#10;&#9;&#9;  ">Research Objectives</a></li></ul></div>
      <div class="TdmEntry">Application Domains<ul><li><a href="uid97.html&#10;&#9;&#9;  ">Application Domains</a></li></ul></div>
      <div class="TdmEntry">New Software and Platforms<ul><li><a href="uid99.html&#10;&#9;&#9;  ">The Eclipse project POP</a></li><li><a href="uid118.html&#10;&#9;&#9;  ">Integrated Modular Avionics design using Polychrony</a></li><li><a href="uid120.html&#10;&#9;&#9;  ">Safety-Critical Java Level 1 Code generation from Dataflow Graph Specifications</a></li></ul></div>
      <div class="TdmEntry">New Results<ul><li><a href="uid124.html&#10;&#9;&#9;  ">Highlights of the Year</a></li><li><a href="uid125.html&#10;&#9;&#9;  ">Priority-Driven Scheduling of Static Dataflow Graphs through Time Abstraction</a></li><li><a href="uid136.html&#10;&#9;&#9;  ">Formal Verification of a Synchronous Data-flow Compiler: from Signal to C</a></li><li><a href="uid141.html&#10;&#9;&#9;  ">Ongoing integration of Polychrony with the P toolset</a></li><li><a href="uid143.html&#10;&#9;&#9;  ">A synchronous annex for the AADL</a></li><li class="tdmActPage"><a href="uid144.html&#10;&#9;&#9;  ">New features of Polychrony</a></li><li><a href="uid145.html&#10;&#9;&#9;  ">Optimized Distribution of Synchronous Programs via a Polychronous Model</a></li><li><a href="uid147.html&#10;&#9;&#9;  ">Component-based Design of Multi-rate Systems</a></li></ul></div>
      <div class="TdmEntry">Bilateral Contracts and Grants with Industry<ul><li><a href="uid149.html&#10;&#9;&#9;  ">Bilateral Contracts with Industry</a></li></ul></div>
      <div class="TdmEntry">Partnerships and Cooperations<ul><li><a href="uid158.html&#10;&#9;&#9;  ">National Initiatives</a></li><li><a href="uid195.html&#10;&#9;&#9;  ">International Initiatives</a></li><li><a href="uid224.html&#10;&#9;&#9;  ">International Research Visitors</a></li></ul></div>
      <div class="TdmEntry">Dissemination<ul><li><a href="uid228.html&#10;&#9;&#9;  ">Promoting Scientific Activities</a></li><li><a href="uid236.html&#10;&#9;&#9;  ">Teaching - Supervision - Juries</a></li></ul></div>
      <div class="TdmEntry">
        <div>Bibliography</div>
      </div>
      <div class="TdmEntry">
        <ul>
          <li>
            <a id="tdmbibentmajor" href="bibliography.html">Major publications</a>
          </li>
          <li>
            <a id="tdmbibentyear" href="bibliography.html#year">Publications of the year</a>
          </li>
        </ul>
      </div>
    </div>
    <div id="main">
      <div class="mainentete">
        <div id="head_agauche">
          <small><a href="http://www.inria.fr">
	    
	    Inria
	  </a> | <a href="../index.html">
	    
	    Raweb 
	    2014</a> | <a href="http://www.inria.fr/en/teams/tea">Presentation of the Project-Team TEA</a></small>
        </div>
        <div id="head_adroite">
          <table class="qrcode">
            <tr>
              <td>
                <a href="tea.xml">
                  <img style="align:bottom; border:none" alt="XML" src="../static/img/icons/xml_motif.png"/>
                </a>
              </td>
              <td>
                <a href="tea.pdf">
                  <img style="align:bottom; border:none" alt="PDF" src="IMG/qrcode-tea-pdf.png"/>
                </a>
              </td>
              <td>
                <a href="../tea/tea.epub">
                  <img style="align:bottom; border:none" alt="e-pub" src="IMG/qrcode-tea-epub.png"/>
                </a>
              </td>
            </tr>
            <tr>
              <td/>
              <td>PDF
</td>
              <td>e-Pub
</td>
            </tr>
          </table>
        </div>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid143.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid145.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
      <div id="textepage">
        <!--DEBUT2 du corps du module-->
        <h2>Section: 
      New Results</h2>
        <h3 class="titre3">New features of Polychrony</h3>
        <p class="participants"><span class="part">Participants</span> :
	Loïc Besnard, Thierry Gautier, Paul Le Guernic.</p>
        <p class="notaparagraph"><b>Reduction of communications.</b>
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.</p>
        <p>For a given signal <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>x</mi></math></span>, its assignment clock represents the instants
at which it may be modified (otherwise than keeping its previous value <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>x</mi><mi>$</mi></mrow></math></span>)
while its utility clock in a given graph represents the instants at which it is
effectively used in this graph.</p>
        <p>Considering two graphs <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>G</mi><mi>i</mi></msub></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>G</mi><mi>j</mi></msub></math></span> with a signal <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>x</mi></math></span> sent
from <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>G</mi><mi>i</mi></msub></math></span> to <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>G</mi><mi>j</mi></msub></math></span>, containers are built above <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>G</mi><mi>i</mi></msub></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>G</mi><mi>j</mi></msub></math></span>
in order to minimize the clock at which <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>x</mi></math></span> must be communicated.
On the sender side, the signal which has to be sent
can be reduced to <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>x</mi><mi>j</mi></msub></math></span> with <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><msub><mi>x</mi><mi>j</mi></msub><mspace width="0.166667em"/><mo>:</mo><mo>=</mo><mspace width="0.166667em"/><mi>x</mi><mspace width="0.166667em"/><mi>𝚠𝚑𝚎𝚗</mi><mspace width="0.166667em"/><mi>h</mi></mrow></math></span>,
where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>h</mi></math></span> is the lower bound of the assignment clock of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>x</mi></math></span>
and the utility clock of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>x</mi></math></span> in <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>G</mi><mi>j</mi></msub></math></span>.
On the receiver side, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>x</mi></math></span> is replaced in <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>G</mi><mi>j</mi></msub></math></span> by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>x</mi><mo>_</mo><mi>r</mi></mrow></math></span>
with <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>x</mi><mo>_</mo><mi>r</mi><mspace width="0.166667em"/><mo>:</mo><mo>=</mo><mspace width="0.166667em"/><msub><mi>x</mi><mi>j</mi></msub><mspace width="0.166667em"/><mi>𝚍𝚎𝚏𝚊𝚞𝚕𝚝</mi><mspace width="0.166667em"/><mi>x</mi><mo>_</mo><mi>r</mi><mi>$</mi></mrow></math></span>.</p>
        <p>Note that this reduction is not always possible because
it may introduce cycles between signals and clocks.</p>
        <p>Experiments have been made on programs intended to the distribution
of Quartz applications, with a gain of up to 40on some of them <a href="./bibliography.html#tea-2014-bid11">[18]</a> .</p>
        <p class="notaparagraph"><b>Polychronous automata.</b>
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 <a href="./bibliography.html#tea-2014-bid4">[20]</a> .
An algebra of regular expressions is also defined to represent
abstractions of constrained automata or, more specifically,
their time constraints.</p>
        <p>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 <i>intrinsic</i> (predefined) processes.
Constraints described as regular expressions on events should
also be introduced using intrinsic processes.</p>
        <p>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.</p>
        <p>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.</p>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid143.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid145.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
    </div>
  </body>
</html>
