CSC 4250 Computer Architectures September 5, 2006 Appendix H. Computer Arithmetic

Preview:

Citation preview

CSC 4250Computer Architectures

September 5, 2006Appendix H. Computer Arithmetic

Integers

Using an 8-bit pattern, how many different integers can we represent?

28

Correct? How can we represent negative integers? Use a sign bit How many different integers are there?

Small Numbers

How can we represent numbers that are smaller than 1?

Fixed Point Data Type

Bit pattern: 0100 0010 Binary point just to the right of sign bit (in text)

Can be anywhere inside bit pattern Binary point to far right of bit pattern What do we get?

Integer Value of bit pattern as integer: 0100 0010 Value of bit patt. as fixed point: 0100 0010

Blocked Floating Point

Fixed point → Low cost floating point Exponent kept in separate variable Exponent shared by a set of fixed point variables Applications? Overflow?

Saturating Arithmetic

In DSP, if result is too large to be represented, it is set to the largest representable number with the appropriate sign

What happens when we get a floating-point overflow?

IEEE 754 Floating-Point (32 bit)

Value = (–1)s (1+f) 2(e–127)

Significand = 1+f Compare : scientific notation, say 3.45 × 106

Base = 2 So, 13 is represented by 1.101 × 23

with s=0, e=10000010, f=10100…00 Can you give one advantage of the implicit 1? Can you give one disadvantage of the implicit 1?

31 30 29 … 24 23 22 21 20 19 18 17 … 5 4 3 2 1 0

s e: exponent f: fraction

1 bit 8 bits 23 bits

IEEE 754 Floating-Point (64 bit)

1 bit 11 bits 52 bits

Value = (–1)s (1+f) 2(e–1023)

Significand = 1+f

63 62 61 … 53 52 51 50 49 48 … 4 3 2 1

s e : exponent f : fraction

Base

IEEE: 2 Other bases: 16 IBM

8 Burroughs Normalize such that the first digit is nonzero For base 16, the first digit could be 1, 2, …, 14, 15 Need new symbols to represent 10,11, 12, 13, 14, 15 What is base 16 called?

Hexadecimal

What is hexa? Greek for six What is decimal? Latin for ten What is Latin prefix for six? Sexa What is old name for base 16? Sexidecimal Which company changed the name?

Hexadecimal System

For base 16, we have

1 = 1/16 × 161 with f = 0001 00…00,

2 = 2/16 × 161 with f = 0010 00…00,

4 = 4/16 × 161 with f = 0100 00…00,

8 = 8/16 × 161 with f = 1000 00…00,

16 = 1/16 × 162 with f = 0001 00…00, Disadvantage: As many as three leading zero bits Advantage: Base larger → Range larger 32 bit FP rep.: 1 sign bit, 7 exp. bits, 24 fraction bits

(exponent bias = 64).

Floating Point Representation of 1 IEEE:

s = 0, e = 01111111, f = 00000…00;

Value = (1) 2(127–127) = 1. IBM Hexadecimal:

s = 0, e = 1000001, f = 00010000…00;

Value = (1/16) 16(65–64) = 1.

IEEE FP Representation of One to Sixteen Number s e f

1 0 01111111 00000000000000000000000

2 0 10000000 00000000000000000000000

3 0 10000000 10000000000000000000000

4 0 10000001 00000000000000000000000

5 0 10000001 01000000000000000000000

6 0 10000001 10000000000000000000000

7 0 10000001 11000000000000000000000

8 0 10000010 00000000000000000000000

9 0 10000010 00100000000000000000000

10 0 10000010 01000000000000000000000

11 0 10000010 01100000000000000000000

12 0 10000010 10000000000000000000000

13 0 10000010 10100000000000000000000

14 0 10000010 11000000000000000000000

15 0 10000010 11100000000000000000000

16 0 10000011 00000000000000000000000

Integer Comparisons of FP Number Ease to use Sorting Sign bit is most significant:

Easy to check if number is greater than, less than, or equal to zero

Exponent before fraction: Larger exponent → larger number Use bias such that exponent values ≥ 0 1 ≤ e ≤ 254 → –126 ≤ e – bias ≤ 127 e = 0 and e = 255?

Representation of Zero

All bits (except sign bit) equal zero e = 0 → zero exponent field Zero fraction field (no implicit 1) Plus and minus zero

Denormal Numbers

e = 0 → zero exponent field f ≠ 0 → no implicit 1 Value = (–1)s *f *2–126

Gradual underflow

IEEE Representation

Fill in the blanks

Number s e f

0

1

2–1

2–2

2–125

2–126

2–127

2–128

2–129

2–149

Underflow to Zero

In old days, a FP number that underflowed could be set to zero

An old “fast” test for equality:

If a − b = 0, then a = b Test would fail if a − b underflowed

Infinity

e = 11…1 → maximum exponent field Zero fraction field Plus and minus infinity 1/0 = ∞; 1+∞ = ∞ Useful in trigonometry:

sin(tan–1∞) = sin π/2 = 1

NaN

Not a Number e = 11…1 → maximum exponent field Nonzero fraction field Can you give an operation that generates NaN? What is 1+NaN?

Examples

Largest positive number:s = 0, e = 11111110, f = 11111…11;Value = (1+2–1+…+2–23) 2(254–127)

= (2−2–23) 2127 ≈ 2128 ≈ 2.56×1038

One:s = 0, e = 01111111, f = 00000…00;Value = (1) 2(127–127) = 1.

Smallest positive normal number:s = 0, e = 00000001, f = 00000…00;Value = (1) 2(1–127) = 2–126 ≈ 1.6×10–38

Examples (2)

Largest positive denormal number:s = 0, e = 00000000, f = 11111…11;Value = (2–1+…+2–23) 2–126

= (1−2–23) 2–126 ≈ 2–126

Differs from smallest normal by 2–149

Smallest positive denormal number:s = 0, e = 00000000, f = 00000…01;Value = (2–23) 2–126 = 2–149 ≈ 2×10–45

Plus zero:s = 0, e = 00000000, f = 00000…00.

Recommended