computer organization and architecture computer arithmetic chapter 9

43
Computer Organization and Architecture Computer Arithmetic Chapter 9

Upload: hilary-bailey

Post on 27-Dec-2015

239 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Computer Organization and Architecture Computer Arithmetic Chapter 9

Computer Organization and Architecture

Computer Arithmetic

Chapter 9

Page 2: Computer Organization and Architecture Computer Arithmetic Chapter 9

Arithmetic & Logic Unit

• Does the calculations— operands come from registers, result go to

registers

• Everything else in the computer is there to service this unit

• Handles integers• May handle floating point (real) numbers• May be separate FPU (maths co-processor)• May be on-chip separate FPU (486DX +)

Page 3: Computer Organization and Architecture Computer Arithmetic Chapter 9

ALU Inputs and Outputs

Page 4: Computer Organization and Architecture Computer Arithmetic Chapter 9

Binary Number Representation

• Only have 0 & 1 to represent everything• Positive numbers stored in binary

—e.g. 4110 = 001010012

— -27.437510 = -11011.01112

• Computer representation:—No minus sign—No decimal point

• Sign-Magnitude• Twos complement

Page 5: Computer Organization and Architecture Computer Arithmetic Chapter 9

Sign-Magnitude

• Fixed number of digits (8 in example below)• Leftmost (MSB) bit is the sign bit• 0 means positive• 1 means negative• Negation changes only the sign bit, the

others are unchanged• +27 = 00011011• -27 = 10011011• Problems

—Need to consider both sign and magnitude in arithmetic

—Two representations of zero (+0 and -0)—Rarely used

Page 6: Computer Organization and Architecture Computer Arithmetic Chapter 9

Twos Complement Representation n-2

• A = -2n-1 an-1 + 2i ai

i=0

• +3 = 00000011• +2 = 00000010• +1 = 00000001• +0 = 00000000 (considered positive, sign bit is 0)• -1 = 11111111• -2 = 11111110• -3 = 11111101• Largest positive number in n bits: 0111…1 = 2n-1-1• Smallest negative number is: 1000…0 = - 2n-1

Page 7: Computer Organization and Architecture Computer Arithmetic Chapter 9

Benefits

• One representation of zero• Arithmetic works easily (see later)• Negating:

—3 = 00000011—Boolean complement gives: 11111100—Add 1 to Boolean complement: 11111101

• Boolean complement is also known as Ones complement

Page 8: Computer Organization and Architecture Computer Arithmetic Chapter 9

Characteristics of Twos Complement

Page 9: Computer Organization and Architecture Computer Arithmetic Chapter 9

Geometric Depiction of Twos Complement Integers

Page 10: Computer Organization and Architecture Computer Arithmetic Chapter 9

Negation - Special Case 1

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

Page 11: Computer Organization and Architecture Computer Arithmetic Chapter 9

Negation - Special Case 2

• -128 = 10000000• Bitwise not 01111111• Add 1 not +1• Result 10000000• So:• -(-128) = -128 - ERROR• Monitor MSB (sign bit)• It should change during negation

Page 12: Computer Organization and Architecture Computer Arithmetic Chapter 9

Range of Numbers

• 8-bit twos complement:—+127 = 01111111 = 27 -1— -128 = 10000000 = -27

• 16-bit twos complement:—+32767 = 01111111 11111111 = 215 - 1— -32768 = 10000000 00000000 = -215

• In general, n-bit twos complement has range

-2n-1 to 2n-1-1

Page 13: Computer Organization and Architecture Computer Arithmetic Chapter 9

Conversion Between Lengths

• Positive numbers pack with leading zeros• +18 = 00010010• +18 = 00000000 00010010• Negative numbers pack with leading ones• -18 = 11101110• -18 = 11111111 11101110• In other words, pack with MSB (sign bit)• Proof in the book; note that the proof uses

n-1

2i = 2n - 1 (prove this by induction)

i=0

Page 14: Computer Organization and Architecture Computer Arithmetic Chapter 9

Addition and Subtraction

• Normal binary addition• Monitor sign bit for overflow

—Overflow occurs if two numbers with the same sign are added and the result has the opposite sign

—Overflow never occurs adding two numbers of opposite sign

• Take twos compliment of subtrahend and add to minuend :—i.e. a - b = a + (-b)

• Only addition and complement circuits are needed

