Presentation is loading. Please wait.

Presentation is loading. Please wait.

Penn ESE534 Spring2014 -- DeHon 1 ESE534: Computer Organization Day 3: February 3, 2014 Arithmetic Work preclass exercise.

Similar presentations


Presentation on theme: "Penn ESE534 Spring2014 -- DeHon 1 ESE534: Computer Organization Day 3: February 3, 2014 Arithmetic Work preclass exercise."— Presentation transcript:

1 Penn ESE534 Spring2014 -- DeHon 1 ESE534: Computer Organization Day 3: February 3, 2014 Arithmetic Work preclass exercise

2 Penn ESE534 Spring2014 -- DeHon 2 Last Time Boolean logic  computing any finite function Saw gates…and a few properties of logic

3 Penn ESE534 Spring2014 -- DeHon 3 Today Addition –organization –parts of design space –parallel prefix –area and time requirements

4 Penn ESE534 Spring2014 -- DeHon 4 Why? Start getting a handle on –Complexity Area and time Area-time tradeoffs –Parallelism –Regularity Arithmetic underlies much computation –grounds out complexity

5 Preclass Penn ESE534 Spring2014 -- DeHon 5

6 Circuit 1 Can the delay be reduced? How? To what? Penn ESE534 Spring2014 -- DeHon 6

7 Tree Reduce AND Penn ESE534 Spring2014 -- DeHon 7

8 Circuit 2 Can the delay be reduced? Penn ESE534 Spring2014 -- DeHon 8

9 Circuit 3 Can the delay be reduced? Penn ESE534 Spring2014 -- DeHon 9

10 Brute Force Multi-Output AND How big? ~38 here … in general about N 2 /2 Penn ESE534 Spring2014 -- DeHon 10

11 Brute Force Multi-Output AND Can we do better? Penn ESE534 Spring2014 -- DeHon 11

12 Circuit 4 Can the delay be reduced? Penn ESE534 Spring2014 -- DeHon 12

13 Addition Penn ESE534 Spring2014 -- DeHon 13

14 Penn ESE534 Spring2014 -- DeHon 14 C: 00 A: 01101101010 B: 01100101100 S: 0 C: 000 A: 01101101010 B: 01100101100 S: 10 C: 0000 A: 01101101010 B: 01100101100 S: 110 C: 10000 A: 01101101010 B: 01100101100 S: 0110 C: 010000 A: 01101101010 B: 01100101100 S: 10110 C: 1010000 A: 01101101010 B: 01100101100 S: 010110 C: 11010000 A: 01101101010 B: 01100101100 S: 0010110 C: 011010000 A: 01101101010 B: 01100101100 S: 10010110 C: 1011010000 A: 01101101010 B: 01100101100 S: 010010110 C: 11011010000 A: 01101101010 B: 01100101100 S: 1010010110 C: 11011010000 A: 01101101010 B: 01100101100 S: 11010010110 Example: Bit Level Addition Addition –Base 2 example –Work together A: 01101101010 B: 01100101100 S: C: 0 A: 01101101010 B: 01100101100 S:

15 Penn ESE534 Spring2014 -- DeHon 15 Addition Base 2 A = a n-1 *2 (n-1) +a n-2 *2 (n-2) +... a 1 *2 1 + a 0 *2 0 =  (a i *2 i ) S=A+B What is the function for s i … carry i ? s i = carry i xor a i xor b i carry i = ( a i-1 + b i-1 + carry i-1 )  2 = a i-1 *b i-1 +a i-1 *carry i-1 + b i-1 *carry i-1 = MAJ(a i-1,b i-1,carry i-1 )

16 Penn ESE534 Spring2014 -- DeHon 16 Ripple Carry Addition Shown operation of each bit Often convenient to define logic for each bit, then assemble: –bit slice

17 Penn ESE534 Spring2014 -- DeHon 17 Ripple Carry Analysis Area: O(N) [6n] Delay: O(N) [2n] What is area and delay for N-bit RA adder? [unit delay gates]

18 Penn ESE534 Spring2014 -- DeHon 18 Can we do better? Lower delay?

19 Penn ESE534 Spring2014 -- DeHon 19 Leading Question Do we have to wait for the carry to show up to begin doing useful work? –We do have to know the carry to get the right answer. –How many values can the carry take on?

20 Penn ESE534 Spring2014 -- DeHon 20 Idea Compute both possible values and select correct result when we know the answer

21 Penn ESE534 Spring2014 -- DeHon 21 Preliminary Analysis Delay(RA) --Delay Ripple Adder Delay(RA(n)) = k*n [k=2 this example] Delay(RA(n)) = 2*(k*n/2)=2*DRA(n/2) Delay(P2A) -- Delay Predictive Adder Delay(P2A)=DRA(n/2)+D(mux2) …almost half the delay!

