|
MICROPROCESSOR FORUM 2001レポートシングルから8ウェイまでをターゲットにした“Hammer”
会場:Fairmont Hotel(カリフォルニア州サンノゼ)
Hammerは、AMDとしては初となる64bitの命令セットであるx86-64を実行することができながら、これまでの32bitのx86命令との互換性を維持したCPUで、3DNow!テクノロジに続き、Intelに先駆けてx86命令の拡張を行なうことになる。注目されていたHammerのアーキテクチャは、DRAMコントローラが統合され、CPU同士はHyperTransportで接続されるなど、マルチプロセッサシステムに最適化されたCPUとなっている。ここでは、Hammerのマイクロアーキテクチャについてお伝えする。 ●メモリコントローラをCPUに統合しレイテンシの低減をねらう
しかし、Hammerでは図3のようにCPUに直接メモリが接続され、HyperTransportによりAGPとのブリッジチップ、I/Oバスブリッジチップに接続されるというアーキテクチャになる。このように、これまでのPCのアーキテクチャの常識を一気に覆し、大きくPCのアーキテクチャを変えていく可能性を秘めている。
それでは、メモリコントローラをCPUに内蔵したのはなぜなのだろうか? 1つには、メモリのレイテンシ(実際にメモリが読み出されるまでにかかる時間)を極限まで下げたかったからだ。通常、メモリがノースブリッジに接続されている場合、メモリにアクセスするまでに多くのクロックサイクルが費やされ、その間CPUは待たされることになり、CPUの性能は低下してしまうのだ。 もう1つの理由は、マルチプロセッサ時のメモリ帯域や容量を向上させたかったからだ。Hammerでは、後述するようにHyperTransportにより、CPUを複数接続するマルチプロセッサシステムを構築可能だ。通常のプロセッサのバス、例えばPentium III XeonプロセッサやXeonプロセッサの場合、1つのシステムバスに複数のCPUが接続される形になっている。この場合、ノースブリッジに接続されているメモリを共有することになり、例えばXeonの場合は2チャネルのDirect RDRAMを共有することになる。この場合、メモリ容量や帯域幅はチップセットの仕様に依存する。Direct RDRAMを利用した場合には、MRHというリピーターチップを利用してスロット数を増やす(つまり容量を増やす)のが容易だが、DDR SDRAMの場合には、マザーボードの製造を難しくするチャネル数を増やすという方法以外には容量、帯域幅を増やすことが難しかった。
しかし、HammerのようにメモリインターフェイスをCPUに統合することで、マルチプロセッサ時にはそれぞれのCPUにメモリを接続することができ、CPUを増設するたびにメモリ、帯域を増やすことができる。例えば、256MBで、PC2100(2.1GB/sec)のメモリが接続されたHammerが2ウェイ構成となっている場合、総メモリ容量512MBで帯域幅が4.2GB/sec、4ウェイの場合は総容量1GBで帯域幅が8.4GB/secという計算になるわけだ(ただし帯域幅は計算上で、実効の帯域幅はもう少し落ちるはずだ)。
つまり、CPUの増加にあわせて、メモリの量や帯域幅もスケーラブルに増やしていくことが可能になる(もちろん、それぞれのCPUを接続するHyperTransportの帯域幅が十分に確保されていることが前提だが、今回はHammerのHyperTransportのクロックが公開されなかったのでバス帯域は今のところ不明)。それぞれのCPUに接続されているメモリは、Coherent HyperTransportと呼ばれるHyperTransportのバスにより、それぞれ共有され、キャッシュの整合性なども維持される。 ●CPUコアのマイクロアーキテクチャはAthlonの改良版 内部のアーキテクチャは、評価の高かったAthlonプロセッサのマイクロアーキテクチャをさらに改良していくというアプローチがとられている。
第一に命令を機械語にデコードするデコーダが、Athlonでは1クロックで行なわれていたのが、2クロックに細分化されている。さらにそれがもう一度パックされ、最終デコーダに渡されエントリ数が24エントリに増え、実行ユニットごとに分けられたスケジューラに渡される。こうした改良により、Hammerではフェッチのパイプラインステージが1ステージ増えており、合計7ステージとなっている(Athlonは6ステージ)。実行ステージも5ステージ(Athlonは4ステージ)と細分化されており、合計で12ステージとAthlonの10ステージに比べて細分化されている。また、通常はCPUのパイプラインはここで終わりなのだが、このあとさらにL2キャッシュ、DRAMアクセスとパイプラインが続いていく。最終的には2GHzのHammerで、これらのパイプラインの動作が12nsで終了するという。 実行ユニット数は、Athlonと同じく9つで、AGU、ALU、FPUがそれぞれ3つずつ用意されている。FPUは、MMX、3DNow!テクノロジ、ストリーミングSIMD拡張命令(SSE)、ストリーミングSIMD拡張命令2(SSE2)が処理できるようになっており、SSE2が実行できるようになった点がAthlonからの強化点といえる。キャッシュもAthlonと同じく、L1キャッシュは命令が64KB(2ウェイセットアソシエイティブ)、データが64KB(2ウェイセットアソシエイティブ)となっており、合計で128KBとなっている。L2キャッシュは16ウェイセットアソシエイティブで、容量はモデルにあわせて変更されるようになっており、「MB(メガバイト)単位のモデルも用意される」とウェバー氏は述べている。L1、L2ともにECCに対応しており、サーバー、ワークステーションといってミッションクリティカルな環境にも対応できるように設計されている。 また、TLBの処理能力や分岐予測の精度を高める工夫も加えられている。例えば、L1の命令TLB、データTLBは40エントリとなっている(Athlonは命令24エントリ、データ40エントリ)ほか、L2は命令、データがそれぞれ512エントリに増やされている(Athlonはそれぞれ256エントリ)などが主な改良点だ。これらにより、パイプラインを若干細分化したことを補おうということなのだろう。 このように、Hammerでは評価の高かったK7コアのアーキテクチャをさらに改良し、IPCを極限まで高めようというアプローチがとられている。クロックをあげるべくパイプラインの細分化などが行なわれているが、Intelほどは大胆に細分化してクロックをあげていくアプローチをとっておらず、IPCとクロックの両方をバランスよくあげていこうというアプローチであることがわかる。こうした意味でから、HammerでもIntelのCPUに対して実クロックでは上回れないという状況が続く可能性が高く、引き続き「クロックは性能ではない」ということをアピールしていく取り組みが必要となるだろう。
●ノースブリッジ相当のCrossBarは2Gコマンド/sec
XBARには、それぞれCPU、3つのHyperTransportリンク、メモリコントローラが接続されているが、それぞれのルーターには10エントリから16エントリのバッファが搭載されており、これがデバイス間のデータの受け渡し時のレイテンシを低減している。ウェバー氏によれば「2GHzのHammerでは2Gコマンド/secの処理が可能であり、400MHzのシステムバスに比べて5倍の処理能力を備えている」とそのメリットを強調している。 なお、メモリコントローラの仕様は以下のようになっている。
・8/16Byteインターフェイス
●デスクトップPCから8ウェイサーバーまでスケーラブルなHammer 最後にウェバー氏は、Hammerを利用したシステムの構成例を示した。シングル時、デュアル(2ウェイ)時、4ウェイ、8ウェイの例が示されている。8ウェイでは64スロットものDIMMソケットが搭載されるという例が示された。こうした64スロットという構成をみると、ローカルのメモリとリモートのメモリ間のレイテンシの違いが問題となるのではという疑問がわいてくる。これに対してウェバー氏は「ローカルとリモートのレイテンシの違いは、DRAMのページがヒットした場合とページコンフリクトが発生している場合の差とほぼ同等であるので問題ない」とし、性能低下にはつながらないという。 このように、Hammerのアーキテクチャは、メモリコントローラやノースブリッジの内蔵によるレイテンシの低減、デコーダの改良などによるIPCの向上やクロックのバランスのとれた向上による処理能力の向上、さらにはHyperTransportの採用による、マルチプロセッサ時の柔軟性などシングルから8ウェイのマルチプロセッサまでのスケーラブルな利用を考えた構成になっているのが特徴といえる。そして、今回の記事ではふれていないが、新しい64bit命令であるx86-64を実行することができるようになり、ユーザーはこれまでの資産である32bitアプリケーションを使いつつ、64bitアプリケーションも実行することができるようになる。このあたりは、4ウェイ、8ウェイのマルチプロセッサには64bitのIA-64、シングルから4ウェイまでは32bitのIA-32とアーキテクチャが分かれるIntelとは異なるアプローチであり、興味深いところだ。
□MICROPROCESSOR FORUMのホームページ(英文) (2001年10月17日)
[Reported by 笠原一輝@ユービック・コンピューティング] |
I |
|