(57)【要約】  コンピュータ上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断する方法およびシステムが提供される。この方法は、ＤＣ電流を測定することと、データ処理デバイスに供給されるＤＣ供給電圧を測定することとを含み、それによってタイム・スタンプ付き電圧値サンプルと電流値サンプルのストリームを作成する。この方法は、Ｉ／Ｑデジタル信号処理を使用して、同一時刻におけるストリームの積を求めることと、その積を実数データ・ストリームと虚数データ・ストリームとに変換することと、これらを結合して複素数データ・ストリームとすることと、複素数データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成することと、復調データ・ストリームから少なくとも１つのストリーム・ベースのパラメータ・シグネチャを抽出することとをさらに含み、少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、データ処理デバイス上で実行中の少なくとも１つの対応するアプリケーションの電力消費パターンを表す。【選択図】図５
2021531584.tif 000002
【特許請求の範囲】
【請求項１】
データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するコンピュータ実装方法であって、
前記データ処理デバイスに流れるＤＣ電流を電流センサを使用して測定し、それによってタイム・スタンプ付き電流値サンプルのストリームを作成することと、
前記データ処理デバイスに供給されるＤＣ供給電圧を電圧センサを使用して測定し、それによってタイム・スタンプ付き電圧値サンプルのストリームを作成することと、
Ｉ／Ｑデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、前記積を実数データ・ストリームと虚数データ・ストリームとに変換することと、
前記実数データ・ストリームと前記虚数データ・ストリームとを結合して複素数データ・ストリームとすることと、
前記複素数データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成することと、
前記復調データ・ストリームから少なくとも１つのストリーム・ベースのパラメータ・シグネチャを抽出することとを含み、前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、前記データ処理デバイス上で実行中の前記少なくとも１つの対応するアプリケーションの前記電力消費パターンを表す、コンピュータ実装方法。
【請求項２】
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャを、既知のアプリケーションの既知のパラメータ・シグネチャと比較することをさらに含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、周波数シグネチャと、振幅シグネチャと、位相シグネチャとを含むグループのうちの少なくとも１つの選択されたパラメータ成分である、請求項１に記載の方法。
【請求項４】
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、各パラメータ成分の最頻値と、平均値と、最小値と、最大値とを含むグループのうちの選択された少なくとも１つも含む、請求項３に記載の方法。
【請求項５】
前記複素数データ・ストリームに複数のチャネル化フィルタを適用することと、
複数のフィルタ出力信号を生成することと、
前記フィルタ出力信号のそれぞれに対してシグネチャ・エッジ検出を行い、それによって、前記データ処理デバイスの前記電力消費パターンの判断に関連する時間領域情報を増強することによって前記フィルタ出力信号を特徴解析することとをさらに含む、請求項１に記載の方法。
【請求項６】
キャニー・エッジ・アルゴリズムを使用してシグネチャ・エッジ検出が行われる、請求項５に記載の方法。
【請求項７】
前記復調データ・ストリームに無限インパルス応答信号フィルタを適用することをさらに含み、前記無限インパルス応答信号フィルタは、前記復調データ・ストリームの信号対雑音比を向上させるとともに、シグネチャ振幅を向上させるために発生した位相遅れを低減する、請求項１に記載の方法。
【請求項８】
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャにおける１つまたは複数のシグネチャ・エッジを検出することと、
関連する電力シグネチャ・データを解析エンジンに適したデータ形式に集約することとをさらに含む、請求項１に記載の方法。
【請求項９】
集約された前記関連する電力シグネチャ・データを監視のために前記解析エンジンに送信することをさらに含む、請求項８に記載の方法。
【請求項１０】
データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するためのシステムであって、
前記データ処理デバイスに流れるＤＣ電流を測定し、それによってタイム・スタンプ付き電流値サンプルのストリームを作成するように構成された電流センサと、
前記データ処理デバイスに供給されるＤＣ供給電圧を測定し、それによってタイム・スタンプ付き電圧値サンプルのストリーム作成するように構成された電圧センサと、
方法を実行するように構成されたプロセッサとを含み、前記方法は、
Ｉ／Ｑデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、前記積を実数データ・ストリームと虚数データ・ストリームとに変換することと、
前記実数データ・ストリームと前記虚数データ・ストリームとを結合して複素数データ・ストリームとすることと、
前記複素数データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成することと、
前記復調データ・ストリームから少なくとも１つのストリーム・ベースのパラメータ・シグネチャを抽出することとを含み、前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、前記データ処理デバイス上で実行中の前記少なくとも１つの対応するアプリケーションの前記電力消費パターンを表す、システム。
【請求項１１】
前記方法は、
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャを、既知のアプリケーションの既知のパラメータ・シグネチャと比較することをさらに含む、請求項１０に記載のシステム。
【請求項１２】
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、周波数シグネチャと、振幅シグネチャと、位相シグネチャとを含むグループのうちの少なくとも１つの選択されたパラメータ成分である、請求項１０に記載のシステム。
【請求項１３】
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、各パラメータ成分の最頻値と、平均値と、最小値と、最大値とを含むグループのうちの選択された少なくとも１つも含む、請求項１２に記載のシステム。
【請求項１４】
前記方法は、
前記複素数データ・ストリームに複数のチャネル化フィルタを適用して複数のフィルタ出力信号を生成することと、
前記データ処理デバイスの前記電力消費パターンの判断に関連する時間領域情報を増強することによって前記フィルタ出力信号を特徴解析するために、前記フィルタ出力信号のそれぞれにシグネチャ・エッジ検出器を適用することとをさらに含む、請求項１０に記載のシステム。
【請求項１５】
前記複数のチャネル化フィルタのそれぞれが、シグネチャ・エッジ検出のためのキャニー・エッジ・フィルタである、請求項１４に記載のシステム。
【請求項１６】
前記方法は、
前記復調データ・ストリームの信号対雑音比を向上させ、シグネチャ振幅を向上させるために発生した位相遅れを低減するために、無限インパルス応答信号フィルタを適用することをさらに含む、請求項１０に記載のシステム。
【請求項１７】
前記方法は、
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャにおけるシグネチャ・エッジを検出することと、
関連する電力シグネチャ・データを解析エンジンに適したデータ形式に集約することとをさらに含む、請求項１０に記載のシステム。
【請求項１８】
前記方法は、
集約された前記関連する電力シグネチャ・データが監視のために前記解析エンジンによって受信可能なように、集約された前記関連する電力シグネチャ・データを送信することをさらに含む、請求項１７に記載のシステム。
【請求項１９】
プログラム命令が実現されたコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ可読記憶媒体は一過性の信号自体ではなく、前記プログラム命令は、データ処理デバイスのプロセッサに方法を実行させるために前記プロセッサによって実行可能であり、前記方法は、
前記データ処理デバイスに流れるＤＣ電流を電流センサを使用して測定し、それによってタイム・スタンプ付き電流値サンプルのストリームを作成することと、
前記データ処理デバイスに供給されるＤＣ供給電圧を電圧センサを使用して測定し、それによってタイム・スタンプ付き電圧値サンプルのストリームを作成することと、
Ｉ／Ｑデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、前記積を実数データ・ストリームと虚数データ・ストリームとに変換することと、
前記実数データ・ストリームと前記虚数データ・ストリームとを結合して複素数データ・ストリームとすることと、
前記複素数データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成することと、
前記復調データ・ストリームから少なくとも１つのストリーム・ベースのパラメータ・シグネチャを抽出することとを含み、前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、前記データ処理デバイス上で実行中の前記少なくとも１つの対応するアプリケーションの前記電力消費パターンを表す、コンピュータ・プログラム製品。
【請求項２０】
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャを既知のアプリケーションの既知のパラメータ・シグネチャと比較することをさらに含む、請求項１９に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にはソフトウェア検出の方法に関し、より詳細には、データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するコンピュータ実装方法に関する。本発明は、さらに、データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するためのシステムおよびコンピュータ・プログラム製品に関する。
【背景技術】
【０００２】
情報技術（ＩＴ）セキュリティの分野における重要な課題は、システムにマルウェア検出ソフトウェアをインストールすることができない場合の、侵害されたシステムの検出である。これは、システムに、未知または古くなったオペレーティング・システムを備えたシステムおよび限られたユーザ・インターフェースを備えたシステムへのネットワーク接続があるが、それ以外は接続がない密閉された箱である場合の運用技術（ＯＴ）の分野に当てはまる。
【０００３】
システム侵害の検出の１つの方法は、問題のシステムの電力消費を解析することである。これは、１つのオペレーティング・システムと１つのアプリケーションとを稼働させているデバイスの侵害検出のために研究されてきた。しかし、現在では、サーバの仮想化が広く使用されている。同じハードウェア・インスタンス上で複数のオペレーティング・システム・インスタンス（ゲストＯＳ／オペレーティング・システム）が実行されている。この場合、各ゲストＯＳが１つまたは複数の異なるアプリケーションを実行し、したがって異なる電力使用パターンを示すため、電力消費に基づく異常検出ははるかに困難である。アプリケーションのパターンの混在に加えて、（オペレーティング・システムおよび関連アプリケーションをスワップ・インおよびスワップ・アウトする）ハイパーバイザからの電力使用パターンが、全体的な電力信号の特定と解釈をはるかに困難にする。悪意のあるソフトウェアを示す電力使用パターンがある場合でも、多くのゲスト・オペレーティング・システムのうちのいずれが感染しているか、特定の１つであるか、または一部であるか、または全部が感染しているのかを判断する必要がある。
【発明の概要】
【０００４】
本発明の一態様によると、データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するコンピュータ実装方法を提供することができる。この方法は、データ処理デバイスに流れるＤＣ電流を電流センサを使用して測定することを含むことができ、それによってタイム・スタンプ付き電流値サンプルのストリームを作成することができる。
【０００５】
この方法は、データ処理デバイスに供給されるＤＣ供給電圧を電圧センサを使用して測定することをさらに含むことができ、それによって、タイム・スタンプ付き電圧値サンプルのストリームを作成することができる。
【０００６】
また、この方法は、Ｉ／Ｑデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、その積を実数データ・ストリームと虚数データ・ストリームとに変換することと、実数データ・ストリームと虚数データ・ストリームとを結合して複素数データ・ストリームとすることと、複合データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成することとをさらに含み得る。
【０００７】
最後に、この方法は、ストリーム・ベースのパラメータ・シグネチャのそれぞれがデータ処理デバイス上で実行中の少なくとも１つの対応するアプリケーションの電力消費パターンを表す、少なくとも１つのストリーム・ベースのパラメータ・シグネチャを、復調データ・ストリームから抽出することを含み得る。
【０００８】
本発明の別の態様によると、データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するためのシステムを提供することができる。このシステムは、データ処理デバイスに流れるＤＣ電流を測定するための電流センサを含み得る。これによって、タイム・スタンプ付き電流値サンプルのストリームを作成することができる。
【０００９】
このシステムは、データ処理デバイスに供給されるＤＣ供給電圧を測定する電圧センサも含み得る。これによって、タイム・スタンプ付き電圧値サンプルのストリームを作成することができる。
【００１０】
また、このシステムはプロセッサを含み得る。プロセッサは、Ｉ／Ｑデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、その積を実数データ・ストリームと虚数データ・ストリームとに変換することができる。プロセッサは、実数データ・ストリームと虚数データ・ストリームとを結合して複素数データ・ストリームとすることができる。プロセッサは、複素数データ・ストリームに信号処理復調ステップを適用して復調データ・ストリームを生成することができる。
【００１１】
また、プロセッサは、ストリーム・ベースのパラメータ・シグネチャのそれぞれがデータ処理デバイス上で実行中の少なくとも１つの対応するアプリケーションの電力消費パターンを表す、少なくとも１つのストリーム・ベースのパラメータ・シグネチャを、復調データ・ストリームから抽出することができる。
【００１２】
データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断する本提案のコンピュータ実装方法は、複数の利点および技術的効果をもたらすことができる。
【００１３】
本提案の概念は、方法または関連システムのいずれかの形態で、多様な異なるハードウェア・システムに適用可能である。これは、オペレーティング・システム、使用されているハイパーバイザ、および使用されているアプリケーションとは独立していることができる。システムの電力消費の異常の検出により、仮想システムのいずれにおいても悪意のあるソフトウェアの検出を可能にすることができる。これは、ソフトウェアだけでなく、システムを攻撃するために意図的に改変されたデータ・セットおよびモデルを使用した侵害敵対学習攻撃を含めて、挙動変化の検出を可能にする対象システムの電力消費の自動高分解能リアル・タイム・チャネル解析を容易にすることによって達成されるが、それは上記の挙動変化のすべての結果として計算要求量の変化に起因する対象電力使用に変化が生じることになるためである。
【００１４】
本提案の手法は、解析エンジンへの合計データ出力を、生サンプル・データ・ストリームではなく、シグネチャのみに縮小することもできる。要するに、本提案の手法は、解析エンジンに送信されて解析エンジンによる処理を必要とすることになる大量の生データではなく電力使用を表す実際のシグネチャに存在する改良型電力使用特性解析を提供するものである。
【００１５】
本提案の概念は、必要な電力使用監視が、対象の電源からその対象、すなわち処理デバイス自体へのすべてのＤＣ供給レールにわたって高速かつ高分解能で行われる限り、様々な形態で適用することができる。電力は電圧と電流の積である。電圧なしの電力の監視も依然として使用されているが、実際の電力使用、電圧降下、過電力ケーブルおよびその他の条件を正確に反映しない。したがって、電力消費の監視は、上述の問題に対処する最も適切な手法となり得る。
【００１６】
増強データ・ストリームは、任意の時点での電力使用に関する詳細なシグネチャを表す実質的追加データを含む。時間領域解析に応じて、反復パターンが容易に抽出可能となる。この増強データは、解析プラットフォームに送ることができ、解析プラットフォームは機械学習環境またはその他の解析プラットフォームとすることができ、あるいは、デバイスからのシグネチャ・データを処理し、それによってシグネチャによって記述されている挙動の変化を探すことができる。ある種の変化は予期することができ、予期パラメータと合致する場合があり、一方、対象の挙動シグネチャを示し得る他の変化を検出することができる。挙動シグネチャがデータ・セットに適正に追加された後は、本技術を使用して様々な種類の侵害のシグネチャが容易に検出可能となり得る。
【００１７】
また、本提案の概念は、処理デバイス、すなわちサーバ上のハイパーバイザの制御下で稼働する仮想マシンで実行中の無許可の悪意のある可能性があるアプリケーションの検出の適正な結果を出力することができることも注目すべきであり得る。これは、高度なＩ／Ｑ信号処理を行わない専用プロセッサのための単純な電圧センサと電流センサとを使用する電力消費パターンの単純な検出を明らかにしのぐ。
【００１８】
本手法は、規模を拡張または縮小することができ、単一の電力レールで稼働するシングル・ボード・コンピュータから、複雑なＳＣＡＤＡ（監視制御およびデータ収集）およびＩＣＳ（産業用制御システム）システムに至るまで適用可能であり得る。後者の場合、監視エージェントをインストールすることができないレガシー・システムに適用可能とすることができる。
【００１９】
ソフトウェア監視エージェントが許可されていないセーフティ・クリティカル・システムの場合、本手法は対象の認可または法規制順守にいかなる影響も与えずに、監視を行うことができる。
【００２０】
監視エージェントが許可されない高信頼性システムの場合も、本手法は、監視対象にとって完全に受動的であるため有用である。
【００２１】
同じ手法を縮小し、モバイル・コンピューティング・デバイス（電話、パッド、ラップトップなど）に組み込むこともでき、そのようなデバイスは動作挙動を示すことができる独立したインターフェースを有し得るため、高セキュリティ・デバイスのためにソフトウェアに依存しないインターフェースを提供することができる。したがって、高セキュリティ・デバイスが侵害された場合、本提案のシステムはそのような状況で独立して稼働して、デバイスが安全ではなくなったことを示すことができる。
【００２２】
以下では、方法および関連システムに適用可能な本発明の概念のその他の実施形態についても説明する。関連する特徴は、技術的問題により困難または不可能でない限り、実施形態において任意の組合せで使用することができる。
【００２３】
有利な一実施形態によると、この方法は、少なくとも１つのストリーム・ベースのパラメータ・シグネチャを既知のアプリケーションの既知のパラメータ・シグネチャと比較することも含み得る。このようにして、この方法は、データ処理デバイス上でどのようなアプリケーションまたは複数のアプリケーションが実行されているかを検出することができる。これは、オペレーティング・システム、またはスケジューラ、またはハイパーバイザ、または任意のその他のデータ処理デバイス要素あるいはこれらの組合せ、およびオペレーティング・システム固有情報とのいかなるやり取りもなしに可能とすることができる。したがって、旧型のデータ処理デバイスまたはコントローラも調べることができ、許可されたアプリケーションのみが実行されているかまたは未知のアプリケーションが実行されているかを判断することが可能となり得る。
【００２４】
この方法の好ましい一実施形態によると、少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、周波数シグネチャと、振幅シグネチャと、位相シグネチャとを含むグループから選択された少なくとも１つのパラメータ成分とすることができる。このような信号および信号のパラメータは、デジタル信号処理によって測定電流信号および測定電圧信号から抽出することができる。
【００２５】
この方法の好ましい他の実施形態によると、少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、各シグネチャ・パラメータ成分の最頻値と、平均値と、最小値と、最大値とを含むグループから選択された少なくとも１つの値も含み得る。これらの追加の値は、周波数シグネチャと、振幅シグネチャと、位相シグネチャについて求めることができる。したがって、測定信号、すなわち電流および電圧から求められるすべての情報を、特徴的な電力消費パターンを有するアプリケーション、すなわち特徴的な電力消費パターンの判断のために使用することができる。
【００２６】
有用な一実施形態によると、この方法は、複素数データ・ストリームに複数のチャネル化フィルタを適用することと、複数のフィルタ出力信号を生成することと、フィルタ出力信号のそれぞれに対してシグネチャ・エッジ検出を行うこととをさらに含み得る。これにより、データ処理デバイスの電力消費パターンの判断に関連する時間領域情報を強化することによってフィルタ出力信号を特性解析する。したがって、生Ｉ／Ｑデータ・ストリームから複数のチャネルを作成することができる。例としては、ＤＣから１ｋＨｚまで、１ｋＨｚから１０ｋＨｚまで、および１０ｋＨｚから１００ｋＨｚまでなどがあり得る。他のチャネルも適用可能である。挙動の開始および終了の特定シグネチャ（すなわちパターン）の判断を支援するために、各チャネル内で行われる位相、周波数および振幅の復調を、エッジ検出器またはエッジ検出アルゴリズムに供給することができる。例えば、ＤＣから１ｋＨｚまでのチャネル（または帯域）でエッジを検出し、他のチャネルでは検出しないこともあり得る。
【００２７】
可能な一実施形態によると、この方法は、シグネチャ・エッジ検出のためにキャニー・エッジ・アルゴリズムを使用することも含み得る。画像処理に由来するこのアルゴリズムは、堅牢でエッジ検出にとって極めて有用であることが知られている。したがって、十分に研究されている方法を使用して本提案の概念の目的を支援することができる。
【００２８】
可能な一実施形態によると、この方法は、復調データ・ストリームの信号対雑音比を向上させるとともに、シグネチャ振幅を向上させるために発生した位相遅れを低減するために、無限インパルス応答信号フィルタ（ＩＩＲ）または有限インパルス応答（ＦＩＲ）信号フィルタあるいはその両方、特に複数のＩＩＲまたはＦＩＲフィルタあるいはその両方を適用することをさらに含み得る。デジタル信号処理におけるこれらのフィルタは実装が容易であり、所望の信号を雑音からよりよく分離する改良された方法となり得る。
【００２９】
任意による一実施形態によると、この方法は、少なくとも１つのストリーム・ベースのパラメータ・シグネチャにおける１つまたは複数のシグネチャ・エッジを検出することと、関連する電力シグネチャ・データを解析エンジンに適したデータ形式に集約することとをさらに含み得る。これらのデータは、ヒューリスティック・アルゴリズムを使用したシグネチャ解析エンジンまたは機械学習ベースのシステムを含む高度な解析エンジンによってさらに処理することができる。解析エンジンのためのデータ形式は、本明細書で提案する方法またはシステムあるいはその両方によってすでに作成可能であるため、解析エンジンはデータ形式を変換する負担を負わなくても済む。
【００３０】
したがって、この方法は、他の一実施形態では、監視のために解析エンジンに、集約された関連する電力シグネチャ・データを送信することも含み得る。したがって、連続監視によって、観察されているデータ処理が侵害ソフトウェアを実行するのを防ぐことができる。これは、旧型のデータ処理システム、例えば不正対策ソフトウェアが利用できないデータ処理システムを、不正およびマルウェアから保護する安全な方法となり得る。
【００３１】
また、実施形態は、コンピュータまたは任意の命令実行システムによる使用、またはコンピュータまたは任意の命令実行システムに関連して使用するための、プログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能な、関連コンピュータ・プログラム製品の形態をとることができる。本明細書では、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置またはデバイスによって、またはこれらと関連して使用するために、プログラムを記憶、伝達、伝播、または移送する手段を含み得る任意の装置とすることができる。
【００３２】
本発明の実施形態について異なる主題を参照しながら説明することに留意されたい。具体的には、一部の実施形態については方法クレームを参照して説明し、他の実施形態については装置クレームを参照して説明する。しかし、当業者は、上記および以下の説明から、特に明記されていない限り１つのタイプの主題に属する特徴の任意の組合せに加えて、異なる主題に関連する特徴、具体的には方法クレームの特徴と装置クレームの特徴との任意の組合せも、本明細書で開示されているものと見なされることがわかるであろう。
【００３３】
上記で定義した態様および本発明のその他の態様は、以下で説明する実施形態の例から明らかになり、それらの実施形態の例を参照しながら説明するが、本発明はそれらの実施形態の例には限定されない。
【００３４】
本開示の好ましい実施形態について、例示のみのために、以下の図面を参照しながら説明する。
【図面の簡単な説明】
【００３５】
【図１】本開示の実施形態による、データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断する本発明のコンピュータ実装方法の一実施形態のブロック図を示す図である。
【図２】本開示の実施形態による、方法の初期キャリブレーションの第１の段階のブロック図を示す図である。
【図３】本開示の実施形態による、方法の全体的実装の第２の段階のブロック図を示す図である。
【図４】本開示の実施形態による、電力アダプタを備えた物理ホストと検出ユニットおよび解析ユニットとを含むシステムの一実施形態を示す図である。
【図５】本開示の実施形態による、ルック−Ｉ／Ｑストリーム−周波数変換信号処理システムの信号サンプルの一実施形態を示す図である。
【図６】本開示の実施形態による、データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するためのシステムの簡略版の一実施形態を示す図である。
【図７】本開示の実施形態による、本提案の概念で使用されるコンピューティング・システムの一実施形態を示す図である。
【発明を実施するための形態】
【００３６】
本明細書の文脈では、以下の表記、用語または表現あるいはこれらの組合せを使用する場合がある。
【００３７】
「電力消費パターン」という用語は、ソフトウェア、例えばアプリケーションを実行するデータ処理デバイス、コントローラまたは任意のその他の電気的デバイスの電力消費の特徴的信号パターンを指し得る。アプリケーションの実行時のデータ処理デバイスのプロセッサ、メモリまたはその他の構成要素あるいはこれらの組合せの変化する使用状況のために、デバイスの電力消費は特徴的な方式で変動することがある。
【００３８】
「データ処理デバイス」という用語は、コンピュータ・システム、ソフトウェアを実行する専用デバイス、コントローラ、およびＩ／Ｏデバイスおよび、典型的にはプロセッサとプロセッサに接続されたメモリとを含む同様のデバイスを指し得る。オペレーティング・システム、仮想化層（例えばハイパーバイザ）、デバイス・ドライバ、およびアプリケーションのようなソフトウェアをロードし、実行することができる。
【００３９】
「タイム・スタンプ付き電流値サンプル」という用語は、電源からデータ処理デバイスに流れる電流の測定値の連続シーケンスを指し得る。測定値のそれぞれをデジタル化し、測定またはデジタル化あるいはその両方の時刻に関係付けることができる。同じことは、「タイム・スタンプ付き電圧値サンプル」という用語にも当てはまり得る。また、これらの測定値をデジタル化し、時刻値に付加することもできる。
【００４０】
「Ｉ／Ｑデジタル信号処理」という用語は、単に信号の瞬間的振幅の一連のサンプルを使用するよりもはるかに正確な信号表現を指し得る。典型的には、複雑な環境では、正負の周波数は例えば同じ曲線（例えば、ｃｏｓ（ｘ）＝ｃｏｓ（−ｘ））を生成する可能性があるため、正の周波数であるか負の周波数であるかを判断することができないため、一連のサンプルから周波数を判断することが不可能な場合がある。第２に、信号のパワー（ピーク振幅、エンベロープ）を判断するのが難しい。ここで単に０°、１８０°、３６０°などにおけるピーク振幅を調べることもできる。しかし、最大電力消費は他のどこかにある場合がある。本実施例のＩ／Ｑ表現はこれを解決する。上記のように信号を平坦な曲線として見るのではなく、３次元における螺旋状のもの（螺旋、スパイラル、コイルばね）として見ることができる。したがって、Ｉ／Ｑデータ・サンプルは、螺旋の時間軸に沿って見たときの信号の座標を表す。振幅変調正弦波は同相成分および直交成分と呼ばれる。この概念は、当業者によく知られている。
【００４１】
「複素数データ・ストリーム」という用語は、数学的意味での実数部と複素数部または虚数部の両方を有するデジタル値の連続シーケンスを指し得る。
【００４２】
「信号処理復調」という用語は、搬送波から元の情報担持信号を抽出するプロセスを指し得る。復調器は、変調搬送波から情報の内容を復元するために使用される何らかのデジタル・フィルタ・プログラムを実行する電子回路またはコンピュータ・プログラムとして実装可能である。多くの種類の変調があり、したがって多くの種類の復調器手法がある。
【００４３】
「ストリーム・ベースのパラメータ・シグネチャ」という用語は、例えばハイパーバイザを使用して、コンピュータ・システム上での特定のアプリケーションまたはアプリケーションの組合せの実行に関連し得る時間的な特徴的信号パターンを指し得る。
【００４４】
以下では、図の詳細な説明を示す。図中の指示はすべて概略的である。まず、データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断する本発明のコンピュータ実装方法の一実施形態のブロック図を示す。その後、他の実施形態と、データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するためのシステムの一実施形態について説明する。
【００４５】
図１に、データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するコンピュータ実装方法１００の一実施形態のブロック図を示す。この方法は、データ処理デバイスに流れるＤＣ電流を電流センサを使用して測定すること１０２を含む。電流センサは、データ処理デバイスと電源との間に接続され、これによってタイム・スタンプ付き電流値サンプルのストリームが作成される。
【００４６】
次に、方法１００は、電源によってデータ処理デバイスに供給されるＤＣ供給電圧を電圧センサを使用して測定すること１０４を含む。電圧センサは、処理デバイスと電源とに、具体的にはそれぞれ並列して、または間に接続される。これによって、タイム・スタンプ付き電圧値サンプルのストリームが作成される。
【００４７】
また、方法１００は、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求めること、数学的に言うと乗算値を求めること１０６と、その積を実数データ・ストリームと虚数データ・ストリームとに変換することとを含む。このために、Ｉ／Ｑデジタル信号処理が使用される。基本的には、消費電力が求められる。
【００４８】
実際の実装の場合、ソース・ストリームを適切なＣＯＳ関数値およびＳＩＮ関数値と混合してＩ成分とＱ成分を生成するプロセスによって、ソース信号ストリームから実数（Ｑ）ストリームと虚数（Ｉ）ストリームとを抽出するのも有用であろう。
【００４９】
次に、実数データ・ストリームと虚数データ・ストリームとを結合して１０８複素数データ・ストリームとし、複素数データ・ストリームに信号処理復調ステップを適用し１１０、それによって復調データ・ストリームを生成し、復調データ・ストリームから少なくとも１つのストリーム・ベースのパラメータ・シグネチャを抽出する１１２。これによって、ストリーム・ベースのパラメータ・シグネチャのそれぞれが、具体的には組み合わさって、場合によってはハイパーバイザおよび複数のアプリケーションも実行するデータ処理デバイス上で実行中の少なくとも１つの対応するアプリケーションの電力消費パターンを表す。
【００５０】
この手法および本提案の例示の実装形態は、データ処理対象の電力使用を記述するデータの増強ストリームを提供するために、確かな根拠のある技術を基礎として、その上に信号処理技術をともに使用して構築される。基本的に、各サーバの電源内または各サーバの電源に接続された自動化された組み込みデバイスが、タスク切り替えと各構成仮想化タスクの電力シグネチャを特定可能であることによって、仮想化コンピューティング環境を備えた特定の侵害された仮想ホストの判断を行うことができる。
【００５１】
一般に、本提案の概念は２段階手法として使用可能である。
【００５２】
図２に、初期キャリブレーションの第１の段階のブロック図２００を示す。１つまたは複数のハイパーバイザ２０４と、オペレーティング・システム２０６と、アプリケーション２０８の電力使用シグネチャ（２０２）が収集される。これは、電力シグネチャを連続的に精緻化していくループ・プロセスで行うことができる。次に、これらの電力シグネチャを記録し２１０、正常な挙動のシステムを示す。
【００５３】
図３に、手法全体の第２の段階、具体的には検出モードのブロック図３００を示す。まず、対象システムの電力消費からシグネチャが抽出される３０２。これらのシグネチャは、解析ユニットに供給される３０４。分離されたパラメータ・シグネチャは、正常な挙動を示すシグネチャ（３０８）と侵害挙動を示すシグネチャ（３１０）とに分離される３０６。
【００５４】
正常挙動を示すシグネチャが見つかった場合、それらのシグネチャは、例えば図２の文脈で説明したようにハイパーバイザ、オペレーティング・システム、およびアプリケーションのパラメータ・シグネチャを精緻化３１２するために使用される。次に、プロセスはシグネチャを抽出するステップ３０２に戻る。
【００５５】
パラメータ・シグネチャが侵害挙動（３１０）を示す場合、任意により、既知の悪意パラメータ・シグネチャとの比較３１４を行うことができ、所定の閾値を超える場合は警告を発し、応答をトリガしてもよい（３１６）。比較３１４のための入力として、悪意挙動、すなわち、対象システム上で実行されている悪意あるソフトウェアを表す既知のシグネチャが、外部記憶源から取り出される（３１８）。また、警告を発した（３１６）後、検出された悪意シグネチャを外部の宛先に送ることができる３２０。やはり図３に示すように、警告が発せられた後、プロセスはステップ３０２のシグネチャの抽出に戻る。
【００５６】
図３では、いくつかの信号特性のうちの１つとして周波数のみが使用されていることはわかるであろう。信号振幅または信号位相あるいはその両方を使用して同様のフローチャートを作成することが可能である。また、これらの信号特性を組み合わせて評価することもできる。あるいは、より汎用的なフローチャートとするために、「周波数」という用語を信号特性に置き換えてもよい。
【００５７】
図４に、電力アダプタ４１２を備える物理ホスト４００と、検出ユニット４１４と、解析ユニット４３０と、警告および反応システム４３４とを含むシステムの一実施形態を示す。物理ホスト４００は、ＡＣ電力を使用し、それを物理ホストで使用されるＤＣ電力に変換する変成器４１２を含む。物理ホスト４００は、プロセッサと、メモリ・ユニットと、サブシステムとを含み、これらをまとめて参照番号４０２で示す。物理ホスト４００は、仮想システム１（４０４）、仮想システム２（４０６）、仮想システム３（４０８）および仮想システム４（４１０）として示す一連の仮想システムを実行する。さらに多くの仮想システムを物理ホスト４００上で実行することができる。仮想システムは、ハイパーバイザ（図示せず）上で実行することができる。各仮想システムでは、オペレーティング・システムと１つまたは複数のアプリケーションとが実行可能である。
【００５８】
検出ユニット４１４は、信号処理を行うようになされている。抽象的な形態で示されているが、電流センサ４２６は電源４１２のＤＣ出力と物理ホスト４００の電力消費要素との間に直列に接続されている。同様にして、電圧センサ４２４が電源４１２のＤＣ出力からの出力線の両端間に接続されて、電源４１２のＤＣ電力出力から物理ホスト４００の電力消費要素に供給される電圧を測定する。
【００５９】
電圧センサ４２４と電流センサ４２６からの両方の信号ストリームが、アナログ−デジタル変換器４２０に供給される。信号ストリームのそれぞれが独立してＡ／Ｄ（アナログ／デジタル）変換される。アナログ・センサ入力が、電流検知デバイスのアナログ帯域幅の帯域幅の２倍（ナイキスト・レート）でサンプリングされる。
【００６０】
複数の電圧／電流の組合せ、例えば、典型的なコンピュータ電源からコンピュータ内の様々な構成要素への３．３Ｖ、５Ｖおよび１２Ｖの供給レールと１ＭＨｚの電流アナログ帯域幅との組合せをサンプリングすることができる。
【００６１】
これらのサンプルと正弦および余弦とをＩ／Ｑミキサ４２８によってデジタル処理で混合してこのデータ・ストリームをＩおよびＱストリーム（実数および虚数）に変換するために、周波数発生器４１６出力とＡ／Ｄ変換器４２０の出力とが使用される。これは、データ・ストリームのリアル・タイム特性解析のための関連するデータを供給する信号処理手法である。
【００６２】
デジタル・シグナル・プロセッサ４２２は、Ｉ／Ｑミキサ４２８からのＩおよびＱデータ・ストリームを、有用なデータを抽出するための入力信号として使用する。有用なデータには以下のものが含まれるが、これらには限定されない。
・データ・ストリームの振幅
・データ・ストリームの周波数、および
・データ・ストリームの位相
・さらにＡＣ結合成分に加えて上記データのＭｅａｎ、Ｍａｘ、Ｍｉｎ（平均値、最大値および最小値の数学的値の略）の追加の実行値
【００６３】
上記のデータは、各電力センサについて周波数発生器４１６によって生成された複数のサンプリング・チャネル周波数にわたって抽出することができる。他の特性解析処理時間領域活動とともに、チャネル周波数をタスク切り替え周波数の倍数となるようにすることによって、このチャネル・データ集合体は、機械学習システムのための仮想画像を特性解析するのに役立つジョンＦ．キャニーの「キャニー・エッジ検出」アルゴリズム研究などのアルゴリズムと同様にして、電力シグネチャのエッジの特定に役立つ。
【００６４】
デジタル信号処理は、高速加速マイクロコントローラを使用するサブシステムによって行うことができる。これは、電流検出線と電圧線のそれぞれを２ＭＨｚでサンプリングし、ＡＤＣサンプルをＳＩＮ／ＣＯＳテーブルを使用して混合して各アナログ・サンプルのデジタルＩ値とＱ値を出力するＳｏＣ（システム・オン・チップ）とすることができる。
【００６５】
信号処理ソフトウェアを実行するマイクロコントローラＤＳＰコアは、信号処理、特性解析およびその他のタスクを行ってから、電力シグネチャをＥｔｈｅｒｎｅｔモジュール、ＴＣＰ／ＩＰネットワーク・アダプタ４１８に転送する。Ｅｔｈｅｒｎｅｔ機能は、電力解析器を標準Ｅｔｈｅｒｎｅｔネットワークに接続可能にする。その結果、極めて良好な分解能でサイド・チャネル電力解析データの一定した増強ストリームを送出するネットワーク・ソケットを備えたサーバ電源となる。
【００６６】
デバイスから供給されるデータは、次に、異常な挙動、特定のシグネチャ、または電力消費パターンの異常、あるいはこれらの組合せを検出するためのパターン認識エンジン４３２を含む解析処理プラットフォーム４３０に供給される。警告および反応システム４３４を介して、物理サーバが侵害ソフトウェアを実行しないように保護する事前定義済みタスクを開始させることができる。このために、警告および反応システム４３４は、プレゼンテーション層と自動応答エンジン４３６も含むことができる。
【００６７】
次に図５を参照すると、解析プロセスの異なる段階における異なる例示の波形をより詳細に見ることができる。図５は、アナログ−Ｉ／Ｑストリーム−周波数変換信号処理システムの信号サンプルの一実施形態を示す。信号源５０２（図４の周波数発生器４１６と同一であってよい）が、例えば、信号レート：４４．１［ｋＨｚ］、波形：正弦波、周波数：１０［ｋＨｚ］、振幅：１［Ｖ］、オフセット：０というデータを供給する。ブロック５０４は、図４の電力センサ４２６からの入力に相当し得る。
【００６８】
信号源５０２の出力は、図５２０に正弦波／余弦波として示されている。図５２４は、ソース信号を示す。
【００６９】
遅延ユニット５０６が正弦信号と余弦信号を作成する。余弦信号は、正弦信号を９０°遅延させることによって生成される。また、遅延ユニット５０６の出力は信号図５２０を指す。
【００７０】
乗算器５０８が、Ｑストリームについて信号源５０２と遅延ユニット５０６から出力信号を受け取り、乗算器５１０がＩストリームの入力信号として遅延ユニット５０６と電力センサ５０４の出力を受け取る。浮動小数点−複素数変換器５１２がＱデータ・ストリームとＩデータ・ストリームを入力として使用する。浮動小数点−複素数変換器５１２の出力信号が図５２２に、具体的にはソース信号に重ねられたＩ／Ｑデータ・ストリームで示されている。
【００７１】
この信号ストリームにおいて、デシメーション：１［１／秒］、サンプル・レート４４．１［ｋＨｚ］、カットオフ周波数：１．５［ｋＨｚ］、遷移幅：２００、窓：ハミング、ベータ：６．７６の特性を有する例示のロー・パス・フィルタ５１４が続く。後続のユニットとして、７．０１８７４ｋのゲートを有する直交復調器５１６が使用される。この後に、さらに、デシメーション：１［１／秒］、ゲート１、サンプル・レート４４．１［ｋＨｚ］、カットオフ周波数：４００［Ｈｚ］、遷移幅１０、窓：ハミング、ベータ：６．７６の特性を有するロー・パス・フィルタ５１８が続く。直交復調器５１４は、共役乗算ブロックであり、複素数理論においてＩ／Ｑストリーム内に含まれる周波数と直線関係にある出力を出す。「デシメーション」という用語は、毎秒の信号サンプルのデシメーションに関することはわかるであろう。したがって、毎秒１０００個あり、１０でデシメーションする場合、出力として１００個のサンプルのみが存在することになる。これによって、プロセッサおよびその他の回路が過負荷にならないようにすることができる。遷移幅により、−３ｄＢの周波数窓ができる。
【００７２】
周波数シンクにおいて、信号図５２６は、特徴的アプリケーション、ハイパーバイザ、およびオペレーティング・システム活動に関連している可能性のある電力使用の周波数成分を示す。具体的には、図５２６の波形の左側がこの例で予期されている一定した電力使用を示し、図５２６の右側が明確に異なる周波数パターンを示しており、この例において元の電力源信号における重ね合わされた信号雑音と相関している挙動の変化を明らかにしている。
【００７３】
サンプリング・レートおよびフィルタ・レートのいくつかの具体的な数値を、いくつかの他のパラメータとともに使用して原理を明示するために、ここでは実際の信号処理が簡略化された形態で示されていることはわかるであろう。
【００７４】
図６に、データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するシステム６００の簡略化版の一実施形態を示す。システム６００は、電流センサを使用してデータ処理デバイスに流れるＤＣ電流を測定するための電流センサ６０２（電流センサ４２６および５０４に相当）を含む。電流センサ６０２は、データ処理デバイスと電源との間に接続され、それによってタイム・スタンプ付き電流値サンプルのストリームを作成する。
【００７５】
システム６００は、電圧センサを使用して電源によってデータ処理デバイスに供給されるＤＣ供給電圧を測定するための電圧センサ６０４（電圧センサ４２４に相当）も含む。電圧センサ６０４は、処理デバイスと電源とに接続され、それによって、タイム・スタンプ付き電圧値サンプルのストリームを作成する。
【００７６】
また、システム６００は、Ｉ／Ｑデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、その積を実数データ・ストリーム（Ｉストリーム）と虚数データ・ストリーム（Ｑストリーム）とに変換するようになされたＩ／Ｑデジタル・シグナル・プロセッサ６０６と、実数データ・ストリームと虚数データ・ストリームを結合して複素数データ・ストリームとするようになされた結合モジュール６０８（浮動小数点−複素数変換器５１２に相当）とを含む。
【００７７】
さらに、システム６００は、複素数データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成するようになされた復調器ユニット６１０（直交復調器５１６に相当）と、復調データ・ストリームから少なくとも１つのストリーム・ベースのパラメータ・シグネチャを抽出するようになされた抽出ユニット６１２とを含む。ストリーム・ベースのパラメータ・シグネチャのそれぞれが、データ処理デバイス上で実行中の少なくとも１つの対応するアプリケーションの電力消費パターンを表す。したがって、許可されたハイパーバイザ／オペレーティング・システム／アプリケーションの組合せと無許可または危険である可能性のあるハイパーバイザ／オペレーティング・システム／アプリケーションの組合せとを区別することができる。
【００７８】
本発明の実施形態は、プラットフォームがプログラム・コードを記憶または実行あるいはその両方を行うのに適しているか否かを問わず、実質的に任意の種類のコンピュータとともに実装可能である。図７に、例えば信号エッジ検出処理またはその他のデジタル・フィルタ・アルゴリズムのために、本提案の方法に関連するプログラム・コードの実行に適したコンピュータ・システム７００を一例として示す。ただし、これらのタスクのためにデジタル・シグナル・プロセッサ（ＤＳＰ）またはＦＰＧＡも使用可能である。
【００７９】
コンピュータ・システム７００は、適合するコンピュータ・システムの一例に過ぎず、コンピュータ・システム７００が実装可能であるか、または上記の機能のいずれかを実行可能であるか、あるいはその両方であるかを問わず、本明細書に記載の本発明の実施形態の使用または機能の範囲に関していかなる限定も示唆することを意図していない。コンピュータ・システム７００内には、多くの他の汎用または専用コンピューティング・システム環境または構成とともに動作可能なコンポーネントがある。コンピュータ・システム／サーバ７００とともに使用するのに適し得る周知のコンピューティング・システム、環境または構成あるいはこれらの組合せの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルド・デバイスまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル消費者電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステムまたはデバイスなどのうちのいずれかを含む分散クラウド・コンピューティング環境などがあるが、これらには限定されない。コンピュータ・システム／サーバ７００について、コンピュータ・システム７００によって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明する場合がある。一般には、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム／サーバ７００は、通信ネットワークを介して接続されたリモート処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境で実施されてもよい。分散クラウド・コンピューティング環境では、プログラム・モジュールを、メモリ・ストレージ・デバイスを含むローカルとリモートの両方のコンピュータ・システム記憶媒体に格納することができる。
【００８０】
図に示すように、コンピュータ・システム／サーバ７００は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ７００のコンポーネントは、１つまたは複数のプロセッサまたは処理ユニット７０２と、システム・メモリ７０４と、システム・メモリ７０４を含む様々なシステム・コンポーネントをプロセッサ７０２に接続するバス７０６とを含み得るがこれらには限定されない。バス７０６は、様々なバス・アーキテクチャのうちのいずれかのアーキテクチャを使用する、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィクス・ポート、およびプロセッサ・バスまたはローカル・バスを含む、数種類のバス構造のうちのいずれかの１つまたは複数に相当する。例として、限定的ではなく、そのようなアーキテクチャとしては、業界標準アーキテクチャ（Industry Standard Architecture：ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（Micro Channel Architecture：ＭＣＡ）バス、拡張（Enhanced）ＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（Video Electronics Standards Association：ＶＥＳＡ）ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト（Peripheral Component Interconnect：ＰＣＩ）バスがある。コンピュータ・システム／サーバ７００は、典型的には様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ７００がアクセスすることができる任意の利用可能な媒体であってよく、揮発性媒体と不揮発性媒体の両方と、取り外し可能媒体と取り外し不能媒体とを含む。
【００８１】
システム・メモリ７０４は、ランダム・アクセス・メモリ（ＲＡＭ）７０８またはキャッシュ・メモリ７１０あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム／サーバ７００は、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ・システム記憶媒体をさらに含み得る。一例に過ぎないが、ストレージ・システム７１２を、取り外し不能な不揮発性磁気媒体（図示されておらず、一般に「ハード・ドライブ」と呼ばれる）の読み書きのために設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば「フロッピィ・ディスク」）の読み書きのための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたはその他の光学媒体などの、取り外し可能な不揮発性光ディスクの読み書きのための光ディスク・ドライブとを備えることができる。そのような場合、それぞれを１つまたは複数のデータ・メディア・インターフェースによってバス７０６に接続することができる。以下でさらに図示し、説明するように、メモリ７０４は、本発明の実施形態の機能を実施するように構成された１組の（例えば少なくとも１つの）プログラム・モジュールを有する少なくとも１つのプログラム製品を含み得る。
【００８２】
一例として、これには限らないが、１組の（少なくとも１つの）プログラム・モジュール７１６を有するプログラム／ユーティリティのほか、オペレーティング・システムと、１つまたは複数のアプリケーション・プログラムと、その他のプログラム・モジュールと、プログラム・データとをメモリ７０４に記憶することができる。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データ、またはその何らかの組合せのそれぞれが、ネットワーキング環境の実装形態を含み得る。プログラム・モジュール７１６は、一般に、本明細書に記載の本発明の実施形態の機能または方法あるいはその両方を実施する。
【００８３】
コンピュータ・システム／サーバ７００は、キーボード、ポインティング・デバイス、ディスプレイ７２０など、または、ユーザがコンピュータ・システム／サーバ７００と対話することができるようにする１つまたは複数のデバイス、または、コンピュータ・システム／サーバ７００が１つまたは複数の他のコンピューティング・デバイスと通信することができるようにする任意のデバイス（例えばネットワーク・カード、モデムなど）、あるいはこれらの組合せなどの、１つまたは複数の外部デバイス７１８とも通信することができる。このような通信は、入出力（Ｉ／Ｏ）インターフェース７１４を介して行うことができる。さらに、コンピュータ・システム／サーバ７００は、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用ワイド・エリア・ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（例えばインターネット）、あるいはこれらの組合せなどの１つまたは複数のネットワークと、ネットワーク・アダプタ７２２を介して通信することができる。図のように、ネットワーク・アダプタ７２２は、バス７０６を介してコンピュータ・システム／サーバ７００の他のコンポーネントと通信することができる。なお、図示されていないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方もコンピュータ・システム／サーバ７００とともに使用することができる。例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらには限定されない。
【００８４】
本発明の様々な実施形態の説明を例示のために示したが、これらは網羅的であること、または開示されている実施形態に限定することを意図したものではない。記載されている実施形態の範囲および思想から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用されている用語は、実施形態の原理、実際の適用、または市場に見られる技術に優る技術的改良を最もよく説明するために、または当業者が本明細書で開示されている実施形態を理解することができるように選定された。
【００８５】
本発明は、システム、方法またはコンピュータ・プログラム製品あるいはこれらの組合せとして実施することができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体（または複数の媒体）を含み得る。
【００８６】
媒体は、伝播媒体のための電子、磁気、光学式、電磁、赤外線または半導体システムとすることができる。コンピュータ可読媒体の例には、半導体メモリまたはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、剛体磁気ディスク、および光ディスクが含まれ得る。光ディスクの現在の例には、コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク読み取り／書き込み（ＣＤ−Ｒ／Ｗ）、ＤＶＤ、Ｂｌｕ―Ｒａｙディスクが含まれる。
【００８７】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適合する組合せとすることができるが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のものが含まれる。すなわち、可搬コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、可搬コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適合する組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波（例えば光ファイバ・ケーブルを通る光パルス）、または配線を介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
【００８８】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワークあるいはこれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含み得る。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
【００８９】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語、または同様のプログラム言語などの従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータまたはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行ってもよい。実施形態によっては、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【００９０】
本発明の態様について、本明細書では、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら説明している。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。
【００９１】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能／動作を実装する手段を形成するようなマシンを実現するように、汎用コンピュータ、専用コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに提供することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能／動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理装置、またはその他のデバイスあるいはこれらの組合せに対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶することもできる。
【００９２】
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方のブロックで規定されている機能／動作を実装するように、コンピュータによって実行されるプロセスを作出するべく、コンピュータ、その他のプログラマブル装置、または他のデバイス上で一連の動作ステップが実行されるようにするために、コンピュータ、その他のプログラマブル・データ処理装置、または他のデバイスにロードされてもよい。
【００９３】
図面中のフローチャートまたはブロック図あるいはその両方は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。この場合、フローチャートまたはブロック図の各ブロックは、規定されている論理機能を実装するための１つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表し得る。別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている２つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、規定されている機能または動作を実行する専用ハードウェア・ベースのシステムによって実装可能であるか、または専用ハードウェアとコンピュータ命令との組合せを実施することに留意されたい。
【００９４】
本明細書で使用されている用語は、特定の実施形態について説明することのみを目的としており、本発明を限定することを意図していない。本明細書で使用されている単数形の「ａ」、「ａｎ」および「ｔｈｅ」は、文脈が明確に別の解釈を示していない限り複数形も含むことが意図されている。また、「含んでいる（ｃｏｍｐｒｉｓｅｓ）」、または「含む（ｃｏｍｐｒｉｓｉｎｇ）」という用語あるいはその両方は、本開示で使用されている場合、記載されている特徴、整数、ステップ、動作、要素、またはコンポーネントあるいはこれらの組合せの存在を指定するが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネントまたはそのグループあるいはこれらの組合せの存在または追加を排除しない。
【００９５】
以下の特許請求の範囲におけるすべてのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、動作、および均等物は、具体的に特許請求されているように、他の特許請求要素と組み合わさって機能を実行するためのあらゆる構造、材料または動作を含むことが意図されている。本発明の説明を例示のために示したが、網羅的であること、または開示されている形態の本発明に限定することを意図したものではない。本発明の範囲および思想から逸脱することなく、多くの修正および変形が当業者には明らかであろう。実施形態は、本発明の原理および実際の適用を最もよく説明するためと、当業者が、企図された特定の使用に適するように様々な修正を加えた様々な実施形態のために本発明を理解することができるようにするために選定され、記載されている。
【００９６】
本発明の別の態様によると、データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するためのシステムを提供することができる。システムは、電流センサを使用してデータ処理デバイスに流れるＤＣ電流を測定するための電流センサを含み得る。電流センサは、データ処理デバイスと電源との間に接続可能である。これにより、タイム・スタンプ付き電流値サンプルのストリームを作成することができる。
【００９７】
システムは、電圧センサを使用して電源によってデータ処理デバイスに供給されるＤＣ供給電圧を測定するための電圧センサも含み得る。電圧センサは、処理デバイスと電源とに接続可能である。これによって、タイム・スタンプ付き電圧値サンプルのストリームを作成することができる。
【００９８】
また、システムは、Ｉ／Ｑデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、その積を実数データ・ストリームと虚数データ・ストリームとに変換するようになされたＩ／Ｑデジタル・シグナル・プロセッサと、実数データ・ストリームと虚数データ・ストリームとを結合して複素数データ・ストリームとするようになされた結合モジュールと、複素数データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成するようになされた復調器ユニットとを含み得る。
【００９９】
さらに、システムは、ストリーム・ベースのパラメータ・シグネチャのそれぞれがデータ処理デバイス上で実行中の少なくとも１つの対応するアプリケーションの電力消費パターンを表す、少なくとも１つのストリーム・ベースのパラメータ・シグネチャを復調データ・ストリームから抽出するようになされた抽出ユニットを含み得る。
【図１】
2021531584.tif 000003
【図２】
2021531584.tif 000004
【図３】
2021531584.tif 000005
【図４】
2021531584.tif 000006
【図５】
2021531584.tif 000007
【図６】
2021531584.tif 000008
【図７】
2021531584.tif 000009
【手続補正書】
【提出日】令和3年5月19日(2021.5.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するコンピュータ実装方法であって、
前記データ処理デバイスに流れるＤＣ電流を電流センサを使用して測定し、それによってタイム・スタンプ付き電流値サンプルのストリームを作成することと、
前記データ処理デバイスに供給されるＤＣ供給電圧を電圧センサを使用して測定し、それによってタイム・スタンプ付き電圧値サンプルのストリームを作成することと、
Ｉ／Ｑデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、前記積を実数データ・ストリームと虚数データ・ストリームとに変換することと、
前記実数データ・ストリームと前記虚数データ・ストリームとを結合して複素数データ・ストリームとすることと、
前記複素数データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成することと、
前記復調データ・ストリームから少なくとも１つのストリーム・ベースのパラメータ・シグネチャを抽出することとを含み、前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、前記データ処理デバイス上で実行中の前記少なくとも１つの対応するアプリケーションの前記電力消費パターンを表す、コンピュータ実装方法。
【請求項２】
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャを、既知のアプリケーションの既知のパラメータ・シグネチャと比較することをさらに含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、周波数シグネチャと、振幅シグネチャと、位相シグネチャとを含むグループのうちの少なくとも１つの選択されたパラメータ成分である、請求項１または２に記載の方法。
【請求項４】
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、各パラメータ成分の最頻値と、平均値と、最小値と、最大値とを含むグループのうちの選択された少なくとも１つも含む、請求項３に記載の方法。
【請求項５】
前記複素数データ・ストリームに複数のチャネル化フィルタを適用することと、
複数のフィルタ出力信号を生成することと、
前記フィルタ出力信号のそれぞれに対してシグネチャ・エッジ検出を行い、それによって、前記データ処理デバイスの前記電力消費パターンの判断に関連する時間領域情報を増強することによって前記フィルタ出力信号を特徴解析することとをさらに含む、請求項１乃至４のいずれか一項に記載の方法。
【請求項６】
キャニー・エッジ・アルゴリズムを使用してシグネチャ・エッジ検出が行われる、請求項５に記載の方法。
【請求項７】
前記復調データ・ストリームに無限インパルス応答信号フィルタを適用することをさらに含み、前記無限インパルス応答信号フィルタは、前記復調データ・ストリームの信号対雑音比を向上させるとともに、シグネチャ振幅を向上させるために発生した位相遅れを低減する、請求項１乃至６のいずれか一項に記載の方法。
【請求項８】
前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャにおける１つまたは複数のシグネチャ・エッジを検出することと、
関連する電力シグネチャ・データを解析エンジンに適したデータ形式に集約することとをさらに含む、請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
集約された前記関連する電力シグネチャ・データを監視のために前記解析エンジンに送信することをさらに含む、請求項８に記載の方法。
【請求項１０】
データ処理デバイス上で実行中の少なくとも１つのアプリケーションの電力消費パターンを判断するためのシステムであって、
前記データ処理デバイスに流れるＤＣ電流を測定し、それによってタイム・スタンプ付き電流値サンプルのストリームを作成するように構成された電流センサと、
前記データ処理デバイスに供給されるＤＣ供給電圧を測定し、それによってタイム・スタンプ付き電圧値サンプルのストリーム作成するように構成された電圧センサと、
方法を実行するように構成されたプロセッサとを含み、前記方法は、
Ｉ／Ｑデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、前記積を実数データ・ストリームと虚数データ・ストリームとに変換することと、
前記実数データ・ストリームと前記虚数データ・ストリームとを結合して複素数データ・ストリームとすることと、
前記複素数データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成することと、
前記復調データ・ストリームから少なくとも１つのストリーム・ベースのパラメータ・シグネチャを抽出することとを含み、前記少なくとも１つのストリーム・ベースのパラメータ・シグネチャは、前記データ処理デバイス上で実行中の前記少なくとも１つの対応するアプリケーションの前記電力消費パターンを表す、システム。
【請求項１１】
プロセッサに、請求項１乃至９のいずれか一項に記載の方法を実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを記憶した記憶媒体。
【国際調査報告】
2021531584.tif 000010
2021531584.tif 000011