Image Processing HW/SW Co-Exploration Methodologies

esg_methodol
The efficient implementation of an application as embedded hardware / software systems requires the design of an adequate hardware architecture and well-adapted and optimized software. For complex applications this design space exploration is rather difficult and requires in-depth analysis of the application and its implementation alternatives. Profiling tools provide this information and aid during design, optimization and scheduling of hardware and software.
The design of an embedded system often starts from a executable specification of the system in C language, which has to be transformed into an efficient system, including hardware and software components. The design of the system requires the following steps: system architecture design, hardware/software partitioning, software optimization, design of hardware accelerators and system scheduling.
graphic_oben
methodol_text2
All these steps require detailed information about the performance of the different parts of the application. Besides the arithmetical demands of the application, memory accesses can have a huge influence on performance and power consumption. This is especially the case for data intensive applications, such as multimedia systems, due to the huge amount of data to be transferred in these applications. This problem is even increased if the given data bandwidth is not used efficiently.
In order to reduce the overall data traffic, those parts of the code, which require a high amount of data transfers, have to be identified and optimized. The above mentioned applications contain up to 100.000 lines of source code. Therefore tools are required, which help the designer identifying the critical parts of the software.
In order to achieve a fast and accurate solution, we developed a specialized profiler, called MEMTRACE, for obtaining performance, memory access and energy consumption statistics.
graphic_mitte
methodol_text3
The performance analysis is carried out, based on the analysis specification and the system specification. The system specification includes the processor, cache and memory type definitions, whereas the analysis specification includes function and variable names automatically extracted from the application. The MEMTRACE backend connects to an instruction set simulator (ISS) for the simulation of the user application and writes the analysis results of the functions and variables to files. The results include the clock cycles, memory accesses, cache misses, bus congestion and energy consumption for each function. These results serve as a database for further statistical analysis, for example with spreadsheet programs.
The tool is available with a graphical user interface for easy access to all configuration parameters as well as with a commandline interface for automated profiling tasks.
graphic_unten
