JPY | USD

市場初のArm® Cortex®-M33ベースのMCUの活用 – パート1:電力および性能を管理

著者 Stephen Evanczuk

Digi-Keyの北米担当編集者 の提供

編集部注:2回連載のこの記事のパート1では、1つの汎用マイクロコントローラファミリを使用して、性能と低消費電力に関する広範な要件を、開発者がどのように満たすかを示します。パート2では、NXP SemiconductorsのLPC55S6xマイクロコントローラに組み込まれた拡張セキュリティ機能が、プロビジョニングや試運用から通信、セキュアブート、およびファームウェアのセキュアアップデートまでのライフサイクルを通じてのセキュリティを、どのようにサポートするかについて説明します。

開発者たちは、「低消費電力でアプリケーション性能を向上させる」という矛盾の多い要求を、さまざまな機能やアプリケーションでバランスを取るのに苦労しています。具体的には、モノのインターネット(IoT)、産業用オートメーション、医療システム、民生用機器などのアプリケーションがこれに当てはまります。このようなアプリケーションではセキュリティの強化が急務となっていますが、これにより開発者は、広範かつ多様、そして増え続ける相反する設計要件リストを満たす単一のマイクロコントローラファミリを見つけるのが困難な状況になっています。

このような問題に対処するために、NXP SemiconductorsLPC55S6xファミリのマイクロコントローラを発表しました。強力な汎用コアに高効率の専用ハードウェアと処理エンジンを組み合わせたこのデバイスは、開発者が問題に取り組むのを支援します。

多様な要件を特定して対応

コネクテッド製品は比較的単純なシステムから急速に進化したものですが、通常、設計要件で最も難しいのは通信周りの課題です、今、設計者はひどく困難な状況に直面しています。あらゆるアプリケーション分野で拡大を続ける要件リストには、妥協の余地がほとんどありません。開発者はアプリケーション固有の課題に対処するために、必要に応じてアプリケーションごとに重点を移す必要があります。それでも、高い性能と低い消費電力に対する要求は、ほとんどの主流アプリケーション分野で共通の問題です。

たとえば、スマートファクトリは、信号処理に必要な低遅延で高性能のデバイスが重要になるだけでなく、工場のエンジニアが狭いスペースにこれらのデバイスをより多く詰め込めるように消費電力を削減する必要もあります。消費者向けウェアラブルでは、バッテリ寿命を延ばすために消費電力を削減する設計を必要とするだけでなく、より複雑なワークロードを処理できる信号処理機能に対する要求も高まっています。個々のサイバー犯罪者や犯罪組織、さらには国が後ろ盾する集団からの即時攻撃や高度な持続的脅威に対して、デバイスやネットワークや企業アセットが脆弱性を抱えている現実があります。すべてのアプリケーション分野の開発者は、この現実の懸念に対してより効果的に対応するプレッシャーが高まっていることを承知しています。

これらの多様な要件を満たすために、開発者は通常、設計の何らかの面での妥協に迫られます。性能の低いプロセッサを使用したり、クロックレートを下げたり、プロセッサのデューティサイクルを下げて低消費電力状態にすることで、アプリケーションのパフォーマンスを犠牲にして消費電力を減らすこともあるでしょう。厳しい性能要求を満たすために、はるかに大きい電力消費が必要になっても、より強力なプロセッサ、より高速なクロックレート、デューティサイクルの増加など、逆のアプローチを取ることがあります。計算がより複雑なアプリケーションでは、アルゴリズムの実行速度を上げるために専用のデジタルシグナルプロセッサ(DSP)デバイスを追加することがありますが、設計が複雑になり、コストやシステムの消費電力も増加します。電力と性能のバランスが許容範囲に達したとしても、セキュリティ要件を満たすには、一般的に設計コストと複雑さの増大を受け入れる必要があります。

設計者は要件に悩む一方で、医療機器、産業用オートメーションシステム、小売決済デバイスなどの重要なアプリケーションに対して、妥協の余地がほとんどない、あるいはまったく妥協を赦さないユーザー要求が増えています。NXP SemiconductorsのLPC55S6xマイクロコントローラファミリは、汎用プロセッサの柔軟性と、新しいアプリケーションに必要な処理およびセキュリティのための特殊機能を組み合わせたアーキテクチャによって、設計者が妥協を排除するのを支援します。

