(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-27
(45)【発行日】2024-01-11
(54)【発明の名称】自動電力解析による侵害検出
(51)【国際特許分類】
G06F 11/30 20060101AFI20231228BHJP
G06F 21/56 20130101ALI20231228BHJP
【FI】
G06F11/30 162
G06F11/30 140G
G06F21/56 340
(21)【出願番号】P 2021502941
(86)(22)【出願日】2019-07-24
(86)【国際出願番号】 IB2019056312
(87)【国際公開番号】W WO2020021463
(87)【国際公開日】2020-01-30
【審査請求日】2022-06-08
(32)【優先日】2018-07-27
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】521555742
【氏名又は名称】キンドリル・インク
【氏名又は名称原語表記】Kyndryl Inc.
【住所又は居所原語表記】One Vanderbilt Avenue,15th Floor,New York,New York 10017,USA
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】リードマン、アイバン
(72)【発明者】
【氏名】シェイデラー、ティム
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開2013-143126(JP,A)
【文献】米国特許出願公開第2010/0313270(US,A1)
【文献】特開2015-121963(JP,A)
【文献】特表2014-501957(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/30
G06F 21/56
(57)【特許請求の範囲】
【請求項1】
データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断するコンピュータ実装方法であって、
前記データ処理デバイスに流れるDC電流を電流センサを使用して測定し、それによってタイム・スタンプ付き電流値サンプルのストリームを作成することと、
前記データ処理デバイスに供給されるDC供給電圧を電圧センサを使用して測定し、それによってタイム・スタンプ付き電圧値サンプルのストリームを作成することと、
I/Qデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、前記積を実数データ・ストリームと虚数データ・ストリームとに変換することと、
前記実数データ・ストリームと前記虚数データ・ストリームとを結合して複素数データ・ストリームとすることと、
前記複素数データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成することと、
前記復調データ・ストリームから少なくとも1つのストリーム・ベースのパラメータ・シグネチャを抽出することとを含み、前記少なくとも1つのストリーム・ベースのパラメータ・シグネチャは、前記データ処理デバイス上で実行中の前記少なくとも1つの対応するアプリケーションの前記電力消費パターンを表す、コンピュータ実装方法。
【請求項2】
前記少なくとも1つのストリーム・ベースのパラメータ・シグネチャを、既知のアプリケーションの既知のパラメータ・シグネチャと比較することをさらに含む、請求項1に記載の方法。
【請求項3】
前記少なくとも1つのストリーム・ベースのパラメータ・シグネチャは、周波数シグネチャと、振幅シグネチャと、位相シグネチャとを含むグループのうちの少なくとも1つの選択されたパラメータ成分である、請求項1または2に記載の方法。
【請求項4】
前記少なくとも1つのストリーム・ベースのパラメータ・シグネチャは、各パラメータ成分の最頻値と、平均値と、最小値と、最大値とを含むグループのうちの選択された少なくとも1つも含む、請求項3に記載の方法。
【請求項5】
前記複素数データ・ストリームに複数のチャネル化フィルタを適用することと、
複数のフィルタ出力信号を生成することと、
前記フィルタ出力信号のそれぞれに対してシグネチャ・エッジ検出を行い、それによって、前記データ処理デバイスの前記電力消費パターンの判断に関連する時間領域情報を増強することによって前記フィルタ出力信号を特徴解析することとをさらに含む、請求項1乃至4のいずれか一項に記載の方法。
【請求項6】
キャニー・エッジ・アルゴリズムを使用してシグネチャ・エッジ検出が行われる、請求項5に記載の方法。
【請求項7】
前記復調データ・ストリームに無限インパルス応答信号フィルタを適用することをさらに含み、前記無限インパルス応答信号フィルタは、前記復調データ・ストリームの信号対雑音比を向上させるとともに、シグネチャ振幅を向上させるために発生した位相遅れを低減する、請求項1乃至6のいずれか一項に記載の方法。
【請求項8】
前記少なくとも1つのストリーム・ベースのパラメータ・シグネチャにおける1つまたは複数のシグネチャ・エッジを検出することと、
前記1つまたは複数のパラメータ・シグネチャに関連する電力シグネチャ・データを解析エンジンに適したデータ形式に集約することと
をさらに含む、請求項1乃至7のいずれか一項に記載の方法。
【請求項9】
集約された前記関連する電力シグネチャ・データを監視のために前記解析エンジンに送信することをさらに含む、請求項8に記載の方法。
【請求項10】
データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断するためのシステムであって、
前記データ処理デバイスに流れるDC電流を測定し、それによってタイム・スタンプ付き電流値サンプルのストリームを作成するように構成された電流センサと、
前記データ処理デバイスに供給されるDC供給電圧を測定し、それによってタイム・スタンプ付き電圧値サンプルのストリーム作成するように構成された電圧センサと、
方法を実行するように構成されたプロセッサとを含み、前記方法は、
I/Qデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、前記積を実数データ・ストリームと虚数データ・ストリームとに変換することと、
前記実数データ・ストリームと前記虚数データ・ストリームとを結合して複素数データ・ストリームとすることと、
前記複素数データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成することと、
前記復調データ・ストリームから少なくとも1つのストリーム・ベースのパラメータ・シグネチャを抽出することとを含み、前記少なくとも1つのストリーム・ベースのパラメータ・シグネチャは、前記データ処理デバイス上で実行中の前記少なくとも1つの対応するアプリケーションの前記電力消費パターンを表す、システム。
【請求項11】
プロセッサに、請求項1乃至9のいずれか一項に記載の方法を実行させるためのプログラム。
【請求項12】
請求項11に記載のプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にはソフトウェア検出の方法に関し、より詳細には、データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断するコンピュータ実装方法に関する。本発明は、さらに、データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断するためのシステムおよびコンピュータ・プログラム製品に関する。
【背景技術】
【0002】
情報技術(IT)セキュリティの分野における重要な課題は、システムにマルウェア検出ソフトウェアをインストールすることができない場合の、侵害されたシステムの検出である。これは、システムに、未知または古くなったオペレーティング・システムを備えたシステムおよび限られたユーザ・インターフェースを備えたシステムへのネットワーク接続があるが、それ以外は接続がない密閉された箱である場合の運用技術(OT)の分野に当てはまる。
【0003】
システム侵害の検出の1つの方法は、問題のシステムの電力消費を解析することである。これは、1つのオペレーティング・システムと1つのアプリケーションとを稼働させているデバイスの侵害検出のために研究されてきた。しかし、現在では、サーバの仮想化が広く使用されている。同じハードウェア・インスタンス上で複数のオペレーティング・システム・インスタンス(ゲストOS/オペレーティング・システム)が実行されている。この場合、各ゲストOSが1つまたは複数の異なるアプリケーションを実行し、したがって異なる電力使用パターンを示すため、電力消費に基づく異常検出ははるかに困難である。アプリケーションのパターンの混在に加えて、(オペレーティング・システムおよび関連アプリケーションをスワップ・インおよびスワップ・アウトする)ハイパーバイザからの電力使用パターンが、全体的な電力信号の特定と解釈をはるかに困難にする。悪意のあるソフトウェアを示す電力使用パターンがある場合でも、多くのゲスト・オペレーティング・システムのうちのいずれが感染しているか、特定の1つであるか、または一部であるか、または全部が感染しているのかを判断する必要がある。
【発明の概要】
【0004】
本発明の一態様によると、データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断するコンピュータ実装方法を提供することができる。この方法は、データ処理デバイスに流れるDC電流を電流センサを使用して測定することを含むことができ、それによってタイム・スタンプ付き電流値サンプルのストリームを作成することができる。
【0005】
この方法は、データ処理デバイスに供給されるDC供給電圧を電圧センサを使用して測定することをさらに含むことができ、それによって、タイム・スタンプ付き電圧値サンプルのストリームを作成することができる。
【0006】
また、この方法は、I/Qデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、その積を実数データ・ストリームと虚数データ・ストリームとに変換することと、実数データ・ストリームと虚数データ・ストリームとを結合して複素数データ・ストリームとすることと、複合データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成することとをさらに含み得る。
【0007】
最後に、この方法は、ストリーム・ベースのパラメータ・シグネチャのそれぞれがデータ処理デバイス上で実行中の少なくとも1つの対応するアプリケーションの電力消費パターンを表す、少なくとも1つのストリーム・ベースのパラメータ・シグネチャを、復調データ・ストリームから抽出することを含み得る。
【0008】
本発明の別の態様によると、データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断するためのシステムを提供することができる。このシステムは、データ処理デバイスに流れるDC電流を測定するための電流センサを含み得る。これによって、タイム・スタンプ付き電流値サンプルのストリームを作成することができる。
【0009】
このシステムは、データ処理デバイスに供給されるDC供給電圧を測定する電圧センサも含み得る。これによって、タイム・スタンプ付き電圧値サンプルのストリームを作成することができる。
【0010】
また、このシステムはプロセッサを含み得る。プロセッサは、I/Qデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、その積を実数データ・ストリームと虚数データ・ストリームとに変換することができる。プロセッサは、実数データ・ストリームと虚数データ・ストリームとを結合して複素数データ・ストリームとすることができる。プロセッサは、複素数データ・ストリームに信号処理復調ステップを適用して復調データ・ストリームを生成することができる。
【0011】
また、プロセッサは、ストリーム・ベースのパラメータ・シグネチャのそれぞれがデータ処理デバイス上で実行中の少なくとも1つの対応するアプリケーションの電力消費パターンを表す、少なくとも1つのストリーム・ベースのパラメータ・シグネチャを、復調データ・ストリームから抽出することができる。
【0012】
データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断する本提案のコンピュータ実装方法は、複数の利点および技術的効果をもたらすことができる。
【0013】
本提案の概念は、方法または関連システムのいずれかの形態で、多様な異なるハードウェア・システムに適用可能である。これは、オペレーティング・システム、使用されているハイパーバイザ、および使用されているアプリケーションとは独立していることができる。システムの電力消費の異常の検出により、仮想システムのいずれにおいても悪意のあるソフトウェアの検出を可能にすることができる。これは、ソフトウェアだけでなく、システムを攻撃するために意図的に改変されたデータ・セットおよびモデルを使用した侵害敵対学習攻撃を含めて、挙動変化の検出を可能にする対象システムの電力消費の自動高分解能リアル・タイム・チャネル解析を容易にすることによって達成されるが、それは上記の挙動変化のすべての結果として計算要求量の変化に起因する対象電力使用に変化が生じることになるためである。
【0014】
本提案の手法は、解析エンジンへの合計データ出力を、生サンプル・データ・ストリームではなく、シグネチャのみに縮小することもできる。要するに、本提案の手法は、解析エンジンに送信されて解析エンジンによる処理を必要とすることになる大量の生データではなく電力使用を表す実際のシグネチャに存在する改良型電力使用特性解析を提供するものである。
【0015】
本提案の概念は、必要な電力使用監視が、対象の電源からその対象、すなわち処理デバイス自体へのすべてのDC供給レールにわたって高速かつ高分解能で行われる限り、様々な形態で適用することができる。電力は電圧と電流の積である。電圧なしの電力の監視も依然として使用されているが、実際の電力使用、電圧降下、過電力ケーブルおよびその他の条件を正確に反映しない。したがって、電力消費の監視は、上述の問題に対処する最も適切な手法となり得る。
【0016】
増強データ・ストリームは、任意の時点での電力使用に関する詳細なシグネチャを表す実質的追加データを含む。時間領域解析に応じて、反復パターンが容易に抽出可能となる。この増強データは、解析プラットフォームに送ることができ、解析プラットフォームは機械学習環境またはその他の解析プラットフォームとすることができ、あるいは、デバイスからのシグネチャ・データを処理し、それによってシグネチャによって記述されている挙動の変化を探すことができる。ある種の変化は予期することができ、予期パラメータと合致する場合があり、一方、対象の挙動シグネチャを示し得る他の変化を検出することができる。挙動シグネチャがデータ・セットに適正に追加された後は、本技術を使用して様々な種類の侵害のシグネチャが容易に検出可能となり得る。
【0017】
また、本提案の概念は、処理デバイス、すなわちサーバ上のハイパーバイザの制御下で稼働する仮想マシンで実行中の無許可の悪意のある可能性があるアプリケーションの検出の適正な結果を出力することができることも注目すべきであり得る。これは、高度なI/Q信号処理を行わない専用プロセッサのための単純な電圧センサと電流センサとを使用する電力消費パターンの単純な検出を明らかにしのぐ。
【0018】
本手法は、規模を拡張または縮小することができ、単一の電力レールで稼働するシングル・ボード・コンピュータから、複雑なSCADA(監視制御およびデータ収集)およびICS(産業用制御システム)システムに至るまで適用可能であり得る。後者の場合、監視エージェントをインストールすることができないレガシー・システムに適用可能とすることができる。
【0019】
ソフトウェア監視エージェントが許可されていないセーフティ・クリティカル・システムの場合、本手法は対象の認可または法規制順守にいかなる影響も与えずに、監視を行うことができる。
【0020】
監視エージェントが許可されない高信頼性システムの場合も、本手法は、監視対象にとって完全に受動的であるため有用である。
【0021】
同じ手法を縮小し、モバイル・コンピューティング・デバイス(電話、パッド、ラップトップなど)に組み込むこともでき、そのようなデバイスは動作挙動を示すことができる独立したインターフェースを有し得るため、高セキュリティ・デバイスのためにソフトウェアに依存しないインターフェースを提供することができる。したがって、高セキュリティ・デバイスが侵害された場合、本提案のシステムはそのような状況で独立して稼働して、デバイスが安全ではなくなったことを示すことができる。
【0022】
以下では、方法および関連システムに適用可能な本発明の概念のその他の実施形態についても説明する。関連する特徴は、技術的問題により困難または不可能でない限り、実施形態において任意の組合せで使用することができる。
【0023】
有利な一実施形態によると、この方法は、少なくとも1つのストリーム・ベースのパラメータ・シグネチャを既知のアプリケーションの既知のパラメータ・シグネチャと比較することも含み得る。このようにして、この方法は、データ処理デバイス上でどのようなアプリケーションまたは複数のアプリケーションが実行されているかを検出することができる。これは、オペレーティング・システム、またはスケジューラ、またはハイパーバイザ、または任意のその他のデータ処理デバイス要素あるいはこれらの組合せ、およびオペレーティング・システム固有情報とのいかなるやり取りもなしに可能とすることができる。したがって、旧型のデータ処理デバイスまたはコントローラも調べることができ、許可されたアプリケーションのみが実行されているかまたは未知のアプリケーションが実行されているかを判断することが可能となり得る。
【0024】
この方法の好ましい一実施形態によると、少なくとも1つのストリーム・ベースのパラメータ・シグネチャは、周波数シグネチャと、振幅シグネチャと、位相シグネチャとを含むグループから選択された少なくとも1つのパラメータ成分とすることができる。このような信号および信号のパラメータは、デジタル信号処理によって測定電流信号および測定電圧信号から抽出することができる。
【0025】
この方法の好ましい他の実施形態によると、少なくとも1つのストリーム・ベースのパラメータ・シグネチャは、各シグネチャ・パラメータ成分の最頻値と、平均値と、最小値と、最大値とを含むグループから選択された少なくとも1つの値も含み得る。これらの追加の値は、周波数シグネチャと、振幅シグネチャと、位相シグネチャについて求めることができる。したがって、測定信号、すなわち電流および電圧から求められるすべての情報を、特徴的な電力消費パターンを有するアプリケーション、すなわち特徴的な電力消費パターンの判断のために使用することができる。
【0026】
有用な一実施形態によると、この方法は、複素数データ・ストリームに複数のチャネル化フィルタを適用することと、複数のフィルタ出力信号を生成することと、フィルタ出力信号のそれぞれに対してシグネチャ・エッジ検出を行うこととをさらに含み得る。これにより、データ処理デバイスの電力消費パターンの判断に関連する時間領域情報を強化することによってフィルタ出力信号を特性解析する。したがって、生I/Qデータ・ストリームから複数のチャネルを作成することができる。例としては、DCから1kHzまで、1kHzから10kHzまで、および10kHzから100kHzまでなどがあり得る。他のチャネルも適用可能である。挙動の開始および終了の特定シグネチャ(すなわちパターン)の判断を支援するために、各チャネル内で行われる位相、周波数および振幅の復調を、エッジ検出器またはエッジ検出アルゴリズムに供給することができる。例えば、DCから1kHzまでのチャネル(または帯域)でエッジを検出し、他のチャネルでは検出しないこともあり得る。
【0027】
可能な一実施形態によると、この方法は、シグネチャ・エッジ検出のためにキャニー・エッジ・アルゴリズムを使用することも含み得る。画像処理に由来するこのアルゴリズムは、堅牢でエッジ検出にとって極めて有用であることが知られている。したがって、十分に研究されている方法を使用して本提案の概念の目的を支援することができる。
【0028】
可能な一実施形態によると、この方法は、復調データ・ストリームの信号対雑音比を向上させるとともに、シグネチャ振幅を向上させるために発生した位相遅れを低減するために、無限インパルス応答信号フィルタ(IIR)または有限インパルス応答(FIR)信号フィルタあるいはその両方、特に複数のIIRまたはFIRフィルタあるいはその両方を適用することをさらに含み得る。デジタル信号処理におけるこれらのフィルタは実装が容易であり、所望の信号を雑音からよりよく分離する改良された方法となり得る。
【0029】
任意による一実施形態によると、この方法は、少なくとも1つのストリーム・ベースのパラメータ・シグネチャにおける1つまたは複数のシグネチャ・エッジを検出することと、関連する電力シグネチャ・データを解析エンジンに適したデータ形式に集約することとをさらに含み得る。これらのデータは、ヒューリスティック・アルゴリズムを使用したシグネチャ解析エンジンまたは機械学習ベースのシステムを含む高度な解析エンジンによってさらに処理することができる。解析エンジンのためのデータ形式は、本明細書で提案する方法またはシステムあるいはその両方によってすでに作成可能であるため、解析エンジンはデータ形式を変換する負担を負わなくても済む。
【0030】
したがって、この方法は、他の一実施形態では、監視のために解析エンジンに、集約された関連する電力シグネチャ・データを送信することも含み得る。したがって、連続監視によって、観察されているデータ処理が侵害ソフトウェアを実行するのを防ぐことができる。これは、旧型のデータ処理システム、例えば不正対策ソフトウェアが利用できないデータ処理システムを、不正およびマルウェアから保護する安全な方法となり得る。
【0031】
また、実施形態は、コンピュータまたは任意の命令実行システムによる使用、またはコンピュータまたは任意の命令実行システムに関連して使用するための、プログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能な、関連コンピュータ・プログラム製品の形態をとることができる。本明細書では、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置またはデバイスによって、またはこれらと関連して使用するために、プログラムを記憶、伝達、伝播、または移送する手段を含み得る任意の装置とすることができる。
【0032】
本発明の実施形態について異なる主題を参照しながら説明することに留意されたい。具体的には、一部の実施形態については方法クレームを参照して説明し、他の実施形態については装置クレームを参照して説明する。しかし、当業者は、上記および以下の説明から、特に明記されていない限り1つのタイプの主題に属する特徴の任意の組合せに加えて、異なる主題に関連する特徴、具体的には方法クレームの特徴と装置クレームの特徴との任意の組合せも、本明細書で開示されているものと見なされることがわかるであろう。
【0033】
上記で定義した態様および本発明のその他の態様は、以下で説明する実施形態の例から明らかになり、それらの実施形態の例を参照しながら説明するが、本発明はそれらの実施形態の例には限定されない。
【0034】
本開示の好ましい実施形態について、例示のみのために、以下の図面を参照しながら説明する。
【図面の簡単な説明】
【0035】
【
図1】本開示の実施形態による、データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断する本発明のコンピュータ実装方法の一実施形態のブロック図を示す図である。
【
図2】本開示の実施形態による、方法の初期キャリブレーションの第1の段階のブロック図を示す図である。
【
図3】本開示の実施形態による、方法の全体的実装の第2の段階のブロック図を示す図である。
【
図4】本開示の実施形態による、電力アダプタを備えた物理ホストと検出ユニットおよび解析ユニットとを含むシステムの一実施形態を示す図である。
【
図5】本開示の実施形態による、ルック-I/Qストリーム-周波数変換信号処理システムの信号サンプルの一実施形態を示す図である。
【
図6】本開示の実施形態による、データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断するためのシステムの簡略版の一実施形態を示す図である。
【
図7】本開示の実施形態による、本提案の概念で使用されるコンピューティング・システムの一実施形態を示す図である。
【発明を実施するための形態】
【0036】
本明細書の文脈では、以下の表記、用語または表現あるいはこれらの組合せを使用する場合がある。
【0037】
「電力消費パターン」という用語は、ソフトウェア、例えばアプリケーションを実行するデータ処理デバイス、コントローラまたは任意のその他の電気的デバイスの電力消費の特徴的信号パターンを指し得る。アプリケーションの実行時のデータ処理デバイスのプロセッサ、メモリまたはその他の構成要素あるいはこれらの組合せの変化する使用状況のために、デバイスの電力消費は特徴的な方式で変動することがある。
【0038】
「データ処理デバイス」という用語は、コンピュータ・システム、ソフトウェアを実行する専用デバイス、コントローラ、およびI/Oデバイスおよび、典型的にはプロセッサとプロセッサに接続されたメモリとを含む同様のデバイスを指し得る。オペレーティング・システム、仮想化層(例えばハイパーバイザ)、デバイス・ドライバ、およびアプリケーションのようなソフトウェアをロードし、実行することができる。
【0039】
「タイム・スタンプ付き電流値サンプル」という用語は、電源からデータ処理デバイスに流れる電流の測定値の連続シーケンスを指し得る。測定値のそれぞれをデジタル化し、測定またはデジタル化あるいはその両方の時刻に関係付けることができる。同じことは、「タイム・スタンプ付き電圧値サンプル」という用語にも当てはまり得る。また、これらの測定値をデジタル化し、時刻値に付加することもできる。
【0040】
「I/Qデジタル信号処理」という用語は、単に信号の瞬間的振幅の一連のサンプルを使用するよりもはるかに正確な信号表現を指し得る。典型的には、複雑な環境では、正負の周波数は例えば同じ曲線(例えば、cos(x)=cos(-x))を生成する可能性があるため、正の周波数であるか負の周波数であるかを判断することができないため、一連のサンプルから周波数を判断することが不可能な場合がある。第2に、信号のパワー(ピーク振幅、エンベロープ)を判断するのが難しい。ここで単に0°、180°、360°などにおけるピーク振幅を調べることもできる。しかし、最大電力消費は他のどこかにある場合がある。本実施例のI/Q表現はこれを解決する。上記のように信号を平坦な曲線として見るのではなく、3次元における螺旋状のもの(螺旋、スパイラル、コイルばね)として見ることができる。したがって、I/Qデータ・サンプルは、螺旋の時間軸に沿って見たときの信号の座標を表す。振幅変調正弦波は同相成分および直交成分と呼ばれる。この概念は、当業者によく知られている。
【0041】
「複素数データ・ストリーム」という用語は、数学的意味での実数部と複素数部または虚数部の両方を有するデジタル値の連続シーケンスを指し得る。
【0042】
「信号処理復調」という用語は、搬送波から元の情報担持信号を抽出するプロセスを指し得る。復調器は、変調搬送波から情報の内容を復元するために使用される何らかのデジタル・フィルタ・プログラムを実行する電子回路またはコンピュータ・プログラムとして実装可能である。多くの種類の変調があり、したがって多くの種類の復調器手法がある。
【0043】
「ストリーム・ベースのパラメータ・シグネチャ」という用語は、例えばハイパーバイザを使用して、コンピュータ・システム上での特定のアプリケーションまたはアプリケーションの組合せの実行に関連し得る時間的な特徴的信号パターンを指し得る。
【0044】
以下では、図の詳細な説明を示す。図中の指示はすべて概略的である。まず、データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断する本発明のコンピュータ実装方法の一実施形態のブロック図を示す。その後、他の実施形態と、データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断するためのシステムの一実施形態について説明する。
【0045】
図1に、データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断するコンピュータ実装方法100の一実施形態のブロック図を示す。この方法は、データ処理デバイスに流れるDC電流を電流センサを使用して測定すること102を含む。電流センサは、データ処理デバイスと電源との間に接続され、これによってタイム・スタンプ付き電流値サンプルのストリームが作成される。
【0046】
次に、方法100は、電源によってデータ処理デバイスに供給されるDC供給電圧を電圧センサを使用して測定すること104を含む。電圧センサは、処理デバイスと電源とに、具体的にはそれぞれ並列して、または間に接続される。これによって、タイム・スタンプ付き電圧値サンプルのストリームが作成される。
【0047】
また、方法100は、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求めること、数学的に言うと乗算値を求めること106と、その積を実数データ・ストリームと虚数データ・ストリームとに変換することとを含む。このために、I/Qデジタル信号処理が使用される。基本的には、消費電力が求められる。
【0048】
実際の実装の場合、ソース・ストリームを適切なCOS関数値およびSIN関数値と混合してI成分とQ成分を生成するプロセスによって、ソース信号ストリームから実数(Q)ストリームと虚数(I)ストリームとを抽出するのも有用であろう。
【0049】
次に、実数データ・ストリームと虚数データ・ストリームとを結合して108複素数データ・ストリームとし、複素数データ・ストリームに信号処理復調ステップを適用し110、それによって復調データ・ストリームを生成し、復調データ・ストリームから少なくとも1つのストリーム・ベースのパラメータ・シグネチャを抽出する112。これによって、ストリーム・ベースのパラメータ・シグネチャのそれぞれが、具体的には組み合わさって、場合によってはハイパーバイザおよび複数のアプリケーションも実行するデータ処理デバイス上で実行中の少なくとも1つの対応するアプリケーションの電力消費パターンを表す。
【0050】
この手法および本提案の例示の実装形態は、データ処理対象の電力使用を記述するデータの増強ストリームを提供するために、確かな根拠のある技術を基礎として、その上に信号処理技術をともに使用して構築される。基本的に、各サーバの電源内または各サーバの電源に接続された自動化された組み込みデバイスが、タスク切り替えと各構成仮想化タスクの電力シグネチャを特定可能であることによって、仮想化コンピューティング環境を備えた特定の侵害された仮想ホストの判断を行うことができる。
【0051】
一般に、本提案の概念は2段階手法として使用可能である。
【0052】
図2に、初期キャリブレーションの第1の段階のブロック
図200を示す。1つまたは複数のハイパーバイザ204と、オペレーティング・システム206と、アプリケーション208の電力使用シグネチャ(202)が収集される。これは、電力シグネチャを連続的に精緻化していくループ・プロセスで行うことができる。次に、これらの電力シグネチャを記録し210、正常な挙動のシステムを示す。
【0053】
図3に、手法全体の第2の段階、具体的には検出モードのブロック
図300を示す。まず、対象システムの電力消費からシグネチャが抽出される302。これらのシグネチャは、解析ユニットに供給される304。分離されたパラメータ・シグネチャは、正常な挙動を示すシグネチャ(308)と侵害挙動を示すシグネチャ(310)とに分離される306。
【0054】
正常挙動を示すシグネチャが見つかった場合、それらのシグネチャは、例えば
図2の文脈で説明したようにハイパーバイザ、オペレーティング・システム、およびアプリケーションのパラメータ・シグネチャを精緻化312するために使用される。次に、プロセスはシグネチャを抽出するステップ302に戻る。
【0055】
パラメータ・シグネチャが侵害挙動(310)を示す場合、任意により、既知の悪意パラメータ・シグネチャとの比較314を行うことができ、所定の閾値を超える場合は警告を発し、応答をトリガしてもよい(316)。比較314のための入力として、悪意挙動、すなわち、対象システム上で実行されている悪意あるソフトウェアを表す既知のシグネチャが、外部記憶源から取り出される(318)。また、警告を発した(316)後、検出された悪意シグネチャを外部の宛先に送ることができる320。やはり
図3に示すように、警告が発せられた後、プロセスはステップ302のシグネチャの抽出に戻る。
【0056】
図3では、いくつかの信号特性のうちの1つとして周波数のみが使用されていることはわかるであろう。信号振幅または信号位相あるいはその両方を使用して同様のフローチャートを作成することが可能である。また、これらの信号特性を組み合わせて評価することもできる。あるいは、より汎用的なフローチャートとするために、「周波数」という用語を信号特性に置き換えてもよい。
【0057】
図4に、電力アダプタ412を備える物理ホスト400と、検出ユニット414と、解析ユニット430と、警告および反応システム434とを含むシステムの一実施形態を示す。物理ホスト400は、AC電力を使用し、それを物理ホストで使用されるDC電力に変換する変成器412を含む。物理ホスト400は、プロセッサと、メモリ・ユニットと、サブシステムとを含み、これらをまとめて参照番号402で示す。物理ホスト400は、仮想システム1(404)、仮想システム2(406)、仮想システム3(408)および仮想システム4(410)として示す一連の仮想システムを実行する。さらに多くの仮想システムを物理ホスト400上で実行することができる。仮想システムは、ハイパーバイザ(図示せず)上で実行することができる。各仮想システムでは、オペレーティング・システムと1つまたは複数のアプリケーションとが実行可能である。
【0058】
検出ユニット414は、信号処理を行うようになされている。抽象的な形態で示されているが、電流センサ426は電源412のDC出力と物理ホスト400の電力消費要素との間に直列に接続されている。同様にして、電圧センサ424が電源412のDC出力からの出力線の両端間に接続されて、電源412のDC電力出力から物理ホスト400の電力消費要素に供給される電圧を測定する。
【0059】
電圧センサ424と電流センサ426からの両方の信号ストリームが、アナログ-デジタル変換器420に供給される。信号ストリームのそれぞれが独立してA/D(アナログ/デジタル)変換される。アナログ・センサ入力が、電流検知デバイスのアナログ帯域幅の帯域幅の2倍(ナイキスト・レート)でサンプリングされる。
【0060】
複数の電圧/電流の組合せ、例えば、典型的なコンピュータ電源からコンピュータ内の様々な構成要素への3.3V、5Vおよび12Vの供給レールと1MHzの電流アナログ帯域幅との組合せをサンプリングすることができる。
【0061】
これらのサンプルと正弦および余弦とをI/Qミキサ428によってデジタル処理で混合してこのデータ・ストリームをIおよびQストリーム(実数および虚数)に変換するために、周波数発生器416出力とA/D変換器420の出力とが使用される。これは、データ・ストリームのリアル・タイム特性解析のための関連するデータを供給する信号処理手法である。
【0062】
デジタル・シグナル・プロセッサ422は、I/Qミキサ428からのIおよびQデータ・ストリームを、有用なデータを抽出するための入力信号として使用する。有用なデータには以下のものが含まれるが、これらには限定されない。
・データ・ストリームの振幅
・データ・ストリームの周波数、および
・データ・ストリームの位相
・さらにAC結合成分に加えて上記データのMean、Max、Min(平均値、最大値および最小値の数学的値の略)の追加の実行値
【0063】
上記のデータは、各電力センサについて周波数発生器416によって生成された複数のサンプリング・チャネル周波数にわたって抽出することができる。他の特性解析処理時間領域活動とともに、チャネル周波数をタスク切り替え周波数の倍数となるようにすることによって、このチャネル・データ集合体は、機械学習システムのための仮想画像を特性解析するのに役立つジョンF.キャニーの「キャニー・エッジ検出」アルゴリズム研究などのアルゴリズムと同様にして、電力シグネチャのエッジの特定に役立つ。
【0064】
デジタル信号処理は、高速加速マイクロコントローラを使用するサブシステムによって行うことができる。これは、電流検出線と電圧線のそれぞれを2MHzでサンプリングし、ADCサンプルをSIN/COSテーブルを使用して混合して各アナログ・サンプルのデジタルI値とQ値を出力するSoC(システム・オン・チップ)とすることができる。
【0065】
信号処理ソフトウェアを実行するマイクロコントローラDSPコアは、信号処理、特性解析およびその他のタスクを行ってから、電力シグネチャをEthernetモジュール、TCP/IPネットワーク・アダプタ418に転送する。Ethernet機能は、電力解析器を標準Ethernetネットワークに接続可能にする。その結果、極めて良好な分解能でサイド・チャネル電力解析データの一定した増強ストリームを送出するネットワーク・ソケットを備えたサーバ電源となる。
【0066】
デバイスから供給されるデータは、次に、異常な挙動、特定のシグネチャ、または電力消費パターンの異常、あるいはこれらの組合せを検出するためのパターン認識エンジン432を含む解析処理プラットフォーム430に供給される。警告および反応システム434を介して、物理サーバが侵害ソフトウェアを実行しないように保護する事前定義済みタスクを開始させることができる。このために、警告および反応システム434は、プレゼンテーション層と自動応答エンジン436も含むことができる。
【0067】
次に
図5を参照すると、解析プロセスの異なる段階における異なる例示の波形をより詳細に見ることができる。
図5は、アナログ-I/Qストリーム-周波数変換信号処理システムの信号サンプルの一実施形態を示す。信号源502(
図4の周波数発生器416と同一であってよい)が、例えば、信号レート:44.1[kHz]、波形:正弦波、周波数:10[kHz]、振幅:1[V]、オフセット:0というデータを供給する。ブロック504は、
図4の電力センサ426からの入力に相当し得る。
【0068】
信号源502の出力は、
図520に正弦波/余弦波として示されている。
図524は、ソース信号を示す。
【0069】
遅延ユニット506が正弦信号と余弦信号を作成する。余弦信号は、正弦信号を90°遅延させることによって生成される。また、遅延ユニット506の出力は信号
図520を指す。
【0070】
乗算器508が、Qストリームについて信号源502と遅延ユニット506から出力信号を受け取り、乗算器510がIストリームの入力信号として遅延ユニット506と電力センサ504の出力を受け取る。浮動小数点-複素数変換器512がQデータ・ストリームとIデータ・ストリームを入力として使用する。浮動小数点-複素数変換器512の出力信号が
図522に、具体的にはソース信号に重ねられたI/Qデータ・ストリームで示されている。
【0071】
この信号ストリームにおいて、デシメーション:1[1/秒]、サンプル・レート44.1[kHz]、カットオフ周波数:1.5[kHz]、遷移幅:200、窓:ハミング、ベータ:6.76の特性を有する例示のロー・パス・フィルタ514が続く。後続のユニットとして、7.01874kのゲートを有する直交復調器516が使用される。この後に、さらに、デシメーション:1[1/秒]、ゲート1、サンプル・レート44.1[kHz]、カットオフ周波数:400[Hz]、遷移幅10、窓:ハミング、ベータ:6.76の特性を有するロー・パス・フィルタ518が続く。直交復調器514は、共役乗算ブロックであり、複素数理論においてI/Qストリーム内に含まれる周波数と直線関係にある出力を出す。「デシメーション」という用語は、毎秒の信号サンプルのデシメーションに関することはわかるであろう。したがって、毎秒1000個あり、10でデシメーションする場合、出力として100個のサンプルのみが存在することになる。これによって、プロセッサおよびその他の回路が過負荷にならないようにすることができる。遷移幅により、-3dBの周波数窓ができる。
【0072】
周波数シンクにおいて、信号
図526は、特徴的アプリケーション、ハイパーバイザ、およびオペレーティング・システム活動に関連している可能性のある電力使用の周波数成分を示す。具体的には、
図526の波形の左側がこの例で予期されている一定した電力使用を示し、
図526の右側が明確に異なる周波数パターンを示しており、この例において元の電力源信号における重ね合わされた信号雑音と相関している挙動の変化を明らかにしている。
【0073】
サンプリング・レートおよびフィルタ・レートのいくつかの具体的な数値を、いくつかの他のパラメータとともに使用して原理を明示するために、ここでは実際の信号処理が簡略化された形態で示されていることはわかるであろう。
【0074】
図6に、データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断するシステム600の簡略化版の一実施形態を示す。システム600は、電流センサを使用してデータ処理デバイスに流れるDC電流を測定するための電流センサ602(電流センサ426および504に相当)を含む。電流センサ602は、データ処理デバイスと電源との間に接続され、それによってタイム・スタンプ付き電流値サンプルのストリームを作成する。
【0075】
システム600は、電圧センサを使用して電源によってデータ処理デバイスに供給されるDC供給電圧を測定するための電圧センサ604(電圧センサ424に相当)も含む。電圧センサ604は、処理デバイスと電源とに接続され、それによって、タイム・スタンプ付き電圧値サンプルのストリームを作成する。
【0076】
また、システム600は、I/Qデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、その積を実数データ・ストリーム(Iストリーム)と虚数データ・ストリーム(Qストリーム)とに変換するようになされたI/Qデジタル・シグナル・プロセッサ606と、実数データ・ストリームと虚数データ・ストリームを結合して複素数データ・ストリームとするようになされた結合モジュール608(浮動小数点-複素数変換器512に相当)とを含む。
【0077】
さらに、システム600は、複素数データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成するようになされた復調器ユニット610(直交復調器516に相当)と、復調データ・ストリームから少なくとも1つのストリーム・ベースのパラメータ・シグネチャを抽出するようになされた抽出ユニット612とを含む。ストリーム・ベースのパラメータ・シグネチャのそれぞれが、データ処理デバイス上で実行中の少なくとも1つの対応するアプリケーションの電力消費パターンを表す。したがって、許可されたハイパーバイザ/オペレーティング・システム/アプリケーションの組合せと無許可または危険である可能性のあるハイパーバイザ/オペレーティング・システム/アプリケーションの組合せとを区別することができる。
【0078】
本発明の実施形態は、プラットフォームがプログラム・コードを記憶または実行あるいはその両方を行うのに適しているか否かを問わず、実質的に任意の種類のコンピュータとともに実装可能である。
図7に、例えば信号エッジ検出処理またはその他のデジタル・フィルタ・アルゴリズムのために、本提案の方法に関連するプログラム・コードの実行に適したコンピュータ・システム700を一例として示す。ただし、これらのタスクのためにデジタル・シグナル・プロセッサ(DSP)またはFPGAも使用可能である。
【0079】
コンピュータ・システム700は、適合するコンピュータ・システムの一例に過ぎず、コンピュータ・システム700が実装可能であるか、または上記の機能のいずれかを実行可能であるか、あるいはその両方であるかを問わず、本明細書に記載の本発明の実施形態の使用または機能の範囲に関していかなる限定も示唆することを意図していない。コンピュータ・システム700内には、多くの他の汎用または専用コンピューティング・システム環境または構成とともに動作可能なコンポーネントがある。コンピュータ・システム/サーバ700とともに使用するのに適し得る周知のコンピューティング・システム、環境または構成あるいはこれらの組合せの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルド・デバイスまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル消費者電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステムまたはデバイスなどのうちのいずれかを含む分散クラウド・コンピューティング環境などがあるが、これらには限定されない。コンピュータ・システム/サーバ700について、コンピュータ・システム700によって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明する場合がある。一般には、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム/サーバ700は、通信ネットワークを介して接続されたリモート処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境で実施されてもよい。分散クラウド・コンピューティング環境では、プログラム・モジュールを、メモリ・ストレージ・デバイスを含むローカルとリモートの両方のコンピュータ・システム記憶媒体に格納することができる。
【0080】
図に示すように、コンピュータ・システム/サーバ700は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ700のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット702と、システム・メモリ704と、システム・メモリ704を含む様々なシステム・コンポーネントをプロセッサ702に接続するバス706とを含み得るがこれらには限定されない。バス706は、様々なバス・アーキテクチャのうちのいずれかのアーキテクチャを使用する、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィクス・ポート、およびプロセッサ・バスまたはローカル・バスを含む、数種類のバス構造のうちのいずれかの1つまたは複数に相当する。例として、限定的ではなく、そのようなアーキテクチャとしては、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロ・チャネル・アーキテクチャ(Micro Channel Architecture:MCA)バス、拡張(Enhanced)ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(Video Electronics Standards Association:VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(Peripheral Component Interconnect:PCI)バスがある。コンピュータ・システム/サーバ700は、典型的には様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ700がアクセスすることができる任意の利用可能な媒体であってよく、揮発性媒体と不揮発性媒体の両方と、取り外し可能媒体と取り外し不能媒体とを含む。
【0081】
システム・メモリ704は、ランダム・アクセス・メモリ(RAM)708またはキャッシュ・メモリ710あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム/サーバ700は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム記憶媒体をさらに含み得る。一例に過ぎないが、ストレージ・システム712を、取り外し不能な不揮発性磁気媒体(図示されておらず、一般に「ハード・ドライブ」と呼ばれる)の読み書きのために設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば「フロッピィ・ディスク」)の読み書きのための磁気ディスク・ドライブと、CD-ROM、DVD-ROMまたはその他の光学媒体などの、取り外し可能な不揮発性光ディスクの読み書きのための光ディスク・ドライブとを備えることができる。そのような場合、それぞれを1つまたは複数のデータ・メディア・インターフェースによってバス706に接続することができる。以下でさらに図示し、説明するように、メモリ704は、本発明の実施形態の機能を実施するように構成された1組の(例えば少なくとも1つの)プログラム・モジュールを有する少なくとも1つのプログラム製品を含み得る。
【0082】
一例として、これには限らないが、1組の(少なくとも1つの)プログラム・モジュール716を有するプログラム/ユーティリティのほか、オペレーティング・システムと、1つまたは複数のアプリケーション・プログラムと、その他のプログラム・モジュールと、プログラム・データとをメモリ704に記憶することができる。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データ、またはその何らかの組合せのそれぞれが、ネットワーキング環境の実装形態を含み得る。プログラム・モジュール716は、一般に、本明細書に記載の本発明の実施形態の機能または方法あるいはその両方を実施する。
【0083】
コンピュータ・システム/サーバ700は、キーボード、ポインティング・デバイス、ディスプレイ720など、または、ユーザがコンピュータ・システム/サーバ700と対話することができるようにする1つまたは複数のデバイス、または、コンピュータ・システム/サーバ700が1つまたは複数の他のコンピューティング・デバイスと通信することができるようにする任意のデバイス(例えばネットワーク・カード、モデムなど)、あるいはこれらの組合せなどの、1つまたは複数の外部デバイス718とも通信することができる。このような通信は、入出力(I/O)インターフェース714を介して行うことができる。さらに、コンピュータ・システム/サーバ700は、ローカル・エリア・ネットワーク(LAN)、汎用ワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(例えばインターネット)、あるいはこれらの組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ722を介して通信することができる。図のように、ネットワーク・アダプタ722は、バス706を介してコンピュータ・システム/サーバ700の他のコンポーネントと通信することができる。なお、図示されていないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方もコンピュータ・システム/サーバ700とともに使用することができる。例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらには限定されない。
【0084】
本発明の様々な実施形態の説明を例示のために示したが、これらは網羅的であること、または開示されている実施形態に限定することを意図したものではない。記載されている実施形態の範囲および思想から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用されている用語は、実施形態の原理、実際の適用、または市場に見られる技術に優る技術的改良を最もよく説明するために、または当業者が本明細書で開示されている実施形態を理解することができるように選定された。
【0085】
本発明は、システム、方法またはコンピュータ・プログラム製品あるいはこれらの組合せとして実施することができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0086】
媒体は、伝播媒体のための電子、磁気、光学式、電磁、赤外線または半導体システムとすることができる。コンピュータ可読媒体の例には、半導体メモリまたはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、剛体磁気ディスク、および光ディスクが含まれ得る。光ディスクの現在の例には、コンパクト・ディスク読み取り専用メモリ(CD-ROM)、コンパクト・ディスク読み取り/書き込み(CD-R/W)、DVD、Blu―Rayディスクが含まれる。
【0087】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適合する組合せとすることができるが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のものが含まれる。すなわち、可搬コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、可搬コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適合する組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波(例えば光ファイバ・ケーブルを通る光パルス)、または配線を介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
【0088】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワークあるいはこれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含み得る。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
【0089】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、または同様のプログラム言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータまたはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。実施形態によっては、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0090】
本発明の態様について、本明細書では、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら説明している。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。
【0091】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能/動作を実装する手段を形成するようなマシンを実現するように、汎用コンピュータ、専用コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに提供することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能/動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理装置、またはその他のデバイスあるいはこれらの組合せに対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶することもできる。
【0092】
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方のブロックで規定されている機能/動作を実装するように、コンピュータによって実行されるプロセスを作出するべく、コンピュータ、その他のプログラマブル装置、または他のデバイス上で一連の動作ステップが実行されるようにするために、コンピュータ、その他のプログラマブル・データ処理装置、または他のデバイスにロードされてもよい。
【0093】
図面中のフローチャートまたはブロック図あるいはその両方は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。この場合、フローチャートまたはブロック図の各ブロックは、規定されている論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表し得る。別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、規定されている機能または動作を実行する専用ハードウェア・ベースのシステムによって実装可能であるか、または専用ハードウェアとコンピュータ命令との組合せを実施することに留意されたい。
【0094】
本明細書で使用されている用語は、特定の実施形態について説明することのみを目的としており、本発明を限定することを意図していない。本明細書で使用されている単数形の「a」、「an」および「the」は、文脈が明確に別の解釈を示していない限り複数形も含むことが意図されている。また、「含んでいる(comprises)」、または「含む(comprising)」という用語あるいはその両方は、本開示で使用されている場合、記載されている特徴、整数、ステップ、動作、要素、またはコンポーネントあるいはこれらの組合せの存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネントまたはそのグループあるいはこれらの組合せの存在または追加を排除しない。
【0095】
以下の特許請求の範囲におけるすべてのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、動作、および均等物は、具体的に特許請求されているように、他の特許請求要素と組み合わさって機能を実行するためのあらゆる構造、材料または動作を含むことが意図されている。本発明の説明を例示のために示したが、網羅的であること、または開示されている形態の本発明に限定することを意図したものではない。本発明の範囲および思想から逸脱することなく、多くの修正および変形が当業者には明らかであろう。実施形態は、本発明の原理および実際の適用を最もよく説明するためと、当業者が、企図された特定の使用に適するように様々な修正を加えた様々な実施形態のために本発明を理解することができるようにするために選定され、記載されている。
【0096】
本発明の別の態様によると、データ処理デバイス上で実行中の少なくとも1つのアプリケーションの電力消費パターンを判断するためのシステムを提供することができる。システムは、電流センサを使用してデータ処理デバイスに流れるDC電流を測定するための電流センサを含み得る。電流センサは、データ処理デバイスと電源との間に接続可能である。これにより、タイム・スタンプ付き電流値サンプルのストリームを作成することができる。
【0097】
システムは、電圧センサを使用して電源によってデータ処理デバイスに供給されるDC供給電圧を測定するための電圧センサも含み得る。電圧センサは、処理デバイスと電源とに接続可能である。これによって、タイム・スタンプ付き電圧値サンプルのストリームを作成することができる。
【0098】
また、システムは、I/Qデジタル信号処理を使用して、同一時刻における測定タイム・スタンプ付きサンプルのストリームの積を求め、その積を実数データ・ストリームと虚数データ・ストリームとに変換するようになされたI/Qデジタル・シグナル・プロセッサと、実数データ・ストリームと虚数データ・ストリームとを結合して複素数データ・ストリームとするようになされた結合モジュールと、複素数データ・ストリームに信号処理復調ステップを適用し、それによって復調データ・ストリームを生成するようになされた復調器ユニットとを含み得る。
【0099】
さらに、システムは、ストリーム・ベースのパラメータ・シグネチャのそれぞれがデータ処理デバイス上で実行中の少なくとも1つの対応するアプリケーションの電力消費パターンを表す、少なくとも1つのストリーム・ベースのパラメータ・シグネチャを復調データ・ストリームから抽出するようになされた抽出ユニットを含み得る。