コンテンツにスキップ

加算器とは

加算器とは、2進数の足し算を、論理ゲートの組み合わせだけで行う回路です。 情報処理推進機構(IPA)の基本情報技術者試験シラバスは、ANDやOR、NOTといった基本の論理回路を組み合わせると半加算器や全加算器ができあがり、そこで演算が行われる、という中身を学習項目に挙げています。

コンピュータの「計算」を分解していくと、最後に残るのは足し算です。

IPAの同シラバスは、プロセッサの中の制御装置と演算装置が何をする部分か、そしてそれらを形づくる加算器やレジスタ、デコーダが何をする部品かを、まとめて学習項目に挙げています。加算器は、レジスタやデコーダと並ぶ、プロセッサの部品として数えられています。

JEITAの半導体用語集は、演算を担う部分をALU(arithmetic logical unit、算術論理演算回路)と呼んでいます。同用語集によれば、ALUはマイコン(MCU)やマイクロプロセッサ(MPU)を組み立てる部品の一つで、足し算や引き算のような数の計算と、ANDやOR、一致といった論理の計算を、どちらも引き受けます。

ロームの解説は、もっと日常の言葉で書いています。CPUの中身をプログラムカウンタ、命令デコーダ、演算回路の三つに分け、このうち演算回路が命令を実際にさばく部分で、命令ごとに足したり引いたりを行うとしています。そして比較命令CMPについては、引き算をして大小を確かめていると述べています。大小の比較さえ、引き算として足し引きの回路を通ります。

電子情報通信学会の公開知識ベース『知識の森』は、加算器を2進数1桁から組み立てています。

二つの入力xとyを受け取り、その桁の和zと、上へ送る桁上げcoutを算出する回路が半加算器(half adder:HA)です。ここに下の桁からの桁上げcinという三つ目の入力が加わったものが全加算器(full adder:FA)で、x、y、cinの三つからzとcoutを出します。同知識ベースは、全加算器の回路例の中で破線に囲まれた二つの部分が半加算器であると示しています。全加算器は、半加算器を二つ組み合わせた形をしています。

この違いは、桁の位置の違いです。いちばん下の桁が受け取る入力は二つだけで足りるため半加算器になり、それより上の桁は下からの桁上げも受け取るため全加算器になります。

ルネサス エレクトロニクスのエンジニアスクールは、加算器を組み合わせ回路の一つとして位置づけています。同社は、いまの入力だけで出力が決まる論理回路を組み合わせ回路と呼び、その仲間として比較器、加算器(全加算器と半加算器)、乗算器、減算器、バレルシフタなどを挙げ、その多くはマルチプレクサやデコーダの応用で組み立てられるとしています。ただし、応用しただけの回路はむだが多くなるため、簡素化や圧縮の手間が要るとも述べています。

1桁ぶんの回路を、横に連ねていきます
1桁ぶんの足し算を、横に連ねます半加算器入力は二つです全加算器下からの桁上げも受けます中身は半加算器が二つです全加算器の入力は、三つですその桁の二つの数と、下の桁からの桁上げです出力は、和と、上の桁へ渡す桁上げです全加算器全加算器全加算器全加算器全加算器半加算器上位の桁最下位の桁桁上げは、右の桁から左の桁へ順に伝わります上の桁の答えは、下の桁の桁上げが着いてから決まります
最下位の桁だけは入力が二つで足りるため半加算器になり、上の桁は全加算器になります。桁上げが右から左へ順に渡るため、上の桁ほど答えが決まるのが遅くなります。

時間を食うのは、桁上げの受け渡しです

Section titled “時間を食うのは、桁上げの受け渡しです”

ここが、加算器という部品のいちばん面白いところです。

『知識の森』は、半加算器を一つと全加算器をn−1個、数珠つなぎにすればnビットの加算器になると書いています。それぞれが出した桁上げは、そのまま一つ上の桁の全加算器へ入力として渡ります。この形を、順次桁上げ加算器と呼びます。

各桁の足し算そのものは、ゲートを数段通るだけです。ところが、上の桁が答えを出せるのは、下の桁の桁上げが届いてからです。桁数が増えるほど、この受け渡しの鎖が長くなります。

