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

NVIDIAのGeForce GTX 580に隠された設計上の秘密



●GF110で何が変わったのか

 NVIDIAが今年の年末商戦に向けた新ハイエンドGPU「GeForce GTX 580(GF110)」を発表した。GF110の内部アーキテクチャは、従来のエンスージアスト向けGPUであるGeForce GTX 480(GF100)とそれほど大きく変わらない。下のダイアグラム図はGF100のものだが、GF110も同じだと考えていい。

GF100のGraphics Processing Cluster
PDF版はこちら
GF100のブロックダイヤグラム
PDF版はこちら

 NVIDIAは、下位のパフォーマンスGPUから下の製品には、グラフィックス向けに内部アーキテクチャを変えたシリーズを提供している。しかし、GF110は、従来のGF100アーキテクチャの延長で、GeForce GTX 460(GF104)以下のアーキテクチャとは異なる系列だ。GF100と同様に、GF110もGPUコンピューティング向け機能をダイに実装しているが、グラフィックス製品では一部の機能は有効にされていない。

 しかし、アーキテクチャはGF100と同系でも、GF110ではパフォーマンス/電力が向上し、ファンノイズも大きく減っている。パフォーマンスは、GF110で動作周波数が向上し、無効にされていたプロセッサコアが全て有効になったことに加え、若干の機能拡張によって伸びた。だが、GF110の場合、こうした目に見える部分以外での改良の方が重要かも知れない。なぜなら、GF110でNVIDIAは物理設計を大きく作り替えた可能性が高いからだ。

NVIDIA GPUのプロセッサユニットの比較
PDF版はこちら

 表に見える部分で変わったのは、従来は無効にされていたプロセッサがフルに有効化されたこと、同じレベルのTDP(Thermal Design Power:熱設計消費電力)の枠内で動作周波数を引き上げたこと、アイドル時の電力を下げ排熱機構を大幅に静音化したことなど。多少の機能拡張を除けば、機能に変更はない。しかし、その背後では、目立たない部分で、かなり大がかりな改良が行なわれていると推測される。それは、チップの物理設計の部分だ。

 NVIDIAは、物理設計を改良することで、チップの歩留まり、消費電力、クロック向上といった要素を改善したと推測される。以前から業界関係者からは、NVIDIAがGF100の物理設計を大幅に直したバージョンを開発していると伝えられていた。論理上のアーキテクチャの変化は少なくても、物理的なチップとしてはGF110は、大幅に改善されたGPUとなっていると見られる。

 そして、40nmプロセス世代のNVIDIA GPUでは、物理設計が最も重要な課題であるため、NVIDIAが物理設計を改良したこと自体は理にかなっている。ただし、GF104アーキテクチャのグラフィックスに特化したハイエンドGPUを期待していた一部のユーザーの期待は裏切ることになる。下の2つの図は、それぞれGF100/GF110とGF104のSM(Streaming Multiprocessor)の構造だ。両系列は内部アーキテクチャが異なる。

 しかし、今はマスク制作だけでも高コストにつくため、市場毎にダイ(半導体本体)のバリエーションを増やすことは経済的ではない。NVIDIAとしてはハイエンドGPUは、グラフィックスとGPUコンピューティング両用という戦略は、今のところ外せないだろう。

GF100/GF110のSM
PDF版はこちら
GF104のSM
PDF版はこちら

●SMを無効にする必要がなくなった580

 GF100のダイには、16個のSMが搭載されている。各SMは、それぞれが32個の演算プロセッサ「CUDAコア」を含むので、物理的には512個のCUDAコアを載せている。しかし、製品としてのGF100は、SMのうち1個を無効にし、チップ全体で使えるプロセッサ(CUDAコア)数は480個となっている。GPUコンピューティング向けのTesla製品でも同様にSMが2個無効化されCUDAコア数は448個だ。

 NVIDIAがSMを無効にしなければならなかったのは、ダイ上の欠陥のため、動作しない不良SMが発生するからだ。冗長化でカバーできない欠陥の率が非常に高すぎるため、GF100は512個のCUDAコアの製品として出荷しようとすると製品歩留まりが極端に悪化してしまう。そこで、製品仕様としてSMを無効にすることで、NVIDIAは歩留まりを上げた。SMにブロックレベルの冗長性を持たせたことにして、NVIDIAはようやくFermiアーキテクチャを製品化した。

 しかし、GF110では、ダイ上の512個のCUDAコアを全て有効にして出荷する。NVIDIAは、ついに、SMを無効にする必要がないほど欠陥率を下げることに成功したことになる。もちろん、それでも欠陥は発生するので、SMを無効にした下位製品は登場すると見られる。しかし、これまでのように、ハイエンド製品までSMを無効にしなければならない異常事態は、これで終わった。おそらく、GF110ベースのTesla製品でも、512コア有効版が登場するだろう。

