このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第169回

インテルCPU進化論 Haswellで導入されるCPUコアの改良

2012年09月17日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷

Haswellで導入された
内部バッファの強化の詳細

図1 Haswellの内部構造図。赤枠内がSandy Bridgeからの主な変更部分

図2 Sandy Bridgeの内部構造図

 ポートの増強と同時命令処理数増加を実現するため、Haswellでは内部のバッファが大幅に拡充された。インテルの資料によれば以下のようになる。

Nehalem Sandy Bridge Haswell
Out-of-order window 128 168 192
In-flight Loads 48 64 72
In-flight Store 32 36 42
Scheduler Entries 36 54 60
Integer Register File なし 160 168
FP Register File なし 144 168
Allocation Queue 28/スレッド 28/スレッド 56/2スレッド

 まず「Out-of-order window」とは、「Rdy/Sch」のステージで「何命令を同時に保持できるか」を示したものである。レストランで言えば、席に座るのを待つ客を入れる待合室の収容人数が128~168人までだったところを、今度は192人まで待てるようになったようなものだ。

 「In-flight Loads」「In-flight Store」は、ロード/ストア命令のみをそれぞれどれだけ保持できるかである。レストランの例で言うなら、「窓側の席でないといやだ」「ボックス席でないといやだ」といった特殊な要求を持つ客を、どれだけ管理できるか、というのがここで決まる。

 次の「Scheduler Entries」は、図でいえばDispatch部に何命令を保持できるかに関わる。待合室にいる客をウェイトレスが、「○○様こちらにどうぞ」と席に向けて案内する過程にあたる。これまでのウェイトレスが同時に36~54人までさばいていたのが、今度は60人同時にさばけるようになったようなものだ。

 「Integer Register File」「FP Register File」とは、物理レジスタを内部に保持している数を示す。物理レジスタはレジスタリネーミングによって、さまざまな命令の実行に割り当てられる。これもSandy Bridgeに比べて若干ではあるが、数が増やされている。IntegerとFPで別々なのは、整数演算は最大64bitまでしか扱わないのに対して、浮動小数点演算では最大80bitを扱う必要があるからだ。これを無理してひとつにすると、モトローラ「MC88000」の二の舞(書籍版「忘れ去られたCPU黒歴史」収録)になるので、分離するのが正解であろう。

 最後の「Allocation Queue」とは、処理の際に「どの順序でリソースを確保するか」を確定させるためのものだ。レストランの例で言えば、客の呼び出し順を書いた紙……というのはいささか苦しいか。これまではスレッドごとに28個だったのが、今度は2スレッドあわせて56個に増えた。例えばSandy Bridge/Ivy Bridgeでは、片方のスレッドのキューが空いていても、もう片方のスレッドはそれを利用できなかった。Haswellからは空きがあれば使えるようになったわけで、キューそのものの利用効率の向上に役立つ。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン