コンピュータの仕組み③
前回
http://abcyosou.hatenablog.com/entry/2018/10/03/221029
今回も、プログラムがどのようにして、実行されるかの解説をしていきたいと思います。
演算サイクル
ALUを使って演算したいのですが、
ALUだけでは、例えば、2+3=5と計算した場合
演算結果5を次の演算の入力として、使うことができません。
以下のようなc言語のプログラムを実行するすることができません。
int a=2+3;//a←2+3
a=a+3;//a←a+3
アセンブラ(arm64)だったら、以下のようなプログラムが実行できません。
mov r2,#2 //r2←2
add r1 ,r2 ,#3 //r1←r2+3
add r1,r1,#3 //r1←r1+3
そこで、ALUとレジスタファイルを接続したいと思います。
この図のALUが算術論理演算ユニットで演算をするところで、RFというのは、レジスタファイルの略で、演算する値の読み出しと演算結果の書き込みをする場所です。
演算サイクルとは、
①.レジスタファイルから演算の入力を読み出す
②.レジスタファイルから読み出された値をALUで演算する
③.ALUで演算された結果をレジスタファイルに格納する。
以下、1から3を繰り返す。
これがコンピュータの基本です。
しかし、ALUとレジスタファイルだけでは不十分です。以下の三つの問題があります。
1.記憶容量が足りない
2.制御信号がない
3.条件分岐や繰り返しも実現したい
まとめ
・演算サイクル
・ALUとレジスタだけでは不十分
今回は演算サイクルについて、解説しました。
次回は、メモリと命令実行サイクルの話をします。