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

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

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

<>
  • 特表-ハードウェアベースのセンサ分析 図1
  • 特表-ハードウェアベースのセンサ分析 図2
  • 特表-ハードウェアベースのセンサ分析 図3
  • 特表-ハードウェアベースのセンサ分析 図4
  • 特表-ハードウェアベースのセンサ分析 図5
  • 特表-ハードウェアベースのセンサ分析 図6
  • 特表-ハードウェアベースのセンサ分析 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-16
(54)【発明の名称】ハードウェアベースのセンサ分析
(51)【国際特許分類】
   G06F 11/07 20060101AFI20240808BHJP
【FI】
G06F11/07 160
G06F11/07 140H
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024513402
(86)(22)【出願日】2021-08-31
(85)【翻訳文提出日】2024-04-09
(86)【国際出願番号】 US2021048430
(87)【国際公開番号】W WO2023033804
(87)【国際公開日】2023-03-09
(81)【指定国・地域】
(71)【出願人】
【識別番号】520161964
【氏名又は名称】シーメンス インダストリー ソフトウェア インコーポレイテッド
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ガジンダー パネザー
(72)【発明者】
【氏名】マーチン ロンド
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA11
5B042JJ29
5B042KK01
5B042KK13
5B042MA05
5B042MA08
5B042MA19
5B042MC08
(57)【要約】
集積回路を使用してセンサからのメッセージを監視する方法が提供され、メッセージは、センサによって測定されたデータを含む。当該方法は、集積回路の相互接続回路から第1のメッセージを読み出すことであって、相互接続回路は、メッセージを処理するように構成された1つまたは複数のコア装置とセンサとを接続する、ことと、第1のメッセージに対する第1のハッシュ値を計算することと、第1のハッシュ値を、ハッシュストア内に格納されている1つまたは複数の以前のハッシュ値と比較することであって、それぞれの以前のハッシュ値は、第1のメッセージよりも前に相互接続回路から読み出されたメッセージに対応する、ことと、第1のハッシュ値とハッシュストア内に格納されている以前のハッシュ値のうちの少なくとも1つとの間の差が所定の閾値を上回っている場合に、是正処置を実施することとを含む。
【特許請求の範囲】
【請求項1】
集積回路を使用してセンサからのメッセージを監視する方法であって、
前記メッセージは、前記センサによって測定されたデータを含み、
当該方法は、
前記集積回路の相互接続回路から第1のメッセージを読み出すことであって、前記相互接続回路は、前記第1のメッセージを処理するように構成された1つまたは複数のコア装置と前記センサとを接続する、ことと、
前記第1のメッセージに対する第1のハッシュ値を計算することと、
前記第1のハッシュ値を、ハッシュストア内に格納されている1つまたは複数の以前のハッシュ値と比較することであって、それぞれの以前のハッシュ値は、前記第1のメッセージよりも前に前記相互接続回路から読み出されたメッセージに対応する、ことと、
前記第1のハッシュ値と前記ハッシュストア内に格納されている前記以前のハッシュ値のうちの少なくとも1つとの間の差が所定の閾値を上回っている場合に、是正処置を実施することと、
を含む、
方法。
【請求項2】
当該方法は、前記第1のハッシュ値を前記ハッシュストア内に格納することをさらに含む、請求項1記載の方法。
【請求項3】
前記第1のハッシュ値は、当該第1のハッシュ値が前記以前のハッシュ値と比較されると同時に、前記ハッシュストア内に格納される、請求項2記載の方法。
【請求項4】
当該方法は、前記第1のメッセージが前記1つまたは複数のコア装置によって読み出される前に、前記第1のメッセージをバッファすることをさらに含む、請求項1から3までのいずれか1項記載の方法。
【請求項5】
前記バッファのサイズは、前記第1のハッシュ値を含んでいるデータハッシュを計算するために使用されるデータ値の個数に対応する、請求項4記載の方法。
【請求項6】
前記第1のハッシュ値を、M個の以前のハッシュ値と比較することと、
前記第1のハッシュ値とP個の以前のハッシュ値との間の差が前記所定の閾値を上回っている場合に、是正処置を実施することと
をさらに含み、ただし、1<P<Mである、
請求項1から5までのいずれか1項記載の方法。
【請求項7】
前記第1のハッシュ値と前記P個の以前のハッシュ値のそれぞれの値との間の差が前記所定の閾値を上回っているような前記P個の以前のハッシュ値に対応する信頼値を導出することをさらに含む、請求項6記載の方法。
【請求項8】
Mは、動的に設定変更可能である、請求項6記載の方法。
【請求項9】
前記第1のハッシュ値が、前記ハッシュストア内に格納されている前記以前のハッシュ値のうちの少なくとも1つと同じでない場合に、是正処置が実施される、請求項1から8までのいずれか1項記載の方法。
【請求項10】
前記第1のメッセージに対する複数のハッシュ値を計算することであって、前記複数のハッシュ値のそれぞれのハッシュ値は、前記第1のメッセージの一部分を表す、ことをさらに含み、
前記第1のメッセージに対する前記複数のハッシュ値のそれぞれのハッシュ値は、前記第1のメッセージの前記部分に対応する1つまたは複数の以前のハッシュ値と比較される、
請求項1から9までのいずれか1項記載の方法。
【請求項11】
前記第1のメッセージに対して計算された前記複数のハッシュ値は、前記第1のメッセージのうちの重複している部分を表す、請求項10記載の方法。
【請求項12】
前記第1のメッセージに対して計算された前記複数のハッシュ値は、前記第1のメッセージのうちの重複していない部分を表す、請求項10記載の方法。
【請求項13】
前記是正処置は、
前記センサデータが信頼できないものであることをユーザに通知することと、
前記センサから取得されたデータに依存している前記集積回路のコンポーネントを作動停止させることと、
前記センサを修復するように構成されたメカニズムを作動させることと、
のうちの1つまたは複数である、
請求項1から12までのいずれか1項記載の方法。
【請求項14】
前記是正処置は、前記集積回路の別のコンポーネントに警告信号を出力することを含む、請求項1から13までのいずれか1項記載の方法。
【請求項15】
前記是正処置は、
ハードウェアイベントを出力すること、
割り込み信号を出力すること、または
外部コア装置にメッセージを出力すること、
を含む、請求項1から14までのいずれか1項記載の方法。
【請求項16】
前記センサは、画像センサであり、
前記相互接続回路から読み出されたそれぞれのメッセージは、前記画像センサによって捕捉されたフレームの少なくとも一部分である、
請求項1から15までのいずれか1項記載の方法。
【請求項17】
前記センサは、画像センサであり、
前記相互接続回路から読み出されたそれぞれのメッセージは、前記画像センサによって捕捉されたフレームである、
請求項1から15までのいずれか1項記載の方法。
【請求項18】
前記集積回路は、システム・オン・チップである、請求項1から17までのいずれか1項記載の方法。
【請求項19】
前記相互接続回路は、データバスである、請求項1から18までのいずれか1項記載の方法。
【請求項20】
センサからのメッセージを監視するための集積回路チップであって、
前記メッセージは、前記センサによって測定されたデータを含み、
前記集積回路チップは、
第1のメッセージを処理するように構成されたコア装置と前記センサとを接続する相互接続回路と、
前記相互接続回路から前記第1のメッセージを読み出すように構成された監視装置と、
複数の以前のハッシュ値を格納するためのハッシュストアであって、それぞれのハッシュ値は、前記第1のメッセージよりも前に前記相互接続回路から読み出されたメッセージに対応する、ハッシュストアと、
前記第1のメッセージに対する第1のハッシュ値を計算し、前記第1のハッシュ値を、前記ハッシュストア内に格納されている前記以前のハッシュ値のうちの1つまたは複数と比較するように構成された装置と、
を含み、
前記集積回路は、前記第1のハッシュ値と前記ハッシュストア内に格納されている前記以前のハッシュ値のうちの少なくとも1つとの間の差が所定の閾値を上回っている場合に、是正処置を実施するように構成されている、
集積回路チップ。
【請求項21】
前記装置は、プロセッサまたは一連の有限状態機械である、請求項20記載の集積回路チップ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、SoC(システム・オン・チップ)またはMCM(マルチチップ・モジュール)内の監視回路を使用してセンサからのメッセージを監視することに関する。
【0002】
背景
センサによって記録されたデータメッセージを監視するために、集積回路チップを使用することができる。記録されたデータメッセージを使用してセンサの障害を検出することができ、センサの障害が生じると、結果的にセンサは、自身が記録したメッセージを全体的または部分的にリフレッシュすることが不可能となる。このようなセンサの障害が生じると、結果的に、そのセンサが実装されているシステム内で発生している問題を記録することが不可能となる。公知の集積回路チップ装置においてセンサの障害を検出するために、センサによって記録されたデータメッセージは、まず始めにこのメッセージを、集積回路チップに接続されているメモリに書き込むことによって監視される。メッセージがメモリに書き込まれると、次いで、それらのメッセージをメモリから読み出して、チップ上の1つまたは複数の処理モジュール内に含まれているソフトウェアによって処理することが可能となる。
【0003】
システム内で発生している問題を示すために使用することができるセンサの一例は、カメラのような画像センサである。センサが画像センサである場合、そのセンサによって記録されたそれぞれのデータメッセージは、例えば、所与の時間窓において捕捉される画像フレーム、またはピクセルのライン、または画像フレームの他の細区分である。問題が発生しているかどうかを判定するために、後続の時間窓にわたって捕捉された画像フレームが監視ソフトウェアによって比較される。センサによって経時的に記録された画像フレーム同士における小さな差を、センサによって監視されているエンティティにおける障害を示すために使用することができる。
【0004】
データメッセージを監視ソフトウェアによって処理することができるようになる前に、集積回路チップがそれらのメッセージをメモリ内に格納する必要があるということは、センサによって監視されているシステムの障害の検出において顕著な時間遅延をもたらす。センサが実装されているシステム内の問題を識別して、これらの問題に対する応答を最小限の時間遅延で実施することができるようにするために、センサデータに大きく依存している実装形態にとって、このことは問題である。例えば、センサが画像センサである場合には、センサは、今後の外部オブジェクトを認識し、それらのオブジェクトの接近に対する応答をトリガすることが要求される可能性がある。
【0005】
そのようなシステムを使用して、監視されているエンティティ内における、危機的な状況を示す可能性のある変化を監視することができることも望ましいだろう。例えば、原子炉を監視する場合には、炉構造の完全性は、その安全性を保証する上で重要であり、したがって、炉構造の変形がいつ起こるかを把握することは、絶対に不可欠である。もしこのような障害が、公知の集積回路チップ装置におけるセンサを使用して検出されたとしたら、センサによって記録されるであろうデータメッセージは、上述の問題と同じような時間遅延の問題に苛まれるであろう。このことは、任意の通知の適時性によって是正処置を取ることができるかどうかの違いが生まれる可能性のあるイベントが、不十分に監視されてしまう可能性があるか、または最悪のケースでは、全体として見逃されてしまう可能性があるという付加的な問題につながるだろう。
【0006】
特に、タイムクリティカルな変化が生じているかどうかについてエンティティを検査する場合には、センサによって記録されたデータメッセージを監視するためにかかる時間を短縮することが必要である。
【0007】
概要
第1の態様によれば、集積回路を使用してセンサからのメッセージを監視する方法が提供され、メッセージは、このセンサによって測定されたデータを含む。本方法は、集積回路の相互接続回路から第1のメッセージを読み出すことであって、相互接続回路は、メッセージを処理するように構成された1つまたは複数のコア装置とセンサとを接続する、ことと、第1のメッセージに対する第1のハッシュ値を計算することと、第1のハッシュ値を、ハッシュストア内に格納されている1つまたは複数の以前のハッシュ値と比較することであって、それぞれの以前のハッシュ値は、第1のメッセージよりも前に相互接続回路から読み出されたメッセージに対応する、ことと、第1のハッシュ値とハッシュストア内に格納されている以前のハッシュ値のうちの少なくとも1つとの間の差が所定の閾値を上回っている場合に、是正処置を実施することとを含む。
【0008】
問題を観察するプロセスと、データを処理するプロセスと、問題が観察されたことを通知するプロセスとが、集積回路の処理能力に基づいてナノ秒の時間スケール内で実施され、したがって、ハッシュ値におけるあらゆる差を所定の閾値と比較することにより、本方法を利用して、エンティティをリアルタイムで観察されるように設計されたシステムからのメッセージを監視することが可能となり、また、このようなタイムクリティカルなエンティティにおいて変化が発生した場合には効果的に警告を発することが可能となる。
【0009】
本方法は、第1のハッシュ値をハッシュストア内に格納することをさらに含むことができる。第1のハッシュ値は、当該第1のハッシュ値が以前のハッシュ値と比較されると同時に、ハッシュストア内に格納可能である。
【0010】
本方法は、第1のメッセージが1つまたは複数のコア装置によって読み出される前に、第1のメッセージをバッファすることをさらに含むことができる。バッファのサイズは、第1のハッシュ値を含んでいるデータハッシュを計算するために使用されるデータ値の個数に対応することができる。
【0011】
本方法は、第1のハッシュ値を、M個の以前のハッシュ値と比較することと、第1のハッシュ値とP個の以前のハッシュ値との間の差が所定の閾値を上回っている場合に、是正処置を実施することとをさらに含むことができ、ただし、1<P<Mである。これが実施される場合、本方法は、第1のハッシュ値とP個の以前のハッシュ値のそれぞれの値との間の差が所定の閾値を上回っているようなP個の以前のハッシュ値に対応する信頼値を導出することをさらに含むことができる。Mは、動的に設定変更可能であってよい。
【0012】
第1のハッシュ値が、ハッシュストア内に格納されている以前のハッシュ値のうちの少なくとも1つと同じでない場合に、是正処置を実施することができる。
【0013】
本方法は、第1のメッセージに対する複数のハッシュ値を計算することであって、複数のハッシュ値のそれぞれのハッシュ値は、第1のメッセージの一部分を表す、ことをさらに含むことができ、第1のメッセージに対する複数のハッシュ値のそれぞれのハッシュ値は、第1のメッセージの部分に対応する1つまたは複数の以前のハッシュ値と比較される。第1のメッセージに対して計算された複数のハッシュ値は、第1のメッセージのうちの重複している部分を表すことができる。択一的に、第1のメッセージに対して計算された複数のハッシュ値は、第1のメッセージのうちの重複していない部分を表してもよい。
【0014】
是正処置は、センサデータが信頼できないものであることをユーザに通知することと、センサから取得されたデータに依存している集積回路のコンポーネントを作動停止させることと、センサを修復するように構成されたメカニズムを作動させることとのうちの1つまたは複数であってよい。
【0015】
是正処置は、集積回路の別のコンポーネントに警告信号を出力することを含むことができる。
【0016】
是正処置は、ハードウェアイベントを出力すること、割り込み信号を出力すること、または外部コア装置にメッセージを出力することを含むことができる。
【0017】
センサは、画像センサであってよく、相互接続回路から読み出されたそれぞれのメッセージは、画像センサによって捕捉されたフレームの少なくとも一部分であってよい。
【0018】
センサは、画像センサであってよく、相互接続回路から読み出されたそれぞれのメッセージは、画像センサによって捕捉されたフレームであってよい。
【0019】
集積回路は、システム・オン・チップであってよい。相互接続回路は、データバスであってよい。
【0020】
第2の態様では、センサからのメッセージを監視するための集積回路チップが提供され、メッセージは、このセンサによって測定されたデータを含む。集積回路チップは、メッセージを処理するように構成されたコア装置とセンサとを接続する相互接続回路と、相互接続回路から第1のメッセージを読み出すように構成された監視装置と、複数の以前のハッシュ値を格納するためのハッシュストアであって、それぞれのハッシュ値は、第1のメッセージよりも前に相互接続回路から読み出されたメッセージに対応する、ハッシュストアと、第1のメッセージに対する第1のハッシュ値を計算し、第1のハッシュ値を、ハッシュストア内に格納されている以前のハッシュ値のうちの1つまたは複数と比較するように構成された装置とを含む。集積回路は、第1のハッシュ値とハッシュストア内に格納されている以前のハッシュ値のうちの少なくとも1つとの間の差が所定の閾値を上回っている場合に、是正処置を実施するように構成されている。
【0021】
本装置は、プロセッサまたは一連の有限状態機械であってよい。
【0022】
以下では、本開示を、添付の図面を参照しながら例として説明する。
【図面の簡単な説明】
【0023】
図1】例示的な集積回路チップ装置の概略図である。
図2】集積回路チップ装置を使用してデータメッセージを監視するための例示的なシステムの概略図である。
図3図2に示されている集積回路チップ装置の監視装置の詳細な実施形態を示す図である。
図4】集積回路チップ装置を使用してデータメッセージを監視するための択一的かつ例示的なシステムの概略図である。
図5図2または図4に示されている集積回路チップ装置を使用してセンサからのメッセージを監視する例示的な方法のフローチャートである。
図6図2または図4に示されている集積回路チップ装置を使用してセンサからのメッセージを監視する択一的かつ例示的な方法のフローチャートである。
図7】一実施形態の例示的な実装形態の概略図である。
【0024】
詳細な説明
図1図4は、例示的なシステムアーキテクチャと、システムアーキテクチャ内のコンポーネントとの概略図である。これらの図面は、機能ブロックの観点から構造を提示する。当分野で周知の機能を実施するためのいくつかの機能ブロックは、これらの図面から所々省略されている。図5および図6は、図1図4のシステムアーキテクチャを使用してセンサメッセージを監視する方法を示すフローチャートである。それぞれのフローチャートは、そのフローチャートの方法を実施することができる順序を示す。しかしながら、これらのフローチャートは、記載されている方法を、図示されている順序で実装することに制限することを意図したものではない。方法のステップを、フローチャートに示されている順序に代わる順序で実施してもよい。
【0025】
図1は、SoC100のための例示的な監視ネットワークの一般的な構造を示す。監視回路104は、システム回路102を監視するように配置されている。
【0026】
図2は、センサ202から受信したデータメッセージを監視するためのSoC200のような、集積回路チップ100を含んでいる例示的なシステム200を示す。メッセージは、センサによって記録された1つまたは複数の別個のデータ値を含んでいるので、データメッセージと称される。センサ202は、データを定期的に記録することができる任意の種類のセンサであってよい。すなわち、センサ202は、データを継続的に、または定期的な時間窓において周期的に記録することができる。それぞれの時間窓は、別様では、集積回路チップのクロックサイクルの数と称されることもある。一例では、センサ202は、カメラのような画像センサであり、センサによって記録されたそれぞれのデータメッセージは、画像フレームである。
【0027】
センサ202と同様に、SoC100は、メモリ204にも接続されている。したがって、センサ202は、SoC100によってメモリ204に接続されている。図2では、メモリ204は、外部メモリである。外部メモリは、SoC100内に含まれていないメモリである。択一的な例では、メモリ204を内部メモリとすることができ、したがって、SoC100内に含めることができる。メモリ204は、センサ202によって記録されてSoC100を介してメモリ204に送信されたデータメッセージを格納するように構成されている。
【0028】
図1と同様に、図2のSoCも、システム回路102および監視回路104を含む。システム回路102は、相互接続回路206と、1つまたは複数のコア装置208,210,212とを含む。相互接続回路206は、センサ202およびメモリ204をコア装置208,210,212に接続すると共に、コア装置208,210,212同士も互いに接続する。したがって、相互接続回路206は、センサ202と、メモリ204と、コア装置208,210,212との間のデータの転送を可能にする。一例では、コア装置208,210,212は、マスタ装置である。択一的な例では、コア装置208,210,212は、マスタ装置とスレーブ装置との組み合わせである。コア装置208,210,212のうちの1つまたは複数は、センサ202から受信したデータメッセージを処理するように構成されている。データの処理を可能にするために、1つまたは複数のコア装置208,210,212は、適切なシステムソフトウェアを含む。図2ではSoCが3つのコア装置を含むものとして図示されているが、任意の個数のコア装置をシステム回路に適切に組み込むことができる。SoC相互接続部は、SoCのための通信バックボーンを形成し、この通信バックボーンを介してコア装置同士は、互いに通信することができる。これらの通信は、双方向である。
【0029】
マスタ装置は、ネットワークにおける読み出し/書き込み要求のようなトラフィックを開始する装置である。マスタ装置の例は、DSP(デジタル信号プロセッサ)、ビデオプロセッサ、アプリケーションプロセッサ、CPU(中央処理装置)、GPU(画像処理装置)のようなプロセッサである。任意のプログラミング可能なプロセッサは、マスタ装置であってよい。マスタ装置の他の例は、1つの場所から他の場所にデータを移動させるための従来のDMAのような、DMA(ダイレクトメモリアクセス)能力を有する装置、DMA能力を有する自律的なコプロセッサ(暗号化エンジンなど)、およびDMA能力を有する周辺機器(イーサネットコントローラなど)である。
【0030】
スレーブ装置は、マスタ装置のコマンドに応答する装置である。スレーブ装置の例は、オンチップメモリ、オフチップメモリ(DRAMなど)のためのメモリコントローラ、および周辺ユニットである。
【0031】
相互接続回路206のトポロジは、SoCに依存している。例えば、相互接続回路206のトポロジは、システム回路の周囲の通信を伝達するための以下の種類のネットワーク、すなわちバスネットワーク、リングネットワーク、ツリーネットワーク、またはメッシュネットワークのうちのいずれか1つまたは組み合わせを含むことができる。一例では、相互接続回路は、データバスである。
【0032】
上述したように、システム回路102のコア装置208,210,212は、センサ202によって記録されたデータメッセージを処理するように構成されている。コア装置208,210,212は、適切なシステムソフトウェアを使用してこのデータ処理を実施する。データメッセージを処理するために、データメッセージは、まず始めにメモリ204に書き込まれる。すなわち、データメッセージがメモリ204に書き込まれると、それらのデータメッセージを、1つまたは複数のコア装置208,210,212によって処理のために読み出すことが可能となる。1つまたは複数のコア装置208,210,212内に含まれているソフトウェアによって、新たに取得されたデータ値を、メモリ204内に格納されている以前のデータ値と比較することにより、データを処理することができる。一例では、連続するデータメッセージから取得されたデータ値同士の間の不類似性は、センサ202が監視しているエンティティにおける変化の発生を示す。すなわち、センサ202は、複数の相異なるデータ値を記録する場合があり、その場合には、センサが実装されているシステムにおける状況が変化している。センサ202が画像センサである例では、センサによって記録された複数の相異なるデータ値の検出は、エンティティにおいて今発生している変化を、画像センサが監視しているということを示すことができる。センサが、記録しているメッセージを全く同様にはリフレッシュせず、例えば、記録された画像フレームの全てまたはその一部分が、同一ではなくなり、その代わりにセンサが、先行するメッセージとは異なるメッセージを記録する可能性がある。このことは、監視されているエンティティ内における、危機的な状況を示す可能性のある変化を示す。例えば、原子炉を監視する場合には、炉構造の完全性は、その安全性を保証する上で重要であり、したがって、炉構造の変形がいつ起こるかを把握することは、絶対に不可欠である。
【0033】
センサ202によって記録されたデータメッセージを処理するためにシステム回路102を使用することの欠点は、結果的に、センサからのメッセージにおける変化から、監視されているエンティティにおける変化の検出までの顕著な時間遅延がもたらされることである。すなわち、センサデータは、コア装置208,210,212内に含まれているソフトウェアによって読み出して処理することができるようになる前に、メモリ204内に書き込まれなければならない。データメッセージを格納および処理するためにかかる時間は、数十ミリ秒~数百ミリ秒のオーダーになる可能性がある。この時間は、いくつかの組み込みシステムにとっては遅すぎであり、このことにより、実装されるべきエンティティにおける変化に対して反応するための適切な時間量を可能にするための、より迅速な障害検出メカニズムが必要とされる。
【0034】
センサ202によって記録されたデータメッセージを監視するより迅速な方法を提供するために、監視回路104は、1つまたは複数の監視装置214,216,218を含む。監視装置214,216,218は、相互接続回路206に接続されている。監視装置214,216,218は、相互接続回路206からデータメッセージを非侵入的に読み出すように構成されている。相互接続回路206からのデータメッセージは、これらのデータメッセージがメモリ204に到達する前に、センサ202によって相互接続回路206を介して送信されたメッセージである。これらのデータメッセージは、相互接続回路206から抽出されることなく、コア装置208,210,212によって読み出される。コア装置208,210,212によって使用されるシステムソフトウェアの代わりに、監視装置214,216,218は、ハードウェアコンポーネントの装置を使用してデータメッセージを読み出し、続いて処理するように構成されている。
【0035】
監視装置214,216,218は、センサ202によって送信されたデータメッセージのみを選択的に読み出すように構成可能である。すなわち、監視装置214,216,218は、相互接続回路206を介して送信された、センサからのデータメッセージではないメッセージを、そのようなメッセージが存在する場合には全てフィルタリングして除外するように構成可能である。監視装置214,216,218はさらに、如何なるソフトウェアの介入もなしに、これらのデータメッセージを自律的に読み出すように構成されている。一例では、相互接続回路206を介して送信されるメッセージには、これらのメッセージの送信元であるモジュールを識別するフラグを付随させることができる。監視装置214,216,218は、この識別フラグを観察することにより、センサ202によって送信されたデータメッセージではないメッセージをフィルタリングして除外するように構成可能である。換言すれば、監視装置214,216,218は、センサ202をデータメッセージの送信元のモジュールであるとして識別するフラグが含まれているデータメッセージのみを選択的に読み出すことができる。別の例では、相互接続回路206を介して送信されるメッセージには、これらのメッセージの書き込み先であるモジュールを示すフラグが付随する。したがって、監視装置214,216,218は、データメッセージの書き込み先となるメモリ204内のアドレスを識別するフラグが含まれているデータメッセージのみを選択的に読み出すことができる。
【0036】
図2ではSoCが3つの監視装置を含むものとして図示されているが、任意の個数の監視装置を集積回路チップ100に適切に組み込むことができる。それぞれの監視装置214,216,218を、単一の通信リンクによって相互接続回路206に接続することができる。択一的に、1つまたは複数の装置ユニット214,216,218を、複数の通信リンクに接続してもよい。監視装置214,216,218はさらに、相互接続回路206から読み出されたデータメッセージを監視し、センサ202が監視しているエンティティにおける変化を示すデータ値を、これらのメッセージが含んでいるかどうかを判定するように構成されている。
【0037】
相互接続回路206に加えて、監視装置214,216,218は、出力モジュール220にも接続されている。エンティティにおける変化をセンサが検出したことを、データメッセージ内に含まれているデータ値が示しているということを1つまたは複数の監視装置214,216,218が判定した場合に、出力モジュール220は、是正処置を実施するように構成されている。すなわち、エンティティにおける変化をセンサが検出したことを、データメッセージ内に含まれているデータ値が示しているということを監視装置214,216,218が判定した場合に、監視装置214,216,218は、出力モジュール220に是正処置を実施するように命令するように構成されている。図2では、システムは、1つの出力モジュール220を含んでいるが、回路は、任意の個数の出力モジュール220を含むことができる。図2の出力モジュール220は、集積回路チップ100の外部にあるものとして図示されているが、択一的に、出力モジュール220は、集積回路チップ内に含まれていてもよい。回路が2つ以上の出力モジュール220を含んでいる場合には、それぞれの出力モジュールは、読み出されたデータがエンティティにおける変化を示しているという1つまたは複数の監視装置214,216,218からの判定に応答して、それぞれ異なる是正処置を実施するように構成可能である。
【0038】
図3は、図1および図2に示されている集積回路チップの監視装置214の詳細な実施形態である。監視装置214は、ハードウェアコンポーネントの装置を使用して、如何なるシステムソフトウェアの介入もなしに、相互接続回路206からデータメッセージを読み出して監視することができる。これらのハードウェアコンポーネントは、データストア304および通信器306の両方に接続されているプロセッサ302を含む。
【0039】
監視装置214のプロセッサ302は、相互接続回路102から受信した第1のメッセージに対する第1のハッシュ値を計算するように構成されている。ハッシュストア304は、複数の以前のハッシュ値を格納するように構成されたメモリストレージであり、それぞれの格納されているハッシュ値は、第1のメッセージよりも前に相互接続回路から読み出されたメッセージに対応する。プロセッサ302はさらに、第1のメッセージに対して計算された少なくとも1つのハッシュ値を、ハッシュストア304内に格納されている以前のハッシュ値のうちの1つまたは複数と比較するように構成されている。第1のハッシュ値とハッシュストア内に格納されている以前のハッシュ値のうちの少なくとも1つとの間の差がプロセッサ302によって識別された所定の閾値を下回っているということをプロセッサ302が判定した場合には、プロセッサは、通信器306に信号を出力する。この信号を受信すると、通信器306は、次いで、集積回路に接続されている出力モジュール220に是正処置を実施するように命令するように構成されている。
【0040】
この実施形態では、監視装置214のプロセッサ302はさらに、ハッシュ計算器310に接続されているデータバッファ308を含む。データバッファ308に加えて、ハッシュ計算器310は、現在ハッシュ選択器312および比較器314の両方にも接続されている。現在ハッシュ選択器312および比較器314の両方が、ハッシュストア304に接続されている。比較器314はさらに、通信器306に接続されている。択一的に、本開示は、複数の有限状態機械に包囲または結合されているDNAマシンのような、適切なハードウェアにおいて完全に実装可能である。例えば、有限状態機械は、以下のステップ、すなわち画像データの取得、ハッシュ値の計算、メモリからのハッシュ値の取得、ハッシュ値の比較、相違している場合におけるトリガイベントの出力を実施するように構成可能である。例えば、SDL状態機械を使用してもよい。有限状態機械は、プログラマブルロジック装置、プログラマブルロジックコントローラ、ロジックゲート、およびフリップフロップ、またはリレーを含むことができる。
【0041】
データバッファ308は、相互接続回路206から読み出されたデータメッセージを受信し、これらの受信したデータメッセージを短期間にわたって格納するように構成されている。次いで、データバッファ308は、受信したデータメッセージをハッシュ計算器310に転送する。上記で概説したように、データバッファ308によって受信される第1のデータメッセージは、集積回路チップ100に接続されているメモリ204によって受信されてメモリ204に書き込まれる前に、相互接続回路206から読み出されたデータメッセージである。したがって、データバッファ308は、データメッセージが1つまたは複数のコア装置208,210,212によってメモリ204から読み出される前に、第1のデータメッセージを受信する。
【0042】
データバッファ308は、所定のサイズであってよい。一例では、データバッファ308のサイズは、そのバッファによって受信されるデータメッセージのサイズと同じである。換言すれば、データバッファ308のサイズは、そのバッファによって受信される第1のメッセージのサイズと同じである。したがって、データバッファ308は、1つのクロックサイクルにおいて記録されたデータメッセージのみを格納するように構成されている。択一的な例では、データバッファ308のサイズは、第1のデータメッセージ内に含まれているデータ値の部分集合のみのサイズである。この択一的な例では、バッファのサイズは、ハッシュ計算器310によって計算されるハッシュのサイズに対応する。したがって、データバッファ308は、任意の1つのクロックサイクルにおいて1つのデータメッセージ内に含まれているデータ値の部分集合のみを格納するように構成されている。ハッシュサイズについては以下でさらに詳細に説明する。
【0043】
ハッシュ計算器310は、データバッファ308から受信したそれぞれのデータメッセージに対して1つまたは複数のデータハッシュまたはハッシュ値を計算するように構成されている。それぞれのデータハッシュは、そのハッシュを計算するために使用されるメッセージからのデータ値を表すハッシュ値を含む。データバッファ308から受信されるそれぞれのデータメッセージが、1つまたは複数の別個のデータ値を含んでいることは上述した。したがって、それぞれのデータメッセージは、複数のデータ値を含むことができる。一例では、ハッシュ計算器310は、受信したデータメッセージの全てのデータ値に対して1つのデータハッシュを計算するように構成されている。択一的な例では、ハッシュ計算器310は、それぞれの受信したデータメッセージに対して複数のデータハッシュを計算するように構成されている。この択一的な例では、第1のデータメッセージに対して、そのデータメッセージのデータ値の部分集合に対して、それぞれのハッシュ値が計算される。部分集合は、第1のデータメッセージからの1つまたは複数のデータ値を含むことができる。すなわち、第1のデータメッセージに対して計算されるそれぞれのハッシュ値は、そのデータメッセージの一部分を表す。
【0044】
ハッシュ計算器310によって計算されるそれぞれのデータハッシュは、所定のハッシュサイズを有し、ここでは、ハッシュサイズは、そのハッシュを計算するために使用されるデータ値の個数を示す。ハッシュサイズは、集積回路チップのオペレータによって設定変更可能である。一例では、ハッシュサイズは、集積回路チップ100をインスタンス化する時点にオペレータによって設定変更可能である。択一的な例では、ハッシュサイズは、動的に設定変更可能である。すなわち、ハッシュサイズは、集積回路チップ100の動作中に設定変更可能である。
【0045】
センサが画像センサである例では、相互接続回路206から読み出されたそれぞれのデータメッセージは、画像フレーム、ピクセルのライン、または画像フレームの他の細区分である。換言すれば、それぞれのデータメッセージは、画像フレームの少なくとも一部分である。したがって、所与のメッセージのそれぞれのデータ値は、画像フレームのピクセルであってよい。したがって、一例では、ハッシュ計算器310は、第1の画像フレームの全てのピクセルに対するデータハッシュを計算するように構成されている。択一的な例では、ハッシュ計算器310は、第1の画像フレームのピクセルの所定の部分集合の各々に対してデータハッシュを計算するように構成されている。ピクセルの部分集合は、ピクセルデータをオフチップで転送するために画像センサによって使用される転送方式によって決定可能である。例えば、n×m個のピクセルが含まれている画像フレームの場合、n×1またはy×xの部分集合を送信することができ、ここで、y<nおよびx<mである。これは、集積チップによって取り扱うことができるデータパケットのサイズに依存している。
【0046】
ハッシュ計算器310が、データバッファ308から受信したそれぞれのデータメッセージに対して2つ以上のデータハッシュを計算するように構成されている例では、ハッシュ計算器310は、データメッセージのデータ値を使用して、これらのハッシュ値を形成するためにローリング入力または非重複入力を形成することができる。ローリング入力とは、複数の連続するハッシュを計算するために使用されるデータ値において有意な重複が存在するような入力のことである。すなわち、それぞれのデータメッセージに対して計算されたハッシュは、そのメッセージのデータの重複している部分集合または部分を表す。ローリング入力から取得される一連のデータハッシュの例を、
=f(X,X・・・X
=f(X,X・・・XN+1
=f(X,X・・・XN+2
ように表現することができる。
【0047】
上記の表現において、H,H,およびHは、第1のデータメッセージY内のデータ値X,X,・・・XN+2の部分集合から取得されるデータハッシュの値をそれぞれ表す。上記の例では、データハッシュHへの入力とデータハッシュHへの入力とは、1のデータ値だけ異なっている。同様に、データハッシュHへの入力とデータハッシュHへの入力とは、1のデータ値だけ異なっている。択一的な例では、複数の連続するデータハッシュの間の入力を、これより大きい数のデータ値だけ異ならせてもよい。
【0048】
非重複入力とは、複数の連続するハッシュ値を形成するために使用されるデータ値の間に重複が存在しないような入力のことである。すなわち、それぞれのデータメッセージに対して計算されたハッシュ値は、そのメッセージの重複していない部分を表す。非重複入力から取得される一連のデータハッシュの例を、
=f(X,X...X
=f(XN+1,XN+2・・・X2N
=f(X2N+1,X2N+2・・・X3N
のように表現することができる。
【0049】
上記の表現において、H,H,およびHは、第1のデータメッセージY内のデータ値X,X,・・・X3Nの部分集合から取得されるデータハッシュの値をそれぞれ表す。
【0050】
ハッシュストア304は、第1のデータメッセージの受信よりも前にハッシュ計算器310によって計算された複数の以前のハッシュ値を格納するように構成されたメモリストアである。ハッシュストア304は、ハッシュ計算器310によって計算された以前のハッシュ値を格納するための複数のエントリ316,318,320を含む。
【0051】
ハッシュストア304内に格納されているそれぞれの以前のハッシュ値は、第1のデータメッセージがデータバッファ308によって受信されるよりも前に監視装置214によって相互接続部102から読み出されたデータメッセージに対応する。ハッシュストアは、第1のデータメッセージに対して計算されるそれぞれのハッシュ値に対して以前のハッシュ値を格納しており、これらの以前のハッシュ値は、データメッセージに対する1つまたは複数のハッシュ値を計算するために使用されたデータ値の部分集合と、同じデータ値の部分集合に対して計算されたものであるが、ただし、以前のクロックサイクルにおいて計算されたものである。例えば、第1のクロックサイクルTにおいてセンサ202によって記録された第1のデータメッセージを、参照符号Y1,Tによって表すことができる。この第1のデータメッセージからハッシュ計算器310によって計算される第1のハッシュ値を、参照符号H1,Tによって表すことができる。したがって、エントリ316,318,320は、第1のデータメッセージY1,Tよりも前に記録されたデータメッセージY1,T-1,Y1,T-2,・・・Y1,T-Nに対応する以前のハッシュ値を格納することができる。これらのハッシュ値を、H1,T-1,H1,T-2,・・・H1,T-Nとして表すことができる。例えば、第1の以前のハッシュ値H1,T-1を、第1のエントリ316内に格納することができる。ハッシュストアは、データが受信された任意の数の以前のクロックサイクルにおけるハッシュ値を格納することができる。
【0052】
択一的な例では、第1のハッシュ値H1,Tを、ハッシュ計算器310によって、第1のメッセージY1,T内に含まれているデータ値X1,T,X2,T,・・・XN,Tの部分集合のみに対して計算してもよいということに留意されたい。
【0053】
第1のデータメッセージY1,Tに対する第1のハッシュ値H1,Tが、ハッシュ計算器310によって計算されると、この第1のハッシュ値H1,Tは、現在ハッシュ選択器312および比較器314の両方に送信される。現在ハッシュ選択器312は、ハッシュ計算器310によって計算されたデータハッシュに対するハッシュ値を受信し、そのハッシュ値を使用して、ハッシュストア304内に格納されている対応する以前のハッシュ値をルックアップするように構成されている。対応する以前のハッシュ値は、第1のハッシュ値を計算するために使用された、ただし別の異なる以前の時間窓において使用された第1のデータメッセージまたは第1のデータメッセージの一部分を形成するために使用されたデータの部分集合に対して計算されたハッシュ値である。したがって、第1のデータメッセージY1,Tに対して計算された第1のハッシュ値H1,Tに対して、対応する以前のハッシュ値は、H1,T-1,H1,T-2等々である。すなわち、1つまたは複数の以前のハッシュ値H1,T-1,H1,T-2等は、第1のハッシュH1,Tを生成するために使用された第1のメッセージY1,Tに対応する以前のハッシュ値である。ハッシュストア304内の対応する以前のハッシュ値が識別されると、これらの値が比較器314に送信される。
【0054】
比較器314は、ハッシュストア304およびハッシュ計算器310の両方に接続されている。したがって、比較器は、ハッシュ計算器310によって計算された第1のハッシュ値H1,Tと、ハッシュストア304からの対応する以前のハッシュ値との両方を受信するように構成されている。比較器314はさらに、ハッシュ計算器310から受信した第1のハッシュ値H1,Tを、ハッシュストア304内に格納されている1つまたは複数の対応する以前のハッシュ値と比較するように構成されている。第1のハッシュ値H1,Tが、第1のクロックサイクルTにおける第1のデータメッセージY1,Tに対するハッシュ値を表す場合には、そのハッシュ値は、まず始めに以前のハッシュ値H1,T-1と比較されるであろう。次いで、H1,Tを、以前のハッシュ値H1,T-2からH1,T-Mまでと比較することができ、ここで、Mは、第1のハッシュ値H1,Tと比較されるべき以前のハッシュ値の総数である。第1のハッシュ値と比較される以前のハッシュ値の個数Mは、集積回路チップのオペレータによって設定変更可能である。一例では、Mは、集積回路チップ100をインスタンス化する時点に設定変更可能である。択一的な例では、Mは、動的に設定変更可能である。すなわち、Mは、集積回路チップ100の動作中に設定変更可能である。
【0055】
比較器314は、第1のデータハッシュ値H1,Tのハッシュ値とそれぞれの以前のハッシュ値H1,T-2・・・H1,T-Mとにおける差を、所定の閾値Wと比較するように構成されている。所定の閾値の値を、監視装置214内に格納することができる。一例では、所定の閾値の値は、監視装置の付加的なメモリ(図示せず)内に格納される。択一的に、この付加的なメモリを、ハッシュストア304内に含めてもよいし、または比較器314のメモリ内に含めてもよい。さらに、所定の閾値を、プロセッサ302内のこれに代わる場所に格納してもよいし、または一般的に、監視装置214内に格納してもよい。比較器314はさらに、第1のハッシュ値H1,Tとハッシュストア内に格納されている以前のハッシュ値H1,T-2・・・H1,T-Mのうちの少なくとも1つとの間の差が所定の閾値Wを下回っているかどうかを判定するように構成されている。すなわち、比較器は、|H-H1,T-Z|<Wであるかどうかを判定するように構成されており、ここで、Z=1,2・・・Mである。
【0056】
一例では、監視装置214は、第1のハッシュ値H1,Tと1つの以前のハッシュ値との間の差が所定の閾値Wを上回っているということが判定された場合に、是正処置を実施するように構成されている。この例では、第1のハッシュ値は、そのハッシュ値の直前のハッシュ値のみと比較される。|H-H1,T-1|<Tである場合には、是正処置が実施される。ハッシュ値が所定の閾値Wを上回っているということが判定されることにより、センサ202は、センサ202が監視しているエンティティにおける変化を検出し、これにより、警報、是正処置、または他の通知を行うことが可能となる。
【0057】
択一的な例では、監視装置214は、第1のハッシュ値H1,Tと複数の以前のハッシュ値との間の差が所定の閾値Wを上回っているということが判定された場合に、是正処置を実施するように構成されている。この例では、第1のハッシュ値とそれぞれの以前のハッシュ値との間の差が所定の閾値を上回っているような以前のハッシュ値の個数Pが、監視装置214によって事前に定められている。この以前のハッシュ値の個数Pは、Mの分数として定義され、ここで、Mは、比較器314によって第1のハッシュ値H1,Tと比較されるべき以前のハッシュ値の総数である。したがって、1<P<Mである。一例として、Pは、M/2に等しくてよい。したがって、|H-(H1,T-Z)|>Wであるような以前のハッシュ値の個数がM/2よりも多い場合に、是正処置が実施される。
【0058】
上記で定義されているような、第1のハッシュ値H1,Tとハッシュストア304内に格納されている以前のハッシュ値のうちの少なくとも1つとの間の差が所定の閾値Wを上回っているということが判定された場合には、比較器314は、通信器306に信号を出力する。通信器306は、監視装置214の外部にある1つまたは複数の出力モジュール220と通信するように構成されている。したがって、通信器306は、出力モジュールに命令を送信する役割を担っている。命令は、システムによって実施されるべき是正処置または通知を示す。
【0059】
通信器306によって命令される是正処置は、以下の処置、すなわち、エンティティが変化したことをユーザに通知する処置(特定の変化は、特定の通知をもたらすことができる)、エンティティを修復するように構成されたメカニズムを作動させる処置、集積回路100の別のコンポーネントに警告信号を出力する処置、ハードウェアイベントを出力する処置、割り込み信号を出力する処置、および外部のコア装置208,210,212にメッセージを出力する処置からなる非網羅的なリストのうちの1つまたは複数を含むことができる。
【0060】
現在ハッシュ選択器312はさらに、第1のハッシュ値H1,Tをハッシュストア304内に挿入するように構成されている。ハッシュストア304内に挿入されると、第1のハッシュ値は、以前のハッシュ値になる。次いで、その以前のハッシュ値を、相互接続回路206から読み出される後継のデータメッセージから計算される将来のハッシュ値との比較のために使用することができる。一例では、第1のハッシュ値H1,Tは、比較器314によってこの第1のハッシュ値H1,Tの対応する以前のハッシュ値と比較されている間に、現在ハッシュ選択器312によってハッシュストア内に挿入される。すなわち、第1のハッシュ値H1,Tをこの第1のハッシュ値H1,Tに対応する以前のハッシュ値と比較することと、そのハッシュ値をハッシュストア304に格納することとが同時に行われる。択一的な例では、第1のハッシュ値H1,Tは、比較器314によって処理された後、ハッシュストア内に格納される。換言すれば、第1のハッシュ値の比較と格納とを、同じ1つのクロックサイクルにおいて実施してもよいし、または複数の連続するクロックサイクルにおいて実施してもよい。
【0061】
図2に示されている集積回路チップは、3つの監視装置214,216,218を含む。上述したように、チップは、択一的に、任意の個数の監視装置を含むことができる。複数の監視装置を含んでいるチップの場合、これらの監視装置の各々は、第1のデータメッセージY1,Tから取得されたデータ値のそれぞれ異なる部分集合に対するハッシュ値を計算および比較する役割を担うことができる。すなわち、第1の監視装置は、データ値X,X・・・Xの部分集合に対して第1のハッシュ値H1,Tを計算および比較することができる。第2の監視装置は、部分集合X,X・・・XN+1に対して第2のハッシュ値H2,Tを計算および比較することができる。第3の監視装置は、部分集合X,X・・・XN+2に対して第1のハッシュ値H1,Tを計算および比較することができる。それぞれの監視装置は、データメッセージに対するデータ値の、それぞれの監視装置の部分集合に対する処理を、このようにして同時に実施することができる。これにより、センサデータの処理に関連するレイテンシがさらに短縮されることとなる。
【0062】
図4は、集積回路チップ装置を使用してデータメッセージを監視するための択一的かつ例示的なシステムの概略図である。図2と同様に、システムは、SoC100によって外部メモリ404に接続されているセンサ402を含む。SoCは、システム回路102と、システム回路102を監視するように構成された監視回路104とをさらに含む。システム回路102は、図2のコア装置208,210,212に対応するコア装置406,408,410,418,420を含む。監視回路は、図2の監視装置214,216,218に対応する監視装置422,424,426を含む。コア装置420は、出力モジュールであり、以下でさらに詳細に説明する。コア装置418は、内部メモリまたはオンチップメモリである。一例では、オンチップメモリ418は、外部メモリ404に加えて、センサ402によって記録されたデータメッセージを格納するために使用可能である。別の例では、センサ402からのデータメッセージを、外部メモリ404またはオンチップメモリ418のうちの一方のみに書き込むことができる。データメッセージが書き込まれるメモリを、そのメモリの特性に依存して選択することができる。所与のメモリにデータメッセージが書き込まれるかどうかを判定することができる特性の例には、そのメモリが含んでいるストレージの量、(そのメモリがセンサからどのくらい離れているかに依存している)そのメモリへのデータメッセージの書き込みに関連するレイテンシ、およびそのメモリがどのくらいの帯域幅をサポートするかが含まれる。
【0063】
図4に示されているように、システム回路102の相互接続回路は、メモリコントローラ412およびセンサコントローラ416をさらに含む。センサコントローラ416は、センサ402およびSoC相互接続部414の両方に接続されている。センサコントローラ416は、センサ402に命令を送信する役割と、センサの性能を制御する役割とを担っている。センサコントローラ416はさらに、センサ402によって記録されたデータメッセージを受信する役割と、それらのメッセージを、SoC相互接続部414を介してシステム回路102の他のコンポーネントに送信する役割とを担っている。メモリコントローラ412は、メモリ404およびSoC相互接続部414の両方に接続されている。メモリコントローラ412は、メモリに書き込まれるべきまたはメモリ内に格納されるべきSoC相互接続部からのデータメッセージを受信する役割と、格納されているデータメッセージを、SoC相互接続部414を介してコア装置に送信する役割との両方を担っている。
【0064】
SoC相互接続部414は、コア装置406,408,410,418,420と、センサコントローラ416と、メモリコントローラ412とに接続されている。したがって、SoC相互接続部414は、(センサコントローラ416を介して)センサ402と、メモリ404と、コア装置との間でデータメッセージを転送する役割を担っている。SoC相互接続部のトポロジは、SoCに依存しているが、システム回路の周囲の通信を伝達するための以下の種類のネットワーク、すなわちバスネットワーク、リングネットワーク、ツリーネットワーク、またはメッシュネットワークのうちのいずれか1つまたは組み合わせを含むことができる。一例では、SoC相互接続部414は、データバスである。
【0065】
図4に示されているシステム回路102および監視回路104は両方とも、1つまたは複数の出力モジュール420,432,436を含む。出力モジュールは、コア装置406,408,410または監視装置422,424,426のいずれかによって受信された信号に応答して、是正処置を実施するように構成されている。出力モジュール420は、セーフティコントローラである。セーフティコントローラ420は、集積回路チップが実装されているシステムの安全性を保証するための1つまたは複数の処置を実施するように構成されている。例えば、集積回路チップ100が、移動車両の内部に実装されている場合には、セーフティコントローラは、システムにブレーキをかけるように構成可能である。出力モジュール432は、分析CPUである。分析CPUは、センサの障害がなぜ発生したのかを特定するために、コア装置406,408,410または監視装置422,424,426のいずれかによって出力されたデータに関するさらなる分析を実施するように構成されている。
【0066】
分析CPUは、メッセージエンジン428および内部通信器430によって1つまたは複数の監視装置422,424,426に接続されている。メッセージエンジン428は、監視回路の全てのコンポーネントを一緒に接続し、これらのコンポーネントの間でメッセージを送信するように構成されている。SoC相互接続部414と同様に、メッセージエンジンのトポロジも、SoCに依存しているが、システム回路の周囲の通信を伝達するための以下の種類のネットワーク、すなわちバスネットワーク、リングネットワーク、ツリーネットワーク、またはメッシュネットワークのうちのいずれか1つまたは組み合わせを含むことができる。一例では、メッセージエンジン428は、データバスである。内部通信器430は、分析CPUとメッセージエンジン428との間でメッセージを中継するように構成されている。
【0067】
出力モジュール436は、外部デバッガである。外部デバッガ436は、集積回路チップ100内の、またはセンサの障害の原因である周囲のシステム内の欠陥または問題を解決するために使用される。外部デバッガ436によって使用される戦略は、対話型デバッグ、制御フロー分析、単体テスト、統合テスト、ログファイル分析、アプリケーションレベルまたはシステムレベルでの監視、メモリダンプ、および/またはプロファイリングを含むことができる。外部デバッガ436は、外部通信器434によってメッセージエンジン428に接続されている。外部通信器434は、外部デバッガ436とメッセージエンジン428との間でメッセージを中継するように構成されている。
【0068】
図5は、図2または図4に示されているような集積回路チップ装置を使用してセンサからのメッセージを監視する例示的な方法のフローチャートである。上述したように、データメッセージは、集積回路チップ100に接続されているセンサ202,204から測定されたデータを含む。本方法は、ステップ502において開始され、ここでは、1つまたは複数の監視装置214,216,218を使用して集積回路の相互接続回路206から第1のデータメッセージY1,Tが読み出される。第1のデータメッセージY1,Tは、第1のクロックサイクルTにおいてセンサ202によって記録される。第1のデータメッセージY1,Tは、監視装置のプロセッサ302内に配置されているデータバッファ308によって受信される。一例では、データメッセージY1,Tは、データ値Xの1つの部分集合のみを含む。択一的な例では、データメッセージは、データ値の複数の部分集合を含む。
【0069】
ステップ504において、監視装置214のプロセッサ302のハッシュ計算器310は、第1のデータメッセージY1,Tに対するハッシュ値H1,Tを有する第1のデータハッシュを計算する。上記で概説したように、第1のハッシュ値H1,Tは、受信したデータメッセージ内にある全てのデータ値を表してもよいし、または択一的に、そのデータメッセージ内に含まれているデータ値の部分集合のみを表してもよい。第1のハッシュ値H1,Tが計算されると、そのハッシュ値は、現在ハッシュ選択器312に送信される。現在ハッシュ選択器312は、第1のハッシュ値H1,Tを使用して、ハッシュストア304内に格納されている対応する以前のハッシュ値をルックアップする。これらの対応する以前のハッシュ値が、比較器314によってハッシュストア304から読み出される。
【0070】
ステップ506において、比較器314は、第1のハッシュ値H1,Tを、ハッシュストア304内に格納されている1つまたは複数の以前のハッシュ値H1,T-1・・・H1,T-Mと比較する。上述したように、ハッシュストア内に格納されているそれぞれの以前のハッシュ値は、第1のデータメッセージよりも前に相互接続回路206から読み出されたデータメッセージに対応する。一例では、第1のハッシュ値は、1つの以前のハッシュ値H1,T-1のみと比較される。択一的な例では、第1のハッシュ値は、複数の連続する以前のハッシュ値H1,T-1~H1,T-Mと比較される。次いで、第1のハッシュ値H1,Tと1つまたは複数の以前のハッシュ値H1,T-1・・・H1,T-Mとの間の差が、監視装置214内に格納されている所定の閾値と比較される。
【0071】
ステップ508において、比較器314は、第1のハッシュ値H1,Tと1つまたは複数の以前のハッシュ値H1,T-1,H1,T-2・・・H1,T-Mとの間の差を、所定の閾値Wと比較する。第1のハッシュ値と1つまたは複数の以前のハッシュ値のうちの少なくとも1つとの間の差が所定の閾値Wよりも大きいということを比較器314が判定した場合には、本方法は、ステップ510に進み、このステップ510において、通信器306は、集積回路の出力モジュール220に是正処置を実施するように命令する。この命令に応答して、出力モジュール220は、是正処置を実施する。第1のハッシュ値と1つまたは複数の以前のハッシュ値のうちの1つとの間の差が所定の閾値W以下である(すなわち、差が、Wよりも大きいか、またはWに等しい)ということを比較器314が判定した場合には、通信器306によって命令は送信されない。したがって、1つまたは複数の出力モジュール220は、是正処置を実施しない。本方法は、その代わりにステップ510をスキップして、ステップ512に進む。
【0072】
ステップ510において、第1のハッシュ値と以前のハッシュ値のうちの少なくとも1つとの間の差が所定の閾値を上回っていることが比較器314によって判定された場合には、比較器は、通信器306に信号を出力する。この信号を受信すると、通信器306は、是正処置の実施を命令する。すなわち、通信器306は、監視装置214の外部にある1つまたは複数のモジュールに1つまたは複数の命令を送信する。命令は、システムによって実施されるべき是正処置を示す。
【0073】
ステップ512において、第1のハッシュ値H1,Tは、ハッシュストア304内に格納される。したがって、第1のハッシュ値は、以前のハッシュ値になり、後続の後継のハッシュ値と比較されて、センサ202によって監視されているエンティティにおいて変化が発生したということをこれらの後続のハッシュ値が示しているかどうかを判定することができる。次いで、本方法は、ステップ514に進み、ここでは、Y1,Tが、ステップ502への入力としてY1,T+1に置き換えられる。すなわち、Y1,Tが記録されたときのクロックサイクルに後続するクロックサイクルにおいてセンサによって記録されたデータメッセージが、データバッファ308によって受信される。ステップ504において、後続のデータメッセージY1,T+1がハッシュ計算器310によって使用されて、新しいハッシュ値H1,T+1が計算され、その新しいハッシュ値が、以前のハッシュ値H1,T,H1,T-1,H1,T-2・・・H1,T-M等々と比較される。
【0074】
図5に示されている方法は、ハッシュ計算器310によって計算されたハッシュ値が、類似のデータ値に対して類似している場合に適している。類似のデータ値に対するハッシュ値が類似している場合には、閾値Wを使用して、連続するクロックサイクルにわたってどの程度までハッシュ値が変化するかを特定することができる。図6は、図2または図4に示されているような集積回路チップ装置を使用してセンサからのメッセージを監視する択一的かつ例示的な方法を示すフローチャートであり、ここでは、類似のデータ値に対して類似のハッシュ値は生成されない。すなわち、ハッシュ計算器310によって類似のデータ値に対して計算されたハッシュ値同士が、それぞれ顕著に異なる値を有している可能性があり、この場合、ハッシュ値同士の間の差は、データ値同士自体の間の差とは無関係である。この例では、連続するクロックサイクルにわたってハッシュ値が変化する程度を示す一貫した閾値は、不可能である。その代わりに、センサによって監視されているエンティティにおける変化の識別を、ハッシュ値同士の間の相等性を観察することによって決定することができる。すなわち、第1のハッシュ値が1つまたは複数の以前のハッシュ値とは異なっており、エンティティにおける変化が発生したということを判定することができる。
【0075】
図6のステップ602~606は、図5のステップ502~506に対応する。すなわち、ステップ602において、1つまたは複数の監視装置208,210,212を使用して集積回路の相互接続回路206から第1のデータメッセージY1,Tが読み出される。ステップ604において、監視装置214のプロセッサ302のハッシュ計算器310は、第1のデータメッセージY1,Tに対する第1のハッシュ値H1,Tを計算する。
【0076】
ステップ608において、比較器314は、第1のハッシュ値H1,Tと以前のハッシュ値H1,T-Zとの間の差を比較し、ここで、Z=1,2・・・Mである。H1,TがH1,T-Zに等しくないということ、または換言すれば|H1,T-H1,T-Z|≠0であるということを比較器314が判定した場合には、本方法は、ステップ610に進み、このステップ610において、通信器306は、集積回路の出力モジュール220に是正処置を実施するように命令する。この命令に応答して、出力モジュール220は、是正処置を実施する。H1,TがH1,T-Zに等しいということ、または換言すれば|H1,T-H1,T-Z|=0であるということを比較器314が判定した場合には、通信器306によって命令は送信されない。したがって、1つまたは複数の出力モジュール220は、是正処置を実施しない。本方法は、その代わりにステップ610をスキップして、ステップ612に進む。
【0077】
図6のステップ610~614は、図5のステップ510~514に対応する。すなわち、ステップ610において、通信器306は、集積回路の出力モジュール220に是正処置を実施するように命令する。ステップ612において、第1のハッシュ値H1,Tは、ハッシュストア304内に格納される。ステップ614において、Y1,Tが、ステップ602への入力としてY1,T+1に置き換えられる。
【0078】
上述したように、一例では、比較器314は、第1のハッシュ値と、以前のハッシュ値の所定の個数Pにわたるそれぞれの以前のハッシュ値との間の差が満たされているかどうかを判定し、ここで、Pは、Mの分数として定義される。Mは、比較器314によって第1のハッシュ値H1,Tと比較されるべき以前のハッシュ値の総数である。この例のさらなる実装形態では、比較器314は、|H-H1,T-Z|>Wであるような以前のハッシュ値の個数を、複数のハッシュ値の所定の個数P,P・・・Pと比較することができる。それぞれの所定の個数Pは、センサの障害が発生したことを監視装置がどのくらい確信しているかを示す信頼値に対応する。すなわち、比較器314は、第1の所定の個数Pを導出することができ、ここで、P=M/2である。したがって、|H-H1,T-Z|>Wであるような以前のハッシュ値の個数がPよりも多い場合には、比較器は、センサによって監視されているエンティティにおいて変化が発生したことを当該比較器が「非常に確信している」ということを判定することができる。比較器314はさらに、第2の所定の個数Pを導出することができ、ここで、P=M/4である。したがって、|H-H1,T-Z|>Wであるような以前のハッシュ値の個数がPよりも少ないがPよりも多い場合には、比較器314は、センサによって監視されているエンティティにおいて変化が発生したことを当該比較器が「いくらか確信している」ということを判定することができる。比較器314は、任意の量の所定の個数P,P・・・Pにアクセスすることができ、ここでは、それぞれの所定の個数は、センサによって監視されているエンティティにおける変化が発生した種々異なる確率を示す信頼値に関連付けられている。所定の個数と対応する信頼性レベルとを、監視装置214内のメモリ内に格納することができる。
【0079】
上述したように、一例では、集積回路チップに接続されているセンサは、カメラであり、集積回路チップの1つまたは複数の監視装置によって読み出されるそれぞれのデータメッセージは、第1のクロックサイクルTにおいて捕捉された画像フレームまたはその一部分である。すなわち、第1のハッシュ値Hとハッシュストア内に格納されている少なくとも1つの対応する以前のハッシュ値H1,T-1,H1,T-2等との間の差が所定の閾値Wを上回っているということを監視装置214のプロセッサ302の比較器314が判定した場合には、この判定は、Hを計算するために使用されたフレームの一部分が、監視されているエンティティにおいてどこで変化が発生したのか、またはどのような変化が発生したのかを示す。
【0080】
センサがカメラである例の1つの実装形態では、上述した集積回路チップを、生産ラインのような工業環境内に挿入することができる。この例では、1つまたは複数の出力モジュール220は、製造セーフティコントローラを含み、生産ラインの動作または出力における変化が発生した場合には、オペレータに加えてまたはオペレータの代わりにこの製造セーフティコントローラに警告が発される。したがって、監視装置214の通信器306によって命令することができる1つまたは複数の是正処置は、以下のこと、すなわち生産ラインにおいてエラーが検出されたことをオペレータに通知すること、動作するために生産ラインの特定の出力に依存しているサブシステムを作動停止させること、警報を作動させること、実施されるべき特定の処置を決定することができるように製造セーフティコントローラに変化を通知することを含むことができる。
【0081】
図7は、一実施形態の例示的な実装形態の概略図である。原子炉の炉室701が、4つの画像カメラ702a,702b,702c,702dによって監視されており、これら4つの画像カメラ702a,702b,702c,702dは、炉室701の床703を観察するように配置されている。それぞれのカメラ702a,702b,702c,702dは、床703の完全性、ひいては潜在的に炉自体の完全性に問題が存在することを示すあらゆる兆候を得るために、床703の指定された領域を監視する。通常の使用時には、それぞれのカメラ702a,702b,702c,702dが、実質的に同一である画像フレームを中継する。したがって、図5に関して上述したように、第1のハッシュ値H1,Tと1つまたは複数の以前のハッシュ値H1,T-1,H1,T-2・・・H1,T-Mとの間の差が、それぞれのカメラ702a,702b,702c,702dごとに所定の閾値Wと比較された場合には、その差は、所定の閾値Wを十分に下回っている。しかしながら、監視プロセスの一部分として、複数のカメラのうちの1つのカメラ702aは、床703のうちの、このカメラ702aに割り当てられた(図面において強調表示されているような)領域Rにおいて、ロッドカバー705の間の亀裂704をピックアップする。原子力産業では、炉に関する問題から安全性に対するリスクが極めて高いので、マイクロ秒以下の非常に短時間のスケールで問題を通知することが必要とされる。カメラ702aによって捕捉された第1の画像フレームは、床703の予想される画像を示すが、第2の後続の画像フレームは、亀裂が出現する初期の段階を示す。第1の画像フレームに対するハッシュ値H1,Tは、このハッシュ値H1,Tと比較される1つまたは複数の以前のハッシュ値H1,T-1,H1,T-2・・・H1,T-Mと実質的に同一であるが、その一方で、第2の画像フレームに対するハッシュ値H1,T+1は、異なっており、格納されているハッシュ値H1,T-1,H1,T-2・・・H1,T-Mと比較すると、所定の閾値Wを超えている。これにより、比較器314は、通信器306に信号を出力し、通信器306は、カメラ702aの外部にある1つまたは複数のモジュールに1つまたは複数の命令を送信し、これにより、警報を発することが可能となる。
【0082】
一例では、センサは、画像センサであるが、択一的に、連続的なデータを記録することができる任意の種類のセンサを、集積回路チップに接続してもよい。監視することができるメッセージの発信元であるこれに代わるセンサの例には、温度センサ、近接センサ、加速度計、圧力センサ、流量センサ、湿度センサ、またはタッチセンサが含まれる。例えば、センサは、サーモスタットであってよく、集積回路チップは、サーモスタットによって記録された温度を監視するために使用可能である。
【0083】
本明細書に記載されたシステムおよび方法によって、ソフトウェアの実装形態に依拠する対応するシステムと比較した場合に、エンティティにおける変化を識別するためにかかる時間の量が大幅に削減される。すなわち、監視装置によるハッシュ値の計算および比較を、ほんの少数のハードウェアクロックサイクルにおいて実施することができる。1つまたは複数の監視装置によってエンティティにおける変化が識別されると、これらの装置は、時間遅延をさらに短縮するための低レイテンシのメカニズムを使用して是正処置を実施するように、適切な出力モジュールに命令がなされることを保証することができる。
【0084】
上記のSoCは、コンピューティングベースの装置内に適切に組み込まれている。コンピューティングベースの装置は、電子装置であってよい。適切には、コンピューティングベースの装置は、本明細書に記載された方法を実装するために、装置の動作を制御するためのコンピュータ実行可能命令を処理するための1つまたは複数のプロセッサを含む。コンピュータ実行可能命令は、メモリのような任意のコンピュータ可読媒体を使用して提供可能である。本明細書に記載された方法のいくつかは、有形の記憶媒体上の機械可読形式のソフトウェアによって実施可能である。本明細書に記載された方法のいくつかを実装するために、コンピューティングベースの装置にソフトウェアを提供することができる。
【0085】
上記の説明は、システム回路と監視回路とを、同じSoC上に含まれているものとして説明している。択一的な実装形態では、システム回路と監視回路とが、MCMの2つ以上の集積回路チップにわたって含まれている。MCMでは、複数の集積回路チップを、インターポーザ基板上で積層してもよいし、または隣り合って配置してもよい。いくつかのシステム回路を、MCMの1つの集積回路チップ上に配置し、他のシステム回路を、このMCMの別の異なる集積回路チップ上に配置してもよい。同様に、監視回路を、MCMの2つ以上の集積回路チップにわたって分散させてもよい。したがって、SoCの文脈において上述した方法および装置は、MCMの文脈においても当てはまる。
【0086】
本出願人は、本明細書に記載されたそれぞれの個々の特徴を単独で開示すると共に、2つ以上のそのような特徴の任意の組み合わせを、そのような特徴または特徴の組み合わせが、本明細書に開示された問題を解決するかどうかにかかわらず、特許請求の範囲を制限することなく、当業者の一般的な知識に照らして本明細書に基づいて全体として実現することができる範囲において開示する。本出願人は、任意のこのような個々の特徴または特徴の組み合わせを、本開示の態様に含めることができることを示す。前述の説明を考慮すれば、本開示の範囲内で種々の変更を行ってもよいことは、当業者には明らかであろう。
図1
図2
図3
図4
図5
図6
図7
【国際調査報告】