ところで話はちょっと飛ぶが、予想外にStrarix 10の実装に時間が掛かった理由がなんとなく判る、という話があった。Artisanで提供されるスタンダードセルライブラリとIntelのそれを比較した場合「ARMのものは電力効率にフォーカスしたものになる。特にSoCを構築する場合、プロセッサコア内のクリティカルパスを最小にするような構成を目指している。また、シングルチャネルとマルチチャネルで同じフットプリントを実現している。こうした構成で消費電力を最小に抑えようとしている。ただIntelは密度を最大にする方向の実装になっている」という返事があった。実際のところ、Artisanを使った場合、Cellそのものの大きさはIntelのフィジカルIPを使った場合に比べると若干大きくなる。これはトランジスタコストという観点からすると若干不利ではあるが、それを埋めて余る省電力のメリットが得られる。一方Intelはセルサイズが小さくなる分、同じエリアサイズに多数の回路を押し込められる代わりに、消費電力の観点では不利になる。

さてここからは筆者の考察である。Intelのスタンダードセルは、密度を上げるために構造がほかのファウンドリの提供するスタンダードセルとかなり構造が違っている。実はこれがStratix 10のインプリメントに難渋した最大の理由ではないかと思う。FPGAはものすごくラフに言ってしまえばSRAMの塊であって、理論上はロジックプロセスの中では一番作りやすいはずなのだが、実際に実装しようとすると考えなければいけない1つのポイントがFPGAセル(Xilinxで言うLC:Logic Cell、Alteraで言うLE:Logic Element)間の配線をどれだけ内部に用意できるかであり、このあたりの自由度がIntelのスタンダードセルベースでは相当低かったように思える。特に大容量のStratixグレードではかなりの量のFPGAセル間配線を用意する必要があり、これのインプリメントに相当難儀したのではないかという節がある。

逆に言えばこれをStrarix 10でインプリメントに成功したからこそ、ArriaグレードについてもIntelの10nmプロセスを利用する事に方針変更したと思われる。Alteraはこれまで、製品ごとに異なるファウンドリの異なるプロセスを採用してそれぞれ最適化を図ってきたが、これは根底には「そうは言ってもスタンダードセルの構造そのものはどのファウンドリ/プロセスでも大きく違うということはない」という暗黙の約束の上で成立してきた話である。もちろんプレナー→FinFETで大きくスタンダードセルの構造は変化したが、逆にFinFETプロセス(今で言えばTSMC/Samsung/GLOBALFOUNDRIES)同士で大きくスタンダードセルが違うということは無かった。ところがIntelのものはこれが大きく違う。なので、おそらく物理設計の方法論だけでなく、論理設計レベルでも何がしかの手が入った結果、例えば次世代のArriaを例えばTSMCの10nmを使おうとすると、またスタンダードセルの構造が違うので全部やり直しになってしまう。それを避けるためにはStratixのサブセット的な作りにするほうが楽だし性能も出しやすい。結果、Xilinxと同じく世代ごとに同じプロセスを使い、あとはFPGAセルの数や高速I/O、メモリなどで差別化するという方向に変わってゆくものと思われる。