パイプラインハザード 【pipeline hazard】

概要

パイプラインハザード(pipeline hazard)とは、マイクロプロセッサ(MPU/CPU)のパイプライン処理で発生する問題の一つで、命令間の依存関係などによりパイプライン処理を止めたりやり直さなければならなくなること。いくつかの要因によって発生する。

パイプライン処理CPU内部で複数の命令を並行して実行する仕組みで、一つの命令を複数の段階に分割し、それぞれを別の回路で実行する。ある命令がある段階を実行している時、一つ前の命令は次の段階を、一つ後の命令は前の段階を実行できるため、常に数個から数十個の命令の実行を同時に進めることができる。

前後に並んだ一連の命令が常に整然とパイプライン実行できるとは限らず、何らかの理由で進行が滞ったり、途中まで進めた命令を破棄してやり直さなければならない状況が生じることがある。これをパイプラインハザードという。原因によりいくつかに分類される。

データハザード

ある命令が直前の命令の処理結果を利用するような場合に、実行結果を待たなければパイプラインが進められない状況が発生する。これを「データハザード」という。

構造ハザード

複数の命令をパイプラインで並行に処理する過程で、同じタイミングで同じハードウェア資源にアクセスしようとするなど競合が発生し、処理がつっかえることがある。これを「構造ハザード」という。

制御ハザード/分岐ハザード

条件分岐実行の流れが二つに分かれる場合、条件の評価を待たずに先行して片方の分岐の命令群をパイプラインに投入することになるが、条件を評価した結果もう一方に分岐することが確定した場合、パイプラインの内容を破棄して正しい分岐の命令群を投入しなおさなければならない。これを「制御ハザード」あるいは「分岐ハザード」という。

(2020.5.17更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる