Page 35 - DSP Integrated Circuits
P. 35

20                                           Chapter 1 DSP Integrated Circuits


            Hierarchical abstraction is the iterative replacement of groups of modules.
        Note that using hierarchy alone does not reduce the complexity. A design that can
        be completely described by using modules (abstractions) is modular and will have
        low complexity. If the design has only a few types of modules, the complexity is even
        lower. Such designs have a high degree of regularity. A regularity factor can be
        denned as the ratio of the total number of modules to the number of different mod-
        ules. Standardization that restricts the design domain can be applied at all levels
        of the design to simplify modules and increase the regularity, thereby reducing the
        complexity. It is widely believed that the adoption of highly structured design meth-
        odologies making extensive use of the ideas just discussed, is a necessity for a suc-
        cessful design of complex systems.


        1.6.5 The Divide-And-Conquer Approach

        A well-known approach to derive low-complexity algorithms is the divide-and-con-
        quer approach which is based on the fact that many large problems can be decom-
        posed into several smaller problems that are easier to solve than the larger one.
        The decomposition is done recursively until the remaining problems are so small
        that they can be solved directly. Finally, the solutions are combined to obtain a
        solution for the original problem [7]. The approach is described by the pseudo-code
        shown in Box 1.1.



           function Solve(P);
           var

           begin
             if size(P) < MinSize
               then Solve := Direct_Solution(P)
             else
               begin
                  Decompose(P, PI, P^,..., P&);
                  for i := 1 to b do
                    Si := Solve(Pj);
                  Solve := CombineGSi, S 2,..., S b)
               end;
           end;

                           Box 1.1. The divide-and-conquer algorithm


        The amount of time required at each step is






        where n is the size of the problem, a is the time required to solve the minimum-
        size problem, b is the number of subproblems in each stage, nlc is the size of the
        subproblems, and d • n is the linear amount of time required for decomposition
   30   31   32   33   34   35   36   37   38   39   40