SlideShare a Scribd company logo
230740-7475/01/$10.00 © 2001 IEEENovember–December 2001
THE ESSENCE OF embedded-systems design
is implementing a specific set of functions while
satisfying constraints on characteristics such as per-
formance, cost, emissions, power consumption,
and weight. The choice of implementation archi-
tecture determines whether designers will imple-
ment a function as a hardware component or as
software running on a programmable component.
In recent years, the functions demanded for
embedded systems have grown so numerous
and complex that development time is increas-
ingly difficult to predict and control. This com-
plexity, coupled with constantly evolving
specifications, has forced designers to consid-
er intrinsically flexible implementations—those
they can change rapidly. For this reason, and
because hardware-manufacturing cycles are
more expensive and time-consuming, software-
based implementation has become more pop-
ular. Processors’ increased computational
power and correspondingly decreased size and
cost let designers move increasingly more func-
tionality to software.
However, along with this move comes increas-
ing difficulty in verifying design correctness.
This verification is critical due to safety consider-
ations in several application domains—
transportation and environment monitoring, for
example. In traditional, PC-like software applica-
tions, these safety issues typically don’t come up.
In addition, the software world has paid little
attention to hard constraints on software’s reac-
tion speed, memory footprint, and power con-
sumption—all crucial issues for embedded
systems—because they are relatively unimportant
in traditional software development. In embed-
ded-systems design, such hard software charac-
teristics are unavoidable. It is no wonder, then,
that there is a crisis in embedded-software design.
Along with the pressure on system designers
to choose flexible implementations, the indus-
try is also witnessing IC manufacturers’ growing
preference for chips that will work for several
designs. This lets manufacturers amortize devel-
opment cost over a large number of units, as
discussed in the sidebar, “Motivations for plat-
form-based design.” This alignment of designers
and manufacturers has resulted in the birth of
platform-based design,1,2
in which reuse and pro-
grammability are key.
We believe that addressing the embedded
Platform-Based Design and
Software Design
Methodology for
Embedded Systems
Embedded products have become so complex
and must be developed so quickly that current
design methodologies are no longer adequate.
The authors’ vision for the future of embedded-
system design involves two essential components:
a rigorous methodology for embedded software
development and platform-based design.
Alberto Sangiovanni-Vincentelli
University of California, Berkeley
Grant Martin
Cadence Design Systems
software crisis and the manufacturing problem
necessitates radical changes in embedded-
systems design. In particular, we propose a rig-
orous methodology for embedded-software
development and platform-based design.
Vision for embedded-system design
Our aim is high: a system design methodol-
ogy and supporting tools that
I address the supply chain integration prob-
lem, the linkage between intellectual prop-
erty (IP) creators, foundries, semiconductor
houses, systems houses, and applications
software developers;
I consider metrics to govern embedded-systems
design, including cost, weight, size, power
dissipation, and required performance;
I work at all abstraction levels, from concep-
tion to software and silicon implementation
and packaging, with guaranteed correctness
and efficient trade-off evaluation; and
I favor reuse by identifying requirements for
real plug-and-play operation.
To achieve these goals, our embedded-
Roadmaps and Visions
24 IEEE Design & Test of Computers
IC technology lets us integrate so many functions onto
a single chip that we can indeed implement an “environ-
ment-to-environment” system on a chip. However, we
cannot simply view SoCs as an extension of the applica-
tion-specific IC methodology that has been in vogue for
the past 10 years. The economics of SoCs in the ASIC
framework are not appealing. The cost of designing and
manufacturing SoCs is too high, given the relatively few
parts typical in ASIC production. Our platform-based
design methodology is an outgrowth of the SoC debate.
The overall goal of electronic system design is to bal-
ance production costs with development time and cost
in view of performance and functionality constraints.
Manufacturing cost depends mainly on a product’s
hardware components. Minimizing chip size to reduce pro-
duction cost implies tailoring the hardware to product func-
tionality. The cost of a state-of-the-art fabrication facility
continues to rise. A new 300-mm, 0.13- or 0.10-micron,
high-volume manufacturing plant today costs about $3.5
billion.1
The ITRS predicts that although manufacturing
complex SoC designs will be feasible—at least down to
50-nm minimum feature sizes—producing practical masks
and exposure systems will likely be a major bottleneck for
such chips’ development. That is, the cost of masks will
grow even more rapidly for these fine geometries. A single
mask set and probe card for a next-generation chip costs
more than $1 million for a complex part—up from less than
$100,000 a decade ago.2
This leads us to the first motiva-
tion for a move to platform-based design:
Motivation A. Increasing mask and manufacturing setup costs
are biasing manufacturers toward parts that have guaranteed
high-volume production from a single mask set.
Design costs are rising exponentially because of
products’ increased complexity (especially in embed-
ded software), the challenges posed by physical effects
for deep-submicron design, and the shortage of talent.
According to Sematech, design productivity is falling
behind exponentially with respect to technology
advances. Time-to-market constraints are also intensify-
ing so rapidly that even if costs cease to be an issue, it
is still becoming plainly impossible to develop complex
parts quickly enough. This leads us to a second reason
to embrace platform-based design:
Motivation B. Design problems are pushing IC and system
companies away from full-custom design methods, toward
designs that they can assemble quickly from predesigned
and precharacterized components. This places priority on
design reuse; correct component assembly; and fast, reli-
able, efficient compilation from specifications to imple-
mentations.
Platform-based design can trade off various aspects
of manufacturing costs, nonrecurring expenses, and
design productivity. Reuse, flexibility, and efficiency are
key to this approach.
References
1. S.P. Dean, “ASICs and Foundries,” Integrated Systems
Design, Mar. 2001; http://www.isdmag.com/story/
OEG20010301S0051.
2. “NRE Charges for SoC Designs to Hit $1M, Study Says,”
Semiconductor Business News, Oct. 1999; http://www.
csdmag.com/story/OEG19991006S0043.
Motivations for platform-based design
systems design methodology will leverage three
basic principles:
I Orthogonality. Based on the principle of sep-
aration of concerns, the methodology will
clearly separate behavior from implementa-
tion, and communication from computation.
I Theoretical framework. Without a rigorous
approach, it isn’t possible to achieve correct,
efficient, reliable, and robust designs. Solid
theoretical foundations will provide the nec-
essary infrastructure for a new generation of
interoperable tools that will work at different
abstraction levels. These tools will verify, sim-
ulate, and map designs from one abstraction
level to the next, help choose implementa-
tions that meet constraints, and optimize
design criteria. The framework will handle
both embedded software and hardware
designs, and precise semantics will let the
framework and tools analyze the design
specifications, identify and correct function-
al errors, and initiate synthesis processes.
I Platforms. Incorporating this common reuse
technique into our methodology will sub-
stantially reduce design time and cost. We
have formalized and elaborated the plat-
form concept to yield an approach that com-
bines hardware and software platforms into
a system platform.
Leveraging these principles, we can build an
environment in which designing complex sys-
tems will take only days instead of the many
months needed today.
Problems with embedded systems
To cope with the tight constraints on perfor-
mance and cost typical of most embedded sys-
tems, programmers write today’s embedded
software using low-level programming lan-
guages such as C or even assembly language.
The tools for creating and debugging embed-
ded software are basically the same as those for
standard software: compilers, assemblers,
debuggers, and cross-compilers. The difference
is in quality: Most tools for embedded software
are rather primitive compared to equivalent
tools for richer platforms. However, besides
these tools, embedded software also needs
hardware support for debugging and perfor-
mance evaluation, which are far more impor-
tant for embedded software than for standard
software. Another characteristic of embedded
software is that, because of performance and
memory requirements, it typically uses applica-
tion-dependent, proprietary operating systems.
When embedded software was simple, there
was little need for a more sophisticated
approach. However, with the increased com-
plexity of embedded-systems applications, this
rather primitive approach has become the bot-
tleneck. Most system companies have enhanced
their software design methodologies to increase
productivity and product quality. Many have
rushed to adopt object-oriented approaches and
other syntactically driven methods. Such meth-
ods certainly have value in cleaning up embed-
ded-software structure and documentation, but
they barely scratch the surface in terms of quality
assurance and time to market. To address these
concerns, the industry has sought to standardize
real-time operating systems (RTOSs)—through
either de facto standards or standards bodies
such as the German automotive industry’s Open
Systems and the Corresponding Interfaces for
Automotive Electronics (OSEK) committee.
RTOSs and traditional integrated development
environments dominate the embedded-software
market. Embedded-software design automation
is still a small segment, but work in this area
could lead to large productivity gains.
In some applications, the need to capture
specifications at high abstraction levels has led
to the use of modeling tools such as The
Mathworks’ Matlab and Simulink. These tools
let designers quickly assemble algorithms and
simulate behavior. However, the mathematical
models these tools support do not cover the full
embedded-system design spectrum. For exam-
ple, they lack formal dataflow support and do
not integrate modeling and finite-state machine
(FSM) capture. Understanding the mathemati-
cal properties of embedded-system functional-
ity is a key part of our vision; at this level, we
can achieve the best results in terms of func-
tional correctness and an error-free refinement
of the design into its implementation.
Technology boundaries between systems
and ICs are blurring. A system that needed a
25November–December 2001
printed circuit board yesterday is a single chip
today. Thus, IC providers must understand sys-
tem engineering and essentially become sub-
system providers. This means that IC providers
cannot sell “bare silicon” to system houses as
they used to. Instead, they must provide sup-
porting elements such as software development
tools and IP blocks that make the system imple-
menter’s job easier. However, today’s IC mak-
ers often depend on third parties to provide
such IP blocks and tools. As a result, the
embedded-systems designer must cope with
different user interfaces, programming styles,
and IP documentation styles and contents.
Platform-based design
The platform concept has been around for
years, but multiple definitions make its inter-
pretation confusing. In general, a platform is an
abstraction that covers several possible lower-
level refinements. Every platform gives a per-
spective from which to map higher abstraction
layers into the platform and one from which to
define the class of lower-level abstractions that
the platform implies.
Architecture platforms
PC makers develop their products quickly and
efficiently around a standard platform that has
gradually emerged: the x86 instruction set archi-
tecture, a full set of buses, legacy support for the
interrupt controller, and the specification of a set
of I/O devices. All PCs satisfy these constraints. So
in this domain, a platform isn’t a standardized
detailed hardware microarchitecture, but rather
an abstraction characterized by a set of con-
straints on the architecture. Thus, the platform is
an abstraction of a family of microarchitectures.
Chip makers work with another type of plat-
form: a flexible IC that designers can customize
for a particular application by “programming”
one or more of the chip’s components.
Programming can mean metal customization
(gate arrays), electrical modification (field-
programmable gate array personalization), or
software that runs on a microprocessor or digital
signal processor (DSP). For embedded software,
the platform is a fixed microarchitecture that min-
imizes mask-making costs but is flexible enough
to work for a set of applications so that produc-
tion volume remains high over an extended chip
lifetime. Microcontrollers designed for automo-
tive applications, such as the Motorola Black Oak
PowerPC, exemplify embedded-software plat-
forms. The problem with this approach is the
potential lack of optimization, which can lead to
chips that aren’t fast or small enough.
A better approach is to develop a family of
similar chips that differ in one or more compo-
nents but are based on the same microproces-
sor, such as Motorola’s Silver and Green Oak.
Such a chip family is also a platform.
In our vision, ICs used for embedded sys-
tems will be developed as an instance of a par-
ticular architecture platform. That is, rather
than assembling them from a collection of inde-
pendently developed blocks of silicon func-
tionality, designers will derive them from a
specific family of microarchitectures—possibly
oriented toward a particular class of problems.
The system developer can then modify the ICs
by extending or reducing them.
In general, platforms are characterized by
programmable components. Thus, each plat-
form instance derived from the architecture plat-
form maintains enough flexibility to support an
application space that guarantees the produc-
tion volumes necessary for economically viable
manufacturing. The library that defines the plat-
form can contain reconfigurable components.
These can be design-time reconfigurable, such
as the Tensilica Xtensa processor, which allows
considerable configuration of the instruction set
processor for applications; or they can be run-
time reconfigurable via reconfigurable logic, as
with field-programmable gate arrays (FPGAs).
The combination of programmable, designer-
configurable processors and runtime-reconfig-
urable logic yields the “highly programmable”
platforms that are the focus of the Mescal project
at the Gigascale Silicon Research Center.3
Platform instances
A designer derives an architecture platform
instance from the platform by choosing a set of
components from the platform library or by set-
ting parameters of the library’s reconfigurable
components.
Programmable components guarantee a
platform instance’s flexibility—that is, its abili-
Roadmaps and Visions
26 IEEE Design & Test of Computers
ty to support different applications. Software
programmability yields a more flexible solution
because it is easier to modify; reconfigurable
hardware executes much more quickly and
expends far less power than the corresponding
software. Thus, the trade-off here is between
flexibility and performance.
Platform design issues
Today, choosing an architecture platform is
more an art than a science. From an applica-
tion domain perspective, performance and size
are the constraints that usually determine the
architecture platform. For a particular applica-
tion, a processor must meet a minimum speed,
and the memory system must meet a minimum
size. Because each product has a different set
of functions, the constraints identify different
architecture platforms; more complex applica-
tions yield stronger architectural constraints.
For a semiconductor provider, limits on pro-
duction and design costs add platform con-
straints and consequently reduce the number
of choices. The intersection of the application
constraints and the semiconductor constraints
defines the architecture platforms available for
the final product. This process can result in a
platform instance that is overdesigned for a
given product. In several applications, howev-
er, an overdesigned architecture has been the
perfect vehicle to deliver new software prod-
ucts and extend the application. We believe
that the embedded-systems community will
soon accept some degree of overdesign to
improve design costs and time to market.
A hardware platform’s design emerges from
a trade-off in a complex space that includes
I platform flexibility, which is the application
space that the range of platform architec-
tures can support; and
I the architecture providers’ freedom in
designing their hardware platform instances.
Once an architecture platform has been
selected, the design process involves exploring
the design space defined by that platform’s con-
straints. These constraints can apply not only to
the components themselves but also to their
communication mechanism.
Architecture platform-based design is nei-
ther a top-down nor a bottom-up process: it is a
meet-in-the-middle approach. The trend is
toward semiconductor companies defining
platforms and platform instances in close col-
laboration with system companies.
Application developers first choose the
architectural components they require, yield-
ing a platform instance. Then they map their
application’s functions onto the platform
instance; this mapping process includes hard-
ware and software partitioning. For example,
the designers might decide to move a func-
tion from software running on one of the
processors to a hardware block, which could
be full-custom logic, an application-specific
integrated circuit (ASIC), or reconfigurable
logic. Once the partitioning and the platform
instance selection are finalized, the designer
develops the application software’s final and
optimized version.
For the best flexibility and time to market,
most of the implementation uses software.
Recent market analysis indicates that software
accounts for more than 80% of system devel-
opment. Thus, a competitive platform must
offer a powerful software development envi-
ronment. One reason to standardize program-
mable components in platforms is software
reuse. If the instruction set architecture (ISA)
remains constant, software porting is easier.
This brings us to the definition of an application
programming interface (API) platform.1
API platform
To maximize software reuse, the architec-
ture platform must be abstracted at a level
where the application software can use a high-
level interface to the hardware: the API, also
called the programmers’ model. A software
layer performs this abstraction, as shown in
Figure 1 (next page). This layer wraps the essen-
tial parts of the architecture platform:
I the programmable cores and the memory
subsystem through an RTOS,
I the I/O subsystem through the device dri-
vers, and
I the network connection through the net-
work communication subsystem.
27November–December 2001
In our conceptual framework, the program-
ming language is the abstraction of the ISA, and
the API is the abstraction of a variety of compu-
tational resources (the concurrency model pro-
vided by the RTOS) and available peripherals
(device drivers). The API is a unique abstract rep-
resentation of the architecture platform through
the software layer. With an API so defined, the
application software can be reused for every plat-
form instance. Indeed, the API is itself a platform.
The RTOS schedules available computing
resources and handles communication between
them and the memory subsystem. As platform
architectures move to multiple cores (already
common in second-generation wireless hand-
sets and set-top boxes), the RTOS schedules soft-
ware tasks across different computation engines.
System platform layers
Figure 2 captures the basic idea of the sys-
tem platform layer.1
The vertex where the two
cones meet represents the combination of the
API and the architecture platform. You can
think of the system platform layer as a single
platform obtained by gluing together the upper
layer (the API platform) and the lower layer
(the collection of components comprising the
architecture platform).
A system designer maps an application onto
the abstract representation, choosing from a
family of architectures to optimize cost, effi-
ciency, energy consumption, and flexibility.
With appropriate tools, this mapping can take
place in part automatically. For this to occur,
the tools must be aware of both the architec-
ture features and the API. Thus, the system plat-
form layer combines two platforms and the
tools that map one abstraction onto the other.
In the design space, there is an obvious trade-
off between the API’s abstraction level and the
number and diversity of platform instances cov-
ered. A more abstract API yields a richer set of
platform instances but also makes it more diffi-
cult to choose the optimal platform instance
and map automatically to it. Hence, we envision
using somewhat different abstractions and tools
for several system platform layers.
To generalize our thinking, we view design
primarily as a process of providing abstraction
views. An API platform is a predefined abstrac-
tion layer above a more complex device or sys-
tem that can be used for design at a higher
level. A set of operating system calls is also a
platform in the sense that it provides a layer of
abstraction over an underlying machine.
Following this model, a structural design view
is abstracted into the API model, providing the
basis for the design. To choose the right archi-
tecture platform, we need to export to the API
level an execution model of the architecture
platform that estimates its performance. This
model may include size, power consumption,
and timing. On the other hand, we can pass con-
straints from higher abstraction levels to lower
levels to continue the refinement process and
satisfy the original design constraints. Along with
constraints and estimates, we can also use cost
functions to compare feasible solutions.
In summary, the system platform layer is a
comprehensive model that includes the view
Roadmaps and Visions
28 IEEE Design & Test of Computers
I O
Hardware-dependent software
Application software
Platform API
Output devicesInput devices
Network
Hardware
Software
Device drivers
BIOS
RTOS
Networkcommunication
Hardware platform
Figure 1. Layered software structure. The platform API
provides the interface between the hardware-
dependent software and the middleware and
application layers of the software stack. The
hardware-dependent software rests on the physical
hardware and network. The platform is usually part of
a network, and thus provides an interface to the
network environment, as illustrated on the right.
of platforms from both the application and the
implementation architecture perspectives, the
vertex where the two cones in Figure 2 meet.
The embedded-systems
methodology roadmap
Now let’s turn to the key requirements for
the evolution of our broader embedded-system
design methodology. We advocate a holistic
approach that includes methodology, support-
ing tools, IP blocks, hardware and software plat-
forms, and supply chain management. Only by
taking a high-level view of the problem can we
devise solutions that will have a real impact on
embedded-systems design.
The essential issue to resolve is the link
between functionality and programmable
platforms. We must start from a high-level
abstraction of system functionality that is
completely implementation independent and
rests on solid theoretical foundations that
allow formal analysis. We must also select the
platform that can support the functionality
while meeting the physical constraints placed
on the final implementation. We must imple-
ment the functionality onto the platform so
that it maintains its properties and meets the
physical constraints.
Our vision is to have an optimized, semiau-
tomated, transparent, verifiable, and mathemat-
ically correct flow from product specification
through implementation for software-dominat-
ed products implemented with highly pro-
grammable platforms. Now let’s discuss the
implications of this vision for the major stages
of design (specification, refinement and
decomposition, and analysis) and implemen-
tation (target platform definition, mapping, and
links to implementation).
Specification
Specification means different things to dif-
ferent people. We understand specification to
be the entry point of the design process. In our
methodology, a specification should contain
three basic elements:
I A denotational description of the system’s
functionality that doesn’t imply an imple-
mentation. In general, we can express the
denotational description as a set of equa-
tions and inequalities in an appropriate alge-
bra. Finding a satisfying set of variables
corresponds to executing the specifications.
This unambiguous functionality description
lets us assess properties and evaluate rela-
tionships among the design’s variables.
Imperative specifications that fully define
the communication mechanism and the ele-
ments’ firing rules—FSM specifications,
dataflow models, and event-driven mod-
els—are refinements to the denotational
description. Although imperative specifica-
tions are important, the denotational speci-
fication is both cleaner and more rigorous.
I A set of constraints on the system’s final
implementation. In general, the constraints
can also be expressed as a set of equalities
and inequalities, but the variables remain
uninterpreted because they involve quanti-
ties that have no meaning in the denota-
tional description. A specification of an
29November–December 2001
Application space
Architectural space
Application instance
Platform instance
Platform
specification
Platform
design-space
exploration
System
platform
Figure 2. System platform layer and design flow. The
system platform effectively decouples the application
development process (the upper triangle) from the
architecture implementation process (the lower
triangle).
automotive engine controller’s behavior, for
example, cannot refer to its weight, cost,
emissions, or size; these variables are a func-
tion of its physical implementation. These
kinds of constraints limit the possible imple-
mentations of the system’s functionality.
I A set of design criteria. These are often more
qualitative than quantitative characteristics,
such as reliability, testability, maintain-
ability, and manufacturability. The difference
between constraints and criteria is that con-
straints, must be met, whereas you do your
best to optimize criteria. Multiple criteria
often produce multiple conflicts, leading to a
complex optimization.
The designer’s goal is to obtain a system
implementation whose behavior satisfies the
denotational description and the set of con-
straints, and optimizes the criteria. The language
we use to express these elements is an open ques-
tion, but the most important issue is not the lan-
guage per se but its semantics. In fact, the issue
of the mathematical models and the algebra
used to compose and manipulate the models is
the essential part of this stage of the design
process. Choosing a language is often a compro-
mise among several needs—for example, ease of
expression, compactness, and composability.
We believe that the specification languages
will be heterogeneous. Although application
domains most likely have common mathemat-
ical underpinnings, they each require different
constructs. Today, the mathematical frame-
works are partitioned in different domains—
that is, FSMs, dataflow graphs, and discrete-
event systems. Each of these domains has a
particular set of intrinsic properties and execu-
tion models that determine the simulation
mechanisms used to evaluate the description.
Although these formalisms are mathematically
rigorous, composing heterogeneous specifica-
tions is very difficult. An appropriate mathemat-
ical framework will let us establish properties of
the composition of heterogeneous models that
are impossible today.
The embedded-software community has a
strong interest in Unified Modeling Language as
a standard expression mechanism. Although
UML provides some degree of standardization
in terms of the syntactical aspects of system
design, its semantics are too generic to be use-
ful in our framework. However, rather than
define our own syntax for system-level lan-
guages, we plan to focus on the language
semantics we would need for the required
models of computation and their mathematical
properties. This work could enrich a language
such as UML and contribute to its standardiza-
tion. We have begun to define an embedded
UML profile that would be a basis for object-
oriented embedded-software development.4
Refinement and decomposition
Once the designer has captured a specifica-
tion, the design process should progress toward
implementation through well-defined stages.
The essential idea is to manipulate the descrip-
tion by introducing additional details while
both preserving the original functionality and
its properties and meeting the constraints that
can be evaluated at each new abstraction level.
The smaller the steps are, the easier it is to for-
mally prove that constraints are met and prop-
erties are satisfied.
This process, called successive refinement,
is one of the mainstays of our embedded-soft-
ware methodology. Key issues include the pre-
cise definition of what refinement means in the
appropriate mathematical framework and the
proofs that each refinement maintains the spec-
ification’s original properties.
During successive refinement, it is often con-
venient to break parts of the design description
into smaller parts so that optimization tech-
niques have a better chance of producing inter-
esting results: This is called decomposition. We
must determine whether the decomposed
system satisfies the original specifications.
Composition is the inverse transformation of
decomposition. Thus, successive refinement,
decomposition, and composition are the three
basic operations we use to move toward imple-
mentation. Both composition and decomposi-
tion are difficult when the parts that are to be
composed or that result from the decomposition
use heterogeneous models. The mathematical
framework must provide the foundations for
showing the relationship between the system
before and after these transformations.
Roadmaps and Visions
30 IEEE Design & Test of Computers
Analysis
While marching toward the final implemen-
tation, designers sometimes take paths that lead
to designs that have no chance of satisfying
some of the constraints. Hence, designers must
have tools that evaluate intermediate results with
respect to the constraints. The essential issue is
finding appropriate models at this abstraction
level that can carry enough information about
the ultimate physical implementation. The alter-
native is to go far down the implementation path
and use detailed models that contain the vari-
ables involved in the constraints.
A register-transfer-level (RTL) model of a
processor, together with simulation, can give
very accurate information—but at the cost of
long computing time. In addition, it might
provide information that is more precise than
necessary to assess how a choice meets our
constraints. Static analysis methods such as
Stars5
and abstract dynamic models can offer
up to a thousand times the performance of
simulation using detailed models. At a high
abstraction level, formal analysis might also
be an option.
Target platform definition
The methodology must use the right nota-
tion to define the system platform API: the pro-
jection into the embedded-software design
space of the platform resources, services, and
configurability space.
One option is to develop a UML-based
description of a target platform that can
become the target of refinement and analysis.
This description must represent the full range
of services (computation, communication, and
coordination) that the platform offers in both
the software and hardware domains, including
configurability options, but it should emphasize
the embedded-software perspective. For exam-
ple, the description could be a multilevel, hier-
archical, stack-oriented view of platform
services.
To carry the design into the platform hard-
ware domain for more detailed analysis of sys-
tem performance and more detailed hardware
and software verification, we can use emerging
C++ class-library-based languages such as
SystemC 2.0.6
Mapping
The mapping paradigm associates portions of
the embedded system’s refined specification with
specific implementation vehicles contained with-
in the target platform. Mapping is a fundamental
method of configuration and refinement down to
implementation. Constraint-driven mapping to a
choice of implementation fabrics is essential for
hardwareandsoftwarepartitioningandforchoos-
ing interfaces between implementation compo-
nents. Using the system platform API descriptions
of a target platform, we can map designs onto the
services that this platform offers and conduct var-
ious design space exploration analyses for per-
formance (and possibly other domains).
Link to implementation
Ideally, a platform-based design relies mostly
on the selection of reusable service components
offered by the platform along with the necessary
configuration. However, derivative products
often contain new or significantly modified func-
tionality. Thus, our methodology must support
software, hardware, and interface synthesis to
allow a comprehensive flow from specification
to implementation. In addition, we need static
configuration (selection of components and con-
nectivity) and dynamic control configuration (for
scheduling, resource allocation, and communi-
cations) to optimize the implementation.
Although designers could satisfactorily select
components by hand, the rest of the work
should be done automatically to minimize
human error and optimize productivity. The
value of automatic synthesis has been proven
both in software and hardware domains. For
software, we can see compilers as synthesis
tools: They map from high-level constructs into
machine code. For both hardware and software,
however, optimization is essential to automatic
synthesis. Without it, automatic synthesis would
be inferior to manual design.
In linking to the implementation, we also
need to go from a high-level representation of the
system’s functionality to the detailed implemen-
tation. Without constraints, this process would be
too difficult to carry out automatically. However,
because we have already selected an architec-
ture and mapped functionality onto virtual
blocks, the automatic approach is conceivable.
31November–December 2001
Software synthesis. Almost all system-level
design tools that comprehend software imple-
mentations (for example, statecharts, the combi-
nation of Simulink and State Flow, ASCET from
ETAS, and SPW from Cadence) have some code
generation capabilities. The approach is to start
from the high-level description that these tools
support—for example, graphical state machines,
dataflow graphs, and flow diagrams—and gener-
ate C code that implements the constructs of the
high-level(graphical)languages.Wecanthenuse
the C code for simulation, or we can output it
toward a C compiler for a target implementation.
In some cases, the code that these tools gen-
erate is acceptable to a system designer.
However, frequently a quick analysis lets an
experienced designer outperform the auto-
matic code generator. In addition, there has
been little work on automatic synthesis of
scheduling algorithms to coordinate the func-
tional components to meet constraints.
Communication- and component-based7
design include an overall approach to cope not
only with the functional blocks but also with
their compositions. Some researchers have
made progress in the communication area with
time-triggered architectures and synchronous
languages, but much work remains in terms of
optimal selection of a communication mecha-
nism among software components.
In the FSM domain, preliminary results stem-
ming from work on the Berkeley Polis system8
and additional research indicate that FSM-
based descriptions are more amenable to auto-
matic synthesis.
Over the years, researchers have published
some code generation work on dataflow
graphs, and the results are widely available.
Although quality is constantly improving,
humans can still outperform automatic tools in
many cases. We suspect that the problem lies
in taking a global view of the computational
structure and understanding the memory orga-
nization, which is quite complex for highly opti-
mized DSPs. This area of research is vital to
improving the quality of dataflow code gener-
ation to automate software synthesis.
Hardware synthesis. Researchers have
explored hardware synthesis for many years,
and good algorithms are available for generat-
ing netlists of gates from an RTL description of
the logic. If the modules to be generated use
an implementation fabric of gates or
low-complexity logic (standard cells or FPGAs),
we can apply existing commercial tools.
However, if the implementation modules’ hard-
ware architecture is not specified, we must rely
on behavioral synthesis, which, despite much
research, has not been widely adopted. By
leveraging an understanding of platform-based
design, we can advance the state of the art in
this domain.
Another interesting area is mapping onto
highly programmable platforms, including gen-
erating customized application-optimized
processors, as in the HP Labs PICO project.9
Finally, hardware synthesis must also
encompass interface synthesis based on opti-
mized generation from various easily config-
urable communication pattern templates.
OUR VISION for embedded systems unites plat-
form-based design with a unified embedded-
software flow from specification through
implementation. Realizing this vision will
require additional research, tool and method-
ology development, and experimental appli-
cations. Moreover, cooperation is needed
between system houses and IC makers.
System houses must increase software pro-
ductivity and quality while facing increasing
complexity in both customer product require-
ments and the hardware they use to improve
performance and meet constraints. IC makers
must develop platforms that system houses can
use promptly and effectively, with as little risk
as possible in terms of market share and archi-
tecture adequacy. If these two sides of the elec-
tronics world do not adopt a cooperative
vision, the future of embedded systems will be
difficult. If they do, a codesign methodology
will be a reality.
Our work at the Gigascale Silicon Research
Center, UC Berkeley, and Cadence Research
Laboratories is tackling many of the details need-
ed to bring about this reality. The Metropolis sys-
tem, under development with GSRC sponsorship,
embodies the approach we have presented.
Roadmaps and Visions
32 IEEE Design & Test of Computers
Other design systems also address the main
issues we’ve described, although with different
emphases and modeling techniques. Examples
are the Fresco system developed under the direc-
tion of Thomas A. Henzinger, the Mescal system
under the direction of Kurt Keutzer and Sharad
Malik, and the Ptolemy II system under the direc-
tion of Edward A. Lee.
Although our work is still conceptual, we
believe that practical progress is possible, and
that the next few years will see substantive steps
toward our goals. I
Acknowledgments
The two areas of investigation presented here
constitute the main research lines of the System-
Level Design effort at the Gigascale Silicon
Research Center—a large, multisite research pro-
ject under the direction of Richard Newton.3
Cadence Research Laboratories and the System-
Level Design Group have also heavily invested in
these areas. We acknowledge, with thanks, the
ideas and suggestions we received for this vision
from Alberto Ferrari, Felice Balarin, Jerry Burch,
Tom Henzinger, Ed Lee, Luciano Lavagno, Lane
Lewis, Richard Newton, Roberto Passerone,
Ellen Sentovich, Frank Schirrmeister, Marco
Sgroi, Ted Vucurevich, and Yoshi Watanabe.
References
1. A. Sangiovanni-Vincentelli and A. Ferrari, “System
Design—Traditional Concepts and New Para-
digms,” Proc. Int’l Conf. Computer Design, IEEE
CS Press, Los Alamitos, Calif., 1999, pp. 2-12.
2. H. Chang et al., Surviving the SOC Revolution:
A Guide to Platform-Based Design, Kluwer
Academic, Norwell, Mass., 1999.
3. K. Keutzer et al., “System Level Design: Orthogo-
nalization of Concerns and Platform-Based Design,”
IEEE Trans. CAD of Integrated Circuits and
Systems, vol. 19, no. 12, Dec. 2000, pp. 1523-1543.
4. G. Martin, L. Lavagno, and J. Louis-Guerin,
“Embedded UML: A Merger of Real-Time UML
and Co-Design,” Proc. Int’l Workshop
Hardware/Software Co-Design (Codes 01), IEEE
CS Press, Los Alamitos, Calif., 2001, pp. 23-28.
5. F. Balarin, “Worst-Case Analysis of Discrete
Systems,” Proc. Int’l Conf. Computer-Aided Design
(ICCAD 99), ACM Press, New York, 1999,
pp. 347-352.
6. S. Swan, “An Introduction to System-Level Model-
ing in SystemC 2.0,” Cadence Design Systems,
San Jose, Calif., 2001; http://www.systemc.org/
papers/SystemC_WP20.pdf.
7. M. Sgroi, L. Lavagno, and A. Sangiovanni-Vincen-
telli, “Formal Models for Embedded System
Design,” IEEE Design & Test of Computers, vol.
17, no. 2, Apr.-June 2000, pp. 14-27.
8. F. Balarin et al., Hardware-Software Co-Design of
Embedded Systems: The POLIS Approach, Kluw-
er Academic, Norwell, Mass., 1997.
9. S. Aditya, B. Ramakrishna Rau, and V. Kathail,
“Automatic Architectural Synthesis of VLIW and
EPIC Processors,” Proc. Int’l Symp. System Syn-
thesis (ISSS 99), IEEE CS Press, Los Alamitos,
Calif., 1999, pp. 107-113.
Alberto Sangiovanni-
Vincentelli holds the Edgar
L. and Harold H. Buttner Chair
of Electrical Engineering and
Computer Sciences at the
University of California, Berke-
ley, where he is also vice chair for Industrial Rela-
tions. He cofounded Cadence and Synopsys and
founded Cadence Research Labs. His research
interests include design tools and methodologies,
large-scale systems, embedded controllers, and
hybrid systems. Sangiovanni-Vincentelli has a
doctoral degree in electrical engineering and
computer science from Politecnico di Milano, Italy.
He is a fellow of the IEEE and a member of the
National Academy of Engineering.
Grant Martin is a fellow in
the labs of Cadence Design
Systems. His research inter-
ests include system-level
design, systems on chips,
platform-based design, and
embedded software. Martin has a BMath and an
MMath in combinatorics and optimization from
the University of Waterloo, Canada.
Direct questions and comments about this arti-
cle to Grant Martin, Cadence Design Systems, 555
River Oaks Parkway, San Jose, CA 95134;
gmartin@cadence.com.
33November–December 2001

