IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シーメンス インダストリー ソフトウェア インコーポレイテッドの特許一覧

特許7425871集積回路チップにおいて観察された異常の原因識別
<>
  • 特許-集積回路チップにおいて観察された異常の原因識別 図1
  • 特許-集積回路チップにおいて観察された異常の原因識別 図2
  • 特許-集積回路チップにおいて観察された異常の原因識別 図3
  • 特許-集積回路チップにおいて観察された異常の原因識別 図4
  • 特許-集積回路チップにおいて観察された異常の原因識別 図5
  • 特許-集積回路チップにおいて観察された異常の原因識別 図6
  • 特許-集積回路チップにおいて観察された異常の原因識別 図7
  • 特許-集積回路チップにおいて観察された異常の原因識別 図8
  • 特許-集積回路チップにおいて観察された異常の原因識別 図9a
  • 特許-集積回路チップにおいて観察された異常の原因識別 図9b
  • 特許-集積回路チップにおいて観察された異常の原因識別 図9c
  • 特許-集積回路チップにおいて観察された異常の原因識別 図9d
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-23
(45)【発行日】2024-01-31
(54)【発明の名称】集積回路チップにおいて観察された異常の原因識別
(51)【国際特許分類】
   G06F 11/07 20060101AFI20240124BHJP
   G01R 31/317 20060101ALI20240124BHJP
   G06F 11/22 20060101ALI20240124BHJP
   G06F 11/30 20060101ALI20240124BHJP
   G06F 11/34 20060101ALI20240124BHJP
