(57)【要約】【課題】検出プロセスは、比較的効率が悪く、多くのリソースを消費する。【解決手段】検出システムは、感知端子と、感知端子に接続された検出回路とを有する。感知端子は、電源の供給電流量を示す表示信号を受け取る。検出回路は、表示信号に基づき供給電流の変化量を計算し、変化量に応じてコンピュータ読み取り可能媒体に存在するアプリケーションプログラムの電力消費量を推定し、推定電力消費量を基準値と比較して、異常状態が発生しているかどうかを検出する。【選択図】図１Ａ
2013143126.tif 000002
【特許請求の範囲】
【請求項１】
検出システムであって、 
電源の供給電流量を示す表示信号を受け取る感知端子と、
前記感知端子に接続された検出回路であって、前記表示信号に基づき前記供給電流の変化量を計算し、前記変化量に応じて第１のアプリケーションプログラムの電力消費量を推定し、前記推定電力消費量を基準値と比較して、異常状態が発生しているかどうかを検出する前記検出回路と
を備え、
前記電源は、デバイスが前記デバイス内のコンピュータ読み取り可能媒体に存在する前記第１のアプリケーションプログラムを実行するための電力を供給するように動作可能である検出システム。
【請求項２】
前記検出回路が、前記電源および前記感知端子に接続されたモニタを備え、前記モニタは、前記表示信号に基づき前記電源の前記供給電流量を監視して、前記供給電流量を示す情報を記憶部に記憶する、請求項１に記載の検出システム。
【請求項３】
前記検出回路が、前記モニタおよび前記感知端子に接続されたプロセッサをさらに備え、前記プロセッサは、前記記憶部から前記情報を受け取り、前記情報に基づき前記供給電流の前記変化量を計算し、前記変化量に応じて前記第１のアプリケーションプログラムの前記電力消費量を推定し、前記推定電力消費量を前記基準値と比較して、前記異常状態が発生しているかどうかを検出する、請求項２に記載の検出システム。
【請求項４】
前記デバイスが、前記第１のアプリケーションプログラムをサポートするオペレーティングシステムを備える、請求項１に記載の検出システム。
【請求項５】
前記基準値が、前記第１のアプリケーションプログラムの平均電力消費量を表す、請求項１に記載の検出システム。
【請求項６】
前記検出回路が、プロセッサを備え、前記プロセッサは、前記推定電力消費量と前記基準値との差が所定の閾値より大きい場合、前記異常状態が発生していることを知らせる信号を提供する、請求項５に記載の検出システム。
【請求項７】
前記検出回路が、プロセッサを備え、前記プロセッサは、前記電源の電気エネルギー残量を計算し、前記電気エネルギー残量に基づき、前記デバイスが前記コンピュータ読み取り可能媒体に存在する第２のアプリケーションプログラムを実行するための電力を、前記電源から供給できるかどうかを検出し、前記デバイスが前記第２のアプリケーションプログラムを実行できる場合、前記第２のアプリケーションプログラムを実行できる期間を推定する、請求項１に記載の検出システム。
【請求項８】
前記検出回路が、プロセッサを備え、前記プロセッサは、前記電源の電気エネルギー残量をジュールからカロリーに変換する、請求項１に記載の検出システム。
【請求項９】
前記異常状態は、前記第１のアプリケーションプログラムがコンピュータウイルスに感染している場合に発生する、請求項１に記載の検出システム。
【請求項１０】
前記検出回路が、前記異常状態が前記第１のアプリケーションプログラムに発生していることを検出した場合、前記検出回路は、前記コンピュータ読み取り可能媒体に存在する検出プログラムを実行し、ウイルスデータベースにアクセスして、前記第１のアプリケーションプログラムのコードを前記ウイルスデータベースのコードと比較する、請求項１に記載の検出システム。
【請求項１１】
前記検出プログラムが、前記第１のアプリケーションプログラムにコンピュータウイルスが存在すると判定した場合、前記検出回路は、前記コンピュータ読み取り可能媒体に存在するアンチウイルスプログラムを実行して、前記コンピュータウイルスを除去する、請求項１０に記載の検出システム。
【請求項１２】
前記検出回路が、前記コンピュータ読み取り可能媒体に存在する検査プログラムを実行して、前記第１のアプリケーションプログラムの現在のコード長を前記第１のアプリケーションプログラムの予め記憶したコード長と比較して、前記第１のアプリケーションプログラムにコンピュータウイルスが存在するかどうかを検査する、請求項１０に記載の検出システム。
【請求項１３】
前記現在のコード長が前記予め記憶したコード長と異なる場合、前記検出回路は、新しいコンピュータウイルスを発見したと判定し、前記ウイルスデータベースを更新して、前記新しいコンピュータウイルスのコードを含める、請求項１２に記載の検出システム。
【請求項１４】
前記電源に直列に接続され、前記表示信号を提供する感知要素をさらに備え、前記表示信号は、前記感知要素の両端間の電圧を備える、請求項１に記載の検出システム。
【請求項１５】
デバイス内のコンピュータ読み取り可能媒体に存在する第１のアプリケーションプログラムの状態を検出する方法であって、
電源を使用して前記デバイスに前記第１のアプリケーションプログラムを実行するための電力を供給するステップと、
前記電源の供給電流の変化量を計算するステップと、
前記変化量に応じて、前記第１のアプリケーションプログラムの電力消費量を推定するステップと、
前記推定電力消費量を基準値と比較して、異常状態が発生しているかどうかを検出するステップと
を備える方法。
【請求項１６】
前記方法が、
前記電源に直列に接続された感知要素の両端間の電圧に基づき、前記電源の前記供給電流量を監視するステップと、
前記電圧に基づき、前記供給電流の前記変化量を計算するステップと
をさらに備える、請求項１５に記載の方法。
【請求項１７】
前記方法が、
前記推定電力消費量と前記基準値との差が所定の閾値より大きい場合、前記異常状態が発生していることを知らせる信号を提供するステップ
をさらに備え、前記基準値は、前記第１のアプリケーションプログラムの平均電力消費量を表す、請求項１５に記載の方法。
【請求項１８】
前記方法が、
前記電源の電気エネルギー残量を計算するステップと、
前記電気エネルギー残量に基づき、前記デバイスが前記コンピュータ読み取り可能媒体に存在する第２のアプリケーションプログラムを実行するための電力を、前記電源から供給できるかどうかを検出するステップと、
前記デバイスが前記第２のアプリケーションプログラムを実行できる場合、前記第２のアプリケーションプログラムを実行できる期間を推定するステップと
をさらに備える、請求項１５に記載の方法。
【請求項１９】
前記異常状態は、前記第１のアプリケーションプログラムがコンピュータウイルスに感染しているときに発生する、請求項１５に記載の方法。
【請求項２０】
検出システムであって、
プロセッサと、
前記プロセッサに接続されたメモリを備え、前記メモリは、コンピュータ読み取り可能命令を備え、前記命令は、前記プロセッサによって実行されたとき、前記プロセッサに、電源の供給電流量を示す情報を受け取らせ、前記情報に基づき前記供給電流の変化量を計算させ、前記変化量に応じて前記メモリに存在する第１のアプリケーションプログラムの電力消費量を推定させ、前記推定電力消費量を基準値と比較させて、異常状態が発生しているかどうかを検出させ、前記電源は、デバイスが前記第１のアプリケーションプログラムを実行するための電力を供給できる、検出システム。
【請求項２１】
前記推定電力消費量と前記基準値との差が所定の閾値より大きい場合、前記コンピュータ読み取り可能命令は、前記プロセッサによって実行されたとき、前記プロセッサに、前記異常状態が発生していることを知らせる信号を提供させる、請求項２０に記載の検出システム。
【請求項２２】
前記基準値は、前記第１のアプリケーションプログラムの平均電力消費量を表す、請求項２０に記載の検出システム。
【請求項２３】
前記コンピュータ読み取り可能命令は、前記プロセッサによって実行されたとき、前記プロセッサに、前記電源の電気エネルギー残量を計算させ、前記電気エネルギー残量に基づき、前記デバイスが前記メモリに存在する第２のアプリケーションプログラムを実行するための電力を、前記電源から供給できるかどうかを検出させ、前記デバイスが前記第２のアプリケーションプログラムを実行できる場合、前記第２のアプリケーションプログラムを実行できる期間を推定させる、請求項２０に記載の検出システム。
【請求項２４】
前記異常状態は、前記第１のアプリケーションプログラムがコンピュータウイルスに感染している場合に発生する、請求項２０に記載の検出システム。
【請求項２５】
前記電源に接続され、前記供給電流量を示す表示信号を提供するセンサ要素と、
前記センサ要素に接続され、前記表示信号を前記情報に変換するモニタと
をさらに備える、請求項２０に記載の検出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、デバイスで実行中のアプリケーションプログラムの状態を検出する検出システム及びその方法に関する。
[関連出願の相互参照]
本願は、中華人民共和国国家知識産権局に２０１２年１月１０日に出願された中国特許出願第２０１２１０００６７９１．Ｘ号の優先権を主張するものである。
【背景技術】
【０００２】
検出システムは、デスクトップ、ラップトップ、スマートフォン、パームトップ、またはタブレットコンピュータなどのコンピューティングデバイスを例とする電子デバイスにおいて、電子デバイスの異常状態を検出するために使用できる。従来の検出システムは、電子デバイスにコンピュータウイルスが存在するかどうかを、電子デバイスが実行している全てのアプリケーションプログラムを検査することによって検出している。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
より具体的には、検出システムは、各アプリケーションプログラムのコードをウイルスデータベースのコードと比較して、アプリケーションプログラムにコンピュータウイルスが存在するかどうかをチェックしている。アプリケーションプログラムにウイルスデータベースに見られるコードが存在している場合、検出システムは、アプリケーションプログラムがコンピュータウイルスに感染していると判定する。検出システムは、アプリケーションプログラムにコンピュータウイルスが存在するかどうかを判定するたびに、電子デバイスで実行中の全てのアプリケーションプログラムのコードを、ウイルスデータベースのコードと比較する。従って、検出プロセスは、比較的効率が悪く、多くのリソースを消費する。
【課題を解決するための手段】
【０００４】
一実施形態において、検出システムは感知端子と、この感知端子に接続された検出回路とを有する。感知端子は、電源の供給電流量を示す表示信号を受け取る。電源は、デバイスがコンピュータ読み取り可能媒体に存在するアプリケーションプログラムを実行するための電力を供給できる。検出回路は、表示信号に基づき供給電流の変化量を計算し、この変化量に応じてアプリケーションプログラムの電力消費量を推定し、この推定電力消費量を基準値と比較して、異常状態が発生しているかどうかを検出する。
【０００５】
特許請求の範囲に記載する本発明に関する実施形態の特徴および利点は、図面を参照した以下の詳細説明が進むに連れて、明らかになるであろう。複数の図面において、同じ符号は、同じ要素を表している。
【図面の簡単な説明】
【０００６】
【図１Ａ】本発明の一実施形態による、電子デバイスの一例のブロック図である。
【図１Ｂ】本発明の一実施形態による、図１Ａの電子デバイスの一例の回路図である。
【図２】本発明の一実施形態による、電子デバイスのソフトウェアトポロジ図である。
【図３】本発明の一実施形態による、プロセッサが行う動作例のフロー図である。
【図４】本発明の一実施形態による、検出システムが行う動作例のフロー図である。
【発明を実施するための形態】
【０００７】
以下、本発明の実施形態について、詳細に説明する。本発明について、これらの実施形態に関して説明するが、本発明をこれらの実施形態に限定するつもりはないことが理解されるであろう。それどころか、本発明は、添付の特許請求の範囲に規定される本発明の精神および範囲内に含みうる代替形態、変更形態、および均等物を包含することを意図している。
【０００８】
本明細書に記載する実施形態は、１つ以上のコンピュータまたは他のデバイスによって実行されるプログラムモジュールなどの、何らかの形態のコンピュータ使用可能媒体に存在するコンピュータ実行可能命令という、一般的状況に照らして検討されてもよい。一般に、プログラムモジュールには、特定のタスクを実行するかまたは特定の抽象データ型を実施するルーティン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。プログラムモジュールの機能は、種々の実施形態の求めに応じて、組み合わせまたは分散されてもよい。
【０００９】
以下の詳細説明のいくつかの部分は、コンピュータメモリ内のデータビットに関する手順、論理ブロック、処理、および他の操作の記号表現に関して述べている。これらの記述および表現は、データ処理技術の当業者が自分の仕事の中身を他の当業者に最も効果的に伝えるために使用する手段である。本願においては、手順、論理ブロック、プロセスなどは、所望の結果をもたらすステップまたは命令の首尾一貫したシーケンスと見なされる。これらのステップは、物理量の物理的操作を必要とするものである。必ずというわけではないが普通は、これらの量は、電気的信号または磁気的信号の形態をとり、コンピュータシステムの中で記憶、転送、組み合わせ、比較、および他の操作をすることができる。
【００１０】
しかし、上記の用語および類似の用語の全ては、適切な物理量に関係しており、これらの量に張り付けられた単に使い勝手が良いラベルであることに留意すべきである。以下の検討から明らかなように、具体的に異なったように述べない限り、本願を通じて「計算(calculating)」「推定(estimating)」「検出(detecting)」「監視(monitoring)」「記憶(storing)」「受取(receiving)」または同種のものなどの用語を使用した説明は、コンピュータシステムのレジスタおよびメモリ内の物理（電気）量として表されるデータを、コンピュータシステムのメモリもしくはレジスタ、または他のそのような情報記憶デバイス、伝送デバイスもしくは表示デバイス内の物理量として同様に表される他のデータに操作および変換する、コンピュータシステムまたは類似の電子コンピューティングデバイスの動作およびプロセスを指すと理解されるものである。
【００１１】
さらに、本発明の以下の詳細説明においては、本発明を徹底的に理解してもらうために、数多くの具体的な詳細を記載する。しかし、本発明をこれらの具体的な詳細なしに実施しうることを、当業者は理解するであろう。他の場合には、本発明の態様を不要に分かりにくくしないように、公知の方法、手順、コンポーネントおよび回路については、詳細には説明しない。
【００１２】
一実施形態では、本発明は、電子デバイスで実行中のアプリケーションプログラムの状態を監視し、アプリケーションプログラムの電力消費量を推定して、アプリケーションプログラムに異常状態が発生しているかどうかを検出する検出システムを提供する。
【００１３】
図１Ａは、本発明の一実施形態による、電子デバイス１００の一例のブロック図を示す。電子デバイス１００は、アプリケーションプログラムをサポートして、アプリケーションプログラムと電子デバイス１００のハードウェアとの間の仲介機能を果たすオペレーティングシステムを有する。例えば、電子デバイス１００は、デスクトップ、ラップトップ、スマートフォン、パームトップ、またはタブレットコンピュータでもよいが、これらに限定されない。電子デバイス１００は、電源１０２と、検出システム１２０とを有する。一実施形態では、電源１０２は、リチウムイオン電池、ニッケルカドミウム電池、鉛酸蓄電池、太陽電池などのような充電式電池パックを有する。別の実施形態においては、電源１０２は、アダプタを有する。電源１０２は、電子デバイス１００の例えば中央演算処理装置などのプロセッサに、電子デバイス１００内のコンピュータ読み取り可能媒体に存在する１つ以上のアプリケーションプログラムを実行するための電力を供給できる。電源１０２は、電子デバイス１００の表示スクリーンおよび通信インタフェースなどの他の負荷にも電力を供給してもよい。電源１０２に接続された検出システム１２０は、異常状態が発生しているかどうかを検出できる。一実施形態では、異常状態は、アプリケーションプログラムがコンピュータウイルスまたは他の種類の悪質なソフトウェアに感染している場合に発生する。
【００１４】
より具体的には、検出システム１２０は、感知要素１１２と検出回路１０４とを有する。例えば抵抗などの感知要素１１２は、電源１０２に直列に接続されている。電子デバイス１００が１つ以上のアプリケーションプログラムを実行すると、電源１０２の供給電流Ｉ１０２が感知要素１１２を通して流れる。感知要素１１２は、電源１０２の供給電流量Ｉ１０２を示す表示信号１１４を検出回路１０４に提供する。検出回路１０４は、感知端子を介して表示信号１１４を受け取る。検出回路１０４は、表示信号１１４に基づき供給電流Ｉ１０２の変化量を計算することによって、アプリケーションプログラムの電力消費量を推定でき、この推定電力消費量をアプリケーションプログラムに対する基準値ＰＲと比較することによって、異常状態が発生しているかどうかを検出できる。基準値ＰＲは、アプリケーションプログラムが正常状態で動作しているときの、アプリケーションプログラムの平均電力消費量を表す。
【００１５】
図１Ｂは、本発明の一実施形態による、図１Ａの電子デバイス１００の一例の回路図を示す。図１Ｂの例では、検出回路１０４は、モニタ１０８と、プロセッサ１１０（例えば、ｘ８６またはＡＲＭプラットフォームに基づくＣＰＵなどのマイクロプロセッサまたはデジタル信号プロセッサチップ）とを有する。検出回路１０４は、プロセッサ１１０によって実行されるコンピュータ読み取り可能命令を記憶するために、例えばメモリ１１６などのコンピュータ読み取り可能媒体をさらに有することができる。メモリ１１６は、プロセッサ１１０の内部に組み込まれてもよいし、またプロセッサ１１０の外部に設置されてもよい。モニタ１０８は、ＳＤＡ（シリアルデータ）ラインおよびＳＣＬ（シリアルクロック）ラインを介して、プロセッサ１１０に接続されている。電源１０２は、モニタ１０８に接続されている。感知要素１１２は、プロセッサ１１０に直列に接続され、感知端子１０６を介してモニタ１０８に接続されている。
【００１６】
電源１０２は、プロセッサ１１０がメモリ１１６に存在する１つ以上のアプリケーションプログラムを実行するための電力を供給できる。実行中のアプリケーションプログラム数が増加すると、感知要素１１２を流れる電源１０２の供給電流量Ｉ１０２も、それに応じて増加する。一実施形態では、供給電流量の増加は、アプリケーションプログラムの電力消費量を推定するために使用できる。感知要素１１２は、電源１０２の供給電流量Ｉ１０２を示すモニタ１０８に、表示信号１１４を提供する。表示信号１１４は、感知要素１１２の両端間の電圧でもよい。
【００１７】
モニタ１０８は、電源１０２の供給電流量Ｉ１０２を監視するために、感知要素１１２の両端間の電圧を監視でき、例えばモニタ１０８のレジスタなどの記憶部に供給電流量Ｉ１０２を示す情報を記憶できる。プロセッサ１１０は、メモリ１１６に記憶されたコンピュータ読み取り可能命令を実行して、記憶部から供給電流量Ｉ１０２を示す情報を受け取り、供給電流量Ｉ１０２を示す情報に基づき、供給電流Ｉ１０２の変化量を計算する。さらに、プロセッサ１１０は、供給電流Ｉ１０２の変化量に応じて、アプリケーションプログラムの電力消費量を推定し、推定電力消費量をアプリケーションプログラムに対する基準値ＰＲと比較して、異常状態が発生しているかどうかを検出する。
【００１８】
動作に関して一実施形態では、モニタ１０８は、感知端子１０６を介して感知要素１１２の例えば電圧などの表示信号１１４を受け取り、その表示信号１１４を供給電流量Ｉ１０２を示すデジタル情報に変換し、そのデジタル情報を記憶部に記憶する。プロセッサ１１０は、ＳＤＡラインおよびＳＣＬラインを介して記憶部から供給電流量Ｉ１０２のデジタル情報を受け取り、このデジタル情報に基づき供給電流Ｉ１０２の変化量を計算する。一例として、「プログラムＡＰＰ１」と仮に呼ぶアプリケーションプログラムが非実行状態のとき、電源１０２の供給電流量Ｉ１０２は、第１の電流レベルを有してもよく、プログラムＡＰＰ１が実行状態のとき、第２の電流レベルを有してもよい。アプリケーションプログラムが電子デバイス１００で実行されている場合、アプリケーションプログラムは実行状態であり、それ以外の場合、アプリケーションプログラムは非実行状態である。電源１０２の供給電流Ｉ１０２の変化量、例えば第１の電流レベルと第２の電流レベルとの差は、プログラムＡＰＰ１の電力消費量を推定するために使用することができる。より具体的には、プロセッサ１１０は、供給電流Ｉ１０２の変化量に電源１０２の電圧を掛けることによってプログラムＡＰＰ１の電力消費量を推定する。別の実施形態では、プロセッサ１１０は、プログラムＡＰＰ１が非実行状態のとき、第１の電流レベルに電源１０２の電圧を掛けることによって、第１の電力消費量を計算し、プログラムＡＰＰ１が実行状態のとき、第２の電流レベルに電源１０２の電圧を掛けることによって、第２の電力消費量を計算する。プログラムＡＰＰ１の電力消費量は、第１の電力消費量と第２の電力消費量との差に相当する。
【００１９】
プロセッサ１１０は、推定電力消費量をプログラムＡＰＰ１に対する基準値ＰＲと比較して、異常状態が発生しているかどうかを検出する。一実施形態では、基準値ＰＲは、電子デバイス１００が正常状態で動作するとき、例えばコンピュータウイルスのない健康な環境で動作するときの、プログラムＡＰＰ１の平均電力消費量を表す。一実施形態では、推定電力消費量と基準値ＰＲとの差ＤＩＦが所定の閾値より大きい場合、プロセッサ１１０は、異常状態が発生していることを知らせる、例えば割り込み信号などの警告信号を提供する。一実施形態では、異常状態は、アプリケーションプログラムがコンピュータウイルスまたは他の種類の悪質なソフトウェアに感染している場合に発生する。
【００２０】
警告信号に応えて、プロセッサ１１０は、プログラムＡＰＰ１を検査するために、メモリ１１６に存在する例えばセキュリティソフトウェアなどの検出プログラムをさらに実行できる。一例として、検出回路１０４のプロセッサ１１０が、プログラムＡＰＰ１に異常状態が発生していることを検出した場合、プロセッサ１１０は、メモリ１１６に存在する検出プログラムを実行して、所定のウイルスデータベースにアクセスし、プログラムＡＰＰ１のコードを所定のウイルスデータベースのコードと比較して、プログラムＡＰＰ１にコンピュータウイルスが存在するかどうかを検査する。検出プログラムが、プログラムＡＰＰ１にコンピュータウイルスが存在すると判定した場合、検出回路１０４のプロセッサ１１０は、メモリ１１６に存在するアンチウイルスプログラムを実行して、コンピュータウイルスを除去するか、またはプログラムＡＰＰ１をアンインストールする。プログラムＡＰＰ１に、ウイルスデータベースのコンピュータウイルスのコードと一致するコードが存在しない場合、プロセッサ１１０は、メモリ１１６に存在する自己診断プログラムを実行して、プログラムＡＰＰ１の現在のコード長を、予め記憶したプログラムＡＰＰ１のコード長と比較し、プログラムＡＰＰ１がコンピュータウイルスを有するかどうかを検査する。「現在のコード長」は、現時点におけるプログラムＡＰＰ１のコード長を意味する。「予め記憶したコード長」は、正常状態において前もって測定し、メモリ１１６に記憶したプログラムＡＰＰ１のコード長を意味する。現在のコード長が予め記憶したコード長と等しい場合、自己診断プログラムは、プログラムＡＰＰ１にコンピュータウイルスが存在しないと判定する。現在のコード長が予め記憶したコード長と異なる場合、検出回路１０４は、新しいコンピュータウイルスを発見したと判定し、ウイルスデータベースを更新して、新しいコンピュータウイルスのコードを含める。
【００２１】
プログラムＡＰＰ１に対する基準値ＰＲは、プログラムＡＰＰ１の平均電力消費レベルを表す。一例として、正常状態において、電子デバイス１００が初めてプログラムＡＰＰ１を実行する時、プロセッサ１１０は、プログラムＡＰＰ１の電力消費量ＰＯＷ１を推定し、プロセッサ１１０の例えばレジスタなどの記憶素子に推定電力消費量ＰＯＷ１を記憶する。この推定電力消費量ＰＯＷ１は、プログラムＡＰＰ１に対する基準値ＰＲとして使用できる。正常状態では、電子デバイス１００が２回目にプログラムＡＰＰ１を実行する時、プロセッサ１１０は、やはりプログラムＡＰＰ１の電力消費量ＰＯＷ２を推定する。プログラムＡＰＰ１に対する基準値ＰＲは、推定電力消費量ＰＯＷ１とＰＯＷ２を平均して、例えば基準値ＰＲは（ＰＯＷ１＋ＰＯＷ２）／２に等しいなどと、決定してもよい。プロセッサ１１０は、記憶素子の中の基準値ＰＲを更新する。その結果、電子デバイス１００が正常状態で動作する時、プロセッサ１１０がプログラムＡＰＰ１を実行するたびに、プロセッサ１１０は、プログラムＡＰＰ１の現在の平均電力消費レベルと記憶素子に記憶された基準値ＰＲとの平均レベルを計算して、記憶素子の中のプログラムＡＰＰ１に対する基準値ＰＲを更新する。有利なことに、プロセッサ１１０は、プログラムＡＰＰ１に関するより正確な基準値ＰＲを取得することができる。
【００２２】
一実施形態では、プロセッサ１１０は、検出システム１２０において電力消費量を定期的に検出することによって、異常状態が発生しているかどうかも検出する。プロセッサ１１０は、電力消費量の差ＰＤ０を所定の閾値ＰＤＴＨと比較することによって、異常状態が発生しているかどうかを検出できる。より具体的には、プロセッサ１１０は、１／ＴＤＥＣの頻度で検出システム１２０において電力消費量を推定する。例えば、プロセッサ１１０は、時刻ｔｉ、（ｔｉ＋ＴＤＥＣ）、（ｔｉ＋２×ＴＤＥＣ）等に、検出システム１２０において電力消費量を推定する。プロセッサ１１０は、時刻ｔｉと（ｔｉ＋ＴＤＥＣ）との電力消費量の差、仮にＰＤ１と呼ぶこの電力消費量の差を計算する。同様に、プロセッサ１１０は、時刻（ｔｉ＋ＴＤＥＣ）と（ｔｉ＋２×ＴＤＥＣ）との電力消費量の差、仮にＰＤ２と呼ぶこの電力消費量の差を計算する。電子デバイス１００が正常状態で動作し、かつ電子デバイス１００が時刻ｔｉ、（ｔｉ＋ＴＤＥＣ）、（ｔｉ＋２×ＴＤＥＣ）に同じアプリケーションプログラムを実行する場合、差ＰＤ１および差ＰＤ２のレベルは、例えば−ＰＤＨ〜＋ＰＤＨなどの範囲内にある。時刻ｔｋと（ｔｋ＋ＴＤＥＣ）における電子デバイス１００の電力消費量の計算値間の差ＰＤ０が、例えば−ＰＤＨ〜＋ＰＤＨなどの範囲外にあり、時刻ｔｉ、（ｔｉ＋ＴＤＥＣ）、（ｔｉ＋２×ＴＤＥＣ）、ｔｋ、（ｔｋ＋ＴＤＥＣ）において、電子デバイス１００が同じアプリケーションプログラムを実行していることを、プロセッサ１１０が検出した場合、プロセッサ１１０は、異常状態が発生していることを知らせる、例えば割り込み信号などの警告信号を提供する。異常状態は、プロセッサ１１０で動作している見えないウイルスプログラムによって引き起こされることがある。警告信号は、メモリ１１６に存在するウイルススキャンプログラムを起動させて、プロセッサ１１０で実行中のアプリケーションプログラムをスキャンさせることができる。時刻ｔｋと（ｔｋ＋ＴＤＥＣ）における電子デバイス１００の電力消費量の計算値間の差ＰＤ０が、例えば−ＰＤＴＨ〜＋ＰＤＴＨなどの範囲内の場合、電子デバイス１００は、正常状態で動作していると見なすことができる。
【００２３】
一実施形態では、電源１０２は電池である。プロセッサ１１０は、電源１０２の電気エネルギー残量を計算して、電気エネルギー残量に基づき、電子デバイス１００がメモリ１１６に存在するアプリケーションプログラムＡＰＰ２を実行するための電力を、電源１０２から供給できるかどうかを判定できる。電源１０２の電気エネルギー残量が、アプリケーションプログラムＡＰＰ２を実行するのに十分ある場合、プロセッサ１０８は、アプリケーションプログラムＡＰＰ２を実行できる期間ＴＲＵＮも推定することができる。
【００２４】
説明のために、本発明について、２つのプログラムＡＰＰ１およびＡＰＰ２に関して述べる。しかし、アプリケーションプログラム数は変わってもよく、電源１０２は、電子デバイス１００が他の数のアプリケーションプログラムを実行するための電力を供給できる。
【００２５】
一実施形態では、電源１０２の充電残量は、モニタ１０８のカウンタチップを使用して、クーロン計数によって取得できる。プロセッサ１１０は、電源１０２の充電残量と電圧を掛けて、電源１０２の電気エネルギー残量を推定する。プロセッサ１１０は、電気エネルギー残量を４．１８６で割って、電源１０２の電気エネルギー残量をジュールからカロリーに変換できる。従って、表示スクリーンは、カロリー単位で電源１０２のエネルギー残量を表示できる。さらに、プロセッサ１１０は、例えば１秒間などの期間における、アプリケーションプログラムが消費する電気エネルギーＥ１をカロリー単位で計算できる。電気エネルギーＥ１は、表示スクリーンに表示できる。さらに、プロセッサ１１０は、アプリケーションプログラムの起動から現時点までのアプリケーションプログラムの実行時間を計算して、実行時間中にアプリケーションプログラムが消費した電気エネルギーＥ２をカロリー単位で計算できる。電気エネルギーＥ２は、表示スクリーンに表示することができる。
【００２６】
有利なことに、検出システム１２０は、電子デバイス１００において実行状態のアプリケーションプログラムＡＰＰ１の電力消費量を計算して、異常状態が発生しているかどうかを検出できる。検出システム１２０が、アプリケーションプログラムに異常状態が発生していることを検出した場合、検出システムは、そのアプリケーションプログラムのコードを所定のウイルスデータベースのコードと比較して、そのアプリケーションプログラムがコンピュータウイルスに感染しているかどうかを検査する。それ故、全てのアプリケーションプログラムのコードをウイルスデータベースのコードと比較する従来の検出プロセスと比べて、本発明の検出プロセスは、効率的であり、リソースの消費も少ない。検出システム１２０は、電源の電気エネルギー残量が別のアプリケーションプログラムＡＰＰ２を実行するのに十分かどうかも、エンドユーザに通知できる。電源の電気エネルギー残量が別のアプリケーションプログラムＡＰＰ２を実行するのに十分な場合、検出システム１２０は、アプリケーションプログラムＡＰＰ２を実行できる期間ＴＲＵＮをさらに推定できる。さらに、検出システム１２０は、例えばカロリー単位などで表示スクリーン上に、電源ソース１０２の電気エネルギー残量と、１つ以上のアプリケーションの電力消費量とを表示することによって、利用者が使い易いインタフェースを提供できる。
【００２７】
図２は、本発明の一実施形態による、電子デバイス１００のソフトウェアトポロジ２００の図を示す。図２について、図１Ａおよび図１Ｂと合わせて説明する。図２の例では、ソフトウェアトポロジ２００は、アプリケーション監視プログラム２０２、推定プログラム２０４、較正プログラム２０６、アプリケーションデータベース２０８、検出プログラム２１０、ウイルスデータベース２１２、アンチウイルスプログラム２１４、自己診断プログラム２１６、システム監視プログラム２１８、およびウイルススキャンプログラム２２０を有する。一実施形態では、プログラム２０２、２０４、２０６、２１０、２１４、２１６、２１８，２２０は、例えばメモリ１１６などのコンピュータ読み取り可能媒体に存在するコンピュータ読み取り可能命令であり、プロセッサ１１０によって実行されると、種々の機能を提供できる。一実施形態では、データベース２０８および２１２は、例えばメモリ１１６などのコンピュータ読み取り可能媒体に存在する。通常の状況では、プログラム２０２、２０４、２０６、２１０、２１４、２１６、２１８、２２０の電力消費量は、比較的安定していて少ないので、電子デバイス１００で実行中の他のアプリケーションプログラムの電力消費量の推定に影響を与えない。
【００２８】
アプリケーション監視プログラム２０２は、プロセッサ１１０によって実行されると、アプリケーションプログラムの実行が開始されるかどうかを検出できる。推定プログラム２０４は、プロセッサ１１０によって実行されると、仮にプログラムＡＰＰ１と呼ぶ、アプリケーションプログラムの電力消費量を推定できる。アプリケーションデータベース２０８は、１つ以上のアプリケーションプログラムに関する情報を記憶できる。この情報には、アプリケーションプログラムのアイデンティティ、アプリケーションプログラムの推定電力消費量、アプリケーションプログラムの予め記憶する平均電力消費量等を含む。較正プログラム２０６は、プロセッサ１１０によって実行されると、プログラムＡＰＰ１の平均電力消費量を計算して、計算した平均電力消費量に関する情報をアプリケーションデータベース２０８に書き込んで、アプリケーションデータベース２０８を更新できる。ウイルスデータベース２１２は、様々なコンピュータウイルスに関する例えばコードなどの情報を記憶する。検出プログラム２１０は、プロセッサ１１０によって実行されると、ウイルスデータベース２１２にアクセスし、このウイルスデータベース２１２のコンピュータウイルスのコードに一致するコードがプログラムＡＰＰ１に存在するかどうかを検索して、プログラムＡＰＰ１にコンピュータウイルスが存在するかどうかを検査する。アンチウイルスプログラム２１４は、プロセッサ１１０によって実行されると、コンピュータウイルスを除去できる。自己診断プログラム２１６は、プロセッサ１１０によって実行されると、プログラムＡＰＰ１の現在のコード長をプログラムＡＰＰ１の予め記憶したコード長と比較できる。予め記憶するコード長は、アプリケーションデータベース２０８に記憶できる。システム監視プログラム２１８は、プロセッサ１１０によって実行されると、電子デバイス１００の電力消費量を定期的に検出し、前述の電力消費量の差ＰＤ０および範囲−ＰＤＴＨ〜＋ＰＤＴＨに基づいて、異常状態が発生しているかどうかを検出できる。ウイルススキャンプログラム２２０は、プロセッサ１１０によって実行されると、プロセッサ１１０で実行中のアプリケーションプログラムをスキャンして、プロセッサ１１０で実行中のアプリケーションプログラムにコンピュータウイルスが存在するかどうかを検査できる。
【００２９】
プログラム２０２、２０４、２０６、２１０、２１４、２１６、２１８、２２０の動作について、図３に関してさらに説明する。図３は、本発明の一実施形態による、プロセッサ１１０が行う動作例のフロー図３００を示す。図３は具体的なステップを開示しているが、これらのステップは例である。すなわち、本発明は、図３に挙げるステップ以外の種々のステップまたは図３に挙げるステップの変形のステップを実行するのにも適している。一実施形態では、フロー図３００は、例えばメモリ１１６などのコンピュータ読み取り可能媒体に記憶されたコンピュータ実行可能命令として実施される。図３について、図１Ａ、図１Ｂおよび図２と合わせて説明する。
【００３０】
ブロック３０２において、プロセッサ１１０は、監視機能を実行する。例えば、プロセッサ１１０は、システム監視プログラム２１８と、アプリケーション監視プログラム２０２とを実行する。
【００３１】
ブロック３０４において、プロセッサ１１０は、システム監視プログラム２１８を実行して、前述の電力消費量の差ＰＤ０および範囲−ＰＤＴＨ〜＋ＰＤＴＨに基づいて、異常状態が発生しているかどうかを定期的に検出する。電力消費量の差ＰＤ０が範囲−ＰＤＴＨ〜＋ＰＤＴＨ内の場合、プロセッサ１１０は、電子デバイス１００が正常状態で動作していると判定する。電力消費量の差ＰＤ０が範囲−ＰＤＴＨ〜＋ＰＤＴＨ外の場合、プロセッサ１１０は、異常状態が発生していると判定する。
【００３２】
ブロック３０６において、例えば差ＰＤ０が範囲−ＰＤＴＨ〜＋ＰＤＴＨ外などから、異常状態が発生していることを、プロセッサ１１０が検出した場合、フロー図３００のブロック３０８に進み、それ以外の場合、ブロック３０４に戻る。ブロック３０８において、プロセッサ１１０は、電子デバイス１００が実行しているアプリケーションプログラムをスキャンするウイルススキャンプログラム２２０を起動するために、警告信号を生成する。ウイルススキャンプログラム２２０は、コンピュータウイルスを発見した場合、アンチウイルスプログラム２１４を実行して、コンピュータウイルスを除去するか、またはコンピュータウイルスに感染したアプリケーションプログラムをアンインストールする。
【００３３】
ブロック３１０において、プロセッサ１１０は、アプリケーション監視プログラム２０２を実行して、例えばタスクマネージャに定期的にアクセスなどして、アプリケーションプログラムの実行が開始されたかどうかを検出する。アプリケーションプログラムＡＰＰ１の実行が開始された場合、フロー図３００のブロック３１２に進み、それ以外の場合、ブロック３１０に戻る。
【００３４】
ブロック３１２において、プロセッサ１１０は、推定プログラム２０４を実行して、プログラムＡＰＰ１の電力消費量を推定する。ブロック３１４において、プロセッサ１１０は、アプリケーション監視プログラム２０２を実行して、プログラムＡＰＰ１が電子デバイス１００で初めて実行される新しいアプリケーションプログラムかどうかを判定する。プログラムＡＰＰ１が新しいアプリケーションプログラムの場合、フロー図のブロック３１６に進み、それ以外の場合、ブロック３１８に進む。ブロック３１６において、プロセッサ１１０は、プログラムＡＰＰ１に関する情報をアプリケーションデータベース２０８に加えて、アプリケーションデータベース２０８を更新する。
【００３５】
ブロック３１８において、プロセッサ１１０は、推定プログラム２０４を実行して、推定電力消費量と例えばアプリケーションデータベース２０８に記憶されたプログラムＡＰＰ１の予め記憶した平均電力消費量などの基準値ＰＲとの間の、仮にＤＩＦと呼ぶ差を計算する。一例として、アプリケーションデータベース２０８は、プログラムＡＰＰ１を含む１つ以上のアプリケーションプログラムの予め記憶する平均電力消費量に関する情報を記憶する。推定プログラム２０４は、アプリケーションデータベース２０８からプログラムＡＰＰ１の予め記憶した平均電力消費量に関する情報を取得して、推定電力消費量と予め記憶した平均電力消費量との差ＤＩＦを計算する。
【００３６】
ブロック３２０において、プロセッサ１１０は、推定プログラム２０４を実行して、差ＤＩＦを所定の閾値と比較して、異常状態が発生しているかどうかを検出する。差ＤＩＦが所定の閾値より小さい場合、プロセッサ１１０は、電子デバイス１００が正常状態で動作していると判定し、フロー図３００のブロック３２２に進む。しかし、差ＤＩＦが所定の閾値より大きい場合、プロセッサ１１０は、異常状態が発生していると判定して、フロー図３００のブロック３２４に進む。
【００３７】
ブロック３２２において、プロセッサ１１０は、較正プログラム２０６を実行して、推定電力消費量および予め記憶した平均電力消費量に基づいて、プログラムＡＰＰ１の平均電力消費量を再計算する。ブロック３１６において、プロセッサ１１０は、較正プログラム２０６を実行して、予め記憶した平均電力消費量を再計算した平均電力消費量で置換して、アプリケーションデータベース２０８をさらに更新する。
【００３８】
ブロック３２４において、プロセッサ１１０は、推定プログラム２０４を実行して、例えば割り込み信号などの警告信号を検出プログラム２１０に提供する。ブロック３２６において、プロセッサ１１０は、検出プログラム２１０を実行して、ウイルスデータベース２１２にアクセスし、プログラムＡＰＰ１のコードをウイルスデータベース２１２のコードと比較する。ブロック３２８において、ウイルスデータベース２１２のコンピュータウイルスのコードと一致するコードがプログラムＡＰＰ１に存在する場合、プログラムＡＰＰ１は、コンピュータウイルスに感染していると判定され、フロー図のブロック３３０に進む。それ以外の場合、フロー図のブロック３３２に進み、自己診断プロセスを実行する。
【００３９】
ブロック３３０において、プロセッサ１１０は、検出プログラム２１０を実行して、アンチウイルスプログラム２１４を起動し、コンピュータウイルスを除去するか、またはプログラムＡＰＰ１をアンインストールする。
【００４０】
ブロック３３２において、プロセッサ１１０は、自己診断プログラム２１６を実行して、プログラムＡＰＰ１の現在のコード長をプログラムＡＰＰ１の予め記憶したコード長と比較する。コード長が変化している場合、例えば現在のコード長が予め記憶したコード長と異なる場合、フロー図３００のブロック３３４に進む。コード長が変化していない場合、例えば現在のコード長が予め記憶したコード長と等しい場合、フロー図のブロック３３６に進む。
【００４１】
ブロック３３４において、プロセッサ１１０は、自己診断プログラム２１６を実行して、新しいコンピュータウイルスを発見したと判定し、ウイルスデータベース２１２を更新して、新しいコンピュータウイルスのコードを含める。
【００４２】
ブロック３３６において、プロセッサ１１０は、自己診断プログラム２１６を実行して、電子デバイス１００が正常状態にあると判定し、検出プログラム２１０は、推定プログラム２０４から提供された警告信号を廃棄する。
【００４３】
図４は、本発明の一実施形態による、図１Ａの検出システム１２０が行う動作例のフロー図を示す。図４について、図１Ａ、図１Ｂ、図２および図３と合わせて説明する。図４には具体的なステップを開示しているが、これらのステップは例である。すなわち、本発明は、図４に挙げるステップ以外の種々のステップまたは図４に挙げるステップの変形のステップを実行するのにも適している。
【００４４】
ブロック４０２において、電源１０２は、例えば電子デバイス１００などのデバイスが、デバイスのコンピュータ読み取り可能媒体に存在する例えばプログラムＡＰＰ１などのアプリケーションプログラムを実行するための電力を供給する。
【００４５】
ブロック４０４において、プロセッサ１１０は、電源１０２の例えば供給電流Ｉ１０２などの供給電流の変化量を計算する。一例として、電源１０２の供給電流量Ｉ１０２は、プログラムＡＰＰ１が不使用状態のときに第１の電流レベルを有してもよく、プログラムＡＰＰ１が使用状態のときに第２の電流レベルを有してもよい。電源１０２の供給電流Ｉ１０２の変化量は、第１の電流レベルと第２の電流レベルとの差によって決定される。
【００４６】
ブロック４０６において、プロセッサ１１０は、変化量に応じて、例えばプログラムＡＰＰ１などのアプリケーションプログラムの電力消費量を推定する。一例として、プロセッサ１１０は、供給電流Ｉ１０２の変化量に電源１０２の電圧を掛けて、プログラムＡＰＰ１の電力消費量を推定する。
【００４７】
ブロック４０８において、プロセッサ１１０は、推定電力消費量をアプリケーションプログラムに対する基準値ＰＲと比較して、異常状態が発生しているかどうかを検出する。一例として、推定電力消費量と基準値ＰＲとの差が所定の閾値より大きい場合、プロセッサ１１０は、異常状態が発生していることを知らせる警告信号を提供する。一実施形態において、異常状態は、アプリケーションプログラムがコンピュータウイルスまたは他の種類の悪質なソフトウェアに感染している場合に発生する。
【００４８】
その結果、検出システムは、電子デバイスが引き出した供給電流の変化量を計算することで、電子デバイスで実行中のアプリケーションプログラムの電力消費量を計算する。検出システムは、アプリケーションプログラムが消費する推定電力消費量をアプリケーションプログラムに対する基準値と比較して、異常状態が発生しているかどうかを検出する。検出システムは、デスクトップ、ラップトップ、スマートフォン、パームトップ、タブレットコンピュータ等のような種々の用途に使用できる。
【００４９】
これまでの説明および図面は本発明の実施形態を表しているが、添付の特許請求の範囲に規定される本発明の原理の精神および範囲から逸脱することなく、これらの実施形態に種々の追加、変更および代替を行いうることが理解されるであろう。本発明の原理から逸脱することなしに特定の環境および動作要件に具体的に適合される、本発明の実践において使用される形態、構造、配置、割合、材料、要素、コンポーネントやその他の多くの変更を行って、本発明を使用しうることを、当業者は理解するであろう。従って、本開示の実施形態は、全ての面において説明であり、限定ではないと見なされるものである。本発明の範囲は、添付の特許請求の範囲およびその法的均等物に示されており、これまでの説明に限定されるものではない。
【符号の説明】
【００５０】
１００  電子デバイス
１０２  電源
１０４  検出回路
１０６  感知端子
１０８  モニタ
１１０  プロセッサ
１１２  感知要素
１１４  表示信号
１１６  メモリ
１２０  検出システム
Ｉ１０２  供給電流量
【図１Ａ】
2013143126.tif 000003
【図１Ｂ】
2013143126.tif 000004
【図２】
2013143126.tif 000005
【図３】
2013143126.tif 000006
【図４】
2013143126.tif 000007