You are on page 1of 6

總結:描述了一個大型、速度極快,並具有 sum selection 和 multiple-radix carry

的 digital adder。並且比較了 100-bit ripple-carry adder 和 carry-select adder 的硬


體數量以及 logical delay。
此處所描述的加法器系統透過將進位傳播時間減少到與經濟電路設計相稱的最
小值來提升加法過程的速度。藉由獨立生成 multiple-radix carries 並使用這些進
位在同時生成的和之間進行選擇來克服進位傳播延遲的問題。
在這個加法器系統中,加數和被加數分為子加數和子被加數部分,它們相加兩
次以產生兩個 subsums。一種加法是透過強制進入每個部分的進位數字來完成
的,而另一種加法是在沒有 forced carry digit 的情況下組合運算元。從每個加法
器部分選擇正確(或真實)的 subsum 取決於該加法器部分是否確實有進位。

Introduction:
為了提高 digital computer 的速度,設計者可能會開發速度更快的電子元件和電
路,或者將速度較慢的元件組織成更快、效率更高的一個系統。在後者提到的
方法中,是透過將可用的電子組件組合成更複雜的邏輯結構來提高速度。這些
結構通常需要大量的附加設備,除非它和更精細的演算法一起使用以進行基礎
運算。
在 digital adder 中,加法的速度會受到 carry 傳送至整個加法器所需時間的限
制。唯有在前一個位元的位置已經求得總和,carry 也傳送到下一個位置後,這
個基本加法器中,每個位置的總和才會依序生成,並且是從最低位元的位置開
始。
改進的加法器架構可同時產生進位,但不在本篇提及,要參考其他論文。這些
加法器採用的原理是,每個位元位置的進位可以作為所有較不重要的加數位元
和被加數位元的 explicit function 獨立生成。然而,由於可用元件的固有限制,
同時生成進位的加法器的構造並不總是很實用。本篇論文描述了一種快速的
digital adder,它從複雜、且無需過多的額外硬體元件的邏輯結構中獲得速度。

Notation:
為了方便理解這套系統的功能,將使用 R.K.Richards 描述的那種布林符號(詳
細內容於其他篇論文)。但是,要注意以下功能符號:
∀代表 Exclusive OR。
⊕不是 Exclusive 就是 Inclusive OR。
addend、augend 和 true sum digits 分別由 A、B 和 S 指定,三者後面的下標
數字用來表示數字位置。進位由 C 和下標數字表示,以指示產生進位的數字
位置。S 或 C 後面跟著 y 或 n 下標,表示總和或進位是暫時性的,並且是在以
下假設之一下產生的:
y: 該部分最低位位元的位置有一個進位。
n: 該部分最低位位元的位置沒有進位。
若沒有 n 或 y 下標,就代表這是真正的總和或進位。

Basic theory:
為了說明減少由進位傳遞造成的延遲所涉及的原理,此處假設要組合一個 25 位
元加數和一個 25 位元被加數以形成一個 25 位元之和。加法器首先被切割為 5
個 5 位元加法器。每個部份的加法器都是複製的架構,也就是相同的意思,以
便可以同時進行加數和被加數的相加,一個帶進位,一個不帶進位,如下圖所
示(Fig.1)。透過將每個部分的加數和被加數數字相加,並且從該部分的最低位
元到最高位元依序傳遞進位給總和,就會產生兩個和。

