この記事ではコンピュータの五大装置と命令実行サイクルについてIT初心者にも分かりやすく解説します。
コンピュータの五大装置
- 制御装置・演算装置・記憶装置・入力装置・出力装置を五大装置と言う。
- 制御装置と演算装置を合わせてCPUと言う。
- 命令実行サイクルとはCPUが命令を実行する流れのこと。
- 以下の順番でCPUは命令を実行する。
①命令フェッチ
②命令の解読
③実効アドレス計算
④オペランド読出し
⑤命令の実行
⑥演算結果格納
応用情報ではコンピュータの五大装置と命令実行サイクルに関する問題がたまに出ます。是非最後までご覧ください。
コンピュータの五大装置とは
コンピュータは、制御装置・演算装置・記憶装置・入力装置・出力装置の五つの装置から構成されています。制御装置と演算装置を合わせてCPUと言います。
入力装置と出力装置は分かりやすいですね。
入力装置はマウスやキーボードなど、人間がコンピュータにデータや命令を入力するための装置で、出力装置はディスプレイなど、コンピュータが処理した結果を出力するための装置です。
制御装置・演算装置・記憶装置は人間が触ったり見たりする必要が無いので、筐体と呼ばれる箱に入れて保護されています。
五大装置にはそれぞれ以下の役割があります。
制御装置 | 記憶装置にある命令を取得・解読し、他の装置に命令を伝達する装置。 その名の通り、他の装置を制御している。 |
---|---|
演算装置 | 記憶装置にあるデータから足し算・引き算などの四則演算や大小比較などの比較演算といった演算を行う装置。計算結果は記憶装置に返す。 |
記憶装置 | データや処理内容であるプログラムを記憶する装置。 記憶装置には主記憶装置と補助記憶装置がある。 |
入力装置 | コンピュータの外部からデータや命令を指示する装置。 |
出力装置 | コンピュータの処理結果を外部に表示・出力する装置。 |
記憶装置には主記憶装置と補助記憶装置がある
記憶装置には主記憶装置と補助記憶装置があります。主記憶装置はメインメモリとも言います。
主記憶装置はコンピュータが動くために必要なプログラムやデータを一時的に記憶する装置です。CPUとやり取りできるほど処理が速いですが、電源が消えると記録している情報も消えるという特徴があります。
補助記憶装置はプログラムやデータをずっと保持する装置です。処理は遅いですが、電源が消えても記録している情報はそのまま保持出来ます。長期的に記録した場合に使います。
コンピュータの中では、五大装置が助け合いながら命令を処理していきます。
下の絵はデータと制御の流れをざっくり表したものです。
制御の流れはとてもシンプルで分かりやすいですね。
制御装置が全ての装置を制御しています。制御装置が記憶装置にデータの記録を指示したり、出力装置にデータを出力するように指示します。
データの流れも入力装置と出力装置は分かりやすいですね。
入力装置と出力装置はそれぞれデータの入り口と出口になっています。
- 入力装置を通じて人間が入力した命令やデータは記憶装置に保管されます。
- CPUが記憶装置とやり取りしながら演算を行い、最終的に出て来た結果を記憶装置に保管します。(命令実行サイクル)
- 記憶装置に保管された演算結果が出力装置から出力されます。
②のCPUと記憶装置がデータをやり取りしながら演算を行う手順を命令実行サイクルと言います。命令実行サイクルについて詳しく見てみましょう。
命令実行サイクル
命令実行サイクルの大まかな流れは、下のようになります。
制御装置には主記憶装置から取り出した命令や次に実行するべき命令の情報を保持するための記憶装置を持ち、それをレジスタと言います。レジスタには次のような種類があります。
命令レジスタ | 主記憶装置から取り出した命令を一時的に記録する。 |
---|---|
命令アドレスレジスタ (プログラムカウンタ) |
次に実行する命令が主記憶装置のどこに格納されているかを記録する。 主記憶装置上の場所を示す値をアドレスと言います。 |
アドレスレジスタ | 命令を実行する際に必要なデータのアドレスを記録する。 |
①命令フェッチ(命令取出し)
命令アドレスレジスタには次に実行する命令が主記憶装置のどこにあるか記録されています。なので、そこから命令を取り出して命令レジスタに記録します。これを命令フェッチと呼びます。
ちなみに、命令は命令部とアドレス部で構成されています。
命令部は四則演算や比較演算など実行する演算を指示して、
アドレス部は処理対象のデータが主記憶装置のどこに格納されているかを指示します。
アドレス部はオペランド部とも言います。
②命令の解読
命令の解読では、制御装置の解読器が命令部の演算内容を解読し、演算装置に指示します。
解読器はデコーダとも言います。
③実行アドレス計算
アドレスレジスタには、演算するのに必要なデータのアドレスや演算結果を格納するアドレスを記録します。
実行アドレス計算では、命令のアドレス部をアドレスレジスタに送り、演算に必要なデータの格納場所や演算結果を格納する場所を指示します。
④オペランド読出し
オペランド読出しでは、アドレスレジスタに記録されているアドレスをもとに、演算に必要なデータを演算装置に送ります。
⑤命令の実行
演算装置が演算を実行します。
⑥演算結果格納
計算結果を主記憶装置に格納します。
応用情報技術者試験での出題例
令和6年度秋期問8
応用情報技術者
午前試験 令和6年度秋期問8
RISCプロセッサの5段パイプラインの命令実行制御の順序はどれか。ここで,このパイプラインのステージは次の五つとする。
① 書込み
② 実行とアドレス生成
③ 命令デコードとレジスタファイル読出し
④ 命令フェッチ
⑤ メモリアクセス
ア ③,④,②,⑤,①
ウ ④,③,②,⑤,①
イ ③,⑤,②,④,①
エ ④,⑤,③,②,①
正解は”ウ”
プロセッサはCPUと同じ意味と捉えて問題ありません。
CPUの命令実行制御の順番は、次の通りです。
①命令フェッチ:主記憶装置から実行する命令を取り出し、命令レジスタに記録する。
②命令デコードとレジスタファイル読出し:命令レジスタに格納した命令を解読器でデコードし、演算に必要なデータの格納場所を記録しているアドレスレジスタから読出します。
③実行とアドレス生成:演算装置が演算を実行し、演算結果を格納するアドレスを生成します。
④メモリアクセス:演算結果を格納するために主記憶装置にアクセスします。
⑤書込み:主記憶装置に演算結果を格納する。