パイプライン処理の動作が停止すること。
例えば計算結果がレジスタやメモリに書き込まれないうちに、そのレジスタやメモリを読み出そうとした場合、後の命令は前の命令が終了するまで待機せざるを得ない。こうして自動的に待機させられることをストールといい、ストールの原因になったことをハザードという。
ハザードにはデータ依存性ハザードと構造依存性ハザードがある。
これらとは別に、コンピュータのハングアップのことをストールということもある。
例えば、次のようなプログラムがあったとする。
この場合、(2)の掛け算は(1)の演算結果を利用するので、(1)の演算が終了するまで(2)は実行できない。
このような状況を、データ依存性ハザード(data dependent hazard)またはレジスタ依存性ハザードという。
データ依存性ハザードには次の3種類がある。
このうち、WAWとWARは、投機実行に対応するプロセッサには必ずあるレジスタリネーミング機能により現在は技術で解決されている。
もしハザードが起きそうな時には、CPUはレジスタの対応付けを適時変更することによって、前後の依存性を断ち切る。
なお、RAWについては、現在もハザードを回避する方法は存在しない。