seegongsik
構造

わかりやすく ALU とは

前のレッスンで「足せ」という命令を見ました。では、その足し算は実際にだれがしているのでしょうか。引き算や比較はどうでしょう。CPUの中で計算だけを受け持つ働き手、ALUに会ってみましょう。

01

計算だけを受け持つ部分

CPUの中には、計算だけを受け持つ部分があります。名前はALUです。
二つの数と「何の計算をするか」を受け取ると、その計算をして結果を出します。
電卓の心臓のようなところです。

107
ALU
計算の働き手
結果: 17

二つの数が上から入り、計算の結果が下から出てきます。

ALUは「算術論理演算装置」の略です。
名前はおおげさですが、仕事ははっきりしています。
受け取った二つの数で、言われた計算をすること。それだけをします。

02

ダイヤルで計算の種類を選ぶ

ALUが役に立つのは、一種類の計算しかしないわけではないからです。
「何の計算」というダイヤルを回して足し算・引き算・掛け算のどれかを選ぶと、同じ二つの数でも違う結果が出ます。
下では、二つの数を入れてダイヤルを切り替えられます。

ALU · 足し算
10 + 7
17

二つの数を入れて、計算の種類を選びます。

ダイヤルを変えただけなのに、同じ働き手が違う計算をしました。
この「何の計算」は、じつは前のレッスンの命令が決める値なのです。

03

第6回の加算器はここにいる

ALUを開けてみると、見覚えのあるものがあります。第6回で作った加算器です。
足し算はその加算器が受け持ち、引き算や比較、それにANDやORのような論理演算まで、小さな計算回路が一か所に集まっています。

ALUの中
加算器
第6回で作ったもの (足し算)
引き算回路
減らす計算
比べる回路
どちらが大きいかを判断
論理回路
第5回のAND・OR・NOT
第6回の加算器が、ALUの部品の一つとして働いています

ALUの中に集まった計算回路。

第5回と第6回で一つずつ作った小さな回路は、じつはこのALUを形づくる部品だったのです。
小さなものが集まって、計算の働き手が一人できあがったわけです。

04

「どちらが大きいか」にもALUが答える

ALUの仕事のうち、計算と同じくらい大切なのが比較です。
「この数はあの数より大きいか」「二つの数は等しいか」といった問いに、真か偽で答えます。
この真偽一つが、のちに「もし」という分かれ道の種になります。

>
真

真は1、偽は0。コンピュータにとっては、これも結局0と1です。

「10は7より大きいか」の答えは真です。
この単純な判断が、とても大切なのです。
プログラムが状況を見て道を選ぶことは、すべてこの比較から始まるからです。

05

命令がダイヤルを回す

ここで二つの話が出会います。
前のレッスンで見た命令の前の部分、つまりオペコードが、まさにALUのダイヤルを回します。
「足せ」なら足し算に、「引け」なら引き算にダイヤルが合わせられます。
つまり、ALUがする計算の種類が命令の中に書かれているのです。

ALU · 足し算
10 + 7
17

命令のオペコード → ALUのダイヤル。

命令が何をするかを決め、ALUがその計算をやってのけます。
これでCPUの二つの中心部品がそろいました。
次のレッスンでは、この二つがどうやって一体となって働くのか、CPU全体をのぞいてみます。

一言でいうとALUはCPUの中で計算と比較を受け持つ働き手で、第6回の加算器もその中にあります。命令のオペコードがALUのする計算を決め、比較で出た真偽が「もし」の種になります。
← 構造
このページがお役に立ったなら支援する