CPUの中枢「ALU」を作ってみよう:マイコン入門!! 必携用語集(6)(4/4 ページ)
CPUはマイコンの中枢ですが、さらにその中で演算を行うユニットがALU(Arithmetic and Logic Unit)です。マイコンの核に相当するといってもよいでしょう。実際の算術演算、論理演算はALUで行われます。今回は、ALUの中身がどうなっているかを説明します。
OR回路
ORを作るには、OR1とNAN2とINV1を組み合わせます。そこで、sという信号を使います。s=0にすると、NAN1の出力が1に固定になります。これは、NAN2の入力ですので、NAN2の入力が1に固定になり、NAN2はインバータと同じ働きになります。OR1とNAN2の複合ゲートはNAN2がインバータになるので、NORになります。
そして、このNORとINV1でORができます。そこで、SW1をoに切り替えるとSはI1とI0のORになります。
図10を見てください。この図でも、図8でOR回路を構成する要素だけ黒色にしてハイライトしましたので、分りやすいと思います。
図10の解説
s=0, S0=0にすると、 NAN2の入力が1になり、NAN2はインバータと同じになります。OR1とNAN2のインバータとINV1でORができます。S0=0 , S1=0, S2=1にすると SW0でp、SW1でoのINV1を選択するので、SはI0とI1のORになります
反転(インバート)回路
最後に反転(インバート)回路を作ります。皆さんはもうお分かりだと思いますが、減算器のところでi1にインバータを追加しましたので、これをそのまま使います。I1を反転させて、I0に0を入力して加算すれば、I1の反転した値が得られます。
制御信号S0〜S2とs
演算機能を切り替えるためにS0、S1、S2、sの4つの信号が使われることが分ります。これらの信号は、フラッシュメモリから読み出した命令を翻訳(デコード)したデコーダから、演算の種類(加算、減算、AND、OR、反転)に合った信号の値になってALUに送られます。これらの信号によってALUはさまざまな演算器に切り替えられます。
図8に示した回路をn個つなぎ合わせることによって、nビットのALUを作ることができます。
その他の回路
実際のALUには、この他にもさまざまな回路が付いています。例えば、桁上がりの多い場合に、桁上がりの演算だけを高速に処理するキャリー・ルックアヘッド回路や、何も演算しないで通過させる回路、I0の値を1に固定したり0に固定したりする回路。少し高級なマイコンだとALUの中に乗算回路を組み込ませる場合もあります。これらの回路は章を改めて説明したいと思います。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 実は足し算しかできない!? 「補数」「シフト」で四則演算しているマイコン
皆さんご存じのように、マイコンはいろいろな演算を行います。でも、実は算術演算の中では足し算しかできないんです。マイコンは足し算と、論理反転とシフトを組み合わせて、その他の算術演算(引き算、掛け算、割り算)を実現しています。では、どうやって演算しているのかを説明します。 - マイコンのソフト開発って、どうやるの? ――「マイコン開発」で知っておきたい用語
マイコンについて、ある程度分かってきたところで、今回は、「マイコン開発」で覚えておきたいいくつかの用語を紹介します。同時に、マイコン開発で使用する開発ツール(開発環境)や全体的な開発の流れも解説します。 - マイコンの中枢「CPU」とは
お待たせしました。いよいよCPUの話です。CPUはマイコンの中枢部分に相当します。30年くらい前のマイコンはCPUだけで構成されていました。メモリや周辺機能は別のICとしてプリント基板上でマイコンの周辺装置として接続されていました。それほどマイコンにとって大切な部分です。