词条 | Operation Reduction for Low Power |
释义 |
Operation Reduction for Low Power is a ASIC Program transformation technique used to reduce the power consumed by a specific application. A program transformation is any operation that changes the computational structure such as nature and type of computational models, their interconnections, sequencing of operations keeping the input output behavior intact. We basically use Operation reduction to reduce the number of operations to be done to perform a task which reduces the hardware required and in turn power consumption. For example in a given Application specific IC reducing the number of independent additions required automatically reduces the adders required and also the power consumed. Operation SubstitutionOperation Substitution is one of the operation reduction techniques where certain costly operations are substituted by relatively cheaper operations which reduce power consumption. Some typical examples of operation substitution techniques are given as follows:
Butterfly ExampleA popular example of Operation substitution is Butterfly example. In this example we need to compute two values yr = ar * xr - ai * xi, yi = ai * xr + ar * xi which can be done sequentially computing the terms as shown in the expressions. But using operation substitution we can compute them using expressions, yr = ar* (xi+xr) - xi * (ai+ar), yi = ar* (xi+xr) + xr * (ai-ar) where the term (xi+xr) once computed can be used by both the computations from this we can easily workout that operations changed from number of operations changed from 4 multiplications to 3 and 2 Add/sub to 3. The critical path in the first method was of length 2 where as in the latter it is 3. So again this is a trade-off between delay and power. Switching Activity ReductionBased on the frequency of input changing we can model the program so that less activity switching happens i.e. if certain inputs are less frequently changing then they should be made operating in single module so that the particular module is relatively passive compared to others. A+B+C+D can be computed as (A+B)+C+D or (A+B)+(C+D) the first one feeds C,D to 2 separate adders but if they are relatively slow changing then feeding them to same adder is more profitable. Power Aware Scheduling and BindingAny synthesis has 3 parts Allocation(number and type of resources), Scheduling(operation scheduling), Binding(building the circuit). We can schedule the operations in a particular order based which value in the program activates how many modules. We always want the operations requiring more operations to be completed before hand to be scheduled later. Exploiting Mutual ExclusionConsider the following code snippet: if(C>0){ A = A*C } Let us assume that the profiling has shown that most likely the value of C is 2. Therefore as C and A are independent and mutually exclusive we can modify the code to be if (c = = 2) A = A << 1 else If (C >0){ A = A * C; } Here the multiplication is replaced by shifting operation which is triggered in most of the cases and is far cheaper than multiplication. References
2 : Program transformation|Software optimization |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。