System and method for computing a square of a number
AssigneeMosaid Technologies Incorporation
InventorMaher Amer
Life of this patent
Estimating the term…
Abstract
A method for computing an intermediate result in squaring a number using a multiplier circuit of predetermined operand size, the method comprising the steps of representing a number to be squared as a vector of binary digits; grouping the vector into successive segments each having a length of the predetermined operand size; multiplying a first segment value by a second segment value to generate a first product value; halving a second product value to generate a halved second product value; accumulating the first product value with the halved second product value to generate an accumulated value; and doubling the accumulated value to generate the intermediate result.
Claims7
A method for computing an intermediate result in squaring a number using a multiplier circuit of predetermined operand size, said method comprising the steps of:
- (a) representing a number to be squared as a vector of binary digits;
- (b) grouping said vector into successive segments each having a length of said predetermined operand size;
- (c) multiplying a first segment value by a second segment value to generate a first product value;
- (d) halving a second product value to generate a halved second product value;
- (e) accumulating said first product value with said halved second product value to generate an accumulated value;
- and
- (f) doubling said accumulated value to generate said intermediate result.
A method for computing an intermediate result in a square of a sum of numbers using a multiplier circuit of predetermined operand size, said method comprising the steps of:
- (a) representing the numbers as a vector of binary digits;
- (b) multiplying a first of the numbers with a second of the numbers to generate a first product value;
- (c) shifting a binary representation of a square of one of the numbers to halve said square value and setting a corresponding flag bit;
- (d) accumulating the first product valuc with said halved square value to generate an accumulated value;
- (e) shifting the accumulated value to double said accumulated value;
- and
- (f) incorporating said flag bit with said doubled accumulated value to generate said intermediate result.
A method of squaring a number comprising the following steps:
- (a) segmenting the number into a plural segments;
- (b) initializing a product register comprised of plural segments;
- (c) multiplying the second segment of the number by itself to generate a first partial product and storing the first partial product into the product register;
- (d) shifting contents of the product register into a temporary register according to a column change operation;
- (f) halving current contents of the product register;
- (g) multiplying the first segment of the number with the second segment of the number to generate a second partial product;
- (f) accumulating the second partial product with the halved contents of the product register to generate an accumulated value;
- (g) doubling said accumulated value and storing the doubled accumulated value in the product register;
- (h) shifting contents of the product register into a temporary register according to a column change operation;
- (i) multiplying the first segment by itself to generate a third partial product and storing the third partial product value in the product register;
- and
- (j) concatenating the current contents of the product register with temporary register to generate a final result.
A method for computing an intermediate result in a square operation using a multiplier circuit of predetermined operand size, said method comprising the steps of:
- (a) multiplying a first segment value of a number to be squared by a second segment value [D] to generate a first product value;
- (d) halving a previous product value to generate a halved second product value;
- (e) accumulating said first product value with said halved second product value to generate an accumulated value;
- and
- (f) doubling said accumulated value to generate said intermediate result.
Dependencies are inferred from the claim text.