ARM Cotex-A53+NEONを4コア搭載

Stratix 10はアプリケーションプロセサとして1.5GHzで動作するARM Cortex-A53+NEONを4コア搭載している。そして、プロセサのキャッシュとFPGAのアクセラレータの間のキャッシュコヒーレンシを維持するCCUを備えている。

Stratix 10はアプリケーションプロセサとして、ARM Cortex-A53+NEONを4コア搭載し、プロセサのキャッシュとFPGAアクセラレータとのキャッシュコヒーレンシを維持するCCUを備えている

フレキシブルなクロック配線

従来のFPGAでは、クロックは固定パターンで全域に配線されていたが、Stratix 10のクロック分配系は次の図の右上の図のように、セクタの継ぎ目の角になる部分にスイッチが設けられた構造になっている。これを使って、右下の図のようにクロック分配系の配線を変えることができる。

Stratix 10のクロックはセクタの継ぎ目の角にあるスイッチを使って配線を変えることができる

FPGA部の構成

FPGA部は6入力LUT、2つの5入力LUTあるいは4つの4入力LUTとして使えるロジックモジュール、20KbitのRAM、DSP MACなどのブロックが使える。図の下側の配線については説明がなく、良く分からない。

6入力LUTのロジックモジュール、20Kbit RAM、DSPなどのモジュールが使える

新技術のHyperFlexとIntelの14nmプロセス

FPGAのロジックブロックの間を配線するファブリックについては根本から考え直し、レジスタを単なる情報を記憶するロジックの資源として使うだけでなく、配線資源としても使うというHyperFlexというやり方を考えた。これにより、配線を2倍速くすることなく、性能を2倍に引き上げることを目指している。

また、Intelの14nmプロセスの採用電源電圧の調整などで、50%から70%の電力低減を目指すという。

レジスタを配線資源としても活用するHyperFlexの考え方で、性能2倍を目指す。そして、Intelの14nmプロセスで電源電圧の調整を行い電力を50%~70%低減する

次の図は従来の設計を示す図で、一番上の元の設計では1段目は1.5nsで動くが2段目は3.5ns必要なので、全体としては286MHzクロックでしか動かない。これを2つ目の図のように、2段目のALMのレジスタを除き、その後に論理機能の無いレジスタだけのモジュールを追加してやると、1段目は3ns、2段目は2.5nsの遅延となり、バランスが改善されて333MHzクロックで動くようになる。しかし、ALMが1個余計に必要になり面積が増えてしまう。

さらに、一番下の図のように2段目のレジスタを残して3段のパイプラインとすると、遅延は1.5ns、1.5ns、2.5nsとなり、400MHzで動作するようになるが、処理に1クロック余計に必要となり、 ALMが1個追加になる。

元のアンバランスな遅延の場合、クロックは286MHz。これを2番目のようにALMを追加してレジスタの位置を動かすと333MHzまで上がり、3番目のようにパイプラインを1段増やすと400MHzまで改善される。しかし、ALMの追加や処理に1クロック余計にかかるという損失がある

Stratix 10ではHyperFlexを適用するために、上側に書いたLUTだけでできているブロックをレジスタとマルチプレクサを追加したブロックに変更している。実際はすべてのブロックの水平、垂直のすべてのワイヤのルーティング用のマルチプレクサをバイパス可能なレジスタ付きの設計にしている。

このようにルーティングマルチプレクサを作っておくと、レジスタのあるところまで配線する必要は無く、どこにでもレジスタを追加できるし、レジスタを使うためだけにALMを使ってしまうという無駄が無い。

HyperFlexでは、水平、垂直のすべてのルーティングマルチプレクサを、選択的にレジスタを追加できるように作って置く

このため、次の図の左側の図のようにLAB(4,6)の内部と出力H3にレジスタがある設計から、LAB(4,6)内部のレジスタをバイパスし、VDIMと書かれたマルチプレクサの出力にレジスタを付けるという変更が、追加の資源を使うことなく実現できる。

そして、設計CADであるQuartus IIがパイプライン各段の遅延のバランスが適切になる位置にレジスタを挿入してくれる。

すべてのルーティングマルチプレクサにレジスタが付けられるので、パイプラインの区切りの位置を自由に変えられる。そして、最適なレジスタ挿入位置をQuartus IIソフトが見つけてくれる

前のパイプラインの例で言うと、パイプラインを等分に分割する位置にレジスタを挿入することにより、元の設計と同じ2段パイプラインの場合で400MHzクロックまで動作するようになり、3段のパイプラインとした場合は572MHzまでクロックを引き下げることができる。

Stratix 10は消費電力を半減

Stratix 10は、前世代のStratix Vに比べて消費電力が半減している。この主因は、Intelの14nmプロセスを採用したことである。また、電源電圧を細かく調整して消費電力の少ない動作点を選んだことやメモリやDSPブロックのパワーゲートを追加したことも効いている。

また、すべてのルーティングマルチプレクサにレジスタを付けたことは、大量のレジスタを使うレジスタヘビーな設計では面積の削減に貢献している。さらに回路の速度が2倍になったことで、同じ性能ならバス幅は半分で済むようになり、リーク電力などのスタティックな電力消費を半減させることができる。

Stratix 10では、消費電力半減のかなりの部分はIntelの14nmプロセスの採用で実現されている。また、電源電圧の細かい調整やパワーゲートの採用も貢献している。さらに、速度の倍増で、同じ性能を実現するのに必要なハードウェアが半減し、リーク電流が減ったこともスタティック電力の低減につながっている

次の図はStratix 10の消費電力を示すもので、左端が基準となる現行世代のStratix V、次が単純にStratix 10に移行した設計、その次が回路量を半減して2倍のクロックで動かす設計、右端は2倍のクロックで動かして2倍の性能を実現する場合の電力を示している。なお、右側の2つの設計ではHyperFlexを使った最適化を行っている。

この図に見られるように、単純にStratix 10を使うことにより約45%に消費電力が減り、2倍の速度を利用して回路量を半減すると消費電力はさらに10%余り減少する。一方、2倍のクロックで動作させて2倍のスループットとした場合でもStratix Vの約80%の電力に収まっている。

Stratix 10では、このように性能と電力のトレードオフを行うことができるので、用途によって適当な動作点を選べば良い。

Stratix Vの設計をStratix 10で実装すると、消費電力は半分以下になる。回路が高速であることを利用して回路の幅を半減して2倍のクロックで動かす設計とすると、さらに10%あまり電力を減らせる。一方、ハードウェアを減らさず、2倍のスループットとした場合は、元の80%の電力となる

まとめ

まとめとして同氏は、EMIBを使う3D実装はFPGA部と高速トランシーバ部のチップを別個に開発でき、開発リスクを低減したり、片方ずつ交互に進化させていくという作戦がとれる。また、派生品が作りやすいというメリットがある。 プロセサの集積がチップ面積に与える影響は大きくない。一方、コヒーレントなアクセラレータが作れるメリットは大きく、プロセサの集積は主流となっていく。HyperFlexで、FPGAの配線を有効に使い、パイプラインの最適化が、力任せではなく、CADソフトウェアでできるようになった。そして、プロセスの進歩は、まだ、電力削減効果をもたらしてくれる。と結んだ。

(次回は9月17日に掲載します)