JP2007323631A - Cpu暴走判定回路 - Google Patents

Cpu暴走判定回路 Download PDF

Info

Publication number
JP2007323631A
JP2007323631A JP2007044919A JP2007044919A JP2007323631A JP 2007323631 A JP2007323631 A JP 2007323631A JP 2007044919 A JP2007044919 A JP 2007044919A JP 2007044919 A JP2007044919 A JP 2007044919A JP 2007323631 A JP2007323631 A JP 2007323631A
Authority
JP
Japan
Prior art keywords
cpu
runaway
watchdog timer
reset
clear pattern
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
JP2007044919A
Other languages
English (en)
Inventor
Kenji Ikedo
健二 池戸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shinko Electric Industries Co Ltd
Original Assignee
Shinko Electric Industries Co Ltd
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 Shinko Electric Industries Co Ltd filed Critical Shinko Electric Industries Co Ltd
Priority to JP2007044919A priority Critical patent/JP2007323631A/ja
Priority to US11/790,836 priority patent/US7721083B2/en
Publication of JP2007323631A publication Critical patent/JP2007323631A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】簡易な回路構成でいずれのタスク暴走が発生しているのか特定し、暴走が発生したタスクの再起動を回避してシステムをリセット可能なCPU暴走判定回路を提供する。
【解決手段】CPU1はシステムの起動時又はリセットされたときにウォッチドッグタイマー2内のレジスタ7に保持されたクリアパターンを読み出すことによりシステムからのリセットか実行するプログラムの暴走によるリセットかを判定し、暴走したタスクを再起動させないようにシステムの起動処理を行う。
【選択図】図1

Description