More Related Content

What's hot

Model based engineering tutorial thomas consulting 4_sep13-1
Model based engineering tutorial thomas consulting 4_sep13-1Model based engineering tutorial thomas consulting 4_sep13-1
Model based engineering tutorial thomas consulting 4_sep13-1
seymourmedia
 
AMEC IPE Solution_ISEIT 2006
AMEC IPE Solution_ISEIT 2006AMEC IPE Solution_ISEIT 2006
AMEC IPE Solution_ISEIT 2006
Marc-Henri Cerar
 
A presentation on forward engineering
A presentation on forward engineeringA presentation on forward engineering
A presentation on forward engineering
GTU
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
Bradley Irby
 
3 introduction
3 introduction3 introduction
3 introduction
AlenaDion
 
Eight deadly defects in systems engineering and how to fix them
Eight deadly defects in systems engineering and how to fix themEight deadly defects in systems engineering and how to fix them
Eight deadly defects in systems engineering and how to fix them
Joseph KAsser
 
Reed simpson
Reed simpsonReed simpson
Reed simpson
NASAPMC
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
Deniz Kılınç
 
Component Based Software Development
Component Based Software DevelopmentComponent Based Software Development
Component Based Software Development
Diego Cardozo
 
Syncsort and Db2 – How to Get More from Your Db2 Systems
Syncsort and Db2 – How to Get More from Your Db2 SystemsSyncsort and Db2 – How to Get More from Your Db2 Systems
Syncsort and Db2 – How to Get More from Your Db2 Systems
Precisely
 
