4つのスケジューラーで命令を分別処理
次の「Drive 1」というステージは、μOp Queueから命令を取りこんで次の「Drive μOp to Allocate」に渡す作業を行なう。Drive 1は最大で、3μOpを同時にハンドリングできる。
ここで取り込んだ命令を「Re-Order Buffer」(ROB)に登録したり、Register Fileへの割り当てや、Load/Store命令のキューへの登録をするのが、次の「Allocate」ステージである。Willametteの場合、ROBは126エントリ、Register Fileは128エントリが用意される。またLoad/Store命令は、それぞれ48/24エントリのキューが用意されている。
これに続く2ステージは「Register Renaming」で、命令中のレジスタ指定を、Allocateで割り当てたRegister Fileに置き換えたりする処理をする。次の「Queue」ステージは、Renamingが終わった命令をLoad/Storeとその他に分離して、それぞれ異なるスケジューラーに割り当てて送り出す。
「Schedule 1~3」は3サイクルを要する。パイプライン構造図ではスケジューラーを上下2つに分けているが、厳密に言えば以下の4つに分かれている。下のスライドを見るとわかりやすい。
- Integer Fast Scheduler
- Simple FP Scheduler
- Slow ALU/General FP Scheduler
- Memory Scheduler
「Integer Fast ALU Scheduler」というのは、端的に言えばx86命令がそのままひとつのμOpで表現される類の、処理が簡単な命令用スケジューラーだ。同様に、「Simple FP Scheduler」も処理が簡単な浮動小数点演算のスケジューラーである。「Memory Scheduler」はLoad/Store命令専用。「Slow ALU/General FP Scheduler」は、それ以外の命令全部を担当するスケジューラーである。まずQueueの出力をいったん個別のQueueで受け、それを個々のALUに向けて割り当てるのが、このSchedule 1~3の処理となる。
Scheduleにより、実行ユニットにあわせて別々の経路で命令が整理されて送り出される。これを実際に各実行ユニットに発行するのが「Dispatch」で、これに2サイクルを要する。なお、上のスライドを見ると、同時7命令が発行できそうに思えるが、実際にはWillametteの命令発行ポートは4つしかなく、どう頑張っても同時4命令しか発行できない仕組みだ。
DispatchとExecuteの間にある「Register File」というステージは、演算に必要な値をRegister Fileから読み出す処理である。これにも2サイクルを要する。
この連載の記事
-
第807回
PC
Core Ultra 200H/U/Sをあえて組み込み向けに投入するのはあの強敵に対抗するため インテル CPUロードマップ -
第806回
PC
トランジスタ最先端! RibbonFETに最適なゲート長とフィン厚が判明 IEDM 2024レポート -
第805回
PC
1万5000以上のチップレットを数分で構築する新技法SLTは従来比で100倍以上早い! IEDM 2024レポート -
第804回
PC
AI向けシステムの課題は電力とメモリーの膨大な消費量 IEDM 2024レポート -
第803回
PC
トランジスタの当面の目標は電圧を0.3V未満に抑えつつ動作効率を5倍以上に引き上げること IEDM 2024レポート -
第802回
PC
16年間に渡り不可欠な存在であったISA Bus 消え去ったI/F史 -
第801回
PC
光インターコネクトで信号伝送の高速化を狙うインテル Hot Chips 2024で注目を浴びたオモシロCPU -
第800回
PC
プロセッサーから直接イーサネット信号を出せるBroadcomのCPO Hot Chips 2024で注目を浴びたオモシロCPU -
第799回
PC
世界最速に躍り出たスパコンEl Capitanはどうやって性能を改善したのか? 周波数は変えずにあるものを落とす -
第798回
PC
日本が開発したAIプロセッサーMN-Core 2 Hot Chips 2024で注目を浴びたオモシロCPU -
第797回
PC
わずか2年で完成させた韓国FuriosaAIのAIアクセラレーターRNGD Hot Chips 2024で注目を浴びたオモシロCPU - この連載の一覧へ