(57)【要約】【課題】細かい設定をすることなく、自動的にフリーズ状態を検出し、リセット処理等を行う端末装置の提供。【解決手段】端末装置は、電源からＣＰＵに供給される電流値を測定する電流測定部と、前記ＣＰＵをリセットするリセット制御部と、前記ＣＰＵと独立して動作し、動作モードに反した電流値の定常状態が観測された場合、前記リセット制御部に前記ＣＰＵをリセットさせる電流監視部と、を備える。【選択図】図１
2012208739.tif 000002
【特許請求の範囲】
【請求項１】
電源からＣＰＵに供給される電流値を測定する電流測定部と、
前記ＣＰＵをリセットするリセット制御部と、
前記ＣＰＵと独立して動作し、動作モードに反した電流値の定常状態が観測された場合、前記リセット制御部に前記ＣＰＵをリセットさせる電流監視部と、を備える端末装置。
【請求項２】
前記電流監視部は、電流値の変動が所定の範囲に収まった状態が、所定の期間継続したときに、前記電流値が定常状態になったものと判定する請求項１の端末装置。
【請求項３】
前記電流監視部は、前記ＣＰＵから出力される端末状態信号が、予め定められた動作モードであることを示す場合、前記電流値の測定または前記ＣＰＵのリセット動作を抑止する請求項１または２の端末装置。
【請求項４】
前記電流監視部は、前記動作モードに反した電流値の定常状態が観測された場合、前記リセット制御部に前記ＣＰＵをリセットさせる前に、前記ＣＰＵにフリーズ状態の検査とフリーズ状態の解消動作を行わせ、
前記ＣＰＵから応答が無い場合に前記リセット制御部に前記ＣＰＵをリセットさせる請求項１から３いずれか一の端末装置。
【請求項５】
前記ＣＰＵによるフリーズ状態の検査は、フリーズしている実行中アプリケーションの有無を確認することによって行われ、
前記フリーズ状態の解消動作として、前記ＣＰＵは、前記フリーズしている実行中アプリケーションの再起動と、フリーズしている実行中アプリケーションの有無の再確認とを行う請求項４の端末装置。
【請求項６】
前記電流監視部は、端末装置に搭載された第２のＣＰＵによって構成されている請求項１から５いずれか一の端末装置。
【請求項７】
前記ＣＰＵと第２のＣＰＵとが互いに他方のＣＰＵの電流監視部として動作する請求項６の端末装置。
【請求項８】
前記電流監視部は、動作モードに反した電流値の定常状態が観測され、さらに、前記電流値が、端末装置のスリープ時消費電流を超え、かつ、最大消費電流未満の一定の範囲内にある場合に、前記リセット制御部に前記ＣＰＵをリセットさせる請求項１から７いずれか一の端末装置。
【請求項９】
電源から端末装置のＣＰＵに供給される電流値を監視するステップと、
動作モードに反した電流値の定常状態が観測された場合、前記ＣＰＵがフリーズ状態になったものと判定するステップと、
を含む端末装置のフリーズ検出方法。
【請求項１０】
請求項９のフリーズ検出方法により、端末装置のＣＰＵのフリーズを検出した場合、前記ＣＰＵをリセットする端末装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置並びにフリーズ検出方法及び端末装置の制御方法に関し、特に、実行中のアプリケーションの暴走等によるフリーズ状態の発生を検出する機能を備えた端末装置並びにフリーズ検出方法及び端末装置の制御方法に関する。
【背景技術】
【０００２】
実行中のアプリケーションの暴走やデッドロック等により、端末装置がフリーズ（「ハングアップ」とも呼ばれるが本明細書では「フリーズ」を用いる。）状態に陥った場合の復帰手段として、ウォッチドッグタイマによるリセット復帰を行う暴走監視機能が知られている。また、この種の機能が働かない場合に電池の脱着等を行わずに、専用のリセットボタンを押下することでリセット復帰できるものも知られている。
【０００３】
特許文献１、２には、上記専用のリセットボタンではなく、既存のキー長押し検出によるリセット復帰できるようにした端末装置が開示されている。
【０００４】
また、特許文献３には、電池から出力される出力電流監視抵抗に流れる電流を計測する電流計測部と、各種アプリケーションプログラムを実行する制御部と、前記制御部にて実行可能な複数のアプリケーションプログラム毎に設定される電流閾値を記憶する記憶部と、を備え、前記電流計測部により計測される電流値と、実行中のアプリケーションプログラムの種別とを監視し、前記電流計測部により計測された電流値が、現在実行中のアプリケーションプログラムの種別に対応する電流閾値を超えた場合にリセット処理を実行し、もしくは電源オフ処理を実行する携帯電子機器が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１４０４５７号公報
【特許文献２】特開２０１０−２６７１８８号公報
【特許文献３】特開２００９−１８１３６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以下の分析は、本発明によって与えられたものである。上記したウォッチドッグタイマによる暴走監視機能は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）によって提供され、暴走監視機能の監視が及ばないプログラム内部の不具合によるフリーズでは、前記暴走監視機能が検知できないためにウォッチドッグタイマのクリア動作が実行されてしまい、フリーズ状態から抜け出すことができないという問題点がある。
【０００７】
また、上記特許文献１、２のようなユーザの操作によってリセット復帰を行なう方式では、ユーザがフリーズに気づくまでの間、フリーズ状態が継続されてしまうという問題点がある。
【０００８】
また、特許文献３の技術によれば、自動的なリセット処理または電源オフ処理を実現できるが、同公報の図５に示されたとおり、アプリケーションプログラム毎に、電流しきい値を設定しなければならないという問題点がある。例えば、インターネット上の各種サイトから、アプリケーションプログラムを購入したような場合、これら新規にインストールしたアプリケーションプログラムについて電流しきい値を設定しなければ、リセット処理等の対象外となってしまう。
【０００９】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、上記した電流しきい値等の細かい設定をすることなく、フリーズ状態を検出することのできる方法およびこれを利用したリセット機能を備えた端末装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の第１の視点によれば、電源からＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に供給される電流値を測定する電流測定部と、前記ＣＰＵをリセットするリセット制御部と、前記ＣＰＵと独立して動作し、動作モードに反した電流値の定常状態が観測された場合、前記リセット制御部に前記ＣＰＵをリセットさせる電流監視部と、を備える端末装置が提供される。
【００１１】
本発明の第２の視点によれば、電源から端末装置のＣＰＵに供給される電流値を監視するステップと、動作モードに反した電流値の定常状態が観測された場合、前記ＣＰＵがフリーズ状態になったものと判定するステップと、を含む端末装置のフリーズ検出方法が提供される。なお、本方法は、端末装置という特定の機械に結びつけられている。
【発明の効果】
【００１２】
本発明によれば、細かい設定をすることなく、自動的にフリーズ状態を検出し、リセット処理等を行うことが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の概要を説明するための図である。
【図２】本発明の第１の実施形態の端末装置の構成を表わしたブロック図である。
【図３】本発明の第１の実施形態の端末装置にて測定される電流値とカウンタの動きを説明するための図である。
【図４】本発明の第１の実施形態の端末装置にて測定される電流値とカウンタの動きを説明するための別の図である。
【図５】本発明の第１の実施形態の端末装置の動作を表したフローチャートである。
【図６】本発明の第２の実施形態の端末装置の構成を表わしたブロック図である。
【図７】本発明の第２の実施形態の端末装置の動作を表したフローチャートである。
【図８】本発明の第２の実施形態の端末装置のＣＰＵの動作を表したフローチャートである。
【図９】本発明の第３の実施形態の端末装置の構成を表わしたブロック図である。
【図１０】本発明の第３の実施形態の端末装置の動作を表したフローチャートである。
【図１１】本発明の第３の実施形態の端末装置のＣＰＵの動作を表したフローチャートである。
【発明を実施するための形態】
【００１４】
はじめに、本発明の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１５】
本発明は、図１に示すように、電源からＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に供給される電流値を測定する電流測定部を備えた電流監視部１０１と、ＣＰＵ１０３をリセットするリセット制御部１０２と、を備えた端末装置により実現できる。前記電流監視部１０１は、ＣＰＵ１０３と独立して動作し、現在の端末装置の動作モードに反した電流値の定常状態が観測された場合、リセット制御部１０２にＣＰＵ１０３をリセットさせる動作を行う。
【００１６】
ここで、上記電流値の定常状態が観測された場合に、ＣＰＵ１０３がフリーズ状態に陥ったと判断してよい理由について説明する。
【００１７】
フリーズ状態の原因の一つとして無限ループの発生が挙げられる。とりわけ、電池等で動作する携帯端末では、消費電力を抑えるため、永続的に常駐動作するバックグラウンドタスクが少なく、かつ、イベントドリブンで動作するように設計されている。このため、フォアグラウンドで動作するアプリケーションタスクが無限ループに陥った場合に、他のタスクを呼び出すイベントが発生しにくい。そして、フォアグラウンドで動作するアプリケーションタスクから周辺回路へのアクセス（プロトコル）がタイムアウトし、一定時間周辺回路へのアクセスが途絶えると消費電流も一定状態に落ち着くことが多い。本発明は、この性質を利用して、端末装置がフリーズ状態に陥ったことを検出するものである。
【００１８】
但し、端末装置には、一定期間操作がなされないこと等を契機として、省電力モードに遷移したり、スクリーンセーバーやデジタルフォトフレームのようにスライド等の表示を行う機能を備えたものがある。このような端末装置においては、これら各動作モードでＣＰＵに流れる電流値を事前に測定しておき、電流値が定常状態になっても、リセット動作を抑止するようにする。その一方で、これら動作モードに反する電流値の定常状態が観測されたときに、リセット動作を行うことで、ユーザの手を煩わせることなく、リセット動作を行うことが可能になる。
【００１９】
上記した原理にてフリーズ状態を検出する本発明は、種々の端末装置に適用することが可能であるが、多数のアプリケーションプログラムが実行されることによりフリーズ状態に陥りやすい傾向にある携帯端末装置に好適に適用することが可能である。
【００２０】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態の端末装置の構成を表わしたブロック図である。図２を参照すると、電流監視部１０１と、リセット制御部１０２と、ＣＰＵ１０３と、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０４と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０６と、を備えた構成が示されている。
【００２１】
電流監視部１０１は、電源からＣＰＵ１０３に供給される電流値を測定する電流測定部を備え、ＣＰＵ１０３と独立して動作して、前記測定した電流値の推移と、端末装置が省電力状態にあるか否かとに基づいてリセットの要否を判定する。ここで、リセット要と判定した場合、電流監視部１０１は、リセット制御部１０２にリセット動作を要求する。なお、端末装置が省電力モードであるか否かは、ＣＰＵ１０３の省電力端子から出力される端末状態信号に基づいて判別される。なお、電流監視部１０１内の電流測定部の具体的構成としては特許文献３の電流監視抵抗と電流アンプとを用いた構成等を用いることができる。
【００２２】
前記リセットの要否の判定は、例えば、以下のようにして行うことができる。電流監視部１０１は、図３に示すように、ある時点で測定された電流値が、前時点で測定された電流値に対し、クロック動作などから派生する所定の範囲の変動幅Ｘに収まっている場合（以下、このような状態を電流値の高低に拘らず「定常状態」と呼ぶ。）、内部に備えられたカウンタを増大させていく。そして、前記カウンタの値が所定のリセット判定しきい値Ｎを超えると、電流監視部１０１は、リセット制御部１０２にリセット信号を出力する。なお、前記変動幅を超えたか否かを判定するための変動幅Ｘおよびリセット判定しきい値Ｎについては、ＲＯＭ１０４等に保存するようにし、適宜、変更できるようにしておいてもよい。
【００２３】
例えば、図３の時刻ｔ０から時刻ｔ１の間は、各時点で測定された電流値がそれぞれ前時刻の電流値より前記所定の範囲を超えて変化しているため、カウンタは０のままである。時刻ｔ２、ｔ３では、それぞれ時刻ｔ１、ｔ２に対し、電流値の変化が前記所定の範囲Ｘ内であるため、カウンタが増大している。しかしながら、その後、電流値が前記所定の範囲Ｘを超えて変化したため、カウンタは０にクリアされる。さらに、その後、時刻ｔ４、ｔ５で再度カウンタが増大し、その傾向が継続したため、時刻ｔ６では、カウンタがリセット判定しきい値Ｎとなりリセット信号が出力されている。
【００２４】
図４は、端末装置が省電力状態（省電力モード）にある場合の電流値の変化とカウンタの動きを示した図である。時刻ｔ１１から時刻ｔ１３の間は、各時点で測定された電流値がそれぞれ前時刻の電流値より前記所定の範囲Ｘを超えて変化しているため、カウンタは０のままである。時刻ｔ１３から時刻ｔ１４までは、各時点で測定された電流値の変化が前記所定の範囲Ｘ内であるが、ＣＰＵ１０３より省電力状態（省電力モード）であることが通知されているため、カウンタは増大しない。
【００２５】
リセット制御部１０２は、端末装置のリセット制御を行うブロックである。具体的には、リセット制御部１０２は、ＣＰＵ１０３のリセット端子（Ｒｅｓｅｔ端子）に、リセット信号を出力することによりＣＰＵにリセット動作を行わせる。
【００２６】
ＣＰＵ１０３は、端末装置の各部を制御するユニットであり、リセット端子（Ｒｅｓｅｔ端子）からリセット信号が入力されると、リセット動作を行う。また、ＣＰＵ１０３は、省電力端子を備え、電流監視部１０１に対し、省電力モードであるか否かを示す信号を出力する。
【００２７】
ＲＯＭ１０４は、ＣＰＵ１０３に実行させるプログラム等が書き込まれた不揮発性のメモリであり、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などによって構成される。
【００２８】
ＲＡＭ１０６は、ＣＰＵ１０３が随時読み書きするデータ等を格納するためのメモリである。
【００２９】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図５は、本実施形態の端末装置の動作を表したフローチャートである。図５を参照すると、まず、電流監視部１０１内の前記フリーズの判定に用いるカウンタが０に設定される（ステップ４０１）。
【００３０】
次に、電流監視部１０１は、ＣＰＵ１０３の省電力端子から出力される端末状態信号に基づいて省電力状態か否かを判定する（ステップ４０２）。省電力状態であるか否かは、ＣＰＵから出力される省電力端子の信号状態から判定する。ここで、省電力状態であると判定した場合（ステップ４０２のＹｅｓ）、電流監視部１０１は、フローの先頭に戻る（図５のＡへ）。
【００３１】
一方、ステップ４０２で省電力状態でないと判定した場合（ステップ４０２のＮｏ）、電流監視部１０１は、電流値を測定する（ステップ４０３）。
【００３２】
次に、電流監視部１０１は、前回測定した電流値と、今回測定した電流値との比較を行う（ステップ４０４）。前回測定値と今回測定値との差をＡとしたとき、Ａが所定のしきい値（前記変動幅Ｘに相当。）以上ならば（ステップ４０４の「Ｘ以上」）、フリーズ状態ではないと判断し、フローの先頭に戻る（図５のＡへ）。
【００３３】
一方、Ａが前記しきい値Ｘ未満である場合（ステップ４０４の「Ｘ未満」）、電流監視部１０１は、カウンタ（Ｃｏｕｎｔ）の値を１つ増加させる（ステップ４０５）。
【００３４】
次に、電流監視部１０１は、カウンタの値がリセット判定値（Ｎとする）以上となったか否かを判定する（ステップ４０６）。カウンタ値がＮ未満ならば（ステップ４０６の「Ｎ未満」）、電流監視部１０１は、省電力状態の判定に戻る（図５のＢへ）。
【００３５】
一方、カウンタ値がＮ以上となっている場合（ステップ４０６の「Ｎ以上」）、電流監視部１０１は、フリーズ状態と判断して、リセット制御部１０２に対しリセット信号を送り、リセット処理を実施させる（ステップ４０７）。
【００３６】
以上のように、本実施形態によれば、電流値が、フリーズ状態であることを示す場合、速やかにリセット復帰処理が行われる。この結果、ユーザがフリーズ状態に気づかない場合でも、すばやく復旧処理をさせることが可能となる。
【００３７】
［第２の実施形態］
続いて、前記リセット制御部に前記ＣＰＵをリセットさせる前に、前記ＣＰＵにフリーズ状態の検査を行わせるようにした本発明の第２の実施形態について図面を参照して詳細に説明する。図６は、本発明の第２の実施形態の端末装置の構成を表わしたブロック図である。図６を参照すると、電流監視部５０１と、リセット制御部５０２と、ＣＰＵ５０３と、ＲＯＭ５０４と、ＲＡＭ５０６と、を備えた構成が示されている。
【００３８】
上記電流監視部５０１〜ＲＡＭ５０６は、上記した第１の実施形態の電流監視部１０１〜ＲＡＭ１０６と略同等であるので、以下、相違点を中心に説明する。電流監視部５０１およびＣＰＵ５０３には、互いに通知を行うための用の汎用入出力端子（ＧＰＩＯ）が設けられている。
【００３９】
また、ＲＯＭ５０４には、フリーズしている実行中アプリケーション（プログラム）の有無を確認する検査プログラムが格納されている。このような検査プログラムとしては、タスクマネージャーやプロセス監視ツールと呼ばれるプログラムと同等のものを用いることができる。
【００４０】
電流監視部５０１は、端末装置が省電力状態ではない場合、上記した第１の実施形態と同様に、定期的にＣＰＵの電流値を測定している。そして、電流値が定常状態になったことを検出した場合、電流監視部５０１は、直ちに、リセット制御部５０２にリセット信号を送出するのではなく、ＣＰＵ５０３に対して通知を行い、ＣＰＵ５０３からの応答が返ってくるのを待つ。
【００４１】
ＣＰＵ５０３は、電流監視部５０１からの通知を受けると、実行中アプリケーション（プログラム）の動作状況を確認する検査プログラムを実行する。前記検査プログラムにより、フリーズしている実行中アプリケーション（プログラム）の存在を検出できた場合、ＣＰＵ５０３は、そのアプリケーション（プログラム）の再起動を試みる。一方、フリーズしている実行中アプリケーション（プログラム）がないと判断したら、電流監視部５０１に対しその旨の応答を返す。
【００４２】
電流監視部５０１は、ＣＰＵ５０３からの応答が返ってきた場合は、フリーズ状態ではないと判断する。一方、一定時間過ぎても、ＣＰＵ５０３からの応答が返らない場合、電流監視部５０１は、フリーズ状態と判断し、リセット制御部５０２にリセット信号を送出する。
【００４３】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図７は、本実施形態の端末装置の動作を表したフローチャートである。図７を参照すると、まず、電流監視部５０１内の前記フリーズの判定に用いるカウンタが０に設定される（ステップ６０１）。
【００４４】
次に、電流監視部５０１は、ＣＰＵ５０３の省電力端子から出力される端末状態信号に基づいて省電力状態であるか否かを判定する（ステップ６０２）。ここで、省電力状態であると判定した場合（ステップ６０２のＹｅｓ）、電流監視部５０１は、フローの先頭に戻る（図７のＡへ）。
【００４５】
一方、ステップ６０２で省電力状態でないと判定した場合（ステップ６０２のＮｏ）、電流監視部５０１は、電流値を測定する（ステップ６０３）。
【００４６】
次に、電流監視部５０１は、前回測定した電流値と、今回測定した電流値との比較を行う（ステップ６０４）。前回測定値と今回測定値との差をＡとしたとき、Ａが所定のしきい値（Ｘとする）以上ならば（ステップ６０４の「Ｘ以上」）、フリーズ状態ではないと判断し、フローの先頭に戻る（図７のＡへ）。
【００４７】
一方、Ａが前記しきい値Ｘ未満である場合（ステップ６０４の「Ｘ未満」）、電流監視部５０１は、カウンタ（Ｃｏｕｎｔ）の値を１つ増加させる（ステップ６０５）。
【００４８】
次に、電流監視部５０１は、カウンタの値がリセット判定値（Ｎとする）以上か否かを判定する（ステップ６０６）。カウンタ値がＮ未満ならば（ステップ６０６の「Ｎ未満」）、電流監視部５０１は、省電力状態の判定に戻る（図７のＢへ）。
【００４９】
一方、カウンタ値がＮ以上の場合（ステップ６０６の「Ｎ以上」）、電流監視部５０１は、フリーズ状態と判断して、ＣＰＵ５０３へ通知を送り（ステップ６０７）、ＣＰＵ５０３からの応答を待つ（ステップ６０８）。
【００５０】
前記通知に対し、ＣＰＵ５０３からの応答があった場合、電流監視部５０１は、フリーズ状態では無いと判断し、フローの先頭に戻る（図７のＡへ）。
【００５１】
一方、一定時間経っても応答が無い場合、電流監視部５０１は、フリーズ状態であると判断し、リセット制御部５０２に対しリセット信号を送り、リセット処理を実施させる（ステップ６０９）。
【００５２】
図８は、前記ステップ６０７で通知を受け取ったＣＰＵ５０３側の動作を表したフローチャートである。図８を参照すると、まず、電流監視部５０１からの通知を受信したＣＰＵ５０３は、検査プログラムを実行する（ステップ７０１）。
【００５３】
なお、ＣＰＵ５０３が、すでにフリーズ状態にあり、電流監視部５０１からの通知を認識できない場合、これ以降の処理は実施されず、ステップ７０４で実施する電流監視部５０１への応答を返せない。この結果、電流監視部５０１はフリーズ状態にあると判断し、リセット信号を送出することになる。
【００５４】
前記検査プログラムを実行した結果、フリーズしている実行中アプリケーション（プログラム）が無いと判定した場合（ステップ７０２のＮｏ）、ＣＰＵ５０３は、電流監視部５０１へその旨の応答を返す（ステップ７０４）。
【００５５】
一方、フリーズしている実行中アプリケーション（プログラム）があると判定した場合（ステップ７０２のＹｅｓ）、ＣＰＵ５０３は、当該フリーズしている実行中アプリケーション（プログラム）の再起動を試みる（ステップ７０３）。当該実行中アプリケーション（プログラム）の再起動を試みた後、ＣＰＵ５０３は、再度検査プログラムを実行し、フリーズしている実行中アプリケーション（プログラム）があるか否かを確認する（ステップ７０１へ）。ここで、うまく再起動できない場合、ＣＰＵ５０３は、ループに陥ることになる。この結果、電流監視部５０１に対する応答が返されないため、電流監視部５０１はフリーズと判断し、リセット信号を送出することになる。
【００５６】
以上のように、本実施形態は、ＣＰＵ５０３に対し通知を行い、ＣＰＵ５０３から応答を待つようにしたため、上記した第１の実施形態と比較して、ＣＰＵ５０３がフリーズ状態に陥ったのか否かを、より正確に判断することができる。また本実施形態によれば、フリーズしたソフトウェアの再起動を試みるようにしたため、リセットに至らずに正常復帰させる可能性を上げることができる。
【００５７】
続いて、本発明を複数のＣＰＵを搭載した端末装置に適用した本発明の第３の実施形態について図面を参照して詳細に説明する。近年の携帯端末装置に見られるように、端末装置が複数のＣＰＵを搭載している場合、ＣＰＵが互いに他方がフリーズ状態に陥ったか否かを監視することが可能になる。そこで、本実施形態では、上記第１、２の実施形態の電流監視部１０１、５０１が行っていた定常状態の判定を、ＣＰＵで実施するようにしている。
【００５８】
図９は、本発明の第３の実施形態の端末装置の構成を表わしたブロック図である。図９を参照すると、電流測定部８０１、８０２と、リセット制御部８０３と、ＣＰＵ８０４、８０５と、ＲＯＭ８０６と、ＲＡＭ８０７と、を備えた構成が示されている。
【００５９】
電流測定部８０１、８０２は、上記した第１、第２の実施形態の電流監視部１０１、５０１内の電流測定部に相当し、電流値の測定を行う電流測定回路によって構成される。電流測定部８０１、８０２は、上記した第１、第２の実施形態の電流監視部１０１、５０１とは異なり、電流の定常状態の判定やリセット制御部８０３へのリセット信号の送出を行わない。
【００６０】
リセット制御部８０３は、ＣＰＵ８０４またはＣＰＵ８０５の一方からリセット動作の要求を受けると、他方のＣＰＵのリセット端子（Ｒｅｓｅｔ端子）に、リセット信号を出力することにより当該ＣＰＵにリセット動作を行わせる。
【００６１】
ＣＰＵ８０４、８０５は、端末装置の各部を制御するユニットであり、リセット端子（Ｒｅｓｅｔ端子）からリセット信号が入力されると、リセット動作を行う。また、ＣＰＵ８０４、８０５は、省電力端子を備え、互いに自身が省電力モードであるか否かを示す信号を出力する。さらに、ＣＰＵ８０４、８０５は、対向するＣＰＵの電流測定部８０１、８０２にて測定された電流値の推移と、前記ＣＰＵが省電力モードであるか否かとに基づいて、端末装置がフリーズ状態になったか否かを確認する。前記確認の結果、フリーズ状態になった可能性があることを検出した場合、ＣＰＵ８０４、８０５は、直ちに、リセット制御部８０３にリセット信号を送出するのではなく、他方のＣＰＵに対して通知を行い、当該ＣＰＵからの応答が返ってくるのを待つ。
【００６２】
前記通知を行ったＣＰＵからの応答が返ってきた場合、ＣＰＵ８０４、８０５は、フリーズ状態ではないと判断する。一方、一定時間過ぎても、当該ＣＰＵからの応答が返らない場合、ＣＰＵ８０４、８０５は、フリーズ状態と判断し、リセット制御部８０３にリセット信号を送出する。
【００６３】
ＲＯＭ８０６およびＲＡＭ８０７は、上記した第１の実施形態のＲＯＭ１０４およびＲＡＭ１０６と略同等である。
【００６４】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図１０は、本実施形態の端末装置の動作を表したフローチャートである。図１０を参照すると、まず、ＣＰＵ８０４、８０５それぞれで、前記フリーズの判定に用いるカウンタが０に設定される（ステップ９０１）。
【００６５】
次に、ＣＰＵ８０４、８０５は、他方のＣＰＵの省電力端子から出力される端末状態信号に基づいて省電力状態か否かを判定する（ステップ９０２）。ここで、省電力状態であると判定した場合（ステップ９０２のＹｅｓ）、ＣＰＵ８０４、８０５は、フローの先頭に戻る（図１０のＡへ）。
【００６６】
一方、ステップ９０２で省電力状態でないと判定した場合（ステップ９０２のＮｏ）、ＣＰＵ８０４、８０５は、電流値を測定する（ステップ９０３）。ここで、ＣＰＵ８０４は、電流測定部８０２からＣＰＵ８０５に供給される電流値を測定し、ＣＰＵ８０５は、電流測定部８０１からＣＰＵ８０４に供給される電流値を測定する。
【００６７】
次に、ＣＰＵ８０４、８０５は、それぞれ、前回測定した電流値と、今回測定した電流値との比較を行う（ステップ９０４）。前回測定値と今回測定値との差をＡとしたとき、Ａが所定のしきい値（Ｘとする）以上ならば（ステップ９０４の「Ｘ以上」）、フリーズ状態ではないと判断し、フローの先頭に戻る（図１０のＡへ）。
【００６８】
一方、Ａが前記しきい値Ｘ未満である場合（ステップ９０４の「Ｘ未満」）、ＣＰＵ８０４、８０５は、カウンタ（Ｃｏｕｎｔ）の値を１つ増加させる（ステップ９０５）。
【００６９】
次に、ＣＰＵ８０４、８０５は、それぞれ、カウンタの値がリセット判定値（Ｎとする）以上か否かを判定する（ステップ９０６）。カウンタ値がＮ未満ならば（ステップ９０６の「Ｎ未満」）、ＣＰＵ８０４、８０５は、省電力状態の判定に戻る（図１０のＢへ）。
【００７０】
一方、カウンタ値がＮ以上の場合（ステップ９０６の「Ｎ以上」）、ＣＰＵ８０４、８０５は、フリーズ状態と判断して、他方のＣＰＵへ通知を送り（ステップ９０７）、当該ＣＰＵからの応答を待つ（ステップ９０８）。
【００７１】
前記通知に対し、前記他方のＣＰＵからの応答があった場合、ＣＰＵ８０４、８０５は、フリーズ状態では無いと判断し、フローの先頭に戻る（図１０のＡへ）。
【００７２】
一方、一定時間経っても応答が無い場合、ＣＰＵ８０４、８０５は、フリーズ状態であると判断し、リセット制御部８０３に対しリセット信号を送り、リセット処理を実施させる（ステップ９０９）。
【００７３】
図１１は、前記ステップ９０７で通知を受け取ったＣＰＵ側の動作を表したフローチャートである。図１１を参照すると、まず、ＣＰＵ８０４または８０５からの通知を受信したＣＰＵ８０５または８０４は、検査プログラムを実行する（ステップ１００１）。
【００７４】
なお、前記通知を受けたＣＰＵが、すでにフリーズ状態にあり、図１０のステップ９０７にて送出される通知を認識できない場合、これ以降の処理は実施されず、ステップ１００４で応答を返せない。この場合、前記通知の送信元のＣＰＵはフリーズ状態にあると判断し、リセット信号を送出することになる。
【００７５】
前記検査プログラムを実行した結果、フリーズしている実行中アプリケーション（プログラム）が無いと判定した場合（ステップ１００２のＮｏ）、前記通知を受信したＣＰＵ８０５または８０４は、前記通知の送信元のＣＰＵ８０４または８０５に対し、その旨の応答を返す（ステップ１００４）。
【００７６】
一方、フリーズしている実行中アプリケーション（プログラム）があると判定した場合（ステップ１００２のＹｅｓ）、前記通知を受信したＣＰＵ８０５または８０４は、当該フリーズしている実行中アプリケーション（プログラム）の再起動を試みる（ステップ１００３）。前記実行中アプリケーション（プログラム）の再起動を試みた後、前記通知を受信したＣＰＵ８０５または８０４は、再度検査プログラムを実行し、フリーズしている実行中アプリケーション（プログラム）があるか否か確認する（ステップ１００１へ）。ここで、うまく再起動できない場合、前記通知を受信したＣＰＵ８０５または８０４は、ループに陥ることになる。この結果、前記通知の送信元のＣＰＵ８０４または８０５に対する応答が返されないため、前記通知の送信元のＣＰＵ８０４または８０５はフリーズと判断し、リセット信号を送出することになる。
【００７７】
以上のように、本発明は、複数のＣＰＵを持つ構成の端末装置にも適用することが可能である。また、この場合、既存のＣＰＵに電流監視部としての機能を担わせることになるため、別途独立して動作する電流監視部は不要となる。
【００７８】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した第１、第２の実施形態では、電流監視部１０１、５０１を設けて電流値の監視を行うものとして説明したが、リセット制御部１０２、５０２側が、電流監視部として動作するようにしてもよい。
【００７９】
また、上記した実施形態では、前回測定値と今回測定値との差Ａが所定のしきい値Ｘ未満である状態がＮカウント以上継続したときに、フリーズ状態にあると判定するものとして説明したが、これらに加えて、当該区間の測定値が、端末装置のスリープ時消費電流を超え、かつ、最大消費電流未満の一定の範囲内にあることを確認するようにしてもよい。このようにすることで、特定のアプリケーションプログラムの暴走等によるフリーズ状態の発生を制度よく検出することができる。また、この場合に、前記リセット判定しきい値Ｎを短くするなどしてもよい。
【００８０】
また、前記リセット判定しきい値Ｎとしては、端末装置の仕様や搭載するアプリケーションに応じて種々の値を設定することが可能であるが、例えば、周辺回路へのタイムアウト判定値以上とするなどの下限値を設けることも望ましい。
【００８１】
また、上記した各実施形態では、省電力状態（省電力モード）である場合に、電流値の測定自体を行わないものとして説明したが、電流値の測定は継続して行って、リセット制御部１０２、５０２、ＣＰＵ８０４、８０５によるリセット動作を抑止するようにしてもよい。
【００８２】
また、上記した各実施形態では、省電力状態（省電力モード）では、電流値が定常状態になっても、リセット動作を行わないものとして説明したが、端末装置が備えるその他動作モードにおいても正常に働いていると判定できる限り、リセット動作を抑止するよう設定してもよい。例えば、省電力状態（省電力モード）にはならないものの、一定期間の経過等を契機として、スクリーンセーバーやデジタルフォトフレームのようなスライド表示、楽曲の再生等の表示を行う機能を備えた端末装置がある。このような端末装置においては、これら各動作モードでＣＰＵに流れる電流値を事前に測定し、あるいは、ＣＰＵから端末状態信号としてこれらの動作モードであることを把握できるようにしておき、電流値が定常状態になっても、リセット動作を抑止するようにすればよい。その一方で、これら動作モードに反する電流値の定常状態が観測されたときに、リセット動作を行うことで、ユーザの手を煩わせることなく、リセット動作を行うことが可能になる。
【符号の説明】
【００８３】
１０１、５０１  電流監視部
１０２、５０２、８０３  リセット制御部
１０３、５０３、８０４、８０５  ＣＰＵ
１０４、５０４、８０６  ＲＯＭ
１０６、５０６、８０７  ＲＡＭ
８０１、８０２  電流測定部
【図１】
2012208739.tif 000003
【図２】
2012208739.tif 000004
【図３】
2012208739.tif 000005
【図４】
2012208739.tif 000006
【図５】
2012208739.tif 000007
【図６】
2012208739.tif 000008
【図７】
2012208739.tif 000009
【図８】
2012208739.tif 000010
【図９】
2012208739.tif 000011
【図１０】
2012208739.tif 000012
【図１１】
2012208739.tif 000013