CPUが命令を実行する仕組み — 命令サイクルとパイプライン
導入
スマートフォンで動画を再生しながらSNSを見ても、処理が止まらないのはなぜでしょうか。その秘密は、CPUが命令を「流れ作業」でこなす仕組みにあります。この単元では、命令が実行される4つの段階と、計算問題に直結するパイプライン処理の仕組みを確認していきます。
くわしく知ろう
CPUはプログラムの命令を一つずつ取り出して実行します。この流れを「命令サイクル」と呼び、フェッチ(メモリから命令を読み込む)→デコード(命令を解析する)→実行(演算装置が計算する)→ライトバック(結果をレジスタやメモリに書き戻す)の4段階で構成されます。プログラムカウンタ(PC)は次に実行する命令のアドレスを保持するレジスタで、フェッチのたびに自動更新されます。フラグレジスタは演算結果の「ゼロ」「桁あふれ」などの状態を記録し、条件分岐に使われます。
パイプライン処理は命令サイクルの各段階を同時並行で実行する技術です。N段パイプラインでM個の命令を処理するクロック数は「N + M − 1」の式で求められます。4段で6命令なら 4 + 6 − 1 = 9 クロック、非パイプライン時の 4 × 6 = 24 クロックと比べてスループットが大幅に向上します。
ただし「ハザード」が生じると効率が落ちます。前命令の結果が確定する前に後続命令が参照する「データハザード」、分岐先が確定するまで次命令を読めない「制御ハザード」、複数命令が同一回路を競合する「構造ハザード」の3種類があります。
RISC(縮小命令セット)は固定長命令でパイプライン向き、CISC(複合命令セット)は可変長の複雑命令で1命令で多くの操作をこなせます。
具体例
たとえば5段パイプラインのCPUで10命令を処理する場合、クロック数は 5 + 10 − 1 = 14 クロックです。一方、パイプラインなしで1命令ずつ処理すると 5 × 10 = 50 クロックかかります。パイプライン処理によってスループットが大幅に向上することが分かります。
まとめ・試験ポイント
- 命令サイクル=フェッチ→デコード→実行→ライトバックの4段階
- プログラムカウンタ(PC)=次に実行する命令のアドレスを保持するレジスタ
- パイプライン実行クロック数=段数 + 命令数 − 1(段数 × 命令数ではない点に注意)
- ハザード3種類=データハザード・制御ハザード・構造ハザード
- RISC=固定長命令・パイプライン向き、CISC=複雑命令・可変長
- 試験ではパイプラインのクロック数計算とハザードの種別分類が繰り返し出題される
学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。
入門試験100問に挑戦する