3秒でわかる
CPU の中で足し算や比較などの計算そのものを担当する回路。制御装置が解いた命令を受け取り、実際に数値を動かしているのがこの部分です。
もう少し詳しく
どういうものか
演算装置は ALU とも呼ばれ、CPU の中で計算を実行する回路です。加算や減算といった算術演算と、AND や OR、シフトといった論理演算を担当します。
CPU の中では役割が分かれています。命令を取り出して意味を解釈するのが制御装置、値を一時的に置くのがレジスタ、実際に計算するのが演算装置です。制御装置が「レジスタ A と B を足せ」と指示し、演算装置が結果を出してレジスタへ戻す、という流れになります。
なぜ必要か
コンピュータの五大装置という分類で、入力、出力、記憶、制御、演算のうちの 1 つがこれです。試験ではこの分類そのものが問われますが、実務側でも意味があります。
演算装置は整数の演算が得意で、小数の計算は浮動小数点演算装置という別の回路が受け持ちます。整数演算のほうが速いのはこの構造が理由で、金額計算を整数の最小単位で持つ設計や、画像処理で整数演算に寄せる工夫はここに根拠があります。
具体例
演算装置が扱う代表がビット演算です。高級言語からも直接呼べます。
a = 0b1100 # 12
b = 0b1010 # 10
print(a & b) # 8 両方1のビットだけ残す
print(a | b) # 14 どちらか1なら1
print(a ^ b) # 6 異なるビットだけ1
print(a << 1) # 24 1ビット左へずらすと2倍左シフトが 2 倍になるのは、10 進数で桁を 1 つずらすと 10 倍になるのと同じ理屈です。
似た用語との違い
+-------------------- CPU --------------------+
入力装置 -->| 制御装置 --指示--> 演算装置(ALU) |--> <a href="/glossary/output-device" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">出力装置</a>
| ^ | |
+--------|--- レジスタ ---+-------------------+
|
<a href="/glossary/storage-device" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">記憶装置</a>(<a href="/glossary/memory" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">メモリ</a>)| 装置 | 役割 |
|---|---|
| 制御装置 | 命令を読み取り各部へ指示を出す |
| 演算装置 | 算術演算と論理演算を実行する |
| 記憶装置 | 命令とデータを保持する |
| 入力装置 | 人の指示を電気信号に変える |
| 出力装置 | 処理結果を人が分かる形にする |
つまずきやすいところ
演算装置と CPU を同じものとして答えてしまう誤りが試験で頻出します。演算装置は CPU の一部であり、CPU は制御装置と演算装置をまとめた呼び名です。
覚え方
制御装置が現場監督、演算装置が実際に手を動かす作業者、と役割で分けます。