Triple adder
A data processing apparatus is provided, which includes addition circuitry that performs a calculation of a sum of a first operand and a second operand. The addition circuitry produces an intermediate data prior to the calculation completing. Determination circuitry uses the intermediate data to produce the sum of the first operand and the second operand plus 1. Further determination circuitry configured to use the intermediate data to produce the sum of the first operand and the second operand plus 2.
1 . A data processing apparatus comprising:
addition circuitry configured to perform a calculation of a sum of a first operand and a second operand, wherein the addition circuitry produces an intermediate data prior to the calculation completing;
determination circuitry configured to use the intermediate data to produce the sum of the first operand and the second operand plus 1; and
further determination circuitry configured to use the intermediate data to produce the sum of the first operand and the second operand plus 2
the sum of the first operand and the second operand, the sum of the first operand and the second operand plus 1, and the sum of the first operand and the second operand plus 2 are produced using no more than one adder, for a same input.
2 . The data processing apparatus according to claim 1 , wherein
the sum of the first operand and the second operand, the sum of the first operand and the second operand plus 1, and the sum of the first operand and the second operand plus 2, are all produced within a same clock cycle.
3 . The data processing apparatus according to claim 1 , wherein
the intermediate data comprises a most significant n−1 bits of the sum of the first operand and the second operand plus 2, wherein n is equal to a number of bits in the sum of the first operand and the second operand.
4 . The data processing apparatus according to claim 3 , wherein
the addition circuitry is configured to determine the most significant n−1 bits of the sum of the first operand and the second operand plus 2 without calculating the least significant bit of the sum of the first operand and the second operand plus 2.
5 . The data processing apparatus according to claim 3 , wherein
the addition circuitry comprises a dual adder configured to provide a most significant n−1 bits of the sum of the first operand and the second operand and the most significant n−1 bits of the sum of the first operand and the second operand plus 2.
6 . The data processing apparatus according to claim 5 , wherein
the addition circuitry is configured to provide the intermediate data to the determination circuitry and the further determination circuitry before a least significant bit of the sum of the first operand and the second operand plus 1 is determined.
7 . The data processing apparatus according to claim 3 , comprising:
one or more half adders configured to perform a half-add operation on the first operand and the second operand to produce n bits of an s-value and n bits of a c-value, wherein
n−1 most significant bits of the s-value and n−1 least significant bits of the c-value are provided to the addition circuitry to provide the most significant n−1 bits of the sum of the first operand and the second operand plus 2.
8 . The data processing apparatus according to claim 7 , wherein
the addition circuitry is configured to combine the intermediate data with a least significant bit of the s-value to produce the sum of the first operand and the second operand.
9 . The data processing apparatus according to claim 7 , wherein
the further determination circuitry is configured to combine the intermediate data with a least significant bit of the s-value to produce the sum of the first operand and the second operand plus 2.
10 . The data processing apparatus according to claim 7 , wherein
the determination circuitry is configured to combine the intermediate data with an inversion of the least significant bit of the s-value to produce the sum of the first operand and the second operand plus 1.
11 . The data processing apparatus according to claim 1 , wherein
the addition circuitry comprises determination circuitry to determine, for each pair of (first operand, second operand) bits:
a generate bit to indicate whether every preceding pair of (first operand, second operand) bits generates an outgoing carry, and
a propagate bit to indicate whether that pair of (first operand, second operand) bits propagates an incoming carry; and
the intermediate data comprises the generate bit for the each pair of (first operand, second operand) bits.
12 . The data processing apparatus according to claim 11 , wherein
the addition circuitry is configured to calculate a consume bit to indicate whether any preceding pair of (first operand, second operand) bits consumes the incoming carry; and
the further determination circuitry is configured to calculate a further consume bit to indicate whether any preceding pair of (first operand, second operand) bits consumes the incoming carry or a further incoming carry.
13 . The data processing apparatus according to claim 12 , wherein
the further determination circuitry is configured to calculate the further consume bit using a further generate bit to indicate whether every preceding pair of (first operand, second operand) bits generates an outgoing carry and whether a current pair of (first operand, second operand) bits does not generate an outgoing carry.
14 . The data processing apparatus according to claim 13 , wherein
the further determination circuitry is configured to calculate the further consume bit using a first prefix tree and to calculate the further generate bit using a second prefix tree, different to the first prefix tree.
15 . The data processing apparatus according to claim 13 , wherein
the further determination circuitry is configured to calculate the further consume bit and to calculate the further generate bit using a single prefix tree.
16 . The data processing apparatus according to claim 1 , wherein
the addition circuitry comprises a dual adder.
17 . A method of data processing comprising:
performing a calculation of a sum of a first operand and a second operand, wherein the addition circuitry produces an intermediate data prior to the calculation completing;
using the intermediate data to produce the sum of the first operand and the second operand plus 1; and
using the intermediate data to produce the sum of the first operand and the second operand plus 2, wherein
the sum of the first operand and the second operand, the sum of the first operand and the second operand plus 1, and the sum of the first operand and the second operand plus 2 are produced using no more than one adder, for a same input.
18 . A non-transitory computer-readable medium to store computer-readable code for fabrication of a data processing apparatus comprising:
addition circuitry configured to perform a calculation of a sum of a first operand and a second operand, wherein the addition circuitry produces an intermediate data prior to the calculation completing;
determination circuitry configured to use the intermediate data to produce the sum of the first operand and the second operand plus 1; and
further determination circuitry configured to use the intermediate data to produce the sum of the first operand and the second operand plus 2,
the sum of the first operand and the second operand, the sum of the first operand and the second operand plus 1, and the sum of the first operand and the second operand plus 2 are produced using no more than one adder, for a same input.