JP2007534049A - プロセッサの機能性を監視するためのウォッチドッグシステムおよび方法 - Google Patents

プロセッサの機能性を監視するためのウォッチドッグシステムおよび方法 Download PDF

Info

Publication number
JP2007534049A
JP2007534049A JP2006550365A JP2006550365A JP2007534049A JP 2007534049 A JP2007534049 A JP 2007534049A JP 2006550365 A JP2006550365 A JP 2006550365A JP 2006550365 A JP2006550365 A JP 2006550365A JP 2007534049 A JP2007534049 A JP 2007534049A
Authority
JP
Japan
Prior art keywords
processor
ack signal
timer
ack
watchdog
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006550365A
Other languages
English (en)
Inventor
プラガシュ,ヴェダム・ジュード
スワミナタン,シータラマン
ポティラジャン,カンダサミ
Original Assignee
ケープ・レンジ・ワイヤレス,リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ケープ・レンジ・ワイヤレス,リミテッド filed Critical ケープ・レンジ・ワイヤレス,リミテッド
Publication of JP2007534049A publication Critical patent/JP2007534049A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

ウォッチドッグと通信するプロセッサの機能性を監視するためのウォッチドッグシステムおよび方法が提供される。少なくとも1つの実施形態では、プロセッサの機能性を監視するウォッチドッグシステムは、起動タイマと、禁止タイマと、ACKタイマと、サイクル周期タイマとを採用する。プロセッサがリセットから逃れるために所定の時間にプロセッサから一定数のACK信号が待ち受けされる。例えば、(i)起動タイマが期限切れになる前にACK信号を1つも受信しないこと、(ii)ACKタイマが期限切れになる前にACK信号を1つでも受信すること、(iii)禁止タイマが期限切れになる前にACK信号を1つでも受信すること、(iv)サイクル周期タイマが期限切れになる前に全てのACK信号を受信しないこと、のいずれか1つの条件が満足されたときにリセット信号が監視対象のプロセッサにアサートされる。

Description

