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
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)
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 |