加算器の遅さの正体は、桁上げが下から上へ順に伝わることです。 32桁なら32回、64桁なら64回と、桁数がそのまま順番待ちの回数になります。ここは同知識ベースが示した直列の並びから、桁数を数えただけの値です。

そして、この待ち時間はチップ全体の速度に響きます。『知識の森』の順序回路の章は同期式順序回路について、組合せ回路の側で計算に要する時間が、クロックの刻みの間隔の中に収まっている必要があるとしています。加算器は、その組合せ回路の中でも長い経路になりやすい部品です。クロック周期の下限を押し上げているものを探すと、加算器の桁上げが出てきます。

『知識の森』は、桁上げの鎖を短くする工夫を三つ挙げています。どれも、桁上げを待つ代わりに先回りする発想です。

一つ目は桁上げ選択加算器です。同知識ベースによれば、桁を上下二つのまとまりに区切り、上のまとまりは下から届く桁上げを待たずに、それが0だった場合の和と1だった場合の和を先に両方作っておきます。下のまとまりの桁上げが決まった時点で、マルチプレクサがその桁上げを制御入力として正しいほうを選び出します。区切るまとまりの数を増やせば、さらに速くできるとされています。

二つ目は桁上げ飛び越し加算器です。同知識ベースによれば、下から来た桁上げがその桁で止まらずそのまま上へ抜けていくのは、足し合わせる二つの数が、その桁で一方は0、もう一方は1になっているときです。ひとまとまりの区間の全部の桁でこの条件がそろえば、桁上げは区間の中で何も変えずに通り抜けるだけになります。そこで、条件がそろった区間は桁上げにまたいで越えさせ、上の桁へ直接渡します。

三つ目は桁上げ先見加算器です。同知識ベースは、第i桁でgi = xiyiが1のとき桁上げが生成され、pi = xi⊕yiが1のとき下位からの桁上げが伝搬するとしたうえで、この関係を下の桁へ代入し続けると、各桁の桁上げがその桁と下位の桁の演算数入力から計算できることを示しています。桁上げを待たずに、入力から直接求める形です。

ただし、この工夫には値札が付いています。同知識ベースは、桁ごとに桁上げの式を丸ごと別々に組んだ純粋な形の桁上げ先見加算器について、必要になる回路の量が大きすぎるため、作れるのは数桁ぶん程度までだとしています。そこで桁を数桁ずつのまとまりに割り、その小さな桁上げ先見ブロックを木の形に積み上げることで、多ビットの桁上げ先見加算器に仕立てると書かれています。

速くするほど、回路は大きくなります
同じ足し算に、いくつもの作り方があります順次桁上げ加算器半加算器と全加算器を、ただ横に並べた形です時間部品桁上げ先見加算器各桁の桁上げを、下の桁の入力から直に求めます時間部品間をとる作り方も、いくつもあります桁上げ選択加算器は、0と1の両方の和を先に作り、桁上げが決まってから選びます桁上げ飛び越し加算器は、通過するだけの区間を、桁上げにまたがせますどれを選んでも、速さは部品の数で買うことになります
順次桁上げ加算器は部品が少なく済む代わりに時間がかかり、桁上げ先見加算器は時間が短い代わりに部品が増えます。加算器の種類の多さは、この一本の天秤の目盛りです。

加算器は、比較や引き算の回路でも働きます

Section titled “加算器は、比較や引き算の回路でも働きます”

同じ桁上げの鎖は、加算以外の回路にも顔を出します。

『知識の森』は、符号なし2進整数XとYの大小比較を行う比較器について、最下位桁から順次、各桁で入力と下位での比較結果から比較結果を計算し、最上位での比較結果が比較器の出力になるとしています。そして、順次桁上げ加算器と同様に、1ビット比較器をn個直列につなぐことでnビット比較器を構成できると述べています。形が同じであれば、遅さの理由も同じです。

大小の比較を引き算で片づけているというロームの比較命令CMPの記述も、同じ話の別の面です。IPAのシラバスは、演算装置を構成する部品の用語例として、アキュムレーターと並べて補数器を挙げています。引き算を足し算に直す補数器が、加算器と同じ演算装置の部品として数えられています。

