コンテンツにスキップ

MCU(マイコン)とは

MCU(Micro-Controller Unit、マイコン)とは、データ入出力、データ演算、プログラム記憶(ROM)、データ記憶(RAM)という4つの基本計算要素を単一のチップへ統合したものです1。 演算し、手順を覚え、途中経過を保ち、外とやりとりするという、システムとして動くための最小の組を1チップに持つので、単体で動きます。内蔵の記憶にはプログラムを残すフラッシュと、変数を置く高速なSRAMがよく使われ、テキサス・インスツルメンツはコードをどちらから実行するかで速さと消費電力が変わるとしています。

MPUは入出力と演算を持ち、MCUは記憶まで1チップに入れる

Section titled “MPUは入出力と演算を持ち、MCUは記憶まで1チップに入れる”
チップの境界
MPU中心の構成MPU入出力演算ROMRAM3チップを基板で配線MCU入出力演算ROMRAM1チップで完結
MPU中心の構成では、入出力と演算を持つMPUに、別のチップのROMとRAMを基板の配線でつなぎます。MCUは4要素を1つのチップに収め、単体で動きます。

大きな計算システムでは、4要素のうち入出力と演算をマイクロプロセッサ(MPU)にまとめ、ROMとRAMは別のデバイスとして用意します1。1つのシステムを組むには複数のチップと基板の配線が要ります。MCUは、この構成を1つのチップへ畳み込みます。

マイコンは記憶した命令を順に読み出し、入力に応じて周辺回路を動かす

Section titled “マイコンは記憶した命令を順に読み出し、入力に応じて周辺回路を動かす”

マイコンは、機器の動作の要となるハードウェアの制御を担います。ボタンやキーからの入力を受け取り、あらかじめ設定されたプログラムにもとづいてモータやLCDなどの周辺回路を制御します2。プログラムは用意された命令の組み合わせとしてメモリに記憶されており、CPUはその命令を順次読み出して実行します。CPU内部のレジスタは一時的な情報を置く場所で、演算する値や演算結果を保存する汎用レジスタと、演算フラグなどに使うフラグレジスタがあります。

命令を読んで周辺を動かす
MCUROMプログラム順に読み出すCPUレジスタRAM(変数)入出力ボタンモータLCD
CPUはROMに記憶された命令を順に読み出して実行し、途中の値はレジスタとRAMに置きます。ボタンからの入力を入出力で受け取り、モータやLCDへ出力します。

スイッチが押されてから一定時間後にLEDを点滅させる場合、マイコンを使っていれば、設計済みの回路はそのままで、プログラムを変えるだけで実現できます2。

プログラムは電源を切っても残るフラッシュに、変数は速いSRAMに置く

Section titled “プログラムは電源を切っても残るフラッシュに、変数は速いSRAMに置く”

4要素のうち2つが記憶で、求めるものが異なります。プログラムは、電源を切っても残る必要があります。次に電源を入れたとき、また同じ手順で起動することが機器として使える条件なので、不揮発の記憶(ROM)が要ります。ルネサス エレクトロニクスのマイコンには、ROMとしてフラッシュメモリを搭載するものが多くあります。フラッシュは電源を切っても中身が消えないROMでありながら、内容を書き換えられます。

計算の途中経過は、動いている間だけ保てば足ります。読み書きは自由で、電源を切ると内容が消えるRAMは2、主にプログラムの変数を保存するのに使われます。シングルチップマイコンの内蔵RAMにはSRAMがよく用いられます。SRAMは高速にアクセスできますが、内部構造が複雑なので高密度に実装しにくく、大容量のメモリには向きません。DRAMは、高速な論理回路と1つのウェハー上に作るのが難しいため、一般的なシングルチップマイコンには内蔵されず、ほとんどが周辺回路として接続されます。

電源を切ったとき
電源フラッシュSRAM入切入プログラムが残る変数消える最初から時間
電源を切ってもフラッシュのプログラムは残り、次に電源を入れると同じ手順で起動します。SRAMの変数は電源を切ると消えるので、動いている間の途中経過だけを置きます。

速さと消費電力は、コードをどのメモリから実行するかで変わる

Section titled “速さと消費電力は、コードをどのメモリから実行するかで変わる”

多くのMCUは電圧に応じて性能を変え3、電圧を下げるとコアは低い周波数で動きます。同じ量の仕事のために長く起きている必要があると、かえってエネルギー消費が増えることがあります。

テキサス・インスツルメンツは、一般的なMCUの消費電力のかなりの部分が、フラッシュのような不揮発メモリからのコード実行に由来するとしています。同社は、MSP432P401xxではSRAMがCPUのクロック周波数と同じ速さで動くので、SRAMからのコード実行はフラッシュからの実行より性能とスループットで有利になるとしています。同社の説明に沿えば、容量の小さいSRAMと書き換えられるフラッシュをどう使い分けるかが、MCUの速さと電力を左右します。

組み込む先では、性能より収まることと安さで選ばれる

Section titled “組み込む先では、性能より収まることと安さで選ばれる”

MCUが向かうのは、家電の制御、自動車の各部、産業機器のように、機器の中で特定の役目を果たし続ける場所です。こうした場所では、汎用の計算能力より、基板が確保できる面積、部品の点数、価格が優先されます。外部にメモリを増設する余地は乏しく、部品が増えれば組み立ての手間も故障の箇所も増えます。1チップで完結することが、そのまま採用の決め手になり、ここがマイクロプロセッサとの性格の違いです。

統合をさらに進めた先がシステムLSIです。システムLSIは、複数の個別ICの機能とIPコアを1チップへ統合し、完全なシステムとして機能させるLSIです4。MCUの4要素は、その考え方の最小形にあたります。

MCUとは何ですか?

データ入出力、データ演算、プログラム記憶(ROM)、データ記憶(RAM)という4つの基本計算要素を、単一のチップへ統合したものです。1チップで単体で動きます。

MPUと何が違いますか?

何を同居させるかです。大きな計算システムでは入出力と演算をMPUにまとめ、ROMとRAMは別のデバイスとして用意します。MCUは4要素すべてを同じチップへ入れて、単体で動く形にします。

なぜ記憶まで入れるのですか?

組み込む先の機器では、外部にメモリを搭載する余地が乏しいためです。基板の面積、部品点数、価格のどれも削りたい側にあり、1チップで完結すれば周辺の部品ごと省けます。

ROMとRAMを分けているのはなぜですか?

保持すべき期間と求める速さが異なるためです。プログラムは電源を切っても残るフラッシュなどのROMに置き、変数は電源を切ると消えるかわりに高速に読み書きできるSRAMに置きます。

システムLSIとは違いますか?

統合の範囲です。システムLSIは、複数の個別ICの機能とIPコアを1チップへ統合して完全なシステムとして機能させるLSIで、MCUの4要素より広い範囲を1チップへ載せます。

どこで使われますか?

家電、自動車の各部、産業機器のように、機器へ組み込まれて特定の役目を果たし続ける制御です。ボタンやキーの入力を受け、プログラムにもとづいてモータやLCDなどを動かします。

4件を表示
  1. 1
  2. 2
  3. 3
  4. 4