component based development model
component based development modelcomponent based development model
component based development model
Muneeba Qamar
 
Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorak
NASAPMC
 
end2end Enterprise Architecture - Application Architecture
end2end Enterprise Architecture - Application Architectureend2end Enterprise Architecture - Application Architecture
end2end Enterprise Architecture - Application Architecture
Lars Sørensen
 
02 software component selection
02 software component selection02 software component selection
02 software component selection
prj_publication
 
Component based-software-engineering
Component based-software-engineeringComponent based-software-engineering
Component based-software-engineering
Wasim Raza
 
Terry.cooke davies
Terry.cooke daviesTerry.cooke davies
Terry.cooke davies
NASAPMC
 
Resume of James OHare
Resume of James OHareResume of James OHare
Resume of James OHare
Jim OHare
 
Developing reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systemsDeveloping reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systems
eSAT Publishing House
 
122 whitepaper
122 whitepaper122 whitepaper
122 whitepaper
tamilmagazin
 
Resume-518
Resume-518Resume-518
Resume-518
Charles Mandrell
 

What's hot (20)

Model based engineering tutorial thomas consulting 4_sep13-1
Model based engineering tutorial thomas consulting 4_sep13-1Model based engineering tutorial thomas consulting 4_sep13-1
Model based engineering tutorial thomas consulting 4_sep13-1
 
AMEC IPE Solution_ISEIT 2006
AMEC IPE Solution_ISEIT 2006AMEC IPE Solution_ISEIT 2006
AMEC IPE Solution_ISEIT 2006
 
A presentation on forward engineering
A presentation on forward engineeringA presentation on forward engineering
A presentation on forward engineering
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
3 introduction
3 introduction3 introduction
3 introduction
 
Eight deadly defects in systems engineering and how to fix them
Eight deadly defects in systems engineering and how to fix themEight deadly defects in systems engineering and how to fix them
Eight deadly defects in systems engineering and how to fix them
 
Reed simpson
Reed simpsonReed simpson
Reed simpson
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
Component Based Software Development
Component Based Software DevelopmentComponent Based Software Development
Component Based Software Development
 
Syncsort and Db2 – How to Get More from Your Db2 Systems
Syncsort and Db2 – How to Get More from Your Db2 SystemsSyncsort and Db2 – How to Get More from Your Db2 Systems
Syncsort and Db2 – How to Get More from Your Db2 Systems
 
component based development model
component based development modelcomponent based development model
component based development model
 
Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorak
 
end2end Enterprise Architecture - Application Architecture
end2end Enterprise Architecture - Application Architectureend2end Enterprise Architecture - Application Architecture
end2end Enterprise Architecture - Application Architecture
 
02 software component selection
02 software component selection02 software component selection
02 software component selection
 
Component based-software-engineering
Component based-software-engineeringComponent based-software-engineering
Component based-software-engineering
 
Terry.cooke davies
Terry.cooke daviesTerry.cooke davies
Terry.cooke davies
 
Resume of James OHare
Resume of James OHareResume of James OHare
Resume of James OHare
 
Developing reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systemsDeveloping reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systems
 
122 whitepaper
122 whitepaper122 whitepaper
122 whitepaper
 
Resume-518
Resume-518Resume-518
Resume-518
 

Viewers also liked

Building Blocks of ThinkPalm - People, Partners, Innovative Thinking, Open Cu...
Building Blocks of ThinkPalm - People, Partners, Innovative Thinking, Open Cu...Building Blocks of ThinkPalm - People, Partners, Innovative Thinking, Open Cu...
Building Blocks of ThinkPalm - People, Partners, Innovative Thinking, Open Cu...
Sarah Abraham
 
Question 3
Question 3Question 3
Question 3
12Nayeem99
 
Parking policy in india.
Parking policy in india.Parking policy in india.
Parking policy in india.
Kopal Goyal
 
Presentació jordi i pablo
Presentació jordi i pabloPresentació jordi i pablo
Presentació jordi i pablo
lola fabian
 
Золотой Ключик Стамбул - большие проблемы маленького человека или дети
Золотой Ключик Стамбул - большие проблемы маленького человека или дети Золотой Ключик Стамбул - большие проблемы маленького человека или дети
Золотой Ключик Стамбул - большие проблемы маленького человека или дети
«Золотой Ключик» Zolotoy Kluchik
 
Mina Raafat
Mina RaafatMina Raafat
Mina Raafat
Mina Soliman
 
Ramu Resume
Ramu ResumeRamu Resume
Ant philosophy ppt
Ant philosophy pptAnt philosophy ppt
Ant philosophy ppt
Sarah Abraham
 
