予約ステーション

IntelのNehalemマイクロアーキテクチャの一部である予約ステーション

統合予約ステーション(統合スケジューラとも呼ばれる)は、レジスタ名の変更を可能にするCPUマイクロアーキテクチャの分散機能であり、動的命令スケジューリングのためのTomasuloアルゴリズムによって使用される。[ 1 ]

予約ステーションは、CPUがデータ値を計算後すぐに取得して再利用することを可能にします。データ値がレジスタに格納されて再読み込みされるまで待つ必要はありません。命令を発行する際には、入力値を読み出す予約ステーションを指定できます。複数の命令が同じレジスタに書き込む必要がある場合、すべての命令が処理を続行し、(論理的に)最後の命令のみに実際に書き込む必要があります。実行を開始する前に、オペランドが使用可能かどうか(RAW)、および実行ユニットが空いているかどうか(構造的ハザード)を確認します。

命令は利用可能なパラメータと共に保存され、準備が整うと実行されます。結果は、対応する命令を実行するユニットによって識別されます。暗黙的なレジスタ名変更により、 WARおよびWAWハザードが解決されます。これはフルアソシアティブ構造であるため、コンパレータのコストが非常に高くなります(処理ユニットから返されるすべての結果を、保存されているすべてのアドレスと比較する必要があるため)。このコストは、マルチイシューでは劇的に増加します。

Tomasuloのアルゴリズムでは、命令は予約ステーションに順番に発行され、予約ステーションは命令とそのオペランドをバッファリングします。オペランドが利用できない場合、予約ステーションは共通データバス上でオペランドが利用可能になるまで待機します。オペランドが利用可能になると、予約ステーションはそれをバッファリングし、命令の実行を開始できます。

機能ユニット(加算器や乗算器など)はそれぞれに対応する予約ステーションを備えています。機能ユニットの出力は共通データバスに接続され、予約ステーションは必要なオペランドを待機しています。

参考文献

参考文献

  1. ^ Hwu, Wen mei (2011年5月1日). Padua, David (編). Encyclopedia of Parallel Computing . Springer US. pp.  1962– 1966. doi : 10.1007/978-0-387-09766-4_280 – Springer Link経由.