専用プロセッシングコアによる幅広い機能

市場初のArm® Cortex®-M33ベースの汎用MCUであるNXP SemiconductorsのシングルコアLPC55S66およびデュアルコアLPC55S69マイクロコントローラは、Arm Mシリーズアーキテクチャに組み込まれた低レイテンシの確かな性能を基盤としています。NXPのLPC55S6xデバイスにはアーキテクチャ上の機能強化が複数ありますが、その中には同社の高性能PowerQuad DSPアクセラレータ、CASPER(RAM付き暗号化アクセラレータおよびシグナリング処理エンジン)暗号化エンジン、および包括的なセキュリティサブシステムが含まれています。最大640Kバイトのフラッシュ、最大320KバイトのSRAM、および最大128KバイトのROMに加えて、LPC55S6xデバイスは、深く組み込まれたシステム設計に通常必要とされる広範な機能要素を統合しています(図1)。

NXP LPC55S6xマイクロコントローラアーキテクチャの図図1:LPC55S6xマイクロコントローラアーキテクチャは、Arm Cortex-M33コアの汎用処理能力を、信号処理、暗号化、セキュアストレージ、およびキー管理のための専用ハードウェアブロックで拡張しながら、通常の組み込み設計で使用される周辺機器をすべて補完します。(画像提供:NXP Semiconductors)

LPC55S6xデバイスには、そのような要素として、包括的なタイマーサブシステム、複数のシリアルインターフェース、セキュアダイレクトメモリアクセス(DMA)コントローラ、そして最大64の汎用I/O(GPIO)ピンが含まれています。デジタルサブシステムとともに、LPC55S6xデバイスは、マルチチャンネル16ビット逐次比較レジスタ(SAR)A/Dコンバータ(ADC)、アナログコンパレータ、および温度センサを内蔵しています。さらに、プログラム可能ロジックユニット(PLU)を内蔵しているため、開発者は26の5入力ルックアップテーブル(LUT)要素からステートマシンを含むカスタムの組み合わせロジックやシーケンシャルロジックを構築できます。開発者はPLUレジスタにアクセスして小規模ロジックネットワーク用にPLUを直接プログラムするか、NXPツールを使用してVerilogレジスタ転送言語(RTL)で記述された大規模ネットワークを実装できます。

複数のサブシステムにアクセスする際のボトルネックを回避するため、LPC55S6xデバイスには、Arm先端技術マイクロコントローラバスアーキテクチャ(AMBA)高性能バス(AHB)アーキテクチャで構築された多層バスマトリクスが含まれています。AHBバスマトリクスは、バスマスターとペリフェラルまたはメモリ間の直接接続を提供します。このアプローチにより、たとえば、プロセッサからメモリへのアクセスパフォーマンスを犠牲にすることなく、DMA転送をフルスピードで実行できます。実際、多様な設計要件の中でプロセッサ効率を最大化する能力は、LPC55S6xのアーキテクチャ基盤にあります。

LPC55S6xアーキテクチャでは、Cortex-M33コアは、設計者が多様な設計要件に容易に対応できるように設計された複数の機能を提供します。同クラスの他のデバイスと同様に、LPC55S6xプロセッサはいくつかの低電力モードをサポートしています。長時間の非アクティブな状態に対し、開発者は、完全なSRAM保持を提供しながら15.4マイクロアンペア(µA)しか消費しないパワーダウンモード、または4KバイトスライスのSRAMへの電力を維持しながら約0.59µAを消費するディープパワーダウンモードにデバイスを設定できます。スリープモードとディープスリープモードは、ペリフェラルとメモリに異なるレベルの動作を提供しながら、プロセッサをシャットダウンします。スリープモードは、フル動作を提供しながら約2.7ミリアンペア(mA)を消費します。一方、ディープスリープモードでは、ペリフェラルをクロックゲートして消費電力を約110µAまで低減します。

拡張機能

低消費電力モードに加えて、LPC55S6xアーキテクチャは、性能とセキュリティを強化のための統合機能により、多様な設計要件への対応能力を拡張します。プライマリCortex-M33コアに組み込まれているこれらの統合機能には、Arm TrustZoneセキュリティ拡張(SECEXT)、メモリ保護ユニット(MPU)、IEEE 754標準浮動小数点ユニット(FPU)、および組み込みトレースマクロセル(ETM)が含まれます。さらに、プライマリコアには、DSPおよび単一命令複数データ(SIMD)操作用のCASPER暗号化エンジンおよびPowerQuadアクセラレータが含まれています。

注:これらの追加機能は、デュアルコアLPC55S69マイクロコントローラに搭載されているセカンダリCortex-M 33コアには含まれていません。

これらの統合サブシステムとアーキテクチャの機能はそれぞれ、この記事の説明範囲には収まりきらないさまざまな機能を提供します。たとえば、PowerQuad DSPアクセラレータは、それ自体が洗練されたコプロセッサですが、バスマスターとしてメモリにアクセスしながら信号処理機能を独立して計算することができます。

PowerQuadアクセラレータは、内部的には複数のレジスタとインターフェースを一連のハードウェアエンジンと組み合わせ、高速フーリエ変換(FFT)、離散コサイン変換(DCT)、無限インパルス応答(IIR)、有限インパルス応答(FIR)、そして三角関数を効率的に計算するために使用される座標回転デジタルコンピュータ(CORDIC)アルゴリズムなどの主要な信号処理機能を提供します(図2)。

NXP SemiconductorsのLPC55S6xマイクロコントローラファミリの図図2:NXP SemiconductorsのLPC55S6xマイクロコントローラファミリは、信号処理アプリケーションで通常必要とされるアルゴリズムの実行を高速化するために専用エンジンを使用する、同社のPowerQuadコプロセッサを統合しています。(画像提供:NXP Semiconductors)

PowerQuadアクセラレータの使用によって、開発者は、ホストプロセッサがリアルタイムイベントに応答したり、一連の動作を完了するなどの能力を犠牲にすることなく、複雑な信号処理操作を実行できます。ホストプロセッサは、要求される信号処理機能によってPowerQuadレジスタを設定し、転送元、転送先、および作業メモリ領域のメモリアドレスを指定します。起動後、PowerQuadアクセラレータは、AHBマトリクスを使用してバスマスターとして128ビットメモリ転送を実行する、真のコプロセッサとして動作します。その間、ホストプロセッサは即座にメイン処理タスクに戻り、定期的にPowerQuadのビジービットをポーリングするか、単にPowerQuad完了割り込みに応答して結果にアクセスすることができます。

ただし、開発者にとっては、PowerQuadの動作はほぼ透過的です。開発者は、Arm Cortexマイクロコントローラ ソフトウェアインターフェース標準(CMSIS)DSPライブラリ用の標準API(アプリケーションプログラミングインターフェース)を使用します。NXP SemiconductorsのMCUXpressoソフトウェア開発キット(SDK)に含まれるNXPのPowerQuad対応バージョンのライブラリは、ソフトウェアに実装されている低レベルの数学関数をPowerQuad APIの呼び出しで置き換えます。

たとえば、複雑なFFTを計算するには、開発者は標準のCMSIS-DSP関数arm_cfft_q31()を使用します。これは、符号用に1ビット、指数用に31ビットを使用する32ビット固定小数点数を表すQフォーマットのデータです。純粋なソフトウェア実装では、arm_cfft_q31()関数を呼び出すと、CMSIS DSP FFTバタフライソフトウェア関数arm_radix4_butterfly_q31()とend関数arm_cfft_radix4by2_q31()、または複素逆FFTの逆バージョンが呼び出されます。

ただし、NXP DSPライブラリとPowerQuadを使用している場合は、通常arm_cfft_q31()を呼び出すと、PQ_TransformCFFT()が呼び出され、ハードウェアで同じ計算が処理されます。その結果、Cortex-M33コアの処理負荷が軽減されるだけでなく、DSP機能の実行が高速化されます(図3)。

MCUXpressoソフトウェア開発キットのグラフ図3:MCUXpressoソフトウェア開発キットは、低レベルのCMSIS-DSP関数を、PowerQuadアクセラレータの呼び出しに透過的に置き換えることによって、標準のArm CMSIS DSPライブラリへの高レベルの呼び出しとの互換性を維持しながら、一般的なDSPアルゴリズムの実行を大幅に高速化します。(画像提供:NXP Semiconductors)

