KUMICO

COLUMN

SoC FPGAの時代

FPGAは一人では何もできなかった

FPGA(field-programmable gate array)は回路の再構成が可能な論理回路として誕生したLSI(大規模集積回路)です。CPUとの違いを特徴として挙げると、1 数ナノ秒単位の処理をプログラム可能な圧倒的なレイテンシの小ささ(低遅延)、2 回路の並列化による高速化が可能、3同じ処理を実行するCPUやGPUに比べて使用する回路領域が効率的で少なく済む、という消費電力の低さとエネルギー効率の高さ、などがあります。

とはいえ、並列演算性能ではGPUが未だ上回っており、ディープラーニングなどの高性能なコンピューティングが登場するシーンではGPUに依存しているというのが現状です。
一方で、FPGAには「CPUのプログラミングと比べて開発が非常に難しい」というデメリットもありました。FPGAはこれまで、VHDLやVerilogなどのハードウェア記述言語(HDL)で書かれていたため、C言語やPythonなどによるソフトウェアプログラミングに対してリソースコストがかかりすぎていたのです。また、コンパイルやビルドに時間がかかるというデメリットもあります。大規模なFPGAだと6時間以上、さらにFPGA用OpneCLなどの高位合成言語を用いるとさらにビルド時間を費やします。

FPGAはチップ全てがカスタム回路化できるものです。チップのI/Oは内部の論理回路の入出力がそのまま繋がっていて、回路の動作周波数以上の処理はできないため、当時主流になりつつあった高速シリアル通信などは専用のインターフェースチップを介する必要がありました。また、決まったフローを高速に処理する通信用モジュールなどはFPGA単独で機能しますが、多くの組み込み機器では一部にソフトウェア制御が必要で、その場合はCPUチップとFPGAをバスでつないだ基板を設計するのが一般的でした。低速だけど複雑な処理はCPU、定形だけど高速な処理はFPGAという役割分担です。

その後、トランシーバーや通信I/Fの物理層を内蔵したFPGAが登場し、EthernetやUSBなど高速な外部I/OをFPGAが直接制御することが可能になりました。しかし、基板または機器全体の振る舞いを制御するのはCPUとソフトウェアであり、FPGAはコンパニオンチップでした。

FPGAでソフトウェアを動かす

FPGAはフルプログラマブルなので、ソフトウェアと同じ処理をするステートマシンを設計することは可能です。しかしシンプルに組むと非ノイマン型処理系となり、処理やパラメータを少しでも変更すると再設計や再合成が必要になり実用的ではありません。

また、FPGAにCPUの回路を組み込み、名実ともに1チップ(ボード)化することもできます。FPGAベンダー各社は、FPGAデバイスとツールのアーキテクチャに最適化したマクロCPUコアを用意していました。半導体メーカーのALTERA(アルテラ)社(現Intel®社)はNios®, Nios® II、Xilinx(ザイリンクス)社はMicroBlaze™, PicoBlaze™、Lattice Semiconductor(ラティスセミコンダクター)社はMico32, Mico8などです。これら半導体メーカーが世に送り出したマクロCPUコアの中でも、Nios® IIとMicroBlaze™は32bit CPUで、独自の命令セットを持ち、パイプライン、FPU、MMUが搭載され、ITRON系やLinuxなどのOSも動作するものになりました。組み込みも簡単で、汎用性も高く、開発ツールもFPGAの回路と統合開発できるようになっており、非常に使い勝手がよいものでした。
しかしながら、FPGAの動作周波数は一般的な組み込みCPUチップの数分の一で、その上で動くソフトウェアもかなり遅いものでした。その遅さをカバーするために、ソフトウェアのアクセラレーターをFPGA側に組み込むなどの工夫を行ったりもしていました。CPUコアの使用頻度が増えるにつれ、CPUのハードマクロ化(FPGAデバイスにあらかじめ変更不可能な専用回路として組み込まれているもの)が求められていました。

FPGAとSoCの融合

