効率的なマルチコアプロセッサを活用した、よりスマートな音声対応製品の作製
DigiKeyの北米担当編集者の提供
2020-02-14
より高度なインテリジェント製品に対する需要が、ほぼあらゆる用途の領域で広まっていますが、その背景にはユーザーに慣れ親しまれ重宝がられているAmazon Alexa、Google Assistant、Apple Siri、Microsoft Cortanaなどの仮想デジタルアシスタントの普及があります。これらのアシスタント製品は、利便性に加えて、産業用システムやヘルスケア用途向けの幅広い製品における安全性、セキュリティ強化をもたらす上で重要な役割を果たしています。一方、開発者にとってこのような製品の基礎設計では、パフォーマンスの向上、コストとフットプリントの最適化、そして効率的な操作など、互いに両立が難しい条件がプロセッサに求めるられる場合もあります。
この記事では、開発者がマルチコアプロセッサ(本記事ではNXPのi.MX 8M Nano)を使用して、スマートホームや産業用オートメーション、医療システムに及ぶ幅広い用途分野で、新たなスマート製品の幅広く多様な処理とインターフェースの要件をいかに満たすかについて解説します。特に、開発者がこのプロセッサを使用して、高度なオーディオ処理機能を備えた次世代の音声ベースソリューションをより簡単に実装する方法を紹介します。
スマート製品の進化の経緯
音声アシスタント技術の急速な普及により、ユーザーはスマート製品により多くの機能を求めるようになりました。新たに登場する製品は、音声による命令に応えるだけでなく、センサやカメラなどのデバイスからの多面的な入力データによる豊富な情報を蓄積している必要もあります。スマート照明スイッチが照明をオン/オフするだけ、または食器洗い機が音声の命令に応えて機能するだけでは不十分です。アプリケーションがさらに高度化するにつれて、基盤となるデバイスは、より多様なセンサの組み合わせや、人工知能(AI)メソッドを駆使した処理機能の強化、さらに3Dグラフィックディスプレイをサポートする必要もあります。
よりインテリジェントな製品が必要なのは、利便性への欲求に応えるためだけに限りません。産業用オートメーションやヘルスケアなどの重要な用途分野では、危険な状況や病状を積極的に警告するデバイスの機能が不可欠であることは明らかでしょう。身近な周囲を監視できるヘルメットを着用した工場作業員は、危険をすぐに回避できます。また、バイタルサインを継続的に監視する小型のヘルスケアモニタを重篤患者が装着していれば、致命的な状態に至るのを防ぐ医療処置を前もって受けられます。
このようなスマート製品には、対象用途に応じて異なる固有の設計要件がありますが、ほとんどの分野に共通して求められるのは、高度な処理性能、マルチメディア機能、安全な操作性です。開発者にとって、これらの機能的な要件には、より堅牢なアプリケーションに対応するスケールアップ能力と省サイズ/低コスト/省電力化への要望に応える物理的なスケールダウン能力を両立させるソリューションへの根本的なニーズも加わります。異種マルチコアアーキテクチャに基づくNXPのi.MX 8M Nanoアプリケーションプロセッサ ファミリは、新たに登場するスマート製品の設計に求められる幅広く多様な要件を満たします。
高性能なコア
NXPのi.MX 8M Nanoは、NXPのi.MX 8Mプロセッサ ファミリの最新製品で、拡張可能なマルチコア処理プラットフォームを可能にするように設計されています。ハイエンドのビデオアプリケーションでは、NXPのi.MX 8Mフラッグシッププロセッサ、たとえばMIMX8MQ5DVAJZABなどが、4Kハイダイナミックレンジ(HDR)ビデオのハードウェアデコードによる最大4Kの表示解像度を可能にします。1080pビデオでは、NXPのi.MX 8M Miniプロセッサ、たとえばMIMX8MM6CVTKZAAなどにより、1080pハードウェアデコードがサポートされます。i.MX 8Mおよび8M Miniの両シリーズは、最大4つのArm® Cortex®-A53アプリケーションプロセッサコアとArm Cortex-M4Fマイクロコントローラコアを組み合わせています。
対照的に、NXPのi.MX 8M Nano MIMX8MN6CVTIZAAプロセッサは、4つのArm Cortex-A53コアとArm Cortex-M7コアを組み合わせており、Cortex-M4FなどArm Cortex-Mシリーズの他のコアにおいて最高の性能を提供します。
i.MX 8M Nanoプロセッサは、プロセッサコア補完の他にも幅広い外部メモリデバイスをサポートし、民生用および産業用の用途で通常必要なあらゆる外部ペリフェラルインターフェースを提供します(図1)。
図1:NXPのi.MX 8M Nanoプロセッサは、最大4つのArm Cortex-A53アプリケーションプロセッサ、Arm Cortex-M7マイクロコントローラ、専用ハードウェアサブシステム、および民生用と産業用のアプリケーションで通常使用される各種外部ペリフェラルインターフェースを組み合わせています。(画像提供:NXP)
i.MX 8M Nanoプロセッサ シリーズには各種の派生製品が用意されているため、開発者はコストと性能の固有の要件を簡単に満たすことができます。たとえば、高性能プロセッサ製品は、セキュリティ、3Dグラフィックディスプレイ、オーディオ処理など、多様な機能向けの幅広い専用サブシステムを統合しています。i.MX 8M Nanoシリーズの他のプロセッサ製品には、少ないCortex-A53コア数、およびグラフィック機能を絞り込んだ「Lite」バージョンのオプションが用意されています。
とはいえ、i.MX 8M Nanoプロセッサ シリーズの全プロセッサ製品は、新たなスマート製品に求められる、アプリケーション性能とリアルタイム機能を組み合わせた能力を発揮します。
アプリケーションソフトウェアの高性能な実行を可能にする設計のArm Cortex-A53アプリケーションプロセッサコアは、それぞれが最大1.5GHzのクロック周波数で実行し、専用レベル1(L1)32KB命令キャッシュ(I-キャッシュ)、32KBのデータキャッシュ(D-キャッシュ)、および共有L2 512KB統合キャッシュから動作します。これらのコアは、統合された浮動小数点ユニット(FPU)とともにArmのNeon技術をサポートし、デジタル信号処理で使われる高度な単一命令多重データ処理(SIMD)の演算や、データ集約型アプリケーションで使われる他の高度なアルゴリズムに対応します。
組み込みシステムの要件に対応するように、ArmのCortex-M7マイクロコントローラコアは最大周波数750MHzで動作し、低レイテンシや確定的な演算を必要とするリアルタイム処理の高性能な実行を可能にします。処理をさらに高速化するために、コアには統合FPUと、命令およびデータキャッシュ用の256KB密結合メモリ(TCM)が含まれています。
ただし、複雑なリアルタイム処理タスクの場合、割り込みソースを個別にすばやく識別する機能は、データ処理能力と同じくらい重要といえます。i.MX 8M Nanoプロセッサでは、各Arm Cortex-A53コアに組み込まれたグローバル割り込みコントローラ(GIC)とArm Cortex-M7コア内のネスト型ベクタ割り込みコントローラ(NVIC)により、コア状態、タイマ、ペリフェラルインターフェースイベント、ダイレクトメモリアクセス(DMA)処理、専用ハードウェアプロセスなどに対応する、128あまりの個別割り込み要求ソースからの細かい割り込み処理が可能になります。
異種マルチコア処理
上記とは別に、各i.MX 8M Nanoプロセッサコアは、堅牢なコンピューティングリソースとなります。プロセッサの複数コアとともに使用することでパワーコンピューティングのプラットフォームを実現し、スマート製品の設計を複雑化する一因にもなるリアルタイム機能とアプリケーションソフトウェア実行という競合する要件に、適切に対処できます。このプロセッサに基づくスマート製品は、たとえばCortex-M7コアを使用してオーディオストリームをリアルタイムに処理できると同時に、1つまたは複数のCortex-A53コアで実行するアルゴリズムを使用して結果データを分析し、その結果を3Dグラフィック表示で提示できます。
ただし、このような調和型の異種マルチコア処理を確実に実行するために、マルチコアシステムには、「処理の実行」と「各種コア、専用ハードウェアブロック、ペリフェラル間でのデータ交換」の慎重なオーケストレーションが必要になります。i.MX 8M Nanoプロセッサでは、このオーケストレーションがハードウェアベースの機構に内蔵されており、マルチプロセッシング環境の低レベルソフトウェアサービスで標準的に利用されるセマフォおよびメッセージングに対応します。
組み込みシステムでは、このようなオーケストレーションに基づく実行が、メモリや周辺機器などのハードウェアリソースにも該当します。このタスクのために、プロセッサには専用のリソースドメインコントローラ(RDC)が統合されており、該当する場合に安全なリソース共有を確保し、あるいは必要に応じて適切に分離できるように設計されています。その結果、アプリケーションソフトウェアとリアルタイムコードのそれぞれが、それらのドメイン専用のリソースを制御しながら、共通する一連のリソースを共有できます(図2)。
図2:NXPのi.MX 8M Nanoプロセッサのハードウェアベースのメカニズムにより、Cortex-A53アプリケーションドメインまたはCortex-M7リアルタイムドメイン専用のリソースを分離できると同時に、必要に応じてリソースを安全に共有できます。(画像提供:NXP)
スマート製品専門のサポート
i.MX 8M Nanoプロセッサのマルチコアとリソース共有機能のみを使用して、開発者は、音声アシスタントと3Dグラフィックスを組み込んだ新しいスマート製品の高度なアプリケーションを作成できます。これらのアプリケーションでは、i.MX 8M Nanoプロセッサが搭載されるスマート製品専用のハードウェアサポートにより、ソフトウェアフットプリントの削減とともに、性能のさらなる向上が可能になります。
グラフィックスについては、プロセッサの統合グラフィックス処理ユニット(GPU)が2D/3Dグラフィックスアクセラレーションを実現し、さらにこのユニットはVulkan、Open Computing Language(OpenCL)、Open Graphics Library(OpenGL)などの標準グラフィックスライブラリをサポートします。また、搭載されている液晶ディスプレイ用インターフェース(LCDIF)コントローラは、1080p60(1080プログレッシブ60フレーム/秒)の表示をサポートします。
オンチップのGPUによりディスプレイ処理がコアからオフロードされると同時に、もう1つのハードウェアサブシステムのセットによって各種のオーディオ処理タスクがオフロードされます。これにより、従来型プロセッサベースのシステムの速度を低下させていた処理も軽減できます。また、マイクロフォン入力の処理用に、プロセッサにはパルス密度変調(PDM)マイクロフォンインターフェース(MICFIL)があり、PDMマイクロフォンで得た1ビット入力からフィルタ処理済みの16ビットパルス符号変調(PCM)データを生成するように設計された、マルチステージパイプラインを可能にします(図3)。
図3:NXPのi.MX 8M NanoプロセッサのPDMマイクロフォン入力用インターフェースサブシステムは、オーディオ信号処理と音声アクティビティ検出用の個別のハードウェアパイプラインを組み合わせています。(画像提供:NXP)
一般的な音声ベースのアプリケーションでは、設計者は、PDMマイクロフォンをプロセッサがサポートする8つのPDMチャンネルの1つに接続するだけで済みます。PDMマイクロフォンインターフェースサブシステム内では、入力インターフェースがペアのマイクロフォンからの時間多重化PDMデータを組み合わせて、左右チャンネルを含むレーンを形成します。
各チャンネルの次の段階では、プログラム可能な専用デシメーションフィルタが、目的の出力レートと、高/中/低品質+超低品質レベル3段階を含む6段階の品質選択(QSEL)設定に応じて、さまざまなパスバンドを提供します。たとえば48kHzの出力レートでは、超低品質のモードではフィルタパスバンドを10.5Hz~11.25kHzに設定しますが、これは高/中/低の各品質モードでのパスバンド21Hz~22.5kHzの設定とは対照的です。そして、各チャンネルの結果は各チャンネルの個別の先入れ先出し(FIFO)バッファで利用できるようになり、割り込みの生成、DMAによる転送、またはバスアクセスが可能です。
ハードウェアベースの音声アクティビティ検出
このオーディオ信号調整パイプラインと並行して、PDMマイクロフォンインターフェースには一連のハードウェア音声アクティビティ検出器(HWVAD)があり、目的のマイクロフォン入力チャンネルをモニタリングできます。(注:上記の図では各HWVADが1つの「レーン」と結び付くことが示されますが、文書にはチャンネルと記載されており、レジスタ名VADCHSELにもチャンネルが示唆されています)。HWVADの動作をサポートするために、プロセッサにはデバイスレジスタの豊富なセットがあり、開発者は各自のアプリケーションに必要な特定のHWVAD構成を定義できます(表1)。
|
表1:NXPのi.MX 8M Nanoプロセッサレジスタは、プロセッサのPDMマイクロフォンインターフェース(MICFIL)に統合されたハードウェア音声アクティビティ検出器の設定に標準的に使用されます。(表提供:DigiKey、NXPのデータに基づく)
これらのレジスタ設定に基づいて、HWVADは組み込みの音声検出アルゴリズムを使用して音声アクティビティを識別します。アクティビティを検出すると、HWVADはコア(通常はCortex-M7)をウェイクアップする割り込みを生成し、さらに処理を行います(図4)。
図4:開発者によってプログラムされた設定を使用するNXPのi.MX 8M Nanoプロセッサのハードウェア音声アクティビティ検出器により、プロセッサコアは、音声が検出されて音声処理がさらに必要になるまで、スリープするか他の処理を実行できるようになります。(画像提供:NXP)
音声アシスタントアプリケーションでは、コアは適切なウェイクワードのオーディオストリームをチェックします。ウェイクワードが検出されると、コアは通常、アプリケーションでサポートされるクラウドベースの音声アシスタントサービスにオーディオストリームを提供します。
i.MX 8M Nanoプロセッサには、PDMマイクロフォンインターフェースサブシステムの他にも5種類の同期オーディオインターフェース(SAI)モジュールがあり、Inter-IC Sound(I2S)、オーディオコーデック97(AC97)、時分割多重化(TDM)オーディオ、Direct Stream Digital(DSD)、コーデックまたはデジタル信号処理(DSP)データなど、多くの標準オーディオフォーマットをサポートします。
固有のアプリケーション要件を満たすために、開発者にはオーディオ入力サンプルを他の必要なサンプルレートと解像度に変換する作業が必要になることがよくあります。i.MX 8M Nanoプロセッサでは、このようなよくあるタスクを実行するのにプロセッササイクルを使用するのではなく、専用の非同期サンプルレートコンバータ(ASRC)サブシステムを統合しています。
ASRCは、最大32のオーディオチャンネルを同時に処理する機能により、ソースサンプルを目的のサンプルレート(8kHz~384kHz)と解像度(サンプルあたり16、20、24、32ビットでIEEE単精度浮動小数点または固定小数点形式)に自動で変換します。このプロセスでは、ASRCはすべての入力データを64ビットIEEE浮動小数点形式に変換し、必要に応じたオーディオサンプルデータの正確なアップコンバージョンまたはダウンコンバージョンを可能にして目的の結果を達成します。
汎用パワーコントローラを使用した電源管理
NXPのi.MX 8M Nanoプロセッサアーキテクチャは、プロセッサコアとハードウェアサブシステムの幅広い統合とともに、個々のコアとサブシステムに内蔵された複数の個別パワードメインとパワーモードを組み込んでいます。一連のコアと専用ブロックの電力管理用に、i.MX 8M Nanoプロセッサには高度な汎用パワーコントローラ(GPC)が含まれており、複数の電源管理機能を調整するように設計されています。GPC内では、システムモードコントローラ(SMC)が各コアの低電力モード(LPM)と全体のディープスリープモード(DSM)を管理し、パワーゲーティングタイムスロットコントローラ(PGTSC)がクロックゲーティング機能を管理します。クロックゲーティング機能は、非アクティブなサブシステムの電源を無効化してシステムの電力を削減するために使われます(図5)。
図5:システムレベルの電力をさらに最適化するために、NXPのi.MX 8M Nanoには包括的なパワーコントローラが統合されており、プロセッサコアに内蔵のパワーゲーティング機能と低電力モードを管理します。(画像提供:NXP)
ソフトウェアまたはハードウェアの制御下で、GPCはPGTSCの20種類のタイムスロットを使用して、プロセッサに含まれるクロックゲーティングによる複数のパワードメインのいずれかをパワーアップまたはパワーダウンします。ここで、タイムスロットコントローラはこれらのタイムスロットを通じて順次動作し、次のスロットに進む前にパワーアップまたはパワーダウン要求をアクティブにします。このアプローチにより、開発者は特定の電源シーケンシング要件を満たすだけでなく、システム電源投入時、または低電力モードやディープスリープモードからのシステム起動時に、上昇電流を削減できます。
i.MX 8M Nanoプロセッサの複数パワードメインへの給電は簡単です。NXPのi.MX 8M Nanoプロセッサのサポート専用に設計されたROHM SemiconductorのBD71850MWV電力管理集積回路(PMIC)は、プロセッサおよび他のシステム周辺機器に必要なあらゆる電源レールを提供します。実際に、BD71850MWV PMICは独自のパワーシーケンサを統合しており、プロセッサだけでなく外部メモリ、センサ、またはシステム内の他のデバイスでも、パワーアップ/パワーダウンの安全な実行をさらに容易にします(図6)。開発者がBD71850MWV PMICを設計に組み込む際に、通常のデカップリングコンデンサ(図示なし)以外の追加部品は必要ありません。
図6:NXPのiMX 8M Nanoプロセッサの複数のコア/ハードウェアサブシステムによって複数の電源レールが必要になりますが、ROHM BD71850MWVの電力管理集積回路(PMIC)はすぐに役立つソリューションを提供します。(画像提供:NXP)
開発サポート
i.MX 8M Nanoをベースにした設計のハードウェアインターフェース要件は比較的単純ですが、NXPでは、プロセッサ評価や新しいスマート製品試作のために行うこの比較的簡単な設計タスクでさえも不要にする製品を提供しています。その8MNANOD4-EVK評価キットは、i.MX 8M Nanoプロセッサ向けに完全実装済みの開発キットとリファレンス設計を提供する製品で、i.MX 8M NanoプロセッサとBD71850MWV PMICをMurata ElectronicsのLBEE5HY1MW Wi-Fi/Bluetoothトランシーバモジュールと組み合わせることで、すぐに評価を行い試作品を開発するためのプラットフォームとなっています。この評価キットには、複数のインターフェースオプションと関連するコネクタとともに、SDRAM(static dynamic ram)、NORフラッシュ、NANDフラッシュなどの外部メモリデバイスのフルセットが含まれています。開発者はこの評価キットを使うことで、外部フラッシュからのブートや署名されたブートイメージを使用したセキュアブートなど、さまざまな動作モードおよび構成を検証できます。
独自のカスタムソフトウェア開発を始める開発者向けに、NXPは同社独自のMCUXpresso統合開発環境(IDE)およびサードパーティのIDEで機能するように設計された、ドライバ、ボードサポートパッケージ(BSP)、ミドルウェアを提供しています。機械学習法を活用するように設計したアプリケーションの開発では、開発者はNXPのeIQ機械学習ソフトウェア開発環境、およびCortex-M7ベースの推論向けeIQ for TensorFlow Liteなどのi.MX最適化推論ライブラリ、またはNXPのCortex-A53ベース推論向けArmニューラルネットワークソフトウェア開発キット(NN SDK)のポートを活用できます。
結論
音声アシスタント製品の急速な普及を背景に、次世代のスマート製品は、音声アシスタント機能の向上だけでなく、性能の高機能化、グラフィックスの強化、省力化などの面でも期待が高まっています。一方で開発者にとっては、これらの製品システムを効果的に設計するには、高性能アプリケーションソフトウェアの実行と低遅延のリアルタイム機能を組み合わせる必要がありますが、これまでは製品のサイズ、コスト、電力の制約がある中でそれを実現するのは困難でした。NXPの拡張可能なマルチコアプロセッサ ファミリが利用できることで、開発者は、民生用、産業用、医療用など幅広い用途部門でスマート製品の設計要件を手間なく満たすことができるようになります。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。


