Title: Lecture 12-13 notes
1Lecture 12-13 notes
- Reading Section 3.4, 3.5, 3.6
- Multiplication
- Unsigned multiplication
- Hardware implementation
- Division
- Floating point
2Unisigned 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
3MULTIPLY 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
4Whats going on?
0
0
0
0
B0
B1
B2
B3
P0
P1
P2
P3
P4
P5
P6
P7
- Multiplicand stays still and product moves right
5Multiplier is Negative
- Convert to positive-gtmult-gtsign 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)
6Fast Hardware
- Use multiple hardware ALUs
- Binary tree type structured
- Parallel binary addition
7Long Divide Paper Pencil
- 1001 Quotient
- Divisor 1000 1001010 Dividend 1000
10 101 1010
1000 10 Remainder - Dividend Quotient x Divisor Remainder
8DIVIDE 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
10Binary 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
2-1 2-2 2-3 2-4 2-5 2-6
0.5 0.25 0.125 0.0625 0.03125 0.0150625
11Scientific Notation
exponent
decimal point
Sign, magnitude
23
-24
6.02 x 10 1.673 x 10
radix (base)
Mantissa
Sign, magnitude
- Issues
- Arithmetic (, -, , / )
- Representation, Normal form
- Range and Precision
- Rounding
- Exceptions (e.g., divide by zero, overflow,
underflow)
12IEEE 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 lt E lt 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!)
13Example -0.75 in float point
- -0.75-(0.50.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
10000000000000000000000
01111110
1
14Floating Point Addition Algorithm
- Add x0.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-11.000 x 2-4
- (5) Round (not needed in this example)