連載
» 2013年04月08日 07時30分 UPDATE

マイコン入門!! 必携用語集(2):のぞいてみよう、マイコンの中!! ―― 複雑な演算も簡単な動作の繰り返し (1/2)

マイコンの中身って、どうなっているのでしょうか? どうやって複雑な演算を実行しているのでしょうか? その仕組みを知っておくと、いざマイコンを使う時にとても役立ちます。今回は、マイコンの内部の仕事の流れをつかんでください。

[菅井 賢,STマイクロエレクトロニクス]

 本連載の第1回目で紹介したように、マイコンは現在、幅広い分野のさまざまな機器に搭載されており、各機器の中で多彩な役割を担っています。ただし、いずれの場合もマイコンの基本的な動作は共通しており、大きく分けると次の3つになります。

 マイコンはまず、(1)ユーザーが作ったプログラムに記述されている命令を順番に読み出します。そして、(2)読み出した命令を実行します。最後に、(3)実行結果をマイコンの外部にアウトプットします。アウトプットとは具体的には、表示したり、赤外線の信号を出したり、ボタンの情報を取り込んだり、時間を測ったり、周辺のICと通信したりすることです。

 マイコンは、これら3つの基本動作を繰り返すことで、さまざまな複雑な処理をこなしています。

マイコンの中身は大きく3つのブロックからなる

 それでは、いったいマイコンは、これらの動作をどのような機構で実現しているのでしょうか? マイコンの中には、大まかに分類すると、「メモリ」「CPU」「周辺回路」という3つの機能ブロックがあり、これらが連携することで3つの基本動作を実現しています。

 3つの基本動作について順番に見ていきましょう。まず、(1)プログラムを実行するには、そもそもマイコンのどこかにプログラムを持っておかなければなりません。その“プログラムの格納庫”の役割を果たすのがメモリです。ユーザーは、マイコンを使う前にメモリにプログラムを書き込んでおく必要があります。

 そしてマイコンが起動した後、(2)そのプログラムから読み出した命令を実行する機能ブロックがCPU(Central Processing Unit)です。CPUは、簡単なプログラムなら一度に実行できますが、プログラムの内容が複雑な演算では、演算の途中でデータを一時的に保管する必要が出てきます。ここでメモリは“データの一時的な保管庫”として機能するわけです。

 最後に(3)実行結果を外部にアウトプットする動作は、周辺回路が受け持ちます。マイコンの品種によって異なりますが、赤外線や、ボタン情報、時間測定、通信に関する処理など、特定の機能を担う個別の回路ブロックがCPUの周辺に幾つか集積されています。

 ここまでの説明をまとめたのが図1です。かなり要約し、マイコンの内部を3つの大きな機能ブロックで表しました。

 メモリとCPUの間では、命令とデータがやりとりされます。CPUと周辺回路の間では、プログラムの実行結果の情報が行き来します。周辺回路はマイコンの外部とのインタフェースの役割を担っています。

 なお、各ブロック間でまとまった量のデータを移動させる(転送する)場合は、「バス」という手段を用います。

マイコンの内部構成 マイコンの内部構成 (クリックで画像を拡大)

もう少し細かく見てみよう

 これだけではまだ、マイコンの中身がよく分からないと思います。さらに詳しく見ていきましょう。図2にもっと詳しい図を示しました。

マイコンの詳細な内部構成 マイコンの中身をさらに詳しく (クリックで画像を拡大)

 メモリと一言でいっても、実際にはいくつかの種類に分かれます。いったんデータを書き込んだらその後はあまり書き換えないという用途に使うフラッシュメモリやEEPROM(この他にもたくさんの種類がありますので、連載の中で回をあらためて紹介します)には、一般的に変更回数の少ないプログラムが格納されています。これに対し、CPUの演算データは頻繁に書き換えが行われます。そのようなデータはRAM(Random Access Memory)という種類のメモリに格納されます。

 CPUも、詳しく見ると幾つかのブロックで構成されています。大きく分けて、「ALU(Arithmetic and Logic Unit)」と「レジスタ」と「シフタ」の3つです。ALUは算術演算、論理演算を受け持ちます。シフタは、データをシフトする(ずらす)操作やローテート(循環)する操作に使います。レジスタは、メモリから取り出したデータを演算前に一時的に格納するのに利用します。

 周辺回路には、先に述べた通りさまざまな種類があり、マイコンの品種によって搭載されるものが異なります。図2では、例として通信機能とアナログ機能、タイマーを挙げました。通信機能には各種の標準規格に沿ったものがあり、代表的なものにSPI、USART、I2Cがあります。この他にもオーディオ専用のI2S、皆さんもよくご存じのUSBなどもあります。

 アナログ機能としては、アナログ信号をデジタルデータに変換するA-Dコンバータや、その逆にデジタルデータをアナログ信号に変換するD-Aコンバータなどが用意されています。その他、2つのアナログ信号の大小を比較するコンパレータなども、アナログ機能の1つです。

 タイマーの基本的な機能は、時間を計るというシンプルなものです。ただ、高機能なタイマーになると、入力キャプチャや、トグル、PWMの出力機能を備える場合もあります。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

RSSフィード

EDN 海外ネットワーク

All material on this site Copyright © 2005 - 2017 ITmedia Inc. All rights reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.