その後、MIPSなどのCPUをハードマクロとして組み込んだFPGAも登場しました。しかし、組み込みCPUもSoCとして周辺チップを取り込んで1チップ化する時代になっており、その流れで、FPGAをプログラマブルモジュールとしてSoCの一機能とした、SoC FPGAが登場することになります。
Xilinx社は2012年にArtix®-7やKintex®-7とArm Cortex-A9 MPCoreを組み合わせたZynq®-7000を発売、ALTERA社(現Intel®社)も2013年にCyclone® VとARM Cortex-A9 MPCoreを組み合わせたCycloner® V SoCを発売しました。Actel社(現Microsemi社)からも2010年にArm Cortex-M3を内蔵したSmartFusionを発売しています。

ALTERA社(現Intel®社)とXilinx社のSoC FPGAの共通の特徴は、SoC側に強力なArmマルチコアプロセッサと、Armから制御可能な豊富なペリフェラルを搭載し、FPGAをインテグレーションしなくても高機能なSoCとして動作することです。これはFPGAありきの設計ではなく、SoCの固定機能を中心に設計し、FPGAは本来のプログラマブルな用途に使用(場合によってはプロセッサのアクセラレーションのみを目的とした回路でも)可能になるということでもあります。基板レベルの変更を行うことなく、ハードウェア(FPGA)処理とソフトウェア(Arm)処理のトレードオフを最適化できます。また、同一プラットフォームでも複数の製品を実現可能ですし、ソフトだけでなくFPGAごとアップグレードすることで、出荷後でも大幅な機能変更も可能になります。

もう一つの利点は、プロセッサーとFPGAの間が広帯域バス含めた複数の内部バスで接続されていることです。従来の外部チップ間の接続よりはるかに高速にデータ転送が可能になり、システムパフォーマンスが向上し、1チップ構成になるのでコストは下がります。
さらに、内部バスのため送受信データはすべてチップ内で完結し、コンピュータの高い保護機能が実現されます。

SoC FPGAの発展

その後、SoC FPGAは他のグレードにも適用され、Intel®社からはArria V SoC, Arria® 10 SoC, Stratix® 10 SoCなど高性能なSoC FPGAも登場しました。Stratix® 10 SoCはArm Cortex-A53という64bitマルチコアCPUを搭載しています。Xilinx社はさらに積極的にラインナップを展開し、Zynq ® UltraScale+™ MPSoC CG/EG/EVという、ArmマルチコアCPUを複数種類搭載した上、さらにGPUや動画コーデックを組み込んだデバイスや、Zynq ® UltraScale+™ RFSoCというサブ 6GHz帯に対応したRFデータコンバーターに対応したデバイスも登場しています。さらに、次世代プログラマブルロジック、アプリケーションプロセッサ、リアルタイムプロセッサ、HBM、RF・A-D/D-Aコンバーターを組み合わせ、AI(人工知能)の推論処理用途をターゲットにした新しいSoC FPGA製品「ACAP」も発表しています。

組み込みエンジニアからの視点でいうと、FPGAデバイスがARMエコシステムに取り込まれたことが非常に大きいことだと思います。ソフトウェア開発からするとSoC FPGAはLinuxプラットフォームの一つであり、FPGAを搭載しているからと言って古いカーネルしか動かないのは許容できません。FPGAの制御はオープンソース(無償)化されており、Linuxカーネルにも標準でマージされています。
FPGAはエッジ領域におけるAIアクセラレーターの本命とも言われ、ますます組み込み機器の中心になることが予想されており、SoC FPGAのチップとしてはもちろん、開発環境やアプリケーションも、今後も大きな進化を遂げるでしょう。

個別相談も承っております。下記よりお申し込みください。

個別相談会申し込み

関連記事

OTHER COLUMN

MORE  

まこちゃんブログ

NEWS

MORE  

PARTNER

  • Intel
  • Xilinx

お探しの組み込み製品はキーワードで検索!