AMD のエンベデッド ソフトウェア エコシステム
AMD のエンベデッド ソフトウェア エコシステムは、エンベデッド システムの開発をサポートし、構想段階から完成までのプロセスを効率化します。ツールやランタイムなど、包括的な環境を提供するソフトウェア エコシステムは、エンベデッド製品ポートフォリオに含まれる AMD Zynq™ 7000 SoC、Zynq UltraScale+™ MPSoC、Versal™ アダプティブ SoC、および MicroBlaze™ プロセッサ コアなどのデバイス機能を効果的に活用するように構築されています。AMD の製品は、革新的なセキュリテ機能や仮想化ソフトウェア ドライバーなど高度な技術を採用し、Zynq および Versal デバイスにこれらの技術が組み込まれています。このような相互作用によって、次世代エンベデッド アプリケーションの要求に応える革新的なシステムを構築する可能性が広がります。
AMD Linux は、AMD 製品で最も一般的に使用されているオペレーティング システムです。AMD は Linux 開発を簡素化するために PetaLinux ツールを提供し、Git リポジトリではソースコードや Yocto レシピ ファイルも提供しています。これにより、AMD シリコンの Linux サポートを、自社のビルド システムやサードパーティのツールを利用して提供できるようになっています。AMD Linux プロジェクトは、Versal™ アダプティブ SoC、 Zynq™ UltraScale™ MPSoC、 Zynq 7000 SoC、および MicroBlaze™ プロセッサを使用する開発向けにカスタマイズした非商用の Linux 開発プロジェクトです。
AMD リリースの Linux カーネル サポートは次のとおりです。
AMD は、エンベデッド Linux ソリューションの構築および運用をサポートする 2 種類のツールを提供しています。1 つは AMD の PetaLinux で、もう 1 つはオープンソース プロジェクトの Yocto です。PetaLinux は、エンベデッド Linux を迅速に構築するための GUI を提供し、Yocto は経験豊富なユーザーがそれぞれのボードに最適なカスタム Linux を構築するために使用できます。
AMD 製品は、広範なオープンソース リソースでサポートされているため、AMD SoC やエミュレーション プラットフォーム向けの Linux ベース アプリケーションを開発、ブート、実行、デバッグ、さらには維持することが可能です。AMD はサンプル アプリケーション、カーネル コンフィギュレーション、Yocto レシピ、マルチプロセッシング/リアルタイム ソリューション、デバイス ドライバーなどを提供しています。Linux オープンソース開発者は、使い慣れたソースやツールを見つけることはもちろん、サポート フォーラムで同じ関心を持つ開発者と交流して意見を交換できます。
新しい Vitis™ 統合ソフトウェア プラットフォーム、SDK、エコシステム パートナーのツールなど、Zynq および Versal プラットフォームで SoC 同様の C/C++ プログラミングをサポートする複数の開発環境が用意されています。
AMD ソフトウェア開発環境 |
---|
|
AMD エコシステムのソフトウェア開発環境およびツール |
RTOS、ハイパーバイザー、ベアメタル
リアルタイム オペレーティング システム (RTOS) とは、通常バッファーの遅延がなく、リアルタイムにデータを処理するリアルタイム アプリケーション向けのオペレーティング システム (OS) です。(wikipedia.org より抜粋)
RTOS で最も重要な要素はシンプルさと軽量を維持することです。ほかには、最小限の割り込みレイテンシとスレッド切り替えレイテンシが重要です。RTOS では、どれだけ膨大なデータを処理できるかではなく、迅速かつ確定的に応答できることが重要とされています。
FreeRTOS は、AWS の 35 以上のアーキテクチャをサポートする市場を牽引する RTOS であり、2017 年には 3 分に 1 回ダウンロードされていました。FreeRTOS カーネルは、専門的な開発、厳密な品質管理、堅牢性、充実したサポートを特徴とし、専有のソース コードの公開要件なしで商用アプリケーションで自由に使用できます。(参照: https://www.freertos.org/RTOS.html)
FreeRTOS の詳細は、https://www.freertos.org/RTOS.html をご覧ください。
reeRTOS カーネル ポートは、次の AMD アダプティブ SoC、FPGA、および SOM で使用できます。
プロセッサ | デバイス |
---|---|
64 ビット Arm® Cortex®-A72 アプリケーション プロセッサ (APU) および 32 ビット Cortex-R5 リアルタイム プロセッサ (RPU) | Versal™ アダプティブ SoC デバイス |
64 ビット Arm Cortex-A53 アプリケーション プロセッサ (APU) および 32 ビット Cortex-R5 リアルタイム プロセッサ (RPU) | Zynq™ UltraScale+™ MPSoC デバイス & Kria™ SOM |
デュアル コア Arm Cortex-A9 ベースのアプリケーション プロセッサ ユニット (APU) | Zynq 7000 SoC デバイス |
32 ビット MicroBlaze プロセッサ | すべての AMD デバイス ファミリ |
AMD 製品の FreeRTOS の詳細およびサポート リソースについては、AMD FreeRTOS をご覧ください。
プロバイダー | 製品 | Zynq 7000 SoC | Zynq UltraScale+ MPSoC | Versal アダプティブ SoC | MicroBlaze | |||||
---|---|---|---|---|---|---|---|---|---|---|
Cortex-A9 | Cortex-A53 | Cortex-R5 | VCU | Mali-400 | Cortex-A72 | Cortex-R5F | AIE | |||
AMD | ベアメタル | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
AMD | FreeRTOS | ○ | ○ | ○ | X | X | ○ | ○ | ○ | ○ |
BlackBerry | QNX Neutrino | ○ | ○ | X | ○ | ○ | ○ | X | X | X |
QNX OS for Safety | ○ | ○ | X | ○ | ○ | ○ | X | X | X | |
Wind River | VxWorks | ○ | ○ | ○ | X | ○ | ○ | ○ | X | X |
Green Hills | INTEGRITY-178 | X | ○ | X | X | X | ○ | X | X | X |
INTEGRITY | ○ | ○ | X | X | X | ○ | X | X | X | |
u-velOsity | X | X | ○ | X | X | X | ○ | X | X | |
Siemens | Nucleus | ○ | ○ | ○ | X | X | X | ○ | X | X |
PX5 | PX5 RTOS | X | ○ | ○ | X | X | X | X | X | ○ |
Microsoft | Azure RTOS | ○ | ○ | ○ | X | X | X | X | X | ○ |
ETAS | ETAS RTA-OS | ○ | ○ | ○ | X | X | X | X | X | X |
Sysgo | PikeOS | ○ | ○ | X | X | X | X | X | X | X |
PikeOS for MPU | X | X | ○ | X | X | X | X | X | X | |
Lynx | LynxOS-178 | X | ○ | X | X | X | X | X | X | X |
Weston Embedded | Cesium Cs/OS2, OS3 | ○ | ○ | ○ | X | X | X | X | X | X |
DDC-I | Deos | ○ | ○ | X |
X | X | X | X | X | X |
RTEMS | RTEMS | ○ | ○ | ○ | X | X | ○ | ○ | X | ○ |
eForce | uC3 | ○ | ○ | X |
X | X | X | X | X | X |
ENEA | OSE | ○ | ○ | X |
X | X | X | X | X | X |
eSOL | eT-kernel | ○ | ○ | X | X | X | X | X | X | X |
Silicon Labs | Micrium uc/OS-II / OS-III5 | ○ | ○ | ○ | X | X | X | X | X | X |
Sciopta | Sciopta RTOS | ○ | ○ | ○ | X | X | X | X | X | X |
Wittenstein | SafeRTOS | ○ | X | X | X | X | X | X | X | X |
Segger | emBOS | 〇1 | X | X | X | X | X | X | X | X |
注記: ほとんどの RTOS は一定レベルの安全基準に対する認証を取得しています。安全性に関する特定の要件がある場合は、OS ベンダーにお問い合わせください。
1 - SMP サポートなし
2 - Micrium はサポートのみ対応。現在は、Weston Embedded 社が「Cesium」というブランド名で OS を提供。
3 - アーキテクチャ サポート パッケージ
4 - 開発中
5 - レガシのみ。サポートについては、Weston Embedded 社にお問い合わせください。
詳細およびサポート リソースについては、AMD Wiki のエンベデッド ソフトウェア エコシステムをご覧ください。
AMD は、高度なマルチ OS システム デザインを完成させるために必要な技術、資料、およびサポートを提供しています。AMD エコシステムが提供する製品は次のとおりです。
ベンダー | 製品 | Versal アダプティブ SoC | Zynq UltraScale+ MPSoC | Zynq 7000 SoC |
---|---|---|---|---|
AMD | Xen Hypervisor | ○ | ○ | X |
BlackBerry | QNX Hypervisor | ○ | ○ | X |
Wind River | Helix Virtualization Platform | ○ | ○ | X |
Sysgo | PikeOS Hypervisor | X | ○ | ○ |
Green Hills | Integrity Multivisor | ○ | ○ | X |
Lynx | LynxSecure Separation Kernel Hypervisor | ○ | ○ | X |
Dornerworks | SEL4 | ○ | ○ | X |
Siemens | Nucleus Hypervisor | X | ○ | ○ |
General Dynamics Mission Systems | OKL4 Microvisor | X | ○ | X |
注記: 1 - サービス契約が必要
詳細およびサポート リソースについては、AMD Wiki のエンベデッド ソフトウェア エコシステムをご覧ください。
AMD は、その他のライブラリおよびベアメタル ドライバーも提供しています。このライブラリは、AMD のデバイス専用に開発されています。
ライブラリ |
---|
|
ベアメタル ドライバーおよびライブラリの詳細およびサポート リソースについては、AMD Wiki の ベアメタル およびライブラリをご覧ください。
オープンソースの Linux は、エンベデッド ハードウェアで最も一般的に使用されるオペレーティング システムであり、AMD は 2001 年の AMD Virtex™-II Pro FPGA リリース以来、自社の FPGA およびアダプティブ SoC デバイス向けに Linux サポートを提供しています。また、AMD は、PetaLinux や Yocto などのビルド環境に加えて、 Canonical 社認定の Ubuntu など AMD デバイスをターゲットにしたサードパーティ ベンダーによる商用サポートも提供しています。
Yocto プロジェクト で以下のように記載されています。「Yocto プロジェクトとは、ハードウェア アーキテクチャに関係なく、エンベデッド製品用の Linux ベースのカスタム システムを作成できるようサポートするオープンソースの共同プロジェクトです。このプロジェクトは、世界中の開発者がエンベデッド デバイス向けのカスタム Linux イメージを作成する際に利用できる技術、ソフトウェア スタック、コンフィギュレーション、またベスト プラクティスを共有するための手段を提供しています。」
PetaLinux ツールは、AMD のプロセッシング システム上でエンベデッド Linux ソリューションをカスタマイズ、ビルド、および評価するために必要なものをすべて提供します。設計生産性の加速を目的とするこのソリューションは、AMD のハードウェア デザイン ツールと連動し、Versal™ アダプティブ SoC、Zynq™ UltraScale+™ MPSoC、Zynq 7000 SoC、および MicroBlaze™ プロセッサ向けの Linux システム開発をサポートします。
プロバイダー | 製品 | ディストリビューション | Versal アダプティブ SoC | Zynq UltraScale+ MPSoC | Zynq 7000 SoC | MicroBlaze |
---|---|---|---|---|---|---|
AMD | PetaLinux | Yocto | ○ | ○ | ○ | ○ |
Yocto | Yocto | ○ | ○ | ○ | ○ | |
Canonical | Ubuntu | Debian | 〇 | ○ | X | X |
Wind River | Wind River Linux | Yocto | ○ | ○ | ○ | X |
Foundies.io | FoundriesFactory | Yocto | ○ | ○ | X | X |
Siemens | Sokol Flex OS | Yocto | X | ○ | ○ | X |
Sokol Omni OS | Debian | X | ○ | X | X | |
TimeSys | Linux Services | Yocto | ○ | ○ | ○ | X |
MontaVista | CGX/CGE | Yocto | X | ○ | ○ | X |
ArchLinuxARM | ArchLinuxARM | 該当なし | X | X | ○ | X |
情報: 1 - VCK190 向けベアメタル
詳細およびサポート リソースについては、AMD Wiki のエンベデッド ソフトウェア エコシステムをご覧ください。
QEMU (Quick EMUlator) はオープンソースで、クロスプラットフォームのシステム エミュレーターです。主に x86 アーキテクチャの Linux オペレーティング システム上で実行され、AMD ZCU102 や VCK190 ボードなどフルシステム (一般的にゲストと呼ばれるもの) をエミュレートできます。
エミュレーションの対象となるのは、プロセッサ、ペリフェラル、開発ボード上のその他のハードウェアが含まれ、仮想化されたハードウェア上で実際のオペレーティング システムやアプリケーションを起動できます。
また、QEMU は CAN、Ethernet、USB などのインターフェイスを介してホスト マシンと通信できるため、ゲスト マシンはホストから実世界のデータをリアルタイムで受け取り、利用することが可能になります。
Xen は、Xen プロジェクトによって開発および管理され、オープンソース コミュニティに提供されているタイプ 1 ハイパーバイザです。Xen を使用することで、AMD Zynq™ UltraScale+™ MPSoC 上で複数のオペレーティング システムのインスタンスやベアメタル アプリケーションを実行できるようになります。Xen ハイパーバイザの詳細は、Xen プロジェクト開始ページをご覧ください。
U-Boot は、Linux コミュニティで最も使用されているオープンソースの汎用ブートローダーです。AMD ボード上で実行できる U-Boot を提供しており、これらは Git ツリー (https://github.com/Xilinx/u-boot-xlnx) から入手できます。
Arm® Trusted Firmware は ARMv8-A アーキテクチャ向けのセキュア ソフトウェア リファレンスを提供します。また、PSCI (Power State Coordination Interface) などのさまざまなインターフェイス規格やセキュア モニター コードを実装できるため、非セキュアなソフトウェアとの連携を実現できます。AMD の Arm Trusted Firmware ポートは、https://github.com/Xilinx/arm-trusted-firmware で入手可能です。
AMD は、Zynq™ UltraScale+™ MPSoC アプリケーション向けに広範なトレーニングおよびサポート オプションを提供しています。設計手法、ビデオ チュートリアル、開発者向けフォーラム、Wiki、オンライン サポート、デザイン サービス、FAQ、およびブログなどを通して、迅速なアプリケーションの市場参入をサポートしています。