Floating Point Fused Multiply-Add with Scaling Precision

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional implementations of floating point operations, such as division and square root computations, face challenges with corner cases like underflows, overflows, and precision issues due to the staging of FMA and scaling operations, which can lead to erroneous results and loss of accuracy.

Innovation Solution

Implementing a floating point fused multiply and add with scaling (FMASc) operation in hardware, where both FMA and scaling are performed in parallel as an integrated operation, and rounding is deferred until the final result is computed, avoiding the pitfalls of sequential staging.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If FMA and scaling operations are staged sequentially in conventional floating point processors, then the implementation is simpler and uses existing hardware, but the intermediate FMA result may overflow/underflow or become subnormal, leading to loss of precision and accuracy in the final result

Engineering Contradiction:
ImproveprecisionVSAvoidcomplexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent merges the FMA operation and scaling operation into a single integrated hardware unit. The FMA unit computes the fused multiply-accumulate result, and the scaling unit immediately applies the scaling factor to this intermediate result without it being stored or rounded. This integration ensures that the full precision of the FMA result is preserved through the scaling operation, avoiding the precision loss that would occur if the FMA result were rounded before scaling in a sequential implementation.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If FMA and scaling are performed as separate sequential operations, then hardware resource usage is lower, but the staged implementation introduces additional overflow/underflow risks and precision loss

Engineering Contradiction:
ImprovereliabilityVSAvoidenergy
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent combines the FMA and scaling operations into a single integrated hardware unit that processes them in one computational pass. The FMA unit generates an intermediate result that is immediately fed into the scaling unit, which applies the scaling factor 2^N to produce the final result. This merging eliminates the need for separate sequential execution stages, reducing the overall energy consumption while improving reliability by preventing intermediate overflow/underflow conditions.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of manufacture

If conventional staged FMA and scaling operations are used, then hardware implementation is more straightforward, but corner cases like underflows, overflows, and subnormal results cause erroneous computations

Engineering Contradiction:
Improveease of manufactureVSAvoidreliability
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent integrates the FMA and scaling operations into a single hardware unit with coordinated control logic. The FMA unit computes the fused multiply-accumulate result, and the scaling unit simultaneously applies the scaling factor based on the exponent difference and scaling parameter N. This integrated design handles corner cases reliably because the scaling operation is applied to the full-precision intermediate FMA result before any rounding occurs, preventing erroneous results from underflows, overflows, or subnormal conditions that would arise in staged implementations.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9110713B2Microarchitecture for floating point fused multiply-add with exponent scaling
Publication Date: 2015.08.18 QUALCOMM INC
  • US9110713B2 patent drawing
  • US9110713B2 patent drawing
  • US9110713B2 patent drawing

AI summary

Systems and methods for implementing a floating point fused multiply and accumulate with scaling (FMASc) operation. A floating point unit receives input multiplier, multiplicand, addend, and scaling factor operands. A multiplier block is configured to multiply mantissas of the multiplier and multiplicand to generate an intermediate product. Alignment logic is configured to pre-align the addend with the intermediate product based on the scaling factor and exponents of the addend, multiplier, and multiplicand, and accumulation logic is configured to add or subtract a mantissa of the pre-aligned addend with the intermediate product to obtain a result of the floating point unit. Normalization and rounding are performed on the result, avoiding rounding during intermediate stages.