IP Library Granted Patent US 8,433,742
Granted Patent B2
US 8,433,742 · App. 12/187,286 · Granted Apr 30, 2013

Modulus-based error-checking technique

Inventor: Leonard D. Rarick (San Jose, CA)
Assignee: Oracle America, Inc.
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 8,433,742
App. No.
12/187,286
Granted
Apr 30, 2013
Kind
B2
Abstract

During a method, a modulus circuit determines a modulus base p of a first number and a modulus base p of a second number. Also, the modulus circuit performs the operation using the modulus base p of the first number and the modulus base p of the second number, and calculates a modulus base p of the result of the operation involving the first number and the second number. Next, the modulus circuit compares the result of the operation carried out on the modulus base p of the first number and the modulus base p of the second number with the modulus base p of the operation performed on the first number and the second number to identify potential errors associated with the operation. Moreover, the modulus circuit repeats the method to identify additional potential errors associated with the operation, where the determining and calculating operations are repeated using moduli base q.

Claims (41)

1. A method for checking a result of an operation involving a first number and a second number, comprising:

determining a modulus base p of the first number and a modulus base p of the second number;

performing the operation using the modulus base p of the first number and the modulus base p of the second number;

calculating a modulus base p of a result of the operation involving the first number and the second number;

comparing a result of the performing of the operation with a result of the calculation to identify potential errors associated with the operation; and

repeating the determining, performing, calculating, and comparing operations to identify additional potential errors associated with the operation, wherein the determining and calculating operations are repeated using moduli base q;

wherein p and q are Mersenne prime numbers;

wherein the moduli base p and base q are computed using a shared circuit that performs additions using subsets of consecutive bits in the first number and the second number;

wherein the number of bits in a given subset is greater than or equal to the product of a first characteristic number associated with the modulus base p and a second characteristic number associated with the modulus base q; and

wherein a given characteristic number associated with a given modulus base is a number of bits in a binary representation of the given modulus base.

2. The method of claim 1 , wherein the operation includes multiplication or addition; and

wherein the multiplication includes a full product of the first number and the second number or a partial product, in which some of the bits in the first number and the second number are multiplied.

3. The method of claim 1 , wherein the repeating of the determining, performing, calculating, and comparing operations is performed concurrently with a first instance of these operations.

4. The method of claim 1 , wherein the shared circuit performs the additions after logically aligning the subsets of the bits.

5. The method of claim 1 , wherein at least some of the additions are performed using 4-to-2 compressor circuits.

6. The method of claim 1 , wherein p is 3 and the first characteristic number is 2, p is 7 and the first characteristic number is 3, or p is 31 and the first characteristic number is 5.

7. The method of claim 6 , wherein q is 3 and the second characteristic number is 2, q is 7 and the second characteristic number is 3, or q is 31 and the second characteristic number is 5; and

wherein p is different than q.

8. The method of claim 1 , wherein p is different than q.

9. A modulus circuit configured to determine moduli of an input using shared addition circuits that add subsets of consecutive bits in the input, wherein the input can be a first number, a second number, or a result of an operation involving the first number and the second number;

wherein the moduli include a modulus base p and a modulus base q;

wherein p and q are Mersenne prime numbers;

wherein the number of bits in a given subset is greater than or equal to the product of a first characteristic number associated with the modulus base p and a second characteristic number associated with the modulus base q; and

wherein a given characteristic number associated with a given modulus base is a number of bits in a binary representation of the given modulus base.

10. The modulus circuit of claim 9 , wherein the moduli are used to check a result of the operation involving the first number and the second number.

11. The modulus circuit of claim 9 , wherein the operation includes multiplication or addition; and

wherein the multiplication includes a full product of the first number and the second number or a partial product, in which some of the bits in the first number and the second number are multiplied.

12. The modulus circuit of claim 9 , wherein the shared addition circuits perform additions after logically aligning the subsets of the bits.

13. The modulus circuit of claim 9 , wherein at least some of the shared addition circuits include full-adder circuits.

14. The modulus circuit of claim 9 , wherein at least some of the shared addition circuits include 4-to-2 compressor circuits.

15. The modulus circuit of claim 9 , wherein p is 3 and the first characteristic number is 2, p is 7 and the first characteristic number is 3, or p is 31 and the first characteristic number is 5.

16. The modulus circuit of claim 15 , wherein q is 3 and the second characteristic number is 2, q is 7 and the second characteristic number is 3, or q is 31 and the second characteristic number is 5; and

wherein p is different than q.

17. The modulus circuit of claim 9 , wherein p is different than q.

18. The modulus circuit of claim 9 , wherein the modulus circuit is disposed on an integrated circuit.

19. A computer system, comprising an integrated circuit that includes a modulus circuit which is configured to determine moduli of an input using shared addition circuits that add subsets of consecutive bits in the input, wherein the input can be a first number, a second number, or a result of an operation involving the first number and the second number;

wherein the moduli include a modulus base p and a modulus base q;

wherein p and q are Mersenne prime numbers;

wherein the number of bits in a given subset is greater than or equal to the product of a first characteristic number associated with the modulus base p and a second characteristic number associated with the modulus base q; and

wherein a given characteristic number associated with a given modulus base is a number of bits in a binary representation of the given modulus base.

20. The computer system of claim 19 , wherein the moduli are used to check a result of the operation involving the first number and the second number.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0195 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2008
From: RARICK, LEONARD D.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 021464/0742 →
Continuity (1)
Related Publication 20100036901A1 · Feb 11, 2010