# US 10,481,908 B2 · Predicted null updated

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,481,908 B2
- Document ID: US10481908B2
- Status: Granted
- Kind: B2
- Application number: 15/631,052
- Filed: 2017-06-23
- Published: 2018-12-27
- Granted: 2019-11-19
- Earliest claimed: 2017-06-23
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Michael K. Gschwind; Valentina Salapura
- Web page: https://patentgrep.com/patent/US10481908B2

## CPC

- G06F 9/3001: {Arithmetic instructions}
- G06F 9/30014: {with variable precision}
- G06F 9/30076: {to perform miscellaneous control operations, e.g. NOP}
- G06F 9/30101: {Special purpose registers}
- G06F 9/30189: {according to execution mode, e.g. mode flag}
- G06F 9/3846: {using static prediction, e.g. branch taken strategy}
- G06F 9/3861: {Recovery, e.g. branch miss-prediction, exception handling (error detection or correction G06F11/00)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 4)

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.

### Claim 6 (depends on 5)

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.

### Claim 7 (depends on 5)

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.

### Claim 8 (depends on 1)

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

### Claim 9 (depends on 1)

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

### Claim 10 (depends on 1)

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

### Claim 11 (depends on 1)

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

### Claim 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.

### Claim 13 (depends on 12)

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.

### Claim 14 (depends on 12)

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.

### Claim 15 (depends on 12)

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.
