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

NVIDIAの次々世代GPU「Volta」のスタックドDRAM技術

1TB/secのメモリ帯域を実現するVolta

 NVIDIAは米サンノゼで開催している同社の技術カンファレンス「GPU Technology Conference(GTC) 2013」で、次世代GPUロードマップを発表した。PC & HPC(High Performance Computing)向けGPUでの目玉は、スタックドDRAMの「Volta」(ボルタ)だ。昨年(2012年)のGTCでは、NVIDIAは「スタックドDRAMは必ず来るが、いつになるかが見えない」と説明していた。しかし、今回のGTCでは、ついにスタックドDRAMがロードマップに見えてきた。スタックドDRAMへと急ぐDRAM業界の動向が、NVIDIAのロードマップにも反映された。

 NVIDIAのJen-Hsun Huang(ジェン・スン・フアン)氏(Co-founder, President and CEO)はVoltaについて次のように説明した。

 「Voltaでは、今日のGPUの最大の問題の1つを解決する。それは、メモリ帯域だ。GPUのメモリ帯域はCPUより何倍も広いが、決して十分であったことがない。それはボード上(の配線)では、どうしても十分なスピードが得られないからだ。Voltaでは、それが解決される。

 現在のKeplerでは、GPUの回りをメモリチップが取り囲んでいる。しかし、VoltaではDRAMを、GPUと同じシリコンサブストレートの上にスタック(積層)してしまう。そして、シリコンに穿ったビアであるシリコン貫通ビア(TSV:Through Silicon Via)で接続する。この技術によって、1TB/secのメモリ帯域を実現する。これはBDの全てのデータを、50分の1秒で転送できるスピードだ」。

ジェン・スン・フアン氏
中央のKeplerの回りを取り囲んでいいるの12個のチップがGDDR5 DRAMチップ
Voltaの概念図。パッケージのサブストレートの上でGPUを取り囲むようにDRAMのスタックが複数配置されている

 現在のGPUは、メモリ帯域が280GB/secのレンジに到達したところ。384-bitメモリインターフェイスでGDDR5を6Gtpsの転送レートで回して、ようやくこの帯域だ。単精度ならワンチップで4TFLOPSを越える演算性能に対して、メモリ帯域は極めて低く、メモリバウンド(メモリ帯域が制約になる)なアプリケーションの性能が制約されている。Maxwellの世代でも、メモリはGDDR5のままで多少のスピード向上はあっても大きな飛躍はないため、メモリ帯域の制約は続く。

 しかし、Voltaでは、TSV技術によって、一気にメモリ帯域が現在の3.5倍に拡大し、メモリ帯域の制約が薄くなる。これは、メモリバウンドアプリケーションの実性能が大きく伸びることを意味する。メモリバウンドの場合は、実際にはGPUコアはメモリ待ちでアイドル状態にあることが多いが、それがある程度解消されることでGPUコアの稼働率が上がる。しかも、帯域に対しての消費電力も下がる。下は、ちょっと古いが、AMDの「Technical Forum & Exhibition (TFE) 2011」カンファレンスで示されたHBMのスライドだ。帯域当たりの電力を大幅に引き下げることができる点も、HBMの大きな魅力だ。

メモリインターフェイス幅を大幅に拡張できるTSVスタックドDRAM

 TSVを使ったスタックドDRAMの最大の利点は、メモリのインターフェイス幅を大幅に拡張できる点だ。従来のDRAMは、広くても16-bitまたは32-bit幅のインターフェイスだったのに対して、TSVスタックドDRAMでは、インターフェイス幅を16〜64倍の512-bit〜1,024-bit幅に広げる。通常のパッケージではこれだけの広インターフェイスは実現できないが、DRAMのダイを重ねて、2個のダイの間を小さなマイクロバンプで接続することで広インターフェイス幅を実現する。

 そのために、TSVを使ってチップのダイを直接積層する必要が出る。半導体チップは、通常、片面にしか接続バンプを配置できないため、直接積層ができない。しかし、TSVでダイの背面まで配線を通すことで、両面にバンプを配置して直接積層できるようになる。ダイを直接重ねることで、配線長を極端に短くできる点もTSVによるスタックドDRAMの強味だ。

