Skip to main content

RISC-VとFPGAがもたらす新しい設計ソリューション

ジム・ハリソン(マウザー・エレクトロニクス)

(Source: Shutterstock/usk75)

小型、低消費電力、高性能のSOC FPGAは、さまざまなアプリケーションに最適である。

RISC-V命令セットの登場により、プロセッサコアと標準/カスタム拡張機能を備えたFPGAを使用するシステム設計に確かな基盤がもたらされた。RISC-V命令セットは費用がかからず、オープンで凍結されているため、たとえRISC-Vが進化してもプロセッサの設計と拡張は十分に機能し続けるだろう。つまり、このRISC-Vプロセッサはノーリスクと言える。

 

RISC-Vのアプリケーション分野


RISC-Vベースのプロセッサは、画像処理・センサインターフェイス、防衛・航空宇宙、モノのインターネット(IoT)、自動車・鉄道、産業用制御機器に使用されている。RISC-V設計は、スマートエンベデッドビジョン、ハイブリッド車・電気自動車、無線通信インフラ、ロボティックスなど、さまざまなアプリケーションで必要とされる高データスループットを提供する。また、Linuxなどのリアルタイム・オペレーティングシステムを簡単に実行できるため、堅牢な制御システム設計が可能になる。

RISC-Vプロセッサベースの設計を実装するには、おそらくFPGAが最適だろう。エンジニアはFPGAファブリックを使用して実装されたソフトコアプロセッサを選ぶことも、製造中にシリコンの構造として物理的に実装されたハードコアCPUを選ぶこともできる。ソフトコアの方が高度な設計の再利用が可能で陳腐化のリスクは低いかもしれない。その一方で、性能面ではハードコアの方が優れている。

FPGAは、汎用CPUでは非常に複雑で時間がかかる処理を実装するのに適している。たとえばCPUはブロック暗号と暗号機能を実行するとき、非常に多くのサイクルを消費する。そのため、完全設計済みのIPコアとして専用のFPGAファブリックを使う場合に比べて、大幅に時間がかかる。

 

実装への道


Microchipは、RISC-V処理を2種類のPolarFireファミリー(さらに耐放射線タイプも1つある)で提供している。どちらもRISC-Vの実装に適したプロセッサのオプションを揃えている。デバイスはすべて不揮発性でインスタント起動である。4~24個の最適化された12.7Gbpsトランシーバを搭載し、その消費電力は競合製品の半分だという。さらにDDR4と1.6Gbps LVDSのインターフェイスも備えている。チップにはシステムコントローラ・サスペンドモードがあるため、セーフティクリティカルな設計や多くのセキュリティ機能にも対応できる。

PolarFire MPFxxxT FPGAには、ロジック素子(LE)数50k、100k、200k、300k、500kのバージョンがあり、Mi-V RISC-Vソフトコアプロセッサのオプションもある。必須CPUコアは最大で約10kのLEを使用する。チップの統合ハードIPには、デュアルPCIeエンドポイント/ルートポートが1つ、複数のPLLとDLL、および18 x 18 MACC pre-adderと暗号プロセッサが1つずつ含まれている。

たとえば、FIR(有限インパルス応答)フィルタ、CRC32(32ビット巡回冗長検査)、3DES(トリプルデータ暗号化標準)アルゴリズムなど、アプリケーション固有の拡張機能も100を超える。RISC-Vコアに拡張機能を追加すれば、消費電力を大幅に節約しながら、これらの機能の性能を大幅に向上させることができる。

図1:PolarFire SOC 16 x 16mmパッケージバージョン(出典:Microchip)

ハードコアPolarFire SOC(システム・オン・チップ)バージョン(図1には5つのCPUコア(プロセッサコアx4、モニタコアx1)があり、すべてRV64 64ビット実装である。LE数25k~460kの5つのバージョンがある(1参照)。システム・オン・チップ(SoC)FPGAとしては初めて、決定論的でデータの一貫性が保たれたRISC-V CPUクラスタ、および決定論的L2メモリサブシステムを備え、Linux上にリアルタイム・アプリケーションを実現する。

PolarFireは最先端の28nm不揮発性プロセスにより、他のFPGAファミリーの約半分の電力しか消費しない。PolarFire RISC-V CPUマイクロアーキテクチャの実装は、シンプルな5段パイプラインの単一命令イシュー、インオーダー実行となっており、標準的なアウト・オブ・オーダー実行マシンに見られるMeltdownやSpectreといった脆弱性がない。メモリサブシステムによって5つすべてのCPUコアでデータの一貫性が保たれるため、一つのマルチコアCPUクラスタ内で決定論的リアルタイムシステムとLinuxを多彩に組み合わせることができる(図2)。

表1:パワフルな5コアPolarFire SoC FPGAには、パッケージサイズ11mm~35mm角の5つのバージョンがある。(出典:Microchip)

特にIoTのアプリケーションに関して言えば、これらのプロセッサは、他のコア/ISAでは容易に得られない、ネットワークベースのセキュリティ攻撃への耐性を備えている。区画化と通信セキュリティだけに頼らない、RISC-Vはユニークである。バッファオーバーフロー攻撃を止め、ネットワークから侵入してコードの脆弱性を突く攻撃からプロセッサを守るために、コンピューティング・セキュリティが組み込まれている。

PolarFireは、競合するFPGAに比べ(多くの場合)50%消費電力が少ないため、冷却が難しいスモールフォームファクタの環境でも使用でき、システムからファンを取り外すことも可能だ。

図2:PolarFire SOCシステムアーキテクチャ (出典:Microchip)

 

リアルタイムLinux


リアルタイムシステムの定義は、最も単純な構造の場合、決定論的かつ周期的に実行されることである。リアルタイムLinux OSは、分岐予測を使用せずに物理メモリを仮想化するために、メモリ管理ユニット(MMU)を必要とする。PolarFire SOCはこのどちらの要件にも対応できる。

このチップの4つのRV64GCコアはLinuxを実行することができる(RV64IMACモニタコアは不可)。L2メモリサブシステムの容量は2MBで、エラー訂正機能を備え、16-wayセットアソシアティブ方式、LIM(Loosely Integrated Memory)、およびスクラッチパッドメモリの3つのモードに構成することができる。また、LIMメモリを128KBチャンクで構成し、プロセッサに専用アクセスを割り当てることができる。

 

開発ツール


Libero® SoC設計スイートv12は、簡単に習得でき、適応しやすいPolarFire設計用の開発ツールだ。業界標準のSynopsysのSynplify Pro®合成、および Siemens のModelSim®シミュレーションに加え、クラス最高の制約管理、プログラミング、デバッグツール機能、セキュアな生産プログラミングサポートを完備している。システムのMSS Configuratorは、PolarFire SoC CPUサブシステムを構成するためのツールで、 MSSクロック、ファブリックインターフェイス、I/Oバンク、DDRメモリ、デバッグ機能の設定に使用できる。

HDLシミュレータは、ハードウェアアーキテクチャの構築に欠かせない。これにサンプル入力データを入れると、アーキテクチャの動作をシミュレーションできる。

一定の条件を満たす顧客は、MicrochipのLibero SoC 12.3 FPGA設計スイートとSoftConsole 6.2統合開発環境を使って、ハードウェアなしで設計を始められる。マイクロプロセッサ・サブシステムのバーチャルモデル「Renode」を使えば、組み込みアプリケーションのデバッグも可能だ。

PolarFire SoC Icicle開発キット(図3は、5コアRISC-Vマイクロプロセッサデバイスの評価、革新的なLinux、リアルタイム実行、サブシステムの省電力性を実現する、低コストな設計プラットフォームである。キットには適正メモリ(LPDDR4、SPI、eMMCフラッシュ)が搭載されており、多種多様な電力領域を監視する電力センサ、PCIeルートポート、Raspberry Pi 4、SDカード、mikroBUS拡張ポートといったLinuxベースの既製品を、USB、UART、CAN、I2C有線接続オプション、およびギガビット・イーサネットで実行することができる。

図3:Icicle設計キットによって、迅速なPolarFire SOC設計を実現できる。(出典:Microchip)

IcicleキットPolarFire SoCデバイスは、オンボードFlashPro6プログラマまたは外部FlashPro 4、5、6プログラマでプログラミングされる。18.3cm x 12.6cmのキットには、12V/5A壁掛け電源アダプタ、イーサネットケーブル、UARTインターフェイスをPCに接続するUSB 2.0マイクロコネクタ、およびQuickstartカードが含まれている。

 

まとめ


設計者はRISC CPUを使用することでリスクを抑えられるようになった。賢明な設計チームなら、RISC-V ISAを使用して、デバイスと製品の世代を超えたMCUフレームワークを構築できるだろう。また、要求の厳しいアプリケーションでは、FPGAファブリックとベクター拡張を備えたコアを使用したハード実装が利用しやすくなった。

これからは、まず命令セットを選択し、次にコアのベンダを選び、最後に必要に応じて拡張を追加する、という手順になるだろう。ただし、RISC-VはコアでもCPUでもなく、 命令セットの仕様である。コアは、複数のオープンソースのベンダ(少なくとも12社)のFPGAやコア設計に含まれているのでそれで入手できる。あるいは商用コアのプロバイダからコア/プロセッサを購入してもよいだろう。