Atelier Inc. & WITZ Inc. © 2015 All Rights Reserved 2015/7/30 SECセミナー
ソフトウェアの誤動作に影響する故障原因 (Fault) の代表例
コンポーネント 故障モード
固着
タイムアウト 固着
データ化け 固着
データ化け 固着
データ化け
誤った命令の実行 命令が実行されない データの固着
アドレスの固着 データ化け
アドレス化け データの固着 アドレスの固着 データ化け
アドレス化け
クロック 周期の誤り
ソフトウェア ソフトウェアのバグ
スタックポインタ 命令デコーダ
ROM
RAM
マイコン故障に対する主なソフトウェアによる安全策
故障モード 主な安全策(故障診断方法) ISO26262-5 ROM 故障 ・チェックサムや CRC による ROM 故障検出 Table D.5 RAM 故障
・チェックサムやパターンテストによる RAM 故 障検出
・安全関連データの2重管理
Table D.6
CPU コア故障
・レジスタのテスト
・スタックオーバー/アンダーフロー検出
・実行シーケンスモニタ+ WDT
Table D.4
Table D.10
クロック故障 ・タイムウインド付き WDT Table D.10
内部バス故障検出 ・ウォーキングビットによるバス故障検出 Table D.14
Atelier Inc. & WITZ Inc. © 2015 All Rights Reserved 2015/7/30 SECセミナー
RAM 故障に対する安全策(故障診断)の例
ISO26262-5
90%
99%
60%
99%
99%
99%
DC
ソフトウェアのバグ(誤動作)検出機構( IEC61508 )
IEC61508-3
Atelier Inc. & WITZ Inc. © 2015 All Rights Reserved 2015/7/30 SECセミナー
ソフトウェアのバグ(誤動作)検出機構( ISO26262 )
ISO26262-6
<従来開発>
テストがしっかり出ていてバグが無い。
<機能安全>
テストの完全性は不可能。
バグが潜んでいることを前提に対処。
ソフトウェアの誤動作に影響する故障原因 (Fault) と異常動作の一例
1.v_req_heatの上下限補正
(0~5の範囲にする)
20.v_req_heat --S3押下割込み
30.v_req_heat ++
S4押下割込み main
2.v_req_heatに対応したS1,S2出 力時間(t)を変換テーブルから取得
し、v_tに格納する
3.S1のポートに‘1’を出力
4.Wait(v_t)
5.S1のポートに‘0’を出力
6.Wait(d)
7.S2のポートに‘1’を出力
8.Wait(v_t)
9.S2のポートに‘0’を出力
10.Wait(d) 処理のスキップ
処理の繰り返し
原因:ROM故障
原因:割込みコントローラ故障
・割込みが不要に入る
・割込みが入らない
原因:RAM故障、
ノイズによるRAM化け
・変数が異なる値になる
原因:クロック故障 待ち時間が期待値より長い・短い 誤処理
原因:CPUコア故障
(PC,SP,レジスタ,デコー ダ
,etc)
※IHクッキングヒーターの例
Atelier Inc. & WITZ Inc. © 2015 All Rights Reserved 2015/7/30 SECセミナー
ソフトウェア詳細設計の改善例
※IHクッキングヒーターの例
5. 安全分析演習
Atelier Inc. & WITZ Inc. © 2015 All Rights Reserved 2015/7/30 SECセミナー