05.07.2013 Views

Script for Laboratory: Designing embedded ASIPs - CES

Script for Laboratory: Designing embedded ASIPs - CES

Script for Laboratory: Designing embedded ASIPs - CES

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

9 Custom instruction identification<br />

The concept of instruction set extension in processor is a challenging and<br />

highly prospective research area- both in academia and industry. Instruction<br />

set extension in processor design plat<strong>for</strong>m mainly depends on detecting cluster<br />

of operations. In our lab we try to find these custom instructions to a limited extend.<br />

There are lots of state-of-the art ways to identify these custom instructions.<br />

None of these ways proved to be that efficient to identify custom instructions<br />

automatically. Currently we are not using any automatic tool to identify<br />

custom instructions. Our main goal in this lab is to use a group of promising<br />

custom instructions that can be extracted manually with human ef<strong>for</strong>t. But to<br />

aid the manual ef<strong>for</strong>t <strong>for</strong> finding custom instructions a number of tools are used<br />

<strong>for</strong> profiling as well as to analyze the Control Flow Graph (CFG) and Data<br />

Flow Graph (DFG). In this tutorial the concept of custom instructions and the<br />

possibility of different custom instructions are described. The use of profiling<br />

tools is also described within the scope of this tutorial.<br />

9.1 What is a custom instruction<br />

The cluster of in<strong>for</strong>mation, when implemented as a single instruction, should maximize some<br />

metric and finally improve the per<strong>for</strong>mance. Such cluster of operations, <strong>for</strong>ming a single<br />

instruction is generally called a custom instruction.<br />

Identification of custom instructions mostly depends on application domains. Analysis of<br />

applications reveals different classes of custom instructions. Generally, four classes of custom<br />

instructions can be found in different application domains. The classes are<br />

• SIMD Instruction<br />

• Zero-Overhead loop Instructions<br />

• Memory Instructions<br />

• Composite Instructions<br />

Figure 9-1 shows a very simple custom instruction from a C-Code segment. Now the very<br />

important question is when and which custom instruction needs to be added as a new<br />

instruction in the template instruction set. We take a very simplistic assumption in our<br />

experiment. The instruction which has been executed most of the time in the application and<br />

basically increases the per<strong>for</strong>mance in terms of cycle count without or with a very little<br />

penalty of increased latency and reduces the energy consumption significantly but might have<br />

considerable amount of area increase are chosen as custom instructions. So the bottom line to<br />

choose a new instruction can be summarized as follows considering our lab:<br />

- 84 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!