22 Penn ESE534 Spring2014 -- DeHon 22 Recurse If something works once, do it again. Use the predictive adder to implement the first half of the addition

23 Recurse Penn ESE534 Spring2014 -- DeHon 23

24 Penn ESE534 Spring2014 -- DeHon 24 Recurse Redundant (can share) N/4

25 Penn ESE534 Spring2014 -- DeHon 25 Recurse If something works once, do it again. Use the predictive adder to implement the first half of the addition Delay(P4A(n))= Delay(RA(n/4)) + D(mux2) + D(mux2) Delay(P4A(n))=Delay(RA(n/4))+2*D(mux2)

26 Penn ESE534 Spring2014 -- DeHon 26 Recurse By know we realize we’ve been using the wrong recursion –should be using the Predictive Adder in the recursion Delay(PA(n)) = Delay(PA(n/2)) + D(mux2) –Contrast: Delay(P2A)=DRA(n/2)+D(mux2) Every time cut in half we add a D(mux2). How many times cut in half? Delay(PA(n))=log 2 (n)*D(mux2)+C –C = Delay(PA(1)) if use FA for PA(1), then C=2

27 Conclude Can perform addition in delay logarithmic in width of operands. Penn ESE534 Spring2014 -- DeHon 27

28 Penn ESE534 Spring2014 -- DeHon 28 Another Way (Parallel Prefix)

29 Penn ESE534 Spring2014 -- DeHon 29 CLA Think about each adder bit as a computing a function on the carry in –C[i]=g(c[i-1]) –Particular function f will depend on a[i], b[i] –g=f(a,b)

30 Penn ESE534 Spring2014 -- DeHon 30 Functions What are the functions g(c[i-1])? –g(c)=carry(a=0,b=0,c) –g(c)=carry(a=1,b=0,c) –g(c)=carry(a=0,b=1,c) –g(c)=carry(a=1,b=1,c)

31 Penn ESE534 Spring2014 -- DeHon 31 Functions What are the functions g(c[i-1])? –g(x)=1 Generate a[i]=b[i]=1 –g(x)=x Propagate a[i] xor b[i]=1 –g(x)=0 Squash a[i]=b[i]=0

32 Penn ESE534 Spring2014 -- DeHon 32 Combining Want to combine functions –Compute c[i]=g i (g i-1 (c[i-2])) –Compute compose of two functions What functions will the compose of two of these functions be? –Same as before Propagate, generate, squash

33 Penn ESE534 Spring2014 -- DeHon 33 Compose Rules (LSB MSB) GG GP GS PG PP PS SG SP SS [work on board]

34 Penn ESE534 Spring2014 -- DeHon 34 Compose Rules (LSB MSB) GG = G GP = G GS = S PG = G PP = P PS = S SG = G SP = S SS = S

35 Penn ESE534 Spring2014 -- DeHon 35 Combining Do it again… Combine g[i-3,i-2] and g[i-1,i] What do we get?

36 Penn ESE534 Spring2014 -- DeHon 36 Reduce Tree

37 Penn ESE534 Spring2014 -- DeHon 37 Reduce Tree Sq=/A*/B Gen=A*B Sq out =Sq 1 +/Gen 1 *Sq 0 Gen out =Gen 1 +/Sq 1 *Gen 0

38 Penn ESE534 Spring2014 -- DeHon 38 Reduce Tree Sq=/A*/B Gen=A*B Sq out =Sq 1 +/Gen 1 *Sq 0 Gen out =Gen 1 +/Sq 1 *Gen 0 Delay and Area?

39 Penn ESE534 Spring2014 -- DeHon 39 Reduce Tree Sq=/A*/B Gen=A*B Sq out =Sq 1 +/Gen 1 *Sq 0 Gen out =Gen 1 +/Sq 1 *Gen 0 A(Encode)=2 D(Encode)=1 A(Combine)=4 D(Combine)=2 A(Carry)=2 D(Carry)=1

40 Penn ESE534 Spring2014 -- DeHon 40 Reduce Tree: Delay? D(Encode)=1 D(Combine)=2 D(Carry)=1 Delay = 1+2log 2 (N)+1

41 Penn ESE534 Spring2014 -- DeHon 41 Reduce Tree: Area? A(Encode)=2 A(Combine)=4 A(Carry)=2 Area= 2N+4(N-1)+2

42 Penn ESE534 Spring2014 -- DeHon 42 Reduce Tree: Area & Delay Area(N) = 6N-2 Delay(N) = 2log 2 (N)+2

