Hardware Reference
In-Depth Information
mobile communications, networking, automotive and avionic applications, multi-
media. These applications may run concurrently, start, and stop at any time. There is
lot of dynamism in these applications which makes it challenging to run them opti-
mally. Each application may have multiple configurations, with different constraints
imposed by the external world or the user (deadlines and quality requirements, such
as audio and video quality, output accuracy), different usages of various types of
platform resources (processing elements, memories and communication), and dif-
ferent costs (performance, power consumption, bandwidth). The second challenge
is the platform heterogeneity, happening between platforms and within a platform.
Even for similar platforms, process variation endows them with different perfor-
mance characteristics. Furthermore the resource requirement for each application
may vary over time (by the time applications are put in the market for sell) due to
hardware adaptation to physical constraints (power, temperature, battery life, and
aging). Hence, it is untenable to ask software vendors to adapt or optimize their
applications for each platform. The third challenge is time to market, which makes
software development productivity of paramount importance. Designers are getting
much less time to design their application and platforms whereas the complexity of
the design and mapping is increasing. This can make it hard to perform exhaustive
design space explorations. At the same time, due to the increasing complexity of the
architecture, it is almost impossible for traditional design techniques to identify an
optimal static configuration matching the available architecture resources with the
dynamic requirements (i.e., performance and power consumption).
Given such tough challenges, one can design an embedded system by making
conservative worst-case assumptions, but that will not lead to an efficient design.
Especially in embedded system design, where there are very tight constraints (e.g.
cost of a device), it is not acceptable to have a device with large inefficiency. To
overcome these challenges, we have developed a methodology to enable efficient
running of multiple applications on multi-core platforms. Our approach uses a run-
time manager to control different possible application configurations [ 39 ]. Thus,
concerning all the parameters that can be changed at run-time (e.g. the number of
cores used to run an application and their operating frequencies), a run-time manager
layer is built to achieve desirable Quality of Service (QoS) for the applications.
Our run-time manager layer consists of a Run-time Resource Manager (RRM)
with following features:
￿
It supports a holistic view of the resources. This is needed for global resource
allocation decisions, arbitrating between all applications, and minimizing the
total costs.
￿
It transparently optimizes the resource usage and the application mapping on the
platform. This is needed to facilitate the application development and mapping
from diverse application domains.
￿
It dynamically adapts to changing environment. This is needed to enable the
best usage of resources and to achieve a high efficiency under changing environ-
ment and requirements. To that end, dynamic resource allocation and dynamic
reconfiguration of applications must be supported. Also, quality requirements
Search WWH ::




Custom Search