後藤弘茂のWeekly海外ニュース
16/14nm FinFET世代で変わるGPUのプロセス技術
2016年8月4日 12:02
AMDはGLOBALFOUNDRIESの14LPPを採用
AMDは、FinFETプロセス世代では、GLOBALFOUNDRIESの14nmプロセス「14LPP」をGPUやAPUに採用する。Radeon RX 480(Polaris 10)がAMDにとって最初の14LPP製品となる。GLOBALFOUNDRIESの14LPPは、Samsungとの技術提携によるプロセスで、同じPDKを使う互換プロセスだ。AMDはFinFET世代のGPU開発では、製造を委託するGLOBALFOUNDRIESと密接な「Design Technology Co-Optimization(DTCO)」を行なったと説明している。ラフに言えば、ファウンダリが提供するプロセス技術のオプションの中から最適な組み合わせを選択し、チップ物理設計を最適化することで、より効率的なチップを実現した。プロセスのピッチの微細化によってダイが縮小するだけでなく、DTCOによってさらにダイが小さく(=コストが低く)電力消費も低いチップが実現できる。これが、DTCOの謳い文句だ。
DTCOは、FinFETプロセス世代になって、より重要視されている。これは、FinFET世代のプロセスでは、ファウンダリの提供するオプションがより複雑になっているためだ。プレーナからFinFETへとトランジスタの構造が変化したことで、トランジスタの特性も大きく変わった。そのため、DTCOが重要とされている。AMDのSamuel Naffziger氏(Corporate Fellow, AMD)は次のように語る。
「プロセス技術をあらゆる面から検討した。まず、メタルスタック(配線層)の定義を行なった。GPUに最適なメタルスタックのオプションを選択する必要があったためだ。焦点となったのは、もっとも狭い配線を何層使うかがだ。狭い配線は、コストの高いダブルパターニングを必要とするため、注意が必要だった。
また、ファウンダリは3種類の異なるしきい電圧(Vt)のトランジスタを提供しており、どのVtをどこに採用するかを慎重に検討する必要があった。Vtだけでなく、トランジスタの他の要素についても幅広いスケールを提供しており、検討する要素が多かった。
スタンダードセルライブラリについては、まず、セルの高さでどれだけのメタルトラックにするかを検討する必要があった。セルライブラリのセルハイト(セル高)については、9トラックと10.5トラックを検討した。その結果、我々は9トラックのセルハイトのセルライブラリを選択した。
このように、多くの組み合わせの中から、(ディスクリートGPUに)最適なものを検討する必要があった。その上で、デザインツールも最適化する必要があった」。
FinFETプロセス時代のGPUで重要となるメタルレイヤ
現在の半導体のロジックプロセスでは、10層以上のメタル配線を使う。メタルレイヤ(配線層)は、トランジスタに近い下層ほどメタルピッチ(配線間隔)が狭く、上層になるほどピッチが広い。ピッチ間隔は、最も狭い層を基準の「1x」として、数える。例えば、最下層のメタルピッチが90nmで、下から4つ目の層が180nmだった場合は、「M1が1x」「M4が2x」といった表記となる。
通常のロジックプロセスでは、最もメタルピッチ(配線間隔)が狭い1x層は2~3層、その上に2xが数層、4xが数層と重なり、最上位が10x以上の極めてピッチが広い配線となる。しかし、GPU向けのプロセスでは、これまで1xメタルを8層使うことが一般的だった。これは、GPU向けの特殊なオプションで、8層の1xは、ファウンダリが提供できる1x層数の最大オプションだ。
GPUは配線を細くすることで、より稠密な配線ができるように配線層を特注にしていた。演算ユニット数が極めて多いGPUは配線地獄であるため、稠密な配線が可能なプロセスでないと、ダイエリアが肥大してしまうためだ。実際に、GPUの設計を、GPUの製造経験の少ないファウンダリに持って行ったところ、ダイが膨れ上がってしまった事例がある。
狭い配線の不利な点は、中間層の配線で抵抗が増えることで、配線遅延により動作周波数が制約される場合が出てくる。そのため、レイテンシがクリティカルなCPUでは、中間配線層を2xや4xにする。しかし、GPUでは、配線密度を上げてダイを縮小する方が重要であるため、中間層も含めて8層の1xを採用していた。
実際には、AMDは、GPU向けプロセスのメタルレイヤの詳細はこれまで明らかにしていない。しかし、APU(Accelerated Processing Unit)向けプロセスについてはメタルレイヤを明らかにしており、そこから、GPU向けプロセスの概要が分かる。現在の28nmプロセスAPUである「Carrizo/Bristol Ridge」は、GPUとほぼ同じメタルレイヤを採用したとAMDは説明しているからだ。Carrizoは8層の1xを使っており、GLOBALFOUNDRIES 28nmで製造され「28A」プロセスと呼ばれている。1xが8層、2xと4xがそれぞれ1層、16xが2層だ。AMDの28nmディスクリートGPUはTSMC製造だが、ほぼ同じ配線オプションだと推測される。
ちなみに、同じ28nm世代APUでも、Carrizoの前に開発された「Kaveri」では、異なる配線構成だった。GLOBALFOUNDRIESの28SHPプロセスで、1xが6層、2xが3層、4xが1層、16xが2層。AMDはCPUとGPUの中間的な配線だと説明していた。
1xメタルを最小に抑えたFinFET時代のGPU配線
28nmプロセスまでのGPUは、8層の1xメタルレイヤを使うことが特徴だった。だが、14nmプロセスでは、GPUのメタルレイヤの構成は、従来のプロセスとは大きく変わる。
「これまで、GPUは、8層の1xメタルを使っていた。しかし、今回は異なる。理由は、14nmプロセスでは、1xメタルレイヤの加工に、ダブルパターニングが必要となるからだ。ダブルパターニングは、(製造工程のコストが)非常に高くつく。そのため、ダブルパターニングを使うメタルレイヤの数を最小に留める必要があった。詳細は言えないが、14nmでは1xメタルはより少なくなっている」とNaffziger氏は語る。
現在のロジック半導体の製造で使われているArF露光技術は波長が193nmであるため、“14nm”ノードの微細なパターンの露光に限界がある。そのため、現在では液浸の屈折率で解像度を稼ぎ、マルチパターニングで配線パターンを分割することで、要求される微細パターンの露光を可能にしている。ファウンダリのロジックプロセスの場合、20nmプロセスから、最も狭い1x配線層にダブルパターニングが導入された。
しかし、ダブルパターニングを導入した配線層は、マスク枚数が2倍になり、露光工程も2重になる。言い換えれば、マスクコストが倍になり、露光工程のスループットが落ちて製造コストが上がる。さらに、マスクパターンの作成が複雑になり設計工程のコストが上がる。そのため、ダブルパターニングを使う1xの層数が多いと、ウェハをプロセスするコストが跳ね上がることになる。結果として、GPU向けのプロセスでも1xを8層といった使い方は、現状ではコスト的に不可能になっている。
そのため、14/16nmプロセスのGPUでは、3層程度までを1xの64nmピッチの配線として、その上の層は1.25xの80nmピッチ配線を使うオプションになっていると推定される。80nmまではシングルパターニングで加工可能であるため、1.25xを使う構成なら、相対的に密な配線を維持しながら、ダブルパターニングによるコスト増大を抑えることができる。
AMD GPUのセルライブラリは9トラックハイト
GPUは、通常はスタンダードセルベースの設計だ。スタンダードセルは、回路設計におけるレゴブロックのような部品だ。スタンダードセルは、設計しやすいようにセルハイトを揃えてある。セルハイトが高いほど動作周波数を上げやすいがセル面積と電力が大きくなり、低いほど高密度で低電力だが動作周波数が制約される。スタンダードセルライブラリでは、まず、セルハイトの選択が重要となる。Naffziger氏は次のように語る。
「異なるIPは、それぞれ異なるライブラリ技術を必要とする。我々は、FinFETプロセスでは、GPU IPに適しているライブラリを慎重に検討した。FinFETプロセスのライブラリの場合、重要な点は、(トランジスタの寸法が)フィン数の粒度に制約される点だ。そして、メタルトラック数が、どれだけの数のフィンをセル内に配置できるかを決める点だ。
例えば、9トラックライブラリなら、4フィンとなる。より多数のフィンが欲しいなら、他の(10.5トラック)ライブラリとなるが、その場合はセルがより大きくなってしまう。我々は検討した結果、GPUでは4フィンの9Tライブラリで行けると判断した」。
ライブラリのセルの高さは、メタルレイヤのメタルトラック(配線トラック)数で数える。FinFETプロセスの場合は、一般にハイパフォーマンスセルが10.5トラック(10.5T)。ハイデンシティ(高密度)のスタンダードセルが9トラック(9T)、ウルトラハイデンシティ(超高密度)は7.5トラック(7.5T)となる。28nmでは、パフォーマンスセルは12T、ウルトラハイデンシティセルは7T程度だった(8Tなどほかのセルハイトもある)。
トラック数とフィン数の関係
FinFETプロセスの特殊事情として、セルライブラリの配線トラック数と、トランジスタのフィン数の間の関係がある。「トラック数=セルの高さ」によって、セル内に配置できるフィン数が変わる。例えば、メタルピッチ(配線間隔)が64nmで、フィンピッチ(フィン間隔)が48nmだった場合。9トラックのセルは「64nm×9=576nm」となり、これはフィンピッチ側では「48nm×12=576nm」となる。つまり、9Tセルの場合は、セル内部に12枚のフィンを配置できることを意味する。実際には、このうち、実際にトランジスタに使うことができるアクティブフィンは8フィンとなる。そして、一般的には、トランジスタにつき、半分の最大4フィンが使えることになる。Naffziger氏が9Tで4フィンと言っているのは、このことだ。同じ意味で、10.5トラックの場合は、5フィンとなる。
ちなみに、AMDは昨年(2015年)のISSCC時に、AMDの28nmプロセスのGPUコアIPのセルライブラリは9トラック(9T)ハイトだと明かしている。AMDは28nmプレーナプロセスと、14nm FinFETプロセスのどちらでもGPUには9Tライブラリを使っていることになる。GPUには、最も高パフォーマンスなライブラリより、パフォーマンスと密度と電力のバランスを取ったライブラリを選ぶ傾向がある。
横道にそれると、AMDはCPUコアについては、28nmプロセス時に、12トラック(12T)から9トラック(9T)へとライブラリ変更を行なっている。「Kaveri」の「Steamroller」コアはパフォーマンスライブラリである12Tだったが、CarrizoのExcavatorコアでは9Tライブラリとなった。これによって、CPUコアのエリアと電力を大幅に抑えている。
ゲート幅の量子化の影響は相対的に少ない
プレーナトランジスタでは、トランジスタのゲート幅(チャネル幅)はある程度自由に設定ができた。それに対して、FinFETでは、ゲートはフィンの形となっているため、ゲート幅はフィンの数を増やすことで増える。ゲート幅がフィン数という粒度を持つため量子的(離散的)にゲート幅が増える「Width Quantization(幅量子化)」と呼ばれる事象が発生している。言い換えれば、FinFETではゲート幅は整数倍でしか調整ができないため、フィンのプレイスメントを含めたライブラリセルの設計の自由度が制限される。これはFinFETの不利な点とされていたが、Naffziger氏はあまり問題にならなかったと語る。
「確かに、当初は、ゲート幅の量子化は大きな懸案事項だった。プレーナトランジスタでは、自由にゲート幅を決めることができた。しかし、FinFETでは、1、2、3といったように量子化される。しかし、実際に設計に入ると、大した問題ではないことが分かった。なぜなら、デバイス自体の品質が高かっただからだ。
FinFETでは、リーク電流が少なく、(しきい電圧の)ばらつきが少なく、駆動電流は大きい。そのため、量子化はさほど問題にならなかった。量子化で、問題となった少ない例はFlip-Flop(フリップフロップ)だ。Flip-Flopは、従来より相対的にサイズが大きくなる可能性があった。そのため、Flip-Flopについてはカスタムセル化した」。
FinFETではソース-ゲート-ドレインの構造が立体化されて、ボディ領域から分離されている。そのため、リーク電流が抑制され、駆動電流が大きい、さらにトランジスタ毎のしきい電圧ばらつきも抑制される。つまり、トランジスタ自体の性能が高い上に、吸収しなければならないばらつきも少ない。その分、設計マージンを減らすことができる。そのため、ゲート幅の設計の自由度が制約されても、それほど問題がなかったという。
フリップフロップをカスタムセル化
AMDは、FinFET化にあたって、一部にカスタムセルを導入している。「Mlti-Bit Flip-Flop(MBFF)」だ。FinFETプロセスでは最小のゲート幅は1フィンであり、Flip-Flopは最小のゲート幅しか必要としないため各1フィンとなる。その上でそれぞれのFlip-Flopにクロックをディストリビュートする。FinFETプロセスでは量子化による制約のために、プレーナプロセスよりも、Flip-Flopセル群の占める面積が大きくなってしまう可能性があるという。
そこで、Polaris設計にあたっては、AMDは4つのFlip-Flopをバインドしてクロックディストリビューションを共有化することで電力と面積を節約する設計を取ったという。4つのFlip-Flopで1つのクロックを共有するセル設計だ。Mlti-Bit Flip-Flop(MBFF)でのクロック供給の共有設計自体はAMDだけのユニークな設計ではなく、論文も多数出ている。しかし、GPUでは特にFlip-Flopが多いために効果は大きい。
GPUでは、ロジック回路内でもラッチなどに膨大なFlip-Flopを使っている。AMDのPolaris 10は、ダイ上に合計で2,100万のFlip-Flopを備えている。巨大な並列プロセッサであるGPUでは、クロック同期して動作するロジック回路が膨大であるため、クロック同期のためのFlip-Flopが膨れ上がる。その電力消費はGPUダイのTDP(Thermal Design Power:熱設計消費電力)の15%を占めるという。GPUの面積と電力の大きな消費源がFlip-Flopであり、FinFETでは設計上そのFlip-Flop面積が増大する傾向にあった。しかし、カスタムセル化することによって、Flip-Flopでのクロック電力は40%も削減できたという。TDPでは4~5%も低減になったという。
こうして見ると、FinFET世代のGPUでは、CPUとはまた異なった物理設計/回路設計の労力が必要になることが分かる。従来のプレーナトランジスタプロセスの微細化よりも、設計ハードルが高い。設計ベンダー側のスキルが求められる。