Page 15: Computer Organization and Architecture Computer Arithmetic Chapter 9

Hardware for Addition and Subtraction

Page 16: Computer Organization and Architecture Computer Arithmetic Chapter 9

Multiplication

• Complex• Work out partial product for each digit• Take care with place value (column)• Add partial products• This is known as “positional

multiplication”• Works for unsigned (non-negative)

numbers

Page 17: Computer Organization and Architecture Computer Arithmetic Chapter 9

Multiplication Example

• 1011 Multiplicand (decimal 11)• x 1101 Multiplier (decimal 13)• 1011 Partial products• 0000 Note: if multiplier bit is 1 copy• 1011 multiplicand (place

value)• 1011 otherwise zero• 10001111 Product (decimal 143)• Note: length of result is double of the

lengths of the operands

Page 18: Computer Organization and Architecture Computer Arithmetic Chapter 9

Unsigned Binary Multiplication

Page 19: Computer Organization and Architecture Computer Arithmetic Chapter 9

Flowchart for Unsigned Binary Multiplication

Page 20: Computer Organization and Architecture Computer Arithmetic Chapter 9

Unsigned Binary Multiplication ExampleQ0

Page 21: Computer Organization and Architecture Computer Arithmetic Chapter 9

Multiplication Error: Negative Numbers

• Positional multiplication does not work for negative numbers:

• 1011 Multiplicand (decimal -5)• x 1101 Multiplier (decimal -3)• 1011• 0000• 1011• 1011• 10001111 (decimal -113)

Page 22: Computer Organization and Architecture Computer Arithmetic Chapter 9

Multiplying Negative Numbers

• Need some solution to muliply negative numbers

• Solution 1—Convert to positive if required—Multiply as above—If signs were different, negate answer

• Solution 2—Booth’s algorithm

Page 23: Computer Organization and Architecture Computer Arithmetic Chapter 9

Booth’s Algorithm

Page 24: Computer Organization and Architecture Computer Arithmetic Chapter 9

Example of Booth’s Algorithm

Q0 Q-1

Page 25: Computer Organization and Architecture Computer Arithmetic Chapter 9

Division of Unsigned Binary Integers

• More complex than multiplication• Negative numbers are problematic• Based on long division • Example: 147:11=13, remainder is 4

• Can be extended to negative numbers

001111

1011

00001101

100100111011

0011101011

1011

Quotient

Dividend

Remainder

PartialRemainders

Divisor

100

Page 26: Computer Organization and Architecture Computer Arithmetic Chapter 9

Flowchart for Unsigned Binary Division

Page 27: Computer Organization and Architecture Computer Arithmetic Chapter 9

Real Numbers

• Numbers with fractional parts• Possible to represent in pure binary form:

—1001.1010 = 23 + 20 +2-1 + 2-3 =9.625

• Two representations in decimal system• Fixed-point numbers

—Limited to a fixed number of fractional digits—E.g. 3, as in 9.625—Limits accuracy (range)

• Floating-point numbers—Based on scientific notation—E.g. 9,625,000,000,000,000 = 9.625 x 1015

0.00000000000009625 = 9.625 x 10-14

Page 28: Computer Organization and Architecture Computer Arithmetic Chapter 9

Floating Point Numbers

• +/- .significand x 2exponent

• Base is 2 (binary) instead of 10 (decimal)• Point is actually fixed between sign bit and

body of mantissa• Exponent indicates place value (point

position)

Sig

n bi

t

BiasedExponent

Significand or Mantissa

Page 29: Computer Organization and Architecture Computer Arithmetic Chapter 9

Signs for Floating Point Numbers

• Mantissa is stored in twos complement• We want to allow negative exponents by

biasing• Exponent is in excess or biased notation• E.g. excess (bias) 127 means

—8 bit exponent field—Pure value range 0-255—Subtract 127 to get correct value—Range -127 to +128

Page 30: Computer Organization and Architecture Computer Arithmetic Chapter 9

Normalization

• FP numbers are usually normalized• Exponent is adjusted so that leading digit of

mantissa is 1• E.g. instead of 24 = 0.0110 x 26 or 24 = 110 x 22 we use

24 = 1.10 x 24 • Equivalent of scientific notation

—numbers are normalized to give a single digit before the decimal point

• In general: +/- 1.bbb…b x 2+/-E

• Leading 1 is not stored (implicitly assumed)

