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

AMDが発表したメインストリームAPU「Llano」のアーキテクチャ



●32nmプロセスのメインストリームPC向けAPU

 AMDは同社のFUSION戦略の要となるメインストリームPC向けAPU(Accelerated Processing Unit)「Llano(ラノ)」を、正式に発表した。今回発表したのは、メインストリームノートPC向けのLlano1で、「AMD A-Series APU」のブランディングとなる。プラットフォームは「Sabine」で、対応するチップセットは「AMD Fusion Controller Hub A70M/A60M」となる。

Llanoのダイと各ブロック メインストリームノート向けSabineプラットフォーム AMD A-Series APUの特徴

 Llanoは、メインストリーム向けCPUとディスクリートクラスGPUを統合した、AMDのAPU製品ラインの上位ファミリーだ。ダイ(半導体本体)としては、4コアで高パフォーマンスGPUコアの「Llano1」と、2コアで中パフォーマンスGPUコアの「Llano2」の2種類がある。AMDが今回投入するのはLlano1で、Llano2は数カ月遅れで登場する。

 Llanoは、AMDとしては初の32nmプロセス製品で、GLOBALFOUNDRIESの32nm SOI(silicon-on-insulator)プロセスを使う。これは、GLOBALFOUNDRIESでは初めてHKMG(High-K/Metal Gate)技術を使ったプロセスだ。プロセス移行ではIntelに1年半近く水をあけられたことになる。

 AMDはAPUに統合するCPUコアとGPUコアは、1世代前の成熟したバージョンになると説明している。リスクを排除するためで、そのため、LlanoのCPUコアは、新しいBulldozer(ブルドーザ)コアではなく、現行のStarsコア(K10またはHound)系となっている。しかし、従来コアを単に45nmから32nmプロセスに移植しただけでなく、マイクロアーキテクチャと省電力機構に改良を加えている。ただし、IntelのNehalem(ネヘイレム)→Sandy Bridge(サンディブリッジ)ほど劇的な改良ではなく、あくまでもマイナーチェンジに留まる。

 GPUコアも同様でアーキテクチャ的には先端のRadeon HD 6970(Cayman)ではなく、Radeon HD 5000系やRadeon HD 6000系の下位GPUと同じだ。Llano1では、単精度浮動小数点(FP)の積和算が可能なStream Processorが合計で400個搭載されている。生パフォーマンスでは最高355GFLOPSとなり、ミッドレンジGPUクラスのプロセッシング能力だ。

 CPUコアの動作周波数はモバイル版では最高2.6GHz(ベース1.9GHz)となっている。AMDは2010年2月の半導体カンファレンスISSCC(IEEE International Solid-State Circuits Conference)で、Llanoのアーキテクチャ上の動作周波数は最高3GHzだと説明している。GPUコアの動作周波数はモバイル版では最高444MHz。固定機能ユニットが多いGPUコアは、CPUコアほど動作周波数を高くできない。

Llanoの3種類の内蔵GPUスペック AMD A-Seriesのラインナップ

 Llanoにはビデオアクセラレーションとして、UVD(Universal Video Decoder)をHDビデオ機能を強化したUVD3が搭載されている。メモリインターフェイスはDDR3の2チャネル。メモリはモバイルでは最高DDR3-1333で、ピーク帯域は25.6GB/sec。デスクトップは最高DDR3-1600で、ピーク帯域は29.8GB/sec。PCI Expressは合計24レーンの構成だ。また、デジタルディスプレイアウトも備えている。

AMDのサーバー/デスクトップ/モバイルCPU移行図(PDF版はこちら)

UVDの機能比較。LlanoはUVD3を搭載 AMD A8、A6、A4の違い
メモリ周りのスペック ディスプレイ出力、PCIeのスペック

●GPUコアの接続が特殊なLlanoの全体構成

 Llanoの全体のダイレイアウトは下の図のようになっている。図上の上半分がCPUコアとノースブリッジのブロック。下半分がGPUコアのブロック。両側にメモリインターフェイスとPCI ExpressなどI/Oインターフェイスが配置されている。

Llanoのダイレイアウト(PDF版はこちら)

