Memory maNagEMEnt technology for adaptive and efficient design of Embedded systems
Home | Objectives | Description | Partners | Documents
| Dissemination | MNEMEE tools | News | Contact | Useful Links





   Web Counter Area


Web Counter  says
that you are
visitor number
free hit counter
free web counter
since January-1-2008.

   Login Area
Username:

Password:

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.

Home | Objectives | Description | Partners | Documents
| Dissemination | MNEMEE tools | News | Contact | Useful Links
MNEMEE project is funded by the EU for the years 2008-2010.
Copyright © 2008. All rights reserved. Designed by TemplateYes