top of page

Motivation

 

 

Embedded application systems play a very important part on technological evolution as they are prevalent in our everyday life and can be found everywhere, from commercial electronic products such as, tablets, cell phones, televisions, microwave ovens, automobiles, to much bigger and complex systems like GPS, WWW, oil refineries, nuclear plants.

 

Embedded systems are becoming more and more demanding, they require better performances with lower power consumption and lower area. Researches on this matter is of great importance, extensive design automation and optimization tools are crucial to create more complex embedded systems that can perform as required.

 

A common practice to enhance the performance of embedded applications executing on general purpose processors (GPP) is to map computationally intensive parts (hot-spots) to specialized hardware such as Reconfigurable Processing Units (RPU) that act like acceleration coprocessors of the GPP.

 

An interesting technique to reduce energy consumption and to improve execution time, is the dynamic mapping. This allows to move computations from the GPP to the coprocessor in a transparent and flexible way, at runtime, and without pre-changing the program binary.

 

Currently, there is a research being done on this matter that uses dynamic mapping on an embedded system model mainly consisting of a Xilinx MicroBlaze processor connected to a Coarse Grained Reconfigurable Array (CGRA). The technique used is to optimize the code segments that are most repeated. As they represent a very big portion of the execution of a program, this will result in a great overall performance boost. The detection of these code segments is gradually made by first detecting BasicBlocks. Each structure of these is formed by a sequence of instructions with both only a single entry-point and one exit-point. By adding several BasicBlocks, a SuperBlock is formed. This type of segment also has only a single entry but multiple exits. But the most complex structure and the one that is more important to work on is the Megablock. This is built by a sequence of SuperBlocks that repeats itself at least once. Each repetition is called an iteration and since Megablocks tend to usually have a high number of iterations, they can be considered as hot-spots

 

bottom of page