Llano内蔵のCPU、GPU、ノースブリッジ、メモリコントローラ、I/Oの接続

 Llanoでは4個のCPUコアはクロスバースイッチで接続され、ノースブリッジに接続されている。ノースブリッジはメモリコントローラに接続されており、ノースブリッジがハブとなっている。GPUコアもノースブリッジに接続されているが、CPUとは接続が異なっている。

 GPUコアはノースブリッジ/メモリに対して2つのバスを持っている。

 片方は「Radeon Memory Bus (コードネームGarlic)」で、これはGPUコアからメモリコントローラへの広帯域のアクセスを実現する。Garlicは、GPUコアがメモリコントローラに広帯域に直結するディスクリートGPUに近いアクセスのためのバスだ。主にグラフィックス処理のために使われる。スヌーピングを一切行なわなず、メモリは2チャネルのインタリービングで効率を上げるため、実効メモリ帯域はリード17GB/sec、ライトで12GB/secになるという。ちなみに、このバスのGPUコアからのピーク帯域は29.8GB/secとメモリ帯域と一致している。

PCIeのコンフィギュレーション

 もう1つのバスは「Fusion Compute Link (Onion)」で、こちらはCPUとのコヒーレントバスになっている。このバスを使うと、GPUコアが、これまでできなかったCPUキャッシュへのスヌープをできるようになる。このOnionバスを使うことで、GPUでの汎用コンピューティング時に、CPUとGPUの間での無駄なメモリコピーを排除するゼロコピーが実現できる。

 ただし、GPUコアのキャッシャブルなCPUメモリ空間へのアクセスには制約があり、CPUコアとGPUコアが自由に同じメモリ空間を読み書きできるわけではない。詳しくは後のレポートで解説するが、自由なアクセスは、次の世代のAPUに持ち越される。また、こちらのOnionバスでは、Garlicバスよりメモリ帯域も制約される。I/O系はI/Oバスでノースブリッジと接続されている。また、I/OコンプレックスはGPUコアにもアクセスポートを持つ。

●マイクロアーキテクチャが拡張されたLlanoのCPUコア

 LlanoのCPUコアはK10世代のマイクロアーキテクチャの32nmプロセス版だ。AMDはこのコアの概要を、2010年2月の半導体カンファレンスISSCC(IEEE International Solid-State Circuits Conference)で明らかにしている。下の図は、ISSCCで発表された32nm CPUコアのフロアプラン図だ。全体のレイアウトは、従来のK10系コアとほとんど変わらない。

32nmプロセス版のK10コア(PDF版はこちら)

32nm版はIPC改善で最大6%向上

 しかし、命令実行の効率を向上させる改良が加えられており、IPC(Instruction-per-Clock)は最大6%向上するという。

 まず、命令スケジューリングでは、アウトオブオーダ実行のリオーダバッファの命令ウインドウが、従来の72エントリから84エントリへと拡張された。これは、整数と浮動小数点(FP)のどちらの実行スループットも向上させる。また、ロード/ストアのウインドウサイズも拡張された。ハードウェアデータプリフェッチャも拡張され、またメモリフィルとキャッシュステイトのトランジションが高速化された。

 整数演算では、除算がハードウェア化され、浮動小数点演算(FP)ではいくつかの命令の実行レイテンシも短縮されている。この他、バーチャライゼーションの高速化のためのTLBの拡張がさらに進んだ。劇的ではないが、細かくパフォーマンスをアップさせるための工夫がこらされている。

●ディスクリートGPUをカスタマイズしたLlanoのGPUコア

 LlanoのGPUコアはディスクリートGPUのカスタマイズコアだ。ディスクリートとの大きな違いは、メモリコントローラがROP(Rendering Output Pipeline)ユニットに直結しておらず、ROPはノースブリッジユニットに接続されていること。GPUコア内部のハブも同様にノースブリッジに接続する上に、PCI ExpressバスなどはGPUコア内部のハブに接続されていない。ディスクリートGPUのハブとは、役割が変わっている。

