命令語からみるキャッシュとレジスタの違い!
こんにちは!
今回は、
機械語の命令について説明します。
プログラムは複数の命令から出来ており、
難しいプログラムほど、たくさんの命令が
複雑に絡み合っています。
機械語を知っていると、
CPUの基本動作の
断然イメージが
しやすくなります!
また、最後まで読んでいただければ、
キャッシュとレジスタの違い
がはっきりします!
では説明していきます!
機械語の命令は、
命令部(オペコード)
アドレス部(オペランド)
に分かれます。
オペコードは命令の内容
オペランドはデータがある場所
(レジスタ番号やキャッシュ上のアドレス)
を示しています。
CPU が計算するには、
データがCPUの手元(レジスタ)に
存在する必要があります。
上の機械語の命令は、
"ADD"という足し算の命令です。
その結果をレジスタAに保存します。
命令部は、ADDになっていますが、
もしこれがSUBなら、
減算(引き算)になります。
もしこれがLOADという命令ならば、
下のようになります。
データをキャッシュから、
レジスタまで転送するときに使われます。
ここで、あなたは
お気づきになられましたでしょうか?
ADD(足し算)をするには、
LOADをする必要があります。
※キャッシュからレジスタにデータを転送させて、
手元(レジスタ)に置かないと計算できない。
つまり、
α=β+γを行うには、
LOAD β B
LOAD γ C
ADD α β γ
という命令を処理しなければなりません。
アドレスB(キャッシュ)にある
データをレジスタβに格納
アドレスC(キャッシュ)にある
データをレジスタγに格納
データを足してレジスタαに格納
という意味になります。
今回はここまでです。
読んでいただいてありがとうございました。
次回もよろしくお願いします。