Title: Chapter 14 HighRadix Dividers
1Chapter 14 High-Radix Dividers
- Basics of High-Radix Division
- Radix-2 SRT Division
- Using Carry-Save Adders
- Choosing the Quotient Digits
- Radix-4 SRT Division
- General High-Radix divider
2Basics of High-Radix Division
3Radix-4 Division in Dot Notation
- Interesting dividers have radix r 2b
- Reduces the number of cycles of by a factor of b
4Difficulty of High-Radix Division
- Guessing the correct quotient digit is more
difficult. - Division is naturally a sequential process
- Guess a quotient digit qk-j
- Compute term qk-j(rkd)
- Compute partial remainder
- s(j) rs(j-1) ? qk-1(rkd)
5Carry-Save Remainders
- More important for speed than high-radix.
- Lead to large performance increases by replacing
carry-propagate adder with carry-save adder. - Key to keeping remainder in carry-save form is
Redundancy in the representation of q. - Allows less precise guessing of quotient digit
based on approximate magnitude of partial
remainder. - More redundancy less precision required.
6Review of Non-Restoring Division (fractional
operands)
7Using q-j in -1,0,1
8A Big Problem
- Q How can you tell if shifted partial remainder
is in -d,d) ? - A You have to perform trial subtractions.
- Q Can you avoid trial subtractions ?
- A Sweeny, Robertson, and Tocher-- SRT division.
9Radix-2 SRT Division
- Assume d ³ 1/2 (normalized)
- Restrict partial remainder to constant range
-1/2, 1/2) instead of -d, d ) - May require shifting dividend initial partial
remainder so that 1/2 ³ s (0) ³ -1/2 - Once in the proper range, subsequent partial
remainders will stay in the range
10Radix-2 SRT Division
11Simplified Digit Selection
12Final Steps
- -1,1-quotient conversion algorithm will not
work to convert -1, 1-quotient to
twos-complement. - On-the-fly algorithm by Ercedovac 1987, or
- Subtract negative digits from positive digits.
- Still requires a final correction step to make
remainder positive.
13Using Carry-Save Adders
14Carry-Save Partial Remainders
- Two numbers sum to the actual partial remainder.
- To perform exact comparison, a full CPA would be
required. - Overlaps in the selection regions allow us to
perform approximate comparisons without risk of
choosing a wrong digit.
15Carry-Save Partial Remainders
16Tolerating Truncation Error
17Digit Selection
18Radix-2 Divider with CSA
19Select Logic
- Fast 4-bit CPA, plus decode logic, or
- 256 ? 2 Lookup table, or
- 8 input, 2 output PLA
20CLA with SRT Division?
21Choosing Quotient Digits Using a P-D Plot
22Putting Both Charts Together
23Radix-4 SRT Division
- Radix r 2 b , b gt 1
- Partial remainder kept in stored-carry form.
- Requires a redundant digit set.
- Example
- radix 4
- digit set -3, 3
24New vs. Shifted Old Partial Remainder
25p-d Plot for Radix-4, -3, 3 SRT Division
26Radix-4 Digit Set -2, 2
- Avoids having to compute 3d as in digit set -3,
3. - Fewer comparisons (fewer selection regions).
- Less redundancy means less overlap in selection
regions. - Partial remainder must be restricted to ensure
convergence.
27Restricting the Range of s
28p-d Plot for Radix-4, -2, 2 SRT Division
29Observations
- Restricting digit set to -2, 2 results in less
overlap in selection regions. - Must examine p and d in greater detail to
correctly choose the quotient digit. - Staircase boundaries 4 bits of p and 4 bits of d
are required to make the selection.
30Block Diagram
31Intels Pentium Division Bug
- Intel used the Radix-4 SRT division algorithm.
- Quotient selection was implemented as a PLA.
- The p-d plot was numerically generated.
- Script to download entries into the PLA
inadvertently removed a few table entries from
the table. - When hit, these missing entries resulted in digit
0, instead of the intended digits 2. - These entries are consulted very rarely, and thus
the bug was very subtle and difficult to detect.
32General High-Radix Dividers
- Radix-8 is possible.
- Minimal quotient digit set -4, 4
- Partial remainder restricted to -4d/7, 4d/7)
- Requires a 3d multiple
- Digit sets with greater redundancy (such as -7,
7 ) lead to - Wider overlap regions
- More comparisons but simpler digit selection
- More difficult multiples (5, 7)