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

Slides:



Advertisements
Similar presentations
Multiplication and Shift Circuits Dec 2012 Shmuel Wimer Bar Ilan University, Engineering Faculty Technion, EE Faculty 1.
Advertisements

ECE2030 Introduction to Computer Engineering Lecture 13: Building Blocks for Combinational Logic (4) Shifters, Multipliers Prof. Hsien-Hsin Sean Lee School.
Datapath Functional Units. Outline  Comparators  Shifters  Multi-input Adders  Multipliers.
Princess Sumaya Univ. Computer Engineering Dept. Chapter 3:
UNIVERSITY OF MASSACHUSETTS Dept
CS 447 – Computer Architecture Lecture 3 Computer Arithmetic (2)
Computer ArchitectureFall 2007 © September 5, 2007 Karem Sakallah CS 447 – Computer Architecture.
1 CS 140 Lecture 14 Standard Combinational Modules Professor CK Cheng CSE Dept. UC San Diego Some slides from Harris and Harris.
Assembly Language and Computer Architecture Using C++ and Java
Chapter 6 Arithmetic. Addition Carry in Carry out
Introduction to CMOS VLSI Design Lecture 11: Adders
EE466: VLSI Design Lecture 14: Datapath Functional Units.
Lecture 17: Adders.
Introduction to CMOS VLSI Design Datapath Functional Units
COE 308: Computer Architecture (T041) Dr. Marwan Abu-Amara Integer & Floating-Point Arithmetic (Appendix A, Computer Architecture: A Quantitative Approach,
Datapath Functional Units Adapted from David Harris of Harvey Mudd College.
Computer Arithmetic Integers: signed / unsigned (can overflow) Fixed point (can overflow) Floating point (can overflow, underflow) (Boolean / Character)
Introduction to CMOS VLSI Design Lecture 11: Adders David Harris Harvey Mudd College Spring 2004.
3-1 Chapter 3 - Arithmetic Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring Computer Architecture.
Lecture 18: Datapath Functional Units
Computer Organization and Architecture Computer Arithmetic Chapter 9.
1 Bits are just bits (no inherent meaning) — conventions define relationship between bits and numbers Binary numbers (base 2)
Aug Shift Operations Source: David Harris. Aug Shifter Implementation Regular layout, can be compact, use transmission gates to avoid threshold.
Computer Arithmetic Nizamettin AYDIN
Computer Arithmetic. Instruction Formats Layout of bits in an instruction Includes opcode Includes (implicit or explicit) operand(s) Usually more than.
Computer Arithmetic.
Computing Systems Basic arithmetic for computers.
Arithmetic Chapter 4.
Arithmetic Chapter 4.
CH09 Computer Arithmetic  CPU combines of ALU and Control Unit, this chapter discusses ALU The Arithmetic and Logic Unit (ALU) Number Systems Integer.
Oct. 18, 2007SYSC 2001* - Fall SYSC2001-Ch9.ppt1 See Stallings Chapter 9 Computer Arithmetic.
Computer Arithmetic II Instructor: Mozafar Bag-Mohammadi Spring 2006 University of Ilam.
Multiplication of signed-operands
55:035 Computer Architecture and Organization Lecture 5.
Advanced VLSI Design Unit 05: Datapath Units. Slide 2 Outline  Adders  Comparators  Shifters  Multi-input Adders  Multipliers.
Computer Arithmetic II Instructor: Mozafar Bag-Mohammadi Ilam University.
Princess Sumaya Univ. Computer Engineering Dept. Chapter 3:
Lecture notes Reading: Section 3.4, 3.5, 3.6 Multiplication
1 Arithmetic I Instructor: Mozafar Bag-Mohammadi Ilam University.
Topics covered: Arithmetic CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
EE466: VLSI Design Lecture 13: Adders
CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 5: Arithmetic Circuits Chapter 5 (minus 5.3.4)
Dr Mohamed Menacer College of Computer Science and Engineering Taibah University CE-321: Computer.
ECE/CS 552: Arithmetic I Instructor:Mikko H Lipasti Fall 2010 University of Wisconsin-Madison Lecture notes partially based on set created by Mark Hill.
Lecture 18: Datapath Functional Units
Lecture 18: Datapath Functional Units. CMOS VLSI DesignCMOS VLSI Design 4th Ed. 18: Datapath Functional Units2 Outline  Multipliers.
Chapter 9 Computer Arithmetic
William Stallings Computer Organization and Architecture 8th Edition
Integer Division.
William Stallings Computer Organization and Architecture 7th Edition
CSCE 350 Computer Architecture
ECEG-3202 Computer Architecture and Organization
CS 140 Lecture 14 Standard Combinational Modules
Computer Architecture
Chapter 8 Computer Arithmetic
Lecture 9: Shift, Mult, Div Fixed & Floating Point
Presentation transcript:

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