後藤弘茂のWeekly海外ニュース

ついに明らかになったAMDのBulldozer



●コンパクトで電力効率の高いBulldozer
ISSCC2011の会場となったサンフランシスコマリオットホテル

 AMDは、米サンフランシスコで先週開催された半導体カンファレンス「ISSCC(IEEE International Solid-State Circuits Conference) 2011」で、新アーキテクチャCPU「Bulldozer(ブルドーザ)」の設計の概要を明かした。ISSCCでの3つのセッションで明らかにされたBulldozerの姿は、設計通りなら、この新CPUがかなりの競争力を持つことを示している。

 ISSCCで明らかになったのは、Bulldozerダイのフロアプランの詳細や、各モジュールの概要、相対的に小さなモジュールサイズ、3.5GHz以上を達成する高クロック化設計や、高スループットを実現する浮動小数点(FP)ユニットの構造や、パワーゲーティングを多用した省電力設計など多岐に渡る。

 また、こうした発表を通じて、Bulldozerアーキテクチャの特性も明瞭になった。大きなポイントは、8コアを相対的に小さなダイサイズで実現できるクラスタードアーキテクチャの利点。これは、今年中盤に登場する8コアBulldozerが、コスト的に無理せずにできることを意味している。

 また、Bulldozerの設計思想では整数演算パイプは従来のAMD CPUより細くなるが、動作クロックの向上などで補完することも明瞭になった。Bulldozerは、従来と同じ電力枠で3.5GHz以上の周波数で動作できるという。FO4(Fanout-Of-4)が従来のK10より20%少ない、つまり、パイプラインステージ当たりのゲートディレイが、20%も少なくなったためだ。浮動小数点(FP)ユニットは、128-bitのSIMD積和算を2並列と、他の命令を2命令並列に実行できるだけのレジスタ帯域を持つことも明らかになった。

 省電力では、32nm世代でゲートリーク電流(Leakage)の少ないHKMG(High-K/Metal Gate)技術になったことに加え、しきい電圧は標準(RVt)だがチャネル長の長いトランジスタ(LC-RVt)を多く採用したことでリーク電流を抑えた。モジュール全体のリーク電流はマックス時で22~23%程度と、相対的に低い。CPUコアの内部のL1キャッシュでは、従来の6T(6トランジスタ)SRAMセルから、8T SRAMセルに変えて、よりデータ内容保持電圧を下げた。つまり、より最低電圧を下げることが可能になった。一定のユニット単位で電力供給をカットするパワーゲーティングが、CPUコアにもキャッシュにも採用されている。

 こうした特徴を見ると、Bulldozerはコンパクトで電力効率が高いCPUとして設計されていることがわかる。AMDは来年(2012年)にはBulldozerアーキテクチャをメインストリームのデスクトップとノートPCにも導入する予定だ。BulldozerのCPUコアが十分に小さく、メインストリームPCに見合うコストに収まることが明確になった。

Bulldozerのダイ写真
PDF版はこちら
AMD CPUの移行図
PDF版はこちら
Bulldozerの消費電力
PDF版はこちら

●Orochiの“未加工の”ダイ写真を初めて公開

 上が今回公開されたBulldozerコアのCPUダイ「Orochi(オロチ)」の写真だ。OrochiはBulldozerベースの最初のダイで、GLOBALFOUNDRIESの32nm SOIプロセス(High-K/Metal Gate)で製造される。

 Orochiは、2個のCPUコアを融合させた「Bulldozer Module」を合計4個搭載する。CPUコア数に換算すると8コア相当、8-wayのマルチスレッディングだ。4個のBulldozer Moduleに加え、8MBのL3キャッシュ、デュアルチャネルのDDR3インターフェイス、4リンクのHyperTransport 3.0を内蔵する。

 Orochiダイは、AMDが今年中盤にサーバーとハイエンドデスクトップ向けに投入するCPU製品群のベースとなる。製品としてのコードネームは、ハイエンドデスクトップが「Zambezi(ザンベジ)」、サーバーが「Valencia(バレンシア)」と「Interlagos(インテルラゴス=ポルトガル語発音/インターラゴス)」だ。Interlagosは2個のダイをパッケージ内で接続したMCM(Multi-Chip Module)で16コア(8モジュール)となる。

AMD CPUのアーキテクチャ移行
PDF版はこちら

 Orochiのダイを見ると、各Bulldozer Moduleに2MBのL2キャッシュが密接に統合されていることがわかる。実質的にL2までを含めてモジュールとなっている。Orochiダイでは、4個のモジュールが向かい合わせに並んでいる。

 ISSCCでは、ダイの中央がクロスーバスイッチで占められていることが説明された。その周囲にBulldozer Module、ノースブリッジ機能、L3キャッシュ、メモリコントローラなどが配置されている。L3キャッシュは2MBずつ4つのブロックに分離されている。各ユニットの交点になるダイ中央は、クロスバーを配置するのに合理的だ。

 図中のダイの右側にはデュアルチャネルのDDR3メモリインターフェイスが配置されている。Orochi世代ではDDR3-1866までをサポートすることになっている。また、ダイの左辺、それと上辺と下辺の左半分にはHyperTransportのPHYと見られるユニットが配置されている。従来のHyperTransportのPHYユニットより細長い。ダイのエッジのかなりの部分がI/Oパッドで占められた設計となっている。

 AMDは、実は昨年(2010年)9月にも、Orochiダイ写真を公開している。しかし、この時のダイ写真は、加工が加えられてCPUコアの概要やサイズがわからないようにされていた。下の図の右の写真が昨年のものだ。Bulldozer Moduleの部分が加工されていることがわかる。AMDがあからさまな加工を施してまで隠したかったのは、Bulldozer Moduleのサイズと形だ。今回のISSCCでは、それが明かされた。

