IP Library Granted Patent US 9,875,083
Granted Patent B2
US 9,875,083 · App. 14/452,315 · Granted Jan 23, 2018

Performing a comparison computation in a computer system

Inventor: Leonard Rarick (San Diego, CA)
Assignee: Imagination Technologies Limited
G06F7/52G06F7/552G06F7/5525G06F2207/5521
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,875,083
App. No.
14/452,315
Granted
Jan 23, 2018
Kind
B2
Abstract

A method and computer system are provided for performing a comparison computation, e.g. for use in a check procedure for a reciprocal square root operation. The comparison computation compares a multiplication of three values with a predetermined value. The computer system performs the multiplication using multiplier logic which is configured to perform multiply operations in which two values are multiplied together. A first and second of the three values are multiplied to determine a first intermediate result, w 1 . The digits of w 1 are separated into two portions, w 1,1 and w 1,2 . The third of the three values is multiplied with w 1,2 and the result is added into a multiplication of the third of the three values with w 1,1 to thereby determine the result of multiplying the three values together. In this way the comparison is performed with high accuracy, while keeping the area and power consumption of the multiplier logic low.

Claims (84)

1. A method of performing a comparison computation in a computer system for comparing a result of a multiplication computation with a predetermined value, wherein the comparison computation is performed in a check procedure implemented by the computer system for checking a proposed result of a reciprocal square root calculation, wherein the multiplication computation is implemented by multiplier logic of the computer system and includes a multiplication of three values, each of the three values being allowed to have a number of digits up to a maximum of k digits, wherein the multiplier logic is configured for performing multiply operations in which two input values are multiplied together to provide an output value, wherein the size of the multiplier logic is fixed such that (i) each of the two input values can have up to a maximum of k digits, and (ii) the output value can have up to a maximum of 2k digits, the method comprising:

performing a reciprocal square root calculation with converging approximation logic on an input value b to generate the proposed result

r

=

1

b

,

performing a first multiply operation with the multiplier logic of the computer system to determine a first intermediate result by multiplying a first and a second of the three values;

separating digits of the first intermediate result to form: (i) a first portion comprising the most significant digits of the first intermediate result, and (ii) a second portion comprising less significant digits of the first intermediate result, wherein each of the first and second portions of the first intermediate result have ≦k digits;

per a second multiply operation with the multiplier logic to determine a second intermediate result by multiplying a third of the three values with said second portion of the first intermediate result;

performing a third multiply operation with the multiplier logic to determine a third result, the third multiply operation including multiplying the third of the three values with said first portion of the first intermediate result and adding at least one of the digits of the second intermediate result; and

performing the check procedure for checking the proposed result of the reciprocal square root calculation by using the third result to determine a comparison of the result of the multiplication computation with the predetermined value,

wherein the three values include b and (r+c), c has a value of 0,

u

2

or u, and u is an increment in the least significant digit position of r.

2. A computer system configured to perform a comparison computation for comparing a result of a multiplication computation with a predetermined value, wherein the multiplication computation includes a multiplication of three values, each of the three values being allowed to have up to a maximum of k digits, the computer system comprising a converging approximation look, to generate a proposed result

r

=

1

b

for a reciprocal square root computation, and a check module configured to receive b and r as input values and to perform a check procedure for checking the proposed result of the reciprocal square root calculation, the check module comprising:

multiplier logic configured to perform multiply operations in which two input values are multiplied together to provide an output value, wherein the size of the multiplier logic is fixed such that (i) each of the two input values can have up to a maximum of k digits, and (ii) the output value can have up to a maximum of 2k digits; and

a controller configured to control the multiplier logic so as to cause the multiplier logic to implement multiply operations for the multiplication computation by:

performing a first multiply operation with the multiplier logic to determine a first intermediate result by multiplying a first and a second of the three values, wherein the digits of the first intermediate result are separable to form: (i) a first portion comprising the most significant digits of the first intermediate result, and (ii) a second portion comprising less significant digits of the first intermediate result, wherein each of the first and second portions of the first intermediate result have ≦k digits;

performing a second multiply operation with the multiplier logic to determine a second intermediate result by multiplying a third of the three values with said second portion of the first intermediate result; and

performing a third multiply operation with the multiplier logic to determine a third result, the third multiply operation including multiplying the third of the three values with said first portion of the first intermediate result and adding at least one of the digits of the second intermediate result;

wherein the check module further comprises compare logic configured to perform the check procedure for checking the result of the reciprocal square root calculation by using the third result to determine a comparison of the result of the multiplication computation with the predetermined value, and

wherein the three values include b and (r+c), c has a value of 0,

u

2

or u, and u is an increment in the least significant digit position of r.

3. The computer system of claim 2 wherein the compare logic is configured to use the third result to determine a comparison of the result of the multiplication computation with the predetermined value by determining whether the result of the multiplication computation is greater than, less than or equal to the predetermined value.

4. The computer system of claim 2 wherein the computer system is configured to determine the result of the multiplication computation to be either: (i) the third result, or (ii) a concatenation of the third result with digits of the second intermediate result which are not added in the third multiply operation.

5. The computer system of claim 2 wherein the third multiply operation further includes subtracting the predetermined value, and wherein the compare logic is configured to use the third result to determine a comparison of the result of the multiplication computation with the predetermined value by comparing the third result with zero.

6. The computer system of claim 2 wherein the compare logic is configured to compare the most significant digits, but not all of the digits, of the third result with the predetermined value.

