Tomasuloのアルゴリズム
以下は、Tomasulo のアルゴリズムを実装する上で必要となる考え方である。
命令列の及ぼす結果(例外の発生など)がパイプライン化されないプロセッサと同一であるよう、命令は順序どおりに発行される(ただし、実行は順序どおりではない)。
全ての汎用レジスタおよび Reservation Station レジスタは、「実際の値(real value)」あるいは「仮想的な値(virtual value)」を格納する。命令の発行の過程で、演算結果を出力するレジスタが利用できない場合、最初は仮想的な値が用いられる。また実際の値を計算している機能ユニットは、仮想的な値として割り当てられ、機能ユニットが演算を完了すると、仮想レジスタの値が実際の値に変換される。
機能ユニットはReservation Stationを複数のスロットで使用する。各スロットは、演算の種類や、演算対象のデータなど、一つの命令を実行するために必要な情報を保持する。機能ユニットは命令に必要な入力データが全て「実際の値」になると実行を開始する。