Kumar Sambhav Pandey, Hitesh Shrimali, Dinesh Kumar B School of Computing and Electrical Engineering, Indian Institute of Technology, Mandi Neeraj Goel Department of Computer Science & Engineering, Indian Institute of Technology, Ropar Friday, June 28, 2019
Friday, June 28, 2019
In the given instance unless the carry out from the least significant bit adder is produced, more significant bits cannot Can we compute all the sum bits in be computed (Carry parrallel Ripple Adders). ? 1 Friday, June 28, 2019
Define two signals, carry generate ( 𝑗 ) and carry propagate ( 𝑞 𝑗 ), which being local to each bit position can all be computed in parallel: 𝑗 = 𝑏 𝑗 ⋅ 𝑐 𝑗 𝑞 𝑗 = 𝑏 𝑗 + 𝑐 𝑗 and one ancillary signal carry transmit ( 𝑢 𝑗 ): 𝑢 𝑗 = 𝑏 𝑗 ⨁𝑐 𝑗 With these signals, it is trivial to compute Carry at bit position i+1 ( 𝐷 𝑗+1 ) in terms of carry at bit at position i ( 𝐷 𝑗 ) as: 𝐷 𝑗+1 = 𝑗 + 𝑞 𝑗 ⋅ 𝐷 𝑗 and the sum at bit position i as: 𝑡 𝑗 = 𝑢 𝑗 ⨁𝐷 𝑗 2 Friday, June 28, 2019
The first and the last stages are purely local in nature as they operate on signals only at their respective bit positions. Hence all of the bits can be operated upon concurrently. However, there is a data dependence between 𝐷 𝑗+1 and 𝐷 𝑗 . Define a special binary prefix operator ( ∘ ) on pairs of operands as: 𝑘 𝑗 = 𝑗 + 𝑞 𝑗 ⋅ 𝑘 ∘ 𝑞 𝑘 𝑞 𝑗 𝑞 𝑗 ⋅ 𝑞 𝑘 Thus, = 𝑘 𝐷 𝑗+1 ∘ 𝐷 𝑗 𝑞 𝑗 𝑞 𝑗 1 3 Friday, June 28, 2019
Obviously, therefore, Input carry at any bit position as a function of 𝐷 𝑗𝑜 can thus be trivially computed using a sequence of the prefix operations ( ∘ )s introduced before as: = 𝑗 ∘ 𝑗−1 𝑞 𝑗−1 ⋅⋅⋅ 0 𝐷 𝑗+1 𝑞 0 ∘ 𝐷 𝑗𝑜 𝑞 𝑗 𝑞 𝑗 ⋅ 𝑞 𝑗−1 ⋅⋅⋅ 𝑞 0 1 Define group generate signal 𝑗⋅⋅⋅𝑘 and a group propagate signal 𝑞 𝑗⋅⋅⋅𝑘 as: 𝑗⋅⋅⋅𝑘 𝑘+1 𝑘 = 𝑗 ∘ 𝑗−1 𝑞 𝑗−1 ⋅⋅⋅ 𝑞 𝑘+1 ∘ 𝑞 𝑗⋅⋅⋅𝑘 𝑞 𝑘 𝑞 𝑗 Thus, = 𝑗⋅⋅⋅0 𝐷 𝑗+1 𝑞 𝑗⋅⋅⋅0 ∘ 𝐷 𝑗𝑜 𝑞 𝑗⋅⋅⋅0 1 4 Friday, June 28, 2019
Two Important Properties: • Associativity: 𝑘 𝑘 𝑗 ∘ 𝑙 𝑗 ∘ 𝑙 ∘ = ∘ 𝑞 𝑘 𝑞 𝑘 𝑞 𝑗 𝑞 𝑙 𝑞 𝑗 𝑞 𝑙 • Idempotency: 𝑘⋅⋅⋅𝑙 ℎ⋅⋅⋅𝑗 = ℎ⋅⋅⋅𝑙 ∘ 𝑞 𝑘⋅⋅⋅𝑙 𝑞 ℎ⋅⋅⋅𝑗 𝑞 ℎ⋅⋅⋅𝑙 provided, ℎ > 𝑗 , 𝑗 ≤ 𝑘 + 1 and 𝑘 > 𝑙 5 Friday, June 28, 2019
∀𝑗 ≥ 0 𝑗 , 𝑞 𝑗 and 𝑢 𝑗 are all computed in parallel. [1] A . Weinberger and J. Smith, “A logic for high -speed addition ,” Nat. Bur. Stand. Circ., vol. 591, pp. 3 – 12, 1958. 6 Friday, June 28, 2019
Following are all computed in parallel: 1⋯0 = 1 𝑞 1 ° 0 𝑞 1⋯0 𝑞 0 2⋯1 = 2 𝑞 2 ° 1 𝑞 2⋯1 𝑞 1 3⋯2 = 3 𝑞 3 ° 2 𝑞 3⋯2 𝑞 2 7 Friday, June 28, 2019
Following are all computed in parallel: 2⋯0 = 2⋯1 𝑞 2⋯1 ° 0 𝑞 2⋯0 𝑞 0 3⋯0 = 3⋯2 𝑞 3⋯2 ° 1⋯0 𝑞 3⋯0 𝑞 1⋯0 8 Friday, June 28, 2019
Following are all computed in parallel: = 0 𝐷 1 𝑞 0 ° 𝐷 𝑗𝑜 𝑞 0 1 = 1⋯0 𝐷 2 𝑞 1⋯0 ° 𝐷 𝑗𝑜 𝑞 1⋯0 1 = 2⋯0 𝐷 3 𝑞 2⋯0 ° 𝐷 𝑗𝑜 𝑞 2⋯0 1 = 3⋯0 𝐷 4 𝑞 3⋯0 ° 𝐷 𝑗𝑜 𝑞 3⋯0 1 9 Friday, June 28, 2019
∀𝑗 ≥ 0 𝑇 𝑗 are all computed in parallel. 10 Friday, June 28, 2019
A pseudo carry 𝐼 𝑗 = 𝐷 𝑗 + 𝐷 𝑗−1 is propagated in lieu of the conventional carry 𝐷 𝑗 . Conventional carries can be extracted from them by 𝐷 𝑗 = 𝑞 𝑗−1 ∙ 𝐼 𝑗 as proved below: 𝑞 𝑗−1 ∙ 𝐼 𝑗 = 𝑞 𝑗−1 ∙ 𝐷 𝑗 + 𝐷 𝑗−1 = 𝑞 𝑗−1 ∙ 𝑗−1 + 𝑞 𝑗−1 ∙ 𝐷 𝑗−1 + 𝐷 𝑗−1 = 𝑞 𝑗−1 ∙ 𝑗−1 + 𝐷 𝑗−1 = 𝑞 𝑗−1 ∙ 𝑗−1 + 𝑞 𝑗−1 ∙ 𝐷 𝑗−1 = 𝑗−1 + 𝑞 𝑗−1 ∙ 𝐷 𝑗−1 = 𝐷 𝑗 [2] H. Ling, “High - speed binary adder,” IBM Journal of Research and Development, vol. 25, no. 3, pp. 156 – 166, March 1981 . 11 Friday, June 28, 2019
Define two more local signals ℎ 𝑗 and 𝑟 𝑗 as: ℎ 𝑗 = 𝑗 + 𝑗−1 and 𝑟 𝑗 = 𝑞 𝑗 ∙ 𝑞 𝑗−1 Starting with the definition of 𝐼 𝑗+1 and the fact that 𝑗 ∙ 𝑞 𝑗 = 𝑗 : 𝐼 𝑗+1 = 𝐷 𝑗+1 + 𝐷 𝑗 = 𝑗 + 𝑞 𝑗 ∙ 𝐷 𝑗 + 𝐷 𝑗 = 𝑗 + 𝐷 𝑗 = 𝑗 + 𝑗−1 + 𝑞 𝑗−1 ∙ 𝑗−2 + 𝑞 𝑗−2 ∙ 𝐷 𝑗−2 = 𝑗 + 𝑗−1 + 𝑞 𝑗−1 ∙ 𝑞 𝑗−2 𝑗−2 + 𝐷 𝑗−2 = ℎ 𝑗 + 𝐼 𝑗−1 12 Friday, June 28, 2019
In terms of the binary prefix operator defined before: 𝐼 𝑗+1 ℎ 𝑗 𝑟 𝑗−1 ∘ 𝐼 𝑗−1 = 𝑟 𝑗−1 1 Ling carry (pseudo carry) at any bit position as a function of 𝐼 𝑗𝑜 = 𝐷 𝑗𝑜 can thus be trivially computed by a sequence of prefix operations as: 𝐼 𝑗+1 𝑟 𝑗−1 ∘ ℎ 𝑗−2 ℎ 𝑗 𝑟 𝑗−3 ⋅⋅⋅ 𝐼 𝑗𝑜 = 𝑟 𝑗−1 ⋅ 𝑟 𝑗−3 ⋅⋅⋅ 𝑟 0 1 It is noted that , 𝐼 4 = ℎ 3 + 𝑟 2 ∙ ℎ 1 + 𝑟 2 ∙ 𝑟 0 ∙ 𝐼 𝑗𝑜 = 3 + 2 + 𝑞 2 ∙ 1 + 𝑞 2 ∙ 𝑞 1 ∙ 0 + 𝑞 2 ∙ 𝑞 1 ∙ 𝑞 0 ∙ 𝐷 𝑗𝑜 which is logically much more simpler than the corresponding expression for the conventional carry 𝐷 4 : 𝐷 4 = 3 + 𝑞 3 ∙ 2 + 𝑞 3 ∙ 𝑞 2 ∙ 1 + 𝑞 3 ∙ 𝑞 2 ∙ 𝑞 1 ∙ 0 + 𝑞 3 ∙ 𝑞 2 ∙ 𝑞 1 ∙ 𝑞 0 ∙ 𝐷 𝑗𝑜 13 Friday, June 28, 2019
Following is an expansion of Ling recurrence relation for Ling pseudo carries for a radix-4 adder: 𝐼 4 = ℎ 3 𝑟 2 ° ℎ 1 𝑟 0 ° 𝐷 𝑗𝑜 𝑟 2 ∙ 𝑟 0 1 𝐼 3 = ℎ 2 𝑟 1 ° ℎ 0 𝑟 1 1 𝐼 2 = ℎ 1 𝑟 0 ° 𝐷 𝑗𝑜 𝑟 0 1 𝐼 1 = ℎ 0 1 1 𝐼 0 = 𝐷 𝑗𝑜 1 1 Dimitrakopoulos and Nikolos observed that in the above expansion the even and odd subscripted pseudo Ling carries are independent of each other. 14 Friday, June 28, 2019
[3] G. Dimitrakopoulos and D. Nikolos , “High -speed parallel prefix VLSI Ling adders,” IEEE Transactions on Computers, vol. 54, no. 2, pp. 225 – 231, Feb 2005. 15 Friday, June 28, 2019
Jackson and Talwar generalized the Ling factorization to further speed up multi- bit addition and proved that the relations for carries can be factorized even beyond what was established by Ling. For example, the expression for the conventional carry ( 𝐷 4 ) can be further factorized as given below: 𝐷 4 = 3 + 𝑞 3 ∙ 2 + 𝑞 3 ∙ 𝑞 2 ∙ 1 + 𝑞 3 ∙ 𝑞 2 ∙ 𝑞 1 ∙ 0 + 𝑞 3 ∙ 𝑞 2 ∙ 𝑞 1 ∙ 𝑞 0 ∙ 𝐷 𝑗𝑜 = 𝑞 3 ∙ 3 + 2 + 𝑞 2 ∙ 1 + 𝑞 2 ∙ 𝑞 1 ∙ 0 + 𝑞 2 ∙ 𝑞 1 ∙ 𝑞 0 ∙ 𝐷 𝑗𝑜 = 3 + 𝑞 3 ∙ 𝑞 2 ∙ 3 + 2 + 1 + 𝑞 1 ∙ 0 + 𝑞 1 ∙ 𝑞 0 ∙ 𝐷 𝑗𝑜 = 3 + 𝑞 3 ∙ 2 + 𝑞 3 ∙ 𝑞 2 ∙ 𝑞 1 ∙ 3 + 2 + 1 + 0 + 𝑞 0 ∙ 𝐷 𝑗𝑜 [4] R. Jackson and S. Talwar , “High speed binary addition,” in Conference Record of the Thirty-Eighth Asilomar Conference on Signals, Systems and Computers, 2004., vol. 2, Nov 2004, pp. 1350 – 1353 Vol.2. 16 Friday, June 28, 2019
The 2 nd equality in the previous slide is the Ling factorization and the quantity in the second factor is actually the Ling pseudo group carry ( 𝐼 4 ). The 3 rd and the 4 th equalities are the higher order factorizations. The quantities in the second factors in these equalities may be called the Jackson-Talwar pseudo carries of order 3 and 4 respectively. In order to understand the theory define 2 more signals ( 𝑐 𝑗 ) and ( 𝑒 𝑗 ) as: 𝑐 𝑗 = 𝑗 + 𝑗−1 + 𝑗−2 + 𝑗−3 𝑒 𝑗 = 𝑗 + 𝑞 𝑗 ∙ 𝑗−1 + 𝑞 𝑗 ∙ 𝑞 𝑗−1 ∙ 𝑞 𝑗−2 Define 4 th order Jackson-Talwar group carry ( 𝐾 𝑗 ) as: 𝐾 𝑗 = 𝐷 𝑗 + 𝐷 𝑗−1 + 𝐷 𝑗−2 + 𝐷 𝑗−3 17 Friday, June 28, 2019
Starting with this definition for ( 𝐾 𝑗+1 ), we can define it in terms of ( 𝐾 𝑗−3 ) as: 𝐾 𝑗+1 = 𝐷 𝑗+1 + 𝐷 𝑗 + 𝐷 𝑗−1 + 𝐷 𝑗−2 = 𝑗 + 𝑞 𝑗 ∙ 𝐷 𝑗 + 𝐷 𝑗 + 𝐷 𝑗−1 + 𝐷 𝑗−2 = 𝑗 + 𝐷 𝑗 +𝐷 𝑗−1 + 𝐷 𝑗−2 = 𝑗 + 𝑗−1 + 𝑞 𝑗−1 ∙ 𝐷 𝑗−1 + 𝐷 𝑗−1 + 𝐷 𝑗−2 = 𝑗 + 𝑗−1 + 𝐷 𝑗−1 + 𝐷 𝑗−2 = 𝑗 + 𝑗−1 + 𝑗−2 + 𝑞 𝑗−2 ∙ 𝐷 𝑗−2 + 𝐷 𝑗−2 = 𝑗 + 𝑗−1 + 𝑗−2 + 𝐷 𝑗−2 = 𝑗 + 𝑗−1 + 𝑗−2 + 𝑗−3 + 𝑞 𝑗−3 ∙ 𝐷 𝑗−3 = 𝑐 𝑗 + 𝑒 𝑗−3 ∙ 𝐾 𝑗−3 18 Friday, June 28, 2019
Recommend
More recommend