1 / 32

Vishwani D. Agrawal James J. Danaher Professor Department of Electrical and Computer Engineering

ELEC 5200-002/6200-002 Computer Architecture and Design Fall 2006 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, Auburn, AL 36849

yardan
Télécharger la présentation

Vishwani D. Agrawal James J. Danaher Professor Department of Electrical and Computer Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ELEC 5200-002/6200-002Computer Architecture and DesignFall 2006 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, Auburn, AL 36849 http://www.eng.auburn.edu/~vagrawal vagrawal@eng.auburn.edu ELEC 5200-002/6200-002 Lecture 7

  2. 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 ELEC 5200-002/6200-002 Lecture 7

  3. 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 • C program – string – terminating with a null byte 01000101 01000011 01000101 00000000 69ten or 45hex 67ten or43hex 69ten or 45hex 00ten or 00hex E C E ELEC 5200-002/6200-002 Lecture 7

  4. MIPS: load byte, store byte • lb $t2, 0($t1) # read byte from memory and place in right-most 8 bits of $t2 • sb $t2, 0($t3) # write byte to memory from right-most 8 bits of $t2 • Examine the string copy procedure (C code) and the corresponding MIPS assembly code on pages 92-93. ELEC 5200-002/6200-002 Lecture 7

  5. Floating Point Numbers • Integers: the universe is infinite but discrete • No fractions • No numbers between consecutive integers, e.g., 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 ELEC 5200-002/6200-002 Lecture 7

  6. Wide Range of Numbers • A large number: 976,000,000,000,000 = 9.76 × 1014 • A small number: 0.0000000000000976 = 9.76 × 10-14 ELEC 5200-002/6200-002 Lecture 7

  7. Scientific Notation • Decimal numbers • 0.513×105, 5.13×104 and 51.3×103 are written in scientific notation. • 5.13×104 is the normalized scientific notation. • Binary numbers • Base 2 • Binary point – multiplication by 2 moves the point to the right. • Normalized scientific notation, e.g., 1.0two×2-1 • Known as floating point numbers. ELEC 5200-002/6200-002 Lecture 7

  8. Floating Point Numbers • General format ±1.bbbbbtwo×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) ELEC 5200-002/6200-002 Lecture 7

  9. 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) ELEC 5200-002/6200-002 Lecture 7

  10. MIPS Single Precision • 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. S E: 8-bit Exponent F: 23-bit Fraction bits 23-30 bits 0-22 bit 31 ELEC 5200-002/6200-002 Lecture 7

  11. MIPS Double Precision • 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. 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 ELEC 5200-002/6200-002 Lecture 7

  12. William V. Kahan Architect of the IEEE floating point standard 1989 Turing Award Citation: For his fundamental contributions to numerical analysis. One of the foremost experts on floating-point computations. Kahan has dedicated himself to "making the world safe for numerical computations." ELEC 5200-002/6200-002 Lecture 7

  13. 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). ELEC 5200-002/6200-002 Lecture 7

  14. 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 8-bit biased exponent 23-bit Fraction (F) of significand Sign bit ELEC 5200-002/6200-002 Lecture 7

  15. Example: Conversion to Decimal normalized E F • Sign bit is 1, number is negative • Biased exponent is 27+20 = 129 • The number is bits 23-30 bits 0-22 Sign bit S 1 10000001 01000000000000000000000 (-1)S × (1 + F) × 2(exponent – bias) = (-1)1 × (1 + F) × 2(129 – 127) = - 1 × 1.25 × 22 = - 1.25 × 4 = - 5.0 ELEC 5200-002/6200-002 Lecture 7

  16. Numbers in 32-bit Formats • Two’s complement integers • Floating point numbers • Ref: W. Stallings, Computer Organization and Architecture, Sixth Edition, Upper Saddle River, NJ: Prentice-Hall. Expressible numbers -231 0 231-1 Positive underflow Negative underflow Negative Overflow Expressible negative numbers Expressible positive numbers Positive Overflow -2-127 0 2-127 - (2 – 2-23)×2127 (2 – 2-23)×2127 ELEC 5200-002/6200-002 Lecture 7

  17. Positive Zero in IEEE 754 • + 1.0 × 2-127 • Smallest positive number in single-precision IEEE 754 standard. • Interpreted as positive zero. • True exponentless than -127 is positive underflow; can be regarded as zero. 00000000000000000000000000000000 Biased exponent Fraction ELEC 5200-002/6200-002 Lecture 7

  18. Negative Zero in IEEE 754 • - 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. 10000000000000000000000000000000 Biased exponent Fraction ELEC 5200-002/6200-002 Lecture 7

  19. Positive Infinity in IEEE 754 • + 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 ∞. 01111111100000000000000000000000 Biased exponent Fraction ELEC 5200-002/6200-002 Lecture 7

  20. Negative Infinity in IEEE 754 • -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 - ∞. 11111111100000000000000000000000 Biased exponent Fraction ELEC 5200-002/6200-002 Lecture 7

  21. Addition and Subtraction 0. Zero check - Change the sign of subtrahend, i.e., convert to summation - If either operand is 0, the other is the result 1. Significand alignment: right shift significand of smaller exponent until two exponents match. 2. Addition: add significands and report exception if overflow occurs. 3. Normalization - Shift significand bits to normalize. - report overflow or underflow if exponent goes out of range. 4. Rounding ELEC 5200-002/6200-002 Lecture 7

  22. Example (4 Significant Franction Bits) • 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 ELEC 5200-002/6200-002 Lecture 7

  23. 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 ELEC 5200-002/6200-002 Lecture 7

  24. IEEE 754 “guard” and “round” Bits • Two extra bits, called guard and round, on the right are used for all intermediate additions. • Illustration by decimal addition: • Consider 3 significant digits • Use one guard digit and one round digit 2.34 × 102 +2.56 × 100 = 2.3400 × 102 +0.0256× 102 With guard/round digits Without guard/round digits 2.3400 2.34 + 0.0256+ 0.02 2.3656 2.36 Result: 2.37 × 102 Result: 2.36 × 102 ELEC 5200-002/6200-002 Lecture 7

  25. FP Multiplication: Basic Idea • Separate sign • Add exponents • Multiply significands • Normalize, round, check overflow/underflow • Replace sign ELEC 5200-002/6200-002 Lecture 7

  26. FP Multiplication: Step 0 Multiply, X × Y X = 0? Y = 0? no no Steps 1 - 5 yes yes Z = 0 Return ELEC 5200-002/6200-002 Lecture 7

  27. FP Multiplication Illustration • Multiply 0.5ten and -0.4375ten (answer = - 0.21875ten) or • Multiply 1.000two×2-1 and -1.110two×2-2 • Step 1: Add exponents -1 + (-2) = -3 • Step 2: Multiply significands 1.000 ×1.110 0000 1000 1000 1000 1110000 Product is 1.110000 ELEC 5200-002/6200-002 Lecture 7

  28. 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 ELEC 5200-002/6200-002 Lecture 7

  29. FP Division: Basic Idea • Separate sign. • Check for zeros and infinity. • Subtract exponents. • Divide significands. • Normalize and detect overflow/underflow. • Perform rounding. • Replace sign. ELEC 5200-002/6200-002 Lecture 7

  30. MIPS Floating Point Instructions • 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 ELEC 5200-002/6200-002 Lecture 7

  31. MIPS Floating Point Instructions • Conditional branch instructions: • bclt cc offset # if(condition cc is true) go to PC + 4 + 4×offset • bclf cc offset # if(condition cc is false) go to PC + 4 + 4×offset • c.xx.s cc $f2, $f4 # xx=eq, lt, le, gt, ge, neq where cc = 0 or 1, is a condition flag ELEC 5200-002/6200-002 Lecture 7

  32. Recommended (Not Mandatory) • Visit www.computerhistory.org to learn about the developments in computers. Many 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). ELEC 5200-002/6200-002 Lecture 7

More Related