「マイコン入門」では、組み込みシステムの核となるマイコンの基礎知識を解説しています。

最初にマイコンの基本構成や動作、周辺回路について学び、その後は実際にマイコンを動かすことにチャレンジします!

ハードウェアを制御する、電子機器の頭脳

今日、私たちの身の回りにある電子機器の多くには、マイコンが用いられています。携帯電話やテレビはもちろん、冷蔵庫や洗濯機、スイッチを押すとLEDが点滅するような子供向けおもちゃにもマイコンが用いられています。では、いったいマイコンは、それらの機器の内部で何をしているのでしょうか。

マイコンはそれらの機器の動作の要となる、ハードウェアの制御を行っています。例えば、ボタンやキーからの入力を受け取り、あらかじめ設定されたプログラムにもとづいてモータやLCDなどの周辺回路を制御しています。

マイコンがどのように構成されているかを見てみましょう。(図1)

マイコンはCPUとメモリ、周辺機能などで構成されています。私たち人間に例えると、CPUが思考、メモリが記憶、周辺機能が視覚などの感覚と手足を動かす神経とイメージ出来るのではないでしょうか。

図1:マイコンの構成要素

図1 マイコンの構成要素

CPUが思考に対応するといっても、人間のように意識をもって自発的に考えることはありません。あらかじめ用意された命令の組み合わせ(プログラム)がメモリに記憶されており、その命令を順次読み出して実行します。CPUが実行する命令は、「歩く」や「話す」などといった高度なものではありません。メモリのある場所から「データを呼び出す」や「書き込む」、あるいは、足し算や掛け算、論理演算を行うという単純な命令を実行するだけです。そのような単純な命令を組み合わせることによって、複雑な機能を実現します。

「思考する」-CPU

CPUの役割をその構成から見てみましょう。(図2)

◇プログラムカウンタ

プログラムカウンタ(PC)は、CPUがメモリのどの位置から命令を呼び出すかを示す番地(メモリー内の位置情報で住所のようなもの)が保存されているレジスタです。通常、アドレス0000番地の命令を実行すると、自動的に値が1つ増加して0001番地になるように、1つの命令が終了すると、1つ繰り上がって次の命令の入っている番地を示します。プログラムの実行する流れを決めていると言えるでしょう。

 

◇命令デコード回路

命令デコード回路では、メモリから読み出した命令を解読しています。解読結果にもとづいて演算回路が動きます。具体的には、「デジタル回路入門②」で学んだデコーダ回路の複雑なもので、符号化された命令を復号してもとの命令を取り出しています。

図2 CPUの役割

図2 CPUの役割

◇演算回路

演算回路は、ALU(Arithmetic and Logic Unit)とも呼ばれ、名前のとおり演算する回路です。足し算や掛け算を始めとする算術演算や、論理積や論理和、ビットシフトなどの論理演算を行います。演算の制御は、命令デコード回路から行われます。一般的に演算回路は、複雑な組み合わせ回路で構成されています。

 

◇CPU内部レジスタ

CPU内部レジスタは、一時的な情報を保存する場所です。演算する値や演算結果を保存する汎用レジスタや、演算フラグなどに用いるフラグレジスタなどの特殊なレジスタが存在します。つまり、演算回路が演算を行う場合、メモリの値を直接的に演算するわけではなく、メモリ上のデータを一時的に汎用レジスタにコピーして、その汎用レジスタで演算を行います。

「記憶する」-メモリ

マイコンの記憶部分であるメモリには、主にプログラムやデータが保存され、ROMとRAMに大別されます。

◇ROM

書き込んだデータは消去できないが、電源を切ってもデータが消えない読み出し専用のメモリをROM(Read Only Memory)と呼びます。主に、電源投入時やリセット時に実行するプログラムやプログラム実行中に変化しない定数を保存します。

ルネサスのマイコンには、ROMとしてフラッシュメモリを搭載するものが多くあります。フラッシュメモリは電源を切っても中身が消えないROMでありながら、データ内容の書き換えが可能というメリットがあります。

 

◇RAM

データの読み書きは自由に行えるが、電源を切ると内容が消えるメモリをRAM(Random Access Memory)と呼びます。主に、プログラムの変数を保存するのに用いられます。

シングルチップマイコン(*1)では、SRAMが内蔵RAMの用途でよく用いられます。高速アクセス可能ですが、内部構造が複雑であるために高密度な実装が困難で、大容量メモリには向いていません。

RAMの用途に用いられるメモリは、SRAMのほかにDRAMがあります。DRAMは集積化しやすい構造であるため、SRAMに比べて大容量です。ただし、高速な論理回路とDRAMを一つのウェハー上に形成するのが難しいため、一般的なシングルチップマイコンには内蔵されず、周辺回路として接続することがほとんどです。


(*1)シングルチップマイコン: CPUやROM、RAM、発振回路、タイマー、シリアルI/Fなどを1つのLSIに集積したもの。シングルチップマイコンにさらにシステムの主要な周辺回路を取り込んだものを、システムLSIと呼ぶ。

「なぜマイコンを・・・」

ところで、マイコンが多くの電子機器に用いられる理由はなんでしょう。

例として、スイッチを押してLEDを点灯する回路を設計すると考えます。マイコンを使用しない場合は図3のような回路になります。LEDとスイッチ、抵抗だけの簡単な構成ですね。

図3:マイコンを用いないLED点灯回路

図3 マイコンを用いないLED点灯回路

一方、マイコンを用いた場合は図4のようになります。

マイコンを用いた方が、設計が複雑なのは一目瞭然です。回路を設計する手間とコストが心配になりますね・・・。とはいえ、マイコンを用いるのはメリットがないと考えるのは早計です。

この設計した回路の動作を少し複雑にしてみましょう。例えば、スイッチが押されてから一定時間後にLEDを点滅させるとします。マイコンを用いている場合は、すでに設計した回路を変更することなくマイコンのプログラムを変更するだけで実現できます。しかし、マイコンを用いず設計すると、タイマーICを加えたり、標準ロジックICやFPGAで論理回路を構成したりする必要があります。

つまり、マイコンを用いると、機能変更や新規機能の追加が容易なのです。これが、多くの電子機器でマイコンが用いられる理由です。マイコンって便利ですね!

図4:マイコンを用いたLED点灯回路

図4 マイコンを用いたLED点灯回路

次回は「マイコン入門(2)」です。周辺回路について説明する予定です。ご期待ください。

※この記事は2015年3月13日に改訂しました。