米Xilinxは7月9日、同社の20nmプロセスを使った新世代製品がTape Outしたことを発表すると共に、この新世代製品には新しくUltraSCALEというアーキテクチャが搭載されていることも発表した。この発表に先立ち、7月5日に同社の日本法人であるザイリンクスにおいて、この新製品の事前説明会が開催されたので、この内容をお届けしたいと思う(Photo01)。
さて、今回の発表は大きく2つに分かれる。まずはTSMCの20nmプロセスを使う製品としては業界初のTape Outをアナウンスしたことだ(Photo02)。競合となるAlteraも20nm製品に関するアナウンスを6月に行なっているが、Tape Outはまだである。もちろん、この事そのものもニュースであるのだが、それよりも同社はむしろこの20nmから初めて実装された、UltraSCALEアーキテクチャをむしろ前面に押し出す内容になっていた(Photo03)。
ではUltraSCALEとは何か? ということで示されたのがこちら(Photo04)。大雑把に言えば、既存の7シリーズの製品から大幅に性能(ロジック密度・データフロー)を改善したものになると説明された。具体的に言えば、現在のFPGAで問題になっているボトルネックに対して、それぞれのソリューションを提供したものになると説明された(Photo05)。
Photo04:例えばビデオでは、8Kだけでなくその先の16Kの話まで最近は来るそうで、そうしたものに対応できる能力だそうだ。またレーダーは日本ではあまり縁がないが、これは米国の軍事航空向け。Digital Arrayでは7TMACs以上の演算性能が必要とされるそうだ |
Photo05:ボトルネックは左の4つ(Routing/Clocking/Critical Path/Power)である |
さて、具体的にどんなものか? ということで、まずはRouting。アナロジーとして、平面型の交通では交通渋滞が起こりやすいが、立体型交差点にするとこれが解消しやすいという、当たり前の話がある(Photo06)。で、FPGAが扱うべきトラフィックそのものが、特に45nm世代あたりまでは直線増加だったのが、45nm以降では指数級数的に増えつつあるという話が出てきている。問題はこの際に内部のロジック間のルーティングがだんだん難しくなっていることだ(Photo08)。
プロセス微細化に伴い、扱えるロジックの数はどんどん増えているが、ロジックの数の増加量に比べて配線リソースの伸びが少ないことが、ルーティングのボトルネックに繋がるとしている。このギャップを、UltraSCALEでは高速トラックルートを新たに設けることで解決した、としている。具体的にどうなるか、という話そのものは今回は公開されなかったが、要するに従来のロジック層の上に、プログラム可能な配線層(少なくとも縦方向と横方向の2層)を用意し、ユーザー配線の中で特に長距離を迂回するようなものについては、こちらの配線層を使う形でルーティングのリソースを改善するようなものになる模様だ。面白いのは、この構造はモノリシック製品のみならず、2.5D構造のマルチチップ製品でも実現されることだ。2.5D構造ではダイとパッケージの間にSilicon Interposerを挟み、このInterposerの中でダイ同士の接続を行なう仕組みだが、同社によれば「このInterposerは別に配線が一層しか作れない訳ではない」のだそうで、つまり隣接チップ間の接続用配線とは別に、高速トラック用のプログラミング可能な配線層が別途作りこめる模様だ。これにより、従来よりもルーティングのボトルネックを解消できたとの話である。
次がClock Skewのボトルネックである。従来は1つのGlobal Clockを、Clock Treeなどを使ってFPGA全体に分配していたが、そもそも回路規模が大きくなるとこれは大変だし、また内部に広いバスを配した場合、配線長の差によるClock Skewの増大は避けられない。これを解決するために、内部に複数のClock Domainを設け、それぞれがLocal Clockを持つ形に内部が改められた(Photo09)。
Photo09:ただこうなるとInter Clock-Domain間のLinkはどう同期を取るのかという問題があるが、これを吸収するためのリソースはハードウェア的にすでに内蔵されており、Vivadoがそのリソースをどう配分するかを自動的に最適化するので、ユーザーはそうしたClock-Domainの違いを意識する必要がない、という話であった |
3つ目がCritical Pathの改善(Photo10)。まずはDSP Blockで、従来の25×18bitの演算を27×18bitの演算に切り替えたとする。これにより、倍精度浮動小数点演算を行なう場合のDSPブロックの利用効率を向上出来たとする。また、通信系アプリケーションではDSPを使う用途はあまり無い一方、CRCとかECCなどの演算のためにロジックを使っていた。そこでDSPブロック内のXOR演算にEFECやCRC/DSPの演算機能を付加することで、通信系アプリケーションでもDSPブロックを使えるようにしたことで、ロジックの有効利用を図れるようにしたとする。また内部のSRAMブロックではメモリブロックにセレクタを追加することで、SRAMブロックをフルスピードで動作できるように配慮した。またいくつかの高速I/OについてはHard IPとして実装することで、リソースの効率利用とLatencyの低減が図れたとする。
Photo10:SRAMブロックについては、要するにインターリーブ的な使い方が出来るようになったので、無駄に速度を上げなくても帯域の増大を図れるようになり、ここでのボトルネック解消が可能になったという事の様だ |
最後が消費電力の改善(Photo11)であるが、プロセスを20nmに低減したことでリーク電流を35%削減できたほか、様々な最適化により電力効率を改善できたとしている。
さて、ここからは製品の話。冒頭で20nm製品がTape Outしたとしたが、最初に投入されるのはVirtexとKintexの2製品である(Photo12)。
これで具体的にどんな風に改善できたか、という事例が今回は4つ示された(Photo13~16)。
さて、この次であるが、次いでZynqについてもやはりUltraSCALE製品が投入されるとしている。Artixについては現状明確には示されていないが、やらないわけではなく、いずれは投入するとの事。またVirtexについてはモノシリックだけではなくマルチチップ(同社の言うところの3D-IC)もすでに20nm世代で提供予定という話だった。ここでちょっと判ったことは、28nm世代では同社は独自のSSI(Silicon Stacked Interconnect)を開発したが、20nm世代ではこれを捨てて、TSMCのCoWoS(Chip-On-Wafer-On-Substrate)を利用するという話であった。先ほどルーティングの部分の説明の中で「このInterposerは別に配線が一層しか作れない訳ではない」とあったが、そんなわけでこれはCoWoSを前提にした話である。XilinxとCoWoSについては2013年5月にちょっとした発表があったほか、Alteraが2012年にこれを前提にしたテストデバイスを開発しているが、量産品としてはやはりXilinxの方が先になりそうである。
ちなみに、ではZynqに関してはCoWoSを使ったマルチチップの可能性は? と聞くとまだ公開できないとの事。また20nm世代のZynqが引き続きCortex-A9ベースなのかについても発表できないという話であった。ただ数については、現状のDual Coreよりも「沢山」(Rogan社長)という話で、普通に考えるとQuad Coreあたりを狙っているものと思われる。
最後に、20nm UltraSCALE製品を2013年第4四半期中に出荷する、という話を繰り返して説明会は終了した。