7. The computer system of claim 2 wherein the predetermined value has N digits, wherein N is less than or equal to the number of digits of the third result, and wherein the compare logic is configured to compare at least N of the most significant digits of the third result with the predetermined value.

8. The computer system of claim 2 further comprising a memory configured to store values including at least the first portion of the first intermediate result and the third of the three values, wherein the controller is configured to control the memory such that appropriate values are provided as inputs to the multiplier logic for the multiply operations.

9. The computer system of claim 2 wherein the multiplier logic is configured such that the third multiply operation comprises adding at least some of the digits of the second intermediate result.

10. The computer system of claim 2 wherein the multiplier logic is configured such that the third multiply operation comprises adding the k most significant digits of the second intermediate result.

11. The computer system of claim 2 wherein the first portion of the first intermediate result comprises the k most significant digits of the first intermediate result, and the second portion of the first intermediate result comprises the remaining digits of the first intermediate result.

12. The computer system of claim 2 wherein the first portion of the first intermediate result comprises the most significant half of the digits of the first intermediate result, and the second portion of the first intermediate result comprises the least significant half of the digits of the first intermediate result.

13. The computer system of claim 2 wherein the multiplier logic is a binary multiplier, and wherein the three values and the predetermined value are binary values.

14. The computer system of claim 2 wherein the check module is configured to use the comparison computation to determine a check parameter, g, in accordance with the equation g=(r+c) 2 b−1, where c has a value of 0,

u

2

or u depending on a rounding mode, wherein the three values of which the multiplier logic is configured to determine a multiplication are (r+r), (r+c) and b, and wherein the predetermined value is 1.

15. The computer system of claim 14 further comprising determining logic which is arranged to receive an indication of the sign of the check parameter, g, and is configured to output the value of r as a value representing

1

b

if g is positive, and to output the value of (r+u) as a value representing

1

b

if g is negative.

16. A computer readable storage medium having encoded thereon: (i) computer readable code for generating a computer system according to claim 2 , or (ii) computer readable code adapted to perform the steps of the method of claim 1 when the code is run on a computer.

17. A computer system configured to perform a multiplication computation which includes determining a result of a multiplication of three values, each of the three values having up to a maximum of k digits, the computer system comprising a converging approximation logic to generate a proposed result

r

=

1

b

for a reciprocal square root computation, and a check module configured to receive b and r as input values and to perform a check procedure, wherein the multiplication computation is in the check procedure implemented by the check module for checking the result of the reciprocal square root calculation, the check module comprising:

multiplier logic comprising two inputs and an output, wherein the multiplier logic is configured to perform multiply operations in which b and (r+c) are received at the respective two inputs and multiplied together to provide an output value at the output, where c has a value of 0,

u

2

or u and u, is an increment in the least significant digit position of r, and wherein the size of the multiplier logic is fixed such that (i) each of the two inputs can receive input values having up to a maximum of k digits, and (ii) the output can provide outputs having up to a maximum of 2k digits; and

a controller configured to control the multiplier logic so as to cause the multiplier logic to implement the multiplication computation by:

performing a first multiply operation with the multiplier logic to determine a first intermediate result by multiplying a first and a second of the three values, wherein the digits of the first intermediate result are separable to form: (i) a first portion comprising the most significant digits of the first intermediate result, and (ii) a second portion comprising less significant digits of the first intermediate result, wherein each of the first and second portions of the first intermediate result have k digits;

performing a second multiply operation with the multiplier logic to determine a second intermediate result by multiplying a third of the three values with said second portion of the first intermediate result; and

performing a third multiply operation with the multiplier logic to determine a third result by multiplying the third of the three values with said first portion of the first intermediate result and adding at least one of the digits of the second intermediate result, wherein the third result is indicative, of the result of the multiplication computation.

18. A method of performing a multiplication computation in a computer system, wherein the multiplication computation is performed in a check procedure implemented by the computer system for checking the proposed result of a reciprocal square root calculation, wherein the multiplication computation is implemented by multiplier logic of the computer system and includes determining result of a multiplication of three values, each of the three values having up to a maximum of k digits, wherein the multiplier logic is configured for performing multiply operations in which two input values are multiplied together to provide an output value, wherein the size of the multiplier logic is fixed such that (i) each of the two input values can have up to a maximum of k digits, and (ii) the output value can have up to a maximum of 2k digits, the method comprising:

performing a reciprocal square root calculation with converging approximation logic on an input value b to generate the proposed result

r

=

1

b

,

performing a first multiply operation with the multiplier logic of the computer system to determine a first intermediate result by multiplying a first and a second of the three values;

separating digits of the first intermediate result to form: (i) a first portion comprising the most significant digits of the first intermediate result, and (ii) a second portion comprising less significant digits of the first, intermediate result, wherein each of the first and second portions of the first intermediate result have ≦k digits;

performing a second multiply operation with the multiplier logic to determine a second intermediate result by multiplying a third of the three values with said second portion of the first intermediate result; and

performing a third multiply operation with the multiplier logic to determine a third result by multiplying the third of the three values with said first portion of the first intermediate result and adding at least one of the digits of the second intermediate result, wherein the third result is indicative of the result of the multiplication computation,

wherein the three values include h and (r+c), c has a value of 0,

u

2

or u, and u is an increment in the least significant digit position of r.

Assignments (2)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2014
From: RARICK, LEONARD
To: IMAGINATION TECHNOLOGIES, LIMITED
Reel/Frame 033469/0986 →
Continuity (1)
Related Publication 20160041946A1 · Feb 11, 2016