このページの本文へ

Sandy Bridgeこと新Core iシリーズが登場 第2回

詳細解説 これがSandy Bridgeのアーキテクチャーだ

2011年01月06日 11時30分更新

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

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

Sandy Bridgeのリングバスは
完全な全二重構造ではない

 8コアのNehalem-EXで採用されたリングバスは、完全な全二重構造になっている。一方で、デスクトップだけでなくモバイル向けにも製造され、コア数も2/4コア程度のSandy Bridgeでは「全二重は不要」と判断されたようだ。そのため、リング構造は不完全な全二重となっている。

 どの辺が不完全か? というとSystem Agentの部分である。図11はCPUコア1からメモリーアクセスする場合の手順を示したものだ。

図11

図11 CPUコア1がメモリーアクセスしようとした場合の流れ

  • ①CPUコア1はリングバス I/Fにリクエストを出す。
  • ②LLC Block 1のリングバス I/Fは自身にそのデータはないと判断。リクエストをSystem Agentに送り出す。
  • ③System Agentはリクエストを受け取り、これをメモリーコントローラーに送り出す。
  • ④メモリーコントローラーは受け取ったリクエストに合わせて、メモリーにリクエストを出し、この結果を受け取る。
  • ⑤メモリーコントローラーはデータをリングバス I/Fに送り返す。
  • ⑥System Agentのリングバス I/Fは、その結果をLLC Block 1のリングバス I/Fに転送する。
  • ⑦LLC Block 1のリングバス I/Fは転送されてきたデータをCPUコア1に送り出す。

 ここで注目してほしい点は、System Agentにはリングストップ(図11中の小さな黄色い丸)がひとつしかないことだ。ほかのブロックは(GPUを含めて)ふたつずつのリングストップを持ち、双方向での送受信が可能になっている。だが、System Agentのみはひとつというあたりが「不完全な全二重」という理由である。もっとも、これはSystem Agentに必要とされる能力を考えればこれで十分だった、という判断と思われる。

高速化された内蔵GPU
Intel HD Graphics 2000/3000

図12

図12 Sandy Bridge内蔵GPUの構造

 最後にGPUについて解説しよう。Sandy Bridgeには内蔵GPUとして、「Intel HD Graphics 2000/3000」が搭載される。これはClarkdaleに搭載された「Intel HD Graphics」の改良版にあたり、主要な相違点は以下のようになる。

  • 内部演算ユニットである「EU」(Execution Unit)数は、Intel HD Graphics 2000が6で、Intel HD Graphics 3000が12(Intel HD Graphicsは12)。
  • EU内に算術演算専用のMath boxを用意(Intel HD GraphicsはEUを使用)。
  • Media Processingを追加。
  • 最大1350MHzで駆動(Intel HD Graphicsは最大900MHz)。
  • DirectX 10.1/OpenGL 3.0をサポート(Intel HD GraphicsはDirectX 10/OpenGL 2.1)。
  • Shader Model 4.1をサポート(Intel HD GraphicsはSM 4.0)。
  • Dynamic Frequency Scalingをデスクトップ/モバイルでサポート(Intel HD Graphicsはモバイルのみ)。
  • H.264およびMPEG-2のエンコードをサポート。
  • 色調整機能を追加。
  • HDMI 1.4 with 3Dをサポート(Intel HD Graphicsは非対応)。

 図12の構造を見る限りでは、従来のIntel HD Graphicsとの大きな違いと言っても、「Media Processing」というユニットが追加された程度しか見当たらない。Media Processingは複数のデータ型のサポートや、さまざまな言語拡張のスレッド間通信/同期、ホスト/GPUの混合プログラミングをサポートする機能を持つ演算ユニットである。これにより、従来よりも効率的なGPUによるメディア演算が可能になった。今後のGPGPU的な用途で効果的だろう。

 それ以外の大きな違いとしては、ディスプレー出力部が物理的に分離されている点だろう。これは最初に触れたとおり、画面リフレッシュのためにリングバスを占有してしまうことを避けるためだ。

 もし、ディスプレー出力部がGPU側に置かれたらどうなるかを考えてみる。Intel HD Grapics 2000/3000は最大2560×1600ドットまでの表示が可能だから、これが60Hzでリフレッシュされていたとすると、必要な帯域は703MB/秒程度になる。これはリングバスを常時占有するというほどの帯域ではないが、無視できない程度の規模である。それに対して、ディスプレー出力部をSystem Agentの方におけば、リングバスを一切占有しなくなるから効果的というわけだ。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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