43 How Relate? Penn ESE534 Spring2014 -- DeHon 43

44 Need Penn ESE534 Spring2014 -- DeHon 44 Need PG[i:0] forall i

45 Intermediates Can we compute intermediates efficiently? Penn ESE534 Spring2014 -- DeHon 45

46 Intermediates Share common terms Penn ESE534 Spring2014 -- DeHon 46

47 Penn ESE534 Spring2014 -- DeHon 47 Reduce Tree While computing PG[N,0] compute many PG[i,j]’s –PG[1,0], PG[3,0], PG[7,0] ….

48 Penn ESE534 Spring2014 -- DeHon 48 Prefix Tree While computing PG[N,0] only get –PG[2 n -1,0] How fillin holes?

49 Penn ESE534 Spring2014 -- DeHon 49 Prefix Tree Look at Symmetric stage (with respect to middle=PG[N,0] stage) and combine to fillin

50 Penn ESE534 Spring2014 -- DeHon 50 Prefix Tree

51 Penn ESE534 Spring2014 -- DeHon 51 Prefix Tree

52 Penn ESE534 Spring2014 -- DeHon 52 Prefix Tree Bring in Carry and compute each intermediate carry-in

53 Penn ESE534 Spring2014 -- DeHon 53 Prefix Tree Note: prefix-tree is same size as reduce tree –Always matched same number of elements in symmetric stage

54 Parallel Prefix Area and Delay? Roughly twice the area/delay Area= 2N+4N+4N+2N = 12N Delay = 4log 2 (N)+2 Conclude: can add in log time with linear area. Penn ESE534 Spring2014 -- DeHon 54

55 Penn ESE534 Spring2014 -- DeHon 55 Parallel Prefix Important Pattern Applicable any time operation is associative –Or can be made assoc. as in MAJ case Examples of associative functions? –Non-associative? Function Composition is always associative

56 Penn ESE534 Spring2014 -- DeHon 56 Note: Constants Matter Watch the constants Asymptotically this Carry-Lookahead Adder (CLA) is great For small adders can be smaller with –fast ripple carry –larger combining than 2-ary tree –mix of techniques …will depend on the technology primitives and cost functions

57 Penn ESE534 Spring2014 -- DeHon 57 Two’s Complement positive numbers in binary negative numbers –subtract 1 and invert –(or invert and add 1)

58 Penn ESE534 Spring2014 -- DeHon 58 Two’s Complement 2 = 010 1 = 001 0 = 000 -1 = 111 -2 = 110

59 Penn ESE534 Spring2014 -- DeHon 59 Addition of Negative Numbers? …just works A: 111 B: 001 S: 000 A: 110 B: 001 S: 111 A: 111 B: 010 S: 001 A: 111 B: 110 S: 101

60 Penn ESE534 Spring2014 -- DeHon 60 Addition of Negative Numbers? …just works A: 111 B: 001 S: A: 110 B: 001 S: A: 111 B: 010 S: A: 111 B: 110 S: What does addition give (binary bits). Then what is addition saying (in normal integers).

61 Penn ESE534 Spring2014 -- DeHon 61 Subtraction Negate the subtracted input and use adder –which is: invert input and add 1 works for both positive and negative input –001  110 +1 = 111 –111  000 +1 = 001 –000  111 +1 = 000 –010  101 +1 = 110 –110  001 +1 = 010

62 Penn ESE534 Spring2014 -- DeHon 62 Subtraction (add/sub) Note: you can use the “unused” carry input at the LSB to perform the “add 1”

63 Penn ESE534 Spring2014 -- DeHon 63 Overflow? Overflow=(A.s==B.s)*(A.s!=S.s) A: 111 B: 001 S: 000 A: 110 B: 001 S: 111 A: 111 B: 010 S: 001 A: 111 B: 110 S: 101 A: 001 B: 001 S: 010 A: 011 B: 001 S: 100 A: 111 B: 100 S: 011

64 Penn ESE534 Spring2014 -- DeHon 64 Big Ideas [MSB Ideas] Can build arithmetic out of logic

65 Penn ESE534 Spring2014 -- DeHon 65 Big Ideas [MSB-1 Ideas] Associativity Parallel Prefix Can perform addition –in log time –with linear area

66 Admin HW1 due Wednesday Office Hours Tuesday 4:15pm—5:30pm HW2 out today Reading for Wednesday online Penn ESE534 Spring2014 -- DeHon 66


Download ppt "Penn ESE534 Spring2014 -- DeHon 1 ESE534: Computer Organization Day 3: February 3, 2014 Arithmetic Work preclass exercise."

Similar presentations


Ads by Google