II-26-6. 組み込みアプリケーションにおける高信頼化実装

組み込みアプリケーションにおける高信頼性を確保する手段として、フォールトアヴォイダンス、フォールトトレランスなどの考え方や高信頼化のために利用される様々な工夫を紹介する。

【学習の要点】

* 組み込みシステムの高信頼性を実現するためには、フォールトアヴォイダンス(Fault Avoidance)、フォールトトレランス(Fault Tolerance)の検討が必須である。

* 高信頼性を実現するための具体的な手法として、N バージョンプログラム、リカバリブロックスキームなどがあり、高度な信頼性を要求される際には検討すべきである。

* 信頼性と汎用性とのトレードオフを考慮する必要がある。

図II-26-6. Nバージョンプログラムとリカバリブロック

【解説】

1) 高信頼性の考え方

* フォールトアヴォイダンス(Fault Avoidance)

- システムの潜在的な問題を低減させるために様々な手段を講じ、システムが故障しないようにすること。

- 組み込みシステムの場合、高品質の部品を積極的に選択するなどが考えられる。

* フォールトトレランス(Fault Tolerance)

- システムの冗長性を高め、システムの障害が起こりにくくなるようにすること。また、障害の際の被害を最小限に抑えられるようにすること。

* フォールトマスキング(Fault Masking)

- システムに障害が起きた際に、他への伝播を防ぐこと。

2) 高信頼性ソフトウェアを実装する技術

フォールトトレラントを実現するために冗長性を高める設計手法としては以下のものがある。

* N バージョンプログラム

- ある一つのタスクを遂行するためのプログラムをN種類用意し、その多数決の結果を出力結果として採用する。(図のPはプログラムを意味する)

* リカバリブロックスキーム

- ある一つのタスクを遂行するためのモジュールをN種類用意する。(図のMはモジュール)

- 1つめのモジュール(主モジュール)を実行してテストを行った結果、誤りを含んでいる場合、代替モジュールを用いて再計算する。再計算した結果も同様にテストを行う。

- テストを通過するまでさらに別の代替モジュールで再実行していく。

3) 高信頼性と汎用性のトレードオフ

* ソフトウェアの信頼性を高めるための機能を盛り込みすぎると、よりリソース制約の厳しい環境下での再利用ができなくなるなど、高信頼性と汎用性にはトレードオフの関係がある。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。