3Dダイスタッキングの主要技術
※PDF版はこちら
3D技術
※PDF版はこちら

 TSVを使ったスタックドDRAMには、3D積層と呼ばれる、GPUやCPUなどのロジックチップの上に直接DRAMをスタックするソリューションがある。また、Micronが提案した「Hybrid Memory Cube」(HMC)のように、最下層にインターフェイスロジックチップを配置する案もある。しかし、Voltaが使うのは、一般に「2.5D」と呼ばれるシリコンインタポーザを介して接続するソリューションのようだ。

 2.5Dでは、TSVによってロジックチップにDRAMを3Dスタックするのではなく、TSVを使ったシリコンインタポーザを介してロジックチップとDRAMを接続する。TSVシリコンインタポーザは、フロントエンドのトランジスタ層を持たないシリコンチップで、TSVによる配線がされている。下の図のようにTSVによってViaが開けられ配線されており、インタポーザ上に、CPUやGPUなどのロジックチップとDRAMチップを載せる。

スタックドDRAM技術
※PDF版はこちら
左上がTSVシリコンインタポーザを使ったソリューション。右下が3Dスタック

 ロジックチップとDRAMは、どちらも、インタポーザとはマイクロバンプで接続する。DRAMの容量を増やす場合は、DRAMをTSVでスタックする。インタポーザ自体は通常のバンプでPCBまたはサブストレートに接続する。

 3Dソリューションは、DRAMダイとロジックチップのダイを直接続するため、究極のソリューションだ。しかし、3Dスタックソリューションには難点もある。まず、ロジックチップ側にもTSVで穴を開けなくてはならない。最先端の高速ロジックプロセスにTSVを使うことは、現状では難しい。熱の問題もあり、発熱の大きなGPUなどの上にDRAMを載せることは、熱に弱いDRAMにとって難しい。実際にはシリコンは熱伝導性がいいので、冷却が迅速にできれば高消費電力のロジックチップの上にDRAMをスタックすることも可能だが、廃熱機構のコストを考慮すると難しい。

 3D積層の場合は、ロジックチップの上に載せられるダイの数が限られるので、容量の制約が生じてしまう。GPUチップの上に積層できるだけの数のDRAMダイしか使うことができない。例えば、4G-bit品が4ダイなら2GB、8ダイなら4GBが上限となる。DRAM容量の制約がきつい場合は、スタックドDRAMと、従来の基板上に配置するDRAMの2つのインターフェイスを備えて容量を稼がなくてはならなくなる。

3Dチップスタッキングを使ったCPUとメモリの構成例
※PDF版はこちら

 また、パッケージングでは、ダイサイズがまちまちなGPUなどの上にDRAMをスタックすることは若干面倒だ。物理的にスタックする際に、ダイサイズが同じダイ同士の方が技術的に容易で、異なるダイの方が難度が増える。

ハイ性能プロセッサに向いた2.5Dソリューション

 3Dソリューションにはこうした制約があるため、中間解、あるいは高速ロジックチップ向けの解として2.5Dソリューションが浮上した。Voltaが使う2.5Dの場合は、GPUにはTSVを使う必要がないため、対応がずっと簡単になる。下のスライドは、グレーが3Dスタッキング、ブルーが2.5Dインタポーザ、グリーンが通常のボード上の配線で、配線の違いを比較している。これを見ると、インタポーザを使った場合も、TSVの利点の多くを享受できることが分かる。

 まず、帯域と関連するコネクション数を示す左端のグラフでは、3Dと2.5Dで同等のバス幅にできる。電力を示す、右端のグラフでは、3Dの方が2.5Dより優れてはいるものの、それでも、ボード上の配線よりはるかに低いことが分かる。そのため、2.5Dでも、極めて広いインターフェイス幅で、消費電力を抑えながら、超広帯域のメモリ接続を実現できる。TSVインタポーザのコストがかかるが、TSVインタポーザはシリコンチップとは言ってもフロントエンドのプロセッシングが必要なく、枯れたプロセス技術を使うため、極めて低コストにできるという。

 2.5Dでは、GPUにTSVで穴を開ける必要がなく、GPUとDRAMを別に冷却できるために熱の問題もない。また、GPUの回りにスタックDRAMを配することで、大容量のメモリをサポートできる。Voltaの概念図のように6個のスタックを配して、それぞれに4枚のダイをスタックするなら、24個のDRAMダイをGPUパッケージに載せることができる。4G-bit品が24ダイなら12GBとなる。DRAM容量が8G-bitになれば24GBだ。そのため、2.5Dソリューションなら、HPCやサーバーでも、スタックドDRAMだけで、必要な容量を搭載できる。2.5Dでは、HPCで求められる大容量メモリも実現できることになる。

