See Stallings Chapter 9 - PowerPoint PPT Presentation

1 / 43
About This Presentation
Title:

See Stallings Chapter 9

Description:

there may be a separate floating point unit (FPU) ('math co-processor') or an on-chip separate FPU (486DX ) on Pentium (earlier s) multiple ALUs and FPUs ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 44
Provided by: tpea
Category:

less

Transcript and Presenter's Notes

Title: See Stallings Chapter 9


1
Computer Arithmetic
  • See Stallings Chapter 9

2
Arithmetic Logic Unit (ALU)
  • ALU does the calculations
  • Everything else in the computer is there to
    service this unit (!)
  • Handles integers
  • May handle floating point (real) numbers
  • there may be a separate floating point unit (FPU)
    (math co-processor)
  • or an on-chip separate FPU (486DX )
  • on Pentium (earlier slides) multiple ALUs and FPUs

3
ALU Inputs and Outputs
requested arithmetic operation
Status e.g overflow?
operands (in)
operands (out)
4
Integer Representation
  • Positive numbers stored in binary
  • e.g. 4100101001
  • Only have 0 1 to represent everything
  • No minus sign!
  • No period!
  • Exponent?
  • Two approaches to integers
  • Sign-Magnitude
  • Twos complement

unsigned integers? counting numbers? Is zero
positive? (NO!)
5
Sign-Magnitude Approach
  • Leftmost bit is most
  • significant bit (msb)
  • Rightmost bit is least
  • significant bit (lsb)
  • Left most bit is sign bit
  • 0 means positive
  • 1 means negative
  • 18 00010010
  • -18 10010010
  • Problems!!
  • Need to consider both sign and magnitude in
    arithmetic
  • Two representations of zero (0 and -0)

6
Twos Complement
  • 3 00000011
  • 2 00000010
  • 1 00000001
  • 0 00000000 00000000
  • -1 11111111 11111111
  • -2 11111110
  • -3 11111101

subtract 1
subtract 1 ???? add 1
7
Aside re Binary Arithmetic
  • You should already know that
  • 0212 12
  • 012 012 102 (or 1212 02 carry 1)
  • 112 12 002 carry 1
  • 12 12 02 (no borrow), 02 12 12 borrow
    1
  • 00..002 12 11..112 borrow 1
  • 000112 024 023 022 121 120 ?
    bi 2i

K bit binary number, e.g. K 5
K-1
i0
b2
8
Twos Complement Benefits
  • One representation of zero
  • Arithmetic works easily (see later)
  • Negating is fairly easy
  • 310 000000112
  • bitwise complement gives 11111100
  • Add 1 11111101 310

ones complement
twos complement
9
Twos Complement Benefits
  • What about negating a negative number ?
  • 310 111111012
  • bitwise complement gives 00000010
  • Add 1 00000011 310
  • GOOD! ( 3 ) 3

10
Twos Complement Integers
In n bits, can store integers from 2n-1 to
2n-1 1
neg
pos
11
Range of Numbers
  • 8 bit 2s complement
  • 127 01111111 27 -1
  • -128 10000000 -27
  • 16 bit 2s complement
  • 32767 01111111 11111111 215 - 1
  • -32768 10000000 00000000 -215
  • N bit 2s complement
  • 011111111..11111111 2N-1 - 1
  • 100000000..00000000 -2N-1

Largest positive
Smallest (?) negative
12
Negation Special Case 1
  • 0 00000000
  • Bitwise not 11111111
  • Add 1 1
  • Result 1 00000000
  • if this bit is ignored
  • 0 0

hmmm . . .
OK
13
Carry vs. Overflow
  • So . . . what about the ignored bit on the last
    slide?
  • CARRY is an artifact of performing addition
  • always happens for binary values, carry 0 or 1
  • exists independently of computers!
  • OVERFLOW an exception condition that results
    from using computers to perform operations
  • caused by restricting values to fixed number of
    bits
  • occurs when result exceeds range for the number
    of bits
  • important limitation of using computers!

e.g. Y2K bug!
14
Overflow is Implementation Dependent!
  • recall example negation of 0
  • binary addition is performed regardless of
    interpretation
  • 11111111
  • 1
  • 1 00000000

for this addition the answer is 0 with carry 1
fixed number of bits to represent values
carry
15
Unsigned Interpretation ? Overflow
  • consider values as unsigned integers
  • 11111111
  • 1
  • 1 00000000
  • but . . . 255 1 256 ??
  • answer 0 ???
  • OVERFLOW occurred!
  • WHY? cannot represent 256 as an 8-bit unsigned
    integer!

25510
16
Signed Interpretation ? No Overflow
  • consider values as signed integers
  • 11111111
  • 1
  • 1 00000000
  • 1 1 0
  • answer is correct!
  • OVERFLOW did not occur (even though carry 1!)
  • WHY? can represent 0 as an 8-bit signed integer!