本発明は、例えば家電品などに組み込まれるマイコンボードなどのコンピュータ組込み機器に設けられるCPU暴走判定回路に関する。
コンピュータ組込み機器の制御回路にはウォッチドッグタイマーが設けられている。ウォッチドッグタイマーは、CPUを含むロジック回路などにおいてCPUが暴走したときにリセット信号を発生して再起動をしてCPUの暴走を防ぐようになっている。具体的には、CPUからウォッチドッグタイマーにクリア信号が入力されると、ウォッチドッグタイマーはカウンターをリセットする。CPUからのクリア信号が途絶えカウント値が所定値に達するとCPUが暴走していると判定されウォッチドッグタイマーは、CPUに対してリセット信号を出力する。
ウォッチドッグタイマーの具体例を挙げると、例えばCPUの入力ポートに電源VCの立ち上がりにより動作する遅延回路を設け、CPUがリセットされた直後の入力ポートの状態の論理値により電源投入による初期スタートであるのか、暴走によるリスタートであるのかを判断するCPU暴走判断回路が提案されている(特許文献1)。
また、CPUがROMやRAMに格納されたプログラムを読み出して複数のプログラム処理部で実行する情報処理装置において、いずれのプログラム処理部が暴走したのかを特定するウォッチドッグタイマーが提案されている。具体的には、ウォッチドッグタイマーには、監視対象とする第1、第2のプログラム処理部に対応する記憶領域を有する状態レジスタが設けられている。ウォッチドッグタイマーはいずれかのプログラム処理部で暴走が発生したことを検出すると状態レジスタの該当する記憶領域に検出結果を書き込む。制御部はウォッチドッグタイマーより暴走検出通知を受け取った際に状態レジスタの記憶領域を参照することで暴走したプログラム処理部を特定するようになっている(特許文献2)。
実開平5−87644号公報 特開2005−92430号公報
しかしながら、特許文献1のウォッチドッグタイマーの入力ポートに遅延回路を設けた場合、CPUが暴走による再起動と判断して、ウォッチドッグタイマーのリセット信号によりCPUの初期化を行なっても、プログラムまたはハードウェアに問題がある場合には、暴走が繰返し発生するおそれがある。また、メモリなどの素子が破壊されている場合には、再起動してもすぐに暴走が発生する。
また、特許文献2においては、ウォッチドッグタイマーがプログラム処理部の暴走を検出した場合に、制御部が状態レジスタの記憶領域を参照して、暴走したプログラム処理部を特定して適切な対応することができる。しかしながら、制御部が実行するプログラム処理部の数だけラッチ回路を設ける必要があるため、制御部が実行するプログラムが増えれば回路構成が複雑化煩雑化し、部品点数も増えて製造コストが上昇する。
近年のCPUを含むロジック回路の高性能化、多機能化により、コンピュータ組込み機器の制御回路においても、複数のタスクを実行する場合が多い。この場合にいずれのタスク(プロセス、スレッド)で暴走が発生しているのか特定すること、暴走が発生しているタスクを回避してシステムのリセットすることが求められている。
本発明は上述した課題を解決すべくなされたものであり、その目的とするところは、簡易な回路構成で、いずれのタスクで暴走が発生しているのか特定し、暴走が発生したタスクの再起動を回避してシステムをリセット可能なCPU暴走判定回路を提供することにある。
本発明は上記目的を達成するため、次の構成を備える。
即ち、システムの各部の動作を制御するため複数のプログラムを実行するCPUと、前記CPUからスタート信号を受けて計数を開始するカウンターを備え、該カウンターが予め設定されたカウント数に到達するとリセット信号を出力するウォッチドッグタイマーを具備し、前記ウォッチドッグタイマーは、CPUからタスクに応じたクリアパターンを設定できるレジスタを持ち、該レジスタが保持するクリアパターンが電源供給中は保持され電源部からのリセット信号によって初期値に書き換えられ、前記CPUはシステムの起動時又はリセットされたときにウォッチドッグタイマー内のレジスタに保持されたクリアパターンを読み出すことによりシステムからのリセットか実行するプログラムの暴走によるリセットかを判定し、暴走したタスクを再起動させないようにシステムの起動処理を行うことを特徴とする。
また、OR回路の出力端子がCPUのリセット端子に接続され、該OR回路の一方の入力端子がウォッチドックタイマーの出力端子に接続されており、CPUへのリセット信号は、OR回路においてウォッチドッグタイマーから出力されるリセット信号と電源部から出力されるリセット信号の論理和を取って出力されることを特徴とする。
また、ウォッチドッグタイマーは、CPUから出力されるクリア信号のクリアパターンと当該ウォッチドッグタイマー内のレジスタで保持するクリアパターンとを比較して一致する場合にカウンターの計数値をクリアすることを特徴とする。
また、ウォッチドッグタイマーは、CPUからレジスタに書き込まれたクリアパターンを保持し、電源部からリセット信号が入力されるとクリアパターンを更新して初期値に書き換えられ、CPUからタスクが切り替わるときに当該タスクに対応する所定のクリアパターンへ書き換えられることを特徴とする。
上述したCPU暴走判定回路を用いれば、CPUが実行するタスクに対応したクリアパターンをウォッチドッグタイマーが保持しているので、CPUはシステムの起動時にウォッチドッグタイマーに保持されたクリアパターンを読み出すことによりシステムからのリセットか実行するプログラムの暴走によるリセットかを判定し、暴走したタスクを再起動させないようにシステムの起動処理を行うことができる。これにより、簡易な回路構成で、複数のプログラムを実行するいずれのタスクで暴走が発生しているのか特定し、暴走が発生したタスクの再起動を回避してシステムをリセットすることができる。
以下、本発明に係るCPU暴走判定回路の最良の実施形態について添付図面とともに詳細に説明する。本実施形態は、コンピュータ組込み機器の制御回路に設けられるCPU暴走判定回路について説明する。尚、制御回路の機能としては、CPUなどの制御部が複数プログラムを実行するマルチタスク若しくはマルチスレッドを想定しているものとする。
先ず、CPU暴走判定回路の回路構成について図1を参照して説明する。
CPU1とウォッチドッグタイマー2はバスライン3を通じて電気的に接続されている。CPU1は図示しないROMに記憶された複数のプログラムをRAMに読み出して実行し、システム各部の動作を制御する。
OR回路4の出力端子がCPU1のリセット端子に接続され、OR回路4の一方の入力端子がウォッチドックタイマー2の出力端子に接続されている。CPU1へのリセット信号は、OR回路4においてウォッチドッグタイマー2から出力されるリセット信号と電源部から出力されるリセット信号の論理和を取って出力される。
ウォッチドッグタイマー2には、CPU1からスタート信号を受けて計数を開始するカウンター5が設けられている。このカウンター5が予め設定されたカウント数に到達するとOR回路4の入力端子へリセット信号を出力する。
また、ウォッチドッグタイマー2は、電源部からのリセット信号やCPUから認定されたタスクに応じたクリアパターンをレジスタ7に保持している。CPU1はシステムの起動時又はリセットされたときにウォッチドッグタイマー2内のレジスタ7に保持されたクリアパターンを読み出すことによりシステムからのリセットか実行するプログラムの暴走によるリセットかを判定し、暴走したタスクを再起動させないようにシステムの起動処理を行うようになっている。
ウォッチドッグタイマー2は、CPU1から出力されるクリア信号のクリアパターンと当該ウォッチドッグタイマー2内のレジスタ7で保持するクリアパターンとをコンパレータ6にて比較し、一致する場合にカウンター5のクリア端子へクリア信号を出力して計数値をクリアする。
ウォッチドッグタイマー2は、CPU1からレジスタ7に書き込まれたクリアパターンを保持する。また、ウォッチドッグタイマー2は、電源部からリセット端子へリセット信号が入力されるとレジスタ7のクリアパターンが更新されて初期値に書き換えられ、CPU1からタスクが切り替わるときに当該タスクに対応するクリアパターンがレジスタ7に書き込まれる。これによって、システムを再起動する際に、CPUが暴走したタスクを回避して再起動することができる。
クリアパターンを図2に例示する。図2において左側の欄がクリアパターンであり、対応するタスク(プロセス、スレッド)を右側に示す。クリアパターン0は、電源部からのクリアパターンに対応する初期値A0に対応しており、CPU1のリセットがシステムの立ち上げによるものと判断される。クリアパターン1〜10は、CPU1が実行するタスク(プログラムA1〜A10)に対応した値を示す。CPU1のリセットがクリアパターン1〜10によるものと判定されれば、該当するタスク(プログラムA1〜A10)が暴走したことに起因すると判定できる。
次に、CPU暴走判定回路の起動処理動作の一例について図3のフローチャートを参照して説明する。
先ず、システムの電源を投入すると、CPU1はシステムの初期化処理を行ない、プログラムを立ち上げ可能な状態にする(ステップS1)。このとき、CPU1は、ウォッチドッグタイマー2内のレジスタ7のクリアパターンが初期値(例えば、図2のクリアパターンA0)であるか否かを読みに行く(ステップS2)。クリアパターンが初期値であればシステムの立ち上げによるリセットであると判断し、レジスタ7へ起動するタスクに対応するクリアパターンを書き込み、スタート信号をカウンター5のスタート端子へ出力して計数値をクリアして新たなカウントを開始し、通常のタスクの起動動作を行なう(ステップS3)。
クリアパターンが初期値以外の値(例えば、図2のクリアパターンA1〜A10)であれば、CPU1がウォッチドッグタイマー2内のレジスタ7が保持するクリアパターンを読みに行くことで暴走したタスクを特定することができる。CPU1は暴走したタスクを起動させないようにして他のタスクの再起動処理を行なう(ステップS4)。
また、システムへ暴走したタスクを通知する。例えば、ネットワークを通じて図示しないサーバーへ状態を報知する(ステップS5)。これにより、システムの不具合に応じたメンテナンスの効率化が図れる。
尚、上述したCPU暴走判定回路は、マルチCPUがタスクを実行する制御回路であってもよいし、公知のOSが搭載されCPUがタスクに応じた複数のアプリケーションを実行する制御回路であっても良い。
CPU暴走判定回路のブロック構成図である。 クリアパターンの一例を示す説明図である。 CPU暴走判定回路の起動処理動作のフローチャートである。
符号の説明
1 CPU
2 ウォッチドッグタイマー
3 バスライン
4 OR回路
5 カウンター
6 コンパレータ
7 レジスタ

