Hall > Tips > 021 > 07
11/27
パイプライン処理
究極のパイプライン処理 — 数10倍程度の速度にしかならない
- プログラムが持つデータ依存関係からの制約だけが実行速度を決定する
- 資源の枯渇によるデッドロックを起こさない範囲
- データ依存関係の動的検出
- 資源の動的割付
- 資源 ⇒
- 演算器など ⇒ パイプライン内での確保
- メモリ・レジスタなど ⇒ 命令間にまたがる確保
WAR ハザード
- 後続命令の write が先行命令の read 以前に行われる
- Out of Order Completion が行われる場合
- パイプラインの早いフェーズで write が行われる場合
WAW ハザード
- 先行命令の write が後続命令の write より後
WAR, WAW の解決
- パイプラインのストール
- ソフトウェアによる命令スケジューリング
- 遅延スロットの利用(メモリのロード / ストア)
- 動的命令スケジューリング
- データ依存関係・逆依存関係に基づく命令実行制御
- 必要ならばレジスタ・リネーミングを行う