Floating-Point NaN Propagation Count and Evaluation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
Data Source
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.


