読むだけでいい基本情報技術者試験対策6:命令の実行過程その1
今回からは、CPUとメモリがどのように命令を実行していくのかを見ていきます。ハードウェアの勉強の核心はここにあるので、このへんはよく勉強しておくべきでしょう。
コンピュータには大きく5つの装置がありそれは、制御装置、演算装置、記憶装置、入力装置、出力装置です。後者2つ、入力装置と出力装置はその前の3つの装置によって処理された情報を「単に入力する・出力する」だけの装置で、処理そのものに関与していません、つまりオマケみたいなもんです。(重要な部品ですが。)
そこで、CPUと記憶装置との間のやり取り、つまりプログラム(命令)を実行していく過程に絞って考えていくことで処理の過程がスッキリ見えてきます。
まず、命令が記憶装置とCPUの中をどのように行き来しているのかを考えてみましょう。これは命令実行サイクルと呼ばれるもので、次の6段階に分かれています。
①まず、命令を受けるところから始まります。これは命令取得または命令フェッチと呼ばれるものです。命令は命令レジスタで示されます。この命令レジスタは中身が命令部とアドレス部(オペラント部)という2つの区画に分かれています。この2つの区画が合わさって命令文、即ち命令レジスタを構成しています。命令アドレスレジスタは実行すべき命令のアドレスを保持する役割を持っています。
②次に、命令レジスタの命令部を取り出してデコード(解読)を行います。コンピュータが命令を理解する過程です。
③一方、命令レジスタのアドレス部も処理されます。アドレス部はアドレスレジスタに送られます。アドレスレジスタは実行に必要なデータのアドレスや、実行結果を格納するアドレスをメインメモリに指示します。これは実行アドレス計算と呼ばれる過程です。
④③で演算に必要な情報を入れておくアドレスを計算したため、これを演算装置に送ります。これはオペラント取得といいます。
⑤演算結果が③で計算した演算結果を格納しておくアドレスをもとに、再びメインメモリに格納されます。
流れを図式化すると
という感じですね。
さて、少し前にレジスタの説明をしたとき、まだ種類があると言いましたが、その説明をここでしていきます。
復習も兼ねて、命令レジスタは主記憶から取り出された命令を格納するものでしたね。この流れを掴んだ跡なら簡単に理解できると思います。そして命令アドレスレジスタは実行する命令のアドレスを保持しておくところでしたね。プログラムカウンタとも言います。
インデックスレジスタ(指標レジスタ)とは、アドレス指定に用いるアドレスの値を修飾するための増分値を保持するレジスタです。
ベースレジスタ(基底レジスタ)とは、アドレス指定に用いるアドレスの値に加えられる基準のアドレス値を保持するレジスタです。
アキュムレータとは、非演算数と演算結果を保持するレジスタです。累算器ともいいます。
凡庸レジスタとは様々な用途に使用されるレジスタです。特定の機能は持っていません。
ここで様々なレジスタが出てきましたが、全部ここで理解する必要はありません。次回の説明を読めば理解できます。
今回はここまでです。次回は命令の実行時のアドレスをどう指定するかという話をしていきます。
このサイトも参考にしました。
【命令実行サイクル】プロセッサが本当にやっていること | かながわグローバルIT研究所