本発明は、ウォッチドッグ(watchdog)、特に、プロセッサと通信してその機能性を監視するためのウォッチドッグシステムおよび方法に関する。
ウォッチドッグとは、プロセッサとの通信を通じて、プロセッサの機能性、例えばプロセッサにおけるソフトウェアの実行、を継続的に監視するために使用されるハードウェア・デバイスである。プロセッサが不安定状態または好ましくない状態にあると判断されると、ウォッチドッグはプロセッサをリセットするためにリセット信号をプロセッサまたはプロセッサシステムの他の部分に送信する。プロセッサはそのリセット信号を受信すると、制御された方法でリセットルーチンを実行する。リセットの後、プロセッサはそれ自身を初期化(“起動(boot up)”)してから、正常動作を試みる。
Vasanojaに帰属する米国特許第6,405,328号明細書には、連続して受信されるACK(acknowledgement)信号の時間間隔を監視するウォッチドッグが開示されている。この特許文献の開示内容全体を引用することにより本願の一部をなすものとする。プロセッサは許容カウンタ(tolerance counter)が設定する許容範囲内にある限り定期的にACK信号を提供することが期待される。ACK信号が存在しないかあるいはACK信号が非定期的に受信されると、リセット信号がプロセッサにアサート(assert)される結果となる。つまり、ACK信号の受信が早過ぎたりもしくは遅過ぎたり、あるいは信号そのものが全く見つからなかったりしたときには、ウォッチドッグはプロセッサをリセットする。このタイプのウォッチドッグの1つの欠点は、それは受信されるACK信号の受信の定期性(あるいは周期性)を課しているだけということ、言い換えると、ACK信号はある許容度で特定の時間間隔で受信されなければならないだけということである。ACK信号の順序または順番は問題になっていない。このため、このタイプのウォッチドッグは、例えば、定期的なACK信号を継続的に送信する悪い無限ループ(indefinite-loop)プロセスを検出かつリセットすることができない。このタイプのウォッチドッグのもう1つの欠点は、リセットが例えば電源障害による実際のシステムリセットまたはユーザによるシステムのスイッチオフと区別することができないということである。さらに、頻繁に起こるシステム障害の場合にアラーム通知を開始する手段が一切与えられていない。
本発明は、従来技術のこれらの欠陥および他の欠陥を克服するために、1つ以上のプロセッサによって送信されたACK信号の順序をそれらの信号のタイミングと併せて追跡するウォッチドッグシステムおよび方法を提供する。
本発明は、N本の異なるIOラインまたはIOラインとして機能するN個のレジスタを介して多くの異なるACK信号が受信されることを要求することによって、リセットが必要なシステムエラーを見逃す可能性を消滅させるとまではいかないまでも減少させるウォッチドッグを提供する。このようにすることによって、ACK信号の順序はそれらの定期性と一緒に監視される。
本発明の少なくとも1つの具体的な形態として、プロセッサの機能性を監視するためのウォッチドッグシステムであって、N個のACK(acknowledgement)信号入力を有する制御ロジック(control logic)と、当該ウォッチドッグシステムの起動と同時に開始される第1のタイマと、第2のタイマと、前記N個のACK信号入力の1つにおいて第1のACK信号を受信すると同時に前記第2のタイマと一緒に開始される第3のタイマと、リセット信号発生器(reset signal generator)とを含んでなるウォッチドッグシステムが提供される。前記リセット信号発生器は、(i)前記第1のタイマが期限切れになる前に前記N個のACK信号入力の1つにおいてACK信号を受信しないこと、(ii)前記第2のタイマが期限切れになる前に前記N個のACK信号入力の1つにおいてACK信号を受信すること、(iii)前記第3のタイマが期限切れになる前に前記N個のACK信号入力の全てにおいてACK信号を受信しないこと、のいずれか1つの条件が満足されたときにリセット信号を発生する。また、監視対象のプロセッサを当該ウォッチドッグシステムに結合するためのインタフェースが提供される。
本発明の少なくとも1つの具体的な形態として、プロセッサの機能性を監視するための方法であって、第1のタイマを開始するステップと、第2のタイマを開始するステップと、プロセッサまたはソフトウェア・モジュールから少なくとも1つのACK信号を受信するステップと、前記少なくとも1つのACK信号をどれか1つ受信するごとに同時に前記第1のタイマをリスタートするステップと、(i)前記第1のタイマが期限切れになる前に前記少なくとも1つのACK信号のいずれか1つの信号を受信すること、(ii)前記第2のタイマが期限切れになる前に前記少なくとも1つのACK信号の全てを受信しないこと、のいずれか1つの条件が満足された場合に監視対象のプロセッサをリセットするステップとを含んでなる方法が提供される。監視対象のプロセッサが正しく初期化されたことを示す初期化信号を受信すると同時に、前記第1および第2のタイマは2つとも同時に開始される。
本発明の少なくとも1つの具体的な形態として、ウォッチドッグに結合したプロセッサをリセットするための方法であって、前記プロセッサに結合したウォッチドッグを使用して前記プロセッサを監視するステップと、前記ウォッチドッグを使用して前記プロセッサをリセットするステップと、前記プロセッサをリセットする直前に前記プロセッサのリセット前の状態を示す状態情報を記憶するステップとを含んでなる方法が提供される。
本発明の少なくとも1つの具体的な形態として、プロセッサの機能性を監視するためのウォッチドッグシステムであって、N個のACK信号入力を有する制御ロジックと、プロセッサの起動が始まると同時に開始される起動タイマと、前記プロセッサの起動がうまく完了した後に動作サイクルが開始されるごとに開始される禁止タイマと、前記N個のACK信号入力の1つにおいてACK信号を受信すると同時に開始されるACKタイマと、前記プロセッサの起動がうまく完了した後に動作サイクルが開始されるごとに開始されるサイクル周期タイマと、リセット信号発生器とを含むウォッチドッグシステムが提供される。前記リセット信号発生器は、(i)前記起動タイマが期限切れになる前に前記N個のACK信号入力の第1の入力においてACK信号を受信しないこと、(ii)前記ACKタイマが期限切れになる前に前記N個のACK信号入力のいずれか1つの入力においてACK信号を受信すること、(iii)前記禁止タイマが期限切れになる前に前記N個のACK信号入力のいずれか1つの入力においてACK信号を受信すること、(iv)前記サイクル周期タイマが期限切れになる前に前記N個のACK信号入力の全ての入力においてACK信号を受信しないこと、のいずれか1つの条件が満足されたときに前記プロセッサに送信するためのリセット信号を発生する。
本発明の少なくとも1つの具体的な形態として、プロセッサの機能性を監視するための方法であって、起動タイマを開始するステップと、禁止タイマを開始するステップと、サイクル周期タイマを開始するステップと、少なくとも1つのACK信号を受信するステップと、前記少なくとも1つのACK信号の1つを受信すると同時にACKタイマを開始するステップと、(i)前記起動タイマが期限切れになる前に前記少なくとも1つのACK信号のどの信号も受信しないこと、(ii)前記ACKタイマが期限切れになる前に前記少なくとも1つのACK信号のいずれか1つの信号を受信すること、(iii)前記禁止タイマが期限切れになる前に前記少なくとも1つのACK信号のいずれか1つの信号を受信すること、(iv)前記サイクル周期タイマが期限切れになる前に前記少なくとも1つのACK信号の全ての信号を受信しないこと、のいずれか1つの条件が満足されたときに監視対象のプロセッサをリセットするステップとを含んでなる方法が提供される。
本発明の少なくとも1つの具体的な形態として、本発明のウォッチドッグシステムはリセット信号がアサートされる前にNMI(ノンマスカブル・インターラプト:nonmasksble interrupt)を提供する。NMI/リセットがアサートされただけでレジスタが設定され、それにより、リセット(クラッシュ)の原因やクラッシュを引き起こした特定のモジュールもしくはタスクを解析するための手段が提供されることができる。レジスタは他のソースから発生したNMIをウォッチドッグによってアサートされたNMIと区別することが可能である。
本発明の1つの利点は、従来技術と比較してより汎用かつローバストなウォッチドッグが提供されることである。
本発明のもう1つの利点は、多数の異なるIO(Input/Output)ラインまたはレジスタが採用されることにより、受信されるACK信号の順序もそれらのACK信号の定期性(あるいは周期性)またはタイミングと同程度に重要であることから、繰り返されるACK信号をもたらす無限ループ(indefinite loop)がリセットを逃れることを防止することができるということである。
本発明の上記その他の特徴および利点は、以下の本発明の好ましい実施形態のより具体的な説明、添付図面、および特許請求の範囲の各請求から、より明らかになるであろう。
以下、本発明の実施の好ましい形態を添付図面1乃至3を参照して詳細に説明する。これらの好ましい実施形態は、ウォッチドッグによって監視される1つ以上のプロセッサを含むコンピュータプロセッサシステムの論脈において考察される。プロセッサという用語は、1つ以上の指令を実行するまたはタスクを遂行することができる任意のロジック、回路構成、ハードウェア、コード、ソフトウェア等またはそれらの任意の組み合わせを表し、その実装については当業者であれば明らかである。とはいえ、本発明は、状態のモニタリングおよび/または或る程度の同期またはタイミングの精度を必要とする任意のタイプのマシンまたはプロセスに適用することができる。
一般的に、組み込みソフトウェアのプロセッサにおける実行は以下のような制御フローの一連の手続を踏む。電源が入り、クリスタルおよびパワーが安定化するとリセット信号がプロセッサから取り除かれる。続いてプロセッサは、好ましくはROM(Read Only Memory)にあるリセットベクタ(Reset Vector)と称される既知のアドレスから実行コードを開始する。一般的にROMはそこから実コードを実行するのに十分な速さを有しない。従って、有用コードはRAM(Random Access Memory)、例えばROMより高速なSDRAM(Synchronous Dynamic RAM)、から実行させる必要がある。このため、リセットベクタは、ROMからRAMへ実コードを移してRAMからコードの実行を開始するコード片を有する。このコード片はブートローダ(Boot Loader)と呼ばれ、そのプロセスは‘ブートローディング(boot loading)’として知られる。ソフトウェアは通常、周辺機器および他のソフトウェア・モジュール、例えば変数、割り込みレジスタ、および残りのコードによって使用される状態の初期化の後に実行を開始する。初期化が完了すると、プロセッサシステムはその要求(requirements)どおりの機能を開始する。要求はタスクと称される個別のソフトウェア・モジュールを使用して満足される。プロセッサシステムの複雑さに応じて、プロセッサシステムは1つ以上のタスクを有する場合がある。タスクはそれ自体、データを処理し、ユーザの入力および/または出力を取り扱い、そして他のタスクと相互作用することができる個別のプログラムと見なすことができる。タスクは、オペレーティングシステム(OS)の一部であるカーネル(kernel)によって実行(開始/停止/ブロック)される。本発明の少なくとも1つの実施形態によるウォッチドッグシステムはハードウェアに実装され、ソフトウェアのパフォーマンスのあらゆる段階を監視して最も早い時点で不安定性および/またはクラッシュを発見し、それによりソフトウェア作業を復旧しおよび/またはプロセッサシステムをリセットすることができる。
図1に本発明の少なくとも1つの実施形態によるウォッチドッグシステム(または“状態マシン”)100を示す。特に、ウォッチドッグシステム100は、プロセッサ・インタフェース(processor interface)110と、制御ロジック(control logic)120と、遅延コンポーネント(delay component)130と、同期入力(synchronous input)140と、最大値バンク(max value bank)150と、セーブ&リセット・ロジック(save & reset logic)160と、カウンタバンク(counter bank)170と、モニタ180とを含む。プロセッサ・インタフェース110は、制御ロジック120をウォッチ(つまり監視もしくはモニタ)対象である1つ以上のプロセッサ(図示せず)(以下、単に「プロセッサ」と呼ぶ)に結合させる。例えば、プロセッサ・インタフェース100はプロセッサのバスに接続され、その実装は当業者には明らかである。本発明の好ましい実施形態では、プロセッサ・インタフェース110は制御ロジック120に、各々のラインがプロセッサによって生成される対応するN番目(順番)のACK信号に関連するN本の固有のIO(Input/Output)ライン115A−Nを提供する。更により詳しく説明するように、プロセッサはリセットを回避するために特定の方法によって各々のIOライン115A−Nをトグル(toggle)する。
本発明の代わりの実施形態では、IOラインを持たないプロセッサを監視するか、あるいはIOラインを採用してはいるがその中の任意数のIOラインは他の目的で自由にしてあるプロセッサを監視することができるようにするために、N個のレジスタ(図示せず)または同様のものがIOライン115A−Nの代わりに実装される。このタイプの実装では、ACK信号は特定のレジスタへのあるデータパターンの書き込みに相当する。好ましくは、固有のデータパターンが各レジスタに書き込まれる。各レジスタは固有アドレスによって識別できるが、固有データパターンも各レジスタに書き込まれることが好ましい。例えば、プロセッサは固有データパターン(例えば0xAA)が特定のレジスタロケーション(0xFF880000)に書き込まれるように書き込み操作を実行する。これにより、偽りのACK信号を与える可能性のあるプロセッサのソフトウェアにおける誤ったあるポインタ操作を回避する。固有データをアドレスの異なる多数のレジスタに書き込むことを要求することにより、ウォッチドッグシステム100が偽りのACK信号にだまされる可能性が減る。このタイプの設定(configuration)はFPGA(Field Programmable Gate Array)によって実施される。
制御ロジック120は、ウォッチドッグシステム100がプロセッサの機能性を監視することを可能にする3つのカウンタ/タイマ(図示せず)を含むカウンタバンク170に結合される。これらの3つのカウンタは、サイクル(繰り返し)周期カウンタ(cycle period counter)と、禁止期間カウンタ(forbidden period counter)と、ACK期間カウンタ(acknowledgment period counter)と呼ばれ、その実施については以下のパラグラフでより詳細に説明される。制御ロジック120は同期入力140によって与えられた適切な数の同期入力イベントをカウントするために特定の時間にこれらのカウンタを作動させる。同期入力140は、例えば発振器または正確な周期信号を提供する任意の他のタイプのタイミング発生器もしくはインタフェースなどの周期的なイベント入力である。例えば、E1・PCM(pulse code modulation)デジタル回線からのフレーム同期信号がカウンタを駆動させるために利用することができ、その実施については当業者には明らかである。
制御ロジック120には、起動時にプロセッサに指定された遅延時間(“起動期間(boot up period)”)を与えるタイマである遅延コンポーネント130が結合される。この起動期間はプロセッサが初期化してACK信号を送信するのに十分な量の時間を指定する。従って本発明の少なくとも1つの実施形態では、ACK信号はこの起動期間の満了前に待ち受け(expect)される。制御ロジック120が起動期間中ではなく起動期間の満了後に例えばIOライン115Aを介してACK信号を受信するようなことがあればプロセッサは正しく初期化するのに失敗したことがわかるので、遅延コンポーネント130はプロセッサのリセットをトリガーする。プロセッサがリセットされたときはいつでも、遅延コンポーネント130は別の起動期間を時間計測するために即座にリスタートされる。
最大値バンク(max value bank)150は、起動期間タイマと、サイクル周期カウンタと禁止期間カウンタとACK期間カウンタとの所定の閾値を記憶するメモリとを含む。これらの値は監視対象のプロセッサの特定の動作特性に応じて設定可能である。好ましくは、これらの値は制御ロジック120のみによって読み出され、プロセッサ内のソフトウェアによって消去可能または再プログラム可能ではない。そうでなければ、プロセッサはリセットを逃れるためにこれらの値を修正することができてしまうからである。
セーブ&リセット・ロジック160はプロセッサをリセットするリセット信号を作動させるコンポーネントである。特に、セーブ&リセット・ロジック160はリセット信号164を適切なときにプロセッサに提供する。本発明の選択的な実施形態では、セーブ&リセット・ロジック160は、NMI(nonmaskable interrupt)として実現することができるセーブ(保存)信号168をプロセッサに更にアサートする。かかる設定において、セーブ信号168はリセット信号164に先行し、リセットの原因周辺のデータとデバッギング(debuggging)に有用でありうる任意の他の基本データを特定する情報を記憶する。これは特に、IOラインが個別のソフトウェア・モジュール/プロセッサによって制御されるマルチタスク/マルチプロセッサ環境において有用である。例えば、一般的なNMIハンドラ、すなわちISR(Interrupt Service Routine)は、致命的な(vital)タスク/ハードウェア状態を記憶することができ、この割り込みをトリガーしたイベントを特定し記憶することもできる。例えば、NMIは、限定はされないが電力障害またはユーザによるプロセッサシステムのリセットを含む多くの理由から生じる場合がある。さらに、ISRは、特定のIOラインが誤動作したこと、つまりトグルされなかったことを特定する情報を記憶することができる。これはどのIOラインがリセットを引き起こしたかを特定する助けになるのに必要なデバッグ情報を提供することができる。リセット直前のサイクルでIOライン115A−Nがトグルされたか否かを反映する情報(またはN個のレジスタに最後に書き込まれたデータ)を保存することによって、機能しなかったプロセッサの特定のモジュールまたはコンポーネントおよび/または特定のパラメータが特定可能である。この情報はリセットの原因を特定することを可能にするのみならず、プロセッサをその最後の適正な動作状態に復元するための重要なデータも提供する。
モニタ180は、(以下のパラグラフにおいて詳しく説明する)記憶された監督ポリシーに従って制御ロジック120によって受信されたACKパルスの周期性(あるいは定期性)および順番を監督する。好ましくは、このポリシーのいかなる違反もセーブ&リセット・ロジック160がプロセッサをリセットするようトリガーする。例えば、モニタ180は、サイクル周期の満了前にN個のACK信号が全て受信されないこと、あるいは禁止期間もしくはACK期間の間にN個のACK信号のいずれか1つが受信されたこと、あるいは受信したACK信号の特定の順番が間違っていることを見つけた場合には、セーブ&リセット・ロジック160にプロセスをリセットするよう指令する。
図2に本発明の少なくとも1つの実施形態によるウォッチドッグシステム100の全状態図200を示す。状態図200は、ブート状態(boot state)210と、リセット状態(reset state)220と、動作状態(operational state)230との3つの状態を含む。動作に関して言えば、ウォッチドッグシステム100は、電源が入ったときまたは起動したときにブート状態210にある。ブート状態210には遅延コンポーネント130によって提供される起動期間(boot up period)が伴う。起動期間の満了前にプロセッサがACK信号を送信することができない場合にはウォッチドッグシステム100はリセット状態220に移行し、その状態においてセーブ&リセット・ロジック160はプロセッサをリセットする。しかしながら、ACK信号が起動期間中に受信された場合、ウォッチドッグシステム100は動作状態230に直ちに移行する。動作状態230はウォッチドッグシステム100がプロセッサの起動後の活動を監視する状態である。更に説明されるように、ACK信号の正しいタイミングを指示するウォッチドッグポリシー(watchdog policy)にいかなる違反があっても、ウォッチドッグシステム100は動作状態230からリセット状態220へ遷移する。例えば、第1のACK信号が禁止期間中に受信された場合、またはそれより後のACK信号がACK期間中に受信された場合、ウォッチドッグシステム100はリセット状態220に入る。さらに、1サイクル周期の満了前に全てのACK信号が受信されない場合、ウォッチドッグシステム100はリセット状態220に入る。
図3に本発明の少なくとも1つの実施形態によるウォッチドッグポリシー300を示す。このポリシーは単なる例示であり、議論を単純化するためのものであって、N=3、すなわち3つの異なるIOライン115A−Cが採用されるシステム100に適用可能である。ウォッチドッグポリシー300は、既に導入した4つの期間として、起動期間(“tB”)と禁止期間(“t0”)とACK期間(“t1”)とサイクル周期(“T”)とを採用する。プロセッサが起動すると同時に、起動期間tBが開始される。この期間の満了前に、第1のACK信号310(“Ack1”)、すなわち第1のIO115Aのトグリング(toggling)、が待ち受けされる。起動期間中に第1のACK信号を受信できない場合には、プロセッサがリセット状態に移行する結果となる。起動期間中にACK信号310を受信するとすぐに、正常動作状態サイクル230が始まる。
起動期間tBは、プロセッサまたはプロセッサが接続されたボードが正しく初期化(ブート)することができるのにちょうど十分な長さの期間を与える。プロセッサが起動するために与えられた起動期間より長く時間を費やした場合、またはそれが全く起動しない場合、第1のACK信号310は時間内に受信されず、このためウォッチドッグシステム100はプロセッサをリセットすることになる。
第1のACK信号310が受信されるとすぐに、動作状態230の第1のサイクルが禁止期間t0およびサイクル周期Tと共に始まる。禁止期間が満了した時点において、別の第1のACK信号320(“Ack1”)、すなわち第1のIOライン115Aのトグリングが待ち受けされる。本発明の関係する実施形態では、IOライン115A−Cのいずれとも異なる独立なIOラインが(どの他のモジュールにも使用されない“Ack0”と称されるACK信号310を受信するために)ブートプロセスのためだけに導入することができる場合がある。ブートだけのための別個のIOラインは、資源(リソース)、すなわちIOラインの使用がそれらの使用を抑制するよう制約されなかった場合に可能である。このケースでは、N+1本のIOラインがシステム100に必要である。本発明の別の関係する実施形態では、ACK信号310はIOライン115A−Cのいずれか1つのラインを介して受信することができる。
Ack1が受信された後、ACK期間t1が開始される。このACK期間が満了した時点で、第2のACK信号330(“Ack2”)、すなわち第2のIOライン115Bのトグリングが待ち受けされる。第2のACK信号330が受信されるとすぐに、ACK期間がリスタートされる。この第2のACK期間が満了した時点で、第3のACK信号340(“Ack3”)、すなわち最後のIOライン115Cのトグリングが待ち受けされる。N番目のACK信号、例えば本例では第3のACK信号340の受信で1サイクルが終了し、動作状態230の新しいサイクルが開始される。つまり、禁止期間とサイクル周期がリスタートされ、起動期間を含まない上記プロセスが繰り返される。ACK信号の順序、すなわちAck1、Ack2、およびAck3は、あらゆるサイクルで同一である必要がある。
ACK信号が禁止期間中またはいずれかのACK期間中に受信された場合、プロセッサはウォッチドッグシステム100によってリセットされる。さらに、N番目のACK信号(図3ではAck3)はサイクル周期Tの満了前に受信されなければならない。N番目のACK信号をサイクル周期Tの満了前に受信することができなかった場合もシステム100はプロセッサをリセットする。モニタ180は受信ACK信号310−340の順序も監視する。例えば、Ack3がAck2より前に受信されたがそれ以外ウォッチドッグポリシーの全てのパラメータが満足された場合、モニタ180はプロセッサのリセットをトリガーする。サイクル周期Tと起動期間tBと禁止期間t0とACK期間t1とは個別に任意の望ましい期限に設定できる。さらに、禁止期間t0の満期とAck1との間の経過時間と、いずれかのACK期間t1の満期と次の対応する連続するACK信号(例えばAck2またはAck3)との間の経過時間は、サイクル周期Tの満了前にN番目のACK信号、例えばAck3が受信される限り変動する可能性がある。
上述したように、N番目のACK信号(すなわちAck3)がサイクル周期Tの終了前に正しく受信された場合、動作状態230は別のサイクルを繰り返すことによって継続される。かかる場合には、禁止期間およびサイクル周期は、N番目のACK信号を受信すると同時にリスタートされる。以前のサイクルと同様、禁止期間が満了した後に第1のACK信号Ack1が待ち受けされる。Ack1を受信した後、ACK期間t1が開始され、サイクルが正しく終了するまで、第2のACK信号Ack2等が待ち受けされる。このプロセスは、ウォッチドッグポリシー300の違反が生じるかまたはシステム100もしくはプロセッサがシャットダウンするまで継続的に繰り返される。
本発明の少なくとも1つの実施形態では、禁止期間とACK期間は同じ値に設定することができ、しかも同じカウンタ/タイマによって提供することができる。
本発明はプロセッサの適正動作を確保するためにプロセッサを定期的にチェックするスキームを提供する。要するに、このことは、プロセッサから比較的一定の間隔でACK信号を受信すること、例えばIOラインのトグル、によって遂行される。ウォッチドッグシステム100は、サイクル周期Tと禁止期間t0とACK期間t1とを提供する3つのタイマまたはカウンタによってサポートされる動作状態230にある。このスキームでは、プロセッサは禁止期間およびACK期間の間に“肯定応答(acknowledge)しない”ことが要求される。各サイクルごとに、禁止期間の満了をもって、ACK期間がN−1回繰り返される。1回の全サイクル周期(T)内に、N個の異なるIOラインがトグルされていなければならない。ACK信号の順番が正しくないか、またはACK信号の定期性が損なわれていれば、ウォッチドッグシステム100がリセット状態220へ遷移する結果となり、それによりプロセッサがリセットされる。
本発明のウォッチドッグスキームはN本の異なるIOラインを使用するので、受信されたACK信号の同一性および順序がそれらのACK信号のタイミングと全く同程度に重要であるときには繰り返されるACK信号を生成する無限ループ(indefinite-loop)はリセットを免れることができない。
本発明はIOピンの無いプロセッサに適している。例示的な実施形態では、第1のレジスタロケーションへの“0x55”の書き込みは第1のIOトグルに等しく、第2のレジスタロケーションへの“0xAA”の書き込みは第2のIOトグルに等しい。これらのロケーションへ他のどのようなパターンが書き込まれてもそれらのパターンは適正なIOトグルとは見なされることなく、従ってプロセッサはリセットされる。
本発明はタスクが同期的または非同期的なソフトウェアを監視するのによく適している。タスクが同期的なソフトウェアに関しては、各タスクの実行順序は予め定められており、各タスクはIOラインをトグルすることによってウォッチドッグシステムに肯定応答(acknowledge)する。従って、ウォッチドッグシステムは定期性の他に実行順序も監視する。タスクが非同期的なソフトウェアに関しては、ウォッチドッグシステムはウォッチドッグによって要求されたときにIOラインをトグルする中央ウォッチドッグタスクマネジャとインタフェースすることができる。次に、中央ウォッチドッグタスクマネジャは、定期的なクエリー・レスポンス機構(query-response mechanism)によって各個別のタスクの活動を監視する。ウォッチドッグタスクマネジャは、クエリー(問い合わせ)またはリクエストを定期的に送信することによってシステムに存在する全てのタスクと相互作用するソフトウェアコンポーネントである。呼び出されたタスクはレスポンスを送信することによって応答する。ウォッチドッグタスクマネジャはレスポンスを受信した場合にはウォッチドッグシステム100にACK信号を送信することになっており、ウォッチドッグシステム100はそのACK信号を受信しなければプロセッサをリセットすることになる。必要に応じて、レスポンスを返さなかったタスクを無効にするためのより洗練されたウォッチドッグタスクマネジャが実装可能であり、それにより全てのその他の残りのタスクが正しく実行されていれば無効にされたタスクを個別にリロードすることが可能となる。
本発明はマルチプロセッサ・アーキテクチャにも適している。かかるシナリオでは、各プロセッサから1本以上のIOラインが制御ロジック120に接続される。マルチプロセッサシステムでは、システム制御プロセッサは他の残りのプロセッサにもクエリーを同報し、それらのプロセッサはウォッチドッグシステム100にACK信号を直接送信すべきである。
以上の説明において、特に幾つかの好ましい実施形態に関して本発明を説明してきたが、特許請求の範囲の各請求項によって画定される本発明の範囲を逸脱することなく形態の細部に様々な変更を加えられることを当業者であれば理解するであろう。
本発明の少なくとも1つの好ましい実施形態によるウォッチドッグシステム(または“状態マシン”)の構成図である。 本発明の少なくとも1つの好ましい実施形態によるウォッチドッグシステムの全状態図である。 本発明の少なくとも1つの好ましい実施形態によるウォッチドッグポリシーを説明するための図である。

