Next: To create an algorithm
Up: Syndex v6 - User
Previous: Graph elements becoming inactive
  Contents
In AAA methodology, an algorithm is specified as a directed acyclic
graph (DAG) infinitely repeated. Directed means that for each edge
representing a relation between vertices, the vertices n-uple is
ordered, i.e. its first element is the source
vertex the other one(s) is (are) the destination vertex(ices).
Still in AAA, vertices are operations; operation stands for a sequence
of instructions which starts after all its input data are available
and produces output data at the end of the sequence. In SynDEx, there
is an additionnal notion of reference. To each reference corresponds
the definition of an algorithm (we will say ``definition'' instead of
``algorithm definition'' for the rest of this chapter). The same
definition may correspond to several references to this definition.
An algorithm definition is a DAG similar to those in AAA, except that
vertices are references or ports. A reference in a definition may
correspond to a definition which contains several references and so
on. Ports are used only for propagating back and
forth edges along the hierarchy.
In SynDEx, algorithms can be defined through hierarchy. A definition
is said hierarchical when it defines (explicitly or implicitly) an
algorithm which contains at least one dependence (and possibly
references), otherwise it is said
atomic.
A definition is said explicitly hierarchical when the algorithm
specified by the user contains at least one edge (and possibly
references). This includes conditioning, repetitions of hierarchical
definitions and, more generally, definitions defined
through several levels of hierarchy.
A definition is said implicitly hierarchical when the algorithm
specified by the user doesn't contain any dependence and yet will be
transformed by SynDEx, for the adequation, into a graph which contains
dependences. This happens only with
repetitions of atomic definitions.
In a definition window, references to a definition explicitly
hierarchical are displayed with a double-border, references to
conditioned definitions have their conditioning port displayed in
yellow and the repetition factor of a reference is displayed next to
to the references name.
There are five types of definitions: constant (input vertex of the
DAG, null execution time) and sensor (input vertex of the DAG
producing data from a physical sensor) which both have no input ports,
actuator (output vertex of the DAG consuming data for a physical
sensor) which has no output port, function (reads data on input ports,
executes instructions without any side-effect, writes data on output
ports), and delay (memorizes data during one or several infinite
repetition of the DAG, for use in next repetitions). Only a function
may be defined through explicit hierarchy.
There are four types of edges: strong data communication and execution
precedence, weak data communication and execution precedence, data
communication only, execution precedence only. The two first types of
edges impose that the reference which produces the data is executed
before the reference which consumes the data,
whereas in the case of the third type of edge the reference which produces the
data may be executed before or after the reference which consumes the data
(blackboard). Strong data communication means that during the first
repetition and only during the first repetition of the DAG, the reference which
produces the data is executed before the reference which consumes the data,
whereas weak data communication means that during the first repetition of
the DAG the reference which produces the data is executed after the reference
which consumes the data, implying that this reference consumes a data
specifically initialized. The fourth type of edge only imposes an execution
order between references, no data is consumed or produced.
In a definition window, to open the definition corresponding to a
reference in order to inspect and possibly modify its content,
point the cursor at this reference which borders will highlight in red, then
double click the left button of the mouse. This will display the graph
of the definition in a new window.
To label an algorithm window with "(main)",
choose MAIN DEFINITION in the EDIT menu. Notice that the algorithm (main) must be at the root level of a
hierarchy; it can't contain ports.
To open the algorithm (main)
definition, choose the option EDIT MAIN DEFINITION in the menu ALGORITHM of the
principal window.
Subsections
Next: To create an algorithm
Up: Syndex v6 - User
Previous: Graph elements becoming inactive
  Contents
Julien Forget
2003-03-21