Leading-Zero Anticipation for Faster Floating-Point Normalization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing, particularly with floating point numbers, subtracting one number from another can result in a very small number with many leading zeros, leading to stalls while calculating the difference for normalization, especially in fused multiply-add operations, as existing methods often fail to generate masks quickly enough to avoid these delays.

Innovation Solution

A data processing apparatus and method that generates an intermediate value predicting the number of leading zeros in the difference between two floating point numbers, allowing for simultaneous or prior mask generation, which speeds up the availability of masks during calculations, thereby preventing stalls and enabling quicker normalization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the number of leading zeros is calculated after the difference is calculated, then the calculation is simpler, but it causes a stall while waiting for the leading zero count to normalize the result

Engineering Contradiction:
Improvecalculation speedVSAvoidstall time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent generates an intermediate value that predicts the number of leading zeros in the difference before the actual difference calculation is completed. This intermediate value is used to generate masks in advance, so that when the difference calculation finishes, the masks are already ready and no stall occurs. The prediction is made preliminary based on available information (exponents and significand bits) before the full subtraction operation completes.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If masks are generated using the intermediate value, then masks are available faster, but the intermediate value must be generated first which adds complexity

Engineering Contradiction:
Improvemask generation timeVSAvoidcircuit complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent segments the mask generation process into two parts: (1) generating an intermediate value from partial information (exponents and most significant bits of significands) before the full difference calculation, and (2) using this intermediate value to generate masks. This segmentation allows mask generation to start earlier in parallel with the difference calculation, reducing overall time while keeping each segment relatively simple.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The intermediate value acts as an intermediary between the input floating-point numbers and the final masks. It is a simplified representation that captures enough information to predict leading zero count, enabling early mask generation without requiring the full difference calculation result. This intermediary allows the system to bypass the stall that would otherwise occur.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If the intermediate value predicts the number of leading zeros, then normalization can proceed faster, but the prediction may differ from the actual count requiring correction

Engineering Contradiction:
Improvenormalization speedVSAvoidleading zero count accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent uses feedback to correct the prediction. The intermediate value provides an initial prediction of the leading zero count, which is used to generate masks and proceed with normalization. After the actual difference calculation completes, the system compares the predicted leading zero count with the actual count and applies corrections if they differ. This feedback mechanism allows fast initial processing while ensuring accuracy through correction.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10606557B2Leading zero anticipation
Publication Date: 2020.03.31 ARM LTD
  • US10606557B2 patent drawing
  • US10606557B2 patent drawing
  • US10606557B2 patent drawing

AI summary

A data processing apparatus is provided. Intermediate value generation circuitry generates an intermediate value from a first floating point number and a second floating point number. The intermediate value includes a number of leading 0s indicative of a prediction of a number of leading 0s in a difference between absolute values of the first floating point number and the second floating point number. The prediction differs by at most one from the number of leading 0s in the difference between absolute values of the first floating point number and the second floating point number. Count circuitry counts the number of leading 0s in said intermediate value and mask generation circuitry produces one or more masks using the intermediate value. The mask generation circuitry produces the one or more masks at the same time or before the count circuitry counts the number of leading 0s in the intermediate value.