Rockのブロックダイヤグラムで特徴的なユニットは、命令キューに命令を戻す延期命令キューという構造である。この延期命令キューは、次に述べるように、Rockのシングルスレッド実行性能向上の鍵となるユニットである。

RockはScout(偵察)という動作モードを持っている。このモードでは、L1D$のミス、uDLBミスや割り算命令などの時間が掛かる命令に遭遇すると、実行中のスレッドのアーキテクチャレジスタの状態をチェックポイントとしてフリーズする。そして、このアーキテクチャレジスタの状態を0サイクルで、ペアのスレッド(スカウトスレッド)のアーキテクチャレジスタにコピーし、スカウトスレッドは時間の掛かる命令が終わったかのように先の命令の実行を続けていく。これは、ソフトウェアの用語で言うとforkに相当する。

スカウトスレッドの動作を、発表における説明を元に筆者の推定を含めて作ったのが次の図である。命令nがA番地のデータをロードするLD A命令で、このロードがキャッシュをミスするとレーテンシの長い命令となるので、forkが行われる。メインスレッドは命令nの完了を待っているが、スカウトスレッドは命令n+1から命令の実行を続ける。そして、命令n+1はB番地に対するロード命令であり、これもキャッシュミスをするが、(明確には述べられていないが、多分、)スカウトスレッドはLD B命令の完了を待たず、命令n+2、n+3と実行を続けると思われる。

そして、メインスレッドが命令nのLD A命令の実行を完了すると、スカウトスレッドの実行を停止して、メインスレッドに一本化するjoinを行う。スカウトスレッドが実行した命令は、一見、無駄のようであるが、この図のように、LD B命令の実行によるメモリアクセスが開始されており、メインスレッドが命令n+1を実行する時点では、既にデータがキャッシュに到着しているか、到着していない場合でも、少ない待ち時間でB番地のデータが到着する。

スカウトスレッドの動作(筆者の推定による図)

このようにスカウトモードを使うと、シミュレーションによるTPCCベンチマークの実行性能の評価では、40% IPC(Instruction Per Cycle)が向上したという。また、これは、スカウトOffの状態でL2$の量を1MBから8MBに増加したのと同じ性能向上であるという。