【FI】
G06F11/07 190
G01R31/317
G06F11/07 140Q
G06F11/07 160
G06F11/22 675E
G06F11/30 140L
G06F11/34 152
【請求項の数】 19
(21)【出願番号】P 2022533133
(86)(22)【出願日】2020-11-26
(65)【公表番号】
(43)【公表日】2023-02-06
(86)【国際出願番号】 EP2020083479
(87)【国際公開番号】W WO2021110530
(87)【国際公開日】2021-06-10
【審査請求日】2022-07-29
(31)【優先権主張番号】1917652.8
(32)【優先日】2019-12-03
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】520161964
【氏名又は名称】シーメンス インダストリー ソフトウェア インコーポレイテッド
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】マーチン ロンド
(72)【発明者】
【氏名】ガジンダー パネザー
【審査官】渡辺 一帆
(56)【参考文献】
【文献】米国特許出願公開第2019/0340392(US,A1)
【文献】特開2017-207903(JP,A)
【文献】特開2013-214171(JP,A)
【文献】特開2015-184818(JP,A)
【文献】再公表特許第2011/065354(JP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G01R 31/317-31/3193
G06F 11/22
G06F 11/30 -11/34
(57)【特許請求の範囲】
【請求項1】
集積回路(IC)チップ上のシステム回路から測定された異常特徴の原因を識別する、コンピュータによって実行される方法であって、前記集積回路(IC)チップは、前記システム回路と、一連の窓の各窓内で前記システム回路の特徴を測定することによって前記システム回路を監視するための監視回路とを含み、
前記方法は、
(i)前記異常特徴を含む異常窓より前の窓セットから、前記異常特徴の原因を探索するための候補窓セットを識別するステップと、
(ii)前記システム回路の測定された特徴の各々について、
(a)前記候補窓セットについて当該測定された特徴の第1の特徴確率分布を計算するステップと、
(b)前記候補窓セットにない窓について当該測定された特徴の第2の特徴確率分布を計算するステップと、
(c)前記第1の特徴確率分布および前記第2の特徴確率分布を比較するステップと、
(d)前記第1の特徴確率分布および前記第2の特徴確率分布が閾値を超えて異なっている場合、前記候補窓セットの時間枠内で測定された特徴を、前記異常特徴の原因として識別するステップと、
を含むステップと、
(iii)前記異常窓より前の窓セットからさらなる候補窓セットについて前記ステップ(i)および前記ステップ(ii)を反復するステップと、
(iv)前記異常特徴の原因として識別された前記ステップ(ii)(d)の前記測定された特徴を示す信号を出力するステップと、
を含む、方法。
【請求項2】
前記ステップ(ii)(c)は、前記第1の特徴確率分布と前記第2の特徴確率分布との間の差分測定値を決定するステップを含み、
前記ステップ(ii)(d)は、前記差分測定値が前記閾値よりも大きい場合、前記候補窓セットの時間枠内で測定された特徴が、前記異常特徴の原因であることを識別するステップを含む、
請求項1記載の方法。
【請求項3】
前記差分測定値は、前記反復の前記第1の特徴確率分布と前記第2の特徴確率分布との間の時間にわたる差分のパーセンタイルによってスケーリングされている、請求項2記載の方法。
【請求項4】
前記異常窓より前の前記窓セットは、(i)前記異常窓と、(ii)遠位早期窓とによって境界付けられている、請求項1から3までのいずれか1項記載の方法。
【請求項5】
前記ステップ(ii)(b)は、前記候補窓セットと前記異常窓との間の窓セットについて当該測定された特徴の第2の特徴確率分布を計算するステップを含む、請求項4記載の方法。
【請求項6】
前記候補窓セットは、10未満の窓を含む、請求項1から5までのいずれか1項記載の方法。
【請求項7】
前記候補窓セットは、単一の窓のみを含む、請求項6記載の方法。
【請求項8】
前記第1の特徴確率分布および前記第2の特徴確率分布は、前記ステップ(ii)(a)および(b)において、識別された窓について測定された特徴にガウスモデルを適合させることによって計算される、請求項1から7までのいずれか1項記載の方法。
【請求項9】
請求項1から8までのいずれか1項記載の方法であって、異常特徴によって影響を受けた測定された特徴を識別するステップをさらに含み、前記影響を受けた測定された特徴は、異常窓に後続する窓内に存在しており、
前記方法は、
(v)前記異常窓に後続する窓セットから、異常特徴の影響を探索するための後続の候補窓セットを識別するステップと、
(vi)前記システム回路の前記測定された特徴の各々について、
(a)前記後続の候補窓セットについて当該測定された特徴の第3の特徴確率分布を計算するステップと、
(b)後続の候補窓セット内に含まれない後続の窓について当該測定された特徴の第4の特徴確率分布を計算するステップと、
(c)前記第3の特徴確率分布および前記第4の特徴確率分布を比較するステップと、
(d)前記第3の特徴確率分布および前記第4の特徴確率分布がさらなる閾値を超えて異なっている場合、前記後続の候補窓セットの時間枠内で測定された特徴を、前記異常特徴によって影響を受けたものとして識別するステップと、
を含むステップと、
(vii)前記異常窓に後続する窓セットからさらなる後続の候補窓セットについて前記ステップ(v)および前記ステップ(vi)を反復するステップと、
(viii)前記異常特徴によって影響を受けたものとして識別された前記ステップ(vi)(d)の前記測定された特徴を示す信号を出力するステップと、
を含む、方法。
【請求項10】
前記ステップ(vi)(c)は、前記第3の特徴確率分布と前記第4の特徴確率分布との間のさらなる差分測定値を決定するステップを含み、
前記ステップ(vi)(d)は、前記さらなる差分測定値がさらなる閾値よりも大きい場合、前記後続の候補窓セットの時間枠内で測定された特徴が、前記異常特徴によって影響を受けたことを識別するステップを含む、
請求項9記載の方法。
【請求項11】
前記さらなる差分測定値は、前記第3の特徴確率分布と前記第4の特徴確率分布との間の時間にわたるスケーリングされた差分である、請求項10記載の方法。
【請求項12】
前記異常窓に後続する窓セットは、(i)前記異常窓と、(ii)遠位後期窓とによって境界付けられている、請求項9から11までのいずれか1項記載の方法。
【請求項13】
前記ステップ(vi)(b)は、前記後続の候補窓セットと前記異常窓との間の窓セットについて当該測定された特徴の第4の特徴確率分布を計算するステップを含む、請求項12記載の方法。
【請求項14】
前記後続の候補窓セットは、10未満の窓を含むことができる、請求項9から13までのいずれか1項記載の方法。
【請求項15】
前記後続の候補窓セットは、単一の窓のみを含む、請求項14記載の方法。
【請求項16】
前記第3の特徴確率分布および前記第4の特徴確率分布は、前記ステップ(vi)(a)および(b)において、識別された窓について測定された特徴にガウスモデルを適合させることによって計算される、請求項9から15までのいずれか1項記載の方法。
【請求項17】
前記測定された特徴は、前記システム回路の部品によって出力されたデータから監視回路によって生成されたトレースデータから導出されるものを含む、請求項1から16までのいずれか1項記載の方法。
【請求項18】
前記測定された特徴は、前記システム回路の部品に入力したデータまたは前記部品から出力されたデータから前記監視回路によって識別された照合イベントから導出されるものを含む、請求項1から17までのいずれか1項記載の方法。
【請求項19】
前記測定された特徴は、前記システム回路の部品から特定のアイテムが観察されるたびにカウントするように構成された前記監視回路のカウンタから導出されるものを含む、請求項1から18までのいずれか1項記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システムオンチップ(SoC)またはマルチチップモジュール(MCM)内のシステム回路から測定された特徴の分析に関する。
【背景技術】
【0002】
従来、複数のコアデバイス(プロセッサ、メモリなど)を有する組み込みシステムは、プリント回路基板(PCB)に組み込まれ、バスを介してPCB上で接続されていた。組み込みシステムのトラフィックは、これらのバスを介して伝送されていた。この配置構成は、オシロスコープやロジック分析器などの監視ツールをPCBのバスに取り付けることができ、コアデバイスへの直接のアクセスが可能であるため、コアデバイスを監視するのに便利であった。
【0003】
より小型な製品に対する市場の要求は、半導体技術における進歩と相まってシステムオンチップ(SoC)デバイスの開発につながった。SoCでは、組み込みシステムの複数のコアデバイスがシングルチップに集積されている。SoCでは、組み込みシステム内のトラフィックは、内部バスを介して伝送されており、したがって、監視ツールを直接システムバスに接続することはもはや不可能である。(複数のプロセッシングコアとより高い内部クロック周波数との統合につながるSoC技術の開発により)結果としてアクセスが減少し、チップ周りで転送されるデータの量が増加すると、業界によって要求されるタイムスケール内でセキュリティ違反、バグ、および安全上の懸念についてシステムを監視する外部監視ツールの能力が低下してしまう。付加的に、複数のコアデバイスが同じシングルチップに組み込まれている場合、個々の各コアデバイスの動作は、他のコアデバイスとの相互作用ならびにトリガーやアラートなどのリアルタイムイベントのために、単独での動作とは異なる。
【0004】
したがって、SoCデバイスの開発には、関連する監視技術の開発が必要であるが、これは、SoC上に何らかの監視機能を統合させることにつながる。現在では、SoC内の監視回路のために、コアデバイス(CPUなど)上でプログラムを実行するプロセッサの出力をトレースすることが知られている。このトレースデータは、一般に、オフチップ分析用に出力される。
【0005】
特にデータの異常を調査するために、オンチップ監視回路によって収集されたデータのより詳細な分析を生成することが望ましい。
【0006】
発明の概要
第1の態様によれば、
集積回路(IC)チップ上のシステム回路から測定された異常特徴の原因を識別する方法が提供され、このICチップは、システム回路と、一連の窓の各窓内でシステム回路の特徴を測定することによってシステム回路を監視するための監視回路とを含んでおり、本方法は、以下のステップ、すなわち(i)異常特徴を含む異常窓より前の窓セットから、異常特徴の原因を探索するための候補窓セットを識別するステップと、(ii)システム回路の測定された特徴の各々について、(a)候補窓セットについて当該測定された特徴の第1の特徴確率分布を計算するステップと、(b)候補窓セットにない窓について当該測定された特徴の第2の特徴確率分布を計算するステップと、(c)第1および第2の特徴確率分布を比較するステップと、(d)第1および第2の特徴確率分布が閾値を超えて異なっている場合、候補窓セットの時間枠内で測定された特徴を、異常特徴の原因として識別するステップとを含んだステップと、(iii)異常な窓より前の窓セットからさらなる候補窓セットについてステップ(i)およびステップ(ii)を反復するステップと、(iv)異常特徴の原因として識別されたステップ(ii)(d)のそれらの測定された特徴を示す信号を出力するステップとを含む。
【0007】
ステップ(ii)(c)は、第1の特徴確率分布と第2の特徴確率分布との間の差分測定値を決定することを含むことができ、ステップ(ii)(d)は、差分測定値が閾値よりも大きい場合、候補窓セットの時間枠内で測定された特徴が、異常特徴の原因であることを識別することを含むことができる。
【0008】
差分測定値は、反復の第1の特徴確率分布と第2の特徴確率分布との間の時間にわたる差分のパーセンタイルによってスケーリングされている。
【0009】
異常な窓より前の窓セットは、(i)異常窓と、(ii)遠位早期窓(distal earlier window)とによって境界付けられてもよい。
【0010】
ステップ(ii)(b)は、候補窓セットと異常窓との間の窓セットについて当該測定された特徴の第2の特徴確率分布を計算することを含むことができる。
【0011】
候補窓セットは、10未満の窓を含むことができる。
【0012】
候補窓セットは、単一の窓のみを含むことができる。
【0013】
第1および第2の特徴確率分布は、ステップ(ii)(a)および(b)において、識別された窓について測定された特徴にガウスモデルを適合させることによって計算されてもよい。
【0014】
本方法は、異常特徴によって影響を受けた測定された特徴を識別するステップをさらに含むことができ、影響を受けた測定された特徴は、異常窓に後続する窓内に存在しており、本方法は、以下のステップ、すなわち(v)異常窓に後続する窓セットから、異常特徴の影響を探索するための後続の候補窓セットを識別するステップと、(vi)システム回路の測定された特徴の各々について、(a)後続の候補窓セットについて当該測定された特徴の第3の特徴確率分布を計算するステップと、(b)後続の候補窓セット内に含まれない後続の窓について当該測定された特徴の第4の特徴確率分布を計算するステップと、(c)第3および第4の特徴確率分布を比較するステップと、(d)第3および第4の特徴確率分布がさらなる閾値を超えて異なっている場合、後続の候補窓セットの時間枠内で測定された特徴を、異常特徴によって影響を受けたものとして識別するステップとを含んだステップと、(vii)異常窓に後続する窓セットからさらなる後続の候補窓セットについてステップ(v)および(vi)を反復するステップと、(viii)異常特徴によって影響を受けたものとして識別されたステップ(vi)(d)のそれらの測定された特徴を示す信号を出力するステップとを含む。
【0015】
ステップ(vi)(c)は、第3の特徴確率分布と第4の特徴確率分布との間のさらなる差分測定値を決定することを含むことができ、ステップ(vi)(d)は、さらなる差分測定値がさらなる閾値よりも大きい場合、後続の候補窓セットの時間枠内で測定された特徴が、異常特徴によって影響を受けたことを識別することを含むことができる。
【0016】
さらなる差分測定値は、第3の特徴確率分布と第4の特徴確率分布との間の時間にわたるスケーリングされた差分であってもよい。
【0017】
異常窓に後続する窓セットは、(i)異常窓と、(ii)遠位後期窓とによって境界付けられてもよい。
【0018】
ステップ(vi)(b)は、後続の候補窓セットと異常窓との間の窓セットについて当該測定された特徴の第4の特徴確率分布を計算することを含むことができる。
【0019】
後続の候補窓セットは、10未満の窓を含むことができる。
【0020】
後続の候補窓セットは、単一の窓のみを含むことができる。
【0021】
第3および第4の特徴確率分布は、ステップ(vi)(a)および(b)において、識別された窓について測定された特徴にガウスモデルを適合させることによって計算されてもよい。
【0022】
測定された特徴は、システム回路の部品によって出力されたデータから監視回路によって生成されたトレースデータから導出されるものを含むことができる。
【0023】
測定された特徴は、システム回路の部品に入力したデータまたは部品から出力されたデータから監視回路によって識別された照合イベントから導出されるものを含むことができる。
【0024】
測定された特徴は、システム回路の部品から特定のアイテムが観察されるたびにカウントするように構成された監視回路のカウンタから導出されるものを含むことができる。
【0025】
次に、本発明を添付の図面を参照して例示的に説明する。
【図面の簡単な説明】
【0026】
図1】例示的な集積回路チップデバイスの概略図である。
図2】集積回路チップデバイス上の例示的な監視ネットワークおよびシステム回路の概略図である。
図3】システム回路から測定された異常特徴の原因を識別する方法のフローチャートである。
図4】測定された特徴のシーケンスの時間窓を示した図である。
図5】後続の異常特徴の原因である特徴を示したグラフである。
図6】システム回路から測定された異常特徴によって影響を受けた後続の測定された特徴を識別する方法のフローチャートである。
図7】測定された特徴のシーケンスの時間窓を示した図である。
図8図8は、後続の異常特徴の原因である特徴と、異常特徴によって影響を受けた特徴との両方を示したグラフである。
図9a】異なる長さの候補窓セットについて、後続の異常特徴の原因である特徴と、異常特徴によって影響を受けた特徴との両方を示したグラフである。
図9b】異なる長さの候補窓セットについて、後続の異常特徴の原因である特徴と、異常特徴によって影響を受けた特徴との両方を示したグラフである。
図9c】異なる長さの候補窓セットについて、後続の異常特徴の原因である特徴と、異常特徴によって影響を受けた特徴との両方を示したグラフである。
図9d】異なる長さの候補窓セットについて、後続の異常特徴の原因である特徴と、異常特徴によって影響を受けた特徴との両方を示したグラフである。
【0027】
以下の開示では、集積回路チップ上の実装に適した監視アーキテクチャを説明する。この集積回路チップは、SoCまたはマルチチップモジュール(MCM)であってよい。
【0028】
図1および図2は、例示的なシステムアーキテクチャおよび該システムアーキテクチャ内の部品の概略図である。これらの図面は、機能ブロックに関する構造を表している。当該技術分野でよく知られている機能を実行するための一部の機能ブロックは、これらの図面からはところどころで省かれている。図3および図6は、監視回路によって測定された統計データを分析する方法を描写するフローチャートである。各フローチャートは、そのフローチャートの方法が実行できる順序を表している。しかしながら、これらのフローチャートは、説明された方法が描写された順序で実行されることに限定することを意図したものではない。本方法のステップは、フローチャートに描写された順序に代わる順序で実行されてもよい。
【0029】
図1は、SoC100のための例示的な監視ネットワークの一般的な構造を示す。監視回路101は、システム回路102を監視するように配置される。例えば、安全上またはセキュリティ上の問題に関連するコアデバイスの不適切な動作を検出する目的のためになどである。
【0030】
図2は、SoCインターコネクト203を介して接続されたコアデバイス201,202を含む例示的なシステム回路を示す。これらのコアデバイス201a,201b,201cは、マスタデバイスである。コアデバイス202a,202b,202cは、スレーブデバイスである。図2上でマスタデバイスおよびスレーブデバイスのナンバリング1,2,…Nによって示されているように、任意の数のコアデバイスをシステム回路内に好適に統合することができる。SoCインターコネクト203は、SoCのための通信バックボーンを形成し、これを介してマスタデバイスおよびスレーブデバイスが相互に通信する。これらの通信は、双方向である。
【0031】
マスタデバイスは、ネットワーク内で読み出し/書き込み要求などのトラフィックを開始するものである。マスタデバイスの例には、DSP(デジタル信号プロセッサ)、ビデオプロセッサ、アプリケーションプロセッサ、CPU(中央演算処理装置)、GPU(グラフィックプロセッサユニット)などのプロセッサがある。任意のプログラマブルプロセッサが、マスタデバイスであってもよい。マスタデバイスの他の例には、1つの場所から別の場所にデータを移動するための従来のDMAなどのDMA(直接メモリアクセス)機能を有するもの、DMA機能を有する自律型コプロセッサ(暗号化エンジンなど)、およびDMA機能を有する周辺機器(イーサネットコントローラなど)がある。
【0032】
スレーブデバイスは、マスタデバイスのコマンドに応答するデバイスである。スレーブデバイスの例には、オンチップメモリ、オフチップメモリ(DRAMなど)用のメモリコントローラ、周辺ユニットなどがある。
【0033】
SoCインターコネクト203のトポロジーは、SoCに依存する。例えば、システム回路の周囲で通信を伝送するために、以下のタイプのネットワーク、すなわち、バスネットワーク、リングネットワーク、ツリーネットワーク、またはメッシュネットワークなどの任意の1つまたはそれらの組み合わせを含むことができる。
【0034】
監視回路101は、監視インターコネクト205を介してコミュニケータ206に接続された監視ユニット204a,204bを含んでいる。
【0035】
任意の数の監視ユニットを監視回路内に統合することができる。各監視ユニットは、マスタデバイスとスレーブデバイスとの間の通信リンクに接続されている。この接続は、例えば、マスタデバイスとSoCインターコネクトとの間のインターフェースにおいて、マスタデバイスとSoCインターコネクトとの間であってもよい。またこの接続は、例えば、スレーブデバイスとSoCインターコネクトとの間のインターフェースにおいて、SoCインターコネクトとスレーブデバイスとの間であってもよい。各監視ユニットは、単一の通信リンクに接続されてもよい。代替的に、監視回路101のうちの1つまたは複数の監視ユニットが、複数の通信リンクに接続されてもよい。監視ユニット204は、監視される通信リンク上の通信を監視することによって、コアデバイスの動作を監視する。任意選択的に、監視ユニットは、それらが監視されているコアデバイスの動作を操作することが可能であってもよい。
【0036】
コミュニケータ206は、オフチップのエンティティと通信するためのインターフェースであってよい。例えば、監視回路101は、コミュニケータ206を介してオフチップの分析器と通信することができる。コミュニケータ206は、付加的または代替的に、オンチップの他のエンティティと通信するように構成されてもよい。例えば、監視回路101は、コミュニケータ206を介してオンチップの分析器と通信することができる。図2は1つのコミュニケータ206を示しているが、任意の数のコミュニケータをSoC上に統合することができる。実装されるコミュニケータは、行われるべき接続のタイプに依存して選択される。例示的なコミュニケータには、JTAG、パラレルトレース入力/出力、およびオーロラベースの高速シリアルインターフェース、ならびにUSB、イーサネット、RS232、PCIeおよびCANなどのシステムインターフェースの再利用が含まれる。
【0037】
監視インターコネクト205のトポロジーは、監視回路の周囲で通信を伝送するための以下のタイプのネットワーク、すなわち、バスネットワーク、リングネットワーク、ツリーネットワーク、またはメッシュネットワークのうちの任意の1つまたはそれらの組み合わせを含むことができる。監視ユニット204とコミュニケータ206との間の通信リンクは、双方向である。
【0038】
上記で説明したように、図2の監視ユニット204は、マスタデバイス201とスレーブデバイス202との間の通信を監視する。これらの監視ユニットは、監視する通信から統計値を収集することができる。収集される統計値およびこれが行われる時間窓は、構成可能である。例えば、各監視ユニット204は、特定の通信パラメータを監視するように監視ユニットに命令するオンチップまたはオフチップ分析器から構成命令を受信することができる。分析器は、パラメータが監視される時間窓の窓長さを指定することもできる。また分析器は、収集したデータがいつ分析器に報告されるべきかを指定することもできる。典型的には、分析器は、収集されたデータが定期的に報告されるように要求する。
【0039】
したがって、監視ユニット204は、その接続された部品(マスタデバイス201またはスレーブデバイス202)の通信を、一連の監視される時間窓にわたって監視するように構成されてよい。監視される各時間窓の窓長さは、上記で説明したように、分析器によって指定されてもよい。監視される時間窓は、非重複的であってよい。例えば、監視される時間窓は、連続的であってもよい。代替的に、監視される時間窓は、重複的であってもよい。
【0040】
システム回路の1つまたは複数の部品を観察する監視ユニットによって生成される可能性のあるデータの例には、以下のものが含まれる。
-トレースデータ。生成されたトレースデータは、監視ユニットによって観察されたデータのコピーである可能性がある。例えば、CPUによって実行される命令シーケンスのコピー、またはバス上のトランザクションのセット。
-照合データ。監視ユニットは、特定のイベントの発生についてシステム回路を監視するように構成されてもよい。特定のイベントの識別に基づいて、監視ユニットは照合データを生成する。監視ユニットは、この照合データを分析器にすぐに出力してもよい。
-カウンタデータ。監視ユニットは、1つまたは複数のカウンタを含むことができる。各カウンタは、特定のイベントの発生をカウントするように構成されている。カウンタのカウント値は、周期的に解析器に出力されてもよい。
【0041】
監視ユニットによって生成された生データは、一連の時間窓の各窓について測定された特徴のセットに適切に変換される。測定された各特徴は、各窓についての値を有する。
【0042】
測定された特徴の例には、以下のものが含まれる。
-バスから捕捉された集約帯域幅。これは、読み取り動作用の集約帯域幅と、書き込み動作用の集約帯域幅とに別に分割されてもよい。
-バスから捕捉された読み取り動作からの最大待ち時間、最小待ち時間、および/または平均待ち時間。
-アドレス照合イベントの数。換言すれば、選択されたメモリ領域へのアクセスの数である。
-ソフトウェア実行トレースからの、それぞれ別個のスレッドにおける:(i)スレッド内で費やされた集約時間、および/または(ii)最小、最大、および/または平均のスレッド間隔時間、および/または(iii)スレッドスケジュールイベントの数、任意選択的に、どのスレッドから引き継いだかが特定される。
-ソフトウェア実行トレースからの、割り込みの数、および/または割り込みハンドラーで費やされた最小、最大、および/または平均の時間。
-CPU命令トレースからの、実行された命令の数、任意選択的に、分岐を含み得る命令クラスにグループ化される。
【0043】
測定された特徴への生データの変換は、当業者に周知の任意の方法によって行われてもよい。この変換は、オンチップの監視回路101によって実行されてもよい。代替的に、この変換は、オンチップまたはオフチップであってよい分析器によって実行されてもよい。監視ユニット204以外のソースから得られたデータは、測定された特徴の生成において監視ユニットにより生成された生データと組み合わせて使用されてもよい。測定された特徴が集約される時間窓は、1ms~1000msまでの長さを有し得る。測定された特徴が集約される時間窓は、10ms~100msまでの長さを有し得る。
【0044】
次いで、一連の時間窓内で測定された特徴が、異常であるこれらの測定された特徴のいずれかを識別する異常検出方法に入力されてもよい。この異常検出方法は、分析器によって実行される可能性がある。しかしながら、代替的に、この異常検出方法は、監視回路101によって実行されてもよい。
【0045】
第1の例では、異常検出は、既知の良好なシーケンスからトレーニングされたモデルを用いて実行される。この例では、モデルは、測定された特徴が異常ではないことがわかっている一連の時間窓の特性を捕捉する。モデルの構築には、各特徴についての特徴分布の構築が含まれる。例えば、分布の構築のためにカーネル密度推定器(KDE)が使用されてもよい。KDEは、フラットなゼロラインで開始され、一連の時間窓の各窓からの各特徴の値に対して小さなガウスカーネルが付加される。各特徴値は、分布に対して同量だけ寄与する。次いで、最終値がスケーリングされてもよい。この結果は、通常の特性を表す特徴の特定の値の可能性を示す特徴分布である。したがって、このモデルは、これらの特徴の通常の特性を表す特徴分布のセットを含む。
【0046】
次いで、後続のシーケンスは、モデルに対して比較することができる。後続のシーケンスは、測定された特徴が異常であるか異常ではないかがわかっていない一連の時間窓を含む。後続のシーケンスは、後続のシーケンスの個々の窓をモデルと比較することによって、モデルと比較されてもよい。このケースでは、個々の窓内の特徴の値に対応するモデル特徴分布の値が決定される。分布の値は、その特徴値が通常の特性である可能性が低いことを示すならば、その特徴は、個々の窓内で異常であると決定される。例えば、分布の値が、閾値を下回っているならば、その特徴は、個々の窓内で異常であると決定される。閾値は、異なる特徴について異なっていてもよい。
【0047】
これらの異常特徴は、電気信号としてユーザーに出力される(例えば、画面上の視覚信号として)。2つ以上の異常特徴が識別された場合、これらは出力信号においてランク付けされてもよい。異常特徴は、それらの値が閾値を下回る順でランク付けされてもよく、その場合、閾値を最も下回っている異常特徴は最初にランク付けされ、閾値に最も近いところでそれを下回っている異常特徴は最後にランク付けされる。
【0048】
後続のシーケンスは、最初に、後続のシーケンスの各特徴についての特徴分布を構築することによってモデルと比較されてもよい。例えば、このモデルの生成に関しては、上記で説明したようにKDEが各特徴分布の生成のために使用されてもよい。その場合、モデルの特徴分布と、各特徴についての後続のシーケンスの特徴分布との間の差分が取得される。ある特徴について、これらの2つの特徴分布の間の平均差分が閾値よりも大きい場合、後続のシーケンスにおけるその特徴に異常が含まれていることが決定される。
【0049】
これらの異常特徴は、電気信号としてユーザーに出力される(例えば、画面上の視覚信号として)。2つ以上の異常特徴が識別された場合、これらは出力信号においてランク付けされてもよい。異常特徴は、モデル特徴分布と後続のシーケンス特徴分布との間の平均差分の順にランク付けされてもよく、その場合、平均差分が最大の異常特徴は最初にランク付けされ、平均差分が最小の異常特徴は最後にランク付けされる。
【0050】
第2の例では、異常検出は、測定された特徴が異常ではないことがわかっている一連の時間窓の特性を利用することなく実行される。異常検出は、測定された特徴の一連の時間窓を含むシーケンス上で実行される。これらの測定された特徴は、異常であるか異常ではないかがわかっていない。この例は、シーケンスの各特徴についての特徴分布を構築することを含む。これは、第1の例に関して上記で説明したように、KDEを使用して実行することができる。各特徴についての特徴分布における最低値は、潜在的な異常として識別される。これらの潜在的に異常特徴は、電気信号としてユーザーに出力される(例えば、画面上の視覚信号として)。ユーザーは、識別された特徴を異常ではないと拒否するか、識別された特徴を異常として受け入れることができる。ユーザーは、他の特徴に手動で異常としてのフラグを立てることもできる。
【0051】
出力された異常特徴は、異常窓にグループ化されてもよい。これらの異常窓は、すべての特徴にわたってそれらの可能性の順にランク付けされてもよく、その場合、すべての特徴にわたって正常な特性を表す可能性が最も低い異常窓は最初にランク付けされ、すべての特徴にわたって正常な特性を表す可能性が最も高い異常窓は最後にランク付けされる。
【0052】
好適には、選択された異常検出方法の複数の反復が実行され、各反復は異なる時間窓長さを使用する。例えば、10ms~100msまでの時間窓長さの範囲が反復的に利用されてもよい。これは、特定の窓長さ内でさらに容易に観察される一時的な特性から結果として異常を識別可能にさせることができる。各反復内では、時間窓は、非重複的であってよい。例えば、時間窓は、連続的であってもよい。代替的に、時間窓は、重複的であってもよい。
【0053】
次に、図3を参照して、SoC上の部品のアクティビティにおける異常特徴の原因を識別するための方法を説明する。これらの異常特徴は、異常検出方法(上記で説明した方法の1つなど)を使用して識別されている。図3を参照して説明する本方法は、プロセッサにおいて実行される。好適には、このプロセッサは、分析器に配置されている。分析器は、SoC100上にあってよい。代替的に、分析器は、オフチップ部品であってもよい。プロセッサは、代替的に、SoCの監視回路101に配置されてもよい。
【0054】
プロセッサは、測定された特徴のシーケンスを入力として受信する。プロセッサは、また、入力として、それらの中で少なくとも1つの異常特徴を有するものとして識別された1つまたは複数の時間窓を受信する。異常特徴自体は、任意選択的に識別されてもよい。プロセッサは、これらの入力を、異常窓に先行する時間窓における異常特徴の考えられる原因を探索するために使用する。
【0055】
ステップ301では、プロセッサは、異常特徴の原因を探索するための候補窓セットjを選択する。各異常窓について、プロセッサは、候補窓セットjに追加する1つまたは複数の窓を選択する。各異常窓について、候補窓セットjに追加する窓は、異常窓と、測定された特徴のシーケンスにおける異常窓に先行する窓セットとから選択される。図4は、測定された特徴のシーケンス例を示している。異常窓は、401でラベル付けされている。この異常窓について、プロセッサが候補窓セットjに追加する窓が、402でラベル付けされた窓から選択される。この窓セット402は、(i)異常窓404と、(ii)遠位早期窓405とによって境界付けられている。遠位早期窓は、異常特徴についての原因が検索されるべき最も早期の窓である。図示を容易にするために、10個の窓のみが、異常窓401に先行して示されている。実際には、窓セット402は、1000個までの窓を含むことができる。例えば、窓セット402は、100個の窓を含むことができる。異常窓401に対する候補窓セットjに追加された窓Cjは、403でラベル付けされている。候補窓セットjに追加された窓Cjの長さは設定可能である。窓Cjの長さは、単一の窓のみであってもよい。代替的に、窓Cjの長さは、2つ以上の窓を含むことができる。窓Cjの長さは、10個までの窓を含むことができる。図4の例では、窓Cjの長さは、3つの窓、すなわち窓4,5および6を含むものとして示されている。プロセッサは、測定された特徴のシーケンスにおける各異常窓について、候補窓セットjに追加する窓Cjを選択する。例えば、この反復では、プロセッサは、各異常窓について候補窓セットjに3つの窓を追加することができ、これらの3つの窓は、異常窓から4~6つの窓を遡った連続する窓である。
【0056】
ステップ301に続いて、プロセッサは、ステップ302に移動する。ステップ302では、測定された特徴iについて、プロセッサは、候補窓セットjについて当該測定された特徴iの第1の特徴確率分布PD1を計算する。
【0057】
ステップ303では、プロセッサは、測定された各特徴iについて、候補窓セットj内ではなく、シーケンス内の窓について当該測定された特徴iの第2の特徴確率分布PD2を計算する。この第2の特徴確率分布PD2は、候補窓セットj内に含まれないすべての窓を含む窓セット402について計算されてもよい。
【0058】
ステップ302および303は、同時に実行されてもよい。代替的に、ステップ302は、図3に示されるように、ステップ303に先行することができる。代替的に、ステップ303は、ステップ302に先行することができる。
【0059】
第1および第2の特徴確率分布は、プロセッサによって、測定された特徴のシーケンスの識別された窓に上記で説明したKDE法を適用して計算されてもよい。代替的に、第1および第2の特徴確率分布は、プロセッサによって、測定された特徴のシーケンスの識別された窓にガウス混合モデルを適合させることによって計算されてもよい。異常窓より前に、さらなる異常が識別される窓は僅かな数しかないものと思われる。ガウス混合モデルは、KDEモデルよりも単純な分布を生成し、これは、より少ないデータ点でより効果的であるため、本明細書では優先させてもよい。代替的に、当該技術分野で公知の異なるモデルが、第1および第2の特徴確率分布の生成のために使用されてもよい。
【0060】
ステップ302および303において、第1および第2の特徴確率分布が計算されたならば、プロセッサは、これらの2つの分布をステップ304において比較する。分布間の大きな差分は、その特徴が、異常窓内で観察された異常に対する原因または誘因であることを示す。したがって、プロセッサは、第1および第2の特徴確率分布が閾値Vtを超えて異なっているかどうかを決定する。ステップ304において、第1および第2の特徴確率分布PD1およびPD2が、閾値Vtを超えて異なっている場合、プロセッサは、ステップ305に移動し、ここで、候補窓セットj内の特徴iを、異常窓内の異常特徴の原因として識別する。ステップ304において、第1および第2の特徴確率分布PD1およびPD2が閾値Vt未満で異なっている場合、プロセッサは、候補窓セットj内の特徴iを異常窓内の異常特徴の原因として識別しない。
【0061】
第1および第2の特徴確率分布が、閾値を超えて異なっているかどうかを評価するために、プロセッサは、2つの確率分布の間の差分測定値を決定することができる。この差分測定値は、単一の値である。当該単一の値は、確率分布間の平均差分を表すことができる。換言すれば、2つの分布内の各特徴値において観察された特徴の数の間の平均差分である。代替的に、当該単一の値は、確率分布間のすべての差分を表すことができる。換言すれば、2つの分布内の各特徴値において観察された特徴の数の間のすべての差分である。差分測定値は、当技術分野で公知の任意の方法によって計算されてもよい。次いで、この差分測定値|PD1-PD2|は、ステップ304において閾値Vtと比較される。
【0062】
次いで、プロセッサは、ステップ306に進む。このステップ306では、プロセッサは、候補窓セットjに関して、図3の方法がまだ適用されていない任意のさらなる測定された特徴が存在するかどうかを決定する。さらなる測定された特徴が存在するならば、プロセッサは、ステップ307に移動し、そこで次の測定された特徴が選択される。次いで、プロセッサは、候補窓セットjの次の測定された特徴について、ステップ302~306を繰り返す。ステップ306において、プロセッサは、さらなる測定された特徴が存在しないことを決定した場合、ステップ308に移動する。
【0063】
ステップ308では、プロセッサは、図3の方法がまだ適用されていない任意のさらなる候補窓セットが存在するかどうかを決定する。次の候補窓セットj+1は、候補窓セットjと重複していてもよい。例えば、次の候補窓セットj+1については、各異常窓について、プロセッサは、候補窓セットjに追加するために選択した窓に、候補窓セットj+1を追加するために、異なる窓を選択することができる。候補窓セットjと同様に、各異常窓について、候補窓セットj+1に追加された窓は、異常窓と、測定された特徴のシーケンス内で異常窓に先行する窓セットとから選択される。図4を参照すると、プロセッサが異常窓401について候補窓セットj+1に追加する窓Cj+1は、408でラベル付けされ、専ら窓5,6および7を含む。この例では、候補窓セットj+1の窓5および6が、候補窓セットjと重複している。代替的に、次の候補窓セットj+1は、候補窓セットjと重複しないが、それと隣接していてもよい。例えば、図4を参照すると、プロセッサが異常窓401について候補窓セットj+1に追加する窓Cj+1は、409でラベル付けされ、窓7,8および9を含む。この例では、候補窓セットj+1の窓と、異常窓401に関して選択された候補窓セットjとの重複は存在しない。一度反復が遠位早期窓405に到達すると、さらなる候補窓セットは存在しない。
【0064】
ステップ308において、さらなる候補窓セットが存在することが決定されると、プロセッサは、ステップ309に移動し、そこで、次の候補窓セットが選択される。次いで、プロセッサは、次の候補窓セットについて、ステップ302~308を繰り返す。ステップ308において、さらなる候補窓セットが存在しないことが決定された場合、プロセッサは、ステップ310に移動し、そこで、異常窓の異常特徴の識別された原因(もしあれば)を出力する。
【0065】
ステップ310では、異常特徴の原因は、電気信号としてユーザーに出力されてもよい(例えば、分析器の画面上の視覚信号として)。例えば、図5に示されるようなグラフが画面に出力されてもよい。図5のグラフは、複数のプロットを示している。各プロットは、(x軸上で)異常窓から時間的に遡った窓の数に対してプロットされた、(y軸上で)測定された特徴についての第1の特徴分布と第2の特徴分布との間のスケーリングされた差分測定値である。時間的に遡った窓の数は、異常窓に最も近い候補窓セットの窓として捉えてもよい。例えば、図4を見ると、候補窓セットjについての第1の特徴確率分布と第2の特徴確率分布との間のスケーリングされた差分測定値は、x軸上で時間的に3つ遡った窓にマークされることになる。
【0066】
差分測定値は、異なって測定された特徴間で一貫性がない。例えば、累積時間は、メモリ飽和度よりも一貫してさらに可変であってもよい。図5は、すべての測定された特徴の差異測定値を1つのグラフにプロットしているため、差分測定値は、比較できるようにスケーリングされている。したがって、差分測定値は、異なって測定された特徴についての相対的な測定値を提供する。例えば、差分測定値は、時間にわたるそれらの差分のパーセンタイルによってスケーリングされてもよい。例えば、差分測定値は、50パーセンタイルによってスケーリングされてもよい。
【0067】
異常窓からオフセットされた時間にわたってスケーリングされた差分測定値をプロットすることにより、異常特徴の原因である測定された特徴は、ユーザーに迅速に明らかになる。時間的に遡った特定の窓数で測定された特徴についてのスケーリングの大きな差分は、時間的に遡った当該窓数における当該測定された特徴において原因が発生する可能性が高いことを示す。
【0068】
図5のグラフは、ソフトウェアスレッドスイッチングデータに対して実行された図3の方法を示している。第1および第2の特徴確率分布は、それぞれガウス混合モデル(GMM)を使用して生成されたものである。候補窓セットは、単一の窓を有する。相対GMM分布差分は、差分測定値として使用されている。グラフは、異常窓に時間的に近いrtスレッドが異常特徴の原因であることを示唆している。これは、最大および最小のrt時間の測定された差分が、他の特徴の測定された差分よりも0~1の窓範囲で大幅に大きいことによって示される。
【0069】
図3を参照して説明された方法に対応する方法は、測定された特徴のシーケンスにおける異常窓の後の窓に適用されてもよい。この方法は、図6に示されており、これは、異常窓内の異常特徴によって影響を受けた後続の測定された特徴を識別するために使用することができる。図6の方法は、図3の方法を実行するのと同じプロセッサで実行される。
【0070】
図3のように、図6の方法について、プロセッサは、測定された特徴のシーケンス、およびそれらの中に少なくとも1つの異常特徴を有するものとして識別された1つまたは複数の時間窓を入力として受信する。プロセッサは、これらの入力を、異常特徴によって影響を受けた、異常窓の後の後続の時間窓における後続の特徴を探索するために使用する。
【0071】
ステップ601では、プロセッサは、異常特徴によって影響を受けた測定された特徴を探索するための後続の候補窓セットkを選択する。各異常窓について、プロセッサは、後続の候補窓セットkに追加する1つまたは複数の窓を選択する。各異常窓について、後続の候補窓セットkに追加する窓は、異常窓と、測定された特徴のシーケンスにおける異常窓に続く窓セットとから選択される。図7は、測定された特徴のシーケンス例を示している。異常窓は、401でラベル付けされている。この異常窓について、プロセッサが後続の候補窓セットjに追加する窓は、701でラベル付けされた窓から選択される。この窓セット701は、(i)異常窓702と、(ii)遠位後期窓703とによって境界付けられている。遠位後期窓703は、異常特徴の影響が探索されるべき最新の窓である。図示を容易にするために、10個の窓のみが、異常窓401の後に示されている。実際には、窓セット701は、1000個までの窓を含むことができる。例えば、窓セット701は、100個の窓を含むことができる。異常窓401に対する後続の候補窓セットkに追加された窓Ckは、704でラベル付けされている。後続の候補窓セットkに追加された窓Ckの長さは、構成可能である。窓Ckの長さは、単一の窓のみであってもよい。代替的に、窓Ckの長さは、2つ以上の窓を含むことができる。窓Ckの長さは、10個までの窓を含むことができる。図7の例では、窓Ckの長さは、3つの窓、すなわち窓5,6および7を含むものとして示されている。プロセッサは、測定された特徴のシーケンスにおける各異常窓について、後続の候補窓セットkに追加する窓Ckを選択する。例えば、この反復では、プロセッサは、各異常窓について候補窓セットkに3つの窓を追加することができ、これらの3つの窓は、異常窓から5~7つの窓を進んだ連続する窓である。
【0072】
ステップ601に続いて、プロセッサは、ステップ602に移動する。ステップ602では、測定された特徴Iについて、プロセッサは、後続の候補窓セットkについて当該測定された特徴Iの第3の特徴確率分布PD3を計算する。
【0073】
ステップ603では、プロセッサは、測定された各特徴Iについて、後続の候補窓セットk内ではなく、シーケンス内の窓について当該測定された特徴Iの第4の特徴確率分布PD4を計算する。この第4の特徴確率分布PD4は、後続の候補窓セットk704内に含まれないすべての窓を含む窓セット701について計算されてもよい。
【0074】
ステップ602および603は、同時に実行されてもよい。代替的に、ステップ602は、図3に示されるようにステップ603に先行することができる。代替的に、ステップ603は、ステップ602に先行することができる。
【0075】
第3および第4の特徴確率分布は、第1および第2の特徴確率分布に関して上記で説明した任意の方法を使用してプロセッサによって計算されてもよい。
【0076】
ステップ602および603において、第3および第4の特徴確率分布が計算されたならば、プロセッサは、これらの2つの分布をステップ604において比較する。分布間の大きな差分は、その特徴が、異常窓内で観察された異常によって影響を受けたことを示す。したがって、プロセッサは、第3および第4の特徴確率分布が閾値Vt’を超えて異なっているかどうかを決定する。ステップ604において、第3および第4の特徴確率分布PD3およびPD4が、閾値Vt’を超えて異なっている場合、プロセッサは、ステップ605に移動し、ここで、後続の候補窓セットk内の特徴Iを、異常窓内の異常特徴によって影響を受けたものとして識別する。ステップ604において、第3および第4の特徴確率分布PD3およびPD4が閾値Vt’未満で異なっている場合、プロセッサは、後続の候補窓セットk内の特徴Iを異常窓内の異常特徴によって影響を受けたものとして識別しない。
【0077】
第3および第4の特徴確率分布が、閾値を超えて異なっているかどうかを評価するために、プロセッサは、2つの確率分布の間の差分測定値を決定することができる。この差分測定値は、図3の第1および第2の特徴確率分布に関連して上記で説明したように計算されてもよい。
【0078】
次いで、プロセッサは、ステップ606に進む。このステップ606では、プロセッサは、後続の候補窓セットkに関して、図6の方法がまだ適用されていない任意のさらなる測定された特徴が存在するかどうかを決定する。さらなる測定された特徴が存在するならば、プロセッサは、ステップ607に移動し、そこで次の測定された特徴が選択される。次いで、プロセッサは、後続の候補窓セットkの次の測定された特徴について、ステップ602~606を繰り返す。ステップ606において、プロセッサは、さらなる測定された特徴が存在しないことを決定した場合、ステップ608に移動する。
【0079】
ステップ608では、プロセッサは、図6の方法がまだ適用されていない任意のさらなる後続の候補窓セットが存在するかどうかを決定する。次の後続の候補窓セットk+1は、後続の候補窓セットkと重複していてもよい。例えば、次の候補窓セットk+1については、各異常窓について、プロセッサは、後続の候補窓セットkに追加するために選択した窓に、後続の候補窓セットk+1を追加するために、異なる窓を選択することができる。後続の候補窓セットkと同様に、各異常窓について、後続の候補窓セットk+1に追加された窓は、異常窓と、測定された特徴のシーケンス内で異常窓の後の窓セットとから選択される。図7を参照すると、プロセッサが異常窓401について後続の候補窓セットk+1に追加する窓Ck+1は、707でラベル付けされ、専ら窓6、7、および8を含む。この例では、後続の候補窓セットk+1の窓6および7が、後続の候補窓セットkと重複している。代替的に、次の後続の候補窓セットk+1は、後続の候補窓セットkと重複しないが、それと隣接していてもよい。例えば、図7を参照すると、プロセッサが異常窓401について後続の候補窓セットk+1に追加する窓Ck+1は、708でラベル付けされ、窓8,9および10を含む。この例では、後続の候補窓セットk+1の窓と、異常窓401に関して選択された後続の候補窓セットkとの重複は存在しない。一度反復が遠位後期窓703に到達すると、さらなる後続の候補窓セットは存在しない。
【0080】
ステップ608において、さらなる後続の候補窓セットが存在することが決定されると、プロセッサは、ステップ609に移動し、そこで、次の後続の候補窓セットが選択される。次いで、プロセッサは、次の後続の候補窓セットについて、ステップ602~608を繰り返す。ステップ608において、さらなる後続の候補窓セットが存在しないことが決定された場合、プロセッサは、ステップ610に移動し、そこで、異常窓の異常特徴によって影響を受けたものとして識別された測定された特徴を出力する。
【0081】
ステップ610では、影響を受けた測定された特徴は、電気信号としてユーザーに出力されてもよい(例えば、分析器の画面上の視覚信号として)。例えば、図5に対応するグラフが出力されてもよく、これは、(x軸上で)異常窓から時間的に進んだ窓の数に対してプロットされた、(y軸上で)測定された特徴についての第3の特徴分布と第4の特徴分布との間のスケーリングされた差分測定値を示している。時間的に進んだ窓の数は、異常窓に最も近い後続の候補窓セットの窓として捉えてもよい。例えば、図7を見ると、後続の候補窓セットkについての第3の特徴確率分布と第4の特徴確率分布との間のスケーリングされた差分測定値は、x軸上で時間的に4つ進んだ窓にマークされることになる。差分測定値は、図3および図5を参照して説明したのと同じやり方でスケーリングされてもよい。
【0082】
図8は、図5のグラフを生成するために使用され測定された特徴の同じシーケンスである、測定された特徴の同じシーケンスに対して実行された図3および図6を参照して説明された両方の方法の結果を示すグラフである。これらの方法は、上述したように、別個に実行された可能性がある。代替的に、これらの方法は、異常窓の前後両方の窓を含む図3の候補窓セットを用いて、単一の方法として一緒に実行された可能性もある。図8のグラフにおいて、測定された特徴iは、測定された特徴Iと同じ特徴タイプである。候補窓セットjの長さは、後続の候補窓セットkの長さと同じである。図5と同様に、特徴確率分布は、すべてガウス混合モデルを使用して生成され、(後続の)候補窓セットは単一の窓を有する。図5と同様に、図8のグラフは、異常窓に時間的に近いrtスレッドが異常特徴の原因であることを示唆するものであり、これも、異常窓に続くrtスレッドが異常特徴によって影響を受けていることを示唆するものである。これは、最小のrt時間の測定された差分が、他の特徴の測定された差分よりも-1~1の窓範囲において大幅に大きいことによって示されている。
【0083】
図5および図8の両方は、単一の窓のみを有する(後続の)候補窓セットを使用して、図3および図6を参照して説明した方法を実行するプロセッサに関して生成されたものである。(後続の)候補窓セットにおける窓の数は、1より大きくてよい。これは、エラーが発生した正確な時点に対するこれらの方法の感度を低くする場合がある。図8の生成のために実装された方法は、2、3、5、および10の窓長さの(後続の)候補窓セットで繰り返され、これらの結果は、それぞれ図9a、図9b、図9c、および図9dに示されている。これらの図面は、rtスレッドが、2の窓長さの(後続の)候補窓セットに関して、原因および影響を受けた特徴として容易に識別可能であることを示す。rtスレッドおよび3および5の窓長さの(後続の)候補窓セットに関して、原因および影響を受けた特徴として識別可能であるが、図9dの10の窓長さの(後続の)候補窓セットを用いた場合には、(後続の)候補窓セットの特徴確率分布は、rtスレッドを原因および影響を受けた特徴として識別させるためには、(後続の)候補窓セット外の窓の特徴確率分布と類似しすぎである。
【0084】
図2に示されているようなICチップ上の監視回路は、膨大な量の監視データを生成することができる。本明細書で説明する方法は、システム回路から測定された異常特徴の原因、およびこの異常特徴によって影響を受けた後続の特徴を識別するためにそのデータを分析する手法を提供するものである。これらの方法は、システム回路がその機能を実行し続けるときにリアルタイムで実施することができる。代替的に、これらの方法は、後でオフラインで実施することができる。
【0085】
異常検出は、金融、商業、ビジネス、産業、および工学の市場における幅広い分野に適用可能である。本明細書に記載された方法の例示的な使用は、不正検出または侵入検出などのセキュリティ監視、安全監視、センサなどの産業用デバイスの予防的保守管理、および性能監視のためのものである。
【0086】
図1および図2に示されたSoCの各部品は、専用のハードウェアに実装されてもよい。代替的に、図1および図2に示されたSoCの部品は、ソフトウェアに実装されてもよい。一部の部品は、ソフトウェアに実装され、一方、他の部品は専用のハードウェアに実装されてもよい。
【0087】
説明したSoCは、好適には、コンピューティングベースのデバイス内に組み込まれる。コンピューティングベースのデバイスは、電子デバイスであってもよい。好適には、コンピューティングベースのデバイスは、本明細書に記載された方法を実施するためにデバイスの動作を制御するコンピュータ実行可能命令を処理するための1つ以上のプロセッサを含む。コンピュータ実行可能命令は、メモリなどの任意のコンピュータ可読媒体を使用して提供することができる。本明細書に記載された方法は、有形の記録媒体上の機械可読形態のソフトウェアによって実行されてよい。ソフトウェアは、本明細書に記載された方法を実施するために、コンピューティングベースデバイスで提供され得る。
【0088】
上記の説明では、システム回路および監視回路が同じSoC上に含まれているものとして説明している。代替的な実装では、システム回路および監視回路は、MCMの2つ以上の集積回路チップにまたがって含まれている。MCMでは、集積回路チップは、典型的にはインターポーザー基板上に積層されるかまたは隣接して配置される。一部のシステム回路が、MCMの1つの集積回路チップ上に配置され、他のシステム回路は、MCMの異なる集積回路チップ上に配置されてもよい。同様に、監視回路は、MCMの複数の集積回路チップにわたって分散させてもよい。したがって、SoCの文脈での上述した方法および装置は、MCMの文脈にも適用される。
【0089】
これにより出願人は、単独で、本明細書に記載された個々の各特徴および2つ以上のそのような特徴の任意の組み合わせを、そのような特徴もしくはそれらの組み合わせが、本明細書に開示された任意の問題を解決するかどうかにかかわらず、また請求の範囲に限定されることなく、そのような特徴もしくは組み合わせが、当業者に共通の一般的な知識に照らして本明細書全体に基づき実行できるような範囲で開示する。出願人は、本発明の態様が、任意のそのような個々の特徴もしくはそれらの組み合わせからなり得ることを示す。以上の説明から、当業者には、発明の範囲内で様々な変更を行ってよいことは明らかであろう。
図1
図2
図3
図4
図5
図6
図7
図8
図9a
図9b
図9c
図9d