半加算器
英語表記: Half Adder
概要
半加算器(Half Adder)は、「論理回路とゲート」の分野において、基本的な演算機能を担う「組合せ回路」の「基本ブロック」として定義されます。これは、2つの1ビットの2進数(入力Aと入力B)を受け取り、その計算結果である「和」(Sum)と「繰り上がり」(Carry)の2つの1ビット出力を生成する回路です。デジタル計算機が複雑な処理を行うための、最も原始的かつ不可欠な計算要素であると言えます。非常にシンプルですが、すべてのデジタル演算の基礎を支えている、大変重要な部品なのですよ。
詳細解説
半加算器の主要な目的は、コンピュータの内部で実行されるすべての算術演算の出発点となる、最小単位の2進数加算を実現することです。
基本ブロックとしての役割
半加算器は、過去の状態を記憶する機能(メモリ要素)を一切持たないため、入力信号が変化すれば、出力も瞬時に変化します。この特性から、半加算器は「組合せ回路」に分類されます。そして、より複雑な演算回路、例えば多桁の加算を可能にする「全加算器」を構成するための基礎的な部品として機能するため、まさに「基本ブロック」という位置づけが適切です。
構成要素と動作原理
半加算器の美しさは、その構成のシンプルさにあります。この回路は、たった2種類の論理ゲートによって実現されています。
- 和(Sum)の出力: これは排他的論理和回路(XORゲート)によって実現されます。
- XORゲートは、入力Aと入力Bが「異なる」場合にのみ「1」を出力します。
- 2進数において、0+1や1+0の場合、和は1となり、繰り上がりは0です。これはXORの真理値と完全に一致していますね。
- 繰り上がり(Carry)の出力: これは論理積回路(ANDゲート)によって実現されます。
- ANDゲートは、入力Aと入力Bが「両方とも1」の場合にのみ「1」を出力します。
- 2進数において、1+1を計算すると「10」となり、和は0、繰り上がりは1となります。つまり、繰り上がりが発生するのは、入力が両方とも1の場合だけです。これもANDの真理値と一致します。
このように、XORとANDという非常に基本的な「論理回路とゲート」を組み合わせるだけで、加算という数学的な操作が実現できるのは、本当に驚くべきことだと感じます。
真理値表
半加算器の動作は、以下の真理値表によって完全に定義されます。
| 入力 A | 入力 B | 和 (Sum) | 繰り上がり (Carry) | 備考 |
| :—: | :—: | :—: | :—: | :—: |
| 0 | 0 | 0 | 0 | 0 + 0 = 0 |
| 0 | 1 | 1 | 0 | 0 + 1 = 1 |
| 1 | 0 | 1 | 0 | 1 + 0 = 1 |
| 1 | 1 | 0 | 1 | 1 + 1 = 10 (2進数) |
この表を見れば、半加算器が「組合せ回路」として、入力の組み合わせに対して一意の出力を瞬時に決定していることが明確にわかります。
具体例・活用シーン
半加算器は、デジタル回路の設計において、より大きな計算システムを構築するための「部品」として活用されます。単体で使われることは稀ですが、その存在意義は非常に大きいのです。
-
全加算器の構成要素:
多桁の2進数加算を行うためには、下の桁から送られてくる繰り上がり(桁上げ入力)を考慮する必要があります。半加算器はこの桁上げ入力を受け取ることができません。そのため、半加算器を複数組み合わせ、さらに論理和ゲート(ORゲート)などを追加することで、桁上げ入力を処理できる「全加算器」(Full Adder)が構成されます。半加算器は、この全加算器というより高度な「組合せ回路」の基礎を築いているわけです。 -
データ処理の最小単位:
CPU内部の演算論理ユニット(ALU)では、この半加算器や全加算器が大量に使用され、高速なデータ処理を実現しています。
理解を助ける比喩:コインの裏表を使った論理ゲーム
半加算器の動作を、繰り上がりの概念がまだ導入されていない、単純な「論理ゲーム」として考えてみましょう。
あなたには2枚のコイン(入力Aと入力B)が与えられます。コインは表(1)か裏(0)のどちらかです。
ゲームのルール:
1. 「和」(Sum)の判定: コインの裏表が「異なっていたら」勝ち(1)、同じなら負け(0)とします。
* 裏と表(0と1):勝ち(1)
* 表と裏(1と0):勝ち(1)
* 裏と裏(0と0)、表と表(1と1):負け(0)