IP Library › Granted Patent US 10,481,908
Granted Patent B2
US 10,481,908 · App. 15/631,052 · Granted Nov 19, 2019

Predicted null updated

Inventors: Michael K. Gschwind (Chappaqua, NY); Valentina Salapura (Chappaqua, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/3001G06F9/30014G06F9/30076G06F9/30101G06F9/30189G06F9/3846G06F9/3861
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 10,481,908
App. No.
15/631,052
Granted
Nov 19, 2019
Kind
B2
Abstract

Setting or updating of floating point controls is managed. Floating point controls include controls used for floating point operations, such as rounding mode and/or other controls. Further, floating point controls include status associated with floating point operations, such as floating point exceptions and/or others. The management of the floating point controls includes efficiently updating the controls, while reducing costs associated therewith.

Claims (32)

1. A computer program product for facilitating processing within a computing environment, the computer program product comprising:

a computer readable storage medium readable by a processing circuit and storing instructions for performing a method comprising:

obtaining a request to set a floating point control;

based on obtaining the request, performing a read and set floating point state with predicted fast null update operation, the predicted fast null update operation predicting whether to invoke a floating point status update with a fast null update operation;

invoking, based on predicting that the floating point status update with the fast null update operation is to be invoked, the floating point status update with the fast null update operation; and

performing the invoked floating point status update with the fast null update operation, the performing comprising:

determining whether there is a predicted null update of the floating point control, the determining using predictor logic;

determining, at least in part, based on there being a predicted null update of the floating point control as indicated by the predictor logic, whether a value of the floating point control indicated by the request is equal to a value of the floating point control stored in a selected location; and

based on determining the value of the floating point control indicated by the request is equal to the value of the floating point control stored in the selected location, updating the predictor logic to indicate that the predicted null update is correct and that a null update of the floating point control has been successful, without setting the floating point control pursuant to the request to set the floating point control.

2. The computer program product of claim 1 , wherein based on determining that the value of the floating point control indicated by the request is equal to the value of the floating point control stored in the selected location, serialization of users of the floating point control is suppressed.

3. The computer program product of claim 1 , wherein the method further comprises setting the floating point control, based on determining that the value of the floating point control indicated by the request is not equal to the value of the floating point control stored in the selected location.

4. The computer program product of claim 1 , wherein the method further comprises providing a speculative result of the request in out-of-order execution, based on obtaining the request, enabling other instructions to use the speculative result.

5. The computer program product of claim 4 , wherein the method further comprises flushing one or more instructions in an instruction pipeline processing the request, based on the speculative result being incorrect and determining that the value of the floating point control indicated by the request is unequal to the value of the floating point control stored in the selected location.

6. The computer program product of claim 5 , wherein the method further comprises setting the floating point control, based on flushing the one or more instructions.

7. The computer program product of claim 5 , wherein the flushing the one or more instructions includes flushing one or more instructions that use the floating point control, wherein instructions that do not use the floating point control continue to be processed in the instruction pipeline.

8. The computer program product of claim 1 , wherein the selected location comprises a floating point control register.

9. The computer program product of claim 1 , wherein the obtaining the request comprises obtaining an instruction that indicates setting of the floating point control.

10. The computer program product of claim 1 , wherein the floating point control comprises a rounding mode.

11. The computer program product of claim 1 , wherein the floating point control comprises a floating point exception.

12. A computer system for facilitating processing within a computing environment, the computer system comprising:

a memory; and

a processor in communication with the memory, wherein the computer system is configured to perform a method, said method comprising:

obtaining a request to set a floating point control;

based on obtaining the request, performing a read and set floating point state with predicted fast null update operation, the predicted fast null update operation predicting whether to invoke a floating point status update with a fast null update operation;

invoking, based on predicting that the floating point status update with the fast null update operation is to be invoked, the floating point status update with the fast null update operation; and

performing the invoked floating point status update with the fast null update operation, the performing comprising:

determining whether there is a predicted null update of the floating point control, the determining using predictor logic;

determining, at least in part, based on there being a predicted null update of the floating point control as indicated by the predictor logic, whether a value of the floating point control indicated by the request is equal to a value of the floating point control stored in a selected location; and

based on determining the value of the floating point control indicated by the request is equal to the value of the floating point control stored in the selected location, updating the predictor logic to indicate that the predicted null update is correct and that a null update of the floating point control has been successful, without setting the floating point control pursuant to the request to set the floating point control.

13. The computer system of claim 12 , wherein based on determining that the value of the floating point control indicated by the request is equal to the value of the floating point control stored in the selected location, serialization of users of the floating point control is suppressed.

14. The computer system of claim 12 , wherein the method further comprises setting the floating point control, based on determining that the value of the floating point control indicated by the request is not equal to the value of the floating point control stored in the selected location.

15. The computer system of claim 12 , wherein the method further comprises providing a speculative result of the request in out-of-order execution, based on obtaining the request, enabling other instructions to use the speculative result.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2017
From: GSCHWIND, MICHAEL K.; SALAPURA, VALENTINA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042797/0113 →
Continuity (1)
Related Publication 20180373528A1 · Dec 27, 2018