Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Computer Organization and Architecture Lecture 10 By Juthawut Chantharamalee wut_cha/home.htm.

Similar presentations


Presentation on theme: "Introduction to Computer Organization and Architecture Lecture 10 By Juthawut Chantharamalee wut_cha/home.htm."— Presentation transcript:

1 Introduction to Computer Organization and Architecture Lecture 10 By Juthawut Chantharamalee http://dusithost.dusit.ac.th/~jutha wut_cha/home.htm

2 Outline  Adders  Comparators  Shifters  Multipliers  Dividers  Floating Point Numbers 2Introduction to Computer Organization and Architecture

3 Binary Representations of Numbers  To find negative numbers  Sign and magnitude: msb = ‘1’  1’s complement: complement each bit to change sign  2’s complement: 2 n – positive number b2b1b0b2b1b0 Unsigned Sign and Magnitude 1’s Complement 2’s Complement 0 1 13+3 0 1 02+2 0 0 11+1 0 0 00+0 1 0 04-0-3-4 1 0 15-2-3 1 1 06-2-2 1 1 17-3-0 3Introduction to Computer Organization and Architecture

4 Single-Bit Addition Half Adder Full Adder ABC out S 00 01 10 11 ABC S 000 001 010 011 100 101 110 111 44Introduction to Computer Organization and Architecture

5 Single-Bit Addition Half Adder Full Adder ABC out S 0000 0101 1001 1110 ABC S 00000 00101 01001 01110 10001 10110 11010 11111 5Introduction to Computer Organization and Architecture

6 Carry-Ripple Adder  Simplest design: cascade full adders Critical path goes from Cin to Cout Design full adder to have fast carry delay 6Introduction to Computer Organization and Architecture

7 Carry Propagate Adders  N-bit adder called CPA Each sum bit depends on all previous carries How do we compute all these carries quickly? 7Introduction to Computer Organization and Architecture

8 Propagate and Generate - Define  An n-bit adder is just a combinational circuit s i = a XOR b XOR c = a i b i ’c i ’ + a i ’b i c i ’ + a i ’b i ’c i + a i b i c i c i+1 = MAJ(a,b,c) = a i b i + a i c i + b i c i  Want to write s i in “sum of products” form c i+1 = g i + p i c i, where g i = a i b i, p i = a i + b i  if g i is true, then c i+1 is true, thus carry is generated  if p i is true, and if c i is true, c i is propagated  Note that the p i equation can also be written as p i = a i XOR b i since g i = 1 when a i = b i = 1 (i.e. generate occurs, so propagate is a “don’t care”) 8Introduction to Computer Organization and Architecture

9 Propagate and Generate - Blocks  In the general case, for any j with i<j, j+1<k c k+1 = G ik + P ik c i G ik = G j+1,k + P j+1,k G ij P ik = P ij P j+1,k  G ik equation in words: A carry is generated out of the block consisting of bits i through k inclusive if  it is generated in the high-order part of the block (j+1, k) or  it is generated in the low-order (i,j) part of the block and then propagated through the high part 9Introduction to Computer Organization and Architecture

10 Propagate and Generate-Lookahead  Recursively apply to eliminate carry terms c i+1 = g i + p i g i-1 + p i p i-1 g i-2 + … + p i p i-1 …p 1 g 0 + p i p i-1 …p 1 p 0 c 0  This is a carry-lookahead adder Note large fan-in of OR gate and last AND gate Too big! Build p’s and g’s in steps  c 1 = g 0 + p 0 c 0  c 2 = G 01 + P 01 c 0  Where: G 01 = g 1 + p 1 g 0, P 01 = p 1 p 0 10 Introduction to Computer Organization and Architecture

11 PG Logic 11Introduction to Computer Organization and Architecture

12 Carry-Ripple Revisited  G 03 = G 3 + P 3 G 02 12Introduction to Computer Organization and Architecture

13 Carry-Skip Adder  Carry-ripple is slow through all N stages  Carry-skip allows carry to skip over groups of n bits Decision based on n-bit propagate signal 13Introduction to Computer Organization and Architecture

14 Carry-Lookahead Adder  Carry-lookahead adder computes G 0i for many bits in parallel.  Uses higher-valency cells with more than two inputs. 14Introduction to Computer Organization and Architecture

15 Carry-Select Adder  Trick for critical paths dependent on late input X Precompute two possible outputs for X = 0, 1 Select proper output when X arrives  Carry-select adder precomputes n-bit sums For both possible carries into n-bit group 15Introduction to Computer Organization and Architecture

16 Comparators  0’s detector:A = 00…000  1’s detector: A = 11…111  Equality comparator:A = B  Magnitude comparator:A < B 16Introduction to Computer Organization and Architecture

17 1’s & 0’s Detectors  1’s detector: N-input AND gate  0’s detector: NOTs + 1’s detector (N-input NOR) 17Introduction to Computer Organization and Architecture