110
17
Negation Special Case 2
  • 128 10000000
  • bitwise not 01111111
  • Add 1 to lsb 1
  • Result 10000000
  • Whoops!
  • ( 128) 128
  • Need to monitor msb (sign bit)
  • It should change during negation?

Problem! OVERFLOW!
what about negating zero?
18
Conversion Between Lengths, e.g. 8 ? 16
  • Positive number add leading zeros
  • 18 00010010
  • 18 00000000 00010010
  • Negative numbers add leading ones
  • -18 11101110
  • -18 11111111 11101110
  • i.e. pack with msb (sign bit)

called sign extension
19
Addition and Subtraction
  • a b ?
  • Normal binary addition
  • Monitor sign bit of result for overflow
  • Take twos complement of b and add to a
  • i.e. a b a ( b)
  • So we only need addition and 2s complement
    circuits

20
Hardware for Addition and Subtraction
2s
A B ?
21
Multiplication
  • Complicated
  • Work out partial product for each digit
  • Take care with place value (column)
  • Add partial products
  • Aside Multiply by 2? (shift?)

22
Multiplication Example
  • 1011 Multiplicand (1110)
  • x 1101 Multiplier (1310)
  • 1011 Partial products
  • 0000 Note if multiplier bit is 1
  • 1011 copy multiplicand (place value)
  • 1011 otherwise zero
  • 10001111 Product (14310)
  • Note need double length result could easily
    overflow single word

23
Unsigned Binary Multiplication
24
Execution of 4-Bit ExampleM x Q A,Q
1 add
0 no add
1 add
1 add
25
Flowchart for Unsigned Binary Multiplication
number of bits
26
Multiplying Negative Numbers
  • Multiplying negative numbers by this method does
    not work!
  • Solution 1
  • Convert to positive if required
  • Multiply as above
  • If signs were different, negate answer
  • Solution 2
  • Booths algorithm not in scope of course

27
Division
  • More complex than multiplication
  • Negative numbers are really bad!
  • Based on long division
  • Aside Divide by 2? (shift?)

28
Division of Unsigned Binary Integers
Quotient
00001101
1011
10010011
Divisor
Dividend
1011
001110
Partial Remainders
1011
001111
1011
Remainder
100
29
Flowchart for Unsigned Binary Division
Divisor
Subtract
Shift left
Quotient
Remainder
/ Dividend
differences with multiply? shift left
subtract? no C add
30
Real Numbers
  • Numbers with fractions
  • Could be done in pure binary
  • 1001.1010 23 20 2-1 2-3 9.625
  • Where is the binary point?
  • Fixed?
  • Very limited representation ability
  • Moving?
  • How do you show where it is?

fixed point
floating point
31
Normalization
  • Floating Point (FP) numbers are usually
    normalized
  • i.e. exponent is adjusted so that leading bit
    (msb) of significand is always 1
  • Since msb is always 1 there is no need to store
    it
  • Recall scientific notation where numbers are
    normalized to give a single digit before the
    decimal point
  • e.g. 3.123 x 103

32
Floating Point (Scientific Notation)
(Biased) exponent
(stored) significand
Sign bit
  • / 1.significand x 2exponent
  • Floating point misnomer Point is actually fixed
    after first digit of the significand
    1.xxxxxx
  • xxxxxx is stored signficand
  • Exponent indicates place value (point position)

33
Floating Point Examples
Typo here! What's wrong?
34
Signs for Floating Point
  • Significand explicit sign bit (msb)
  • rest of bits are magnitude (sort of)
  • Exponent is in excess or biased notation
  • 8 bit exponent field
  • binary value range 0-255
  • Excess (bias) 127 means
  • Subtract 127 to get correct value
  • Range -127 to 128

for k bit exponent bias 2k1 1
35
FP Ranges
  • Range The range of numbers that can be
    represented
  • For a 32 bit number
  • 8 bit exponent
  • /- 2127 ? /- 1.5 x 1038
  • Accuracy The effect of changing lsb of
    significand
  • 23 bit significand 2-23 ? 1.2 x 10-7
  • About 6 decimal places

36
Expressible Numbers
2
2
37
IEEE 754
  • Standard for floating point storage
  • 32 and 64 bit standards
  • 8 and 11 bit exponent respectively
  • Extended formats (both significand and exponent)
    for intermediate results
  • special cases (table 9.4, page 318)
  • 0 (how to normalize?)
  • denormalized (for arithmetic)
  • ? (how to quantify?)
  • Not a number (NaN ? exception)
  • How?
  • use exponent all 0s
  • ? zero, denormalized
  • use exponent all 1s
  • infinity, NAN
  • reduces range!
  • 2 126 to 2127

38
IEEE 754 Formats
39
FP Arithmetic /-
  • Check for zeros
  • Align significands (adjusting exponents)
  • ? denormalize!
  • Add or subtract significands
  • Normalize result

40
FP Addition Subtraction Flowchart
41
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

42
Floating Point Multiplication
1.xxxxx x 2biasa
x
1.yyyyy x 2biasb
43
Floating Point Division
Write a Comment
User Comments (0)
About PowerShow.com