STAR-MC1¶
はじめに¶
STAR-MC1は、Arm Chinaが設計したArmv8-M MainlineベースのCPU IPです。Cortex-M33も同じアーキテクチャプロファイルを採用しています。そのためArmv8-Mのソフトウェアモデルは共通しますが、Cortex-M33向けファームウェアを変更せずに再利用できるとは限りません。オプションのアーキテクチャ拡張、コア構成、SoCの周辺機能、起動・リンカ設定、SDKのサポート状況は異なる場合があります。Cortex-M33向けソフトウェアは移植の出発点とし、対象デバイスとSDKで検証してください。
STAR-MC1を採用するSF32デバイスでは、SiFliの資料でアプリケーションCPUをArm Cortex-M33、Cortex-M33 STAR-MC1、または単にSTAR-MC1と表記することがあります。表記は文脈や説明の詳しさによって異なりますが、それだけでオプション機能やSoCの具体的な構成が分かるわけではありません。部品選定では対象デバイスの資料を確認してください。
このページは、Arm Cortex-Mファミリーの基礎を知り、ソフトウェア開発、性能評価、部品選定でSTAR-MC1の位置づけを理解したい開発者向けです。従来の知識をそのまま使える部分と、SoCの実装に応じて確認が必要な部分を整理し、STAR-MC1をCortex-M7の単純な代替と見なせない理由を説明します。
ここでいう互換性はArmv8-Mのアーキテクチャレベルのソフトウェアモデルを共有することであり、ファームウェアイメージをそのまま置き換えられるという意味ではありません。ファームウェアを再利用する前に、対象SoCとSDKに合わせて、コアの機能構成、コンパイラーオプション、起動コード、リンカのメモリー配置、割り込み割り当て、周辺ドライバー、セキュリティ設定を確認してください。
開発者にとっての位置づけ¶
STAR-MC1を「Cortex-M33とCortex-M7の中間に位置する固定的なプロセッサー」と捉えるのは適切ではありません。STAR-MC1は、設定可能なCortex-M33互換のArmv8-M Mainline CPU IPです。最終的なSoCが対応機能を実装していれば、キャッシュ、密結合メモリー(TCM)、DSP命令、コプロセッサーインターフェース、TrustZoneなどのメモリーシステム機能やアクセラレーション機能を、使い慣れたMCUソフトウェアモデルと組み合わせられる点が特長です。
| 使ったことのあるコア | STAR-MC1でも使える知識 | 実用上の違い | 前提にしてはいけないこと |
|---|---|---|---|
| Cortex-M4 | ベアメタルやRTOSでの開発、割り込み、DMA、周辺ドライバーの開発。 | STAR-MC1は新しいArmv8-Mソフトウェアモデルを採用し、メモリーや処理の高速化に関する機能を拡張できます。 | Cortex-M4のバイナリ、Armv7E-Mの前提、デバッグやセキュリティの機能をそのまま使えること。 |
| Cortex-M33 | Armv8-Mのプログラミング、例外、ツールチェーンのモデル。 | SoCの実装によっては、Flash/PSRAMを多用する処理、UI、オーディオ、ネットワーク通信に対応するメモリーシステムの余力を確保しやすくなります。 | STAR-MC1ベースのすべての部品でキャッシュ、TCM、DSP、FPU、CDE、TrustZoneが有効化されていること。 |
| Cortex-M7 | メモリー配置、キャッシュ挙動、DMAコヒーレンシ、リアルタイムレイテンシを管理する必要性。 | STAR-MC1はMCUクラスのArmv8-M基盤を維持し、省電力を重視した柔軟なIoT設計を対象とします。 | Cortex-M7の代替として差し替え可能である、または同じスループット、メモリーシステム、ソフトウェアエコシステムを持つこと。 |
SF32プロジェクトでは、STAR-MC1というラベルだけでなく、文書化されたメモリー、ペリフェラル、SDKサポートに基づいてデバイスを選定してください。公開されているSTAR-MC1の資料はArmv8-Mを説明し、キャッシュ、TCM、DSP、コプロセッサーインターフェース、TrustZoneを実装可能な機能として挙げています。個々の製品で機能が実装・有効化されているかは、SoCのドキュメントで確認してください。
STAR-MC1が重要な理由¶
従来のCortex-M33 MCUは、安全で低消費電力な組み込み制御には優れていますが、現代の接続製品はしばしば制御ロジック以上のものを必要とします。ウェアラブル、スマートディスプレイ、Bluetoothオーディオ製品、エッジAIデバイスは、応答性の高いユーザーインターフェース、より大きな外部メモリー、信号処理、そしてグラフィックスやオーディオデータの頻繁な移動も必要とする場合があります。
STAR-MC1では、SoCに実装されたオプションのキャッシュ、TCM、カスタム命令をソフトウェアが適切に活用することで、こうした処理に対応できます。MCUの開発モデルを維持しながら、メモリー待ちを減らしたり、特定の演算を高速化したりできます。ただし、性能とエネルギー消費の改善は、実際のデバイスで代表的な負荷を使って確認する必要があります。コア名だけで改善が保証されるわけではありません。
Cortex-Mファミリーの比較¶
以下の表は、STAR-MC1が一般的なCortex-Mプロセッサーの中でどこに位置するかをまとめたものです。正確な能力は最終的なSoC実装に依存しますが、この位置づけは製品向けのアーキテクチャを選ぶ際に有用です。
表を簡潔にするため、対応するCortex-MプロセッサーにはCM3、CM4、CM33、CM55、CM7という表記を使用しています。
| 機能 | CM3 | CM4 | CM33 | STAR-MC1 | CM55 | CM7 |
|---|---|---|---|---|---|---|
| Armアーキテクチャ | Armv7-M | Armv7E-M | Armv8-M Mainline | Armv8-M Mainline | Armv8.1-M Mainline | Armv7E-M |
| パイプライン | 3段、インオーダー | 3段、インオーダー | 3段、インオーダー | インオーダー。公開TRMに段数の記載なし | 4段、インオーダー。Helium使用時は5段 | 6段、スーパースカラー |
| 主要なシステムバスインターフェース | 3 × AMBA AHB-Lite(Harvard) | 3 × AMBA AHB-Lite(Harvard) | 2 × AMBA 5 AHB5インターフェース: C-AHB + S-AHB | 2 × AMBA 5 AHB5インターフェース: C-AHB + S-AHB | 64ビットAMBA 5 AXI5、32ビットAHBペリフェラルインターフェース、64ビットTCM用AHBスレーブインターフェース | 64ビットAMBA 4 AXI、32ビットAHBペリフェラルインターフェース、32ビットTCM用AHBスレーブインターフェース |
| TrustZoneサポート | なし | なし | オプション、SoC依存 | オプション、SoC依存 | オプション、SoC依存 | なし |
| DSP命令 | 専用DSP拡張なし | ネイティブDSP拡張 | オプションのDSP拡張 | オプションのDSP拡張 | ネイティブDSP拡張、オプションでHelium(MVE) | ネイティブDSP拡張 |
| Arm Helium(MVE) | 非対応 | 非対応 | 非対応 | 非対応 | オプション、整数または浮動小数点MVE、設定依存 | 非対応 |
| 浮動小数点ユニット | ネイティブIP機能なし | オプションの単精度 | オプションの単精度 | オプションの単精度 | スカラーFP16/FP32/FP64はオプション。ベクトルFP16/FP32もオプション | オプションの単精度/倍精度 |
| I-cache / D-cache | プロセッサーIPには含まれず、SoCレベルで追加可能 | プロセッサーIPには含まれず、SoCレベルで追加可能 | プロセッサーIPには含まれず、SoCレベルで追加可能 | プロセッサーIPではオプション。搭載有無と構成は実装に依存 | プロセッサーIPではオプション。搭載有無と構成は実装に依存 | プロセッサーIPではオプション。搭載有無と構成は実装に依存 |
| Armカスタム命令 / CDE | ネイティブIP機能なし | ネイティブIP機能なし | ArmがCDE命令の符号化を定義し、カスタム演算とデータパスはSoCが定義。整数CDEはオプション。浮動小数点CDEはFPUと構成に依存 | STAR-MC1 TRMにはGPR CDEとFPCDEモジュールの記載あり。実装と製品での利用可否はSoC構成に依存 | ArmがCDE命令の符号化を定義し、カスタム演算とデータパスはSoCが定義。r1以降でオプション、r0では利用不可 | ネイティブIP機能なし |
| ソフトウェア互換性 | ベースライン | CM3互換 | Armv8-Mソフトウェアモデル、Armv8-Mツールが必要 | CM33互換 | CM33互換、HeliumはArmv8.1-Mツールチェーンのサポートが必要 | CM4互換(同じArmv7E-Mファミリー) |
| CoreMark/MHzの参考値* | 3.34 | 3.42 | 4.02 | 4.02† | 4.20 | 5.01 |
| 相対電力レベル(定性)‡ | 非常に低い | 低い | 低い | 低い | 中程度 | 高い |
| 演算プロファイル(定性的) | 低消費電力なスカラー制御 | リアルタイムのスカラーDSP | セキュアで設定可能なスカラーMCU | CM33互換のスカラーCPU。SoCに実装されたキャッシュ、TCM、カスタム命令によりシステムレベルの性能を改善可能 | Helium有効時のベクトルDSP/ML | 高いスカラースループットとメモリー帯域幅 |
| 想定される代表的なアプリケーション | 低複雑度の制御と単純なセンサーノード | モーター制御、オーディオDSP、センサー処理 | セキュアなネットワーク接続機器とIoT制御 | 豊富なUIを備えたウェアラブル、Bluetoothオーディオ、Flash/PSRAMベースのIoT製品 | 機械学習を用いたセンサーフュージョン、音声/オーディオ、ビジョン、DSP | 応答性の高いHMI、高スループット制御、ネットワーキング |
* これらの参考値はArmの2020年版Cortex-M比較表に基づきます。現在のすべての構成に共通するスコアや、完成品SoCの直接的な性能順位ではありません。コンパイラー、メモリーシステム、キャッシュ設定、ベンチマーク構成によって結果は変わります。
† STAR-MC1はCM33互換であるため、ここではCM33の参考値を使用しています。これは比較のための基準値であり、Armが公表した、あるいは実測されたSTAR-MC1の結果ではありません。
‡ これはアーキテクチャ上の位置づけを示すガイドであり、実測されたシリコンデータではありません。実際の電力は、プロセス技術、電圧、周波数、メモリーアーキテクチャ、有効化された機能、ペリフェラル、ファームウェアのデューティサイクル、最終的なSoC実装に依存します。
パイプラインとバスの行は、各IPの主要な実行パイプラインとシステムメモリーインターフェースをまとめたものです。CM33とSTAR-MC1はC-AHB/S-AHBのバス構成を共有しています。キャッシュやその他のオプションのメモリー機能はこのバスインターフェースとは別であり、利用可否はSoCの構成と実装に依存します。これらは、完成したすべてのSoCで有効化されているインターフェースを示すものではありません。デバッグ、トレース、コプロセッサー、その他のオプションのポートは記載していません。
プロセッサーIPの参考資料: Arm CM3データシート、CM4ドキュメント、CM33テクニカルリファレンスマニュアル、CM55データシート、CM7データシート、およびSTAR-MC1テクニカルリファレンスマニュアル。
アーキテクチャ上の拡張¶
STAR-MC1はCortex-M33を置き換えるのではなく、その上に構築されています。最も重要な追加要素は、コアがメモリー待ちに費やす時間を減らし、有用な処理の実行により多くの時間を割けるようにする、実装レベルの改良です。
命令キャッシュとデータキャッシュ¶
命令キャッシュ(I-cache)とデータキャッシュ(D-cache)の利用可否と設定は、SoCの実装に依存します。SoCでこれらのキャッシュが実装・有効化されている場合、外部Flashからのコード実行、PSRAMへのアクセス、大規模なユーザーインターフェースやミドルウェアスタックを扱うシステムで特に有効です。
主な利点は次のとおりです。
- 非SRAMメモリーからの命令フェッチの高速化。
- 平均データアクセスレイテンシの低減。
- グラフィックス、オーディオ、プロトコルスタック、UIフレームワークの性能向上。
- 同じコードやデータが再利用される際のメモリーバスへの負荷軽減。
ハードウェアが整合性を保証しないキャッシュ可能なバッファーをDMA、ディスプレイコントローラー、オーディオインターフェースなどと共有する場合、ドライバーはSDKまたはRTOSのキャッシュ管理規則に従う必要があります。周辺機器がCPUの書き込んだデータを読む前に、変更済みのキャッシュ内容をメモリーへ書き戻します。DMAが書き込む前には受信バッファーを準備し、転送完了後、CPUが読む前に古いキャッシュラインを無効化します。DMAがバッファーを使用している間、CPUはアクセスしてはいけません。バッファーはキャッシュライン単位で確保し、無関係なデータとラインを共有せず、プラットフォームが要求する完了確認とメモリーバリアも実行してください。非キャッシュ領域やハードウェアが整合性を保証する領域でも、それぞれの同期規則は必要です。所有権の引き渡しとダーティラインの問題は、PSRAMと組み込みシステムで使われる他のメモリーの比較で説明しています。
Armv8-Mカスタムデータパス拡張¶
IPレベルでは、ArmがCDE命令の符号化を定義し、SoC設計者がカスタム演算とデータパスを定義します。CM33はオプションで整数CDEに対応し、浮動小数点CDEはFPUと構成に依存します。STAR-MC1のTRMにはGPR CDEとFPCDEモジュールが記載されていますが、このIPレベルの記述だけでは、特定のSF32デバイスやSDKでCDEを利用できるとは限りません。SiFliのSiFli-SDK v2.5.1リリースノートには、SF32LB57xでCDEが誤って有効化されていた問題の修正が記載されています。CDEを前提とする前に、対象デバイスとSDKでのサポートを確認してください。CM55のCDEはr1以降でオプション、r0では非対応です。CP0~CP7はコプロセッサーまたはCDEに割り当てる符号化空間であり、8個のカスタム命令や追加アクセラレーターを意味しません。コアのリビジョン、実装モジュール、コンパイラーとSDKの対応も確認してください。詳細はCM33データシート、CM55のCDEリビジョン情報、およびSTAR-MC1 TRMのB7章・B8章を参照してください。
これは次のようなワークロードに有用です。
- デジタル信号処理。
- 暗号処理。
- コンピュータービジョンの基本処理。
- 機械学習の計算カーネル。
- センサーフュージョンの計算。
CDEを使えば、どのアプリケーションも自動的に高速化するわけではありません。対応するカスタム命令を生成できるコンパイラー、ライブラリ、またはベンダーのSDKコンポーネントが必要です。SoCとソフトウェアの両方が対応していれば、別のアプリケーションプロセッサーへ処理を移さずに、アプリケーション固有の演算を高速化できます。
メモリーシステムの最適化¶
多くの現代のMCUワークロードは、CPU周波数だけでなく、メモリーのレイテンシと帯域幅によっても制限されます。したがって、STAR-MC1のメモリーシステム設計と、SoCが実装・有効化するキャッシュ機能は、アプリケーションが内部SRAM、パッケージ内Flash、PSRAM、ディスプレイバッファー、ペリフェラルDMAを組み合わせる可能性のあるSF32クラスのデバイスにとって重要です。
最も大きな効果は通常、次のような場合に現れます。
- コードが密結合SRAMではなくFlashまたは外部メモリーから実行される場合。
- UIフレームワークが画像、フォント、レイアウトデータに繰り返しアクセスする場合。
- オーディオ、Bluetooth、グラフィックス、アプリケーションのタスクが同時に実行される場合。
- ワーキングセットがキャッシュにうまく収まる場合。
すでに高速なSRAMから実行されている純粋にCPU律速のループでは、改善幅がより小さくなる場合があります。
性能特性¶
STAR-MC1は、CoreMark/MHzやDMIPS/MHzのような小規模な合成CPUベンチマーク指標を自動的に改善するものとして説明すべきではありません。これらのベンチマークは主にコンパクトな整数ワークロードを測定するものであり、高速なローカルメモリーから実行できるほど小さいことがよくあります。その状況では、命令キャッシュとデータキャッシュは、標準的なCortex-M33クラスの実装に対してほとんど、あるいはまったく目に見える改善をもたらさない場合があります。
STAR-MC1は、構成可能なメモリーサブシステムと、特定の処理を高速化するオプションの機能を備えたCortex-M33互換コアです。メモリーアクセス、外部FlashやPSRAMのレイテンシ、画像などのグラフィックスリソース、プロトコルスタック、大きなコードやデータへの繰り返しアクセスが性能のボトルネックになる場合、これらの機能が役立ちます。効果は、実装された機能とアプリケーションによる活用方法に依存します。
| ワークロードの種類 | 期待されるSTAR-MC1の効果 | 理由 |
|---|---|---|
| 小規模なCoreMark/DMIPS形式のループ | 通常は限定的 | ワーキングセットが小さく、すでに高速メモリーに収まっている場合がある。 |
| FlashまたはPSRAMから実行されるコード | 改善が見込める場合が多い | SoCでI-cacheが実装・有効化されていれば、命令フェッチのストールを削減できる。 |
| データを多用するUI、グラフィックス、ミドルウェア | 改善が見込める場合が多い | SoCでD-cacheが実装・有効化されていれば、繰り返しのデータアクセスレイテンシを削減できる。 |
| DMAを多用するペリフェラルワークロード | ソフトウェア設計に依存 | ハードウェアが整合性を保証しないキャッシュ可能なバッファーにはキャッシュ管理が必要。どのバッファーでも所有権の管理と同期は必要。 |
| CDEを利用する演算処理 | 改善の可能性あり | カスタム命令が選択された演算を高速化できる。 |
SF32開発者にとっての意味¶
SF32のファームウェア開発では、STAR-MC1をCortex-M33互換のアプリケーションプロセッサーとして捉えます。アプリケーションのコード、データ、タイミング要件に照らして、実装されたメモリーや高速化の機能を評価してください。
開発時の要点は次のとおりです。
- Cortex-M33向けファームウェアはソースコード移植の出発点として扱い、そのまま置き換えられるイメージとは考えないでください。再利用前に対象デバイスの構成とSDKの対応状況を確認してください。
- RTOS、割り込み、権限、TrustZone、デバッグの概念は、Cortex-M開発者にとって引き続き馴染みのあるものです。
- 性能が重要なアプリケーションでは、処理の要となるコードとデータの配置を慎重に決め、SDKのキャッシュやメモリー管理APIを使用してください。
- ハードウェアが整合性を保証しないキャッシュ可能なDMAバッファーには、明示的なキャッシュ管理が必要です。すべてのDMAバッファーで、所有権の管理と同期を適切に行ってください。
- グラフィックス、オーディオ、AI、接続性のワークロードは、ソフトウェアスタックがSoCのハードウェアアクセラレーターとメモリー階層を効果的に利用する場合に最も恩恵を受けます。
このコアは、すべてのCortex-M7のユースケースを置き換えることを意図したものではありません。アプリケーションがより高い電力でも最大限のシングルコアスループットを必要とする場合は、Cortex-M7クラスのデバイスが依然として適切な場合があります。しかし、バッテリー駆動の通信機能を備えた製品にとって、STAR-MC1は互換性、性能、エネルギー効率の有用なバランスを提供します。
適した用途¶
MCUの消費電力や実装上の制約を守りつつ、メモリーアクセスや特定の演算を高速化したい製品では、STAR-MC1搭載デバイスが候補になります。小規模なCoreMark/DMIPSのスコアよりもメモリーレイテンシが重要な用途では、特に評価する価値があります。従来のCortex-M33より常に優れると考えるのではなく、実際のSoCの機能と処理負荷を測定した結果に基づいて選定してください。
代表的な例には次のものがあります。
- スマートウォッチとフィットネストラッカー。
- Bluetoothオーディオデバイス。
- ウェアラブルの医療および健康モニタリング製品。
- スマートディスプレイとコンパクトなHMIシステム。
- エッジAIセンサーデバイス。
- LVGLやその他の組み込みUIフレームワークを使用する製品。
- 大容量のFlashまたはPSRAMメモリーから実行されるデバイス。
要点のまとめ¶
- STAR-MC1はCortex-M33互換であるため、馴染みのあるArmv8-M組み込みソフトウェアモデルを維持します。
- SoCが命令キャッシュとデータキャッシュを有効にしている場合、特にコードとデータが高速な内部SRAMの外にある場合、実際のワークロードの性能を改善できます。
- CDEは、SoCとソフトウェアスタックがサポートしている場合、カスタム命令によるアクセラレーションへの道筋を提供します。
- STAR-MC1は、CM33互換のソフトウェアモデルと、構成可能なメモリー・アクセラレーション機能を組み合わせます。コア名だけで判断せず、製品としてのSoCと実際の処理負荷で比較してください。
- STAR-MC1を採用するSF32デバイスでは、コアとSoCに実装された機能を組み合わせることで、MCU型の開発モデルを保ちながら、より高度なグラフィックス、オーディオ、AIoT、ウェアラブルアプリケーションを実現できる場合があります。
関連項目: STAR-MC1がより広範なSF32LB5xチップラインナップにどのように適合するかについては、SF32ファミリー概要を参照してください。
一次資料: Arm China STAR-MC1テクニカルリファレンスマニュアル。
最終更新: