### Arithmetic Pipeline

Arithmetic Pipeline units are usually found in most of the computers. They are used to implement floating-point operations, multiplication of fixed-point numbers, and similar computations encountered in scientific problems.  A pipeline multiplier is essentially an array multiplier with special adders designed to minimize the carry propagation time through the partial products.
Floating-point operations are easily decomposed into suboperations. As in the following example of a pipeline unit for floating point addition and subtraction. The inputs supplied to the floating-point adder pipeline are two normalized floating-point binary numbers.

X = A x 2a
Y = B x 2b

A and B are two fractions that represent the mantissas and a and b are the exponents. The floating-point addition and subtraction can be done in four segments, as shown in the below figure.

Figure : Pipeline for Floating-Point addition and Subtraction

At the above figure the registers labeled R are kept between the segments to store intermediate results. The suboperations that are performed in the four segments of pipelined unite are:

1. Compare the exponents
2. Align the mantissas
3. Add or subtract the mantissas
4. Normalize the result

The exponents are compared by subtracting them to findout their difference. The larger exponent is selected as the exponent of the result. The exponent difference find out how many times the mantissa present with the smaller exponent must be shifted to the right. This generate an alignment of the two mantissas. Here, the shift must be built as a combinational circuit to minimize the shift time. The two mantissas are sum or difference in segment 3, and the result normalized in segment 4. When an overflow takes places, the mantissa of the sum or difference is shifted right and the exponent incremented by one. If an underflow takes places the number of leading zeros in the mantissa find out the number of left shifts in the mantissa and the number that must be subtracted from the exponent.

Next Topic :