Method and apparatus for performing the square root function using a rectangular aspect ratio multiplier
First Claim
1. A circuit for calculating an exact square root of an operand, comprising:
- circuitry for obtaining a short reciprocal of the square root of the operand;
circuitry for computing a first root digit value by multiplying a short reciprocal of the square root of the operand by said operand;
circuitry for computing a first remainder as the difference between said operand and a square of said first root digit value;
circuitry for computing a second root digit value by multiplying said short reciprocal by one half of said first remainder;
circuitry for generating a product of said second root digit value and a sum of said second root digit value and twice said first root digit value;
circuitry for computing a second remainder as the difference between said first remainder and said product of said second root digit value and said sum of said second root digit value and twice said first root digit value, said first and second root digit values and said first and second remainders calculated such that said first remainder and said second remainder have magnitudes corresponding to less than one unit in the last place of said first root digit value and said second root digit value, respectively; and
circuitry for computing a partial root, said partial root comprising a sum of all appropriately shifted root digit values.
5 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for performing the square root function which first comprises approximating the short reciprocal of the square root of the operand. A reciprocal bias adjustment factor is added to the approximation and the result truncated to form a correctly biased short reciprocal. The short reciprocal is then multiplied by a predetermined number of the most significant bits of the operand and the product is appropriately truncated to generate a first root digit value. The multiplication takes place in a multiplier array having a rectangular aspect ratio with the long side having a number of bits essentially as large as the number of bits required for the desired full precision root. The short side of the multiplier array has a number of bits slightly greater by several guard bits than the number of bits required for a single root digit value, which is also determined to be the number of bits in the short reciprocal. The root digit value is squared and the exact square is subtracted from the operand to yield an exact remainder. Succeeding new root digit values are determined by multiplying the short reciprocal by the appropriately shifted current remainder, selectively adding a digit bias adjustment factor and truncating the product. The root digit values are appropriately shifted and accumulated to form a partial root. The described steps are repeated to serially generate root digit values and partial roots with corresponding new exact remainders.
31 Citations
92 Claims
-
1. A circuit for calculating an exact square root of an operand, comprising:
-
circuitry for obtaining a short reciprocal of the square root of the operand; circuitry for computing a first root digit value by multiplying a short reciprocal of the square root of the operand by said operand; circuitry for computing a first remainder as the difference between said operand and a square of said first root digit value; circuitry for computing a second root digit value by multiplying said short reciprocal by one half of said first remainder; circuitry for generating a product of said second root digit value and a sum of said second root digit value and twice said first root digit value; circuitry for computing a second remainder as the difference between said first remainder and said product of said second root digit value and said sum of said second root digit value and twice said first root digit value, said first and second root digit values and said first and second remainders calculated such that said first remainder and said second remainder have magnitudes corresponding to less than one unit in the last place of said first root digit value and said second root digit value, respectively; and circuitry for computing a partial root, said partial root comprising a sum of all appropriately shifted root digit values. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A circuit for calculating an exact square root of an operand, comprising:
-
a rectangular array multiplier; circuitry coupled to said multiplier for obtaining a short reciprocal of the square root of the operand; circuitry coupled to said multiplier for facilitating the multiplication of said short reciprocal by said operand to yield a first product; circuitry for adding a first digit bias adjustment factor and truncating said first product to have less bits than said operand to yield a first root digit value; circuitry, including said multiplier, for generating a square of said first root digit value; circuitry for computing a difference between the operand and said square of said first root digit value to yield a first remainder; circuitry coupled to said multiplier for facilitating the multiplication of said short reciprocal by one half of said first remainder to yield a second product; circuitry for adding a second digit bias adjustment factor and truncating said second product to have less bits than the operand to yield a second root digit value; circuitry for computing a first partial root as the sum of the appropriately shifted first and second root digit values; circuitry, including said multiplier, for generating a product of said second root digit value and the sum of said second root digit value and twice said first root digit value; and circuitry for computing the difference between said first remainder and said product of said second root digit value and the sum of said second root digit value and twice said first root digit value to yield a second remainder; circuitry coupled to said multiplier for facilitating the multiplication of said short reciprocal by one half of said second remainder to yield a third product; circuitry for truncating said third product to have less bits than the operand to yield a third root digit value; circuitry for computing a second partial root as the sum of the appropriately shifted first, second and third root digit values; circuitry, including said multiplier, for generating a product of said third root digit value and the sum of said third root digit value and twice said first partial root; and circuitry for computing the difference between said second remainder and said product of said third root digit value and the sum of said third root digit value and twice said first partial root to yield a third remainder, said first, second and third root digit values calculated such that said first, second and third remainders have magnitudes corresponding to less than one unit in the last place of said first, second and third root digit values, respectively. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
-
-
40. The circuit of claim 40 wherein said reciprocal bias adjustment factor is equal to the sum of a first and a second term, said first term equal to 2-k in the Nth place where N is equal to the number of bits of the radix of the root digit values and k is a predetermined number of guard bits, said second term being large enough to bias said short reciprocal such that said short reciprocal is larger than an exact reciprocal of the square root of the operand and said second term being small enough such that said first, second and third remainders correspond to less than one unit in the last place of said first, second and third root digit values.
-
52. A method of calculating an exact square root of an operand, comprising the steps of:
-
inputting a short reciprocal of the operand into a first input of a multiplier circuit; inputting a remainder value initially equal to the operand into a second input of the multiplier circuit; computing a root digit value by multiplying in the multiplier circuit the short reciprocal of the operand by a first term equal to one half of the remainder value, the first term initially equal to the operand; computing a partial root, the partial root comprising a sum of all appropriately shifted root digit values; computing a new remainder as the difference between the remainder value and a product of the root digit value and a sum of the root digit value and a second term equal to twice the previous partial root, the second term initially equal to zero; and generating a desired number of root digit values by reiterating the steps of inputting a short reciprocal, inputting a remainder value, computing a root digit value, computing a partial root and computing a new remainder, substituting a new remainder for the remainder value when reiterating the steps of inputting a remainder value, computing a root digit value and computing a remainder, the root digit values computed such that all subsequent remainders have magnitudes corresponding to less than one unit in the last place of a preceding root digit value. - View Dependent Claims (53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78)
-
-
79. A method of calculating a square root of an operand using a rectangular array multiplier comprising the steps of:
-
obtaining a short reciprocal of the square root of the operand; computing a first product by multiplying the short reciprocal by the operand; adding a predetermined digit bias adjustment factor to the first product, truncating the first product to have less bits than the operand to yield a first root digit value; computing in the rectangular array multiplier the square of the first root digit value; computing a first remainder as the difference between the operand and the square of the first root digit value; computing a subsequent product by multiplying the short reciprocal by the appropriately shifted first remainder; selectively adding a predetermined digit bias adjustment factor to the subsequent product if the subsequent product is positive; truncating the subsequent product to have less bits than the operand to yield a subsequent root digit value; computing a partial root as the sum of all appropriately shifted root digit values; computing a new remainder as the difference between the first remainder and the product of the subsequent digit value and the sum of the subsequent root digit value and twice the preceding partial root; and generating a desired number of root digit values by reiterating the steps of computing a subsequent product, selectively adding a predetermined digit bias adjustment factor, truncating the subsequent product, computing the product of the subsequent root digit value and the sum of the subsequent root digit value and twice the previous partial root and computing a new remainder, the first root digit value, the subsequent root digit value and all succeeding root digit values calculated such that subsequent remainders have magnitudes corresponding to less than one unit in the last place of a preceding root digit value. - View Dependent Claims (80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91)
-
-
92. A circuit for calculating an exact square root of an operand, comprising:
-
a multiplier circuit; circuitry for obtaining a short reciprocal of the square root of the operand; circuitry, including said multiplier circuit, for computing a root digit value by multiplying a short reciprocal of the square root of the operand by an appropriately shifted remainder value initially equal to said operand; circuitry, including said multiplier circuit, for computing a new remainder as the difference between said remainder value initially equal to said operand and a product of the root digit value and a sum of the root digit value and a term equal to twice the sum of all appropriately shifted preceding root digits values, said term initially equal to zero; circuitry for generating a succeeding root digit value by substituting said new remainder for said remainder value and inputting said new remainder into said circuitry for computing a root digit value, said root digit value and said succeeding root digit value computed such that all remainders have magnitudes corresponding to less than one unit in the last place of a preceding root digit value; and circuitry for computing a partial root, said partial root comprising a sum of all appropriately shifted root digit values.
-
Specification