メディア

CPUの中枢「ALU」を作ってみようマイコン入門!! 必携用語集(6)(2/4 ページ)

» 2013年08月09日 09時50分 公開
[菅井 賢,STマイクロエレクトロニクス]

加算器

 算術演算の加算、減算ができるALUを作るに当たり、まず、加算について考えてみましょう。図2の真理値表の中のXORを見ていただくと分かりますが、加算の論理演算はXOR(排他的論理和)と同じです(関連記事:第5回 実は足し算しかできない!? 「補数」「シフト」で四則演算しているマイコン)。

 入力のどちらかが1なら、演算結果も1になり、その他の場合は0になります。しかし実際に加算を行う場合は桁上がりを考慮しなければなりません。そこで、桁上がりまで考慮し、加算ができるようにした回路を加算器と呼びます。加算器には、下の桁からの桁上がりを考慮した全加算器と、考慮しない半加算器があります。全加算器は、下の桁で桁上がりが発生すると、それも一緒に加算します。半加算器では加算されません。ALUは複数ビットの加算を行うので、下の桁からの桁上がりを考慮した全加算器が必要です。

 半加算器と全加算器の真理値表を図3、図4に示します。

【図3】半加算器の真理値表
【図4】全加算器の真理値表

 この真理値表に従って論理回路を作ります。サム(SまたはSh)はXOR、キャリー(CまたはCh)はANDを作ればよいのですが、マイコンの内部論理にはCMOSの構成上ANDやORの回路は作れません。NANDやNORやINVなどのように、必ず論理が反転される回路を使わなくてはいけません。そこで、図5と図6のような回路になります。

【図5】半加算器の論理回路
【図6】全加算器の論理回路

複数ビットの加算器を作るには

【図7】複数ビットの加算器

 ALUが8ビットなら、全加算器を8個、16ビットなら16個をつなぎ合わせると図7のように複数ビットの加算器が完成します。

 ここで最下位ビットは下の桁からの桁上がりがありませんので、半加算器でも良いことになります。実際は、半加算器が使われることが多いようです。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.