STマイクロ技術者が語るMPU Q&Aハンドブックの初回(1)に、MCU(Micro Controller Unit)とMPU(Micro Processing Unit)の違いが判り易くまとめられています。ハンドブックは、MPU関連Q&Aへと連載が続いています。
このハンドブック(1)は、MPU開発者から見た、ハード/ソフトや開発環境が、MPUとMCUではどう違うかを解説しています。視点はMPUです。MPUとMCUの差を示すには十分ですが、MCUの特徴、その良さを示す記述は少なめです(MPU連載を読者に読んでもらうために当然ですが…)。
そこで、本ブログ主題のMCU側から(1)を読み、MCU製品開発ポイントと、最新MCU/MPU動向を示します。
MCUとMPUの根本差
ハンドブック(1)集約のMPU開発者がつまずき易い8つのポイントを再掲します。詳細は、(1)を参照ください。
- MPUと一緒に使う部品と選び方
- 回路設計時の重要ポイント
- 基板レイアウト作成時の重要ポイント
- 基板にあわせて必要なソフトウェアのカスタマイズ項目
- 初めてのボード開発での落とし穴と確認事項
- MCUとMPUのソフト開発の違い
- 知的財産を守るためのセキュリティ知識
- 開発製品のタイプ別課題と確認事項
これらつまずきの原因は、「MPUは、ユーザによる周辺ハードウェア追加、複数人によるソフトウェア開発が基本」だからです。MCUとMPUの根本的な違いがここです。
※周辺ハードウェアは、電源とクロックを除くMCU/MPU単独動作必須ハードウェア。例えば、ROM/RAMなど。
※MCU基板レイアウト、ソフトウェア重要ポイントは、コチラの投稿参照。
MCUとMPUのアプリ対応差
つまり、MPUは、例えば高性能Cortex-Aコアプロセサへ、外付けRAMや必要なDSP/GPU/NPUを追加し、複数ソフトウェア開発を容易にするRTOSアプリ開発に使います。アプリ要求性能に対して、追加ハード選択肢も多いため、柔軟性という意味では広範囲、かつ、大規模アプリの製品開発が容易です。
一方、MCUは、RAMやDSP/NPUなどアプリ開発に必要となる周辺ハードウェアが、例えばCortex-M33などのコアプロセサと一体でパッケージ済みです。一体パッケージのため、MPU比、アプリ柔軟性や対応製品範囲は狭くなります。
「MCUは、特定アプリに必要十分なROM/RAMや周辺ハードウェアを、ベンダがパッケージ化しユーザへ提供」するため、小型・低価格な製品化が可能です。MCUはRTOS利用もできますが、小規模ベアメタルソフトウェア開発が基本です。
MCUのポイントはMPU比、シンプルです。開発アプリに適すMCUを選択することです。
MCUとMPUの最新動向
MCU/MPUに限らずPCもネット側も全ての制御系は、AI半導体と、MCU/MPU担当のエッジAIアプリ実現に向けて突進中です。
ルネサスは、低消費電力と柔軟性を備えたAIアクセラレータ:DRP-AI3(Dynamically Reconfigurable Processor for AI)をMPU向けに開発し、従来比、約17倍のAI処理や電力効率(10TOPS/W)を実現しました。この技術は、MCUへも展開されるでしょう。
電力効率の良いCortexM0+/M4、セキュリティ強化Cortex-M33に加え、MCUは、DSPやAI/ML性能が高いARM Heliumテクノロジ搭載Cortex-M85搭載のRA8ファミリ量産出荷が始まりました。
Microchipは、従来外付けだったPLDやFPGAのカスタムロジックを、8ビットMCUに内蔵しました。これにより、製品の部品削減・小型・低消費電力化が可能になります。8ビットが気になりますが、低価格を目指したのだと思います。
※PSoC/PRoCマイコンが上記Microchipに近い特徴を持つ。
Summary:MCU開発ポイントと最新技術動向
MCUは、開発アプリケーションに応じたROM/RAMや周辺ハードウェアを、MCUベンダがパッケージ化しユーザへ提供します。このため、MPU比、小型・低価格な製品開発ができます。半面、アプリケーション柔軟性や対応範囲は、狭くなります。
従って、MCU開発は、開発アプリケーションに適すMCU選択がポイントです。
MCU/MPUは、AI処理を高速化するNPU内蔵、従来外付けカスタムロジック内蔵、Cortex-M85コア採用など、更なる高性能・小型・低価格トレンドへ向けて進化中です。
最新MCU/MPUデバイス採用により、コストパフォーマンスの優れた製品開発が期待できます。
Afterword:ディアルコアのサブコアは通信処理専用
ディアルコアMCU/MPUのサブコアは、Cortex-M4/M0+利用の通信処理専用例が多いです。これは、いつ発生するか不明、しかも、割込み優先度も高い通信処理負荷を、アプリメイン処理と分離するためです。
DSPやGPUと同様、サブコアは、周辺ハードウェアの一種と捉えれば理解し易いでしょう。
ネットや外部デバイスとMCU/MPU間通信は必須です。通信処理専用サブコアでメインコアと分離しておけば、開発アプリはそのままに、様々な通信プロトコルへの対応性が高まるメリットがあります。