多くの組込みシステムではリアルタイム性が要求されます。
そしてリアルタイム性を実現するシステムは「リアルタイムシステム」と呼ばれます。
リアルタイム性とは
リアルタイム性とは要求される期限までに処理が実行できる性質です。
リアルアルタイム性が必要な場面
ロボット掃除機、洗濯機、ゲーム機、インターホンといった家電機器や、医療機器、自動改札機、発電機器、監視カメラなどの産業機器の組込み分野では、それぞれの要求ごとに処理を完了させる期限が設定されます。
例えば、自動車に使用されている組込みシステムを具体例として考えみましょう。自動車には、自動車を制御するためのCPUが多く使用されています。そしてこれらのCPUは、エンジンの回転や、噴出するガソリンの量をコントロールします。
この時、仮に自動車のエンジン制御が期限内に処理されなければ、エンジンが停止して事故に繋がるリスクがあり、大きな問題につながります。
このように、多くの組込み機器ではリアルタイム性が要求されますが、要求される期限は機器によって異なるため、処理時間は各機能ごとに厳密に定義することが重要です。
ハードリアルタイムと ソフトリアルタイム
リアルタイム性は、「ハードリアルタイム」と「ソフトリアルタイム」という2種類に大別されます。
ハードリアルタイムとソフトリアルタイムは、具体的な時間を境に分けられるものではありません。ハードかソフトかは、もしもその期限内に処理を行えなかった場合に許容されるかどうかで決まります。
仮に、他と比べて期限が長めに設計されていたとしても、必ずその時間内に処理が完了していれば、リアルタイム性があると言えます。
ハードリアルタイムの特徴
「ハードリアルタイム」は、定められた期限内に確実に処理を完了しなければならないものを指します。もしもその期限内に処理が完了しなかった場合、致命的な事故が発生したり、壊滅的な結果となるリスクがあります。
ハードリアルタイムは、その即時性が守られなかった瞬間に、その処理やシステム、機器の価値がゼロになってしまいます。
例えば、先程紹介した自動車のエンジンの事例は、ハードリアルタイム性を必要とします。このほか、自動車のエアバッグ機能や航空機の航法システムなどもハードリアルタイムと言えます。
ハードリアルタイムの主な用途・最終製品例
ソフトリアルタイムの特徴
ハードリアルタイムに対し、比較的期限の制約が緩く、利用者が許容できる範囲で処理が完了すれば良いものや、やり直すことで機能を修復できるものを「ソフトリアルタイム」と言います。
ハードリアルタイムでは、即時性が守られなかった瞬間に機器やシステムの価値がゼロになるのに対し、ソフトリアルタイムは、遅れた時間によって徐々に価値が減少していく性質があります。
例えば、銀行のATMはソフトリアルタイムです。期限内に処理が完了しなかった場合、時間がかかるにつれてシステムや機能の価値は低下しますが、ゼロになるわけではありません。
ただし、 ソフトリアルタイムであっても、 基本的には期限内で処理が完了できるように設計する必要があります。
また、ソフトリアルタイムシステムのプログラムの構成によっては、処理の遅延が累積してしまうと、正常に動作できなくなるリスクもあるため注意してください。
ソフトリアルタイムの主な用途・最終製品例
ハードリアルタイムとソフトリアルタイムの比較
上記で述べたハードリアルタイムとソフトリアルタイムの違いを比較表にすると、以下の通りです。
ハードリアルタイム | ソフトリアルタイム | |
---|---|---|
リアルタイム性 | 最重要 | 重要 |
即時性が守られなかった場合の事故リスク | 高 | 低 |
即時性が守られなかった場合のシステムや機器の価値 | すぐにゼロになる | 徐々に減少する |
ポイント
- リアルタイム性とは、要求される期限までに処理が実行できる性質のこと
- 多くの組込み機器でリアルタイム性は要求される
- 「ハードリアルタイム」は、定められた期限内に確実に処理を完了しなければならないリアルタイム
- 「ソフトリアルタイム」は、比較的期限の制約が緩く、利用者が許容できる範囲で処理が完了すれば良いリアルタイム
リアルタイム性のこれから
自動運転、ヘルスケア、スマートファクトリーなど、さまざまな業界で技術が進歩する中で、リアルタイム性が高いシステムが求められ、利用されています。
近年はIoTも普及し、IoT端末側で収集した大量のビッグデータを素早く処理しようとするケースも多くみられます。その際にも、リアルタイムシステムは活躍します。
普段の便利で安全な生活の背景には、リアルタイム性を実現する数多くのシステムが存在しているのです。
今後も、各業界で技術が進歩するなかで、リアルタイム性を実現するシステムの利用場面は増えるでしょう。そして、人々がリアルタイムシステムから受ける恩恵も大きくなると予想できます。
リアルタイム性と合わせて学ぶ
リアルタイム性を実現するためにはいくつか方法がありますが、その一つに複数の作業を同時並行的に行う「マルチタスク」という機能があります。
下記記事ではマルチタスクについて紹介しています。ぜひこちらもご覧ください。
また、リアルタイムシステムを構築する際は「リアルタイムOS(RTOS)」というOSをを使うことでアプリケーションのリアルタイム性を向上させることができます。
弊社では組込みシステムの開発をされる方のお役に立てるよう、【開発者から学ぶウェビナー】を公開しています。
「【基礎編】RTOSとは?」では、動画と資料を使い、どのようにリアルタイム性を実現するかをはじめ、 RTOSについてお伝えしています。初心者にも分かりやすい内容になっておりますので、ぜひご活用ください。