Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
מבנה המחשב – מבוא למחשבים ספרתיים Parallel Prefix Computation The PPC Circuit Fan-out of a PPC Circuit Upper Bound: • There is a constant maximum number of splits per layer. • There are O(log n) layers. • Therefore, the total number of splits is O(log n). Fan-out of a PPC circuit (2) Lower Bound: • For simplicity, let us renumber the terminals beginning with 1 instead of 0. • Observe that the even numbered outputs are split once just before the exit. • Also observe that even numbered outputs of each circuit come from an internal circuit. Fan-out of a PPC circuit (3) • Let us look at the n/2 = 2(log n)-1 output terminal. • It will be an Even numbered output terminal of log(n)–2 circuits in the recursive construction. Output Terminal Splitting log n -1 depth log n - 2 depth This is the n/2th = 2(log n)-1 output terminal of the full circuit 2 depth 1 depth Fan-out of a PPC circuit (4) • Thus, the right most terminal will split log(n)-2 times and have a fan-out of log n - 1. • Since we have shown an example that achieves the Upper Bound, the Lower Bound must be equal to the Upper Bound. Operator * i  0, j  i.[ j : i ]  1   [ j ]  1  [ j  1 : i ]  1  k  [ j : i ]. [k ]  1  k  [ j : i ]. A[i ]  B[i ]  1  A[ j : i ]  B[ j : i ]  1 (2 j 1  1)  (2  1)  2 i j i 1 i j 1 0  2 i Operator * [i : 1]  2  ( [i ]  2)   [i ]  1  [i  1 : 1]  2   i  1  k  0. [i : i  k ]  1 2  k j  0.C[ j ]  1  l  j.C[l ]  C[l  1]  C[i  1]  1  A[i : 0]  B[i : 0]  C[0]  2 i 1 PPC for Decimal Addition • Reduction to carry bit computation: S[i] = mod( A[i]+B[i]+C[i] , 10 ) • This is a constant time reduction since the addition of 3 BCD coded decimal digits can be done in constant time. • The price is linear since it is a constant price per decimal digit. The problem is reduced to the calculation of the carry bits. Defining the Alphabet For i=-1: 2·C[0] = 0 or 2 σ[i] = For i≥0: 0 if A[i]+B[i] < 9 (kill carry) 1 if A[i]+B[i] = 9 (propagate carry) 2 if A[i]+B[i] > 9 (generate carry) The Operator • The original * operator is what we need. • The meaning of the alphabet is the same as the one used in class: – 0 = kill carry – 1 = propagate the carry – 2 = generate a carry • Go through the lecture notes and convince yourselves that it works. The Circuit • The carry bits are calculated using the PPC circuit. • We then use a BCD adder for each of the output digits: S[i]=mod(A[i],B[i],C[i],10) 2’s Complement Overflow a[n  1]  b[n  1]  c[n  1]  2c[n]  s[n  1]  a[n  1]  b[n  1]  0  2c[n]  s[n  1]  c[n  1]  c[n]  0  s[n  1]  c[n  1] s[n  1]  1  a[n  1]  c[n  1]  1 a[n  1]  b[n  1]  1  2c[n]  s[n  1]  2  c[n]  1  s[n  1]  c[n  1] s[n  1]  0  c[n  1]  0 2’s Complement Overflow c[n  1]  c[n]  c[n]  1, c[n  1]  0  a[n  1]  b[n  1]  2  a[n  1]  b[n  1]  1 s[n  1]  0 c[n]  0, c[n  1]  1  a[n  1]  b[n  1]  0  a[n  1]  b[n  1]  0 s[n  1]  c[n  1]  1