數電——超前進位加法器


一、串行(行波)進位加法器

  進行兩個4bit的二進制數相加,就要用到4個全加器。那么在進行加法運算時,首先准備好的是1號全加器的3個input。而2、3、4號全加器的Cin全部來自前一個全加器的Cout,只有等到1號全加器運算完畢,2、3、4號全加器才能依次進行進位運算,最終得到結果。 這樣進位輸出,像波浪一樣,依次從低位到高位傳遞, 最終產生結果的加法器,也因此得名為行波進位加法器(Ripple-Carry Adder,RCA)。

  RCA的優點是電路布局簡單,設計方便, 我們只要設計好了全加器,連接起來就構成了多位的加法器。 但是缺點也很明顯,也就是高位的運算必須等待低位的運算完成, 這樣造成了整個加法器的延遲時間很長。將4bit的RCA內部結構全部打開,就得到了如圖所示的4-bit RCA的門電路圖。要對一個電路的性能進行分析,我們就要找出其中的最長路徑。 也就是找出所有的從輸入到輸出的電路連接中,經過的門數最多的那一條,也稱為關鍵路徑。

  我們來做一個簡單的分析, 對於最低位的全加器,它在A、B和Cin都已經准備好。其實,輸入信號進入到這塊電路之后,在連接線上傳遞需要花時間。 稱為線延遲,而經過這樣的門,也需要花時間,稱為門延遲。 在進行設計原理分析時,我們主要關注門延遲。

  從第一個全加器的A-S這條通路來看,產生第一個S輸出,需要通過兩個門的延遲。 所以它顯然不是最長的路徑,當然,從A出發或着從B出發都是一樣的, 所以對於第一個全加器,它的最長路徑,是紅色線標記的那條,后面的全加器關鍵路徑同理可得。

  那么,假設經過一個門電路的延遲時間為T,那么經過4個全加器所需要的總延遲時間就是:2T x 4 + T(第一個全加器產生3個T) = 9T。所以推出,經過n個全加器所產生的總延遲時間為2T x n + T = (2n+1)T。

  對於一個32bit的RCA,有總延遲時間:(2n+1)T =(2×32+1)×T =65T,這是什么概念呢?舉個例子,iPhone 5s的A7 SoC處理器采用28nm制造工藝,主頻1.3GHz(0.66ns)。按照這個工藝水平,門延遲T設為0.02ns,那么32-bit RCA的延遲時間為1.3ns ,時鍾頻率為769MHz,遠超A7處理器的主頻延遲時間,更別說這個32bit的RCA只是一個加法運算器,更更別說,我們在計算過程中只考慮了門延遲,還有線延遲等各種延遲沒有加入計算……

  所以RCA的效率絕對是個問題。那么,有沒有辦法優化呢?RCA的主要問題是高位的運算必須等待低位的“進位輸出信號”,那我們的優化思路就是‘能否提前計算出“進位輸出信號’ ?”

二、超前進位加法器(Carry-Lookahead Adder,CLA)

 用前一個全加器的參數來表示后面的進位輸出(Cout),即:

 由此來表示4個全加器的進位輸出為:

  最終我們需要得到的是C4,經過換算,C4=G3+P3·G2+P3·P2·G1+P3·P2·P1·G0+P3·P2·P1·P0·C0,而這些參數,全部已知!並不需要前一個全加器運算輸出,由此我們得到了提前計算進位輸出的方法, 用這樣的方法實現了加法器就被稱為 超前進位加法器(Carry-Lookahead Adder,CLA)。
  根據上面的優化算法,我們重新繪制了CLA的布線方式:

 

  那么使用CLA來進行加法運算的效率如何呢?還是按照Apple A7處理器的工藝水平,單個CLA的延遲為0.08ns,4級CLA的延遲為0.26ns,時鍾頻率3.84GHz,都遠遠小於主頻的延遲,完全符合標准。然而,由圖可見,計算4bit的二進制數,就要平行排列4個全加器,那么要是計算8bit,16bit,32bit……的呢?可能就需要更復雜的布線方式,這就是CLA的缺點。
列表比較一下RCA和CLA的優缺點:
  RCA CLA
結構特點 低位全加器的Cout連接到高一位全加器Cin 每個全加器的進位輸入並不來自於前一級的全加器,而是來自超前進位的邏輯
優點 電路布局簡單,設計方便 計算Ci+1的延遲時間固定為三級門延遲,與加法器的位數無關
缺點 高位的運算必須等待低位的運算完成,延遲時間長 如果進一步拓寬加法器的位數,則電路變得非常復雜
  32位的加法器如果采用行波進位的方式,需要65級的門延遲, 那如果采用超前進位的方式,理想情況下也只需要四級的門延遲,但可惜的是, 這也只是一個理想。因為要實現32位的完全的超前進位,電路就會變得非常的復雜。 因此通常的實現方法, 是采用多個小規模的超前進位加法器拼接而成一個較大的加法器,例如,用4個8-bit的超前進位加法器連接成32-bit加法器。



原文鏈接: 加法器的優化——超前進位加法器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM