マイクロコントローラー装置(MCU)とマイクロプロセッサー装置(MPU)は、ある点では似ていますが、他の多くの点で大きく異なる、2つの個別の集積回路です。時代遅れのマルチコンポーネントである中央処理装置(CPU)を個別の論理装置に置き換えたこれらのシングルチップ・プロセッサーは、コンピューティング・テクノロジーの継続的な発展に大いに貢献してきました。しかし、マイクロコントローラーとマイクロプロセッサーは、コンポーネント構造やチップ・アーキテクチャー、さらには、性能やアプリケーションが大きく異なります。
これら2装置の主な違いは、マイクロコントローラーがマイクロコンピューター・システムに必要なすべての要素を1つのハードウェアに統合していることです。マイクロコントローラーは、その機能のためにペリフェラルや複雑なオペレーティング・システムを別途必要としない一方で、マイクロプロセッサーはそれらを必要とします。どちらの回路にもCPUが含まれていますが、マイクロコントローラーにはメモリー、入出力(I/O)コンポーネント、その他のさまざまなペリフェラルも組み込まれています。
コスト効率に優れ、小型で低消費電力のマイクロコントローラーは、オールインワン機能向けに最適化されています。そのため、これらの装置は、自動車インフォテインメント・システムやモノのインターネット(IoT) デバイスなどの特定のアプリケーションに最適です。
逆に、汎用マイクロプロセッサーは、通常、より強力であり、パーソナル・コンピューティングや画像処理など、要求の厳しいアプリケーションでパフォーマンスを向上させるために、専用のハードウェアによってサポートされるように設計されています。
ハードウェア・レベルでは、マイクロプロセッサーは「従来型」のフォン・ノイマン・アーキテクチャーを基盤としています。これは、演算論理装置(ALU)とプロセッサー・レジスター(高速データ・アクセス用の少量の高速メモリー・ストレージ)の両方を兼ね備えたCPU、制御装置、データ・命令用メモリー、大容量ストレージ用の外部メモリー、および I/O メカニズムで構成されています。この方法では、命令の送信と操作の実行の両方に、同じ相互接続ワイヤー・セット(つまり、バス)を使用します。マイクロプロセッサーはこれらのアクションを同時に実行することはできませんが、最新のデバイスではデータのボトルネックを回避するためにさまざまな緩和技術が導入されています。
一方、マイクロコントローラーは、より複雑なHarvardアーキテクチャーを使用しています。このアーキテクチャには、メモリーへのデータの読み取りと書き込みを行うための専用のデータ・バスとアドレス・バスのセットと、操作を実行するための命令を取得するための別のセットがあります。CPUは命令の読み取りとデータ・メモリーへのアクセスを同時に実行できるため、Harvardアーキテクチャーでは基本的な操作をより高速に実行できます。
Harvardアーキテクチャーは、リアルタイムの高速コンピューティング・タスクに優れています。しかし、簡素化されたフォン・ノイマン型アーキテクチャーの統一されたデータと命令のメモリー空間により、信頼性と拡張性ーが向上します。このため、フォン・ノイマン型を使用したマイクロプロセッサーは、高性能コンピューティング(HPC)やゲームなどの要求の厳しいタスクに適していますが、マイクロコントローラーは通常、高速信号処理に使用されます。
基本的に、マイクロコントローラーは、プロセッサー・コア(1つまたは複数)、操作用メモリー(RAM)、およびプログラム用メモリーの電気的に消去可能な、プログラマブルの読み取り専用メモリー(EEPROM)を含む、単一チップ上に構築される小型コンピューターです。スタンドアロン装置として機能するように最適化されたマイクロコントローラーを統合することにより、リアルタイムでの信号処理が改善され、これらの小型装置は、組み込みシステム内の特定のタスクや機能の管理に最適です。
小型軽量で比較的低消費電力のマイクロコントローラーは、スマートフォン、スマートウォッチ、その他のウェアラブルなどのバッテリー駆動の電子機器に最適で、ファンの間で根強い人気があります。ArduinoやRaspberry Piなどの消費者向けプログラマブルなマイクロコントローラーは、Windows、Linux、MacOSオペレーティング・システムで一般的に使用されているC、C++、Pythonなどのプログラミング言語で簡単に構成できます。マイクロコントローラーは初心者の開発者でも簡単に利用できるだけでなく、産業オートメーション、輸送安全システム、プロトタイピングなど、幅広い専門的および産業的なユースケースでも頻繁に使用されています。
日本の電卓メーカーからのカスタムチップの要請に応えてTexas Instruments社のエンジニアであるGary Boone氏とMichael Cochran氏が、1971年に最初のマイクロコントローラーを開発したと言われています。回路技術における画期的な進歩により、その後数年間で Intel社、NXP社、Arm社などのメーカーが幾度となく改良を重ねてきました。
以下で、マイクロコントローラの一般的なタイプをいくつか紹介します。
マイクロプロセッサーは、CPUに必要なすべてのコンポーネントを1つの回路に統合した、主流のコンピューター・プロセッサーです。MPUは、旧式のCPUコンピューター・システムの演算装置、論理装置、制御装置を、クロック駆動型でレジスター・ベースの単一の多目的ハードウェアに統合します。この統合設計により、潜在的な障害点が削減され、信頼性が向上します。マイクロプロセッサーにはオンチップ・プログラム・メモリーこそ搭載されていませんが、要求の厳しい汎用用途向けに最適化されており、特殊なコンピュータペリフェラルをサポートし、また特殊なコンピュータペリフェラルからサポートされるように設計されています。
最新のマイクロプロセッサーは、何百万もの小さなトランジスター、抵抗、ダイオードを、1つの半導体材料の上に集積することで、CPUの主要コンポーネントを構築します。
多用途のマイクロプロセッサーはさまざまなアプリケーションで使用されていますが、高出力処理を必要とする特定のタスクには、専用装置が一般的に使用されています。電力、パフォーマンス、サイズ、エネルギー消費量など、さまざまな側面から、マイクロプロセッサーの主な種類をいくつか以下に示します。
マイクロコントローラーとマイクロプロセッサーは、いくつかの同じタスクを実行できます。ただし、アプリケーションの要件に応じて、それぞれに独自の長所と短所があります。マイクロコントローラーは低消費電力のための省電力モードなどの各種機能が搭載されており、ほとんどの組み込みシステムに最適です。
ただし、複雑な計算やより高い処理能力が必要な状況では、マイクロプロセッサーの方が適しています。一方で、パフォーマンスと柔軟性が向上すると、消費電力が増加し、価格も高くなるというデメリットもあります。これらの機能により、マイクロプロセッサーはパーソナル・コンピューターや産業用スーパーコンピューターに最適とされています。
IBMテクノロジー・コンサルティング・サービスの詳細はこちら