これがこんなに長期連載になるとは思わなかった・・・。
まあいいや。
今日は計算機の構造についてお話します。
計算機の基本構造は難しいようでいて、簡単です(たぶん)。
(ここではロード・ストアアーキテクチャについて説明します。)
まずは、計算機のメタファについて
現在の形の計算機はチューリングが考え出したわけですが、
チューリングは何を見て計算機を見出したかというと、
人が計算する時に筆算とかを書きとめておく動作です。
つまり、計算機は「人が計算するときにメモを取りながら作業する」ように動作します。
具体的には、どう動作するか、少し専門用語を出します。
IF(命令フェッチ) :プログラムカウンタが保持するメモリアドレスにフェッチします。
D(デコーダ) :メモリから読み出した命令をデコードして各レジスタの処理準備をします。
EX(演算処理):該当する演算を行います。(アドレスを求める加算等)
MA(メモリアクセス) :ロード・ストア命令の場合メモリアクセスを行い、そうでない場合は何もしません。
S(結果の格納と命令の後処理):ロード命令ではデータをレジスタへ、ストア命令の場合はキャッシュメモリに書き込みます。
以上、5つの命令をセットで、一つの命令を行います(マシンサイクル)。
えっと、つまり、平たく言うと
・命令フェッチで、まずメモリという記憶装置に記憶してある命令を書き出します。
・その命令は何なのか解読します。
・その命令通りに計算します。
・結果を紙に書き留めます。
・答えならそれを解答欄に書きます。
ということです。
電気機器にこのことを行わせると、とてつもなく早く、また並列に行うことが可能です。
そのことを命令のパイプライン化だとか、命令レベルの並列処理だとか言ったりするのですが、
その話はまた機会があれば。