1 / 21

CPS3340 Computer Architecture Fall Semester, 2013

Lecture 15: Multiplication & Division Instructor: Ashraf Yaseen. CPS3340 Computer Architecture Fall Semester, 2013. Department of Math & Computer Science Central State University, Wilberforce, OH. 11/12/2013. Review. Last Class Second Exam Review This Class Multiplication Division

ova
Download Presentation

CPS3340 Computer Architecture Fall Semester, 2013

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. Lecture 15: Multiplication & Division • Instructor: Ashraf Yaseen CPS3340 Computer ArchitectureFall Semester, 2013 Department of Math & Computer Science Central State University, Wilberforce, OH 11/12/2013

  2. Review • Last Class • Second Exam Review • This Class • Multiplication • Division • Next Class • Floating Point Numbers

  3. 1000 × 1001 1000 0000 0000 1000 1001000 Multiplication • Sequential Version of Multiplication Algorithm and Hardware • Start with long-multiplication approach multiplicand multiplier product Length of product is the sum of operand lengths

  4. Multiplication Hardware • First version of Multiplication Hardware • 32-bit multiplier • 64-bit ALU • 64-bit product (initialized to 0)

  5. Multiplication Hardware • How many steps? • 32 • Each step has two operations • Shift • Add Initially 0

  6. Example • 2*3

  7. Refined Multiplier • Refined Multiplier • 32-bit multiplicand and ALU • Multiplier is placed in the right half of the product register • 64-bit product register

  8. Refined Multiplier (cont) • Perform steps in parallel: add/shift • One cycle per partial-product addition • That’s ok, if frequency of multiplications is low

  9. Faster Multiplier • Uses multiple adders • Cost/performance tradeoff • Done in 5 steps • But needs 31 ALUs • Can be pipelined • Several multiplication performed in parallel

  10. MIPS Multiplication • Two 32-bit registers for product • HI: most-significant 32 bits • LO: least-significant 32-bits • Instructions • mult rs, rt / multu rs, rt • 64-bit product in HI/LO • mfhi rd / mflo rd • Move from HI/LO to rd • Can test HI value to see if product overflows 32 bits • mul rd, rs, rt • Least-significant 32 bits of product –> rd

  11. Back to the Example • A better way to do 2*3? • 3 << 1 • using SLL • Almost all compilers will perform a strength reduction optimization by replacing multiplication of power of 2 by shifting

  12. Division • Check for 0 divisor • Long division approach • If divisor ≤ dividend bits • 1 bit in quotient, subtract • Otherwise • 0 bit in quotient, bring down next dividend bit • Restoring division • Do the subtraction, and if remainder goes < 0, add divisor back • Signed division • Divide using absolute values • Adjust sign of quotient and remainder as required quotient dividend • 1001 • 1000 1001010 • -1000 • 1 • 10 • 101 • 1010 • -1000 • 10 divisor remainder n-bit operands yield n-bitquotient and remainder

  13. Division Hardware • First version of Division Hardware • 32-bit quotient • 64-bit ALU • 64-bit remainder Initially divisor in left half Initially dividend

  14. First Version Division Hardware Initially divisor in left half Initially dividend

  15. Example • 7/2

  16. Optimized Divider • One cycle per partial-remainder subtraction • Looks a lot like a multiplier! • Same hardware can be used for both

  17. Faster Division • Can’t use parallel hardware as in multiplier • Subtraction is conditional on sign of remainder • Faster dividers (e.g. SRT devision) generate multiple quotient bits per step • Still require multiple steps

  18. MIPS Division • Use HI/LO registers for result • HI: 32-bit remainder • LO: 32-bit quotient • Instructions • div rs, rt / divu rs, rt • No overflow or divide-by-0 checking • Software must perform checks if required • Use mfhi, mflo to access result

  19. Example Revisit • A better way to do 7/2? • 7>>2 • SRL • Most compiler will replace divide by power of 2 using right shift operations

  20. Summary • Multiplication • First version of multiplication • Optimized multiplication • Division • First version of division • Optimized division

  21. What I want you to do • Review Chapters 3.3 and 3.4

More Related