Online Alignment and Addition in Multi-Term Floating-Point Adders

Kosmas Alexandridis,Giorgos Dimitrakopoulos
2024-10-29
Abstract:Multi-term floating-point addition appears in vector dot-product computations, matrix multiplications, and other forms of floating-point data aggregation. A critical step in multi-term floating point addition is the alignment of fractions of the floating-point terms before adding them. Alignment is executed serially by identifying first the maximum of all exponents and then shifting the fraction of each term according to the difference of its exponent from the maximum one. Contrary to common practice, this work proposes a new online algorithm that splits the identification of the maximum exponent, the alignment shift for each fraction, and their addition to multiple fused incremental steps that can be computed in parallel. Each fused step is implemented by a new associative operator that allows the incremental alignment and addition for arbitrary number of operands. Experimental results show that employing the proposed align-and-add operators for the implementation of multi-term floating point adders can improve delay or save significant area and power. The achieved area and power savings range between 3%-23% and 4%-26%, respectively.
Hardware Architecture
What problem does this paper attempt to address?
This paper attempts to solve the efficiency problem when aligning and adding fractions in multi - term floating - point adders. Specifically, in the traditional method, when dealing with the addition of multiple floating - point numbers, it is necessary to first find the maximum exponent among all floating - point numbers, then right - shift the fractional part of each floating - point number for alignment according to the maximum exponent, and finally add the aligned fractions. This serial dependence affects the overall efficiency of the hardware. ### Main contributions of the paper 1. **Propose a new online algorithm**: - This algorithm decomposes the identification of the maximum exponent, the alignment shift of fractions, and the addition operation into multiple fused incremental steps, and these steps can be calculated in parallel. - Each fused step is implemented by a new associative operator, allowing incremental alignment and addition for any number of operands. 2. **Simplify the complexity**: - The experimental results show that using the newly proposed alignment and addition operators to implement multi - term floating - point adders can significantly reduce latency or save area and power consumption. - The savings in area and power consumption range from 3% - 23% and 4% - 26% respectively. ### Formula representation - The general representation form of a floating - point number is: \((-1)^s\times1.m\times2^{e - \text{bias}}\), where \(s\) is the sign bit, \(m\) is the fractional part (mantissa), \(e\) is the exponent, and \(\text{bias}\) is the bias value. - For the alignment and addition operations, the traditional formula is: \[ o_i = o_{i - 1}+m_i\gg(\lambda_N - e_i),\quad\text{where}\quad\lambda_N=\max(e_1,e_2,\ldots,e_N) \] - The newly proposed recursive relation is: \[ o'_i = o'_{i - 1}\gg(\lambda_i-\lambda_{i - 1})+m_i\gg(\lambda_i - e_i),\quad\text{where}\quad\lambda_i=\max(\lambda_{i - 1},e_i) \] In this way, this paper successfully removes the serial dependence and realizes a more efficient hardware architecture.