ARM® Cortex®-AコアまたはCortex-MコアでZephyrリアルタイム・オペレーティング・システム (RTOS) を実行することは、広範なドキュメントやサンプルによってサポートされた定評ある手法です。ただし、NXPのi.MXおよびi.MX RTファミリに属するいくつかのプロセッサには、高性能なオーディオ、音声、ニューラル・ネットワーク・プロセッシング向けに設計された追加の演算エンジンとして、1つ以上のCadence Tensilicaデジタル・シグナル・プロセッサ (DSP) コアが搭載されています。
このブログ記事では、NXPの製品ラインナップで最も幅広く使用されているCadence Xtensa HiFi4 DSPの活用に焦点を当てます。ただし、ここで説明する概念および方法は、最高の電力効率とパフォーマンスを両立させるためにNXPが厳選した、その他のCadence DSPにも該当します。
HiFi4 DSPは、メインのARMコアから演算負荷の高いワークロードをオフロードし、システム全体のパフォーマンスと電力効率を向上させます。Zephyr RTOSのサポートを備えたHiFi4 DSPは、NXPの異種混在アプリケーションをターゲットとする組込み開発者にとって、使いやすく、オープンで柔軟性に優れたプラットフォームとなります。
NXPのアーキテクチャにおけるHiFi4 DSPの役割
NXPのi.MX 8M Plusは、異種混在アーキテクチャの代表的な例であり、以下のものが統合されています。
- 4個のARM Cortex-A53アプリケーション・コア(最大1.8 GHz)
- 1個のARM Cortex-M7リアルタイム・コア(最大800 MHz)
- 1個のCadence HiFi4 DSP(最大800 MHz)
同様に、i.MX RTクロスオーバー・マイクロコントローラ・ユニット (MCU) ファミリのいくつかのデバイスもHiFi4 DSPコアを搭載しており、マイクロコントローラのシンプルさと、高度なリアルタイム処理やオーディオ処理向けのDSPアクセラレーションを兼ね備えています。
このような異種混在設計により、パフォーマンス、レイテンシ、および電力要件に応じたワークロードの分割が可能になります。Linuxが通常はCortex-Aコアで動作する一方、Zephyr RTOSはCortex-Mコアで動作します。信号処理やデータ処理のタスクのために、ZephyrをHiFi4 DSPに実装することもできます。
この図は、NXPの異種混在アーキテクチャにおいて最適なパフォーマンスを実現するために、どのようにARMとDSPのコア間でワークロードが分割されているかを示しています。
DSPは以下の機能のために最適化されています。
- オーディオおよび音声コーデック
- AIおよびニューラル・ネットワークの前処理および後処理
- 高速フーリエ変換(Fast Fourier Transform:FFT)、フィルタリング、エコー・キャンセル
- Open Asymmetric Multi-Processing (OpenAMP) プロセッサ間通信(Inter-Processor Communication:IPC)を介したARMコアとの低レイテンシの通信
これらの機能をDSPにオフロードすることで、システムの応答性の向上、CPU負荷の軽減、消費電力の低減を実現できます。
HiFi4 DSP上のZephyr RTOS
Zephyrプロジェクトは、組込みおよび異種混在環境向けに最適化された、オープンソースのスケーラブルなRTOSです。複数のハードウェア・アーキテクチャをサポートするとともに、デバイス・ドライバ、IPC、同期に対応する、一貫性のあるモジュール型フレームワークを提供します。
NXPは、i.MXとi.MX RTの両方の製品ファミリでHiFi4 DSPのサポートを可能にするための拡張機能をZephyr RTOSに提供しています。これらの拡張は、開発者やコミュニティ全体が、ミックスドコア・システムでのDSPアクセラレーションの強みを最大限に活かせるようにするものです。
サポートされるプラットフォームには、以下のものが含まれます。
さらに、一部のi.MX RTターゲットでは、HiFi1またはFusion F1といった他のDSPが使用されています。
| デバイス・ファミリ |
Zephyrターゲット・ボード |
| i.MX RT500 |
mimxrt595_evk/mimxrt595s/f1 |
| i.MX RT700 |
mimxrt700_evk/mimxrt798s/hifi1 |
これらのターゲットのすべてで同じZephyrビルド環境を使用できるため、ARMコアとDSPコア間で開発ワークフローを統一することが可能になります。
ファームウェアのロードとランタイム管理は、Linuxのremoteprocドライバ(i.MXプラットフォーム上)またはマルチコア管理フレームワーク(i.MX RTプラットフォーム上)が対応します。一方で、OpenAMPは堅牢なコア間メッセージングを提供します。
この図は、NXPシステムにおいて、OpenAMPがどのようにARMとDSP間の高速で信頼性の高いコア間通信を可能にするかを示しています。
基本的な実行からコア間の協調動作まで
Zephyrプロジェクトでは、基本的なシステムの起動から高度な処理やコア間通信まで、その機能を示すさまざまなサンプルを提供しています。次のセクションでは、HiFi4 DSPでZephyrを使用する方法を示すいくつかのサンプルについて紹介します。
Hello Worldサンプル
標準のZephyr hello_worldサンプル は、HiFi4 DSPでのZephyrの起動と実行の成功を示します。ファームウェアがビルドされ、ロードされると、正常に起動したことを確認する以下のメッセージがDSPのコンソールに出力されます。
Zephyr OSのHello Worldサンプルによるi.MXプラットフォームでの起動のデモ。
このサンプルは、プロセッサ間通信やワークロードのオフロードが関わる、より高度なアプリケーションの基盤を確立します。
ナンバー・クランチングとDSPアクセラレーション
number_ crunchingのサンプル では、HiFi4 DSPの演算の強みが強調されています。このサンプルでは、Cortexマイクロコントローラのソフトウェア・インターフェース標準デジタル信号処理 (CMSIS-DSP) バックエンド、または高度に最適化されたCadence NatureDSPライブラリを使用して、ベクトル演算、高速フーリエ変換 (FFT)、フィルタリングを実行します。
実行サイクル数は、NatureDSPバックエンドによって得られる、特にFFTおよび無限インパルス応答 (IIR) フィルタ・ルーチンにおける大幅な効率向上を示しています。これらの性能上の強みにより、HiFi4 DSPは、オーディオの後処理、ビームフォーミング、リアルタイム・データ・フィルタリングなどのタスクに最適なものとなっています。
OpenAMPによるプロセッサ間通信
ARMコアとDSPコア間の協調動作は、多くのアプリケーションに利点をもたらします。openamp_ rsc_tableサンプル は、HiFi4 DSPで動作するZephyrがOpenAMPとリモート・プロセッサ・メッセージング (RPMsg) を使用して、ARMコアで動作するLinuxとどのように通信するかを示しています。これにより、異種のコア間でも信頼性に優れた低レイテンシのメッセージ伝達が可能になります。
例として、Cortex AコアでLinuxが動作し、HiFi4 DSPでZephyrが動作するOS混在のマルチコア・システムを想定します。Linuxがユーザー空間のインターフェースと高度な制御に対応できる一方で、DSPはZephyr RTOSで演算処理を実行し、共有メモリを介してリアルタイムでデータを交換します。
Sound Open Firmware (SOF) によるオーディオ・オフロード
高度なオーディオ・アプリケーションでは、Zephyr RTOSをベースとしたSOFが構築され、HiFi4 DSPでのオープンソースの包括的なオーディオ処理フレームワークを提供します。
SOFは、Cortex-Aプラットフォームの高度なAdvanced Linux Sound Architecture (ALSA)と完全に統合された、プロフェッショナル・グレードで低レイテンシのオーディオ・パイプラインを実現します。SOFは、以下の機能をサポートしています。
- マルチチャネル・オーディオ・ ルーティング
- 音声の前処理および後処理
- オーディオ・エフェクト・チェーンと動的再構成
このフレームワークは、i.MX製品ライン向けのスケーラブルな量産対応のDSPソリューションがZephyrによってどのように実現されるかを示しています。
DSPでZephyrを実行する利点
HiFi4 DSPでZephyr RTOSを実行することには、以下のような多くの利点があります。
- 統一された開発フロー:RTOSが動作するARMとDSPのターゲット間で共通のAPI、ツール、ビルド・システム
- パフォーマンスの最適化:高負荷の演算または信号処理のワークロードをARMコアからオフロード
- オープンで拡張可能:オープンソースのZephyrとSOFエコシステムを活用して、長期的な技術的負債を最小限に抑える
- スケーラブルなシステム設計:Linux、ARM上のZephyr、DSP上のZephyr間でシームレスな協調動作を実現
まとめ
NXPのi.MXおよびi.MX RTプロセッサに統合されたCadence HiFi4 DSPは、信号処理、オーディオ、AIアクセラレーションに最適な高性能で低消費電力の演算エンジンです。ZephyrのRTOSサポートにより、このDSPは統一された異種混在プロセッシング環境のために不可欠なものとなります。
HiFi4 DSPに搭載されたZephyrは、hello_worldなどの基本的なZephyrサンプルから、パフォーマンス重視のナンバー・クランチング・ルーチンやOpenAMPでの複雑なコア間通信まで、イノベーションのためのスケーラブルな基盤を提供します。SOFと組み合わせることで、この機能は量産対応のオーディオ・パイプラインや高度な組込みワークロードにまで拡張され、NXPエコシステム全体に柔軟性とオープンさをもたらします。
Zephyr RTOSは、HiFi4 DSPがパワフルなコプロセッサとして動作することを可能にし、次世代の組込み設計に向けて新たなパフォーマンスと効率の可能性を解き放ちます。