← Back to Patent Explorer
US4683546A Expired / Lapsed US ⏱️ 0.0 years remaining

Floating point condition code generation

Assignee: Motorola Solutions Inc
•
Filing: 1986-10-14
•
Granted: 1987-07-28
•
Expires: 2006-10-14
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for generating floating point condition codes by using the data type of a result operand, rather than a magnitude relationship between two operands. The condition codes may then be combined to generate relations useful for identifying conditions for conditional branches or traps.

Inventors

  • 👤 Joel F. Boney

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 20:34
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/32; G06F7/00; G06F7/02; G06F7/026; G06F7/38; G06F7/48; G06F7/483; G06F9/30003; G06F9/30007; G06F9/3001; G06F9/30014; G06F9/30181; G06F9/30192; G06F7/499; G06F7/49905

Claims Analysis

Total Claims: 27
Claim 1
Independent Claim 127 words
A method comprising the steps of: performing an arithmetic operation on two floating point operands to produce a floating point result; generating a first set of condition codes comprising: Zero (Z) if the result is a floating point zero; Negative (N) if the result is negative; Not a Number (NaN) if the result is not a floating point number; and Infinity (I) if the result is a floating point logically combining the first set of condition codes to produce a second set of condition codes comprising: Equal (EQ) if the result is equal to zero; Greater Than (GT) if the result is greater than zero; Less Than (LT) if the rsult is less than zero; and Unordered (UN) if the result is not a floating point number.
Claim 2
Independent Claim 127 words
A method comprising the steps of: performing an arithmetic operation on two floating point operands to produce a floating point result; generating a first set of condition codes comprising: Zero (Z) if the result is a floating point zero; Negative (N) if the result is negative; Not a Number (NaN) if the result is not a floating point number; and Infinity (I) if the result is a floating point logically combining the first set of condition codes to produce a second set of condition codes comprising: Equal (EQ) if the result is equal to zero; Greater Than (GT) if the result is greater than zero; Less Than (LT) if the rsult is less than zero; and Unordered (UN) if the result is not a floating point number.
Claim 3
Dependent Claim 30 words
The method set forth in claim 1 further comprising the step of: using the second set of condition codes to answer one or more of a plurality of conditional predicates.
Claim 4
Dependent Claim 22 words
The method set forth in claim 1 wherein the condition code Equal (EQ) is logically equal to the condition code Zero (Z).
Claim 5
Dependent Claim 38 words
The method set forth in claim 1 wherein the condition code Greater Than (GT) is logically equal to the logical NOT of the logical OR of the condition codes Negative (N), Not a Number (NaN) and Zero (Z).
Claim 6
Dependent Claim 46 words
The method set forth in claim 1 wherein the condition code Less Than (LT) is logically equal to the logical AND of the condition code Negative (N) and the logical NOT of the logical OR of the condition codes Not a Number (NaN) and Zero (Z).
Claim 7
Dependent Claim 24 words
The method set forth in claim 1 wherein the condition code Unordered (UN) is logically equal to the condition code Not a Number (NaN).
Claim 8
Dependent Claim 147 words
A numeric data processor comprising: first means for performing an arithmetic operation on two floating point operands to produce a floating point result; second means, coupled to said first means, for generating a first set of condition codes comprising: Zero (Z) if the result is a floating point zero; Negative (N) if the result is negative; Not a Number (NaN) if the result is not a floating point number; and Infinity (I) if the result is a floating point infinity; and third means, coupled to said second means, for logically combining the first set of condition codes to produce a second set of condition codes comprising: Equal (EQ) if the result is equal to zero; Greater Than (GT) if the result is greater than zero; Less Than (LT) if the result is less than zero; and Unordered (UN) if the result is not a floating point number.
Claim 9
Dependent Claim 147 words
A numeric data processor comprising: first means for performing an arithmetic operation on two floating point operands to produce a floating point result; second means, coupled to said first means, for generating a first set of condition codes comprising: Zero (Z) if the result is a floating point zero; Negative (N) if the result is negative; Not a Number (NaN) if the result is not a floating point number; and Infinity (I) if the result is a floating point infinity; and third means, coupled to said second means, for logically combining the first set of condition codes to produce a second set of condition codes comprising: Equal (EQ) if the result is equal to zero; Greater Than (GT) if the result is greater than zero; Less Than (LT) if the result is less than zero; and Unordered (UN) if the result is not a floating point number.
Claim 10
Dependent Claim 33 words
A numerical data processor as set forth in claim 7 further comprising: fourth means for using the second set of condition codes to answer one or more of a plurality of conditional predicates.
Claim 11
Independent Claim 208 words
A method comprising the steps of: performing an arithmetic operation on two floating point operands to produce a floating point result; generating a first set of condition codes comprising: the sign of the result (SIGN -- FLAG); the explicit integer part bit of the significand of the result (N -- OUT); the logical OR of all of the fraction bits of the significand of the result (C -- OUT); and an indication (MAXEXP) if the exponent of the result is equal to the maximum allowable value +1; logically combining the first set of condition codes to produce a second set of condition codes comprising: Zero (Z) indicating that the result is a floating point zero; Negative (N) indicating that the result is negative; Not a Number (NaN) indicating that the result is not a floating point number; and Infinity (I) indicating that the result is a floating point infinity; and logically combining the second set of condition codes to produce a third set of condition codes comprising: Equal (EQ) if the result is equal to zero; Greater Than (GT) if the result is greater than zero; Less Than (LT) if the result is less than zero; and Unordered (UN) if the result si not a floating point number.
Claim 12
Independent Claim 208 words
A method comprising the steps of: performing an arithmetic operation on two floating point operands to produce a floating point result; generating a first set of condition codes comprising: the sign of the result (SIGN -- FLAG); the explicit integer part bit of the significand of the result (N -- OUT); the logical OR of all of the fraction bits of the significand of the result (C -- OUT); and an indication (MAXEXP) if the exponent of the result is equal to the maximum allowable value +1; logically combining the first set of condition codes to produce a second set of condition codes comprising: Zero (Z) indicating that the result is a floating point zero; Negative (N) indicating that the result is negative; Not a Number (NaN) indicating that the result is not a floating point number; and Infinity (I) indicating that the result is a floating point infinity; and logically combining the second set of condition codes to produce a third set of condition codes comprising: Equal (EQ) if the result is equal to zero; Greater Than (GT) if the result is greater than zero; Less Than (LT) if the result is less than zero; and Unordered (UN) if the result si not a floating point number.
Claim 13
Dependent Claim 74 words
The method set forth in claim 9 wherein: Zero (Z) is the logical AND of the logical NOT of MAXEXP, the logical NOT of C -- OUT and the logical NOT of N -- OUT; Negative (N) is logically equal to SIGN -- FLAG; Not a Number (NaN) is the logical AND of MAXEXP and C OUT; and Infinity (I) is the logical AND of MAXEXP and the logical NOT of C -- OUT.
Claim 14
Dependent Claim 80 words
The method set forth in claim 10 wherein: Equal (EQ) is logically equal to Zero (Z); Greater Than (GT) is logically equal to the logical NOT of the logical OR of Negative (N), Not a Number (NaN) and Zero (Z); Less Than (LT) is logically equal to the logical AND of Negative (N) and the logical NOT of the logical OR of Not a Number (NaN) and Zero (Z); and Unordered (UN) is logically equal to Not a Number (NaN).
Claim 15
Independent Claim 123 words
A method comprising the steps of: performing a move operation on a floating point operand; generating a first set of condition codes comprising: Zero (Z) if the operand is a floating point zero; Negative (N) if the operand is negative; Not a Number (NaN) if the operand is not a floating point number; and Infinity (I) if the operand is a floating point infinity; and logically combining the first set of condition codes to produce a second set of condition codes comprising: Equal (EQ) if the operand is equal to zero; Greater Than (GT) if the operand is greater than zero; Less Than (LT) if the operand is less than zero; and Unordered (UN) if the operand is not a floating point number.
Claim 16
Independent Claim 123 words
A method comprising the steps of: performing a move operation on a floating point operand; generating a first set of condition codes comprising: Zero (Z) if the operand is a floating point zero; Negative (N) if the operand is negative; Not a Number (NaN) if the operand is not a floating point number; and Infinity (I) if the operand is a floating point infinity; and logically combining the first set of condition codes to produce a second set of condition codes comprising: Equal (EQ) if the operand is equal to zero; Greater Than (GT) if the operand is greater than zero; Less Than (LT) if the operand is less than zero; and Unordered (UN) if the operand is not a floating point number.
Claim 17
Dependent Claim 80 words
The method set forth in claim 12 wherein: Equal (EQ) is logically equal to Zero (Z); Greater Than (GT) is logically equal to the logical NOT of the logical OR of Negative (N), Not a Number (NaN) and Zero (Z); Less Than (LT) is logically equal to the logical AND of Negative (N) and the logical NOT of the logical OR of Not a Number (NaN) and Zero (Z); and Unordered (UN) is logically equal to Not a Number (NaN).
Claim 18
Independent Claim 202 words
A method comprising the steps of: performing a move operation on a floating point operand; generating a first set of condition codes comprising: the sign of the operand (SIGN -- FLAG); the explicit integer part bit of the significand of the operand (N -- OUT); the logical OR of all of the fraction bits of the significand of the operand (C -- OUT); and an indication (MAXEXP) if the exponent of the operand is equal to the maximum allowable value +1; logically combining the first set of condition codes to produce a second set of condition codes comprising: Zero (Z) indicating that the operand is a floating point zero; Negative (N) indicating that the operand is negative; Not a Number (NaN) indicating that the operand is not a floating point number; and Infinity (I) indicating that the operand is a floating point infinity; and logically combining the second set of condition codes to produce a third set of condition codes comprising: Equal (EQ) if the operand is equal to zero; Greater Than (GT) if the operand is greater than zero; Less Than (LT) if the operand is less than zero; and Unordered (UN) if the operand is not a floating point number.
Claim 19
Independent Claim 202 words
A method comprising the steps of: performing a move operation on a floating point operand; generating a first set of condition codes comprising: the sign of the operand (SIGN -- FLAG); the explicit integer part bit of the significand of the operand (N -- OUT); the logical OR of all of the fraction bits of the significand of the operand (C -- OUT); and an indication (MAXEXP) if the exponent of the operand is equal to the maximum allowable value +1; logically combining the first set of condition codes to produce a second set of condition codes comprising: Zero (Z) indicating that the operand is a floating point zero; Negative (N) indicating that the operand is negative; Not a Number (NaN) indicating that the operand is not a floating point number; and Infinity (I) indicating that the operand is a floating point infinity; and logically combining the second set of condition codes to produce a third set of condition codes comprising: Equal (EQ) if the operand is equal to zero; Greater Than (GT) if the operand is greater than zero; Less Than (LT) if the operand is less than zero; and Unordered (UN) if the operand is not a floating point number.
Claim 20
Dependent Claim 75 words
The method set forth in claim 14 wherein: Zero (Z) is the logical AND of the logical NOT of MAXEXP, the logical NOT of C -- OUT and the logical NOT of N -- OUT; Negative (N) is logically equal to SIGN -- FLAG; Not a Number (NaN) is the logical AND of MAXEXP and C -- OUT; and Infinity (I) is the logical AND of MAXEXP and the logical NOT of C -- OUT.
Claim 21
Dependent Claim 80 words
The method set forth in claim 15 wherein: Equal (EQ) is logically equal to Zero (Z); Greater Than (GT) is logically equal to the logical NOT of the logical OR of Negative (N), Not a Number (NaN) and Zero (Z); Less Than (LT) is logically equal to the logical AND of Negative (N) and the logical NOT of the logical OR of Not a Number (NaN) and Zero (Z); and Unordered (UN) is logically equal to Not a Number (NaN).
Claim 22
Independent Claim 130 words
A method comprising the steps of: generating a first set of condition codes indicative of the data type of a floating point operand, the first set of condition codes comprising: Zero (Z) if the operand is a floating point zero; Negative (N) if the operand is negative; Not a Number (NaN) if the operand is not a floating point number; and Infinity (I) if the operand is a floating point infinity; and logically combining the first set of condition codes to produce a second set of condition codes comprising: Equal (EQ) if the operand is equal to zero; Greater Than (GT) if the operand is greater than zero; Less Than (LT) if the operand is less than zero; and Unordered (UN) if the operand is not a floating point number.
Claim 23
Independent Claim 130 words
A method comprising the steps of: generating a first set of condition codes indicative of the data type of a floating point operand, the first set of condition codes comprising: Zero (Z) if the operand is a floating point zero; Negative (N) if the operand is negative; Not a Number (NaN) if the operand is not a floating point number; and Infinity (I) if the operand is a floating point infinity; and logically combining the first set of condition codes to produce a second set of condition codes comprising: Equal (EQ) if the operand is equal to zero; Greater Than (GT) if the operand is greater than zero; Less Than (LT) if the operand is less than zero; and Unordered (UN) if the operand is not a floating point number.
Claim 24
Dependent Claim 30 words
The method set forth in claim 17 further comprising the step of: using the second set of condition codes to answer one or more of a plurality of conditional predicates.
Claim 25
Independent Claim 209 words
A method comprising the steps of: generating a first set of condition codes indicative of the data type of a floating point operand, the first set of condition codes comprising: the sign of the operand (SIGN -- FLAG); the explicit integer part bit of the significand of the operand (N -- OUT); the logical OR of all of the fraction bits of the significand of the operand (C -- OUT); and an indication (MAXEXP) if the exponent of the operand is equal to the maximum allowable value +1; logically combining the first set of condition codes to produce a second set of condition codes comprising: Zero (Z) indicating that the operand is a floating point zero; Negative (N) indicating that the operand is negative; Not a Number (NaN) indicating that the operand is not a floating point number; and Infinity (I) indicating that the operand is a floating point infinity; and logically combining the second set of condition codes to produce a third set of condition codes comprising: Equal (EQ) if the operand is equal to zero; Greater Than (GT) if the operand is greater than zero; Less Than (LT) if the operand is less than zero; and Unordered (UN) if the operand is not a floating point number.
Claim 26
Independent Claim 209 words
A method comprising the steps of: generating a first set of condition codes indicative of the data type of a floating point operand, the first set of condition codes comprising: the sign of the operand (SIGN -- FLAG); the explicit integer part bit of the significand of the operand (N -- OUT); the logical OR of all of the fraction bits of the significand of the operand (C -- OUT); and an indication (MAXEXP) if the exponent of the operand is equal to the maximum allowable value +1; logically combining the first set of condition codes to produce a second set of condition codes comprising: Zero (Z) indicating that the operand is a floating point zero; Negative (N) indicating that the operand is negative; Not a Number (NaN) indicating that the operand is not a floating point number; and Infinity (I) indicating that the operand is a floating point infinity; and logically combining the second set of condition codes to produce a third set of condition codes comprising: Equal (EQ) if the operand is equal to zero; Greater Than (GT) if the operand is greater than zero; Less Than (LT) if the operand is less than zero; and Unordered (UN) if the operand is not a floating point number.
Claim 27
Dependent Claim 30 words
The method set forth in claim 19 further comprising the step of: using the third set of condition codes to answer one or more of a plurality of conditional predicates.

References Cited (Backward Citations)

US2965297A Cited
US3434109A Cited
US3825895A Cited
US4429370A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1990-07-27 1991-01-26 1991-07-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1994-07-27 1995-01-26 1995-07-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1998-07-27 1999-01-26 1999-07-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag