バイナリ加算器:2進数を加算するデジタル回路
バイナリ加算器の概要。半加算器と全加算器、リップルキャリー方式と高速な設計、論理ゲートによる実装、加算例、プロセッサや演算装置における役割を解説します。
概要
バイナリ加算器は、2進数の和を計算するデジタル回路である。最も基本的な段階では、加算器は1ビットと、必要に応じて入力される桁上げを扱い、和のビットと出力される桁上げを生成する。複数の1ビット加算器を組み合わせれば、複数ビットの2進値を加算できる。これは中央処理装置、算術論理演算装置、および多くのデジタルシステムにおける整数加算の基礎となる。これらの回路で用いる記数法については2進数を、計算システムにおける利用の文脈についてはコンピュータを参照。
画像ギャラリー
5 画像基本構成要素と動作
1ビット加算の基本的な構成要素には、半加算器と全加算器の2種類がある。半加算器は2つの入力ビットを組み合わせ、和ビットと桁上げビットを出力する。全加算器には桁上げ入力が追加されており、複数ビットの加算のために加算器を連結できる。論理ゲートのレベルでは、典型的な全加算器は2個のXORゲート、2個のANDゲート、1個のORゲートで実装できる。XORゲートが和ビットを計算し、AND/ORのネットワークが桁上げ出力を計算するように配置される。
代表的な加算器アーキテクチャ
- リップルキャリー加算器:全加算器を連結し、各段の桁上げ出力を次段の桁上げ入力とする。単純で小型だが、桁上げが全ビットを「波及」するため、速度が制限される。
- キャリールックアヘッド加算器:追加の論理回路によって桁上げを高速に予測する。遅延を減らせる一方、ゲート数と配線は増加する。
- キャリーセーブ加算器と並列加算器:高速な乗算器や演算アレイで使われ、逐次的な桁上げ処理の回数を減らす。
ゲートレベルの動作と真理
概念的には、和ビットは被加算ビットと桁上げ入力のXORであり、3つの入力のうち少なくとも2つが1であるときに桁上げ出力が1となる。言い換えると、0+0(+0)は和0・桁上げ0となり、1+0(+0)は和1・桁上げ0となる。1+1(+0)は和0・桁上げ1となる。さらに桁上げ入力を加えると、和が反転し、桁上げの発生にも影響することがある。桁上げは最下位ビットから最上位ビットへ伝搬し得るため、加算器では規模、複雑さ、タイミングの均衡を取る必要がある。
計算例
リップルキャリー方式の加算例として、4ビットの1001と1100、すなわち10進数の9と12を加算する。最下位ビットから始めると、1+0=1で桁上げは0である。次のビットは0+0=0、桁上げは0となる。3番目のビットは0+1=1、桁上げは0である。最上位ビットでは1+1=0となり、桁上げは1となる。この最後の桁上げが新たな最上位桁となるため、結果は10101、すなわち10進数の21となる。このような段階的な桁上げ伝搬は、単純な連結型加算器に典型的である。桁上げ遅延を抑える設計では、これらの判定を並列に、または一部を事前に行うことを目指す。
用途と主な考慮事項
加算器は、算術論理演算装置、デジタル信号プロセッサ、および多倍長演算を実装するハードウェアの基本要素である。設計者は、シリコン面積、消費電力、速度の間のトレードオフに基づいて加算器の方式を選択する。高性能プロセッサでは、キャリールックアヘッド加算器や、より高度なプレフィックス加算器によってレイテンシを最小化する。資源に制約のある機器では、単純さからリップルキャリー加算器が依然として広く用いられる。実用的な設計や例については、基本的な算術の解説、およびXOR、AND、ORなどの論理ゲート資料を参照。
さらに学ぶべき分野には、タイミング解析、トランジスタレベルでの実装、乗算や積和演算で使われる特殊な多オペランド加算器が含まれる。より技術的な説明や設計パターンについては、標準的なデジタル設計の文献と、2進数およびコンピュータアーキテクチャに関するチュートリアルを参照。
関連項目
著者
AlegsaOnline.com バイナリ加算器:2進数を加算するデジタル回路 Leandro Alegsa
URL: https://ja.alegsaonline.com/art/11579