JEDECのTSVスタックドDRAM規格HBM

 スタックドDRAMについては、JEDECのJC42.3で「HBM(High Bandwidth Memory)」と呼ばれるメモリ規格の策定が行なわれて来た。下は昨年5月の段階でのJEDECのHBMの規格化の大ラフだ。右上の2つが非モバイル向けのスタックメモリHBMとなる。HBMには1Tbpsクラスと2Tbpsクラスの2つのスペックがある。実は、この図の後に仕様が変わり、図中では1TbpsのHBMは512-bitインターフェイスで2,133Mtpsの転送レートとなっているが、現在は1,024-bitインターフェイスになっているという。ただし、その後、仕様がまた変わった可能性があり、最終仕様がどうなるか分からない。

 JEDECは、TSVスタックドDRAMでは、モバイル向けにWide I/OとWide I/O 2を規格化している。しかし、Wide I/O系はモバイル向けに消費電力にフォーカスした規格であるため、別個に高性能向けのスタックドメモリの規格化が始まった。Wide I/O系は128-bitインターフェイスを4チャネル並べた512-bitインターフェイスだ。

JEDECモバイルメモリビット幅の比較
※PDF版はこちら

 上はWide I/Oの概念図で、512-bitインターフェイスを4チャネルに分けることで、メモリアクセスの粒度を小さく保っている。HBMは128-bitを8つ並べた1,024-bitインターフェイスになると見られる。こちらは、チャネルをどう構成して制御するのかは、まだ分かっていない。

 HBM系がWide I/O系と大きく異なるのは、最初からTSVインタポーザによる2.5Dスタッキングを考えて策定されつつあること。HBMがターゲットとする高性能なプロセッサでは、電力消費が大きいため、ロジックチップへのDRAMの積層は当初は難しいと考えてのことだ。業界の動きは活発で、実証シリコンの設計も始まっているという。

 現在、GDDR5が高速化の限界に近づいており、グラフィックス用メモリの先がないため、HBMの開発には拍車がかかっている。しかし、HBMでは、初めからグラフィックス以外の用途も広く展望している。GDDR系メモリは、グラフィックス用途を主体として規格化されたのが、HPCにも転用されるようになった。しかし、HBMはHPCやサーバーを含めた広い用途を前提としている。NVIDIAにとっては、HPCとグラフィックスのどちらもカバーできる点で、魅力的なDRAM規格だ。

メモリ搭載量に幅を持たせることが可能なHBM

 NVIDIAがVoltaで使うスタックドDRAMがHBMかどうかは、まだ明らかにされていない。しかし、HBMだとすれば、Voltaのメモリインターフェイスのスペックについてある程度の予想ができる。1TbpsのHBMをVoltaが使うとすると、1TB/secの帯域を実現するには、最低でも8個のHBMが必要となる。インターフェイス幅は、各HBMが1,024-bitで、GPU側には8,192-bit幅のインターフェイスとなる。パッドだけでもかなりの面積を占めそうなイメージがあるが、マイクロバンプなので、従来ほど面積を取るわけではない。そもそも、現状でもGPUはGDDR5 DRAMインターフェイスにかなりの面積を取られている。とはいえ、8,000-bit以上のインターフェイスはかなり重荷なので、インターフェイス幅が半分で済む2TbpsのHBMでスタートする可能性もないわけではない。

 HBMは当初は最大で4個のダイのスタック程度からスタートすると見られている。4ダイスタックと8ダイスタックの2規格になると見られる。Voltaの場合は、もし1TbpsのHBMなら8個のスタックが必要で、最大4ダイ/スタックとすれば32個までのDRAMダイを載せることができる。DRAM容量が4G-bitからスタートするとしたら、Voltaは16GBまでのメモリを載せることができる。8G-bit品で8ダイなら64GBとなる。もちろん、グラフィックス向けの構成はずっと小さくなるはずで、各HBMがスタックしないとすれば4G-bit品で4GBの構成となる。

 計算すると分かる通り、HBMでは、DRAMの容量構成に幅を持たせることができる。同じメモリインターフェイスで、グラフィックス用の小容量構成から、HPC向けの大容量構成まで広くカバーできる。これは、ピア・ツー・ピア接続のGDDR5にはない利点だ。現在のHPC向けGPUは、GDDR5の制約で、どうしてもメモリ容量に制約があるが、それが緩和される。

 こうして見ると、Volta世代では、メモリアーキテクチャが変わることで、GPUが大きく変化することが分かる。GPUの新しい転換点となるだろう。

(後藤 弘茂 (Hiroshige Goto) E-mail