# Symbol Representation and Floating Point Numbers Chapters 2 and

Document Sample

```					     Symbol Representation and
Floating Point Numbers
Chapters 2 and 3
Vishwani D. Agrawal
James J. Danaher Professor
Department of Electrical and Computer Engineering
Auburn University
http://www.eng.auburn.edu/~vagrawal
vagrawal@eng.auburn.edu

Oct. 11-13, 2004               ELEC 5200-001/6200-001 Lecture 8        1
Symbol Representation
   Early versions (60s and 70s)
   Six-bit binary code (CDC)
   EBCDIC – extended binary coded decimal
interchange code (IBM)
   Presently used –
   ASCII – American standard code for information
interchange – byte (8 bit) code specified by
American National Standards Institute (ANSI)
   Unicode – 16 bit code and an extended 32 bit
version

Oct. 11-13, 2004        ELEC 5200-001/6200-001 Lecture 8   2
ASCII
    Each byte pattern represents a character (symbol)
   Convenient to write in hexadecimal, e.g.,
   00000000    0ten    00hex                  null
   01000001   65ten    41hex                  A
   01100001   97ten    61hex                  a
   See Figure 2.21, page 91 (Edition 3) or
Figure 3.15, page 142 (Edition 2)
   C program – string -- terminating with a null byte
01000101 01000011 01000101 00000000
69ten, 45hex 67ten, 43hex 69ten, 45hex 00ten, 00hex
E           C            E
Oct. 11-13, 2004         ELEC 5200-001/6200-001 Lecture 8      3
    lb \$t0, 0(\$sp)     # read byte from memory
    sb \$t0, 0(\$gp)     # write byte to memory
   Examine the string copy procedure (C code)
and the corresponding MIPS assembly code on
pages 92-93 (pages 143-144 in Edition 2).

Oct. 11-13, 2004   ELEC 5200-001/6200-001 Lecture 8   4
Floating Point Numbers
    Integers: the universe is infinite but discrete
   No fractions
   No numbers between 5 and 6
   A countable (finite) number of items in a finite range
    Real numbers – the universe is infinite and
continuous
   Fractions represented by decimal notation
   Rational numbers, e.g., 5/2 = 2.5
   Irrational numbers, e.g., 22/7 = 3.14159265 . . .
   Infinite numbers exist even in the smallest range
Oct. 11-13, 2004            ELEC 5200-001/6200-001 Lecture 8     5
Wide Range of Numbers
   A large number:
976,000,000,000,000 = 9.76 × 1014
   A small number:
0.0000000000000976 = 9.76 × 10-14

Oct. 11-13, 2004   ELEC 5200-001/6200-001 Lecture 8   6
Scientific Notation
   Decimal numbers
   0.513×105, 5.13×104 and 51.3×103 are written in
scientific notation.
   5.13×104 is in normalized scientific notation.
   Binary numbers
   Base 2
   Binary point – multiplication by 2 moves the point
to the left.
   Normalized scientific notation, e.g., 1.0two×2-1
   Known as floating point numbers.

Oct. 11-13, 2004        ELEC 5200-001/6200-001 Lecture 8     7
Floating Point Numbers
   General format
±1.bbbbb two×2eeee

or                 (-1)S × (1+F) × 2E
   Where
   S =      sign, 0 for positive, 1 for negative
   F =      fraction (or mantissa) as a binary integer,
1+F is called significand
   E =      exponent as a binary integer, positive or
negative (two’s complement)
Oct. 11-13, 2004         ELEC 5200-001/6200-001 Lecture 8        8
Binary to Decimal Conversion

Binary           (-1)S (1.b1b2b3b4) × 2E

Decimal           (-1)S × (1 + b1×2-1 + b2×2-2 + b3×2-3 + b4×2-4) × 2E

Example:          -1.1100 × 2-2 (binary)        = - (1 + 2-1 + 2-2) ×2-2

= - (1 + 0.5 + 0.25)/4

= - 1.75/4

= - 0.4375 (decimal)

Oct. 11-13, 2004          ELEC 5200-001/6200-001 Lecture 8                  9
MIPS Single Precision
S E: 8-bit Exponent                  F: 23-bit Fraction

bits 23-30                      bits 0-22
bit 31

   Max |E| ~ 127, 2127 ~ 1038
   Range of magnitudes, 2×10-38 to 2×1038
   Overflow: Exponent requiring more than 8
bits. Number can be positive or negative.
   Underflow: Fraction requiring more than 23
bits. Number can be positive or negative.
Oct. 11-13, 2004            ELEC 5200-001/6200-001 Lecture 8         10
MIPS Double Precision
S E: 11-bit Exponent                  F: 52-bit Fraction +

bits 20-30                      bits 0-19
bit 31

Continuation of 52-bit Fraction

bits 0-31
   Max |E| ~ 1023, 21023 ~ 10308
   Range of magnitudes, 2×10-308 to 2×10308
   Overflow: Exponent requiring more than 11 bits.
Number can be positive or negative.
   Underflow: Fraction requiring more than 52 bits.
Number can be positive or negative.
Oct. 11-13, 2004            ELEC 5200-001/6200-001 Lecture 8            11
IEEE 754 Floating Point Standard
    Biased exponent: true exponent range [-127,127] is
changed to [0, 255]:
   Biased exponent is an 8-bit positive binary integer.
   True exponent obtained by subtracting 127ten or 01111111two
    First bit of significand is always 1:
± 1.bbbb . . . b × 2E
   1 before the binary point is implicitly assumed.
   Significand field represents 23 bit fraction after the binary
point.
   Significand range is [1, 2).
Oct. 11-13, 2004         ELEC 5200-001/6200-001 Lecture 8              12
Examples
Biased exponent (0-255), bias 127 (01111111) to be subtracted

1.1010001 × 210100 = 0 10010011 10100010000000000000000 = 1.6328125 × 220

-1.1010001 × 210100 = 1 10010011 10100010000000000000000 = -1.6328125 × 220

1.1010001 × 2-10100 = 0 01101011 10100010000000000000000 = 1.6328125 × 2-20

-1.1010001 × 2-10100 = 1 01101011 10100010000000000000000 = -1.6328125 × 2-20

0.5
0.125
0.0078125
0.6328125
Oct. 11-13, 2004           ELEC 5200-001/6200-001 Lecture 8            13
Numbers in 32-bit Formats
    Two’s complement integers

Expressible numbers
-231        0       231-1

    Floating point numbers
Negative underflow                      Positive underflow

Negative              Expressible                               Expressible           Positive
Overflow               negative                                  positive             Overflow
numbers                                   numbers

- (2 – 2-23)×2127                 -2-127     0     2-127                (2 – 2-23)×2127
    Ref: W. Stallings, Computer Organization and Architecture, Sixth Edition, Upper Saddle
River, NJ: Prentice-Hall.

Oct. 11-13, 2004                 ELEC 5200-001/6200-001 Lecture 8                             14
Positive Zero in IEEE 754
0 00000000 00000000000000000000000
Biased                      Fraction
exponent

   + 1.0 × 2-127
   Smallest positive number in single-precision IEEE
754 standard.
   Interpreted as positive zero.
   Exponent less than -127 is positive underflow; can
be regarded as zero.
Oct. 11-13, 2004              ELEC 5200-001/6200-001 Lecture 8   15
Negative Zero in IEEE 754
1 00000000 00000000000000000000000
Biased                      Fraction
exponent

   - 1.0 × 2-127
   Smallest negative number in single-precision IEEE
754 standard.
   Interpreted as negative zero.
   True exponent less than -127 is negative underflow;
may be regarded as 0.
Oct. 11-13, 2004              ELEC 5200-001/6200-001 Lecture 8   16
Positive Infinity in IEEE 754
0 11111111 00000000000000000000000
Biased                      Fraction
exponent

   + 1.0 × 2128
   Largest positive number in single-precision IEEE 754
standard.
   Interpreted as + ∞
   If true exponent = 128 and fraction ≠ 0, then the
number is greater than ∞. It is called “not a number”
or NaN and may be interpreted as ∞.
Oct. 11-13, 2004              ELEC 5200-001/6200-001 Lecture 8   17
Negative Infinity in IEEE 754
1 11111111 00000000000000000000000
Biased                      Fraction
exponent

   -1.0 × 2128
   Smallest negative number in single-precision IEEE
754 standard.
   Interpreted as - ∞
   If true exponent = 128 and fraction ≠ 0, then the
number is less than - ∞. It is called “not a number”
or NaN and may be interpreted as - ∞.
Oct. 11-13, 2004              ELEC 5200-001/6200-001 Lecture 8   18
0. Zero check
-      Change the sign of subtrahend
-      If either operand is 0, the other is the result
1. Significand alignment: right shift smaller
significand until two exponents are identical.
overflow occurs.
3. Normalization
-      Shift significand bits to normalize.
-      report overflow or underflow if exponent goes out of range.
4. Rounding
Oct. 11-13, 2004                 ELEC 5200-001/6200-001 Lecture 8                19
Example
   Subtraction: 0.5ten- 0.4375ten
   Step 0: Floating point numbers to be added
1.000two×2-1 and -1.110two×2-2
   Step 1: Significand of lesser exponent is shifted
right until exponents match
-1.110two×2-2 → - 0.111two×2-1
   Step 2:        Add significands, 1.000two + (- 0.111two)
Result is 0.001two ×2-1

Oct. 11-13, 2004         ELEC 5200-001/6200-001 Lecture 8      20
Example (Continued)
   Step 3: Normalize, 1.000two× 2-4
No overflow/underflow since
127 ≥ exponent ≥ -126
   Step 4: Rounding, no change since the sum fits
in 4 bits.

1.000two ×2-4 = (1+0)/16 = 0.0625ten

Oct. 11-13, 2004         ELEC 5200-001/6200-001 Lecture 8   21
FP Multiplication: Basic Idea
   Separate sign
   Multiply significands
   Normalize, round, check overflow
   Replace sign

Oct. 11-13, 2004   ELEC 5200-001/6200-001 Lecture 8   22
FP Multiplication: Step 0
Multiply, X × Y

yes                                no
X = 0?                  Y = 0?                   Steps 1 - 5

no                          yes

Z=0

Return

Oct. 11-13, 2004            ELEC 5200-001/6200-001 Lecture 8                      23
FP Mult. Illustration
   Multiply 0.5ten and -0.4375ten (answer = - 0.21875ten)
or
   Multiply 1.000two×2-1 and -1.110two×2-2
-1 + (-2) = -3
   Step 2: Multiply significands
1.000
×1.110
0000
1000
1000
1000
1110000               Product is 1.110000

Oct. 11-13, 2004               ELEC 5200-001/6200-001 Lecture 8   24
FP Mult. Illustration (Cont.)
   Step 3:
   Normalization: If necessary, shift significand right and
increment exponent.
Normalized product is 1.110000 × 2-3
   Check overflow/underflow: 127 ≥ exponent ≥ -126
   Step 4: Rounding: 1.110 × 2-3
   Step 5: Sign: Operands have opposite signs,
Product is -1.110 × 2-3
Decimal value = - (1+0.5+0.25)/8 = - 0.21875ten

Oct. 11-13, 2004          ELEC 5200-001/6200-001 Lecture 8            25
FP Division: Basic Idea
   Separate sign.
   Check for zeros and infinity.
   Subtract exponents.
   Divide significands.
   Normalize/overflow/underflow.
   Rounding.
   Replace sign.

Oct. 11-13, 2004         ELEC 5200-001/6200-001 Lecture 8   26
MIPS Floating Point
    32 floating point registers, \$f0, . . . , \$f31
    FP registers used in pairs for double precision;
\$f0 denotes double precision content of \$f0,\$f1
    Data transfer instructions:
    lwc1 \$f1, 100(\$s2)                # \$f1←Mem[\$s1+100]
    swc1 \$f1, 100(\$s2)                # Mem[\$s2+100]←\$f1
    Arithmetic instructions: (xxx=add, sub, mul, div)
    xxx.s         single precision
    xxx.d         double precision
Oct. 11-13, 2004       ELEC 5200-001/6200-001 Lecture 8        27
Recommended (Not Mandatory)
   Visit www.computerhistory.org to learn about
the developments in computers. Many of the
names and events in your book and those
discussed in the class appear there.
   When in Silicon Valley, visit the Computer
History Museum (Route 101, Mountain View,
CA).

Oct. 11-13, 2004   ELEC 5200-001/6200-001 Lecture 8   28

```
DOCUMENT INFO
Shared By:
Categories:
Stats:
 views: 8 posted: 1/19/2010 language: English pages: 28