1 / 14

Lecture 12-13 notes

Lecture 12-13 notes. Reading: Section 3.4, 3.5, 3.6 Multiplication Unsigned multiplication Hardware implementation Division Floating point. Unisigned shift-add multiplier (version 1). 64-bit Multiplicand reg, 64-bit ALU, 64-bit Product reg, 32-bit multiplier reg. Shift Left.

Download Presentation

Lecture 12-13 notes

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 12-13 notes • Reading: Section 3.4, 3.5, 3.6 • Multiplication • Unsigned multiplication • Hardware implementation • Division • Floating point

  2. Unisigned shift-add multiplier (version 1) • 64-bit Multiplicand reg, 64-bit ALU, 64-bit Product reg, 32-bit multiplier reg Shift Left Multiplicand 64 bits Multiplier Shift Right 64-bit ALU 32 bits Write Product Control 64 bits Multiplier = datapath + control

  3. MULTIPLY HARDWARE Version 2 • 32-bit Multiplicand reg, 32 -bit ALU, 64-bit Product reg, 32-bit Multiplier reg Multiplicand 32 bits Multiplier Shift Right 32-bit ALU 32 bits Shift Right Product Control Write 64 bits

  4. A3 A2 A1 A0 A3 A2 A1 A0 A3 A2 A1 A0 A3 A2 A1 A0 What’s going on? 0 0 0 0 B0 • Multiplicand stay’s still and product moves right B1 B2 B3 P7 P6 P5 P4 P3 P2 P1 P0

  5. Multiplier is Negative • Convert to positive->mult->sign conversion • Sign extended algorithm: 1 0 0 1 1 (-13) x 0 1 0 1 1 (11) 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 (-143)

  6. Fast Hardware • Use multiple hardware ALUs • Binary tree type structured • Parallel binary addition

  7. Long Divide: Paper & Pencil 1001 Quotient Divisor 1000 1001010 Dividend–1000 10 101 1010 –1000 10 Remainder Dividend = Quotient x Divisor + Remainder

  8. DIVIDE HARDWARE Version 1 • 64-bit Divisor reg, 64-bit ALU, 64-bit Remainder reg, 32-bit Quotient reg Shift Right Divisor 64 bits Quotient Shift Left 64-bit ALU 32 bits Write Remainder Control 64 bits

  9. Initialization: • Set 32-bit Quotient reg to 0 • Place the divisor in the high half of the 64-bit divisor reg • Remainder reg initialized with dividend

  10. Binary representation of fraction • (1001.1001)2 = 1 x 2 3 + 0 x 2 2 + 0 x 2 1 +1 x 2 0 + 1 x 2-1 + 0 x 2-2 + 0 x 2-3 +1 x 2-4 = (9.5625)10 (0.625) 10 = (0.5 + 0.125) 10 = 1 x 2-1 + 0 x 2-2 + 1 x 2-3 = (0.101) 2

  11. Scientific Notation exponent decimal point Sign, magnitude 23 -24 6.02 x 10 1.673 x 10 • Issues: • Arithmetic (+, -, *, / ) • Representation, Normal form • Range and Precision • Rounding • Exceptions (e.g., divide by zero, overflow, underflow) radix (base) Mantissa Sign, magnitude

  12. IEEE 754 Floating-Point 1 8 23 single precision S E F fraction: sign + magnitude, normalized binary significand w/ hidden integer bit: 1.F exponent: excess 127 binary integer actual exponent is e = E - 127 0 < E < 255 S E-127 N = (-1) 2 (1.F) 0 = 0 00000000 0 . . . 0 -1.5 = 1 01111111 10 . . . 0 Magnitude of numbers that can be represented is in the range: -126 127 23 ) 2 (1.0) (2 - 2 to 2 which is approximately: -38 38 to 3.40 x 10 1.8 x 10 (integer comparison valid on IEEE Fl.Pt. numbers of same sign!)

  13. Example: -0.75 in float point • -0.75=-(0.5+0.25)= -(0.11)2 • In scientific notation, the value is -0.112 x 20 • normalized scientific notation: -1.12 x 2-1 • In single precision: • (-1) S x (1 + fraction) x 2 (exponent-127) • S = 1 • fraction = 10000000000000000000000 • Exponent = 126 = 01111110 1 01111110 10000000000000000000000

  14. Floating Point Addition Algorithm • Add x=0.5 and y=– 0.4375 in binary • (2) x= 1.000 x 2-1, y= -1.110 x 2-2. right shift the smaller exponent (y) so that both have same exponent value • y= -0.111 x 2-1 • (3) Add the fraction parts: • 1.000 x 2-1 + -0.111 x 2-1 = 0.001 x 2-1 • (4) left shift result to normalize • 0.001 x 2-1=1.000 x 2-4 • (5) Round (not needed in this example)

More Related