Download presentation
Presentation is loading. Please wait.
Published byCalvin Hunt Modified over 9 years ago
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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.