Axel Jantsch, Royal
Institute of Technology, Stockholm, ESDLab
Kalle Tammemäe, Tallinn
Technical University, Department of
CE
Table of Contents
UMC: A Unifying Multi-paradigm Hardware/Software
Codesign Framework for Electronic System Development
UMC: A Unifying Multi-paradigm Hardware/Software Codesign
Framework for Electronic System Development
1 Introduction
The Department of Electronics (ELE) at the Royal Institute of Technology
in Stockholm (KTH) and the Department of Computer Engineering at the Tallinn
Technical University (TTU) has research cooperation and exchange of students
since 199?. There is a strong intention and several reasons to intensify
this contact:
-
Due to overlapping research competence with different strength and emphasis
both groups will clearly benefit from closer research cooperation. While
TTU has a long experience in developing methods for testing of electronic
systems, KTH has a strong background in the areas of hardware synthesis.
Both groups have already successfully cooperated in the area of HW/SW codesign.
-
Both institutions serve a local industry with both disseminating advanced
research results and providing education at the graduate and post graduate
level and focused industrial courses. Industry in both Sweden and Estonia
would significantly benefit by the combination and joint coordination of
industrial courses by KTH and TTU.
The development and deployment of advanced methods and tools for the design
and implementation of electronic products are critical factor for the industry
in a very competitive world market. The industry in both Sweden and Estonia
relies on local Universities in improving and optimizing their design processes
which is a key factor in developing high-quality products in ever shorter
development time frames. A study by the consulting firm McKinsey [8]
shows, that the most successful companies in the industry have a much smaller
than average product development cycle and a much larger than average infrastructure
investment per design engineer.
The proposed project addresses this problem area. A successful integration
of the traditionally separate design activities of hardware and software
development will at the same time increase product quality and decrease
product development time. Also, the early design phase of specification
development is one of the major bottlenecks in the whole design process.
This is due to the unsystematic way of specification development and to
the huge affect of a low-quality specification on the entire design process
and eventually the product quality. We address this problem by integrating
several well established specification languages into the design process.
This will also preserve the huge investment in these languages by the industry.
By joining forces of KTH and TTU this project aims at
-
increasing the competence and profile of both institutions;
-
developing a framework for integration of system specification, hardware
design, and software design;
-
disseminating the knowledge and experience of both institutions to industry
in Sweden and Estonia in the form of industrial courses.
2 Objectives
Based on KTH's and TTU's earlier work in the areas of hardware/software
codesign and hardware synthesis we propose to develop an integrated and
unifying framework for specification, HW/SW codesign and synthesis of complex
telecommunication systems. The core of our proposition is
-
to integrate several established front-end languages which are widely adopted
in industry such as SDL, Matlab, C++, and VHDL.
-
to use one unifying internal representation for all design tools;
We want to use several front-end languages for system specification because
there exists no single language to day which covers all necessary aspects
for the specification of complex telecom systems. In an ongoing international
discussion in a series of workshops [1,
2, 3]
it is generally agreed that no single existing language is sufficient,
and there are two alternatives. Either several languages in the different
disciplines of HW and SW development are integrated or a new specification
language will be designed. While there is a strong bias of major design
tool vendors towards designing a new language, this will be a joint international
effort which takes several years. KTH and TTU will take part in this activity
but will not compete with it in designing a new language. In the meantime
KTH and TTU will join forces to build up a design framework which integrates
ongoing activities in both Universities and which allows to efficiently
develop methods and tools for system level specification and design for
a rapidly growing electronics industry.
Several languages are widely used today in different disciplines: C++
and VHDL are dominant languages for SW and HW design and implementation.
SDL [4] is widely used by the telecom
industry for specification and design of control dominated concurrent SW.
Matlab [5] is a well established
language for the modelling and design of complex mathematical algorithms
for signal and data processing. Since more than one of the above languages
are required for modelling an entire complex electronic system we propose
to integrate them in two ways:
-
Integration for system simulation requires to develop a method for modeling
to allow the seamless and transparent interaction of different parts of
the system. It also requires the development of a simulation engine.
-
The integration of the design and verification process requires the development
of a unifying internal representation.
The development of an internal representation is at the core of this joint
proposal because in order to conduct research and development for methods
and tools every research lab has to define and implement an internal representation.
This effort can be shared by KTH and TTU and both labs can concentrate
better on complementary development of new techniques and tools.
Very often the implementation of an internal representation is the bases
for good research but is by itself not an appreciated achievement. However,
in this case the integration of several semantically very different languages
by means of an internal representation is also an academically challenging
task and would be welcomed by industry if successful. We intend to employ
a two layer approach which separates semantics from pragmatics as outlined
below.
UMC is coordinated with other activities in KTH and TTU to maximise
the synergy. Related activities are:
-
Within the "Advanced System Design with ASIC" consortium ESDlab run two
sub-projects concerning system specification and HW/SW codesign. The consortium's
activities are planned from June 1997 till December 1999 and are the continuation
of a three year predecessor project. The system specification sub-project
evaluates different system specification languages such as, Erlang, SDL,
Haskell, ML, and SpecChart. This has contributed to the formulation of
this proposal and will continue to inspire the integration of several specification
languages into a common framework, as outlined here. The HW/SW codesign
sub-project deals with communication and storage synthesis, which are two
out of several important research issues in this area. UMC will complement
this work by addressing the partitioning and the estimation problems.
-
In a cooperation with CelsiusTech Electronics, which is planned to start
in October 1997, a specialized solution to integrate SDL with Matlab will
be developed. There many of the subtle problems of integrating such conceptually
different languages will be investigated and a special purpose solution
will be developed, which will not rely on a common internal representation.
In the proposed cooperation with TTU we will generalize the findings and
solutions from that work and base the integration on a common internal
representation.In this project we also attempt to address the problem of
property estimation in early design phases. The results from that will
also be used and generalized in UMC to address the problems of performance,
cost, and power estimation.
-
Estonian Science Foundation project NO. 2808 "Hardware and Software Codesign
Methods of Control Oriented Systems". This relatively small project from
1997 till 1998 investigates the control-oriented systems at specification
level in order to elaborate the proper codesign methods and methodology
embedded into an experimental toolkit package for synthesis of such systems.
-
Strategic Competence Center in Information Technology (SCCIT) of Tallinn
Technical University is financing partially the 3-year project, started
in 1997, "Heterogeneous Digital Systems Design Environment", which is devoted
to the development and emulation of large heterogeneous digital systems,
following the emerging System-On-Chip technology opportunities. The project
money is intended to use for obtaining specific measurement and emulation
equipment, usable for prototyping of codesign systems.There is some overlap
between UMC and ITK project goals which has to be reached concurrently,
beneficially for both.
3 Work Packages
We propose four work packages, each of the size of a PhD thesis project.
Two of the students will sit permanently in Tallin and two in Stockholm
with regular exchanges and common meetings.
The four work packages are:
-
IRSYD: development of a unifying internal representation with support for
front-end languages
-
Cosimulation: development of a simulation engine for the internal representation
-
Partitioning: Development of a general partitioning technique
-
Estimation: Development of general performance, cost, and power estimation
techniques to integrate early design phases with the implementation.
3.1 Work Package 1: IRSYD
The development of a common internal representation is an ideal project
for collaboration because all parties benefit heavily. The necessary development
and implementation effort can be shared among the collaborators and all
developed techniques and tools can be used by all partners as a basis for
further work. Thus, the partners benefit in two ways: the costs are shared
and therefore lower for individual parties and the results are also shared
and therefore higher than if each group would work alone.
The development of IRSYD, an Internal Representation for System Description,
has been started at KTH in the beginning of 1997 and has resulted in a
report [6] and a presentation at
the Second Workshop on System Design Languages [7].
However, this has emerged from the internal representation for hardware
synthesis in an ad-hoc manner. During this work it has been realized clearly
that there is a fundamental problem that has to be treated thoroughly.
An internal representation that supports several conceptually different
front-end languages can be defined in two different ways:
-
It can be based on low level semantic concepts which are powerful enough
to represent all semantic concepts of the front-end languages. For instance
all communication between concurrent processes could be modelled in terms
of shared variables and all communication primitives of the front-end languages
such as message passing and blocking and buffered communication would be
compiled into a shared memory based representation. The advantage is that
a fairly small set of semantic primitives would suffice to support several
front-end languages. The disadvantage is that information would be lost
during the compilation process. After compilation the original concept
of the front-end language could not be reconstructed. For instance if in
the front-end language description it is apparent that a communication
channel is only used by two processes this information might be lost after
compilation. Thus, analysis and synthesis tools cannot safely assume that
only two processes are using the channel and will be forced to dimension
the capacity and functionality of the channel for the worst case.
-
The other alternative is to represent every important semantic concept
from all front-end languages directly in the internal representation. This
approach avoids any loss of information but fails to truly integrate the
front-end languages and for each new language new concepts must be added
and synthesis and analysis tools must be adapted. This would in effect
reduce one of the main benefits of a common internal representation, i.e.
the reuse of techniques and tools for different front-end languages.
In UMC we propose a two layer approach which avoids the disadvantages of
both alternatives. The internal representation consists of two layers:
the lower layer constitutes the semantic level and the upper layer the
pragmatic level. At the semantic layer IRSYD will provide all semantic
concepts that are necessary to represent the proposed front-end languages.
The concepts can be fairly primitive but can also be complex and powerful
if desirable. No matter how directly these modelling concepts represent
front-end language concepts, no information will be lost due to the second
layer, which captures the pragmatics of the front-end languages. The challenges
are to define the semantic layer and to make the pragmatic layer consistent
and sufficiently formal.
In addition IRSYD will have a means to represent non-functional information.
This allows tools communicate with each other through IRSYD, for instance
to document design decisions and store analysis results.
The result of this workpackage will be a definition of IRSYD, an implementation
of IRSYD in terms of C++ classes, and the definition and implementation
of a mapping from Matlab onto IRSYD.
3.2 Work Package 2: Cosimulation
Traditionally cosimulation has to been the main methodology for design
validation. Notwithstanding recent progress in formal verification techniques,
they are not applicable to large and complex heterogeneous systems, but
only to refined descriptions of a single unit or function. Therefore, the
simulation remains the main methodology for validation at the system level.
Simulation performance depends heavily on the abstraction level of the
system model. Thus, it is beneficial to simulate components modelled at
different abstraction levels together to be able to concentrate only on
some parts of the system while modelling other parts at a high functional
level. This means, that simulation has to be done at different design representation
levels (event-based, cycle-based, reason-based).
Simulation has to be transparent over different design refinement stages
starting from generated IRSYD until synthesized design, partitioned into
units in different implementation domains (HW, SW).
Consequently, the cosimulation subsystem of UMC has to implement following
functions:
-
IRSYD graph animation,
-
IRSYD graph animation together with foreign simulation packages for refined
system components, after the HW or SW code generation.
-
Cosimulation between HW and SW domains, running on foreign simulators/interpreters
supplied with communication interfaces. The basic idea is to keep up enough
synchronization points to follow simulation at higher level.
IRSYD graph animation can be performed based on interactive graph browsers,
but cosimulation between different domains has to be organized using specific
communication drivers from a work package database or library.
Simulation experiences obtained during elaborating HW/SW co-design package
AKKA [9], can be fully exploited
for building up an IRSYD centric cosimulation environment.
3.3 Work Package 3: Partitioning
Partitioning is the task of clustering objects into groups such, that
a given objective function is optimised with respect to a set of design
constraints [10]
Partitioning is main tool of divide and conquer design methodology for
solving large problems. Several partitioning algorithms, for instance simulated
annealing, tabu search, knapsack stuffing [11],
hierarchical clustering, etc. can be applied. In case of UMC, partitioning
methods should be revised due to two-layer representation of information
usable during partitioning. The basic idea is to compare different partitioning
methods by arranging competition between them and to select the best one
for our problem.
Partitioning is one of the most fragile parts of codesign because its
result defines the final structure for implementation. Very often this
task is left to designer or done semi-automatically. Hence, partitioning
is also a problem of human-computer interaction. Due to the enormous amount
of information collected for partitioning during the construction of the
IRSYD representation and generated by analysis and estimation tools, there
is a demand for fast front-end classification method to aid the designer
to obtain and assess the data. We propose to investigate fast and low complexity
bulk data sorting methods to obtain a monotonous function over system properties
[12].
In addition, the following sub-problems have to be solved:
-
Representation and visualization of the problem before, during, and after
partitioning;
-
Interactive retrieval and visualization of information about system components
and clusters of components;
-
Interactive system partitioning guided by the designer's experience;
-
Implementing backtracking for documentation and re-partitioning.
3.4 Work Package 4: Estimation
In order to link early design phases with implementation issues, some
important properties must be estimated long before an implementation is
available for analysis. The estimation algorithms will operate on IRSYD
and add the estimation results to the IRSYD description. The properties
to be estimated are performance, cost and power. The following aspects
are important and will be emphasized:
-
Interconnect domination: There is clearly a trend in the evolution of electronic
systems to become more and more interconnect dominated. Therefore it is
critical to concentrate on the contribution of communication and interconnection
to the design properties performance, cost, and power.
-
Incremental estimation: In order to minimize the run time of the estimation
algorithms and to improve the interactivity of the system, incremental
estimation algorithms will be developed. Thus, when only a small part of
the model has changed, only the modified part has to be re-estimated together
with an analysis of the impact of this small part to the estimation results
for the remaining design.
-
Visualization: Estimation results will be used by other tools and by the
designer. To help the designer to comprehend the analysis data, they must
be presented and visualized properly. Since the estimators calculate data
about all hierarchy levels and all parts of the design, the amount of data
can easily be overwhelming. A flexible and user driven visualization technique,
which quickly highlights bottlenecks and hot spots, can convey important
information to the user much faster than raw data could.
The result of this work package will be the development of estimation algorithms
for performance, cost, and power consumption, their implementation based
on IRSYD, and the visualization of their results.
4 References
-
[1]
-
SLD'96 System Level Design Workshop, October 1st - 2nd, 1996, Dallas, Texas,
http://www.cfi.org/sld/
-
[2]
-
First Workshop on Systems Design Languages, April 7th - 8th, 1997, San
Jose, California, http://www.cfi.org/sld/sldl/
-
[3]
-
Second Workshop on System Level Design Language, July 8th - 10th, 1997,
Il Chiocco, Italy, http://www.ecsi.org/ecsi/sld.html
-
[4]
-
A. Olsen, O Färgemand, B. Møller-Pedersen, R. Reed, and J.R.W.
Smith, Systems Engineering with SDL-92, North Holland, 1995.
-
[5]
-
MATLAB: High-performance Numeric Computation and Visualization Software.
User's Guide, 1992.
-
[6]
-
Peeter Ellervee, Shashi Kumar, Axel Jantsch, Ahmed Hemani, Bengt Svantesson,
Johnny Öberg, and Ingo Sander, IRSYD - An Internal Representation
for System Description. Version 0.1, Electronic System Design Laboratory,
Department of Electronics, Royal Institute of Technology, report no. TRITA-ESD-1997-10,
ESDlab, KTH-Electrum, Electrum 229, S-16440 Kista, Sweden, 1997.
-
[7]
-
Shashi Kumar, Axel Jantsch, Peeter Ellervee, Ahmed Hemani, and Anshul Kumar,
"Internal Representation for Specification and Design of Heterogeneous
Systems", Second Workshop on Systems Design Languages, Italy, July
1997.
-
[8]
-
J. Kluge, L. Stein, E. Krubasik, I. Beyer, D. Düsedau, and W. Huhn,
Wachstum durch Verzicht: Schneller Wandel zur Weltklasse - Vorbild Elektronikindustrie,
McKinsey and Company, Inc., Schäfer und Pöschel Verlag, 1994.
-
[9]
-
Kalle Tammemäe, Mattias O'Nils, Axel Jantsch, and Ahmed Hemani, "AKKA:
A Tool-Kit for Cosynthesis and Prototyping", IEE Digest No.96/036 of Colloquium
on Hardware-software Cosynthesis for Reconfigurable Systems, pp. 8/1-8/8,
Bristol, February 22, 1996.
-
[10]
-
D.D. Gajski, High-level synthesis: introduction to chip and system design,
Kluwer Academic Publisher, 1992.
-
[11]
-
M. O'Nils, Hardware/Software Partitioning of Embedded Computer Systems,
Licentium Thesis, KTH, 1996.
-
[12]
-
Leo Vyhandu "Fast methods for Data Analysis and Processing", Transactions
of the Tallinn Technical University, 1986.