Floating-Point Unit Normalization via Carry-Save Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for performing fused-multiply-add operations on 128-bit wide operands are inefficient, leading to slower execution and reduced accuracy in floating-point arithmetic, particularly in Big Data Analytics and high-performance applications, where numerical stability issues and convergence rates are critical.
Innovation Solution
A floating-point unit is designed to compute a 226-bit carry-save product, separating it into high and low parts, and performing iterative wide additions to generate an unrounded sum, with pre-alignment of intermediate results to fit on fixed-length shifters, enhancing normalization and rounding processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional methods are used for fused-multiply-add operations on 128-bit operands, then device complexity is reduced, but execution speed and accuracy deteriorate
Solution Approach 1:
The patent divides the 226-bit carry-save product into high part and low part, and further segments the addition process into iterative wide additions. This segmentation allows the use of narrower fixed-length shifters instead of requiring a single wide shifter, improving execution speed while managing device complexity through modular processing stages
Solution Approach 2:
The patent transforms the normalization problem from a single-wide-operation dimension to a multi-dimensional approach by performing iterative wide additions on segmented parts (high and low parts separately) and then combining results. This dimensional transformation enables the use of fixed-length shifters with pre-alignment, achieving faster execution without proportionally increasing hardware complexity
2Measurement precision
If wide shifters and leading zero anticipation are used, then normalization accuracy is improved, but device complexity and execution time increase
Solution Approach 1:
The patent performs pre-alignment of intermediate results to fit on fixed-length shifters before the actual normalization process. This preliminary action prepares the data in advance, eliminating the need for complex leading zero anticipation logic during execution, thereby maintaining normalization accuracy while reducing execution time
Solution Approach 2:
The patent extracts and handles the alignment requirement separately through pre-alignment of segmented parts, removing the need for complex leading zero anticipation mechanisms. By taking out the alignment problem and solving it in advance, the main normalization process can proceed faster with simpler hardware
3Productivity
If 128-bit floating-point operations are emulated via software, then hardware complexity is reduced, but execution speed deteriorates significantly
Solution Approach 1:
The patent introduces carry-save representation as an intermediary form between multiplication and addition operations. This intermediary representation allows partial results to be accumulated without immediate normalization, enabling faster iterative processing of 128-bit operations in hardware while maintaining accuracy, thus bridging the gap between software emulation correctness and hardware execution speed
Data Source
AI summary
A unit operates on a sum term and a carry term separated into a high part and a low part of a product and performs a method that includes iteratively computing a carry save product and separating the carry save product into the high part and the low part: an intermediate product. The unit generates an intermediate wide result by performing a wide addition of the intermediate product to generate an unrounded sum for the high part (i.e., a fused-multiply-add high part) and the low part (i.e., a fused-multiply-add high part). The unit pre-aligns the intermediate wide result on two fixed length shifters such that the fused-multiply-add high part and the fused-multiply-add low part are pre-aligned to each fit on one shifter of the two fixed length shifters.


