+ All Categories
Home > Documents > Ch 8 95 [RRead-Only] [Compatibility Mode]

Ch 8 95 [RRead-Only] [Compatibility Mode]

Date post: 15-Jan-2016
Category:
Upload: fachmiuun
View: 218 times
Download: 0 times
Share this document with a friend
Description:
COMPTIBILITY MODE
37
William Stallings William Stallings Computer Organization d A hit t and Architecture Chapter 8 Computer Arithmetic Computer Arithmetic
Transcript
Page 1: Ch 8 95 [RRead-Only] [Compatibility Mode]

William Stallings William Stallings Computer Organization

d A hit tand Architecture

Chapter 8Computer ArithmeticComputer Arithmetic

Page 2: Ch 8 95 [RRead-Only] [Compatibility Mode]

Arithmetic & Logic UnitArithmetic & Logic Unit

Does the calculationsEverything else in the computer is there to service this unitHandles integersMay handle floating point (real) numbersMay be separate FPU (maths co-processor)May be on chip separate FPU (486DX +)

Page 3: Ch 8 95 [RRead-Only] [Compatibility Mode]

ALU Inputs and OutputsALU Inputs and Outputs

Page 4: Ch 8 95 [RRead-Only] [Compatibility Mode]

Integer RepresentationInteger Representation

Only have 0 & 1 to represent everythingPositive numbers stored in binary

e.g. 41=00101001

No minus signNo periodSign-MagnitudeTwo’s compliment

Page 5: Ch 8 95 [RRead-Only] [Compatibility Mode]

Sign MagnitudeSign-Magnitude

Left most bit is sign bit0 means positive1 means negative+18 = 00010010-18 = 10010010Problems

Need to consider both sign and magnitude in arithmetic

f ( 0 d 0)Two representations of zero (+0 and -0)

Page 6: Ch 8 95 [RRead-Only] [Compatibility Mode]

Two’s ComplimentTwo’s Compliment

+3 = 00000011+2 = 00000010+1 = 00000001+0 = 00000000-1 = 11111111-2 = 11111110-3 = 11111101

Page 7: Ch 8 95 [RRead-Only] [Compatibility Mode]

BenefitsBenefits

One representation of zeroArithmetic works easily (see later)Negating is fairly easy

3 = 00000011Boolean complement gives 11111100Add 1 to LSB 11111101

Page 8: Ch 8 95 [RRead-Only] [Compatibility Mode]

Geometric Depiction of Twos Complement IntegersComplement Integers

Page 9: Ch 8 95 [RRead-Only] [Compatibility Mode]

Negation Special Case 1Negation Special Case 1

0 = 00000000Bitwise not 11111111Add 1 to LSB +1Result 1 00000000Overflow is ignored, so:- 0 = 0 √

Page 10: Ch 8 95 [RRead-Only] [Compatibility Mode]

Negation Special Case 2Negation Special Case 2

-128 = 10000000bitwise not 01111111Add 1 to LSB +1Result 10000000So:-(-128) = -128 X( )Monitor MSB (sign bit)It should change during negationou d a g du g ga o

Page 11: Ch 8 95 [RRead-Only] [Compatibility Mode]

Range of NumbersRange of Numbers

8 bit 2s compliment+127 = 01111111 = 27 -1

7-128 = 10000000 = -27

16 bit 2s compliment32767 011111111 11111111 215 1+32767 = 011111111 11111111 = 215 - 1

-32768 = 100000000 00000000 = -215

Page 12: Ch 8 95 [RRead-Only] [Compatibility Mode]

Conversion Between LengthsConversion Between Lengths

Positive number pack with leading zeros+18 = 00010010+18 = 00000000 00010010Negative numbers pack with leading ones-18 = 10010010-18 = 11111111 10010010i.e. pack with MSB (sign bit)

Page 13: Ch 8 95 [RRead-Only] [Compatibility Mode]

Addition and SubtractionAddition and Subtraction

Normal binary additionMonitor sign bit for overflow

Take twos compliment of substahend and add to minuend

i.e. a - b = a + (-b)

So we only need addition and complement circuitscircuits

Page 14: Ch 8 95 [RRead-Only] [Compatibility Mode]

Hardware for Addition and SubtractionSubtraction

Page 15: Ch 8 95 [RRead-Only] [Compatibility Mode]

MultiplicationMultiplication

ComplexWork out partial product for each digitTake care with place value (column)Add partial products

Page 16: Ch 8 95 [RRead-Only] [Compatibility Mode]

Multiplication ExampleMultiplication Example

1011 Multiplicand (11 dec)x 1101 Multiplier (13 dec)

