Patents by Inventor Leonard D. Rarick
Leonard D. Rarick has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 9069612Abstract: A carry look-ahead adder includes an input stage to produce generate bits and propagate bits from input signals. An output stage produces output sums exclusively from the generate bits, the propagate bits and carry in bits.Type: GrantFiled: June 29, 2012Date of Patent: June 30, 2015Assignee: ARM Finance Overseas LimitedInventor: Leonard D. Rarick
-
Patent number: 8990283Abstract: A computer processor including a single fused-unfused floating point multiply-add (FMA) module computes the result of the operation A*B+C for floating point numbers for fused multiply-add rounding operations and unfused multiply-add rounding operations. In one embodiment, a fused multiply-add rounding implementation is augmented with additional hardware which calculates an unfused multiply-add rounding result without adding additional pipeline stages. In one embodiment, a computation by the fused-unfused floating point multiply-add (FMA) module is initiated using a single opcode which determines whether a fused multiply-add rounding result or unfused multiply-add rounding result is generated.Type: GrantFiled: October 24, 2011Date of Patent: March 24, 2015Assignee: Oracle America, Inc.Inventors: Murali K. Inaganti, Leonard D. Rarick
-
Publication number: 20140006470Abstract: A carry look-ahead adder includes an input stage to produce generate bits and propagate bits from input signals. An output stage produces output sums exclusively from the generate bits, the propagate bits and carry in bits.Type: ApplicationFiled: June 29, 2012Publication date: January 2, 2014Applicant: MIPS TECHNOLOGIES, INC.Inventor: Leonard D. Rarick
-
Patent number: 8433742Abstract: 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.Type: GrantFiled: August 6, 2008Date of Patent: April 30, 2013Assignee: Oracle America, Inc.Inventor: Leonard D. Rarick
-
Patent number: 8358780Abstract: Described is an execution unit for performing at least part of the Data Encryption Standard that includes a Left Half input; a Key input; and a Table input, as well as a first group of transistors configured to receive the Table input, perform a table look-up, and output data. The execution unit further includes a first exclusive-or operator having two inputs and an output that is configured to receive the Left Half input and the Key input. The execution unit also includes a second exclusive-or operator having two inputs and an output that is configured to receive the data output by the first group of transistors and to receive the output of the first exclusive-or operator. The execution unit also includes a third exclusive-or operator having two inputs and an output that is configured to receive the Left Half input and the data output by the first group of transistors.Type: GrantFiled: November 7, 2011Date of Patent: January 22, 2013Assignee: Oracle America, Inc.Inventors: Leonard D. Rarick, Christopher H. Olson
-
Patent number: 8250126Abstract: Embodiments of the present invention provide a system that estimates the location of the leading zero or the leading one in the result of an addition of floating-point numbers A and B. The system includes a half-adder circuit associated with each separate bit position i in A and B. The half-adder circuits compute a sum (S) for the associated bit position of A and B and a carry (K) for a next bit position of A and B. The system also includes a set of estimation circuits coupled to the set of half-adder circuits. The set of estimation circuits computes an estimate for the location of the leading zero or the leading one in the result from the K and S computed by each half-adder circuit.Type: GrantFiled: December 26, 2007Date of Patent: August 21, 2012Assignee: Oracle America, Inc.Inventor: Leonard D. Rarick
-
Patent number: 8239441Abstract: Modifying a leading zero estimation during an unfused multiply add operation of (A*B)+C. A plurality of terms x and y may be received, and each may be based on truncated terms s and t (e.g., in performing the unfused multiply add operation) and the shifted C term. A first leading zero estimation may be calculated based on the terms x and y. It may be determined if near total catastrophic cancellation has occurred. A carry in from a right most number of bits of the terms s and t and the most significant truncated bits of s and t may be used to generate a second leading zero estimation based on the first leading zero estimation if the near total catastrophic cancellation has occurred.Type: GrantFiled: May 15, 2008Date of Patent: August 7, 2012Assignee: Oracle America, Inc.Inventor: Leonard D. Rarick
-
Patent number: 8180822Abstract: A computer system for computing a binary operation involving a first term multiplied by a second term resulting in a product, where the product is conditionally added to a third term in a central processing unit. The central processing unit includes a carry save adder configured to add a plurality of partial products obtained from the product of the first term and the second term to obtain a first partial result and a second partial result, a multiplexer configured to output one selected from the group consisting of the second term, the third term, and zero, and an alignment shifter configured to shift an output of the multiplexer to align the output of the multiplexer with the first partial result and the second partial result to obtain a shifted term. The shifted term, the first partial result and the second partial result are added together to obtain a result of the binary operation.Type: GrantFiled: September 3, 2008Date of Patent: May 15, 2012Assignee: Oracle America, Inc.Inventor: Leonard D. Rarick
-
Publication number: 20120087492Abstract: Described is an execution unit for performing at least part of the Data Encryption Standard that includes a Left Half input; a Key input; and a Table input, as well as a first group of transistors configured to receive the Table input, perform a table look-up, and output data. The execution unit further includes a first exclusive-or operator having two inputs and an output that is configured to receive the Left Half input and the Key input. The execution unit also includes a second exclusive-or operator having two inputs and an output that is configured to receive the data output by the first group of transistors and to receive the output of the first exclusive-or operator. The execution unit also includes a third exclusive-or operator having two inputs and an output that is configured to receive the Left Half input and the data output by the first group of transistors.Type: ApplicationFiled: November 7, 2011Publication date: April 12, 2012Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Leonard D. Rarick, Christopher H. Olson
-
Publication number: 20120041997Abstract: A computer processor including a single fused-unfused floating point multiply-add (FMA) module computes the result of the operation A*B+C for floating point numbers for fused multiply-add rounding operations and unfused multiply-add rounding operations. In one embodiment, a fused multiply-add rounding implementation is augmented with additional hardware which calculates an unfused multiply-add rounding result without adding additional pipeline stages. In one embodiment, a computation by the fused-unfused floating point multiply-add (FMA) module is initiated using a single opcode which determines whether a fused multiply-add rounding result or unfused multiply-add rounding result is generated.Type: ApplicationFiled: October 24, 2011Publication date: February 16, 2012Applicant: ORACLE AMERICA, INC.Inventors: Murali K. Inaganti, Leonard D. Rarick
-
Patent number: 8073141Abstract: An execution unit adapted to perform at least a portion of the Data Encryption Standard. The execution unit includes a Left Half input; a Key input; and a Table input. The execution unit also includes a first group of transistors configured to receive the Table input, perform a table look-up, and output data. The execution unit further includes a first exclusive-or operator having two inputs and an output. The first exclusive-or operator is configured to receive the Left Half input and the Key input. The execution unit also includes a second exclusive-or operator having two inputs and an output. The second exclusive-or operator is configured to receive the data output by the first group of transistors and to receive the output of the first exclusive-or operator. The execution unit also includes a third exclusive-or operator having two inputs and an output. The third exclusive-or operator is configured to receive the Left Half input and the data output by the first group of transistors.Type: GrantFiled: August 28, 2008Date of Patent: December 6, 2011Assignee: Oracle America, Inc.Inventors: Leonard D. Rarick, Christopher H. Olson
-
Patent number: 8046399Abstract: A computer processor including a single fused-unfused floating point multiply-add (FMA) module computes the result of the operation A*B+C for floating point numbers for fused multiply-add rounding operations and unfused multiply-add rounding operations. In one embodiment, a fused multiply-add rounding implementation is augmented with additional hardware which calculates an unfused multiply-add rounding result without adding additional pipeline stages. In one embodiment, a computation by the fused-unfused floating point multiply-add (FMA) module is initiated using a single opcode which determines whether a fused multiply-add rounding result or unfused multiply-add rounding result is generated.Type: GrantFiled: January 25, 2008Date of Patent: October 25, 2011Assignee: Oracle America, Inc.Inventors: Murali K. Inaganti, Leonard D. Rarick
-
Patent number: 7899859Abstract: One embodiment of the present invention provides a system that performs both error-check and exact-check operations for a Newton-Raphson divide or square-root computation. During operation, the system performs Newton-Raphson iterations followed by a multiply for a divide or a square-root operation to produce a result, which includes one or more additional bits of accuracy beyond a desired accuracy for the result. Next, the system rounds the result to the desired accuracy to produce a rounded result t. The system then analyzes the additional bits of accuracy to determine whether t is correct and whether t is exact.Type: GrantFiled: December 20, 2005Date of Patent: March 1, 2011Assignee: Oracle America, Inc.Inventors: Allen Lyu, Leonard D. Rarick
-
Publication number: 20100329450Abstract: Some embodiments of the present invention provide a processor, which includes a set of general-purpose registers and at least one execution unit. Each general-purpose register in the set of general-purpose registers is at least 64 bits wide, and the execution unit supports one or more Data Encryption Standard (DES) instructions. Specifically, the execution unit may support a permutation-rotation instruction for performing DES permutation operations and DES rotation operations. The execution unit may also support a round instruction to perform a DES round operation. Since the DES instructions use general-purpose registers instead of special-purpose registers to perform DES-specific operations, the processor's circuit complexity and area are reduced. Furthermore, in some embodiments, since the DES instructions require at most two operands, the number of bits required to specify the location of the operands are reduced, thereby enabling a larger number of instructions to be supported by the processor.Type: ApplicationFiled: June 30, 2009Publication date: December 30, 2010Applicant: SUN MICROSYSTEMS, INC.Inventors: Leonard D. Rarick, Christopher H. Olson, Gregory F. Grohoski
-
Patent number: 7720219Abstract: An apparatus and method for implementing a hash algorithm word buffer. In one embodiment, a cryptographic unit may include hash logic configured to compute a hash value of a data block according to a hash algorithm, where the hash algorithm includes a plurality of iterations, and where the data block includes a plurality of data words. The cryptographic unit may further include a word buffer comprising a plurality of data word positions and configured to store the data block during computing by the hash logic, where subsequent to the hash logic computing one of the iterations of the hash algorithm, the word buffer is further configured to linearly shift the data block by one or more data word positions according to the hash algorithm. The hash algorithm may be dynamically selectable from a plurality of hash algorithms.Type: GrantFiled: October 19, 2004Date of Patent: May 18, 2010Assignee: Oracle America, Inc.Inventors: Christopher H. Olson, Leonard D. Rarick, Gregory F. Grohoski
-
Patent number: 7711955Abstract: An apparatus and method for cryptographic key expansion. According to a first embodiment, a cryptographic unit may include key storage configured to store an expanded set of cipher keys for a cipher algorithm, and a key expansion pipeline comprising a plurality of pipeline stages. During a key expansion mode of operation, each pipeline stage may be configured to perform a corresponding step of generating a member of the expanded set of cipher keys according to a key expansion algorithm. During a cipher mode of operation, a portion of the key expansion pipeline may be configured to perform a step of the cipher algorithm.Type: GrantFiled: September 13, 2004Date of Patent: May 4, 2010Assignee: Oracle America, Inc.Inventors: Christopher H. Olson, Leonard D. Rarick, Gregory F. Grohoski
-
Patent number: 7689642Abstract: One embodiment of the present invention provides a system that efficiently performs an accuracy-check computation for Newton-Raphson divide and square-root operations. During operation, the system performs Newton-Raphson iterations followed by a multiply for the divide or square-root operation. This result is then rounded to produce a proposed result. Next, the system performs an accuracy-check computation to determine whether rounding the result to a desired precision produces the correct result. This accuracy-check computation involves performing a single pass through a multiply-add pipeline to perform a multiply-add operation. During this single pass, a Booth encoding of an operand in a multiply portion of the multiply-add pipeline is modified, if necessary, to cause an additional term for the accuracy-check computation to be added to the result of the multiply-add operation.Type: GrantFiled: November 3, 2005Date of Patent: March 30, 2010Assignee: Sun Microsystems, Inc.Inventor: Leonard D. Rarick
-
Patent number: 7684563Abstract: An apparatus and method for implementing a unified hash algorithm pipeline. In one embodiment, a cryptographic unit may include hash logic configured to compute a hash value of a data block according to a hash algorithm, where the hash algorithm is dynamically selectable from a plurality of hash algorithms, and where the hash logic comprises a plurality of pipeline stages each configured to compute a portion of the hash algorithm. The cryptographic unit may further include a word buffer configured to store the data block during computing by the hash logic.Type: GrantFiled: October 19, 2004Date of Patent: March 23, 2010Assignee: Sun Microsystems, Inc.Inventors: Christopher H. Olson, Leonard D. Rarick, Gregory F. Grohoski
-
Publication number: 20100057824Abstract: A computer system for computing a binary operation involving a first term multiplied by a second term resulting in a product, where the product is conditionally added to a third term in a central processing unit. The central processing unit includes a carry save adder configured to add a plurality of partial products obtained from the product of the first term and the second term to obtain a first partial result and a second partial result, a multiplexer configured to output one selected from the group consisting of the second term, the third term, and zero, and an alignment shifter configured to shift an output of the multiplexer to align the output of the multiplexer with the first partial result and the second partial result to obtain a shifted term. The shifted term, the first partial result and the second partial result are added together to obtain a result of the binary operation.Type: ApplicationFiled: September 3, 2008Publication date: March 4, 2010Applicant: SUN MICROSYSTEMS, INC.Inventor: Leonard D. Rarick
-
Publication number: 20100036901Abstract: 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.Type: ApplicationFiled: August 6, 2008Publication date: February 11, 2010Applicant: SUN MICROSYSTEMS, INC.Inventor: Leonard D. Rarick