「マイコンって何?」と聞かれて、すぐに答えられる人は意外と少ないかもしれません。
実はマイコンは、“コンピューターのしくみ”をギュッと小さくまとめたものです。たとえば、かつて広く使われていた Z80 というマイクロプロセッサーでは、命令を順に実行し、メモリーや入出力装置とやり取りすることで、さまざまな処理をおこなっていました。その基本的なしくみは、現在のマイコンにも受け継がれています。
この準備編では、マイコンの中身を理解するために、まず「コンピューターの基本構成」から順を追って見ていきます。CPU、メモリー、入出力装置といった構成ブロックを知ることで、マイコンがどのように動いているのかをより深く理解できるようになります。この準備編を通じて、マイコンのしくみへの理解を一歩ずつ深めていきましょう。
コンピューターの基本構成とは?
コンピューターは、私たちの身の回りでさまざまな場面に使われています。スマートフォンやパソコンはもちろん、家電や自動車の中にもコンピューターが組み込まれています。これらのコンピューターは、複雑な処理をおこなっているように見えますが、基本的なしくみは意外とシンプルです。
コンピューターは、大きく分けて"中央演算処理装置 (CPU) "、"記憶装置"、"入出力装置"の の 3つのブロックで構成されています。また、これらの構成要素が連携して動作するためには、情報をやり取りするための通り道も必要です。その通り道は「バス (Bus) 」と呼ばれており、構成ブロックそのものではありませんが、コンピューターのしくみを理解するうえで欠かせない存在です。
中央演算処理装置 (CPU)
CPU (Central Processing Unit) は、コンピューターの「頭脳」にあたる部分です。プログラムに書かれた命令を順番に読み取り、計算や判断をおこないながら処理を進めていきます。たとえば「AとBを足す」「条件に合えば次の命令に進む」といった動作は、すべて CPU が担当しています。
CPUの内部には、以下のような機能が含まれています。
・演算装置 (ALU) :算術演算や論理演算などの計算をおこなう
・制御装置 (CU) :命令を解釈し、各装置に指示を出す
・レジスタ:一時的なデータ保存領域
記憶装置(メモリー)
メモリーは、データや命令を一時的に保存しておく場所です。CPU が処理する情報は、まずメモリーに読み込まれ、そこから取り出して使われます。メモリーには、作業中のデータを保持するRAM(ランダムアクセスメモリー)と、電源を切っても内容が保持されるROM(リードオンリーメモリー)などがあります。
入出力装置 (I/O)
入出力装置は、コンピューターが外部と情報をやり取りするための仕組みです。「入力」には、センサーやスイッチなどからの制御信号が含まれ、「出力」には、LED の点灯やモーターの動作などを司る制御信号が含まれます。これらの装置を通じて、コンピューターは外の世界とつながり、制御や応答をおこないます。
このように、コンピューターは「演算」「記憶」「入出力」という3つの役割を持つブロックが連携して動いています。この構成は、Z80 のような昔のマイクロプロセッサーを使ったシステムでも、現在のマイコンでも基本的に変わりません。マイコンは、これらのブロックを 1つのチップにまとめたものであり、コンピューターのしくみをコンパクトに実現した存在なのです。
ブロック間をつなぐ「バス」とは?
CPU・メモリー・入出力装置は、それぞれが独立して動いているわけではなく、互いに情報をやり取りしながら連携して動作しています。そのためには、ブロック間をつなぐ「通り道」が必要です。この通り道が「バス (Bus) 」です。バスは、コンピューター内部の各ブロックをつなぐ配線のようなもので、以下のような種類があります。
・アドレスバス:どこにアクセスするかを指定する
・データバス:データそのものを運ぶ
・制御バス:処理のタイミングや方向を制御する
バスがあることで、CPU はメモリーからデータを読み込んだり、入出力装置に命令を送ったりすることができるのです。
CPUの仕組みと命令の流れ
CPU は、プログラムに書かれた命令を1つずつ読み取り、処理を進めていくことで、コンピューター全体の動作を制御しています。この命令処理は、以下のようなステップでおこなわれます。
命令の処理ステップ:フェッチ ➡ デコード ➡ 実行
■ フェッチ(命令の読み出し)
メモリーから次に実行すべき命令を読み出します。命令の場所は「プログラムカウンター」という内部の記憶領域で管理されています。
■ デコード(命令の解読)
読み出した命令が「何をするものか」を解読します。たとえば「Aに5を代入する」「BとCを加算する」といった内容です。
■ 実行(命令の実行)
解読した内容に従って、演算やデータの移動などの処理をおこないます。必要に応じて、メモリーや入出力装置とのやり取りもおこなわれます。
この一連の流れを、CPU はクロック信号に合わせて高速に繰り返しています。1秒間に何百万回、何十億回という単位で命令を処理することができます。
命令セットと CPU の個性
CPU が理解できる命令の種類は、あらかじめ決められています。これを命令セット (Instruction Set) と呼びます。 命令セットには、たとえば「データを読み込む」「加算する」「条件によって分岐する」といった基本的な操作が含まれています。
CPU の種類によって、この命令セットの内容や表現方法が異なります。 たとえば、Z80、ARM、RISC-V といった CPU は、それぞれ独自の命令セットを持っており、同じ処理をするにも命令の書き方や使い方が違います。この命令セットの違いが、CPU ごとの「個性」となります。 ある CPU は命令がシンプルで高速に動作することを重視していたり、別の CPU は多機能で柔軟な命令を備えていたりします。
メモリーの役割と種類
コンピューターが処理をおこなうためには、データや命令を一時的に保存しておく場所が必要です。この役割を担っているのが「メモリー」です。CPU は、メモリーに保存された情報を読み出したり、書き込んだりしながら処理を進めていきます。
メモリーにはいくつかの種類があり、それぞれ異なる役割を持っています。
RAM(ランダムアクセスメモリー)
RAM は、作業中のデータやプログラムを一時的に保存するためのメモリーです。CPU が処理する命令やデータは、まず RAM に読み込まれ、そこから取り出して使われます。RAM の特徴は、電源を切ると内容が消えてしまうことです。つまり、作業中の“メモ帳”のような役割を果たしています。このように、電源が切れると記憶内容が失われるメモリを揮発性メモリーと呼びます。
ROM(リードオンリーメモリー)
ROM は、電源を切っても内容が保持されるメモリーです。主に、起動時に必要なプログラムや、変更されない設定情報などを保存するために使われます。マイコンでは、ROM の代わりにフラッシュメモリーが使われることが多く、プログラムを書き込んだり更新したりすることができます。フラッシュメモリーは、電源を切っても内容が保持されるという点では ROM と同じですが、後から書き換えが可能であるという特徴があります。このように、電源を切っても記憶内容が保持されるメモリーを不揮発性メモリーと呼びます。
メモリーとアドレスの関係
CPU がメモリーにアクセスする際には、「アドレス」と呼ばれる番号を使って、どの場所のデータを読み書きするかを指定します。このアドレスは、メモリーの“番地”のようなもので、たとえば「100番地にあるデータを読み込む」「200番地に新しい値を書き込む」といった形で使われます。
プログラムの命令や変数も、それぞれ特定のアドレスに割り当てられており、CPU は命令に従ってそのアドレスを参照しながら処理を進めます。このしくみは、マイコンでも同様で、限られたメモリー領域の中で効率よくアドレスを管理することが重要になります。
入出力装置とインターフェース
入出力装置とは?
コンピューターは、外の世界と情報をやり取りするために「入出力装置(I/O 装置)」を使います。これは、人間でいう「目・耳・口・手」のような役割を果たします。
・入力装置:外部から情報を受け取る装置
例:センサー(温度・光・加速度など)、スイッチ、キーボード、マイク
・出力装置:処理結果を外部に伝える装置
例:LED、モーター、ディスプレイ、スピーカー
これらの装置は、CPU とデータバス・制御バスを通じて接続されており、双方向のやり取りが可能です。たとえば、センサーからの信号を CPU が読み取り、条件に応じて LED を点灯させる、といった制御がおこなわれます。
インターフェースとは?
入出力装置とコンピューターが正しく通信するためには、「インターフェース」が必要です。インターフェースとは、異なる装置同士が情報をやり取りするための「共通のルール」や「接続のしかた」のことです。
たとえば、CPU はアドレスやデータ、制御といった信号で通信しますが、外部機器は USB や I2C など別の形式で通信します。この違いを“翻訳”してくれるのが、インターフェースの役割です。以下の図2 は、入出力装置の中にインターフェースが含まれ、CPU と外部機器の間で通信を仲介している様子を示しています。青い矢印は CPU とのバス通信、オレンジの矢印は外部機器との通信(バス型またはポート型)を表しています。
■ なぜ必要なのか?
たとえば、人間同士でも「日本語」と「英語」で話すと通じません。
同じように、コンピューターと装置が「同じ言語(インターフェース)」で話す必要があるのです。
なお、外部機器と直接通信できるように見える場合でも、実際には CPU が理解できる形式に変換する“最低限のインターフェース”が内部に存在しています。
■ インターフェースの種類
インターフェースはマイコンのターゲットアプリケーション、特長を示す重要なブロックになっています。使用用途に合わせ、さまざまな組み合わせで製品化されています。
- GPIO(汎用入出力)
- UART(シリアル通信)
- SPI / I2C(複数の装置をつなぐバス方式)
- USB
- Ethernet
- CAN など
マイコンは“コンピューターのミニチュア”
コンピューターの基本構成を見てきましたが、実はマイコン(マイクロコントローラー)は、これらのブロックをすべて 1つのチップにまとめた“コンピューターのミニチュア”です。
・CPU(演算・制御)
・メモリー(プログラムやデータの保存)
・入出力装置(外部とのやりとり)
・インターフェース(通信のルールや接続方式)
これらが、マイコンではワンチップに集約されているため、外部に複雑な構成を持たなくても、単体で制御や通信が可能です。
なぜマイコンが誕生したのか?
かつては、センサーやモーターなどを制御するために、CPU・メモリー・I/O 装置・インターフェースを個別に組み合わせて、1台のコンピューターとして構成する必要がありました。しかしこの方法では、コストが高く、サイズも大きく、消費電力も多いという課題がありました。
そこで登場したのが「マイコン」です。制御に必要な機能だけを小型化・集約し、1チップで完結できるようにしたことで、以下のようなメリットが生まれました。
・小型機器や組み込み機器への搭載が可能
・低コスト・低消費電力
・シンプルな構成で制御がしやすい
つまり、マイコンは「小さなコンピューター」として、センサーやモーターなどの制御をシンプルに実現できるのです。下図では、左に従来のコンピューターの構成、右にマイコンの構成を並べて比較しています。両者とも、CPU・記憶装置・入出力装置(インターフェース含む)という基本的な構成ブロックは共通していますが、コンピューターではそれぞれが独立しており、バスで接続されているのに対し、マイコンではそれらが1チップに統合されています。この図を見ることで、マイコンが「コンピューターの構成ブロックをそのまま小型化・集約した存在」であること、そして両者の違いと共通点がよりはっきりと理解できるはずです。
関連情報
Nuvoton Technology の マイクロコントローラー 製品情報詳細にご興味のある方は以下のページをご覧ください。
お問い合わせ
本記事に関してご質問などありましたら、以下よりお問い合わせください。
Nuvoton Technology メーカー情報 Top へ
Nuvoton Technology メーカー情報 Top へ戻りたい方は以下をクリックしてください。