加算器を速くする工夫が古くから続いてきたのは、この部品が計算のほぼすべての入口だからです。『知識の森』は、桁上げ選択加算器の出典として1962年の論文を、桁上げ飛び越し加算器の出典として1961年の論文を挙げています。桁上げをどう先回りするかという課題は、半世紀以上にわたって同じ形で残っています。

加算器とは何ですか?

加算器は、2進数の足し算を論理ゲートの組み合わせで担う回路です。情報処理推進機構(IPA)の基本情報技術者試験シラバスは、ANDやOR、NOTといった基本の論理回路を組み合わせると半加算器や全加算器ができあがり、そこで演算が行われる、という中身を学習項目に挙げています。

半加算器と全加算器の差は、どこにありますか?

受け取る入力の数です。電子情報通信学会の公開知識ベースは、2進数1桁の二つの入力から和と桁上げを算出する回路を半加算器とし、そこへ下の桁からの桁上げcinという三つ目の入力が加わったものを全加算器としています。同知識ベースは、全加算器の回路例の中に半加算器が二つ含まれることも示しています。

何桁もの足し算は、どう作るのですか?

同知識ベースは、半加算器を一つと全加算器をn−1個、数珠つなぎにすればnビットの加算器になるとしています。各桁が出した桁上げは、そのまま一つ上の桁へ入力として渡ります。この形を順次桁上げ加算器と呼びます。

加算器の速さは、何で決まるのですか?

桁上げの伝わり方です。順次桁上げ加算器では桁上げが下の桁から上の桁へ順に渡るため、桁数が増えるほど待ち時間が伸びます。同知識ベースが挙げる高速化の工夫は、いずれもこの桁上げを先に確定するための仕組みです。

速い加算器には、どんな種類がありますか?

同知識ベースは、桁上げ選択加算器、桁上げ飛び越し加算器、桁上げ先見加算器を挙げています。桁上げ選択加算器は0だった場合と1だった場合の和を先に両方作ってマルチプレクサで選び、桁上げ飛び越し加算器は桁上げが通り抜けるだけの区間をまたがせ、桁上げ先見加算器は各桁の桁上げを、その桁と下の桁の入力から直に求めます。

速い加算器を選べば得なのですか?

引き換えがあります。同知識ベースは、桁ごとに桁上げの式を丸ごと別々に組んだ純粋な形の桁上げ先見加算器について、必要になる回路の量が大きすぎるため、作れるのは数桁ぶん程度までだとしています。そこで桁を数桁ずつのまとまりに割り、それを木の形に積み上げて多ビット化します。

加算器は、足し算だけに使われるのですか?

ロームは、CPUの演算回路が命令ごとに足したり引いたりを行い、比較命令CMPも引き算で大小を確かめていると述べています。JEITAの半導体用語集はALU(算術論理演算回路)を、数の計算と論理の計算をどちらも引き受ける部分としています。

