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

AMDの「AシリーズAPU(Llano)」の内部バスアーキテクチャ



●2系統のリンクで結ばれたGPUコアとCPUのノースブリッジ

 AMDの「AシリーズAPU(Llano)」の内部バスなどのアーキテクチャが明らかになりつつある。Llanoは、CPUコアとGPUコアをワンチップに統合したFusionプロセッサだ。2コアの特性を生かした統合のために、AMDは2つのコアの間のバスを工夫した。

 Llanoの内部バスでは、ノースブリッジとGPUコアは2系統のリンクで接続されている。1つは、Fusion Compute LinkまたはFusion Control Link(FCL)と呼ばれるインターコネクト、もう1つはRadeon Memory Bus(RMB)だ。Fusion Compute Linkは「Garlic」と呼ばれていたリンクで、従来、CPUとGPUを結んでいたI/Oバスを置き換えている。一方、Radeon Memory Busは「Onion」と呼ばれていたバスで、従来、GPU内部でGPUコアとDRAMコントローラを結んでいたバスを置き換えている。下は、8月に行なわれたチップカンファレンス「Hot Chips」でのスライドだ。

Llanoのアーキテクチャ(PDF版はこちら)
AMDのAシリーズアーキテクチャ資料

 Fusion Compute LinkはCPUとI/Oデバイスの間の接続で、GPUコアはI/Oコントローラを経由してノースブリッジのフロントエンドに接続されている。128-bit幅の双方向バス(合計256-bit)で、I/Oデバイスがメモリにアクセスするパスだ。このFCLを経由して、GPUコアはCPU側のコヒーレントメモリアドレススペースにアクセスができる。また、その逆に、CPUコア側がGPUのフレームバッファアドレススペースにアクセスすることもできる。このFCLはスループットに応じた可変クロックレートで動作している。

内部バスの概要

 Radeon Memory Bus(RMB)は、GPUコア側のグラフィックスメモリコントローラ(GMC)からDRAMコントローラに直結している。グラフィックスメモリコントローラ(GMC)は実際には2系統あり、2チャネルのDRAMコントローラに対応する。2系統のグラフィックスメモリコントローラから256-bit双方向(合計512-bit)のバスが2本、2系統のDRAMコントローラと結んでいる。DRAMコントローラとグラフィックスメモリコントローラは、合計で1,024-bit幅のインターコネクトで接続されている。ただし、Radeon Memory Bus(RMB)は比較的低速なノースブリッジクロックで動作しており、帯域はメモリバス帯域と一致するとAMD Fusion Developer Summit(AFDS)では説明されていた。

 Radeon Memory Bus(RMB)は広いインターフェイスで、CPUのコヒーレントメカニズムをバイパスすることで、広帯域のメモリアクセスを可能とするのが目的だ。グラフィックスワークロードに多いストリームのデータ転送に最適化されている。ビデオメモリ領域へのアクセスの実効帯域は、最高でリードが17GB/sec、ライトが12GB/secとなる。

 それに対して、Fusion Compute LinkでCPUアドレススペースにアクセスする場合はリードが4.5GB/sec、ライトが5.5GB/secと低速になる。CPUコアのCPUアドレススペースへのメモリアクセス帯域はリード&ライトともに8GB/sで、マルチコアでのアクセスは13GB/sとなる。

Llanoのメモリアクセス(PDF版はこちら)

 2系統のリンクで結ばれたLlanoのGPUコアとノースブリッジだが、将来的には一本化されると見られる。AMDは、CPUとGPUのアドレススペースを統合して、両コアでメモリコヒーレンシを取る計画を明らかにしている。