Karlo_radna_verzija_zavrsni
Karlo_radna_verzija_zavrsniKarlo_radna_verzija_zavrsni
Karlo_radna_verzija_zavrsniKarlo Cazar
 

Viewers also liked (9)

Building Blocks of ThinkPalm - People, Partners, Innovative Thinking, Open Cu...
Building Blocks of ThinkPalm - People, Partners, Innovative Thinking, Open Cu...Building Blocks of ThinkPalm - People, Partners, Innovative Thinking, Open Cu...
Building Blocks of ThinkPalm - People, Partners, Innovative Thinking, Open Cu...
 
Question 3
Question 3Question 3
Question 3
 
Parking policy in india.
Parking policy in india.Parking policy in india.
Parking policy in india.
 
Presentació jordi i pablo
Presentació jordi i pabloPresentació jordi i pablo
Presentació jordi i pablo
 
Золотой Ключик Стамбул - большие проблемы маленького человека или дети
Золотой Ключик Стамбул - большие проблемы маленького человека или дети Золотой Ключик Стамбул - большие проблемы маленького человека или дети
Золотой Ключик Стамбул - большие проблемы маленького человека или дети
 
Mina Raafat
Mina RaafatMina Raafat
Mina Raafat
 
Ramu Resume
Ramu ResumeRamu Resume
Ramu Resume
 
Ant philosophy ppt
Ant philosophy pptAnt philosophy ppt
Ant philosophy ppt
 
Karlo_radna_verzija_zavrsni
Karlo_radna_verzija_zavrsniKarlo_radna_verzija_zavrsni
Karlo_radna_verzija_zavrsni
 

Similar to Pbd for es

Priorities Shift In IC Design
Priorities Shift In IC DesignPriorities Shift In IC Design
Priorities Shift In IC Design
Abacus Technologies
 
Model driven process for real time embedded
Model driven process for real time embeddedModel driven process for real time embedded
Model driven process for real time embedded
caijjournal
 
Big Data Day LA 2016/ Use Case Driven track - From Clusters to Clouds, Hardwa...
Big Data Day LA 2016/ Use Case Driven track - From Clusters to Clouds, Hardwa...Big Data Day LA 2016/ Use Case Driven track - From Clusters to Clouds, Hardwa...
Big Data Day LA 2016/ Use Case Driven track - From Clusters to Clouds, Hardwa...
Data Con LA
 
Agile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtAgile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is built
Vincent Burckhardt
 
Tool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringTool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software Engineering
Heiko Koziolek
 
Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...
Editor IJCATR
 
Improved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application DevelopmentImproved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application Development
Editor IJCATR
 
Running head MODEL-BASED SYSTEMS ENGINEERING IMPLEMENTATION 1.docx
Running head MODEL-BASED SYSTEMS ENGINEERING IMPLEMENTATION 1.docxRunning head MODEL-BASED SYSTEMS ENGINEERING IMPLEMENTATION 1.docx
Running head MODEL-BASED SYSTEMS ENGINEERING IMPLEMENTATION 1.docx
cowinhelen
 
Tem.10.M
Tem.10.MTem.10.M
Tem.10.M
charles_hart
 
RELM Overview
RELM OverviewRELM Overview
RELM Overview
IBM Rational software
 
Unsustainable Regaining Control of Uncontrollable Apps
Unsustainable Regaining Control of Uncontrollable AppsUnsustainable Regaining Control of Uncontrollable Apps
Unsustainable Regaining Control of Uncontrollable Apps
CAST
 
Architecture centered publishing systems
Architecture centered publishing systemsArchitecture centered publishing systems
Architecture centered publishing systems
Glen Alleman
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
ghodgkinson
 
Lecture 02 Software Management Renaissance.ppt
Lecture 02 Software Management Renaissance.pptLecture 02 Software Management Renaissance.ppt
Lecture 02 Software Management Renaissance.ppt
Getahuntigistu5
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dm
Actian Corporation
 
ESF .NET - Accelerated Framework for Enterprise System Re-Engineering
ESF .NET - Accelerated Framework for Enterprise System Re-EngineeringESF .NET - Accelerated Framework for Enterprise System Re-Engineering
ESF .NET - Accelerated Framework for Enterprise System Re-Engineering
Visionet Systems, Inc.
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
DrPreethiD1
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
DrPreethiD1
 
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdfTaming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
Kief Morris
 
Restructuring Technical Debt - A Software and System Quality Approach
Restructuring Technical Debt - A Software and System Quality ApproachRestructuring Technical Debt - A Software and System Quality Approach
Restructuring Technical Debt - A Software and System Quality Approach
Adnan Masood
 

Similar to Pbd for es (20)

Priorities Shift In IC Design
Priorities Shift In IC DesignPriorities Shift In IC Design
Priorities Shift In IC Design
 
Model driven process for real time embedded
Model driven process for real time embeddedModel driven process for real time embedded
Model driven process for real time embedded
 
Big Data Day LA 2016/ Use Case Driven track - From Clusters to Clouds, Hardwa...
Big Data Day LA 2016/ Use Case Driven track - From Clusters to Clouds, Hardwa...Big Data Day LA 2016/ Use Case Driven track - From Clusters to Clouds, Hardwa...
Big Data Day LA 2016/ Use Case Driven track - From Clusters to Clouds, Hardwa...
 
Agile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtAgile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is built
 
Tool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringTool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software Engineering
 
Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...
 
Improved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application DevelopmentImproved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application Development
 
Running head MODEL-BASED SYSTEMS ENGINEERING IMPLEMENTATION 1.docx
Running head MODEL-BASED SYSTEMS ENGINEERING IMPLEMENTATION 1.docxRunning head MODEL-BASED SYSTEMS ENGINEERING IMPLEMENTATION 1.docx
Running head MODEL-BASED SYSTEMS ENGINEERING IMPLEMENTATION 1.docx
 
Tem.10.M
Tem.10.MTem.10.M
Tem.10.M
 
RELM Overview
RELM OverviewRELM Overview
RELM Overview
 
Unsustainable Regaining Control of Uncontrollable Apps
Unsustainable Regaining Control of Uncontrollable AppsUnsustainable Regaining Control of Uncontrollable Apps
Unsustainable Regaining Control of Uncontrollable Apps
 
Architecture centered publishing systems
Architecture centered publishing systemsArchitecture centered publishing systems
Architecture centered publishing systems
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Lecture 02 Software Management Renaissance.ppt
Lecture 02 Software Management Renaissance.pptLecture 02 Software Management Renaissance.ppt
Lecture 02 Software Management Renaissance.ppt
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dm
 
ESF .NET - Accelerated Framework for Enterprise System Re-Engineering
ESF .NET - Accelerated Framework for Enterprise System Re-EngineeringESF .NET - Accelerated Framework for Enterprise System Re-Engineering
ESF .NET - Accelerated Framework for Enterprise System Re-Engineering
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
 
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdfTaming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
 
Restructuring Technical Debt - A Software and System Quality Approach
Restructuring Technical Debt - A Software and System Quality ApproachRestructuring Technical Debt - A Software and System Quality Approach
Restructuring Technical Debt - A Software and System Quality Approach
 

Recently uploaded

Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
Dr. Mulla Adam Ali
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Denish Jangid
 
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skillsspot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
haiqairshad
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
eBook.com.bd (প্রয়োজনীয় বাংলা বই)
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
imrankhan141184
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Fajar Baskoro
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
Celine George
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
Priyankaranawat4
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
Nguyen Thanh Tu Collection
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
Nguyen Thanh Tu Collection
 
UGC NET Exam Paper 1- Unit 1:Teaching Aptitude
UGC NET Exam Paper 1- Unit 1:Teaching AptitudeUGC NET Exam Paper 1- Unit 1:Teaching Aptitude
UGC NET Exam Paper 1- Unit 1:Teaching Aptitude
S. Raj Kumar
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
How to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 InventoryHow to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 Inventory
Celine George
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 
How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience
Wahiba Chair Training & Consulting
 

Recently uploaded (20)

Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
 
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skillsspot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
 
UGC NET Exam Paper 1- Unit 1:Teaching Aptitude
UGC NET Exam Paper 1- Unit 1:Teaching AptitudeUGC NET Exam Paper 1- Unit 1:Teaching Aptitude
UGC NET Exam Paper 1- Unit 1:Teaching Aptitude
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
How to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 InventoryHow to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 Inventory
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 
How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience
 

