|
Objectives
The embedded system designer community needs optimization methodologies
and techniques, which do not change the input-output functionality of
the software applications or the design of the underlying hardware
platform. Thus, the increase of software design time, the adherence to
international standards and quality requirements forbid designers to
change the functionality of the embedded applications in order to
achieve optimizations. The customization and subsequent change of the
underlying hardware platform for optimization reasons is also very hard,
due to the need to use existing successful platforms, to reuse IP (Intellectual
Property) blocks and to keep compatibility with previous product versions.
Therefore, any proposed optimization methodologies need to take these boundary
constraints into account.
It is essential that these systematic optimizations methodologies are
supported by design automation tools, because due to the very complex nature
of the source code, it would be impossible to apply them manually in a
reasonable time frame. The automation tools should be able to optimize both
statically and dynamically allocated data, in order to cope with design-time
needs and adapt to run-time memory needs (scalable multimedia input changing
at run-time, unpredictable network traffic, etc.) in the most efficient way.
Short time-to-market needs demand the development of advanced heuristics within
the tools, in order to speed up the optimization process even more. Finally,
there is a definite need to deliver trade-offs, based on multi-objective cost
functions, to enable product customization at design time and adaptation to even
at run-time and thus, to increase its added value.
The MNEMEE project will address the aforementioned challenges by introducing
a novel supplementary source-to-source optimization design layer for data management
between the state-of-the-art optimizations at the application functionality and
the compiler design layer, shown in Figure 1. Optimizations at the even lower
System-On-Chip level (close at the circuit level) will not be addressed in the
context of this project. It is very important to perform the proposed optimizations
at the source code level (C/C++), because it is nowadays clear that the biggest gains
can only be achieved at this higher level [1]. Novel features include handling a
combination of dynamic memory allocation and static memory mapping for MPSoC
platforms and delivering: i) multi-objective explorations that allow trade-offs which
designers highly need to rightly position their product in the huge search space,
ii) a combination of design-time and run-time techniques to boost the cost-efficiency,
while keeping the overhead low at run-time, and iii) automated optimizations that are
applied only once to reduce design effort and can handle very complex, adaptive code.
The key focus of the project is the efficient data access and memory storage of both
dynamically and statically allocated data and their assignment on the data memory
hierarchy of a MPSoC platform. The MNEMEE project will deliver all the necessary design
methodologies, heuristics and prototype tools to enable the fast exploration of the huge
dynamic and static design space.

Figure 1. MNEMEE project vision.
More specifically, the MNEMEE project will:
1. Introduce a novel source-to-source optimization design layer for data management in
MPSoC embedded systems between the state-of-the-art optimizations at the application
and the compiler design layer. It will be independent of the underlying platform, but
it will be able to employ optimizations to the greatest possible advantage, according
to the data memory hierarchy of the embedded system.
2. Analyze the embedded software applications and highlight the source-to-source optimization
opportunities. This will enable the modeling of the data access and storage behavior and
will identify the memory management bottlenecks.
3. Provide a framework for source-to-source optimization methodologies, which targets both
statically and dynamically allocated data of complex embedded software applications.
Statically allocated data means that all the data is stored in memory in the beginning of
the execution time (e.g. arrays). Dynamically allocated data means that the data is stored
and removed from memory during run-time (e.g. single-linked lists), in order to adapt to
changing conditions and user needs.
4. Develop a set of prototype tools that will assist the embedded system designer in the source-to-source
optimization process and reduce considerably the total design effort needed. These
tools will be able to handle complex, dynamic source code of the software applications and the
associated libraries and use advanced heuristics, in order to take multi-objective optimization
decisions during design-time and run-time.
5. Provide data memory-hierarchy aware assignment and scheduling methodologies, which will take
advantage of any possible memory hierarchy configuration of the underlying MPSoC platform,
exploiting multi-layered memory configurations of on-chip (e.g. scratchpads, caches, etc.) and
off-chip memories (e.g. SDRAMs).
MNEMEE results:
The above set of design methodologies and automation tools will aim at the:
1. Reduction of design metrics, including memory footprint, memory bandwidth requirements, energy and power consumption of the MPSoC embedded systems. The above metrics will be improved, while still meeting all the real time specifications.
The result will be stability, lower cost and increased mobility factor of MPSoC embedded systems.
2. Development of controllable and measurable trade-offs based on multi-objective cost functions. The trade-offs will enable the right positioning of the product within the search space (namely number of accesses versus memory footprint, energy or data access cycle overhead versus control flow complexity etc.).
The result will be an added value of product customization at design time and adaptation at run time, according to the market and user needs respectively.
3. Reduction of design effort by systematic methodologies supported by design automation assistance.
The results will be reduced design time and shorter time to market of embedded software services.
4. Cost-efficient mapping of ambitious future applications of intelligent, ubiquitous devices, which were not available to the public until now, due to their huge resource requirements.
The result will be novel embedded software services, which will enhance the competitiveness of European industries in leading technologies.
|