Claims (25)

  1. N個のACK信号入力を有する制御ロジックと、
    当該ウォッチドッグシステムの起動と同時に開始される第1のタイマと、
    第2のタイマと、
    前記N個のACK信号入力の1つにおいて第1のACK信号を受信すると同時に前記第2のタイマと一緒に開始される第3のタイマと、
    リセット信号発生器と
    を含んでなる、プロセッサの機能性を監視するためのウォッチドッグシステム。
  2. 前記リセット信号発生器は、
    (i)前記第1のタイマが期限切れになる前に前記N個のACK信号入力の1つにおいてACK信号を受信しないこと、
    (ii)前記第2のタイマが期限切れになる前に前記N個のACK信号入力の1つにおいてACK信号を受信すること、
    (iii)前記第3のタイマが期限切れになる前に前記N個のACK信号入力の全てにおいてACK信号を受信しないこと、のいずれか1つの条件が満足されたときにリセット信号を発生するものである請求項1に記載のウォッチドッグシステム。
  3. 前記N個のACK信号入力を介して前記制御ロジックに結合されており、監視対象のプロセッサを当該ウォッチドッグシステムに結合しているインタフェースを更に含む請求項1に記載のウォッチドッグシステム。
  4. 前記リセット信号は前記プロセッサ・インタフェースに結合した監視対象のプロセッサをリセットするものである請求項3に記載のウォッチドッグシステム。
  5. リセットの直前に監視対象のプロセッサの状態に関する情報を保存するためのロジックを更に含むことを特徴とする請求項4に記載のウォッチドッグシステム。
  6. 各前記タイマの継続時間は固有の値に設定することができることを特徴とする請求項1に記載のウォッチドッグシステム。
  7. 前記N個のACK信号入力はIO(入力/出力)ラインである請求項1に記載のウォッチドッグシステム。
  8. 前記N個のACK信号入力はレジスタである請求項1に記載のウォッチドッグシステム。
  9. 第1のタイマを開始するステップと、
    第2のタイマを開始するステップと、
    プロセッサまたはソフトウェア・モジュールから少なくとも1つのACK信号を受信するステップと、
    前記少なくとも1つのACK信号をいずれか1つ受信するごとに同時に前記第1のタイマをリスタートするステップと、
    (i)前記第1のタイマが期限切れになる前に前記少なくとも1つのACK信号のいずれか1つの信号を受信すること、(ii)前記第2のタイマが期限切れになる前に前記少なくとも1つのACK信号の全てを受信しないこと、のいずれか1つの条件が満足された場合に監視対象のプロセッサをリセットするステップと
    を含んでなる、プロセッサの機能性を監視する方法。
  10. 前記第1および第2のタイマは同時に開始されるものである請求項9に記載の方法。
  11. 監視対象のプロセッサが正しく初期化されたことを示す初期化信号を受信するステップを更に含み、前記第1および第2のタイマは前記初期化信号を受信すると同時に開始されるものである請求項10に記載の方法。
  12. いずれかの条件が満足されたときに監視対象のプロセッサをリセットするステップは、
    監視対象のプロセッサに関する状態情報を記憶するステップを更に含むものである請求項9に記載の方法。
  13. 起動タイマを開始するステップと、
    前記起動タイマが期限切れになる前に監視対象のプロセッサからそのプロセッサが正しく初期化されたことを示す初期化信号が受信されない場合には、その監視対象のプロセッサをリセットするステップと
    を更に含む請求項9に記載の方法。
  14. 前記第1および第2のタイマは前記初期化信号を受信すると同時に両方とも開始されるものである請求項13に記載の方法。
  15. ウォッチドッグに結合したプロセッサをリセットするための方法であって、
    前記プロセッサに結合したウォッチドッグを使用して前記プロセッサを監視するステップと、
    前記ウォッチドッグを使用して前記プロセッサをリセットするステップと、
    前記プロセッサをリセットする直前に前記プロセッサのリセット前の状態を示す状態情報を記憶するステップと
    を含んでなる方法。
  16. 前記プロセッサの状態情報を記憶するステップはNMI(マスク不可能な割り込み)をアサートするステップを含むものである請求項15に記載の方法。
  17. N個のACK信号入力を有する制御ロジックと、
    プロセッサの起動が始まると同時に開始される起動タイマと、
    監視対象のプロセッサの起動がうまく完了した後に動作サイクルが開始されるごとに開始される禁止タイマと、
    前記N個のACK信号入力の1つにおいてACK信号を受信すると同時に開始されるACKタイマと、
    監視対象のプロセッサの起動がうまく完了した後に動作サイクルが開始されるごとに開始されるサイクル周期タイマと、
    リセット信号発生器と
    を含んでなる、プロセッサの機能性を監視するためのウォッチドッグシステム。
  18. 前記リセット信号発生器は、
    (i)前記起動タイマが期限切れになる前に前記N個のACK信号入力の第1の入力においてACK信号を受信しないこと、
    (ii)前記ACKタイマが期限切れになる前に前記N個のACK信号入力のいずれか1つの入力においてACK信号を受信すること、
    (iii)前記禁止タイマが期限切れになる前に前記N個のACK信号入力のいずれか1つの入力においてACK信号を受信すること、
    (iv)前記サイクル周期タイマが期限切れになる前に前記N個のACK信号入力の全ての入力においてACK信号を受信しないこと、
    のいずれか1つの条件が満足されたときに監視対象のプロセッサに送信するためのリセット信号を発生するものである請求項17に記載のウォッチドッグシステム。
  19. 前記N個のACK信号入力を介して前記制御ロジックに結合されており、監視対象のプロセッサを当該ウォッチドッグシステムに結合しているインタフェースを更に含むものである請求項17に記載のウォッチドッグシステム。
  20. 前記リセット信号は前記プロセッサ・インタフェースに結合した監視対象のプロセッサをリセットするものである請求項19に記載のウォッチドッグシステム。
  21. リセットの直前に監視対象のプロセッサの状態に関する情報を保存するためのロジックを更に含むものである請求項20に記載のウォッチドッグシステム。
  22. 各前記タイマの継続時間は固有の値に設定することができるものである請求項17に記載のウォッチドッグシステム。
  23. 前記N個のACK信号入力はIO(入力/出力)ラインである請求項17に記載のウォッチドッグシステム。
  24. 前記N個のACK信号入力はレジスタである請求項17に記載のウォッチドッグシステム。
  25. 起動タイマを開始するステップと、
    禁止タイマを開始するステップと、
    サイクル周期タイマを開始するステップと、
    少なくとも1つのACK信号を受信するステップと、
    前記少なくとも1つのACK信号の1つを受信すると同時にACKタイマを開始するステップと、
    (i)前記起動タイマが期限切れになる前に前記少なくとも1つのACK信号のどの信号も受信しない、(ii)前記ACKタイマが期限切れになる前に前記少なくとも1つのACK信号のいずれか1つの信号を受信する、(iii)前記禁止タイマが期限切れになる前に前記少なくとも1つのACK信号のいずれか1つの信号を受信する、(iv)前記サイクル周期タイマが期限切れになる前に前記少なくとも1つのACK信号の全ての信号を受信しない、のいずれか1つの条件が満足されたときに監視対象のプロセッサをリセットするステップと
    を含んでなる、プロセッサの機能性を監視する方法。