18 Equality Comparator  Check if each bit is equal (XNOR, aka equality gate)  1’s detect on bitwise equality 18Introduction to Computer Organization and Architecture

19 Magnitude Comparator  Compute B-A and look at sign  B-A = B + ~A + 1  For unsigned numbers, carry out is sign bit 19Introduction to Computer Organization and Architecture

20 Signed vs. Unsigned For signed numbers, comparison is harder  C: carry out  Z: zero (all bits of A-B are 0)  N: negative (MSB of result)  V: overflow (inputs had different signs, output sign  B) 20Introduction to Computer Organization and Architecture

21 Shifters  Logical Shift: Shifts number left or right and fills with 0’s  1011 LSR 1 = ____1011 LSL1 = ____  Arithmetic Shift: Shifts number left or right. Rt shift sign extends  1011 ASR1 = ____ 1011 ASL1 = ____  Rotate: Shifts number left or right and fills with lost bits  1011 ROR1 = ____ 1011 ROL1 = ____ 21Introduction to Computer Organization and Architecture

22 Shifters  Logical Shift: Shifts number left or right and fills with 0’s  1011 LSR 1 = 01011011 LSL1 = 0110  Arithmetic Shift: Shifts number left or right. Rt shift sign extends  1011 ASR1 = 11011011 ASL1 = 0110  Rotate: Shifts number left or right and fills with lost bits  1011 ROR1 = 11011011 ROL1 = 0111 22Introduction to Computer Organization and Architecture

23 Funnel Shifter  A funnel shifter can do all six types of shifts  Selects N-bit field Y from 2N-bit input Shift by k bits (0  k < N) 23Introduction to Computer Organization and Architecture

24 Funnel Shifter Operation  Computing N-k requires an adder 24Introduction to Computer Organization and Architecture

25 Funnel Shifter Operation  Computing N-k requires an adder 25Introduction to Computer Organization and Architecture

26 Funnel Shifter Operation  Computing N-k requires an adder 26Introduction to Computer Organization and Architecture

27 Funnel Shifter Operation  Computing N-k requires an adder 27Introduction to Computer Organization and Architecture

28 Funnel Shifter Operation  Computing N-k requires an adder 28Introduction to Computer Organization and Architecture

29 Simplified Funnel Shifter  Optimize down to 2N-1 bit input 29Introduction to Computer Organization and Architecture

30 Simplified Funnel Shifter  Optimize down to 2N-1 bit input 30Introduction to Computer Organization and Architecture

31 Simplified Funnel Shifter  Optimize down to 2N-1 bit input 31Introduction to Computer Organization and Architecture

32 Simplified Funnel Shifter  Optimize down to 2N-1 bit input 32Introduction to Computer Organization and Architecture

33 Simplified Funnel Shifter  Optimize down to 2N-1 bit input 33Introduction to Computer Organization and Architecture

34 Funnel Shifter Design 1  N N-input multiplexers Use 1-of-N hot select signals for shift amount 34Introduction to Computer Organization and Architecture

35 Funnel Shifter Design 2  Log N stages of 2-input muxes No select decoding needed 35Introduction to Computer Organization and Architecture

36 Multi-input Adders  Suppose we want to add k N-bit words Ex: 0001 + 0111 + 1101 + 0010 = _____ 36Introduction to Computer Organization and Architecture

37 Multi-input Adders  Suppose we want to add k N-bit words Ex: 0001 + 0111 + 1101 + 0010 = 10111 37Introduction to Computer Organization and Architecture

38 Multi-input Adders  Suppose we want to add k N-bit words Ex: 0001 + 0111 + 1101 + 0010 = 10111  Straightforward solution: k-1 N-input CPAs Large and slow 38Introduction to Computer Organization and Architecture

39 Carry Save Addition A full adder sums 3 inputs and produces 2 outputs  Carry output has twice weight of sum output N full adders in parallel are called carry save adder  Produce N sums and N carry outs 39Introduction to Computer Organization and Architecture

40 CSA Application  Use k-2 stages of CSAs Keep result in carry-save redundant form  Final CPA computes actual result 40Introduction to Computer Organization and Architecture

41 CSA Application  Use k-2 stages of CSAs Keep result in carry-save redundant form  Final CPA computes actual result 41Introduction to Computer Organization and Architecture

42 CSA Application  Use k-2 stages of CSAs Keep result in carry-save redundant form  Final CPA computes actual result 42Introduction to Computer Organization and Architecture

43 Multiplication  Example: 43Introduction to Computer Organization and Architecture

44 Multiplication  Example: 44Introduction to Computer Organization and Architecture

45 Multiplication  Example: 45Introduction to Computer Organization and Architecture

46 Multiplication  Example: 46Introduction to Computer Organization and Architecture

47 Multiplication  Example: 47Introduction to Computer Organization and Architecture

48 Multiplication  Example: 48Introduction to Computer Organization and Architecture