Pbd for es

  • 1. 230740-7475/01/$10.00 © 2001 IEEENovember–December 2001 THE ESSENCE OF embedded-systems design is implementing a specific set of functions while satisfying constraints on characteristics such as per- formance, cost, emissions, power consumption, and weight. The choice of implementation archi- tecture determines whether designers will imple- ment a function as a hardware component or as software running on a programmable component. In recent years, the functions demanded for embedded systems have grown so numerous and complex that development time is increas- ingly difficult to predict and control. This com- plexity, coupled with constantly evolving specifications, has forced designers to consid- er intrinsically flexible implementations—those they can change rapidly. For this reason, and because hardware-manufacturing cycles are more expensive and time-consuming, software- based implementation has become more pop- ular. Processors’ increased computational power and correspondingly decreased size and cost let designers move increasingly more func- tionality to software. However, along with this move comes increas- ing difficulty in verifying design correctness. This verification is critical due to safety consider- ations in several application domains— transportation and environment monitoring, for example. In traditional, PC-like software applica- tions, these safety issues typically don’t come up. In addition, the software world has paid little attention to hard constraints on software’s reac- tion speed, memory footprint, and power con- sumption—all crucial issues for embedded systems—because they are relatively unimportant in traditional software development. In embed- ded-systems design, such hard software charac- teristics are unavoidable. It is no wonder, then, that there is a crisis in embedded-software design. Along with the pressure on system designers to choose flexible implementations, the indus- try is also witnessing IC manufacturers’ growing preference for chips that will work for several designs. This lets manufacturers amortize devel- opment cost over a large number of units, as discussed in the sidebar, “Motivations for plat- form-based design.” This alignment of designers and manufacturers has resulted in the birth of platform-based design,1,2 in which reuse and pro- grammability are key. We believe that addressing the embedded Platform-Based Design and Software Design Methodology for Embedded Systems Embedded products have become so complex and must be developed so quickly that current design methodologies are no longer adequate. The authors’ vision for the future of embedded- system design involves two essential components: a rigorous methodology for embedded software development and platform-based design. Alberto Sangiovanni-Vincentelli University of California, Berkeley Grant Martin Cadence Design Systems
  • 2. software crisis and the manufacturing problem necessitates radical changes in embedded- systems design. In particular, we propose a rig- orous methodology for embedded-software development and platform-based design. Vision for embedded-system design Our aim is high: a system design methodol- ogy and supporting tools that I address the supply chain integration prob- lem, the linkage between intellectual prop- erty (IP) creators, foundries, semiconductor houses, systems houses, and applications software developers; I consider metrics to govern embedded-systems design, including cost, weight, size, power dissipation, and required performance; I work at all abstraction levels, from concep- tion to software and silicon implementation and packaging, with guaranteed correctness and efficient trade-off evaluation; and I favor reuse by identifying requirements for real plug-and-play operation. To achieve these goals, our embedded- Roadmaps and Visions 24 IEEE Design & Test of Computers IC technology lets us integrate so many functions onto a single chip that we can indeed implement an “environ- ment-to-environment” system on a chip. However, we cannot simply view SoCs as an extension of the applica- tion-specific IC methodology that has been in vogue for the past 10 years. The economics of SoCs in the ASIC framework are not appealing. The cost of designing and manufacturing SoCs is too high, given the relatively few parts typical in ASIC production. Our platform-based design methodology is an outgrowth of the SoC debate. The overall goal of electronic system design is to bal- ance production costs with development time and cost in view of performance and functionality constraints. Manufacturing cost depends mainly on a product’s hardware components. Minimizing chip size to reduce pro- duction cost implies tailoring the hardware to product func- tionality. The cost of a state-of-the-art fabrication facility continues to rise. A new 300-mm, 0.13- or 0.10-micron, high-volume manufacturing plant today costs about $3.5 billion.1 The ITRS predicts that although manufacturing complex SoC designs will be feasible—at least down to 50-nm minimum feature sizes—producing practical masks and exposure systems will likely be a major bottleneck for such chips’ development. That is, the cost of masks will grow even more rapidly for these fine geometries. A single mask set and probe card for a next-generation chip costs more than $1 million for a complex part—up from less than $100,000 a decade ago.2 This leads us to the first motiva- tion for a move to platform-based design: Motivation A. Increasing mask and manufacturing setup costs are biasing manufacturers toward parts that have guaranteed high-volume production from a single mask set. Design costs are rising exponentially because of products’ increased complexity (especially in embed- ded software), the challenges posed by physical effects for deep-submicron design, and the shortage of talent. According to Sematech, design productivity is falling behind exponentially with respect to technology advances. Time-to-market constraints are also intensify- ing so rapidly that even if costs cease to be an issue, it is still becoming plainly impossible to develop complex parts quickly enough. This leads us to a second reason to embrace platform-based design: Motivation B. Design problems are pushing IC and system companies away from full-custom design methods, toward designs that they can assemble quickly from predesigned and precharacterized components. This places priority on design reuse; correct component assembly; and fast, reli- able, efficient compilation from specifications to imple- mentations. Platform-based design can trade off various aspects of manufacturing costs, nonrecurring expenses, and design productivity. Reuse, flexibility, and efficiency are key to this approach. References 1. S.P. Dean, “ASICs and Foundries,” Integrated Systems Design, Mar. 2001; http://www.isdmag.com/story/ OEG20010301S0051. 2. “NRE Charges for SoC Designs to Hit $1M, Study Says,” Semiconductor Business News, Oct. 1999; http://www. csdmag.com/story/OEG19991006S0043. Motivations for platform-based design
  • 3. systems design methodology will leverage three basic principles: I Orthogonality. Based on the principle of sep- aration of concerns, the methodology will clearly separate behavior from implementa- tion, and communication from computation. I Theoretical framework. Without a rigorous approach, it isn’t possible to achieve correct, efficient, reliable, and robust designs. Solid theoretical foundations will provide the nec- essary infrastructure for a new generation of interoperable tools that will work at different abstraction levels. These tools will verify, sim- ulate, and map designs from one abstraction level to the next, help choose implementa- tions that meet constraints, and optimize design criteria. The framework will handle both embedded software and hardware designs, and precise semantics will let the framework and tools analyze the design specifications, identify and correct function- al errors, and initiate synthesis processes. I Platforms. Incorporating this common reuse technique into our methodology will sub- stantially reduce design time and cost. We have formalized and elaborated the plat- form concept to yield an approach that com- bines hardware and software platforms into a system platform. Leveraging these principles, we can build an environment in which designing complex sys- tems will take only days instead of the many months needed today. Problems with embedded systems To cope with the tight constraints on perfor- mance and cost typical of most embedded sys- tems, programmers write today’s embedded software using low-level programming lan- guages such as C or even assembly language. The tools for creating and debugging embed- ded software are basically the same as those for standard software: compilers, assemblers, debuggers, and cross-compilers. The difference is in quality: Most tools for embedded software are rather primitive compared to equivalent tools for richer platforms. However, besides these tools, embedded software also needs hardware support for debugging and perfor- mance evaluation, which are far more impor- tant for embedded software than for standard software. Another characteristic of embedded software is that, because of performance and memory requirements, it typically uses applica- tion-dependent, proprietary operating systems. When embedded software was simple, there was little need for a more sophisticated approach. However, with the increased com- plexity of embedded-systems applications, this rather primitive approach has become the bot- tleneck. Most system companies have enhanced their software design methodologies to increase productivity and product quality. Many have rushed to adopt object-oriented approaches and other syntactically driven methods. Such meth- ods certainly have value in cleaning up embed- ded-software structure and documentation, but they barely scratch the surface in terms of quality assurance and time to market. To address these concerns, the industry has sought to standardize real-time operating systems (RTOSs)—through either de facto standards or standards bodies such as the German automotive industry’s Open Systems and the Corresponding Interfaces for Automotive Electronics (OSEK) committee. RTOSs and traditional integrated development environments dominate the embedded-software market. Embedded-software design automation is still a small segment, but work in this area could lead to large productivity gains. In some applications, the need to capture specifications at high abstraction levels has led to the use of modeling tools such as The Mathworks’ Matlab and Simulink. These tools let designers quickly assemble algorithms and simulate behavior. However, the mathematical models these tools support do not cover the full embedded-system design spectrum. For exam- ple, they lack formal dataflow support and do not integrate modeling and finite-state machine (FSM) capture. Understanding the mathemati- cal properties of embedded-system functional- ity is a key part of our vision; at this level, we can achieve the best results in terms of func- tional correctness and an error-free refinement of the design into its implementation. Technology boundaries between systems and ICs are blurring. A system that needed a 25November–December 2001
  • 4. printed circuit board yesterday is a single chip today. Thus, IC providers must understand sys- tem engineering and essentially become sub- system providers. This means that IC providers cannot sell “bare silicon” to system houses as they used to. Instead, they must provide sup- porting elements such as software development tools and IP blocks that make the system imple- menter’s job easier. However, today’s IC mak- ers often depend on third parties to provide such IP blocks and tools. As a result, the embedded-systems designer must cope with different user interfaces, programming styles, and IP documentation styles and contents. Platform-based design The platform concept has been around for years, but multiple definitions make its inter- pretation confusing. In general, a platform is an abstraction that covers several possible lower- level refinements. Every platform gives a per- spective from which to map higher abstraction layers into the platform and one from which to define the class of lower-level abstractions that the platform implies. Architecture platforms PC makers develop their products quickly and efficiently around a standard platform that has gradually emerged: the x86 instruction set archi- tecture, a full set of buses, legacy support for the interrupt controller, and the specification of a set of I/O devices. All PCs satisfy these constraints. So in this domain, a platform isn’t a standardized detailed hardware microarchitecture, but rather an abstraction characterized by a set of con- straints on the architecture. Thus, the platform is an abstraction of a family of microarchitectures. Chip makers work with another type of plat- form: a flexible IC that designers can customize for a particular application by “programming” one or more of the chip’s components. Programming can mean metal customization (gate arrays), electrical modification (field- programmable gate array personalization), or software that runs on a microprocessor or digital signal processor (DSP). For embedded software, the platform is a fixed microarchitecture that min- imizes mask-making costs but is flexible enough to work for a set of applications so that produc- tion volume remains high over an extended chip lifetime. Microcontrollers designed for automo- tive applications, such as the Motorola Black Oak PowerPC, exemplify embedded-software plat- forms. The problem with this approach is the potential lack of optimization, which can lead to chips that aren’t fast or small enough. A better approach is to develop a family of similar chips that differ in one or more compo- nents but are based on the same microproces- sor, such as Motorola’s Silver and Green Oak. Such a chip family is also a platform. In our vision, ICs used for embedded sys- tems will be developed as an instance of a par- ticular architecture platform. That is, rather than assembling them from a collection of inde- pendently developed blocks of silicon func- tionality, designers will derive them from a specific family of microarchitectures—possibly oriented toward a particular class of problems. The system developer can then modify the ICs by extending or reducing them. In general, platforms are characterized by programmable components. Thus, each plat- form instance derived from the architecture plat- form maintains enough flexibility to support an application space that guarantees the produc- tion volumes necessary for economically viable manufacturing. The library that defines the plat- form can contain reconfigurable components. These can be design-time reconfigurable, such as the Tensilica Xtensa processor, which allows considerable configuration of the instruction set processor for applications; or they can be run- time reconfigurable via reconfigurable logic, as with field-programmable gate arrays (FPGAs). The combination of programmable, designer- configurable processors and runtime-reconfig- urable logic yields the “highly programmable” platforms that are the focus of the Mescal project at the Gigascale Silicon Research Center.3 Platform instances A designer derives an architecture platform instance from the platform by choosing a set of components from the platform library or by set- ting parameters of the library’s reconfigurable components. Programmable components guarantee a platform instance’s flexibility—that is, its abili- Roadmaps and Visions 26 IEEE Design & Test of Computers
  • 5. ty to support different applications. Software programmability yields a more flexible solution because it is easier to modify; reconfigurable hardware executes much more quickly and expends far less power than the corresponding software. Thus, the trade-off here is between flexibility and performance. Platform design issues Today, choosing an architecture platform is more an art than a science. From an applica- tion domain perspective, performance and size are the constraints that usually determine the architecture platform. For a particular applica- tion, a processor must meet a minimum speed, and the memory system must meet a minimum size. Because each product has a different set of functions, the constraints identify different architecture platforms; more complex applica- tions yield stronger architectural constraints. For a semiconductor provider, limits on pro- duction and design costs add platform con- straints and consequently reduce the number of choices. The intersection of the application constraints and the semiconductor constraints defines the architecture platforms available for the final product. This process can result in a platform instance that is overdesigned for a given product. In several applications, howev- er, an overdesigned architecture has been the perfect vehicle to deliver new software prod- ucts and extend the application. We believe that the embedded-systems community will soon accept some degree of overdesign to improve design costs and time to market. A hardware platform’s design emerges from a trade-off in a complex space that includes I platform flexibility, which is the application space that the range of platform architec- tures can support; and I the architecture providers’ freedom in designing their hardware platform instances. Once an architecture platform has been selected, the design process involves exploring the design space defined by that platform’s con- straints. These constraints can apply not only to the components themselves but also to their communication mechanism. Architecture platform-based design is nei- ther a top-down nor a bottom-up process: it is a meet-in-the-middle approach. The trend is toward semiconductor companies defining platforms and platform instances in close col- laboration with system companies. Application developers first choose the architectural components they require, yield- ing a platform instance. Then they map their application’s functions onto the platform instance; this mapping process includes hard- ware and software partitioning. For example, the designers might decide to move a func- tion from software running on one of the processors to a hardware block, which could be full-custom logic, an application-specific integrated circuit (ASIC), or reconfigurable logic. Once the partitioning and the platform instance selection are finalized, the designer develops the application software’s final and optimized version. For the best flexibility and time to market, most of the implementation uses software. Recent market analysis indicates that software accounts for more than 80% of system devel- opment. Thus, a competitive platform must offer a powerful software development envi- ronment. One reason to standardize program- mable components in platforms is software reuse. If the instruction set architecture (ISA) remains constant, software porting is easier. This brings us to the definition of an application programming interface (API) platform.1 API platform To maximize software reuse, the architec- ture platform must be abstracted at a level where the application software can use a high- level interface to the hardware: the API, also called the programmers’ model. A software layer performs this abstraction, as shown in Figure 1 (next page). This layer wraps the essen- tial parts of the architecture platform: I the programmable cores and the memory subsystem through an RTOS, I the I/O subsystem through the device dri- vers, and I the network connection through the net- work communication subsystem. 27November–December 2001
  • 6. In our conceptual framework, the program- ming language is the abstraction of the ISA, and the API is the abstraction of a variety of compu- tational resources (the concurrency model pro- vided by the RTOS) and available peripherals (device drivers). The API is a unique abstract rep- resentation of the architecture platform through the software layer. With an API so defined, the application software can be reused for every plat- form instance. Indeed, the API is itself a platform. The RTOS schedules available computing resources and handles communication between them and the memory subsystem. As platform architectures move to multiple cores (already common in second-generation wireless hand- sets and set-top boxes), the RTOS schedules soft- ware tasks across different computation engines. System platform layers Figure 2 captures the basic idea of the sys- tem platform layer.1 The vertex where the two cones meet represents the combination of the API and the architecture platform. You can think of the system platform layer as a single platform obtained by gluing together the upper layer (the API platform) and the lower layer (the collection of components comprising the architecture platform). A system designer maps an application onto the abstract representation, choosing from a family of architectures to optimize cost, effi- ciency, energy consumption, and flexibility. With appropriate tools, this mapping can take place in part automatically. For this to occur, the tools must be aware of both the architec- ture features and the API. Thus, the system plat- form layer combines two platforms and the tools that map one abstraction onto the other. In the design space, there is an obvious trade- off between the API’s abstraction level and the number and diversity of platform instances cov- ered. A more abstract API yields a richer set of platform instances but also makes it more diffi- cult to choose the optimal platform instance and map automatically to it. Hence, we envision using somewhat different abstractions and tools for several system platform layers. To generalize our thinking, we view design primarily as a process of providing abstraction views. An API platform is a predefined abstrac- tion layer above a more complex device or sys- tem that can be used for design at a higher level. A set of operating system calls is also a platform in the sense that it provides a layer of abstraction over an underlying machine. Following this model, a structural design view is abstracted into the API model, providing the basis for the design. To choose the right archi- tecture platform, we need to export to the API level an execution model of the architecture platform that estimates its performance. This model may include size, power consumption, and timing. On the other hand, we can pass con- straints from higher abstraction levels to lower levels to continue the refinement process and satisfy the original design constraints. Along with constraints and estimates, we can also use cost functions to compare feasible solutions. In summary, the system platform layer is a comprehensive model that includes the view Roadmaps and Visions 28 IEEE Design & Test of Computers I O Hardware-dependent software Application software Platform API Output devicesInput devices Network Hardware Software Device drivers BIOS RTOS Networkcommunication Hardware platform Figure 1. Layered software structure. The platform API provides the interface between the hardware- dependent software and the middleware and application layers of the software stack. The hardware-dependent software rests on the physical hardware and network. The platform is usually part of a network, and thus provides an interface to the network environment, as illustrated on the right.
  • 7. of platforms from both the application and the implementation architecture perspectives, the vertex where the two cones in Figure 2 meet. The embedded-systems methodology roadmap Now let’s turn to the key requirements for the evolution of our broader embedded-system design methodology. We advocate a holistic approach that includes methodology, support- ing tools, IP blocks, hardware and software plat- forms, and supply chain management. Only by taking a high-level view of the problem can we devise solutions that will have a real impact on embedded-systems design. The essential issue to resolve is the link between functionality and programmable platforms. We must start from a high-level abstraction of system functionality that is completely implementation independent and rests on solid theoretical foundations that allow formal analysis. We must also select the platform that can support the functionality while meeting the physical constraints placed on the final implementation. We must imple- ment the functionality onto the platform so that it maintains its properties and meets the physical constraints. Our vision is to have an optimized, semiau- tomated, transparent, verifiable, and mathemat- ically correct flow from product specification through implementation for software-dominat- ed products implemented with highly pro- grammable platforms. Now let’s discuss the implications of this vision for the major stages of design (specification, refinement and decomposition, and analysis) and implemen- tation (target platform definition, mapping, and links to implementation). Specification Specification means different things to dif- ferent people. We understand specification to be the entry point of the design process. In our methodology, a specification should contain three basic elements: I A denotational description of the system’s functionality that doesn’t imply an imple- mentation. In general, we can express the denotational description as a set of equa- tions and inequalities in an appropriate alge- bra. Finding a satisfying set of variables corresponds to executing the specifications. This unambiguous functionality description lets us assess properties and evaluate rela- tionships among the design’s variables. Imperative specifications that fully define the communication mechanism and the ele- ments’ firing rules—FSM specifications, dataflow models, and event-driven mod- els—are refinements to the denotational description. Although imperative specifica- tions are important, the denotational speci- fication is both cleaner and more rigorous. I A set of constraints on the system’s final implementation. In general, the constraints can also be expressed as a set of equalities and inequalities, but the variables remain uninterpreted because they involve quanti- ties that have no meaning in the denota- tional description. A specification of an 29November–December 2001 Application space Architectural space Application instance Platform instance Platform specification Platform design-space exploration System platform Figure 2. System platform layer and design flow. The system platform effectively decouples the application development process (the upper triangle) from the architecture implementation process (the lower triangle).
  • 8. automotive engine controller’s behavior, for example, cannot refer to its weight, cost, emissions, or size; these variables are a func- tion of its physical implementation. These kinds of constraints limit the possible imple- mentations of the system’s functionality. I A set of design criteria. These are often more qualitative than quantitative characteristics, such as reliability, testability, maintain- ability, and manufacturability. The difference between constraints and criteria is that con- straints, must be met, whereas you do your best to optimize criteria. Multiple criteria often produce multiple conflicts, leading to a complex optimization. The designer’s goal is to obtain a system implementation whose behavior satisfies the denotational description and the set of con- straints, and optimizes the criteria. The language we use to express these elements is an open ques- tion, but the most important issue is not the lan- guage per se but its semantics. In fact, the issue of the mathematical models and the algebra used to compose and manipulate the models is the essential part of this stage of the design process. Choosing a language is often a compro- mise among several needs—for example, ease of expression, compactness, and composability. We believe that the specification languages will be heterogeneous. Although application domains most likely have common mathemat- ical underpinnings, they each require different constructs. Today, the mathematical frame- works are partitioned in different domains— that is, FSMs, dataflow graphs, and discrete- event systems. Each of these domains has a particular set of intrinsic properties and execu- tion models that determine the simulation mechanisms used to evaluate the description. Although these formalisms are mathematically rigorous, composing heterogeneous specifica- tions is very difficult. An appropriate mathemat- ical framework will let us establish properties of the composition of heterogeneous models that are impossible today. The embedded-software community has a strong interest in Unified Modeling Language as a standard expression mechanism. Although UML provides some degree of standardization in terms of the syntactical aspects of system design, its semantics are too generic to be use- ful in our framework. However, rather than define our own syntax for system-level lan- guages, we plan to focus on the language semantics we would need for the required models of computation and their mathematical properties. This work could enrich a language such as UML and contribute to its standardiza- tion. We have begun to define an embedded UML profile that would be a basis for object- oriented embedded-software development.4 Refinement and decomposition Once the designer has captured a specifica- tion, the design process should progress toward implementation through well-defined stages. The essential idea is to manipulate the descrip- tion by introducing additional details while both preserving the original functionality and its properties and meeting the constraints that can be evaluated at each new abstraction level. The smaller the steps are, the easier it is to for- mally prove that constraints are met and prop- erties are satisfied. This process, called successive refinement, is one of the mainstays of our embedded-soft- ware methodology. Key issues include the pre- cise definition of what refinement means in the appropriate mathematical framework and the proofs that each refinement maintains the spec- ification’s original properties. During successive refinement, it is often con- venient to break parts of the design description into smaller parts so that optimization tech- niques have a better chance of producing inter- esting results: This is called decomposition. We must determine whether the decomposed system satisfies the original specifications. Composition is the inverse transformation of decomposition. Thus, successive refinement, decomposition, and composition are the three basic operations we use to move toward imple- mentation. Both composition and decomposi- tion are difficult when the parts that are to be composed or that result from the decomposition use heterogeneous models. The mathematical framework must provide the foundations for showing the relationship between the system before and after these transformations. Roadmaps and Visions 30 IEEE Design & Test of Computers
  • 9. Analysis While marching toward the final implemen- tation, designers sometimes take paths that lead to designs that have no chance of satisfying some of the constraints. Hence, designers must have tools that evaluate intermediate results with respect to the constraints. The essential issue is finding appropriate models at this abstraction level that can carry enough information about the ultimate physical implementation. The alter- native is to go far down the implementation path and use detailed models that contain the vari- ables involved in the constraints. A register-transfer-level (RTL) model of a processor, together with simulation, can give very accurate information—but at the cost of long computing time. In addition, it might provide information that is more precise than necessary to assess how a choice meets our constraints. Static analysis methods such as Stars5 and abstract dynamic models can offer up to a thousand times the performance of simulation using detailed models. At a high abstraction level, formal analysis might also be an option. Target platform definition The methodology must use the right nota- tion to define the system platform API: the pro- jection into the embedded-software design space of the platform resources, services, and configurability space. One option is to develop a UML-based description of a target platform that can become the target of refinement and analysis. This description must represent the full range of services (computation, communication, and coordination) that the platform offers in both the software and hardware domains, including configurability options, but it should emphasize the embedded-software perspective. For exam- ple, the description could be a multilevel, hier- archical, stack-oriented view of platform services. To carry the design into the platform hard- ware domain for more detailed analysis of sys- tem performance and more detailed hardware and software verification, we can use emerging C++ class-library-based languages such as SystemC 2.0.6 Mapping The mapping paradigm associates portions of the embedded system’s refined specification with specific implementation vehicles contained with- in the target platform. Mapping is a fundamental method of configuration and refinement down to implementation. Constraint-driven mapping to a choice of implementation fabrics is essential for hardwareandsoftwarepartitioningandforchoos- ing interfaces between implementation compo- nents. Using the system platform API descriptions of a target platform, we can map designs onto the services that this platform offers and conduct var- ious design space exploration analyses for per- formance (and possibly other domains). Link to implementation Ideally, a platform-based design relies mostly on the selection of reusable service components offered by the platform along with the necessary configuration. However, derivative products often contain new or significantly modified func- tionality. Thus, our methodology must support software, hardware, and interface synthesis to allow a comprehensive flow from specification to implementation. In addition, we need static configuration (selection of components and con- nectivity) and dynamic control configuration (for scheduling, resource allocation, and communi- cations) to optimize the implementation. Although designers could satisfactorily select components by hand, the rest of the work should be done automatically to minimize human error and optimize productivity. The value of automatic synthesis has been proven both in software and hardware domains. For software, we can see compilers as synthesis tools: They map from high-level constructs into machine code. For both hardware and software, however, optimization is essential to automatic synthesis. Without it, automatic synthesis would be inferior to manual design. In linking to the implementation, we also need to go from a high-level representation of the system’s functionality to the detailed implemen- tation. Without constraints, this process would be too difficult to carry out automatically. However, because we have already selected an architec- ture and mapped functionality onto virtual blocks, the automatic approach is conceivable. 31November–December 2001
  • 10. Software synthesis. Almost all system-level design tools that comprehend software imple- mentations (for example, statecharts, the combi- nation of Simulink and State Flow, ASCET from ETAS, and SPW from Cadence) have some code generation capabilities. The approach is to start from the high-level description that these tools support—for example, graphical state machines, dataflow graphs, and flow diagrams—and gener- ate C code that implements the constructs of the high-level(graphical)languages.Wecanthenuse the C code for simulation, or we can output it toward a C compiler for a target implementation. In some cases, the code that these tools gen- erate is acceptable to a system designer. However, frequently a quick analysis lets an experienced designer outperform the auto- matic code generator. In addition, there has been little work on automatic synthesis of scheduling algorithms to coordinate the func- tional components to meet constraints. Communication- and component-based7 design include an overall approach to cope not only with the functional blocks but also with their compositions. Some researchers have made progress in the communication area with time-triggered architectures and synchronous languages, but much work remains in terms of optimal selection of a communication mecha- nism among software components. In the FSM domain, preliminary results stem- ming from work on the Berkeley Polis system8 and additional research indicate that FSM- based descriptions are more amenable to auto- matic synthesis. Over the years, researchers have published some code generation work on dataflow graphs, and the results are widely available. Although quality is constantly improving, humans can still outperform automatic tools in many cases. We suspect that the problem lies in taking a global view of the computational structure and understanding the memory orga- nization, which is quite complex for highly opti- mized DSPs. This area of research is vital to improving the quality of dataflow code gener- ation to automate software synthesis. Hardware synthesis. Researchers have explored hardware synthesis for many years, and good algorithms are available for generat- ing netlists of gates from an RTL description of the logic. If the modules to be generated use an implementation fabric of gates or low-complexity logic (standard cells or FPGAs), we can apply existing commercial tools. However, if the implementation modules’ hard- ware architecture is not specified, we must rely on behavioral synthesis, which, despite much research, has not been widely adopted. By leveraging an understanding of platform-based design, we can advance the state of the art in this domain. Another interesting area is mapping onto highly programmable platforms, including gen- erating customized application-optimized processors, as in the HP Labs PICO project.9 Finally, hardware synthesis must also encompass interface synthesis based on opti- mized generation from various easily config- urable communication pattern templates. OUR VISION for embedded systems unites plat- form-based design with a unified embedded- software flow from specification through implementation. Realizing this vision will require additional research, tool and method- ology development, and experimental appli- cations. Moreover, cooperation is needed between system houses and IC makers. System houses must increase software pro- ductivity and quality while facing increasing complexity in both customer product require- ments and the hardware they use to improve performance and meet constraints. IC makers must develop platforms that system houses can use promptly and effectively, with as little risk as possible in terms of market share and archi- tecture adequacy. If these two sides of the elec- tronics world do not adopt a cooperative vision, the future of embedded systems will be difficult. If they do, a codesign methodology will be a reality. Our work at the Gigascale Silicon Research Center, UC Berkeley, and Cadence Research Laboratories is tackling many of the details need- ed to bring about this reality. The Metropolis sys- tem, under development with GSRC sponsorship, embodies the approach we have presented. Roadmaps and Visions 32 IEEE Design & Test of Computers
  • 11. Other design systems also address the main issues we’ve described, although with different emphases and modeling techniques. Examples are the Fresco system developed under the direc- tion of Thomas A. Henzinger, the Mescal system under the direction of Kurt Keutzer and Sharad Malik, and the Ptolemy II system under the direc- tion of Edward A. Lee. Although our work is still conceptual, we believe that practical progress is possible, and that the next few years will see substantive steps toward our goals. I Acknowledgments The two areas of investigation presented here constitute the main research lines of the System- Level Design effort at the Gigascale Silicon Research Center—a large, multisite research pro- ject under the direction of Richard Newton.3 Cadence Research Laboratories and the System- Level Design Group have also heavily invested in these areas. We acknowledge, with thanks, the ideas and suggestions we received for this vision from Alberto Ferrari, Felice Balarin, Jerry Burch, Tom Henzinger, Ed Lee, Luciano Lavagno, Lane Lewis, Richard Newton, Roberto Passerone, Ellen Sentovich, Frank Schirrmeister, Marco Sgroi, Ted Vucurevich, and Yoshi Watanabe. References 1. A. Sangiovanni-Vincentelli and A. Ferrari, “System Design—Traditional Concepts and New Para- digms,” Proc. Int’l Conf. Computer Design, IEEE CS Press, Los Alamitos, Calif., 1999, pp. 2-12. 2. H. Chang et al., Surviving the SOC Revolution: A Guide to Platform-Based Design, Kluwer Academic, Norwell, Mass., 1999. 3. K. Keutzer et al., “System Level Design: Orthogo- nalization of Concerns and Platform-Based Design,” IEEE Trans. CAD of Integrated Circuits and Systems, vol. 19, no. 12, Dec. 2000, pp. 1523-1543. 4. G. Martin, L. Lavagno, and J. Louis-Guerin, “Embedded UML: A Merger of Real-Time UML and Co-Design,” Proc. Int’l Workshop Hardware/Software Co-Design (Codes 01), IEEE CS Press, Los Alamitos, Calif., 2001, pp. 23-28. 5. F. Balarin, “Worst-Case Analysis of Discrete Systems,” Proc. Int’l Conf. Computer-Aided Design (ICCAD 99), ACM Press, New York, 1999, pp. 347-352. 6. S. Swan, “An Introduction to System-Level Model- ing in SystemC 2.0,” Cadence Design Systems, San Jose, Calif., 2001; http://www.systemc.org/ papers/SystemC_WP20.pdf. 7. M. Sgroi, L. Lavagno, and A. Sangiovanni-Vincen- telli, “Formal Models for Embedded System Design,” IEEE Design & Test of Computers, vol. 17, no. 2, Apr.-June 2000, pp. 14-27. 8. F. Balarin et al., Hardware-Software Co-Design of Embedded Systems: The POLIS Approach, Kluw- er Academic, Norwell, Mass., 1997. 9. S. Aditya, B. Ramakrishna Rau, and V. Kathail, “Automatic Architectural Synthesis of VLIW and EPIC Processors,” Proc. Int’l Symp. System Syn- thesis (ISSS 99), IEEE CS Press, Los Alamitos, Calif., 1999, pp. 107-113. Alberto Sangiovanni- Vincentelli holds the Edgar L. and Harold H. Buttner Chair of Electrical Engineering and Computer Sciences at the University of California, Berke- ley, where he is also vice chair for Industrial Rela- tions. He cofounded Cadence and Synopsys and founded Cadence Research Labs. His research interests include design tools and methodologies, large-scale systems, embedded controllers, and hybrid systems. Sangiovanni-Vincentelli has a doctoral degree in electrical engineering and computer science from Politecnico di Milano, Italy. He is a fellow of the IEEE and a member of the National Academy of Engineering. Grant Martin is a fellow in the labs of Cadence Design Systems. His research inter- ests include system-level design, systems on chips, platform-based design, and embedded software. Martin has a BMath and an MMath in combinatorics and optimization from the University of Waterloo, Canada. Direct questions and comments about this arti- cle to Grant Martin, Cadence Design Systems, 555 River Oaks Parkway, San Jose, CA 95134; gmartin@cadence.com. 33November–December 2001