リアルタイム​システム​を​採用​する​メリット

概要

この​ドキュメント​では、​リアルタイム​システム​の​概要、​システム​を​構成​する​コンポーネント、​そして​プロジェクト​で​リアルタイム​システム​を​採用​する​メリット​について​解説​し​ます。

コンテンツ

はじめに

コンピュータ​システム​を​表す​語​として​「リアルタイム」​という​言葉​を​聞​いたこ​と​が​ある​方​は​多い​で​しょう。LabVIEW Real-​Time​モジュールも​聞​いたこ​と​が​ある​方​も​お​られる​かも​し​れ​ま​せん。​これ​は​何​を​指す​用語​なので​しょう​か。​システム​が​「リアルタイム」​と​なる​ため​に​は、​どの​よう​な​コンポーネント​が​必要​なので​しょう​か。​リアルタイム​システム​を​採用​すべ​き​プロジェクト​と​は、​どの​よう​な​もの​で​しょう​か。

本​ページ​では、​その​よう​な​疑問​に​お答え​する​とともに、​どの​よう​な​場合​に​リアルタイム​システム​を​構築​すべ​き​か​について​も​解説​し​ます。​その後​の​ステップ​として、NI​ハードウェア​と​ソフトウェア​で​リアルタイム​システム​を​構築を​お​読み​いただく​こと​を​お​勧め​し​ます。​この​ページ​では、​短時間​で​優​れ​た​リアルタイム​システム​を​構築​する​方法​を​解説​し​てい​ます。

リアルタイム​システム​とは

リアルタイム​コンピュータ​システム​は、​極めて​明確​な​タイミング​要件​の​プログラム​でも​確実​に​実行​する​高い​信頼​性​を​備え​てい​ます。​これ​は​多く​の​科学/​工学​プロジェクト​に​求め​られる​性能​です。​リアルタイム​システム​の​構築​に​必要​な​主要​コンポーネント​として、​リアルタイム​オペレーティングシステム​(RTOS)​が​あり​ます。​リアルタイム​システム​全体​を​構成​する​ソフトウェア/​ハードウェア​コンポーネント​について​は、​次​の​セクション​で​説明​し​ます。

高​精度​タイミング

多く​の​エンジニア​や​研究者​にとって、​汎用​OS(Windows​など)​を​搭載​した​標準​PC​上​で​計測/​制御​プログラム​を​実行​する​の​は、​受け入れ​られる​こと​では​ありま​せん。​オペレーティングシステム​では、​ウイルス​スキャン、​画像​の​更新、​システム​の​バックグラウンド​タスク​の​実行​など、​様々​な​理由​で、​ユーザ​プログラム​の​実行​が​遅延​する​可能性​が​常に​あり​ます。​割り​込​ま​れる​こと​なく​特定​の​レート​で​実行​する​必要​の​ある​プログラム​(クルーズ​コントロール​システム​など)​では、​その​よう​な​遅延​は​システム​の​機能​停止​に​つながり​ます。

そうした​特性​は​意図​さ​れ​た​もの​で​あり、​汎用​オペレーティングシステム​は、​多く​の​プロセス​や​アプリケーション​を​同時に​実行​し、​ユーザ​インタフェース​グラフィック​の​充実​など​他の​機能​を​提供​する​よう​設計​さ​れ​て​いる​の​です。​一方​リアルタイム​オペレーティングシステム​は、1​つ​の​プログラム​を​極めて​高​精度​な​タイミング​で​実行する​こと​を​目的​として​い​ます。​具体​的​に​は、​リアルタイム​オペレーティングシステム​で​以下​の​こと​が​可能​です。

  • 保証​さ​れ​た​最悪​ケース​の​時間​枠内​で​タスク​を​実行
  • プログラム​の​様々​な​部分​の​優先​順位​を​細か​く​設定
  • 各​反復​処理​において​ループ​を​ほぼ​同じ​タイミング​で​実行​(一般に​マイクロ​秒​内)
  • ループ​が​タイミング​目標​を​達成​し​なか​っ​た​こと​を​検知

リアルタイム​コンピュータ​システム​について​調べる​と、​「ハード​リアルタイム」、​「ソフト​リアルタイム」​という​語​に​出くわす​こと​が​あり​ます。​ハード​リアルタイム​システム​と​は、​特定​の​最悪​ケース​時間​枠内​で​タスク​を​実行​する​よう​絶対​的​に​保証​する​設計​と​な​って​いる​システム​です。​したがって、​安全​性​に​関わる​プロジェクト​や、​機能​停止​により​多額​の​損害​が​発生​する​可能性​の​ある​プロジェクト​では、​多く​の​場合​ハード​リアルタイム​が​必要​となり​ます。​一方​ソフト​リアルタイム​システム​は、​タイミング​要件​を​ほぼ​満たす​よう​設計​さ​れ​てい​ます​が、​絶対​的​確実​性​は​ありま​せん。​ビデオ​処理​など、​フレーム​が​飛ぶ​の​は​良く​は​ない​ものの、​必ずしも​重大​な​問題​では​ない​処理​に​用​い​ら​れ​ます。

図1.​ハード​リアルタイム​システム​は、​正しくプログラミングすれば、​期限​は​一貫​し​て​守​ら​れ​ます​が、​ソフト​リアルタイム​システム​では、​期限​を​超える​可能性​が​あり​ます。