49 Multiplication  Example:  M x N-bit multiplication Produce N M-bit partial products Sum these to produce M+N-bit product 49Introduction to Computer Organization and Architecture

50 General Form  Multiplicand: Y = (y M-1, y M-2, …, y 1, y 0 )  Multiplier: X = (x N-1, x N-2, …, x 1, x 0 )  Product: 50Introduction to Computer Organization and Architecture

51 Dot Diagram  Each dot represents a bit 51Introduction to Computer Organization and Architecture

52 Array Multiplier 52Introduction to Computer Organization and Architecture

53 Rectangular Array  Squash array to fit rectangular floorplan 53Introduction to Computer Organization and Architecture

54 Fewer Partial Products  Array multiplier requires N partial products  If we looked at groups of r bits, we could form N/r partial products. Faster and smaller? Called radix-2 r encoding  Ex: r = 2: look at pairs of bits Form partial products of 0, Y, 2Y, 3Y First three are easy, but 3Y requires adder  54Introduction to Computer Organization and Architecture

55 Booth Encoding Instead of 3Y, try –Y, then increment next partial product to add 4Y Similarly, for 2Y, try –2Y + 4Y in next partial product 55Introduction to Computer Organization and Architecture

56 Booth Hardware Booth encoder generates control lines for each PP  Booth selectors choose PP bits 56Introduction to Computer Organization and Architecture

57 Sign Extension Partial products can be negative  Require sign extension, which is cumbersome  High fanout on most significant bit 57Introduction to Computer Organization and Architecture

58 Simplified Sign Ext.  Sign bits are either all 0’s or all 1’s Note that all 0’s is all 1’s + 1 in proper column Use this to reduce loading on MSB 58Introduction to Computer Organization and Architecture

59 Even Simpler Sign Ext.  No need to add all the 1’s in hardware Precompute the answer! 59Introduction to Computer Organization and Architecture

60 Division - Restoring  n times  Shift A and Q left one bit  Subtract M from A, put answer in A  If the sign of A is 1  set q 0 to 0  Add M back to A  If the sign of A is 0  set q 0 to 1 Introduction to Computer Organization and Architecture60 q n1- m n1- -bit Divisor M Control sequencer Dividend Q Shift left adder a n1- a 0 q 0 m 0 a n 0 Add/Subtract Quotient setting n1+ A

61 Division – Restoring Example 61 101 11 11 01 0001

62 Division - Nonrestoring  n times  If the sign of A is 0  shift A and Q left  subtract M from A  Else  shift A and Q left  add M to A  Now if sign of A is 0  set q 0 to 1  Else  set q 0 to 0  If the sign of A is 1  add M to A Introduction to Computer Organization and Architecture62

63 Division – Nonrestoring Example 63 101 11 11 01 0001

64 Floating Point – Single Precision IEEE-754, 854 Decimal point can “move” – hence it’s “floating” Floating point is useful for scientific calculations Can represent  Very large integers and  Very small fractions  ~10 ±38 Introduction to Computer Organization and Architecture64 Sign of number : 32 bits mantissa fraction 23-bit representation excess-127 exponent in 8-bit signed Value represented 001010... 0000101000 SM (a) Single precision (b) Example of a single-precision number E + 1.001010  02 87 -  = 1.M2 E127-  = 0 signifies -1 signifies

65 Floating Point – Double Precision Double Precision can represent  ~10 ±308 Introduction to Computer Organization and Architecture65 52-bit mantissa fraction 11-bit excess-1023 exponent 64 bits Sign SM Value represented1.M2 E1023-  = E

66 Floating Point The IEEE Standard requires these operations, at a minimum  Add  Subtract  Multiply  Divide  Remainder  Square Root  Decimal/Binary Conversion Special Values Exceptions  Underflow, Overflow, divide by 0, inexact, invalid Introduction to Computer Organization and Architecture66 E’MValue 00+/- 0 2550+/- ∞ 0≠ 0±0.M X 2 -126 255≠ 0Not a Number NaN

67 FP Arithmetic Operations  Add/Subtract Shift mantissa of smaller exponent number right by the difference in exponents Set the exponent of the result = the larger exponent Add/Sub Mantissas, get sign Normalize  MultiplyDivide Add/Sub exponents, Subtract/Add 127 Multiply/Divide Mantissas, determine sign Normalize Introduction to Computer Organization and Architecture67

68 FP Guard Bits and Truncation  Guard bits Extra bits during intermediate steps to yield maximum accuracy in the final result  They need to be removed when generating the final result Chopping  simply remove guard bits Von Neumann rounding  if all guard bits 0, chop, else 1 Rounding  Add 1 to LSB if guard MSB = 1 Introduction to Computer Organization and Architecture68

69 FP Add-Subtract Unit Introduction to Computer Organization and Architecture69

70 The End Lecture 10


Download ppt "Introduction to Computer Organization and Architecture Lecture 10 By Juthawut Chantharamalee wut_cha/home.htm."

Similar presentations


Ads by Google