ナレーター：このレッスンでは､
いくつかの組み込みシステムについて話を始めます｡
さて､ 組み込みシステムというのは､
特定の専用機能を実行するように設計されたコンピュータシステムのことである｡
さて､ 組込みシステムというと､
製造分野やオートメーション分野の話をすることが多い｡
つまり､ 医療用点滴システムのマイクロコントローラーには､
ひとつの仕事があるということだ｡
患者さんに必要な輸液ができるように､
機械を通って点滴に入る輸液の量を測定するためです｡
水処理プラントの制御システム用にもう1つ持っているかもしれない｡
そしてその責任は､ 水が一定の割合で流れるようにすることである｡
そして､ システムの流量を維持するためにバルブを開けたり閉めたりする｡
これが組込みシステムの考え方だ｡
そして､ 非常にシンプルなデバイスになることもあれば､
LinuxやAndroidのような完全なオペレーティングシステムを備えた複雑なデバイスになることもある｡
ただ､ それによるんだ｡
さて､ この特別なレッスンでは､
単一の機能を持ち､ その機能を実行するために専用のオペレーティング・システムやマイクロプロセッサを持つ､
特定の組み込みシステムにもっと焦点を当てようと思います｡
例えば､ 私の家にはスマートメーターがある｡
だから､ 自宅の脇に出て､ 自宅の電気メーターを見れば､
1時間当たり何キロワット使っているのか､
また長期的にどれくらい使っているのかがわかる｡
現在､ この情報はインターネットに接続されており､
電力会社は月に一度､ メーターを読みに私の家まで人を派遣する必要がない｡
その代わり､ 今はすべて電子的に行われている｡
携帯電話のモデムを使い､ 携帯電話のネットワークを通じてインターネット経由で本社とサーバーに接続し､
消費電力のデータを取り込むのだ｡
あなたの家のメーターを見れば､
似たようなものがあるだろう｡
現在､ この種の組込みシステムは､
頻繁な変更が行われない､ あるいは許されない静的な環境と考えられている｡
例えば､ 電気メーターのソフトウェアを最後にアップグレードしたのはいつですか？
おそらく一度もないだろう｡
電力会社も頻繁にはやっていないだろう｡
それがこのような組み込みシステムの考え方だ｡
このようなシステムは､ 1つの目的だけを果たすために作られた､
非常に削ぎ落とされたシステムなのだ｡
そうすることで､ 余分なコードが少なくなり､
よりセキュアになる｡
しかし､ 元のコードが良い状態で作られていなければ､
アップデートが難しくなる｡
このため､ 組込みシステムには､
セキュリティ問題を特定し､ 修正するためのサポートがほとんどないことが多い｡
電力会社を呼び出して､ メーターを確保しに来てくれとは言えない｡
それは､ 彼らがあなたのためにしてくれることの一部ではない｡
自分たちのデバイスなのだから､
やりたいようにやるだろう｡
また､ 工場やプラント内に組込みシステムがある場合､
製造業であれば､ そのメーカーからのサポートは限られていることが多い｡
そのため､ すべてのデバイスを独立したネットワークに接続し､
インターネットに接続しないようにする必要がある｡
さて､ 組み込みシステムについて語るとき､
PLCと呼ばれる用語がある｡
これは産業用や屋外用に設計されたコンピュータの一種で､
現代の機械システムを自動化することができる｡
さて､ PLCについて考えるとき､ 水の量を多くしたり少なくしたりするためにバルブを開けたり閉めたりする製造業のようなものを思い浮かべてほしい｡
それがPLCの考え方だ｡
これはプログラマブル・ロジック・コントローラーである｡
さて､ これらのPLCはファームウェア上で動作する｡
なぜなら､ これらはやはり組み込みシステムだからだ｡
そのため､ チップ上のソフトウェアであるファームウェアは､ 脆弱性が発生したときに修正するためにパッチを当てたり､
再プログラムしたりすることができる｡
しかし､ 繰り返しになるが､ 非常に特殊なプロセスがあり､
通常､ メーカーからのサポートは限られている｡
マイクロソフトのように毎週火曜日にパッチをくれるわけではない｡
このようなPLCでは､ 半年､ 1年､ あるいは2年ごとにパッチを受けるかもしれない｡
パッチとパッチの間は通常とても長い｡
さて､ もうひとつ話したいのは､ 彼らが使っているオペレーティング・システムのいくつかだ｡
RTOSというリアルタイム・オペレーティング・システムがある｡
さて､ これは決定論的な操作の実行を優先するタイプのオペレーティング・システムである｡
そうすることで､ 一刻を争う仕事にも一貫した対応ができるようになる｡
さて､ 考えてみよう｡
原子力発電所内でバルブの開閉を行う場合､
そのバルブはいつでもオフラインにできるのでしょうか？
おそらく､ そうではないだろう？
RTOS（リアルタイム・オペレーティング・システム）を使うというのは､
そういう考え方なんだ｡
というのも､ 組込みシステムの多くは通常､
リブートやクラッシュを許容できず､ ミリ秒単位で予測可能な応答時間を持たなければならないからだ｡
だから､ もし私が飛行機の一部を動かすようなものを作っていて､
それが自動操縦装置の飛行を助け､ 自動操縦装置が数ミリ秒ごとに翼の調整をする必要があるとしたら､
それはリアルタイム・オペレーティング・システムを使いたいことだ｡
そのために標準的なウィンドウズ・システムは使えない｡
スピードもパワーも足りない｡
再起動やクラッシュの可能性もあるし､ セキュリティ・パッチやその他もろもろもある｡
つまり､ RTOSという言葉を聞いたら､ これは組み込みシステム､
特に重要なアプリケーションでよく使われるタイプのオペレーティング・システムだと考えてほしい｡
さて､ これを実現するもうひとつの方法は､
システムオンチップと呼ばれるものを使うことだ｡
これも組込みシステムの一種である｡
これは､ 当社のプロセッサーが､ 複数の論理コントローラーのプラットフォーム機能をシングルチップに統合したものである｡
このシステムオンチップは電力効率が非常に高いため､
組み込みシステムが必要な小型機器によく使われる｡
だから､ 組み込みシステムでポケットに入るような非常に小さいものを作る必要がある場合､
通常はシステムオンチップのようなものを使うことになる｡
ルンバやロボット掃除機のようなものを使っている場合､
それらはシステムオンチップタイプの考え方を採用している｡ なぜなら､ すべての情報を1つのチップに収めようとするからだ｡
システムオンチップとは､ コンピュータシステムの全コンポーネントを1チップに収めた集積回路の一種を指す｡
これには､ プロセッサー､ メモリー､ ストレージ､ グラフィック・プロセッサー､
周辺機器（USBコントローラー､ 電源管理回路､
無線LANやブルートゥース用の無線ラジオなど）が含まれます｡
システム・オン・ア・チップの好例はラズベリー・パイで､ これはシングル・チップ上に存在する完全なコンピュータを内蔵している｡
現在､ これらのシステムオンチップの多くは､
スマートTVやセットトップボックス（Amazon
Fire TV､ Roku､ Apple TVストリーミングデバイスなど）のような他のデバイスに組み込まれる予定だ｡
システムオンチップ設計は､ その低消費電力､
優れた性能､ 小さなフォームファクターにより､
非常に人気がある｡
例えば､ あなたがRokuやFire TV Stickを持っているなら､
それらはUSBメモリのサイズだ｡
しかし､ 既存のテレビに完全なスマートテレビ機能を提供し､
これらのデバイスを使ってワイヤレス接続でストリーミングビデオを処理することができる｡