●フレキシブルなシリアルPHYを搭載

 Llanoは、外部インターフェイス回りにも仕掛けがある。Llanoは24レーンのPCI Expressを備える。しかし、実際のダイ(半導体本体)上には同じ形をしたPHYが4ペア見える。x4のPHYを2つセットにしたx8相当のPHYモジュールが4個設置されており、合計で実際には32レーン分のシリアルインターフェイスを備えている。

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

 ただし、これらのPHYのうち、x8分はディスプレイ出力専用となっている。さらに、x16はPCI Expressからディスプレイ出力へと転用可能となっている。これは、AMDがLlanoのPCI ExpressとDisplayPortのPHYを共通化し、同じ設計のPHYを使い回したために可能になった。DisplayPortはPCI Expressと同じ8B/10B方式の符号化を用いているため、共通のPHYを使うことが可能だ。

 AMDはディスクリートGPUでは、6ポートのDisplayPortプラス2ポートのアナログ出力による最大6画面の多画面出力をサポートしている。それと似た多画面サポートをLlanoでも経済的にサポートする方法として、PCI Expressとディスプレイ出力のPHYの共有化を行なったと見られる。Llanoでは2つの独立したディスプレイストリームを、最大6つのディスプレイポートから出力が可能となっている。

 DisplayPortはx4の2.7Gbpsレーンで構成されるため、6ポート出力にはx4のPHYが6ユニット必要となる。このうち、2ポート分はディスプレイ出力専用として確保されている。下のスライドでは、左側の2個のx4リンクが、ディスプレイ専用でDigital Display Interface(DDI)に接続されている。この2つのx4ポートはI/Oコントローラには接続されておらず、GPU側のディスプレイコントローラにしか接続されていない。2組のx4は、1ポート分のデュアルリンクDVIとして出力することもできる。

LlanoのI/Oとディスプレイ出力
PCI Expressのコンフィグ

 スライドの中央にあるx16分の4つのx4は、PCI Expressとディスプレイの共用のPHY群だ。これらのユニットは、ディスプレイコントローラに接続されたDDIと、I/Oコントローラに接続されたPCI Expressコアの両方に接続されている。そのため、どちらにも転用ができる。

 ディスプレイ出力に使った場合は、x4のDisplayPortで最大4ポート分となる。PCI Expressとして使う場合は、最大x16レーンで2デバイスまでサポートできる。2デバイスまで接続できるので2つのx8リンクとして、ビデオカードを2枚接続することもできる。

 PCI Expressとディスプレイ出力の共用は理にかなっている。Llanoの内蔵GPUコアから6ディスプレイも出力する場合は、通常、外部にPCI Expressでビデオカードを接続することがないと見られるためだ。

 スライドの図の右側の2つのx4はPCI Express専用だ。ただし、こちらのリンクのうちx4は、通常はサポートチップである「Hudson FCH(Fusion Controller Hub)」との接続に使われる。FCHとの接続インターフェイスは「Universal Media Interface (UMI)」と呼ばれている。このユニットのPCI Expressコアは、x8までで最大5デバイスをサポートする。汎用に使うことができるx4分をx1リンクとして4デバイス接続することもできる計算となる。

●LlanoのGPUコアはアーキテクチャ的には倍精度をサポートか

 Llanoは「SUMO(スモウ)」と呼ばれるGPUコアを内蔵している。このコアの演算ユニットは、VLIW(Very Long Instruction Word)型のスレッドプロセッサで、1個のVLIWプロセッサの中に5個のStream Processorが搭載された「VLIW5」とAMDが呼ぶ構成となっている。

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

 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個の構成となる。

 Hot Chipsでは、SUMOのVLIW5コアの概要として、下のスライドが公開された。ここでポイントは、64-bit倍精度演算のサポートが記述されていること。Llanoの製品版はGPUでの64-bit倍精度をサポートしていないと説明されていたが、アーキテクチャ的にはサポートされている可能性がある。64-bit倍精度演算のサポートは、APUを連結してハイパフォーマンスコンピューティング(HPC)製品を作ることができるかどうかの重要な指標だ。

SUMOのVLIW5プロセッサ概要

 SUMOのグラフィックスメモリコントローラ(GMC)は2系統に分かれていて、SUMOのGPUコアの2個のROP(Rendering Output Pipeline)ユニットは、それぞれ別のGMCに接続されている。この構造は、ディスクリートGPUのメモリコントローラとROPの構成を踏襲している。メモリ帯域インテンシブなROP処理を、メモリコントローラ毎に分割することで、メモリアクセスの平均化を図っている。SUMOコアとI/Oコントローラの接続は、ディスクリートGPUではPCI Expressを接続しているハブ経由だと見られる。

SUMOの概要(PDF版はこちら)