GF100のダイ写真

●TSMCだけが悪いわけではない40nmでの歩留まり問題

 NVIDIAが今世代で歩留まりに苦しんでいた理由については、ファウンドリのTSMCの40nmプロセスの欠陥密度が高いせいだと言われて来た。おそらく、今回、GF110でも512コアの背景に、TSMCの欠陥密度の低下があると報じられるだろう。しかし、実際の理由はそれほど単純ではない。どころか、もっと根源的な部分に、問題がある。

 そもそも、40nmプロセスで歩留まりが悪化した背景は、NVIDIA自身が公式にカンファレンスで説明している。2009年11月の半導体カンファレンス「IEDM」での、NVIDIAのJohn Y. Chen氏(Vice President Technology & Foundry Operations, NVIDIA)の論文「GPU Technology Trends and Future Requirements」がそれだ。この論文で指摘している重要なポイントは、先端GPUに要求される設計では、必然的に歩留まりが悪化するという点だった。また、この問題は現在のNVIDIAアーキテクチャに特に顕著な問題で、同じ40nmで、AMDよりもNVIDIAの方が苦しんでいる理由はそこにある。しかし、長期的に見ると、全てのプロセッサが直面して行く問題でもある。

 NVIDIA GPUは、汎用的な並列プロセッシングのために、プロセッサコアの設計の複雑度を増して来た。現在のNVIDIA GPUのSMは、多数の演算ユニットと大きなレジスタファイル、内蔵メモリや他の機能ユニットを接続するために、膨大な配線が複雑に走っている。例えば、GF100/GF110アーキテクチャでは、32個の積和算ユニットが同一サイクルに並列に動作して、それぞれが同時にレジスタやメモリへのアクセスを行なう。

 メモリアクセスでは、16個のロード/ストアユニットと4個のテクスチャユニットがメモリやレジスタと接続されている。メモリはキャッシュとスクラッチパッドメモリの2系統で、さらにテクスチャ専用のキャッシュなどがある。加えて、テッセレータのような固定機能ユニット群が配線で結ばれている。さながら配線地獄で、膨大な長さのメタルラインがSMの中を走っていると推測される。

●ビアの不良がNVIDIA GPUにとってのアキレス腱

 物理的には、半導体のダイは金属の配線層が何層にも重なった立体構造となっている。多層配線で、GPUに必要とされる稠密な内部接続を実現する。しかし、配線と配線の間は、層間絶縁膜で隔てられているので、配線間を結ぶためには、そこに縦の接続を作る必要がある。これは「ビア」と呼ばれ、絶縁膜に穴を開けて、配線のための金属を満たすことで生成する。現在は銅が配線素材として使われている。

 NVIDIAによると、このビアの生成工程は不良が発生しやすいという。そこで、従来、NVIDIAは、配線層間を結ぶ接続ノード1個ににつき、2つ以上のビアを設けていたという。2つ以上のビアがあれば、1つのビアに不良が発生した場合でも、接続は維持されその回路ブロックは動作できる。つまり、物理設計のレベルで、ビアに冗長性を持たせることで、歩留まりの低下を防いできた。

 ところが、微細化が進むと、配線があまりに稠密になりすぎてしまった。そのため、接続ノードにつき1個のビアしか設けられないケースが増えてきたという。下の図はNVIDIAの示した、単位面積当たりのメタル配線の合計長とビア数だ。一見するとわかる通り、単位面積当たりの配線のライン長は40nmプロセスで劇的に増え、それに伴いビアの数も急激に増えている。

配線長とビア数の相関

 これだけでも大きな問題だが、それ以上に問題なのは、接続ノードに1つのビアしかない冗長性のないシングルビアが増えたこと。図の一番下の赤いラインがシングルビアの数で、40nmで一気に増えたことがわかる。40nmでは、チップの全てのビアのうち75%には歩留まりを向上させる冗長性がある。しかし、残りの25%のシングルビアには冗長性がなく、そのためシングルビアに欠陥が生じた場合はその回路が機能しなくなり、歩留まりを下げてしまう。チップ上には、こうしたシングルビアが数億カ所もあるという。

 ところが微細化に伴って、ビアホール自体がどんどん小さくなり、さらにビア同士のスペースも小さくなってしまった。そのため、ビアの生成は、技術的にますます難しくなっているという。また、ビアがちゃんとマージン内で動作するように見えても、使っている間に熱で変成してマージンから外れてしまうケースもありうるという。つまり、チップの信頼性にも問題が生じかねない状況にあった。

