Introduction to Computer Organization and Architecture Lecture 10 By Juthawut Chantharamalee wut_cha/home.htm
Outline Adders Comparators Shifters Multipliers Dividers Floating Point Numbers 2Introduction to Computer Organization and Architecture
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 Introduction to Computer Organization and Architecture
Single-Bit Addition Half Adder Full Adder ABC out S ABC S Introduction to Computer Organization and Architecture
Single-Bit Addition Half Adder Full Adder ABC out S ABC S Introduction to Computer Organization and Architecture
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
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
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
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
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
PG Logic 11Introduction to Computer Organization and Architecture
Carry-Ripple Revisited G 03 = G 3 + P 3 G 02 12Introduction to Computer Organization and Architecture
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
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
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
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
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
Equality Comparator Check if each bit is equal (XNOR, aka equality gate) 1’s detect on bitwise equality 18Introduction to Computer Organization and Architecture
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
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
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
Shifters Logical Shift: Shifts number left or right and fills with 0’s 1011 LSR 1 = LSL1 = 0110 Arithmetic Shift: Shifts number left or right. Rt shift sign extends 1011 ASR1 = ASL1 = 0110 Rotate: Shifts number left or right and fills with lost bits 1011 ROR1 = ROL1 = Introduction to Computer Organization and Architecture
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
Funnel Shifter Operation Computing N-k requires an adder 24Introduction to Computer Organization and Architecture
Funnel Shifter Operation Computing N-k requires an adder 25Introduction to Computer Organization and Architecture
Funnel Shifter Operation Computing N-k requires an adder 26Introduction to Computer Organization and Architecture
Funnel Shifter Operation Computing N-k requires an adder 27Introduction to Computer Organization and Architecture
Funnel Shifter Operation Computing N-k requires an adder 28Introduction to Computer Organization and Architecture
Simplified Funnel Shifter Optimize down to 2N-1 bit input 29Introduction to Computer Organization and Architecture
Simplified Funnel Shifter Optimize down to 2N-1 bit input 30Introduction to Computer Organization and Architecture
Simplified Funnel Shifter Optimize down to 2N-1 bit input 31Introduction to Computer Organization and Architecture
Simplified Funnel Shifter Optimize down to 2N-1 bit input 32Introduction to Computer Organization and Architecture
Simplified Funnel Shifter Optimize down to 2N-1 bit input 33Introduction to Computer Organization and Architecture
Funnel Shifter Design 1 N N-input multiplexers Use 1-of-N hot select signals for shift amount 34Introduction to Computer Organization and Architecture
Funnel Shifter Design 2 Log N stages of 2-input muxes No select decoding needed 35Introduction to Computer Organization and Architecture
Multi-input Adders Suppose we want to add k N-bit words Ex: = _____ 36Introduction to Computer Organization and Architecture
Multi-input Adders Suppose we want to add k N-bit words Ex: = Introduction to Computer Organization and Architecture
Multi-input Adders Suppose we want to add k N-bit words Ex: = Straightforward solution: k-1 N-input CPAs Large and slow 38Introduction to Computer Organization and Architecture
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
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
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
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
Multiplication Example: 43Introduction to Computer Organization and Architecture
Multiplication Example: 44Introduction to Computer Organization and Architecture
Multiplication Example: 45Introduction to Computer Organization and Architecture
Multiplication Example: 46Introduction to Computer Organization and Architecture
Multiplication Example: 47Introduction to Computer Organization and Architecture
Multiplication Example: 48Introduction to Computer Organization and Architecture
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
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
Dot Diagram Each dot represents a bit 51Introduction to Computer Organization and Architecture
Array Multiplier 52Introduction to Computer Organization and Architecture
Rectangular Array Squash array to fit rectangular floorplan 53Introduction to Computer Organization and Architecture
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
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
Booth Hardware Booth encoder generates control lines for each PP Booth selectors choose PP bits 56Introduction to Computer Organization and Architecture
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
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
Even Simpler Sign Ext. No need to add all the 1’s in hardware Precompute the answer! 59Introduction to Computer Organization and Architecture
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
Division – Restoring Example
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
Division – Nonrestoring Example
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 SM (a) Single precision (b) Example of a single-precision number E = 1.M2 E127- = 0 signifies -1 signifies
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
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≠ 0±0.M X ≠ 0Not a Number NaN
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
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
FP Add-Subtract Unit Introduction to Computer Organization and Architecture69
The End Lecture 10