JP2006550365A 2004-01-29 2005-01-28 プロセッサの機能性を監視するためのウォッチドッグシステムおよび方法 Pending JP2007534049A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/766,237 US20050188274A1 (en) 2004-01-29 2004-01-29 Watchdog system and method for monitoring functionality of a processor
PCT/IB2005/000790 WO2005072052A2 (en) 2004-01-29 2005-01-28 Watchdog system and method for monitoring functionality of a processor

Publications (1)

Publication Number Publication Date
JP2007534049A true JP2007534049A (ja) 2007-11-22

Family

ID=34826513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006550365A Pending JP2007534049A (ja) 2004-01-29 2005-01-28 プロセッサの機能性を監視するためのウォッチドッグシステムおよび方法

Country Status (5)

Country Link
US (1) US20050188274A1 (ja)
JP (1) JP2007534049A (ja)
AU (1) AU2005207885A1 (ja)
NZ (1) NZ549457A (ja)
WO (1) WO2005072052A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101449274B1 (ko) * 2013-04-23 2014-10-08 현대오트론 주식회사 유효 채널을 이용하는 와치독 및 그 동작방법
KR20140125621A (ko) * 2013-04-19 2014-10-29 콘티넨탈 오토모티브 시스템 주식회사 파워제어시스템에서 변속제어유닛의 모니터링 방법 및 장치

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7958396B2 (en) * 2006-05-19 2011-06-07 Microsoft Corporation Watchdog processors in multicore systems
US7971104B2 (en) * 2006-10-24 2011-06-28 Shlomi Dolev Apparatus and methods for stabilization of processors, operating systems and other hardware and/or software configurations
US20090204856A1 (en) * 2008-02-08 2009-08-13 Sinclair Colin A Self-service terminal
US8327125B2 (en) * 2009-12-28 2012-12-04 General Instrument Corporation Content securing system
CN104182285A (zh) * 2013-05-20 2014-12-03 鸿富锦精密工业(深圳)有限公司 电子装置及当机解决方法
US10402245B2 (en) 2014-10-02 2019-09-03 Nxp Usa, Inc. Watchdog method and device
US9563494B2 (en) 2015-03-30 2017-02-07 Nxp Usa, Inc. Systems and methods for managing task watchdog status register entries
JP2016224883A (ja) * 2015-06-04 2016-12-28 富士通株式会社 異常検出方法、情報処理装置および異常検出プログラム
US10127095B2 (en) * 2015-11-04 2018-11-13 Quanta Computer Inc. Seamless automatic recovery of a switch device
US10445169B2 (en) 2016-04-08 2019-10-15 Nxp Usa, Inc. Temporal relationship extension of state machine observer

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4832594A (en) * 1987-09-10 1989-05-23 Hamilton Standard Controls, Inc. Control system with timer redundancy
JPH06168163A (ja) * 1992-09-30 1994-06-14 Nec Home Electron Ltd Cpu監視方法及びcpu監視装置
FI108898B (fi) * 1996-07-09 2002-04-15 Nokia Corp Menetelmä prosessorin resetoimiseksi ja vahtikoira
DE19712375A1 (de) * 1997-03-25 1998-10-01 Bosch Gmbh Robert Watchdog-Schaltung
DE19845220A1 (de) * 1998-10-01 2000-04-13 Bosch Gmbh Robert Verfahren und Vorrichtung zur Synchronisation und Überprüfung von Prozessor und Überwachungsschaltung
US6377851B1 (en) * 1999-12-17 2002-04-23 Pacesetter, Inc. Implantable cardiac stimulation device and method for optimizing sensing performance during rate adaptive bradycardia pacing
US7689875B2 (en) * 2002-04-25 2010-03-30 Microsoft Corporation Watchdog timer using a high precision event timer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140125621A (ko) * 2013-04-19 2014-10-29 콘티넨탈 오토모티브 시스템 주식회사 파워제어시스템에서 변속제어유닛의 모니터링 방법 및 장치
KR102189779B1 (ko) * 2013-04-19 2020-12-11 콘티넨탈 오토모티브 시스템 주식회사 파워제어시스템에서 변속제어유닛의 모니터링 방법 및 장치
KR101449274B1 (ko) * 2013-04-23 2014-10-08 현대오트론 주식회사 유효 채널을 이용하는 와치독 및 그 동작방법

Also Published As

Publication number Publication date
NZ549457A (en) 2008-11-28
WO2005072052A2 (en) 2005-08-11
AU2005207885A1 (en) 2005-08-11
US20050188274A1 (en) 2005-08-25
WO2005072052A3 (en) 2006-12-28

Similar Documents

Publication Publication Date Title
JP2007534049A (ja) プロセッサの機能性を監視するためのウォッチドッグシステムおよび方法
US7689875B2 (en) Watchdog timer using a high precision event timer
US8839206B2 (en) Time-based breakpoints in debuggers
US6438709B2 (en) Method for recovering from computer system lockup condition
US6012154A (en) Method and apparatus for detecting and recovering from computer system malfunction
US6505298B1 (en) System using an OS inaccessible interrupt handler to reset the OS when a device driver failed to set a register bit indicating OS hang condition
US20040034816A1 (en) Computer failure recovery and notification system
US7672247B2 (en) Evaluating data processing system health using an I/O device
US7219264B2 (en) Methods and systems for preserving dynamic random access memory contents responsive to hung processor condition
US7318171B2 (en) Policy-based response to system errors occurring during OS runtime
EP3719652B1 (en) Hardware support for os-centric performance monitoring with data collection
US20180285147A1 (en) Task latency debugging in symmetric multiprocessing computer systems
US8099637B2 (en) Software fault detection using progress tracker
US7334167B2 (en) Circuit for detection of internal microprocessor watchdog device execution and method for resetting microprocessor system
JP2004302731A (ja) 情報処理装置および障害診断方法
US20160292027A1 (en) Systems and methods for managing task watchdog status register entries
JP2012043315A (ja) データ処理システム
JPH1153225A (ja) 障害処理装置
JP2004070458A (ja) 自己診断機能を持つプログラムと、プログラム監視装置及びその方法と、プログラム監視機能を持つプログラム
JP2002244885A (ja) コンピュータシステム監視システム
JPH05257750A (ja) ウォッチドッグタイマ制御回路
CN118245256A (zh) 一种基于应用多线程喂狗的方法
JPH1166020A (ja) マイクロコンピュータの異常検出回路
JPH10143393A (ja) 診断処理装置
JPH041831A (ja) プログラム暴走監視方式