SlideServe
Menu
Préférences
© SlideServe · v2026

CSCE 212 Chapter 3: Arithmetic for Computers

keisha avatar
32 diapositives · 601 Views · Oct 18, 2012

CSCE 212 Chapter 3: Arithmetic for Computers. Instructor: Jason D. Bakos. Lecture Outline. Review of topics from 211 Overflow Binary Multiplication Binary Division IEEE 754 Floating Point Floating-Point Addition and Multiplication MIPS Floating-Point. Review.

CSCE 212 Chapter 3: Arithmetic for Computers - slide 1
01 / 32CSCE 212 Chapter 3: Arithmetic for Computers
1 / 17

Télécharger la présentation

CSCE 212 Chapter 3: Arithmetic for Computers
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. CSCE 212Chapter 3: Arithmetic for Computers Instructor: Jason D. Bakos

  2. Lecture Outline • Review of topics from 211 • Overflow • Binary Multiplication • Binary Division • IEEE 754 Floating Point • Floating-Point Addition and Multiplication • MIPS Floating-Point

  3. Review • Binary and hex representation • Converting between binary/hexidecimal and decimal • Two’s compliment representation • Sign extention • Binary addition and subtraction

  4. Addition

  5. Lecture Outline • Review of topics from 211 • Overflow • Binary Multiplication • Binary Division • IEEE 754 Floating Point • Floating-Point Addition and Multiplication • MIPS Floating-Point

  6. Overflow • Overflow for unsigned addition • Carry-out • Overflow for unsigned subtraction • No carry-out • Overflow for signed • Overflow causes exception • Go to handler address 80000080 • Registers BadVAddr, Status, Cause, and EPC used to handle • SPIM has a simple interrupt handler built-in that deals with interrupts

  7. Overflow • Test for signed ADD overflow: addu $t0,$t1,$t2 # sum but don’t trap xor $t3,$t1,$t2 # check if signs differ slt $t3,$t3,$zero # $t3=1 if signs differ bne $t3,$zero, No_OVF xor $t3,$t0,$t1 # signs of operands same, compare sign of result slt $t3,$t3,$zero bne $t3,$zero,OVF • Test for unsigned ADD overflow: addu $t0,$t1,$t2 # sum but don’t trap nor $t3,$t1,$zero # invert bits of $t1 (-$t1–1), 232-$t1-1 sltu $t3,$t3,$t2 # 232-$t1-1 < $t2, 232-1 < $t1+$t2 bne $t3,$zero,OVF

  8. Lecture Outline • Review of topics from 211 • Overflow • Binary Multiplication • Binary Division • IEEE 754 Floating Point • Floating-Point Addition and Multiplication • MIPS Floating-Point

  9. Binary Multiplication 1000 x 1001 1000 0000 0000 1000 1001000 multiplicand multiplier product

  10. Binary Multiplication

  11. Binary Multiplication works with signed but must sign extend shifts

  12. Multiplication Example

  13. Faster Multiplication

  14. Lecture Outline • Review of topics from 211 • Overflow • Binary Multiplication • Binary Division • IEEE 754 Floating Point • Floating-Point Addition and Multiplication • MIPS Floating-Point

  15. Binary Division

  16. Binary Division

  17. Binary Division For signed, convert to positive and negate quotient if signs disagree

  18. Division Example

  19. Lecture Outline • Review of topics from 211 • Overflow • Binary Multiplication • Binary Division • IEEE 754 Floating Point • Floating-Point Addition and Multiplication • MIPS Floating-Point

  20. Fixed-Point • Need a way to represent fractional numbers in binary • Fixed-point • Assume a decimal point at some location in a value: • Example: • 6-bit (unsigned) value • = 1x21 + 0x20 + 1x2-1 + 1x2-2 + 0x2-3 + 1x2-4 • For signed, use two’s compliment • Range = [-2N-1/2M, 2N-1/2M – 1/2M] • For above, [-25/24, 25/24-1/24]  [-2,2-1/16]

  21. Precision • Assume we have 4 binary digits to the right of the point… • Convert .8749 to binary… • .1101 = .8125 • Actual value – represented value = .0624 (bound by 2-4)

  22. Floating Point • Floating point represent values that are fractional or too large • Expressed in scientific notation (base 2) and normalized • 1.xxxx2 * 2yyyy • xxxx is the significand (fraction) and yyyy is the exponent • First bit of the significand is implicit • Exponent bias is 127 for single-precision and 1023 for double-precision • IEEE 754 standard • Single-precision (2x10-38 to 2x1038) • bit 31: sign of significand • bit 30..23 (8) exponent • bit 22..0 (23) significand • Double-precision (2x10-308 to 2x10308) • Significand is 52 bits and the exponent is 11 bits • Exponent => range, significand => precision • To represent: • zero: 0 in the exponent and significand • +/- infinity: all ones in exponent, 0 in significand • NaN: all ones in exponent, nonzero signficand

  23. Conversion • To convert from decimal to binary floating-point: • Significand: • Use the iterative method to convert the fractional part to binary • Convert the integer part to binary using the “old-fashioned” method • Shift the decimal point to the left until the number is normalized • Drop the leading 1, and set the exponent to be the number of positions you shifted the decimal point • Adjust the exponent for bias (127/1023) • When you max out the exponent, denormalize the significand

  24. IEEE 754

  25. Lecture Outline • Review of topics from 211 • Overflow • Binary Multiplication • Binary Division • IEEE 754 Floating Point • Floating-Point Addition and Multiplication • MIPS Floating-Point

  26. Floating-Point Addition • Match exponents for both operands by un-normalizing one of them • Match to the exponent of the larger number • Add significands • Normalize result • Round significand

  27. Example • Assume 11-bit limited representation: • 1 bit sign bit • 6 bit significand (precision 2-6 = 0.0156) • 4 bit exponent (bias 7) • range 1 x 2-7 (7.8 x 10-3) to 1.111111 x 28 (5.1 x 102) • (assuming no denormalized numbers)

  28. Accurate Arithmetic • Keep 2 additional bits to the right during intermediate computation • Guard, round, and sticky • Worst case for rounding: • Actual number is halfway between two floating point representations • Accuracy is measured as number of least-significant error bits (units in the last place (ulp)) • IEEE 754 guarantees that the computer is within .5 ulp (using guard and round)

  29. Floating-Point Addition Hardware

  30. Floating-Point Multiplication • Un-bias and add exponents • Multiply significands • Move point • Re-normalize • Set sign based on sign of operands

  31. Lecture Outline • Review of topics from 211 • Overflow • Binary Multiplication • Binary Division • IEEE 754 Floating Point • Floating-Point Addition and Multiplication • MIPS Floating-Point

  32. MIPS Floating-Point • $f0 - $f31 coprocessor registers • Used in pairs for doubles • Arithmetic: [add | sub | mul | div].[s | d] • Data transfer: lwc1, swc1 (32-bits only) • Conditional branch: • c.lt.[s | d] (compare less-than) • bclt (branch if true), bclf (branch if false) • Register transfer: • mfc1, mtc1 (move to/from coprocessor 1, dest. is first)