Llano内蔵のSumo GPUコア(PDF版はこちら)

 GPUコアのマイクロアーキテクチャ自体はディスクリートGPUと同じ。最小単位はVLIW(Very Long Instruction Word)型のスレッドプロセッサで、1個のVLIWプロセッサの中に5個のStream Processorが搭載されたVLIW5構成となっている。VLIWプロセッサは16個で1個のSIMD(Single Instruction, Multiple Data)エンジンを構成する。Llano1では、ダイ上に5個のSIMDエンジンが搭載されているため、合計でStream Processor数は400個となる。

 製品では、SIMD単位で無効にされ、Stream Processorが320個(4 SIMD)と240個(3 SIMD)のバリエーションがある。Llanoのモバイル製品ではA8が400個、A6が320個、A4が240個の構成となる。

GPUコア「Sumo」の詳細 SumoはRadeon HD 6470Mよりも高速

 AMDのVLIWプロセッサの5個のStream Processorは、実際には4個の単精度FP積和算(MAD)ユニットと1個のスーパーファンクションユニット(SFU)だ。SFUは超越関数などの実行ユニットで、単精度FP積和算ユニットも兼ねている。各演算ユニットは、同じ命令を実行するSIMDではなく、それぞれ個別の異なる命令を実行できる。

SUMOのSIMDアレイとVLIW5プロセッサ(PDF版はこちら)

スレッドプロセッサの詳細

 個々のVLIWプロセッサは、VLIW命令に含まれた6個の命令を1サイクルで実行する。演算ユニットであるStream Processorは5個だが、分岐を司るブランチユニットが1個含まれているため、命令スロットは6となっている。

 AMDアーキテクチャでは、SIMDエンジンに含まれる16個のVLIWプロセッサが同じVLIW命令を実行する。AMDがSIMDを分解できず、SIMD単位で無効にしているのは、このためだ。SIMDエンジンが、AMD GPUアーキテクチャの実行単位であるwavefrontを実行する最小構成単位となっている。16個のVLIWプロセサが4サイクルで64スレッドを実行する仕組みで、wavefrontがAMD GPUの論理ベクタ長となっている。つまり、SIMDの中のプロセッサ数が変わると、論理ベクタ長が変わってしまい、プログラミングに大きな影響を与えてしまう。

SIMD発行されるAMD GPUのVLIW命令(PDF版はこちら)

 ROPクラスタ数は2と相対的にやや少ない。これは、CPUの標準的なメモリを使わなければならないAPUでは、メモリ帯域自体が制約されているからだ。メモリ帯域を食うROPをむやみに増やしても、メモリアクセスが飽和してしまうため、意味がない。

●パワーゲーティングを使ったLlanoの省電力機能

 今回、AMD CPUの製造を担当するGLOBALFOUNDRIESは、32nm SOIプロセスで「High-K Metal-Gate (HKMG)」を採用した。HKMGは、ゲートリーク電流を抑えるのに有利となる。プロセス技術面での利点に加え、AMDは回路設計でさまざまな省電力機構を加えている。

 まず、CPUコアの内部のL1キャッシュは、従来の6T(6トランジスタ)SRAMセルに変えて、8T SRAMセルを採用した。8Tセル化により、より低電圧での動作が容易になった。また、しきい電圧は標準(RVt)でも、チャネル長の長いトランジスタ(LC-RVt)を多く採用してサブスレショルドリーク電流を抑えている。さらに、AMDはLlanoではパワーモニタ回路をCPUの中に入れることで、CPUコアのさまざまなステイトをリアルタイムにモニタして、きめ細かなパワーマネージメントを行なうようにした。

 省電力でLlanoの目玉となるのはパワーゲーティング機能だ。パワーゲーティングではアイドル状態のコアへの電力供給を完全にオフにする。電力をカットすることで、リーク電流を最小にまで抑える。Llanoでは、CPUコアとL2キャッシュのペアになったブロック単位でパワーゲーティングを行なう。また、GPUコアとUVDコアもそれぞれパワーゲートする。

AMDのTurbo Core Technology システムの電力最適化 Llanoの省電力設計
UVD、グラフィックスのパワーゲーティング Turbo Core Technologyの電力制御