この記事の事実は、誰でも読める公開資料を根拠とし、各URLの到達可否をこちらで実測しています。したがって、リンク先が移動または消滅した場合は、その旨をこのページへ反映します。

  • 電子情報通信学会『知識の森』1群8編2章「組合せ論理回路」公開PDF(2026年8月30日にリンク生存を実測、200、application/pdf)── 2進数1桁の入力x・yから和と桁上げを求める回路を半加算器と呼ぶこと、下位からの桁上げ入力cinが加わった回路を全加算器と呼ぶこと、全加算器の回路例の中の破線で囲った二つの部分が半加算器であること、一つの半加算器とn−1個の全加算器を直列に並べてnビット加算器を構成でき各桁の桁上げ出力が一つ上位の桁の桁上げ入力になること、この形を順次桁上げ加算器と呼ぶこと、桁上げ選択加算器が下位ブロックからの桁上げが0の場合と1の場合の和を両方計算しマルチプレクサで選ぶこと、桁上げ飛び越し加算器が桁上げ伝搬条件のそろう区間を飛び越させること、桁上げ先見加算器がgi = xiyiとpi = xi⊕yiの関係の代入により各桁の桁上げを下位の入力から計算すること、純粋な桁上げ先見加算器はハードウェア量の観点から数桁程度しか実現が困難で数桁ずつのブロックを木状に積み上げて多ビット化すること、比較器も1ビット比較器をn個直列に並べて構成できること、桁上げ選択加算器の出典が1962年の論文で桁上げ飛び越し加算器の出典が1961年の論文であること
  • ルネサス エレクトロニクス エンジニアスクール「デジタルICの基礎、組み合わせ回路」(2026年8月30日にリンク生存を実測、200)── 入力信号の組み合わせだけで出力が決まる論理回路を組み合わせ回路と呼ぶこと、組み合わせ回路がANDやOR、NOT、XORなどの論理ゲートを複数個組み合わせて構成されること、比較器や加算器(全加算器/半加算器)・乗算器・減算器・バレルシフタなど数多くの組み合わせ回路がありその多くがマルチプレクサやデコーダの応用で作成できること、そのままでは回路が冗長になるなどの問題が出るため回路の簡素化や圧縮が必要になること
  • 情報処理推進機構(IPA)「基本情報技術者試験(レベル2)シラバス Ver.9.1」公開PDF(2026年8月30日にリンク生存を実測、200、application/pdf)── AND回路・OR回路・NOT回路などの基本となる論理回路の組合せによって半加算器・全加算器が実現され演算が行われていることを学ぶ項目があること、プロセッサを構成する制御装置と演算装置の役割とそれらを構成する加算器・レジスタ・デコーダなどの役割を学ぶ項目があること、その用語例にアキュムレーターと補数器が挙げられていること
  • JEITA(電子情報技術産業協会)半導体部会「半導体用語集」(2026年8月30日にリンク生存を実測、200)── ALU(arithmetic logical unit)が算術論理演算回路であり、マイクロコントローラ(MCU)やマイクロプロセッサ(MPU)を構成する部分の一つとして加算・減算などの数値演算およびAND・OR・一致などの論理演算を行うこと
  • ローム「マイコンの構成」(2026年8月30日にリンク生存を実測、200)── CPU内部がプログラムカウンタ・命令デコーダ・演算回路から構成されること、演算回路が命令をさばく部分で各命令に合わせて足したり引いたりを行うこと、比較命令CMPが引き算をしてどちらが大きいか確かめていること
  • 電子情報通信学会『知識の森』1群8編3章「有限状態機械と順序回路」公開PDF(2026年8月30日にリンク生存を実測、200、application/pdf)── 同期式順序回路において組合せ回路部での計算時間がクロックパルスの時間間隔より短く収まる必要があること
回答待ち 更新中 公開Q&A

このページの質問窓口

AIに疑問を送る

「匿名で送信する」を押して内容を送ると、受付ID付きの回答URLを発行します。URLでは進捗を追うことができ、通常は1日以内に回答します。個人情報を取り除いて編集した質問と回答だけを、承認済み資料の出典リンクとともに公開Q&A一覧へ掲載します。

通常、1日以内に回答します 回答待ち 更新中

  1. 匿名で送る 分かりにくい箇所、指摘、追加してほしい内容を書きます。
  2. 受付IDと回答URLを保存する 送信後に発行されるURLへ、進捗が順次反映されます。
  3. 進捗と回答を追う URLには、受付済み、回答作成中、解決済みの状態と回答が載ります。
公開Q&A一覧へ 5〜4,000文字。氏名・連絡先などの個人情報、秘密情報は入力禁止です。

このフォームは匿名です。氏名・連絡先・応募情報などの個人情報、秘密情報、社外秘情報、契約情報、非公開資料の入力は禁止です。投稿原文は運営用DBに保存し、公開面には、個人情報・秘密情報・危険な命令を除く安全審査と読みやすい文章への編集を経た質問文と回答だけを載せます。状態は「受付済み」「回答作成中」「解決済み」の3段階です。安全審査の結果によっては公開を保留します。サイト側の機械検査を通った内容だけを運営側のAI回答作成環境へ送り、回答案の作成と、それとは独立したAI審査に使います。機械検査には見落としの可能性があり、回答作成と審査の履歴は利用中の環境に保持されます。IPアドレスや端末情報は送信対象外です。回答URLは公開Q&A用で、共有先からも開けます。送信により、この利用条件と審査後のQ&A公開に同意したものとします。