Bulldozerのダイの新旧比較
PDF版はこちら

●Bulldozer Moduleの詳細が明らかに

 Orochiに4個乗っているBulldozer Moduleは、それぞれが下の図のような構造になっている。CPUモジュール部分は、大きなユニット毎に明確に区分されており、ユニット群同士の間にクロックドライバの帯が挟まみ込まれている。一番上のユニット群がフロントエンドの命令フェッチ/デコードと分岐予測、64KBのL1命令キャッシュ。その下に、整数コアが2個並んでいる。整数コアは、整数演算パイプのブロックとロード/ストア系のブロックに上下に分かれている。ロード/ストアユニットには、16KBのL1データキャッシュがコアにそれぞれ付属している。一番下は浮動小数点(FP)ユニットだ。

 Bulldozer Moduleはクラスタードアーキテクチャに基づいており、1つのモジュールに2スレッドの実行リソースがクラスタ化され、部分的に共有化されている。Bulldozerでは、整数演算は2つのスレッドがそれぞれ専用コアを持つ。しかし、命令デコーダや、浮動小数点演算ユニットなどは2つのスレッドで共有する。そのため、整数コアの部分は2スレッドに完全に分離されている。

Bulldozerモジュール
PDF版はこちら
Bulldozerモジュールとユニット
PDF版はこちら
Bulldozerのアーキテクチャ
PDF版はこちら

 ISSCCでは、このモジュールの面積が、2MBのL2キャッシュを含めて30.9平方mmであることが明かされた。これはかなり小さい数字で、そのため、BulldozerベースのCPU自体も、コア数の割にダイが小さくなることがわかる。また、CPU全体の、マルチスレッディング性能/ダイ面積が高いことも意味する。これは、特にCPUコアが肥大化を続けているIntelに対しては有利となる。

 Bulldozer Moduleの30.9平方mmというサイズがどの程度小さいのかは、AMDの現行のK10(Hound)系CPUコアと比較するとよくわかる。BulldozerはGLOBALFOUNDRIESの32nmプロセスなので、同じプロセスで作られる「Llano(ラノ)」のCPUコアと比較したのが下の図だ。Llanoは、今年のAMDのメインストリームCPUとなる。

BulldozerとLlanoの比較
PDF版はこちら
ダイ写真を除いたモジュールの比較
PDF版はこちら

●LlanoのK10コア約2個分の大きさのBulldozer Module

 Llanoの32nm K10コアの面積は、CPUコアだけなら9.69平方mm。CPUコア+1MB L2キャッシュ+パワーゲーティングリングで17.7平方mmとなっている。それに対して、Bulldozer Moduleは2コア分のモジュールと2MB L2で30.9平方mm。ダイ写真を見ると2MBのL2を除いた部分は18平方mm程度に見える。つまり、2コア分のBulldozer Module本体は、1コア分のK10 CPUコアのおよそ2倍の面積ということになる。

 K10コアの2個分で、Bulldozer Module 1個なら、CPUコア数での比較なら計算が合うとも言える。とはいえ、Bulldozer Moduleは、K10より機能的にかなり拡張されている。機能を強化してデュアルコアにしたなら、K10 2個分よりも大きな面積を食う。Bulldozerでは、それをK10 2個分の面積に押し込んだとも言える。

 Bulldozer Moduleから逆算すると、BulldozerベースのOrochiの大まかなダイサイズも割り出すことができる。ダイ写真で計算すると、Orochiは300平方mmを切ると推定される。AMDは、以前にOrochiが、現在の45nmプロセスのK10 6コアの「Istanbul(イスタンブール)」ダイより小さくなると説明していた。Istanbulは346平方mmなので、実際に、BulldozerはIstanbulより十数パーセント小さい。

AMDの世代ごとのコアサイズ
PDF版はこちら
CPUダイサイズの移行図
PDF版はこちら

 300平方mm近いダイサイズはかなり大きく感じるが、4コアになってからのx86 CPUでは、ハイエンドでは、すでにこのサイズが一般的となっている。AMDでは65nmプロセスのK10 4コア「Barcelona(バルセロナ)」が283平方mm。Intelでは45nmのNehalem 4コア「Lynnfield(リンフィールド)」が296平方mmで、32nm 6コアの「Westmere(ウエストミア)」は一回り小さい240平方mmだ。AMDは、8コアのOrochiを現在のパフォーマンスCPUの標準的なダイサイズに持ってきていると言える。

 また、メインストリームCPUは、現在、4コアにGPUコアを統合して200平方mm程度のダイサイズが主流となっている。AMDが今年中盤に投入する予定の、K10 4コア+GPUコアのLlanoも200平方mmを少し超えたダイサイズとなる。そのため、GPUコア分を考えなければ、メインストリームCPUとの差も比較的小さい。

BulldozerとLlanoのダイサイズ比較
PDF版はこちら