概要
家電製品や産業機械(産業用ロボットを含む)、自動車...などさまざまな機器に組み込まれて制御を担うコンピューターシステム。これに対置されるのはパソコンに代表される汎用システムである。
組み込みシステムは、パソコンのようにユーザー側でソフトウェア(アプリケーションやデバイスドライバ)を組み込んで機能を増やしたりすることができず、設定を弄れる範囲も大幅に制限されている。AndroidはスマートフォンOSとしてはユーザーが自由にアプリケーションを追加できる汎用システムであるが、メーカー側で機能を制限して組み込みシステムとして用いることもできる。
組み込みシステムに求められる特性としては
高い信頼性
長時間ノンストップで使っても故障しないこと
長期間の製品ライフサイクル
即時応答(リアルタイム)性能
などがある。
特に、乗り物などのトラブルは人命に関わるので、組み込みシステムが(許容範囲を超えた)処理遅延に陥ったりフリーズしたりするのは絶対に避けなければならない。ユーザーによる誤設定や誤操作を避ける必要もある。このため、ユーザー側で勝手に機能を弄れないようになっているのである。しかし、近年はIoTといってインターネットに繋がることができる組み込みシステムが一般化したため、悪意のある侵入者の標的になるセキュリティリスクも顕在化しつつある。
組み込みシステムといえど航空機や自動運転車両などではパソコン以上に大規模なものもあるが、通常の組み込みシステムではコストや消費電力、スペースの制限が厳しいために、通常は下記のマイクロコントローラが用いられている。
マイクロコントローラ
機器組み込み用に一つの集積回路で完結するようにしたコンピューターシステム。MCU(Micro Controller Unit)ともいう。
基本的に次の4要素を備えている。
上記はSoCと共通する要素であるが、家電や自動車などの機器制御用に用いられ性能が限定的(内蔵するCPUは8ビット〜32ビット、メモリもせいぜい数十メガバイト)なMCUに対し、SoCは格段に高性能(64ビットのCPUやギガバイトクラスのメモリ、プログラマブルシェーダを搭載したGPUを内蔵)でスマートフォンなどの汎用のシステムに用いられる。もっとも、要求性能の高度化や汎用システムと同様の開発ツールの援用要求により、スマートフォンと同様のSoCが機器組み込み用に用いられることも一般的である。
かつてはプログラムの格納には(書き換え不可能な)マスクROMが用いられたが、1993年に日立製作所(現ルネサス・エレクトロニクス)がフラッシュメモリ内蔵マイコンをリリースして以降、他社も追随し、現在では後からプログラムを書き換え可能なMCUが主流になっている。また、ユーザー側で論理回路を変更できるFPGAの使用も広がっている。