米Xilinxは2月23日(米国時間)、TSMCの16nm FinFET+(16FF+)プロセスを採用した「UltraSCALE+製品群」の概要を発表した。

Photo01:TSMC 16FF+プロセスを採用した「UltraSCALE+製品群」のイメージ

これに先立ち、国内で詳細についての説明会を開催したので、この内容に基づいて紹介したい(Photo02)。

Photo02:説明を担当したTim Erjavec氏(Vice President, FPGA Platform Marketing)。前回は20nmプロセスのUltraSCALE製品の概要説明の際にお会いした

さて最初にまとめというかサマリーであるが(Photo03)、同社はすでに20nmプロセスを利用したUltraSCALE製品をKintexとVirtexの製品ラインに投入している。今回のUltraSCALE+はこの後継にあたるが、UltraSCALEの20nm世代ではZynqの後継製品がスルーされていた。今回はこれをMPSoCとして追加しているのは大きな違いである(Photo04)。

Photo03:これはプレスリリースのダイジェストにあたる。今回のキーワードは16nm、UltraRAM、それとMPSoCである(3D-on-3Dは正直微妙な気が)

Photo04:Vivadoに加えてSDxの提供もすでに始まっているが、こちらは必ずしもUltraSCALE+に合わせて、という訳ではないので、ちょっと話は別

さてまずはプロセス。UltraSCALE+では、TSMCの16FFではなく、16FF+を採用することになっており、消費電力あたりの性能を28nm世代と比較して倍にすることに成功しているとする(Photo05)。

Photo05:16FF+を使う関係で、当然まだテープアウトはしていない

ここに出てくる"3D-on-3D"は、FinFETベースの3D Transistorを、同社がこれまで"3D IC"と呼んでいたSilicon Interposerを利用して接続するという意味であり、TSVを使って物理的に3次元方向に積層するという意味ではない。世間的には2.5Dと表記することが多いが、同社は28nm世代のVirtex-7に利用した独自のSSI(Stacked Silicon Interconnect)の頃から3Dと称しており、今回もそれに倣った形だ。実際には20nm世代と同じくTSMCのCoWoS(Chip-On-Wafer-On-Substrate)を利用して製造することになると思われる。実は16nm世代でCoWoSを利用した最初の製品はHiSiliconが2014年9月にアナウンスしているが、16FF+に関してはこれをXilinxが初めてアナウンスしたことになる。

次がUltraRAMの話。従来だとDistributed RAMとBlock RAMのみがSRAMベースで内蔵されており、これを超える容量は外部のDRAMを利用するという形だった(Photo06)。ただ、特にハイエンドFPGAにおいてはどんどんアプリケーションへの要件性能が上がっている。例えば100GbpsクラスのRouterなりSwitchなりを構成する場合、複数段のFPGAやASICをInterlakenで繋ぎながら、各段でPacket InspectionなりRoutingなりを行ってゆく形になるが、この際に複雑なInspectionとかだと、(なにしろLine Rateが大きいから)大容量のRAMを持たないと処理が間に合わない。なので処理そのものもPipeline化する必要があり、さらに並列にこれを処理する形になる。で、Pipeline段数や並列度が増えるほど、同時に処理しているパケット数が増えるわけで、これを格納するためのRAM容量も引き上げないと間に合わない。あるいは最近だと4Kに加えて8KのEncodeなども重要なアプリケーションになってきているが、こうしたもののEncodeではReference画像やら何やらで結構なメモリを食う(何しろフレームサイズそのものが大きいからだが)。これを外付けDRAMでまかなうと、性能と消費電力の両面でペナルティが大きい。

Photo06:逆に言えば、そんな大きなSRAMを内部で必要としないような作り方をしましょう、という話でもあった

そこで今回投入されたのが、Block RAMの10倍の規模を持つ「Ultra RAM」である(Photo07)。構造そのものはSRAMであり、また物理的にはFabricと同一ダイの内部に配される。これについては「Interposerを介して別のダイの形で持つとLatencyのペナルティが大きいから」(Erjavec氏)との事だった。

Photo07:容量そのものはSKUによって異なり、ローエンド向けはUltraRAMを持たないものも当然存在する。KintexとZynqはどちらも最大36Mbitで、Virtexのみ最大432Mbitの容量となる

またこれに組み合わされる形でやはり性能改善に繋がるのがSmartConnectである(Photo08)。もっともこのSmartConnectそのものは、直接的な技術というよりはConnectionを抽象化したものがこのSmartConnectとなる。同社の場合UltraScaleの世代でFast Trackという一種のGlobal Routingの技術を加えており、これとLocal Routingの両方を適時組み合わせると共に、その際のRouterの動き方を最適化してくれる、というものである。

Photo08:要するにどんな形でトラフィックが流れ、その際の要求転送速度やレイテンシはどの程度か、という要件に合わせて最適なルーティングを自動的に選んでくれるという仕組み

ちなみにこのSmartConnectは後述するZynqでのSystem Intercoonectも包括する。Virtex-5の世代はPowerPCということでPLBv46が、Zynqの世代ではAXIがそのままProgrammable Logicに繋がる形になっていたが、こうした部分も抽象化してくれるとの事である。