同様に、もう一つのコプロセッサであるCASPER暗号エンジンは、非対称暗号化アルゴリズムに関連する大きな計算負荷からメインプロセッサを解放します。CASPERエンジンの暗号化は、Cortex-M33コア上で実行される同等の暗号化ソフトウェアの最大8倍の速さで、Rivest-Shamir-Adleman(RSA)、Diffie-Hellman、楕円曲線暗号化(ECC)、および楕円曲線デジタル署名アルゴリズム(ECDSA)を実行します。

LPC55S6xは、対称アルゴリズムの実行速度を上げるために、Advanced Encryption Standard 256ビット(AES-256)およびSecure Hash Algorithm 2(SHA-2)用のハードウェアブロックも統合しています。

これらのハードウェアブロックとCASPERエンジンの組み合わせは、コネクテッド製品のデータ交換を保護するために必要な認証とデータ暗号化に一般的に使用される暗号化アルゴリズムのハードウェアベースのサポートを開発者に提供します。

この連載記事のパート2で説明しますが、LPC55S6xファミリのセキュリティサポートは、基本的な暗号化アルゴリズムのサポートをはるかに超えて、セキュリティのライフサイクル全体に必要なハードウェアベースのセキュリティ機能を提供します。

システム開発

開発者は、NXP LPC55S69 EVK を使用して、LPC55S6xマイクロコントローラの暗号エンジン、DSP、および汎用処理能力をすばやく調べることができます。これらのデバイスを使った開発で、開発時間を短縮するように設計されたLPC55S69 EVK開発ボードには、デュアルコアLPC55S69マイクロコントローラ、NXPのMMA8652FCR1加速度計、LED、ボタン、デバッグインターフェース、およびArduino UNO、MikroElektronica Click、Digilent PModアドオンハードウェアが含まれています。

複数のジャンパとヘッダを使用して、開発者はさまざまなハードウェア構成を簡単に設定し、性能の詳細を入念に調べることができます(図4)。たとえば、消費電力に関心のある開発者は、単に電圧計を使用してヘッダP12の電圧降下を測定することによって、LPC55S69の供給電流を測定できます。

NXP SemiconductorsのLPC55S69 EVKの画像(クリックして拡大)図4:デュアルコアNXP Semiconductors LPC55S69マイクロコントローラを中心に構築されたNXP Semiconductors LPC55S69 EVKは複数のジャンパとヘッダを備え、開発者が構成を容易に設定し、マイクロコントローラの消費電流などの性能詳細を調べることができます。(画像提供:NXP Semiconductors)

開発には、設計者は前述のPowerQuadの機能のようなLPC55S6xに特化したハードウェアを使用するMCUXpresso統合開発環境(IDE)およびSDKと一緒に、このボードを使用するのがよいでしょう。また、LPC55S69-EVKは、IARおよびKeil IDEによってもサポートされています。さらにNXPでは、LPC55S6xの機能を使用するための主要なソフトウェア設計パターンを例示するサンプルコード付きの無料ソフトウェアパッケージを提供しています。

まとめ

開発者は、IoT、産業用オートメーション、医療システム、民生用機器を含む幅広いアプリケーションで、性能と低消費電力とセキュリティのバランスを模索しています。ここで述べたように、LPC55S6xマイクロコントローラファミリの特化ハードウェアと処理エンジンを搭載した強力な汎用コアは、これらの開発者が消費電力を抑えながら高性能の特殊機能に対する要求をより簡単に満たすための道を提供します。

この連載記事のパート2では、LPC55S6xファミリを使用してデバイスのライフサイクル全体を通してセキュリティを管理する方法を説明します。

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、Digi-Key Electronicsの意見、信念および視点またはDigi-Key Electronicsの公式な方針を必ずしも反映するものではありません。

著者について

Stephen Evanczuk

Stephen Evanczuk氏は、IoTを含むハードウェア、ソフトウェア、システム、アプリケーションなど幅広いトピックについて、20年以上にわたってエレクトロニクス業界および電子業界に関する記事を書いたり経験を積んできました。彼はニューロンネットワークで神経科学のPh.Dを受け、大規模に分散された安全システムとアルゴリズム加速法に関して航空宇宙産業に従事しました。現在、彼は技術や工学に関する記事を書いていないときに、認知と推薦システムへの深い学びの応用に取り組んでいます。

出版者について

Digi-Keyの北米担当編集者