Page 539 - Introduction to Information Optics
P. 539

524                      9. Computing with Optics

                                                             (1)
       procedure consists of two steps: generate the partial products P  and add them
       [123, 126]. The product is formed as

                                     N - 1
                                         (i)
                           p = AB = £ P  = X Ab^.                    (9.55)
                                     (=0

                           (l)
       Each partial product P  is formulated by multiplying the multiplicand A by
       the ith digit b t of the multiplier B and shifting by i digit positions, which
       corresponds to the weight 2'. The partial product is a shifted version of A, or
       0, or A, depending on whether the value of b t is T, or 0, or 1. The traditional
       multiplication algorithm checks each digit of the multiplier B from the least
       significant digit b 0 to the most significant digit b v -i- To speed up the
       multiplication, the following two measures must be pursued.
          • Generate all partial products in parallel. This can be accomplished via
           symbolic substitution, truth-table look-up, and outer-product, crossbar,
           and perfect-shuffle interconnection networks.
          • Add all partial products pairwise by means of an adder tree. With a total
           of N partial products at the leaves of the tree, the summation process
                                                        j
           takes log 27V steps. At each step /, we perform N/2  MSD additions in
           parallel:
          P.j = P 2i- 2iJ- 1 + P 2i-  ltj-,, for i = 1, 2,..., N/2{ j = 1,2,..., Iog 2A'.
                                                                     (9.56)


       The final product is produced at the root of the binary tree. The partial
       products are generated in constant time while the addition of partial products
       using the tree structure requires log 2JV iterations. Therefore, the multiplication
       of two N-digit MSD numbers can be carried out in 0(log 2iV) time. The
       following numerical example illustrates the multiplication process between the
       numbers A = 10TT = 5 ]0 and B - lOll = 7 10.

          Step 1: Generation of the partial products


                               (0)
                              p : Ab 0 x 2° = 00010TT
                               (l}       1
                              p : Ab, x 2  =0010110
                               <2)
                                         2
                              p : Ab 2 x 2  = 0000000
                               (3)
                                         3
                              p : Ab 3 x 2  = lOlIOOO
   534   535   536   537   538   539   540   541   542   543   544