IP Library Granted Patent US 9,268,527
Granted Patent B2
US 9,268,527 · App. 13/841,630 · Granted Feb 23, 2016

Method and device for generating an exception

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,268,527
App. No.
13/841,630
Granted
Feb 23, 2016
Kind
B2
Abstract

A floating point value can represent a number or something that is not a number (NaN). A floating point value that is a NaN having data field that stores information, such as a propagation count that indicates the number of times a NaN value has been propagated through instructions. A NaN evaluation instruction can determine whether one or more operands is a NaN operand of a particular type, and if so can generate a result that is a NaN of a different type. An exception can be generated based upon the NaN of the different type being provided as a resultant.

Claims (36)

1. A method comprising:

receiving an instruction at an execution unit of a data processor; and

providing a resultant that is a NaN of a first type in response to determining during execution that a first operand of the instruction is a NaN of a second type.

2. The method of claim 1 , wherein a first portion of the first operand identifies the first operand as a NaN of the second type, and providing the resultant that is a NaN of the first type includes generating the resultant by modifying only the first portion of the first operand.

3. The method of claim 2 , wherein the first portion is a specific single-bit location.

4. The method of claim 1 , wherein, NaNs of the second type, when resultants, do not result an exception being generated, and NaNs of the first type, when resultants, do result in an exception being generated.

5. The method of claim 1 , wherein:

the first operand comprises a data value at a first location; and

the resultant comprises the data value at a corresponding first location.

6. The method of claim 1 , wherein:

the first operand comprises a first data value at a first location; and

the resultant comprises a second data value at a corresponding first location that is computed as a function of the first data value that indicates a number of times a NaN operand has been propagated through an instruction.

7. The method of claim 1 , wherein the first operand is one of a plurality of operands of the instruction, and the resultant further comprises a data field that indicates that first operand was the NaN of the second type.

8. The method of claim 1 , wherein:

the first operand further comprises a first data value at a first location;

the instruction further comprises a second floating-point operand that is a NaN of the second type having a second data value at a corresponding first location; and

providing the resultant further comprises providing a resultant data value having a value that is based on a larger of the first data value and the second data value.

9. The method of claim 1 , further comprising:

in response to determining during execution that a second operand of the instruction is a NaN of the second type, providing a second resultant that is a NaN of the first type.

10. A processing device comprising:

a fetch unit to fetch an instruction; and

an execution unit to provide a NaN resultant of a first type in response to determining that a first operand of the instruction is a NaN of a second type.

11. The processing device of claim 10 , wherein the instruction is a floating-point instruction, the NaN of a first type is a NaN that results in an exception when generated, and the NaN of the second type is a NaN that does not result in an exception when generated.

12. The processing device of claim 10 , wherein the instruction includes a first portion that identifies the first operand as a NaN of the second type, and providing the resultant includes modifying the first portion of the first operand to generate a second operand of the first type, and providing the second operand as the resultant.

13. The device of claim 12 , wherein the first portion is a single bit location, wherein the modified operand varies from the first operand by a single bit.

14. The device of claim 10 , wherein the fetch unit is further to fetch a second instruction; and the execution unit is further to provide a non-NaN resultant in response to determining that a second operand of the second instruction is a NaN of the second type.

15. The device of claim 10 , wherein the operand comprises a first data value at a first location, and the resultant comprises a second data value at the first location, the second data value computed by incrementing the first data value.

16. The device of claim 10 , wherein the execution unit is further to provide a resultant that indicates which operand of the instruction, of a plurality of operands, is a NaN in response to exactly one operand being a NaN.

17. The device of claim 10 , wherein the execution unit is further to provide a resultant that indicates that all operands of the instruction are NaNs.

18. A method comprising:

receiving a first instruction at an execution unit of a data processor;

based on the instruction, providing a first floating-point NaN resultant that is a NaN of a type that does not cause an exception to be generated;

receiving a second instruction at the execution unit having the floating point NaN resultant as an operand, and

during execution of the second instruction, generating an exception event in response to determining that the operand is the floating-point NaN of the type that does not cause an exception to be generated.

19. The method of claim 18 , wherein execution of the second instruction does not generate a floating-point NaN resultant.

20. The method of claim 18 , wherein execution of the second instruction generates a floating-point NaN resultant that is of a type that causes the exception to be generated.

Assignments (22)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 5, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041260/0850 →
MERGER Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040652/0241 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0704 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0744 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0725 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 030445/0737 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030445/0709 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030445/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2013
From: MOYER, WILLIAM C.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 030074/0399 →