機能安全に触れる機会があり、技術・手法群についてもとても勉強になりそうであったため、一つずつ理解していきたい
IEC 61508-3:2010 附属表A
IEC 61508-3:2010 附属表Aにおいて、要求安全度水準に従って採用すべき技術・手法が規定されている。
以下の表はIEC 61508-3:2010 附属表Aより引用
https://kikakurui.com/c0/C0508-3-2014-01.html
評価 | 説明 |
---|---|
HR | この安全度水準には、技法又は手段を使用することを強く推奨する。この技法又は手段を使用しない場合は、使用しない理論的根拠について、附属書Cを参照して安全計画時に詳述しなければならず、またアセッサと合意しなければならない。 |
R | この安全度水準には、HR推奨より低い推奨事項としての技法又は手段が望ましい。 |
— | 技法又は手段を使用することに関しては、推奨も反対もしない。 |
NR | この安全度水準には、技法又は手段を使用することを積極的には推奨しない。この技法又は手段を使用する場合は、使用する理論的根拠について、附属書Cを参照して安全計画時に詳述しなければならず、またアセッサと合意することが望ましい。 |
表A.2−ソフトウェア設計及び開発−ソフトウェアアーキテクチャ設計(7.4.3参照) の一部抜粋
https://kikakurui.com/c0/C0508-3-2014-01.html
ID | 技法及び手段 | 参照先 | SIL 1 | SIL 2 | SIL 3 | SIL 4 |
---|---|---|---|---|---|---|
5 | 人工知能−フォールト修正 | IEC 61508-7の C.3.9 | — | NR | NR | NR |
6 | 動的再構成 | IEC 61508-7の C.3.10 | — | NR | NR | NR |
7 | モジュラーアプローチ | 表B.9 | HR | HR | HR | HR |
8 | 信頼性確認及び検証済ソフトウェア要素の使用(利用できる場合) | IEC 61508-7の C.2.10 | R | HR | HR | HR |
9 | ソフトウェア安全要求仕様及びソフトウェアアーキテクチャとの間の前方トレーサビリティ | IEC 61508-7の C.2.11 | R | R | HR | HR |
10 | ソフトウェア安全要求仕様及びソフトウェアアーキテクチャ間の後方トレーサビリティ | IEC 61508-7の C.2.11 | R | R | HR | HR |
11a | 構造化図表法b) | IEC 61508-7の C.2.1 | HR | HR | HR | HR |
11b | 準形式手法b) | 表B.7 | R | R | HR | HR |
11c | 形式的設計手法及び精緻化手法b) | IEC 61508-7の B.2.2及びC.2.4 | — | R | R | HR |
11d | 自動ソフトウェア生成 | IEC 61508-7の C.4.6 | R | R | R | R |
12 | コンピュータ支援仕様書作成ツール コンピュータ支援設計ツール | IEC 61508-7の B.2.4 | R | R | HR | HR |
13a | 最大周期を保証した周期的挙動 | IEC 61508-7の C.3.11 | R | HR | HR | HR |
13b | タイムトリガアーキテクチャ | IEC 61508-7の C.3.11 | R | HR | HR | HR |
13c | 最大応答時間を保証したイベント駆動 | IEC 61508-7の C.3.11 | R | HR | HR | — |
IEC 61508-7:2010
IEC 61508-7:2010にて
・ 最大周期を保証した周期的挙動
・ タイムトリガアーキテクチャ
・ 最大応答時間を保証したイベント駆動
が以下の定義が示されている
C.3.11 リアルタイムでの安全性及び性能:タイムトリガアーキテクチャ
注記1 この技術及び手法は,JIS C 0508-3の表A.2で引用されている。
目的:予測可能な挙動をもつ安全性が重要なリアルタイムシステムへの,フォールトトレランスを構成可能にし,透明性のある実装を行う。
説明:タイムトリガ(時間駆動)アーキテクチャ(TTA)システムにおいては,全てのシステム活動を,大域的に同期している時間基準で開始して,進行もこの時間基準に基づいている。それぞれのアプリケーションには,バス上に時間駆動した固定時間スロットを割り当て,スロットには,各アプリケーションのジョブの間で交換するメッセージを納める。したがって,メッセージを,定義したスケジュールに従ってだけやりとりすることができる。その一方で,事象駆動システムにおいては,システム活動が,時間内の予測できない時点での不特定事象によって動作している。TTAの重要な利点を,次に示す(Scheidler, Heinerなどの参考文献を参照)。
− システムのテスト及び認証に必要な労力を大幅に減らす,構成可能性。
− アーキテクチャを安全が重要なアプリケーション用として高く推奨できるようにする,フォールトトレランスの透明性のある実装。
− 分散型リアルタイムシステムの設計を容易にする,大域的同期化時間基準の提供。 時間駆動プロトコル[TTP/C(Kopetz, Hexel他の参考文献参照)]を用いて,メッセージ送信の時期,及び受信メッセージが個別の電子モジュールに関連しているかどうかを決定する静的スケジュールに従ってノード間通信を行う。また,時間の大域的概念(グローバルノーション)から導いた,周期的時分割多重アクセス(TDMA)方式によってバスへのアクセスを管理する。 時間駆動プロトコルは,TTAノードのネットワーク(Rushbyの参考文献参照)において,次の4種類の基本的サービス(コアサービス)を保証する(Kopetz,Bauerの参考文献参照)。
− 決定論的及び適時のメッセージ転送 推測的に分かっている時間限界内に,送信要素の出力ポートから,受信要素の入力ポートまでのメッセージ転送。コントロールエラーの伝ぱ(播)を設計によって排除し,要素間の結合を最小限に抑える時間ファイアウォールインタフェースを経由して利用できる時間駆動通信サービスがフォールトトレラントな転送サービスを提供する。レイテンシー及びジッタを最小限に抑えたメッセージの適時な転送サービスは,リアルタイムアプリケーションでコントロールの安定性を実現するために不可欠である。
− フォールトトレラントな時刻同期 通信コントローラが,ホストサブシステムに送るフォールトトレラントな大域時間基準を(数クロック間隔内の精度で)発生する。
− 故障しつつあるノードの一貫診断(メンバーシップサービス) 通信コントローラによって,全てのSRU(“最小交換可能ユニット”)に対して,同一クラスタ内の他の全てのSRUの状態を,1 TDMAラウンド未満の待ち時間で知らせる。
− 強力なフォールト隔離 フォールトを故意に発生させるホストサブシステム(そのソフトウェアを含む。)は,誤ったデータ出力を生成する可能性があるが,そのホストサブシステムがTTP/Cクラスタの残りの部分の適切な動作に何らかの干渉をすることは決してできない。通信コントローラの時間駆動された挙動によって,時間領域でのフェールサイレンスを保証する。 注記2 その他の時間駆動プロトコルとしては,フレックスレイ(FlexRay)及びタイムトリガードイーサネット(TT-Ethernet)がある。参考文献: Time-Triggered Architecture (TTA). C. Scheidler, G. Heiner, R. Sasse, E. Fuchs, H. Kopetz, C. Temple. In Advances in Information Technologies: The Business Challenge, ed. J-Y. Roger. IOS Press, 1998, ISBN 9051993854, 9789051993851 A Synchronisation Strategy for a TTP/C Controller. H. Kopetz, R. Hexel, A. Krueger, D. Millinger, A. Schedl. SAE paper 960120, Application of Multiplexing Technology SP 1137, Detroit, SAE Press, Warrendale, 1996 The Time-Triggered Architecture. H. Kopetz, G. Bauer. Proceedings of the IEEE Special Issue on Modeling and Design of Embedded Software, October 2002 78 C 0508-7:2017 (IEC 61508-7:2010) An Overview of Formal Verification for the Time-Triggered Architecture. J. Rushby: Invited paper, Oldenburg, Germany, September 9-12, 2002. Proceedings FTRTFT 2002, Springer LNCS 2469, 2002, ISBN 978-3-540-44165-6
https://kikakurui.com/c0/C0508-7-2017-01.html
タイムトリガアーキテクチャと対を成すアーキテクチャはイベントトリガアーキテクチャです。
最大周期を保証した周期的挙動 / タイムトリガアーキテクチャ
タイムトリガアーキテクチャのメリットとしては、上述されているように、
・確定性:
・低ジッタ(タスクの実行タイミングの揺らぎ):
・高信頼性:タスクの競合・予期しない遅延が発生しないので、フォールトトレランスの設計が容易
があげられます。リソース競合が最小化されるため、実行時間の予見性が高く、リアルタイム性が求められるシステムに採用されています。例えば、航空機のフライトコントロールシステムや自動車のエンジン制御システム、産業用オートメーションです。
なお、タイムトリガアーキテクチャではスロット内でジョブが完了することが期待されており、それでもってリアルタイム性・高信頼性を実現しているため、各ジョブに対するスロット時間の規定は十分なマージンをもって行う必要がある。
スロット内で完了しなかった場合には、強制終了、優先度管理、エラーハンドリング、スロット延長等が実施されます
最大応答時間を保証したイベント駆動
安全機能に対してイベント駆動アーキテクチャを使用する場合、最大応答時間を規定し、最大応答時間内に処理が完了しない場合の以上処理も適切に処理される必要がある
最大応答時間には以下の要素等が含まれる
・トリガー信号のスキャン待ち
・割り込み待ち
・リトライ時間
・ネットワーク経由伝達時間
javaにおいては、Futureパターンに対して、タイムアウトを設定して実行することが可能です。
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<?> future = executor.submit(() -> handleEvent("Sample Event"));
try {
future.get(MAX_RESPONSE_TIME_MS, TimeUnit.MILLISECONDS);
System.out.println("Event handled within the guaranteed response time.");
} catch (TimeoutException e) {
System.err.println("Failed to handle event within the guaranteed response time.");
future.cancel(true); // タイムアウトした場合はタスクをキャンセル
} catch (InterruptedException | ExecutionException e) {
System.err.println("An error occurred: " + e.getMessage());
} finally {
executor.shutdown();
}