ウォッチドッグタイマー:仕組み、種類、用途
ウォッチドッグタイマーは、稼働中のシステムが定期的にタイマーをリセットしない場合に割り込みやリセットを起動し、ソフトウェアまたはハードウェアの故障を検出・復旧する監視用タイマーです。
概要
ウォッチドッグタイマーは、電子システムにおいてソフトウェアまたはハードウェアの異常を検出し、システムを既知の状態へ復旧させるために用いられる監視機構である。基本的な考え方は単純であり、監視対象のシステムは定期的にタイマーをリセット、すなわち「キック」しなければならない。あらかじめ定められた時間内にタイマーがサービスされなければ、正常に動作していないと判断し、割り込みの生成や強制リセットなど、定義済みの処置を実行する。
画像ギャラリー
7 画像動作の仕組み
多くのウォッチドッグは、カウントダウンタイマーと、タイムアウト時に実行される動作から構成される。監視対象のソフトウェアまたは監視回路が、制御レジスタへの書き込みや信号の送信を定期的に行い、カウントダウンを再開させる。正常な動作が継続する限り、タイマーがゼロに達することはない。システムがハングするとタイマーは満了し、ウォッチドッグは設定された応答を実行する。これには、マスク不能割り込み、ソフトウェアによる復旧の試行、完全なハードウェアリセットなどがある。
種類と構成要素
- ハードウェア・ウォッチドッグ:マイクロコントローラ内部、または外部の監視用チップ内に、専用シリコンとして実装される。ハングしたCPUから独立している点が重視される。
- ソフトウェア・ウォッチドッグ:コードとして実装され、バックグラウンドタスクやオペレーティングシステム内で動作することが多い。実装はより簡単だが、ソフトウェアスタックに依存するため、故障モードによっては信頼性が低くなる場合がある。
- ウィンドウ型ウォッチドッグ:一定の時間窓内でサービス処理を行うことを要求する。早すぎる、または遅すぎるサービス処理の双方を防ぎ、タイミング異常の検出に役立つ。
一般的な要素には、タイマーカウンタ、サービスまたはキック用のインターフェース、タイムアウト時の動作(リセット、割り込み、警告)が含まれる。外部監視用チップは、ウォッチドッグ機能に加え、電源監視やブラウンアウト検出を提供することもある。
歴史と発展
ウォッチドッグタイマーは、常時手動で監視できないシステムの信頼性を実用的に向上させる手段として、初期の組込み機器および通信機器で登場した。その後、マイクロコントローラやシステム・オン・チップの設計に取り込まれ、民生用、産業用、自動車用、航空宇宙用の電子機器における標準機能となった。より幅広い故障モードに対応するため、設計には多段階の復旧、プログラム可能なタイムアウト、ウィンドウ動作などが取り入れられてきた。
用途と例
ウォッチドッグは、無人で運用されるシステムや、安全性が重視されるシステムが利用可能な状態を維持しなければならない場所で使用される。一般的な用途は次のとおりである。
- ルーターや家電製品などの組込み機器、およびマイクロコントローラベースの製品。
- ソフトウェア障害の発生時にも制御機能を維持するための自動車システム。
- 遠隔からの復旧が不可欠な産業制御、医療機器、航空宇宙システム。
- ハングしたサービスを自動的に再起動するためのサーバーおよびネットワーク機器。
設計上の考慮点と注目すべき事実
ウォッチドッグのタイムアウト値を選ぶ際には、応答性と誤作動のバランスが必要となる。短すぎる値では、時間はかかるものの正当な処理中にリセットが発生する可能性があり、長すぎる値では復旧が遅れる。また設計者は、システムクロックを共有する内部ウォッチドッグと、主クロックが停止した場合でも機能を維持する独立した外部監視回路とを区別する。サービス処理は、ウォッチドッグを「ペットする」または「キックする」と表現されることが多い。
ウォッチドッグは、より広範な障害検出戦略と統合されることが多く、安全性が重要な状況では規制上の指針やベストプラクティスの対象となる。技術的な詳細については、部品のデータシートまたはシステム設計ガイドを参照する。部品の概要、システムレベルの指針、ハードウェア実装、ソフトウェアによる手法、タイムアウト信号の選択肢。
関連項目
著者
AlegsaOnline.com ウォッチドッグタイマー:仕組み、種類、用途 Leandro Alegsa
URL: https://ja.alegsaonline.com/art/106771