Scoreboarding

Scoreboarding とは、CDC 6600で用いられた、命令の衝突がなくハードウェアが利用できる状態のときにアウト・オブ・オーダー実行を行うためにパイプラインを中央管制的にスケジュールするための方法である。Scoreboarding では、すべての命令のが記録され、各命令は過去に発行したまだ完了していない命令との衝突がないとスコアボードが判断した場合のみ解放される。ある命令の実行が安全ではないと判断され、実行を停止した場合には、その命令が発行されたときに存在していたすべての依存関係が解決するまでスコアボードが実行のフローを監視しつづける。
ステージ.
命令はインオーダーでデコードされ、以下の４つのステージを経て実行される。
アルゴリズム.
スコアボードを制御する詳細なアルゴリズムを示す:
注目すべき点.
スコアボードの手法では、機能ユニットが一つも利用できない場合、発行のステージを停止させなければならない。この場合、この構造的な（機能ユニットによる）ハザードが解決するまで将来実行できる命令が待機する必要がある。Tomasuloのアルゴリズムのような技法では、レジスタリネーミングを用いて構造的なハザードや WAR や WAW の依存関係を解決できる。