Page 31: Computer Organization and Architecture Computer Arithmetic Chapter 9

Floating Point Examples

202 = 10100, 1272 = 01111111, 1472 = 10010011, 1072 = 01101011

0.638125 = 1/2 + 1/8 +1/128 = .10100012

Page 32: Computer Organization and Architecture Computer Arithmetic Chapter 9

Integer and Floating Point (FP) Ranges

• 32 bit integers— Integers from –231 to 231 (232 different numbers)

• 32 bit floating point real numbers— With 8 bit exponent — – 2129 to 2129, excluding the endpoints and underflows — Approximately -6.8 x 1038 to 6.8 x 1038 decimal

• Precision—The effect of changing LSB of mantissa—23 bit mantissa: 2-23 1.2 x 10-7

—About 6 decimal places – rounding occurs beyond that

• More bits in exponent increase range but reduce mantissa, and thereby precision (trade-off)

Page 33: Computer Organization and Architecture Computer Arithmetic Chapter 9

Expressible Numbers

Note: 0 is not represented directly. Special conventions are used for 0 (positive and negative), infinity etc. in real FP standards.

Page 34: Computer Organization and Architecture Computer Arithmetic Chapter 9

Density of Floating Point Numbers

• FP numbers extend the range to – 2129 to 2129 • But still only 232 different numbers can be represented• Numbers are spread out• Density is not even

— higher close to 0— less dense farther away from 0— same number in doubling ranges, i.e. halving density

Page 35: Computer Organization and Architecture Computer Arithmetic Chapter 9

IEEE 754

• Standard for floating point storage• Single format: 32 bits with 8 bit exponent• Double format: 64 bits with 11 bit exponent• Extended formats (both mantissa and

exponent) for intermediate results—bigger mantissa gives more precision —bigger exponent gives extended range—lessens the chance of intermediate rounding

errors, since generally overflows accumulate in a calculation, resulting in a very wrong result

• Includes positive and negative 0, NaN, normalized and denormalized numbers

Page 36: Computer Organization and Architecture Computer Arithmetic Chapter 9

IEEE 754 Formats

Page 37: Computer Organization and Architecture Computer Arithmetic Chapter 9

FP Arithmetic +/-

• Check for zeros (in operands)• Align significands (adjust exponents)

—Operands must have identical exponents for +/-—Smaller number is adjusted for higher precision

• Add or subtract significands—Check for significand and exponent overflow

• Normalize result—Shift significand left until MSB is 1 (i.e. remove

padding 0s)—Check for exponent underflow

• Round result for reporting

Page 38: Computer Organization and Architecture Computer Arithmetic Chapter 9

FP Addition & Subtraction Flowchart

Page 39: Computer Organization and Architecture Computer Arithmetic Chapter 9

FP Arithmetic x/• Simpler than +/- due to exponents• Check for zero

—Report error or return infinity on division by 0

• Add/subtract exponents—Adding exponents doubles the bias, so bias

needs to be subtracted—Report exponent over- or underflow

• Multiply/divide significands (watch sign)• Normalize• Round and return result• All intermediate results should be in

double length storage

Page 40: Computer Organization and Architecture Computer Arithmetic Chapter 9

Floating Point Multiplication

Page 41: Computer Organization and Architecture Computer Arithmetic Chapter 9

Floating Point Division

Page 42: Computer Organization and Architecture Computer Arithmetic Chapter 9

Precision and Rounding Errors

• Guard bits: register is longer than the representation—Pad right end of mantissa with 0s—Guard against errors introduced by loss of digits—See book’s example (difference of close numbers)

• IEEE 754 Rounding policy—Round to nearest

– In case of 2 nearest, in half the cases round down, half the cases up to avoid accumulation of systematic errors

—Round toward +/Round toward -– Used in interval arithmetic

—Round toward 0– Simplest (truncation) but introduces systematic errors

Page 43: Computer Organization and Architecture Computer Arithmetic Chapter 9

IEE754 Special Entities

• Infinity—Limiting cases of real numbers—Operations extended in mathematical sense

• Quiet NaN—Indicates mathematically undefined results;

propagates through calculations w/o throwing an exception

• Signaling NaN—Indicates mathematically undefined results and

signals an exception

• Denormalized Numbers—Handle exponent underflow by right shifting the

decimal point and increasing the exponent