●欠陥密度が同じでもプロセスが進むと歩留まりが落ちる

 こうした物理設計上の問題をNVIDIA GPUは抱えていた。そのため、ファウンドリのプロセスでのビアの欠陥密度が従来と同じであっても、GPUの歩留まりが悪化するという状況にあった。物理設計上の冗長性が、以前より格段に落ちているためだ。

 下の図は、NVIDIAによるシングルビアの欠陥密度と歩留まりロスの関係のチャートだ。右に行けば行くほど欠陥が多く、左に行けば欠陥が減る。歩留まりロスはチップを製品として出せなくなる率も意味するが、これは上に行けば行くほど高くなっている。一見すればわかる通り、同じ欠陥率なら、プロセス世代ごとにどんどん歩留まりが悪くなる。

シングルビアの欠陥密度と歩留まりロスの相関

 NVIDIAは、40nmプロセスで10%以下の歩留まりロスに抑えるためには、欠陥レベルを1 DPPB (Defective Parts Per Billion)以下にしなければならないとしている。つまり、40nmでは130nmの時と比べると約1/10に欠陥が減らなければ、同じ歩留まりにならない。そのためには、従来のDPPM (Defective Parts Per Million)で数えるのではなく、1/1,000の単位DPPBで考えて欠陥を減らす必要があるとしている。

 とはいえ、現実的には、これは難しいと見られる。時間が経てばラーニングカーブで欠陥が減るが、本来ならもっと歩留まりが上がる時に、ようやく以前のプロセスの歩留まりと同じレベルに到達する程度だ。28nmになれば、また同じ問題が繰り返されることになる。本質的な問題は、複雑化するプロセッサの配線自体の方にある。

 この状況で、ファウンドリに、プロセスの立ち上げ時期での欠陥密度を劇的に下げてもらうことができなければ、NVIDIAがやれることはただ1つだ。物理設計をやり直して、配線間のコネクトのビアの数を増やして、冗長性を増やすことだ。NVIDIAがGF110の設計で行なったのは、おそらく、これだと推測される。

●トレードオフが多々ある物理設計の改良

 物理的な設計を変えれば問題を解決できるなら、初めからそうすればよかったと思うかも知れない。ところが、話はそれほど単純ではない。トレードオフがあるからだ。

 まず、ビアの数を増やそうとすると、ダイ面積を喰ってしまい、最終的にチップのダイサイズが大きくなってしまうという。NVIDIAも、ダイサイズが許す上限までビアの数を設けたが、その結果、シングルビアが増えたと説明している。結局、トランジスタのピッチがいくら狭くなっても、その上層の配線部分で面積を取ってしまうなら、微細化しても、トランジスタピッチに沿ったダイの縮小ができなくなってしまう。

 今回、NVIDIAがどうやってこの問題を解決したのかは、まだわからない。GF110のダイは520平方mmと、GF100の529平方mmとほぼ同じだからだ。ダイ写真が出てこないと、正確なところはわからない。しかし、歩留まりを上げるために物理設計を変更しながら、ダイの肥大化を抑えるためには、他のブロックでダイ面積を削るなどの努力が必要だったと推測される。

 また、こうした設計変更を行なったとすれば、NVIDIAのエンジニアリングリソースと時間を食ったと推測される。NVIDIAの場合は、ファウンドリの機能ブロックを使うスタンダードセルではなく、自社で設計したカスタムマクロをプロセッサ部分に使っている。そのため、プロセッサ部分の物理設計を変更する場合には、より手間がかかる。基本はスタンダードセルベースであるAMDの方が対応は容易なはずだ。また、物理設計をほぼ一新することになるので、検証にも時間がかかったと推測される。

 このように、ダイサイズや時間、リソースなど、さまざまなトレードオフを考えると、簡単には物理設計の総見直しに踏み込むことができない。物理設計改良版のGF110が、GF100より実質2四半期遅れたことには、こうした理由があると推測される。

GPUのダイサイズとプロセス技術の変遷
PDF版はこちら
GPUのトランジスタ数とプロセス技術の変遷
PDF版はこちら

