MPU/MCU/MMU の違い
table:ざっくり分類
プロセッサ Processor 用途
MCU Micro Controller Unit マイコン制御(組込み)
MPU Micro Processor Unit ≒ CPU
CPU Central Processor Unit 汎用(PCやスマートフォンなど) MCU / Micro Controller Unit
MCUはMicro Controller Unitの略で、マイクロプロセッサをベースとした制御装置を意味します。しかし、一般的にMCUというと、制御装置の中に組み込まれるマイクロプロセッサベースの制御ICそのものを指します。 MCUはマイクロプロセッサベースのコントローラICで、マイクロプロセッサを搭載し、制御に必要なI/Oとプログラムやデータを格納するメモリが1つのICに搭載されているのが普通です。MCUの中には制御装置として必要な回路がすべて搭載されていますから、ワンチップで1つのシステムとして機能します。
こういったICのことをSoC(System-on-Chip)と呼びます。従って、MCUはSoCの一種になります。一般的には、マイクロプロセッサベースの制御用SoCで、ASSPとして作られているものをMCUと呼んでいます。 MCUの構成要素
プロセッサ
メモリ
I/O
ソフトウェア
MPU / Micro Processor Unit
さてさて一般的に流通しているCPU/MPUですけど、電源が投入されると特定のメモリアドレスを見に行きます。
あるものは、そこのアドレスから実行するモノもあったり、特定アドレスに記載されたアドレスから実行を開始します。
いわゆるリセット状態って奴ですね。
実際は通電してから、内部的に数ミリ秒時間をおいて上記リセットがされるのですけどね。
その特定アドレスとかコンピュータが実行を開始するアドレス以降にはプログラム(機械語って言うヤツ)が無ければいけません。
というわけで、起動開始アドレスには電気を切っても消えないROMってメモリが割り付けられています。
中にはバンク切り替えなんて小洒落た事をしているものもありますが、基本的にROMです。
そこに起動時のプログラムが記述されているわけで。。
PCだったらBIOSなんてものが鎮座していらっしゃるわけです。 他のコンピュータもPCのBIOS相当なものが書かれているROMが入っております。
BIOSが起動してからOSが立ち上がるまでは、前回ざっくりと書いた通りです。
MMU
MMUは実メモリと仮想メモリの仲立ちをすると書きました。 という事は、実メモリ上どこが空いていてどこが使っているかを管理しているって事なんです。
実際に管理しているのはOSのメモリ管理部なのですが、空いている実メモリを仮想メモリとして連続した領域としてCPUに見せているのはMMUが行っているわけです。
すると虫食い状態の実メモリであってもプログラム(タスク)がメモリにローディングされる時には、必要メモリ分連続した領域が用意されている状態になります。
プログラムが終了する時は、そのプログラム(タスク)が使用していたメモリを全て未使用な状態にして、OSのメモリ管理部で空き状態の実メモリがプールされるわけです。
table:アドレス空間
I/O
http://image.itmedia.co.jp/edn/articles/1207/23/mm120723_mcu_fig05.jpg
システムI/O
汎用タイマー回路
高度なタイマー
簡単なシリアルI/F
制御I/O
GPIO(General Purpose I/O)回路 PWM(Pulse Width Modulation) ADC(Analog to Digital Converter) DAC(Digital to Analog Converter) 通信I/O
USBスレーブ回路、USBホスト回路
CAN(Control Area Network) メモリ
ROM
RAM
DMAC : I/Oとメモリの間のデータ転送を専門に行う MCUのソフトウェア
http://image.itmedia.co.jp/edn/articles/1207/23/mm120723_mcu_fig06.jpg
Referenece