1011 Partial products0000 Note: if multiplier bit is 1 copy

1011 multiplicand (place value)1011 otherwise zero10001111 Product (143 dec)Note: need double length resulto d doub g u

Page 17: Ch 8 95 [RRead-Only] [Compatibility Mode]

Unsigned Binary MultiplicationUnsigned Binary Multiplication

Page 18: Ch 8 95 [RRead-Only] [Compatibility Mode]

Execution of ExampleExecution of Example

Page 19: Ch 8 95 [RRead-Only] [Compatibility Mode]

Flowchart for Unsigned Binary MultiplicationMultiplication

Page 20: Ch 8 95 [RRead-Only] [Compatibility Mode]

Multiplying Negative NumbersMultiplying Negative Numbers

This does not work!Solution 1

Convert to positive if requiredMultiply as aboveIf i diff t tIf signs were different, negate answer

Solution 2B th’ l ithBooth’s algorithm

Page 21: Ch 8 95 [RRead-Only] [Compatibility Mode]

Booth’s AlgorithmBooth’s Algorithm

Page 22: Ch 8 95 [RRead-Only] [Compatibility Mode]

Example of Booth’s AlgorithmExample of Booth’s Algorithm

Page 23: Ch 8 95 [RRead-Only] [Compatibility Mode]

DivisionDivision

More complex than multiplicationNegative numbers are really bad!Based on long division

Page 24: Ch 8 95 [RRead-Only] [Compatibility Mode]

Division of Unsigned Binary IntegersIntegers

00001101 Quotient

1011

00001101

100100111011

Quotient

DividendDivisor1011

0011101011Partial

Remainders001111

1011100 Remainder

Page 25: Ch 8 95 [RRead-Only] [Compatibility Mode]

Real NumbersReal Numbers

Numbers with fractionsCould 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?

Page 26: Ch 8 95 [RRead-Only] [Compatibility Mode]

Floating PointFloating Pointt

Sign

bit

BiasedExponent

Significand or Mantissa

+/- .significand x 2exponent

MisnomerMisnomerPoint is actually fixed between sign bit and body of mantissaof mantissaExponent indicates place value (point position)

Page 27: Ch 8 95 [RRead-Only] [Compatibility Mode]

Floating Point ExamplesFloating Point Examples

Page 28: Ch 8 95 [RRead-Only] [Compatibility Mode]

Signs for Floating PointSigns for Floating Point

Mantissa is stored in 2s complimentExponent is in excess or biased notation

e.g. Excess (bias) 128 means8 bit exponent fieldP l 0 255Pure value range 0-255Subtract 128 to get correct valueRange -128 to +127Range -128 to +127

Page 29: Ch 8 95 [RRead-Only] [Compatibility Mode]

NormalizationNormalization

FP numbers are usually normalizedi.e. exponent is adjusted so that leading bit (MSB) of mantissa is 1Since 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 d i l i tdecimal pointe.g. 3.123 x 103)

Page 30: Ch 8 95 [RRead-Only] [Compatibility Mode]

FP RangesFP Ranges

For a 32 bit number8 bit exponent

256 77+/- 2256 ≈ 1.5 x 1077

AccuracyTh ff t f h i l b f tiThe effect of changing lsb of mantissa23 bit mantissa 2-23 ≈ 1.2 x 10-7

About 6 decimal placesAbout 6 decimal places

Page 31: Ch 8 95 [RRead-Only] [Compatibility Mode]

Expressible NumbersExpressible Numbers

Page 32: Ch 8 95 [RRead-Only] [Compatibility Mode]

IEEE 754IEEE 754

Standard for floating point storage32 and 64 bit standards8 and 11 bit exponent respectivelyExtended formats (both mantissa and exponent) for intermediate results

Page 33: Ch 8 95 [RRead-Only] [Compatibility Mode]

FP Arithmetic +/FP Arithmetic +/-

Check for zerosAlign significands (adjusting exponents)Add or subtract significandsNormalize result

Page 34: Ch 8 95 [RRead-Only] [Compatibility Mode]

FP Arithmetic x/FP Arithmetic x/÷

Check for zeroAdd/subtract exponents Multiply/divide significands (watch sign)NormalizeRoundAll intermediate results should be in double length storage

Page 35: Ch 8 95 [RRead-Only] [Compatibility Mode]

FloatingPointMultiplication

Page 36: Ch 8 95 [RRead-Only] [Compatibility Mode]

FloatingPointDivision

Page 37: Ch 8 95 [RRead-Only] [Compatibility Mode]

Required ReadingRequired Reading

Stallings Chapter 8IEEE 754 on IEEE Web site


Recommended