●Sandy Bridgeと大きく異なるLlano

 AMDは2コア版のLlano2も準備しているが、Llano1より数カ月遅れる。最初に登場する2コア版Llanoは、実際にはLlano1の4コアのうち2個のコアを無効にした製品になる見込みだ。

 Llano2の時期がずれるのは、Llanoアーキテクチャの場合は、2コア版を派生するために、大規模な再設計が必要となるためだ。IntelのSandy Bridgeは、4コア版から2コア版を比較的簡単に派生することができる。しかし、Llanoの場合はCPUコア数を変える場合に、まずクロスバースイッチ部分の設計変更が必要となる。さらに、現状のレイアウトでは、両サイドのI/O部分の配置も変えなければならない。また、AMDはLlano2ではGPUコアも規模を縮小すると説明している。Llano2では、かなりのエンジニアリングが必要となるため、製品化が遅れることになる。

 LlanoとIntelのSandy Bridgeは、どちらも4個のCPUコアとGPUコア、PCI Express、2チャネルDRAMコントローラを内蔵する。構成は非常によく似ているが、ダイを比較すると大きく異なることがわかる。下が同スケールで比較したLlanoとSandy Bridgeのダイだ。ダイサイズ自体はほぼ同じだが、ユニットの比率が全くことなる。

LlanoとSandy Bridgeのダイ比較(PDF版はこちら)

 LlanoではCPUコアとキャッシュは、CPU全体の30%程度しか占めていない。それに対して、Sandy Bridgeでは、CPUダイのうち半分以上をCPUコアとキャッシュが占めている。GPUコアのサイズの差は歴然としており、Llanoの方がはるかにGPUコアが大きい。AMDがGPUコアを重視するのは、同社がGPUを使った汎用コンピューティング(グラフィックス以外の汎用的な利用)に注力しているためだ。

 AMDは、CPUコアによるスカラプロセッシングと、GPUコアによる並列プロセッシングを組み合わせた、ヘテロジニアス(Heterogeneous:異種混合)コンピューティングでコンピュータの性能を上げようとしている。それに対して、Intelはどちらかと言えば、従来のx86スカラパフォーマンスを高める方へと寄っている。もっとも、Intelはx86コア側のベクタユニットも256-bit幅のAVXへと拡張している。IntelとAMDのアーキテクチャの違いは、ベクタプロセッシングをCPUコア側とGPUコア側のどちらで行なうかの、切り分けの違いと考えることもできる。

 AMDはCPUコアのサイズを増やさない戦略をとっており、AMD CPUコアのサイズは連綿と小型化している。下はAMDの世代毎のCPUコアの面積のチャートだ。次世代のBulldozerも、2CPUコアを融合したモジュールで、LlanoのCPUコア2個程度のサイズしかない。CPUコアの小ささが、AMDの強味になっている。

AMDの世代毎のコアサイズの違い(PDF版はこちら)

●Llanoから先へ続くAPUの道

 Llanoのダイサイズは228平方mmで、トランジスタ数は15億。CPUとGPUを統合したAPUとして、ちょうどメインストリーム向けのダイサイズとなっている。従来はメインストリームCPUのダイは140平方mm程度がスィートスポットだったが、GPUコアの統合で水準は200平方mm以上へと大型化している。2コアのLlano2は、より小さなダイになると推定される。

AMD CPUダイサイズ移行図(PDF版はこちら)

 AMDはLlanoをK7→K8→K10(Stars/Hound)と発展してきたコアの最後の製品と位置づけている。来年(2012年)からは、AMDはメインストリームPCのコアもBulldozerへと切り替える。その意味では、Llanoは中間解の製品とも言える。Bulldozerからは、CPUコアのアーキテクチャが全く変わるため、AMDにとっては大転換となる。チップ全体では、2012年移行に、GPUコアのアーキテクチャや、CPUとGPUを統合するシステムアーキテクチャも大きく変わって行く。AMDは、アーキテクチャを急速に発展させつつある。

Bulldozer、K10、Bobcatのアーキテクチャ比較(PDF版はこちら)
AMD CPUアーキテクチャ移行図(PDF版はこちら)