【コンピュータシステム】パイプライン処理のスピードダウン原因!「パイプラインハザード」|情報処理問題1000本ノック
CPUの高速化技術「パイプライン処理」の効率を下げてしまうボトルネック現象。「パイプラインハザード」の定義と、試験でよく問われる3つのハザードの分類を攻略しましょう。
1. 【 問題 】:ハードウェア(CPUの制御・パイプライン処理)
【 問題 】 CPUのパイプライン処理に関する記述です。パイプライン処理の過程において、依存関係やリソースの競合などにより、本来予定していたクロックサイクル通りに後続の命令を実行できず、処理に遅延(ストール)が発生する現象を表す言葉はどれか。
(ア)パイプラインハザード(Pipeline Hazard)
(イ)パイプラインスパート(Pipeline Spurt)
(ウ)アウトオブオーダー(Out-of-Order)
(エ)ブランチターゲット(Branch Target)
2. 正解:
正解:(ア)パイプラインハザード(Pipeline Hazard)
3. 解説:「スムーズな流れ作業がストップしてしまう3つの障害!」
パイプラインハザードが発生すると、CPUはハザードが解消されるまで命令の実行を一時停止(**ストール / バブルの挿入**)せざるを得なくなり、処理性能が低下します。
ハザードには発生原因によって以下の3つのパターンが存在します。
| ハザードの種類 | 発生原因・仕組み | 主な対策・回避技術 |
|---|---|---|
| 1. 構造ハザード (Structural Hazard) |
複数の命令がハードウェア資源(メモリや演算器など)を同時に使おうとして競合することで発生。 | キャッシュの分離(命令用とデータ用の分離など)、ハードウェアの増設 |
| 2. データハザード (Data Hazard) |
先行する命令の演算結果(データ)が確定する前に、後続の命令がそのデータを参照・使用しようとして発生。 | フォワーディング(バイパス)、レジスタ・リネーミング、アウトオブオーダー実行 |
| 3. 制御ハザード (Control Hazard) |
分岐命令(IF文など)において、分岐先が決定する前に誤った次の命令をパイプラインに読み込んでしまうことで発生。 | 分岐予測(Branch Prediction)、遅延分岐(Delayed Branch) |
1. 理解のコツ: 「工場のベルトコンベア」で例えてみましょう。
・構造ハザード:工具(演算器)が1個しかなくて2人の作業員が奪い合う。
・データハザード:前の人の塗料(計算結果)が乾くのを待たないと、次の作業ができない。
・制御ハザード:次にどの製品を作るか(分岐先)が決まるまで、どの部品を流せばいいか分からない。
2. 試験対策の視点: 基本情報技術者や応用情報技術者試験で頻出の分野です。
「パイプラインで命令が実行できない/遅延する現象」=パイプラインハザードという基本定義に加え、「データハザード ➔ フォワーディング」「制御ハザード ➔ 分岐予測」という対策技術のペアもセットで出題されます!
4. まとめ
パイプライン処理において、リソース競合・データ依存・条件分岐などが原因でクロックサイクル通りに命令が実行できなくなる現象。これがパイプラインハザードです。発生原因となる3つの種類と回避策も含めて完璧に覚えておきましょう!