マイコンはCPUとメモリ、周辺機能などで構成されています。メモリには事前に用意された命令の組み合わせ(プログラム)が記憶されており、CPUはそれらの命令を順次読み出して実行します。プログラムによって、マイコンは電子機器の動作の要となる入出力装置の制御を行っています。マイコンの周辺機能と入出力装置を接続することで、
1. センサー等の入力装置からの入力
2. 入力の加工(演算)
3. 演算結果からモーター等の出力装置を駆動
という動作が可能です。
入力信号
マイコンの入力信号には、デジタル信号とアナログ信号の2種類があります。
・デジタル信号
スイッチの入力信号などに使用される信号です。電源電圧が5Vである場合、ハイが5V、ローが0Vとなり、マイコン側はハイを1、ローを0と認識します。マイコンの電源電圧等によって、電圧のハイボルテージは変わります。
・アナログ信号
アナログ信号は波の形をしており、振幅(大きさ)や周波数(速さ)が時間とともに変わります。情報は連続的な値として表現されるため、細かい変化を含む入力の変化を取得可能です。マイコン側はA/D(アナログ/デジタル)変換を行うことで、アナログ信号をデジタル信号に変換し、数値として認識します。
CPU
CPU(Central Processing Unit)は指揮官として、マイコン全体を制御します。加減算、論理演算、乗算などの演算処理や、周辺機器とのデータのやりとりについて、どのように動作するのかを指示します。CPUがなければ、マイコンに搭載されたハードウェアは動作できません。
CPUの動作
CPUがメモリから命令の実行やデータを読み書きする際、CPUはアドレスバスを介し、指定されたアドレスにアクセスします。その後、データバスを介し、メモリから命令を読み取り、デコード回路や演算回路にて命令を実行します。
※ ALU(Arithmetic and Logic Unit):算術演算および論理演算を行う回路
命令を実行する手法の1つである「5段パイプライン」を例として解説します。「5段パイプライン」は1つの命令を5段階の動作に分けて処理します。動作は以下の5段階です。
1. 命令フェッチ(IF):メモリから命令を読み出す
2. 命令デコード(ID):命令を解読する
3. エグゼキュート(EX):命令を実行する
4. メモリアクセス(MA):書き込みたいメモリのアドレスを特定する
5. ライトバック(WB):特定したアドレスにデータを書き込む
この5段階の処理を、クロックと呼ばれるマイコンのパルス信号(タイミング信号)に同期し、繰り返し実行します。下図のように、1クロックにつき1段階を処理するため、1命令(合計5段階)で5クロック掛かります。パイプライン構成の場合、複数の命令の異なる段階を同時に処理できます。例えば、2クロック目にて「最初の命令のIDを実行」と同時に「次の命令のIFを実行」できます。このように並列処理を行うことで、CPUのリソースを有効に活用できます。
プログラムとメモリの関係
開発者が作成したプログラム(命令の組み合わせ)はメモリ空間内に配置されます。マイコンのメモリ空間にはROM、RAM、特殊機能レジスタ等が存在します。
・ROM(Read Only Memory)
その名の通り、読み込みのみを行うメモリです。ROMには命令を行うためのプログラムや定数データが格納されます。ROMに記録した内容は、マイコンの電源を落としても保存状態が維持されます。プログラム実行中の書き換えは基本的にできません。実行中の書き換えには特殊な方法が必要になります。
・RAM(Random Access Memory)
一時的に内部に保存しておきたい情報を記録します。記録した内容は書き換えが可能です。RAMの記録はマイコンの電源を落とすと削除されます。
・特殊機能レジスタ(SFR:Special Function Register)
マイコンに搭載されている周辺機能の動作を制御します。メモリと同じアドレス空間にマッピングされているため、CPUはメモリへのアクセスと同じバスを使用して、メモリと同じように特殊機能レジスタにアクセス可能です。これを「メモリマップドIO方式」と呼びます。
Copyright © Ryoyo Ryosan, Inc. All rights reserved.