350 likes | 363 Views
This lecture covers the concepts of unsigned binary multiplication, Booth's algorithm, division of unsigned binary integers, real number representation, floating point arithmetic, and examples of 32-bit numbers.
E N D
CS 447 – Computer Architecture Lecture 4Computer Arithmetic (2) August 27, 2008 www.qatar.cmu.edu/~msakr/15447-f08/
Last Time • Representation of finite-width unsigned and signed integers • Addition and subtraction of integers • Multiplication of unsigned integers
Multiplying Negative Numbers • This does not work! • Solution 1 • Convert to positive if required • Multiply as above • If signs were different, negate answer • Solution 2 • Booth’s algorithm
Observation • Which of these two multiplications is more difficult? 98,765 x 10,001 98,765 x 9,999 • Note: 98,765 x 10,001 = 98,765 x (10,000 + 1) 98,765 x 9,999 = 98,765 x (10,000 – 1)
In Binary Let Q = d d d 0 1 1 . . . 1 1 0 d d QL = d d d 1 0 0 . . . 0 0 0 d d QR = 0 0 0 0 0 0 . . . 0 1 0 0 0
In Binary Let Q = d d d 01 1 . . . 1 10 d d QL = d d d 10 0 . . . 0 0 0 d d QR = 0 0 0 0 0 0 . . . 01 0 0 0 Then Q = QL – QR And M x Q = M x QL – M x QR
A bit more explanation P = M x Qwhere M and Q are n-bit two’s complement integers e.g., Q = -23 q3 + 22 q2 + 21 q1 + 20 q0 which can be re-written as follows: Q = 20(q-1–q0)+21(q0-q1)+22(q1-q2)+23(q2-q3) leading to P = M x 20 x (q-1 - q0) + M x 21 x (q0 - q1) + M x 22 x (q1 - q2) + M x 23 x (q2 - q3)
Finally! P = M x 20 x (q-1 - q0) + M x 21 x (q0 - q1) + M x 22 x (q1 - q2) + M x 23 x (q2 - q3)
Division • More complex than multiplication • Negative numbers are really bad! • Based on long division
Quotient 00001101 Divisor 1011 10010011 Dividend 1011 001110 Partial Remainders 1011 001111 1011 Remainder 100 Division of Unsigned Binary Integers
Real Numbers • Numbers with fractions • Could be done in pure binary • 1001.1010 = 24 + 20 +2-1 + 2-3 =9.625 • Where is the binary point? • Fixed? • Very limited • Moving? • How do you show where it is?
Biased Exponent Significand or Mantissa Sign bit Floating Point • +/- .significand x 2exponent • Misnomer • Point is actually fixed between sign bit and body of mantissa • Exponent indicates place value (point position)
Signs for Floating Point • Sign Magnitude for Mantissa • Exponent is in excess or biased notation • e.g. Excess (bias) 127 • 8 bit exponent field • Pure value range 0-255 • Subtract 127 to get correct value • Range -127 to +128
Normalization • FP numbers are usually normalized • i.e. exponent is adjusted so that leading bit (MSB) of mantissa is 1 • Since it is always 1 there is no need to store it • (c.f. Scientific notation where numbers are normalized to give a single digit before the decimal point • e.g. 3.123 x 103)
FP Ranges • For a 32 bit number • 8 bit exponent • +/- 2128 3.4 x 1038 • Accuracy • The effect of changing lsb of mantissa • 23 bit mantissa 2-23 1.2 x 10-7 • About 6 decimal places
FP Arithmetic +/- • Check for zeros • Align significands (adjusting exponents) • Add or subtract significands • Normalize result
FP Arithmetic x/ • Check for zero • Add/subtract exponents • Multiply/divide significands (watch sign) • Normalize • Round • All intermediate results should be in double length storage