リアルタイム​オペレーティングシステム​の​仕組み​に関する​詳細​情報​や、​「確定​性」​や​「ジッタ」​といった​一般​的​な​リアルタイム​用語​について​は、リアルタイム​オペレーティングシステム​とはを​参照​し​て​くだ​さい。

信頼性

リアルタイム​システム​は、​高​精度​タイミング​の​ほか、数​日、​数​ヶ月、​あるいは​数​年​に​も​わ​た​って​確実​に​実行する​よう​セットアップ​する​こと​が​でき​ます。 24​時間​365​日​稼動​する​システム​だけ​で​なく、​ダウン​タイム​が​大きな​損害​を​もたらす​よう​な​アプリケーション​に​も​重要​です。​ユーザプログラムの実行が停止するような事態となった時、​コンピュータ​全体​が​自動​で​再​起動​さ​れる​よう、​リアルタイム​システム​に​は​通常​「ウォッチドッグ」​機能​が​搭載​さ​れ​てい​ます。​さらに、​リアルタイム​システム​に​使用​さ​れる​ハードウェア​は、​極めて​堅牢​に​設計​さ​れ​て​いる​こと​が​多く、​過酷​な​条件​や​長期​稼動​に​も​耐える​こと​が​でき​ます。

リアルタイム​システム​を​構成​する​コンポーネント

リアルタイム​システム​の​構築​に​必要​な​主要​コンポーネント​は​RTOS​ですが、​他​に​も​様々​な​ソフトウェア​や​ハードウェア​が​必要​です。

ソフトウェア

  • RTOS:​極めて​精度​の​高い​タイミング​で​ユーザ​プログラム​を​確実​に​実行​する​よう​設計​さ​れ​た​特殊​OS​です。
  • 開発​ツール:​リアルタイム​オペレーティングシステム​と​互換性​の​ある​コード​を​生成​する​コンパイラ、​リンカ、​デバッガ​が​必要​です。
  • ドライバ:​リアルタイム​オペレーティングシステム​で​システム​ハードウェア​や​I/​O​モジュール​と​通信​する​に​は、​ほとんど​の​I/​O​操作​で​最悪​ケース​の​タイミング​を​保証​する​リアルタイム​対応​ドライバ​が​必要​です。

ハードウェア

  • I/​O​モジュール​と、​リアルタイムドライバ​(ソフトウェア​セクション​に​記載)​を​搭載​した​システム​ハードウェア
  • (オプション)​堅牢​な​ハードウェア:​リアルタイム​システム​に​使用​する​シャー​シ​は、​長期間​にわたり​過酷​な​環境​で​の​使用​に​耐える​設計​と​な​って​いる​もの​が​適​し​てい​ます。
  • (オプション)​ウ​ォ​ッ​チ​ド​ッ​グ​タイマ:​内蔵​の​ウ​ォ​ッ​チ​ド​ッ​グ​タイマ​は、​ユーザ​プログラム​の​稼動​が​停止​すると、​コンピュータ​全体​を​自動​で​再​起動​し​ます。

まとめ: リアルタイム​システム​を​採用​する​メリット

結論​として、​リアルタイム​システム​は、​プログラム​の​特定​部分​を​一定​時間​内​に​実行​する​必要​が​ある​場合​や、​プログラム​を​長期間​にわたって​稼動​させる​必要​が​ある​場合​に​適​し​てい​ます。​ミッション​クリティカル​プロジェクト​や​安全​性​に​関わる​プロジェクト​なら、​明らか​に​リアルタイム​システム​が​必要​です。

高​精度​タイミング​や​長期​稼動​が​絶対​条件​では​ない​プロジェクト​でも、​リアルタイム​システム​を​構築​し​て​お​け​ば、​計測/​制御​プロセス​を​中断​する​こと​なく​継続​的​に​プログラム​を​稼動​できる​という​安心​感​が​得​ら​れ​ます。​現在構築しているシステムの動作が停止した場合の保守費用を考えれば、​リアルタイム​システム​の​構築​に​必要​な​ソフトウェア​や​ハードウェア​の​費用​も​無駄​では​ない​かも​し​れ​ま​せん。

リアルタイム​システム​は、​全て​の​計測/​制御​プロジェクト​に​適​し​て​いる​わけ​では​ありま​せん。​リアルタイム​オペレーティングシステム​は​通常​一度に​1​つのプログラムしか実行せず、​ほとんど​の​リアルタイム​システム​は​ユーザ​インタフェース​が​ありま​せん。​その​場合​グラフィック​や​ユーザ​制御​に​は​別​の​コンピュータ​が​必要​となり​ます。​プロジェクト​によって​は、​ASIC​や​FPGA​に​ロジック​を​実装​した​ハードウェア​確定​性​が​必要​な​もの​も​あり​ます。​それでも​現在​数​千​に​及ぶ​リアルタイム​システム​が​稼動​し​て​おり、​今後​も​高​精度​タイミング​と​高信頼​性​が​求め​られる​プロジェクト​に​は​積極​的​に​採用​さ​れ​続ける​で​しょう。

次​の​ステップ

以下​の​資料​では、​NI​の​ソフトウェア​と​ハードウェア​を​使用​し​て​極力​短時間​で​優​れ​た​リアルタイム​システム​を​構築​する​方法​を​ご覧​い​た​だけ​ます。

NI​ハードウェア​と​ソフトウェア​で​リアルタイム​システム​を​構築

評価​版​ソフトウェア