Heterogeneity: a bottleneck in designing embedded systems
Embedded systems are intrinsically heterogeneous since they are based on
processors that see the world digitally and an environment that is analog. In
addition, the processing elements are heterogeneous too since they often include
micro-controllers and digital signal processors in addition to special purpose
computing engines.
Today, designers face a much
diversified landscape when it comes to methodologies, supporting tools, and
engineering best practices. This would not necessarily be a problem if it were
not for the fact that transitioning between tools that are based on different
paradigms is increasingly becoming a design productivity bottleneck. A solution
to this problem would be to impose a “homogeneous'' design policy, such as the
fully synchronous approach.
However, heterogeneity will
naturally manifest itself at the component level where different models of
computation may be used to represent component operation and, more frequently,
at different levels of abstraction, where, for example, a synchronous-language
specification of the design may be refined into a globally asynchronous locally
synchronous (GALS) architecture. Combining non functional aspects with
functional ones further increases heterogeneity.
Having a sound framework for
the heterogeneous modeling of reactive systems gives freedom of choice between
different synchronization policies at different stages of the design process,
allows to smoothly integrating non functional features, and provides a solid
foundation to handle formally communication and coordination among heterogeneous
components. This problem can be addressed from both semantic and syntactic
sides.
Semantic
aspects of heterogeneity
Semantics is about the mathematical meaning of models and programs. During the
80’s and 90’s, solid foundations have been provided to the semantics of
languages dedicated to reactive systems, a class of systems that
continuously interacts with its environment and is therefore central to embedded
systems design. Examples include Simulink/Stateflow, the statecharts, etc… More
recently, timed and other variants of these formalisms have been proposed to
address non functional properties. One can say that semantics is not really an
issue any more for homogeneous systems, i.e., systems having a homogeneous
Models of Computation and Communication (MoCC) – at least for those formalisms
that have been nicely designed.
Heterogeneous systems are
ultimately composed of homogeneous sub-systems or components having
different MoCCs. What does the word composed mean in this context? What
kind of mathematical parallel composition can give a meaning to this informal
statement? This aspect of heterogeneity is referred in our report as “horizontal
heterogeneity”.
“Vertical heterogeneity” is
encountered when traversing the design flow with its different tools. What does
it mean to map a design based on a certain MoCC to an architecture based
on a different MoCC? What if the design and the architecture are heterogeneous
themselves? How can we claim correct-by-construction deployment in
these situations?
Syntactic
aspects of heterogeneity
Notations or formalisms always use a precisely defined syntax, be it textual or
graphical. Combining models based on different formalisms requires some kind of
syntactic adaptors.
Also, some closely related
notations have semantics that are variants one another (think of the many
semantics of statecharts that have been proposed and even implemented).
Sometimes, these variants can be expanded by using an identical formalism or
language. This expansion is another way to relate different (but still close
enough) MoCCs. This typically yields a more flexible but less powerful way of
handling heterogeneity.
Research
agenda
Develop a semantic theory of heterogeneous reactive systems that is able to
handle both horizontal and vertical heterogeneity. Use this theory to provide
the foundations for combined functional and non functional modeling. Use this
theory to develop methods, algorithms, and tools to support
correct-by-construction deployment. Develop a theory and tools addressing the
syntactic aspects of heterogeneity.
|