但是要注意以下 3 點:
1)五個加法器會有一個 carry 強制進入最低位元,有五個則不會。
2)每個部份的加法器會同時運作並產生各自的 sum 和 carry。
3)不需要完全複製電路,因為主要的 function: A∀B 以及 AB,用於產生兩者的
和。
Fig.1 中標記K y 和K n 的電路分別代表 5-bit 加法器有和沒有攜帶 forced carry
digit。OG 電路(參見 Fig.2)控制加法器的 true sum digits。標記為 EQ 的方塊(參
見 Fig.1)包含了要實現由包含的數字所表示的方程式所需的電路。
Fig.2 顯示了一個典型的 duplicated adder 的詳細圖。該加法器生成五個Sy 和五個
Sn ,是一個會依序傳遞進位的傳統加法器。每個加法器都根據以下布林函數產
生 sum 和 carry。
Equation (1)-(6)是加法器帶有強制進位輸入,(7)-(12)則沒有。(13)-(16)代表為加
法器選擇 true subsums 的電路的邏輯表示式。(17)則代表 end-around carry。
最低階加法器的真實 subsum 為A1−5 加上B1−5 (沒有強制進位),除非存在 end-
around carry 或先前相加產生的進位已被儲存。
在 carry select adder 中,產生 subsum 路徑和進位選擇路徑應該要是大致相等
的。在進位可用於選擇真正的和之前,產生 subsums 並不能實現速度優勢。因
此,為了節省元件,可以在這些部分內使用短的 ripple-carry 路徑。在上面討論
的加法器中,這些路徑不相等,因為 25 位元加法器被設計為 100 位元加法器的
一部分。

100-bit adder
理論上,Fig.1 的基本加法器可以將這些小部分的加法器擴展至任意數量。然
而,隨著加法器數量的增加,進位選擇電路變得更耗成本和複雜。在大型加法
器中,為了保留簡單系統的優勢並允許使用進位選擇技術,multiple-radix carry
被擴展以涵蓋更高階的 radices。
Multilevel adder 的工作原理與 single-level adder 相同。例如,100 位元 miltilevel
Adder 的第一級由一系列 5 位元加法器組成,如 Fig.2 所示。第二級由好幾群 5
位元加法器組成,就像 Fig.1 中 25 位元加法器為一群體的架構那樣。Successive
levels 由兩個以上的群體組成,如 Fig.3 所示。
Multiple-radix 的技術決定以下兩點:
1) carry-out 是否會在某個區域或群體內部產生。
2) 由於 carry 被送入到某個區域或群體中,該區域或群體是否會產生 carry-
out。
事實上,這個技術允許 carry 繞過一個區域或群體。數個 radices 由加法器的數
個區域或群體的 carry 形成。一個區域的 carry 的 radix 被定義為R cs = 2b ,b 是
該區域內的位元數。
因此,若其中一個加法器執行加法並產生結果為25 ,carry 就產生了。而 carry
radix 為 32。
一個群體(此處為 5 個 5 位元的區域)產生的 carry radix 被定義為R cg = 2bs ,b 是
一個區域內的位元數,s 是該群體內有多少區域。
Group carries X 和 Z 由以下 function 定義,其中下標數字代表在加法器中位元
的位置。

根據上述 function,來自每個 25 位元群體的 X 和 Z carries 與C0 組合以產生


C25 、C50 、C75 和C100 。(下標 a、b、c 和 d 表示 25 位元群體。)
C25 、C50 、C75 和C100 (在 Fig.1 中表示為 C0 )返回到適當的群組,以控制來自
每個 5 位元加法器的 true subsum。100 位元加法器的進位構成如 Fig.4 所示。為
了在生成C25 、C50 、C75 和C100 時節省元件,一個群組內部生成的進位可以做成
串聯漣波(ripplied serially)。(Fig.1, Eq. 14-16)。
一個 100 位元加法器依照以下 6 步驟依序進行:
1) 每個區域產生Cy 和Cn 。
2) carry 傳遞的時候,在每個區域中產生Sy 和Sn 。
3) 透過在 25 位元群體內組合Cy 和Cn ,為每個群體形成 X 和 Z。
4) 透過組合 X 和 Z 形成C25 、C50 、C75 、C100 。
5) appropriate carry 回到每個 25 位元群體內。
6) 為每個 5 位元加法器選擇 true subsum。
表 1 比較了進位選擇加法器和簡單的漣波進位加法器的速度及所需的元件數
量。由表可知,使用大約兩倍的元件數,可以達到 20 倍的速度。將加法器分為
特定區域至群體排列只是為了幫助描述一般的進位選擇原則。這種結構很容易
修改。

You might also like