MCUとMPUの違いって何?:Q&Aで学ぶマイコン講座(22)(1/3 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「MCUとMPUの違いって何?」です。
素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。
今回は、初級者から多く寄せられる質問です。
マイコン関連の書籍やWebサイトなどで「MCU」と「MPU」という言葉をよく見かけますが、この2つは何が違うのですか?どのように使い分ければよいのでしょうか?
どちらもCPU(Central Processing Unit)を搭載した演算処理を行う半導体デバイス(本記事では、総称してマイコンと呼びます)です。厳密に定義されているわけではありません。したがって、文献や人によって使われている意味が若干異なる場合があります。
一般的に、MCU(Micro Controller Unit)は汎用向けで、それよりも高機能・高性能向けがMPU(Micro Processor Unit)とされています。
表1に相違点の目安をまとめました。
項目 | MCU | MPU |
---|---|---|
演算ビット数 | 8〜32ビットが主流 | 最低でも32ビット、64ビットが主流 |
動作周波数 | 数メガから数百メガヘルツ | 数百メガから数ギガヘルツが主流 |
アーキテクチャ | パイプライン方式かランダム論理方式が主流(ただし、スーパースカラのものもある) | スーパースカラ方式が主流 |
メモリ管理 | 外付けメモリが可能なものもあるが、メインメモリは内蔵。キャッシュやMMCユニットを内蔵するものもある | 外付けメモリが主流。キャッシュやMMCユニットを内蔵するものもある。 |
命令セット | 基本的な算術演算、論理演算のみ | 基本的な算術演算、論理演算に加えDSP命令や浮動少数点命令を含む |
価格 | 安い | 高い |
具体例 | ARM Cortex-M (小面積/低電力のコントローラ用途向けとして開発された) |
ARM Cortex-A (高性能アプリケーション向けプロセッサというコンセプトで開発された) |
注)MCUとMPUの厳密な定義はありません。あくまで目安です |
MCUは、演算サイズが4ビット、8ビット、16ビット、32ビット幅で、MPUは32ビット以上が一般的です。演算速度は数百メガヘルツくらいまでがMCUで、それ以上がMPUです。フラッシュメモリやRAMを内蔵して、メモリ管理が容易なものがMCUで、外付けメモリを必要として、キャッシュ*1)や仮想メモリ*2)などを使って、高機能なメモリ管理を行うものがMPUです。内部のアーキテクチャが数段〜数十段のパイプラインのものがMCU(例外もありますが)で、スーパースカラなどの完全並列処理のものがMPUです。
一般的なアプリケーションにはMCUが使われますが、特に高速処理が求められるアプリケーションにはMPUが使われています。
*1)キャッシュ(Cache):容量が大きいが、低速のメモリ」を主メモリとし、それより高速メモリ(これをキャッシュと言う)を用意して、最近アクセスされた主メモリのデータをキャッシュに残しておき、次に同じ番地がアクセスされたときは、キャッシュをアクセスすることにより、データアクセスを高速に処理する手法
*2)仮想メモリ:メモリの物理アドレスとは別に仮想アドレスを割り当てて、メモリ空間を管理する方式。「容量が小さいが、高速のメモリ」を連結して一つの連続した空間として利用したり、主メモリの実際の容量よりも、見かけ上大きくなるように制御する手法
Copyright © ITmedia, Inc. All Rights Reserved.