Claims (4)

  1. システムの各部の動作を制御するため複数のプログラムを実行するCPUと、
    前記CPUからスタート信号を受けて計数を開始するカウンターを備え、該カウンターが予め設定されたカウント数に到達するとリセット信号を出力するウォッチドッグタイマーを具備し、
    前記ウォッチドッグタイマーは、CPUからタスクに応じたクリアパターンを設定できるレジスタを持ち、該レジスタが保持するクリアパターンが電源供給中は保持され電源部からのリセット信号によって初期値に書き換えられ、
    前記CPUはシステムの起動時又はリセットされたときにウォッチドッグタイマー内のレジスタに保持されたクリアパターンを読み出すことによりシステムからのリセットか実行するプログラムの暴走によるリセットかを判定し、暴走したタスクを再起動させないようにシステムの起動処理を行うことを特徴とするCPU暴走判定回路。
  2. OR回路の出力端子がCPUのリセット端子に接続され、該OR回路の一方の入力端子がウォッチドックタイマーの出力端子に接続されており、CPUへのリセット信号は、OR回路においてウォッチドッグタイマーから出力されるリセット信号と電源部から出力されるリセット信号の論理和を取って出力されることを特徴とする請求項1記載のCPU暴走判定回路。
  3. ウォッチドッグタイマーは、CPUから出力されるクリア信号のクリアパターンと当該ウォッチドッグタイマー内のレジスタで保持するクリアパターンとを比較して一致する場合にカウンターの計数値をクリアすることを特徴とする請求項1記載のCPU暴走判定回路。
  4. ウォッチドッグタイマーは、CPUからレジスタに書き込まれたクリアパターンを保持し、電源部からリセット信号が入力されるとクリアパターンを更新して初期値に書き換えられ、CPUからタスクが切り替わるときに当該タスクに対応する所定のクリアパターンへ書き換えられることを特徴とする請求項1記載のCPU暴走判定回路。
JP2007044919A 2006-05-01 2007-02-26 Cpu暴走判定回路 Pending JP2007323631A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007044919A JP2007323631A (ja) 2006-05-01 2007-02-26 Cpu暴走判定回路
US11/790,836 US7721083B2 (en) 2006-05-01 2007-04-27 CPU runaway determination circuit and CPU runaway determination method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006127394 2006-05-01
JP2007044919A JP2007323631A (ja) 2006-05-01 2007-02-26 Cpu暴走判定回路

Publications (1)

Publication Number Publication Date
JP2007323631A true JP2007323631A (ja) 2007-12-13

Family

ID=38823306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007044919A Pending JP2007323631A (ja) 2006-05-01 2007-02-26 Cpu暴走判定回路

Country Status (2)

Country Link
US (1) US7721083B2 (ja)
JP (1) JP2007323631A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011046217A1 (ja) * 2009-10-15 2011-04-21 株式会社エルイーテック マイクロコンピュータ及びその動作方法
WO2016101607A1 (zh) * 2014-12-23 2016-06-30 华为技术有限公司 一种cpu及cpu的启动方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4893427B2 (ja) * 2006-06-30 2012-03-07 株式会社デンソー マイクロコンピュータシステム
CN101937384A (zh) * 2010-10-09 2011-01-05 国营红峰机械厂 Dsp故障检测方法
GB2503459A (en) * 2012-06-26 2014-01-01 Nordic Semiconductor Asa Multiple hardware registers for watchdog timer preventing erroneous microprocessor system reset
US9747184B2 (en) * 2013-12-16 2017-08-29 Artesyn Embedded Computing, Inc. Operation of I/O in a safe system
US9563494B2 (en) * 2015-03-30 2017-02-07 Nxp Usa, Inc. Systems and methods for managing task watchdog status register entries
CN110619203B (zh) * 2018-06-20 2023-04-18 深圳市中航比特通讯技术股份有限公司 一种基于有限状态机的逻辑看门狗实现方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0587644A (ja) 1991-09-26 1993-04-06 Brother Ind Ltd 温度報知装置
JP2658697B2 (ja) * 1991-12-11 1997-09-30 富士通株式会社 ウォッチ・ドック・タイマ回路
JP3357514B2 (ja) * 1995-09-20 2002-12-16 シャープ株式会社 暴走検出復帰方式
US5737212A (en) * 1995-12-04 1998-04-07 Industrial Technology Research Institute Flag setting circuit for microcontroller
JP4322606B2 (ja) 2003-09-16 2009-09-02 株式会社デジタル ウォッチドッグタイマ
US7343476B2 (en) * 2005-02-10 2008-03-11 International Business Machines Corporation Intelligent SMT thread hang detect taking into account shared resource contention/blocking

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011046217A1 (ja) * 2009-10-15 2011-04-21 株式会社エルイーテック マイクロコンピュータ及びその動作方法
JP2013137835A (ja) * 2009-10-15 2013-07-11 Le Tekku:Kk マイクロコンピュータ及びその動作方法
JP5244981B2 (ja) * 2009-10-15 2013-07-24 株式会社エルイーテック マイクロコンピュータ及びその動作方法
AU2010307632B2 (en) * 2009-10-15 2013-12-05 L E Tech Co., Ltd. Microcomputer and operation method thereof
US8954801B2 (en) 2009-10-15 2015-02-10 L E Tech Co., Ltd. Microcomputer and method of operation thereof
WO2016101607A1 (zh) * 2014-12-23 2016-06-30 华为技术有限公司 一种cpu及cpu的启动方法

Also Published As

Publication number Publication date
US7721083B2 (en) 2010-05-18
US20070288741A1 (en) 2007-12-13

Similar Documents

Publication Publication Date Title
CN107122321B (zh) 硬件修复方法、硬件修复系统以及计算机可读取存储装置
JP2007323631A (ja) Cpu暴走判定回路
US9910664B2 (en) System and method of online firmware update for baseboard management controller (BMC) devices
US9367446B2 (en) Computer system and data recovery method for a computer system having an embedded controller
US10585755B2 (en) Electronic apparatus and method for restarting a central processing unit (CPU) in response to detecting an abnormality
TWI784526B (zh) 預防於開機自我檢測常式中因錯誤的bios設定所造成停機的方法、系統及bios晶片
US20100125752A1 (en) System for auto-operating backup firmware and method thereof
CN112970002A (zh) 用于可配置错误处理的系统
JP4393954B2 (ja) マイクロコンピュータ
US10379931B2 (en) Computer system
CN110083491A (zh) 一种bios初始化方法、装置、设备及存储介质
JP2008033890A (ja) マイクロコンピュータシステム
JP6049961B1 (ja) Cpu監視装置
JP2004302731A (ja) 情報処理装置および障害診断方法
CN107179911B (zh) 一种重启管理引擎的方法和设备
JP3214469B2 (ja) マイクロコンピュータによるフラッシュeepromの書き込み制御方法及び装置
JP2002149437A (ja) ソフトウェア再起動方法
JP2009151440A (ja) プログラムハング検出方法及びそれを適用したコンピュータ装置
JP2007172096A (ja) 情報処理装置、および、その起動制御方法
JP6765874B2 (ja) 電子制御装置
JP4647276B2 (ja) 半導体回路装置
KR100414059B1 (ko) Rtos에서의 와치독 타이머를 이용한 오동작 감시시스템 및 방법
JP5970846B2 (ja) 計算機システム及び計算機システムの制御方法
JP4853620B2 (ja) マルチプロセッサシステムと初期立ち上げ方法およびプログラム
JP2006133823A (ja) コンピュータシステム