●CPU的なペースで登場したGF110

 そもそも、GPU開発では、物理設計をじっくりチューンする暇がほとんどない。CPUでは、新アーキテクチャの場合に、設計終了のテープアウトから製品が出るまで通常1年の猶予がある。その間に、設計の検証とチューニングを行なう。

 通常のファウンドリでは、サンプルチップの検証を行なって、改良した設計をFabに戻して再びサンプルが出てくるまでのサイクルは約1四半期。GPUの場合は、テープアウトしてから、最短では1サイクルの1四半期で製品を出す。通常は、2サイクルの2四半期で製品出荷だ。3サイクルの3四半期かかると、製品が遅れたと言われる。

 その意味では、今回のGF110は、CPU的なペースで登場したと言える。GF100がテープアウトしてから1年で登場したのがGF110だからだ。CPU的に設計チューニングをほどこすなら、本来GF110のタイミングが製品投入の時期だ。

 従来なら、GPUはファウンドリ側のプロセス技術が1年でハーフノードへと移行するため、じっくり物理設計を見直す時間がない。すぐさま、新プロセスへの移植が始まるからだ。しかし、今回はTSMCなど大手ファウンドリが高速ロジック向けプロセスで32nmをスキップしたため、状況が変わった。同じ40nmプロセスが2年以上続くため、中間世代GPUを40nmで設計しなければならない。そのため、両社とも、今回は物理設計に手を入れている。

 皮肉なことに、TSMCが2年サイクルのプロセス移行へと変えたことで、NVIDIAとAMDの両社とも同じプロセスで物理設計を熟成させるチャンスを得た。ちなみに、NVIDIAについて言えば、GF100がFabでの試作段階でうまく動作しなかったため2回も物理設計をやり直したと言われている。GF100は元々のスケジュールから2四半期も遅れた。GF110での物理設計改良は、その延長線上にあるとも考えられる。

G80からG100までの派生品の歴史
PDF版はこちら

●消費電力が下がり動作周波数が上がる

 物理設計を時間をかけて見直したと見られるGF110では、消費電力も相対的に下がった。そのため、1SM分のプロセッサを有効にして、動作周波数を引き上げたにも関わらず、TDPは同レベルに保っている。

 NVIDIAが電力を引き下げるのに用いた手法は、一般的なものだ。回路設計を見直して、低速だがリーク電流が低いトランジスタに置き換えることができる場所は置き換えた。一方、遅延が問題となるクリティカルパスには、従来通り高速でリーク電流の多いトランジスタを使ったと見られる。IEDMの論文でも、クリティカルパスには高速な通常しきい電圧のトランジスタを使い、クリティカルでない部分には低リーク電流の高しきい電圧のトランジスタを使う例を説明している。

プロセス技術と半導体の普及

 NVIDIAでは、ダイ面積あたりの電力密度が一定になるように、製品仕様を決定している。具体的には、NVIDIAは0.3W/平方mmより少し上の電力密度を上限として、それを超えないように電力を抑えている。チップのピーク消費電力は、ダイ面積に電力密度をかけた数字になるが、トップビンのGPU製品の電力密度はほぼ一定であるため、消費電力も特殊なケースを除けば、ダイサイズにほぼ比例することになる。

 そのため、電力密度は、NVIDIA GPUにとって動作周波数の最大の制約要素となっている。そして、電力密度のうち、リーク電流によるスタティック成分が、動作周波数を左右する重要な要素だ。90nm以降は、スタティック成分が支配的になり、0.15W/平方mm~0.2W/平方mm強を占めているからだ。下の図でグリーンがスタティック成分、ブルーがアクティブ成分、グレーが合計の電力密度を指す。

NVIDIA GPUのプロセス毎の電力密度の変遷

 一方、ダイナミック成分の方は、チップの動作周波数を上げると増える。そうすると、増大したスタティック成分と合わせて0.3xW/平方mmの枠を超えてしまう。逆を言えば、スタティック成分を抑えることができれば、動作周波数を上げてダイナミック成分を増やす余地ができる。今回、NVIDIAがGF110の動作周波数を引き上げることができた理由は、ここにあると推測される。

●2年毎に大きなジャンプがやってくるようになったGPU

 NVIDIA GPUが現在直面している設計上の問題を概観すると、今後は物理設計がGPUにとってますます重要になることが見えてくる。並列性が異常に高いGPUでは、配線をいかにうまく設計するかが、今回のように歩留まりや信頼性、さらにはパフォーマンスアップのカギになる可能性が高い。

 また、ファウンドリのプロセス移行が2年サイクルに変わったことの影響も顕著だ。NVIDIAは、この世代では、従来のような倍々のパフォーマンスアップは達成できなかった。ダイサイズに余裕があるAMDと比べると、NVIDIAの場合は同じプロセスでGPUを拡張できる余地が少ない。しかし、このことは、2011年の28nmプロセスへの移行が、大きなジャンプになることを示している。

 ダイ当たりのトランジスタ数の増加(同じチップ面積の場合の理想値)は、1年サイクルの時は世代毎に1.4倍にしかならなかった。しかし、2年サイクルでは、世代毎のトランジスタ増加は一気に2倍になる。パフォーマンスやアーキテクチャ向上の余地は増える。つまり、1年毎のゆるやかなステップから、2年毎の大きなジャンプへと変わった。おそらく、NVIDIAの次のGPUアーキテクチャ「Kepler(ケプラ)」は、大きなジャンプになるだろう。