近年のCPUは、パイプライン処理やアウト・オブ・オーダー実行を行うことが多い。こうしたCPUでは、先行命令より後続命令が先に処理を終える可能性があるので、命令の依存関係が問題になる。命令の依存関係は、以下のように分類できる。
フロー依存
前の命令の結果を、後続の命令が使用する場合。
逆依存
レジスタに関して、前の命令が読み出した後に、後続の命令が書き込まなくてはならない場合。これは、レジスタの個数が多ければ、後続の命令は別のレジスタに書き込めば問題ない(レジスタ・リネーミングという)。
出力依存
レジスタに関して、前の命令と後続命令が結果を同じ場所に書き込む場合。これも、命令の結果を別の場所に書き込めるようにできれば問題ない。
脚注[脚注の使い方]^ a b Hisa Ando『コンピュータアーキテクチャ技術入門 : 高速化の追求×消費電力の壁』技術評論社、2014年6月5日、42頁。ISBN 978-4-7741-6426-7。
関連項目
機械語
ビット演算