応用技術者試験に合格するのを目標にITパスポートから基本情報技術者試験と段階を踏んで学習しています。
アウトプットのための記事となります。
さて、CPUはコンピュータの頭脳と言われていますが、どのような動作をするのでしょうか。
基本技術者試験では、CPUは重要度の高い頻出項目となっていますので、しっかりと理解し用語も正確に覚えていきましょう。
CPUの動作と処理方法
コンピューターのハードウェアは、
- 制御装置
- 演算装置
- 記憶装置
- 入力装置
- 出力装置
という五大装置で構成されています。
CPUは主にどの役割を果たす装置でしょうか。
そうですね。
制御装置と演算装置です。
CPUはコンピュータの頭脳だと言われますが、記憶装置ではないので注意してください。
CPUの内部には一時的に命令を記憶しておく「レジスタ」というものもありますが、CPUの主な役割は演算の処理や制御であって記憶装置がメインではありません。あくまでも制御と演算を行う装置なのです。
CPUは補助記憶装置(ハードディスクやメモリカード)から主記憶装置(メインメモリ)へと読み込まれたプログラムから、命令を順番に取り出して実行します。
CPUが命令を実行するために取り出した情報は「レジスタ」と呼ばれるCPU内部の記憶装置に保持します。
- 命令の取得(命令フェッチ)
- 命令の解読(デコード)
- 対象データ読み出し(オペランドフェッチ)
- 命令実行
- 結果の書き込み
この5つの手順を繰り返し行います。
1連の流れを「命令サイクル」といいます。
- フェッチとは、メモリから命令やデータを取得すること
- オペランドとは、処理(オペレート)の対象となるデータのこと
詳しくは後ほど説明していきます。
命令サイクルの命令もデータもメインメモリに記憶してあって、必要の都度メインメモリから取り出して命令を実行します。
この仕組みをプログラム格納方式(プログラム記憶方式)といいます。
現在使われているコンピュータはこの仕組みを利用したものでノイマンコンピュータとも呼ばれています。
CPU 命令の実行手順
①命令フェッチ(命令の取り出し)
メインメモリから命令を取得します。
CPUの方では、CPUの内部にある命令レジスタとプログラムカウンタを使います。
プログラムカウンタの中の値を参照し、メインメモリのメモリアドレスから命令を取り出します。その命令を命令レジスタに記憶させます。(この参照の仕方はいろいろあります。)
その後プログラムカウンタは数値を1つ増やして、次の命令に進みます。
②デコード(命令の解読)
①で取り出した命令は命令レジスタに記憶されていましたね。
命令レジスタは命令部とオペラント部から構成されています。
命令部には、実行する命令の名称(命令についている番号)
オペラント部には処理対象のデータの場所が指定されています。
命令部の情報が命令デコーダに送られます。
デコーダは命令を解読し、CPU内部のどの部分(ALUや)を動作させるかを決める司令塔としての役割があります。
ちなみにデコードとは復号(暗号を元の平文に直すこと)の意味です。
③オペランドフェッチ(対象データ読み出し)
②で受けた命令が演算だったとします。その演算のデータはどこを参照すれば良いのでしょう?
命令レジスタは命令部とオペラント部で構成されていましたね。
オペラント部に対象データの情報(ありか)があるんですね。
また、とってきた対象データは汎用レジスタに記憶させておきます。「汎用」というのは、一つのものを他の用途でも使うことです。つまりいろんなデータを格納できるレジスタということですね。
④実行
命令が演算の場合ですが、
演算の汎用レジスタに記憶された対象データをALUなどの演算装置に演算をさせて、演算結果を汎用レジスタに書き込み終了となります。
以上のように①〜④までの手順を繰り返し行うのがCPUの動作となります。
オススメの参考書
ITパスポート試験
基本情報技術者試験