Floating-Point NaN Propagation Count and Evaluation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems face inefficiencies in handling NaN values, particularly in floating-point operations, as they often require checking every resultant for NaNs and handling exceptions, which can be costly in terms of system size and performance.

Innovation Solution

A floating-point format that includes a NaN propagation count and a NaN evaluation instruction that causes exceptions only for signaling NaNs, allowing code to proceed without checking every resultant, and incrementing the count for each NaN propagation, thereby optimizing handling of NaNs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If every NaN resultant is checked and exceptions are handled in current data processing systems, then NaN values can be properly managed, but system size and performance are degraded due to the overhead of checking every resultant and handling exceptions

Engineering Contradiction:
ImproveNaN value managementVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the NaN checking overhead from every floating-point operation by introducing a separate NaN evaluation instruction. This allows the main computational code to proceed without inserting NaN checks after each operation, while still ensuring proper NaN handling through the dedicated evaluation instruction that can be executed periodically or selectively.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements preliminary action by having the NaN propagation count automatically incremented with each NaN resultant generation. This pre-computation of NaN tracking information eliminates the need for costly post-computation checks, as the system is already prepared with NaN status information when needed.

Inventive Principle:
Principle #10Preliminary action

2Loss of information

If NaN propagation count is incremented for each NaN resultant, then tracking of NaN values is improved, but additional processing overhead is introduced

Engineering Contradiction:
ImproveNaN tracking accuracyVSAvoidprocessing complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent merges the NaN propagation count increment operation with the existing floating-point operation execution pipeline. The count increment is performed as part of the normal operation flow without requiring separate processing steps, thereby improving tracking accuracy while minimizing additional processing overhead.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9244653B2Method and device for handling data values
Publication Date: 2016.01.26 NXP USA INC
  • US9244653B2 patent drawing
  • US9244653B2 patent drawing
  • US9244653B2 patent drawing

AI summary

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.