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

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

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

<>
  • 特許-ハードウェアベースのセンサ分析 図1
  • 特許-ハードウェアベースのセンサ分析 図2
  • 特許-ハードウェアベースのセンサ分析 図3
  • 特許-ハードウェアベースのセンサ分析 図4
  • 特許-ハードウェアベースのセンサ分析 図5
  • 特許-ハードウェアベースのセンサ分析 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-19
(45)【発行日】2024-07-29
(54)【発明の名称】ハードウェアベースのセンサ分析
(51)【国際特許分類】
   G06F 11/30 20060101AFI20240722BHJP
【FI】
G06F11/30 193
【請求項の数】 20
(21)【出願番号】P 2022572592
(86)(22)【出願日】2021-05-27
(65)【公表番号】
(43)【公表日】2023-06-28
(86)【国際出願番号】 US2021034542
(87)【国際公開番号】W WO2021243034
(87)【国際公開日】2021-12-02
【審査請求日】2023-01-25
(31)【優先権主張番号】2007982.8
(32)【優先日】2020-05-28
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】520161964
【氏名又は名称】シーメンス インダストリー ソフトウェア インコーポレイテッド
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】マーチン ロンド
(72)【発明者】
【氏名】ガジンダー パネザー
【審査官】武田 広太郎
(56)【参考文献】
【文献】特開2018-107588(JP,A)
【文献】特開2009-245009(JP,A)
【文献】古賀 久志,ハッシュを用いた類似検索技術とその応用,電子情報通信学会 基礎・境界ソサイエティ,2014年,7 巻, 3 号,p. 256-268,[検索日: 2023.12.22], インターネット: <URL: https://doi.org/10.1587/essfr.7.256>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/30
(57)【特許請求の範囲】
【請求項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から12までのいずれか1項記載の方法。
【請求項14】
前記修正処置は、センサデータが信頼できないということをユーザに通知すること、前記センサから取得したデータに依存する前記集積回路のコンポーネントの作動を停止させること、および前記センサを修復するように構成されている機構を作動させることのうちの1つまたは複数である、請求項1から13までのいずれか1項記載の方法。
【請求項15】
前記修正処置は、前記集積回路の他のコンポーネントに警告信号を出力することを含んでいる、請求項1から14までのいずれか1項記載の方法。
【請求項16】
前記修正処置は、ハードウェアイベントを出力すること、割り込み信号を出力すること、またはメッセージを外部コアデバイスに出力することを含んでいる、請求項1から15までのいずれか1項記載の方法。
【請求項17】
前記センサはイメージセンサであり、前記インターコネクト回路から読み出される各メッセージは、前記イメージセンサによって捕捉されるフレームである、請求項1から16までのいずれか1項記載の方法。
【請求項18】
前記集積回路は、システムオンチップである、請求項1から17までのいずれか1項記載の方法。
【請求項19】
前記インターコネクト回路は、データバスである、請求項1から18までのいずれか1項記載の方法。
【請求項20】
センサからのメッセージを監視するための集積回路チップであって、
前記メッセージは、前記センサによって測定されたデータを含んでおり、
前記集積回路チップは、
前記メッセージを処理するように構成されているコアデバイスに前記センサを接続するインターコネクト回路と、
前記インターコネクト回路から第1のメッセージを読み出すように構成されている監視デバイスと、
各ハッシュ値が前記第1のメッセージの前に前記インターコネクト回路から読み出されたメッセージに対応する、複数の先行ハッシュ値を格納するハッシュストアと、
プロセッサと、
を含み、
前記プロセッサは、
前記第1のメッセージに対する第1のハッシュ値を計算し、
前記第1のハッシュ値を、前記ハッシュストアに格納されている前記先行ハッシュ値のうちの1つまたは複数の先行ハッシュ値と比較する
ように構成されており、
前記集積回路は、前記第1のハッシュ値と前記ハッシュストアに格納されている前記先行ハッシュ値のうちの少なくとも1つの先行ハッシュ値との間の差が所定の閾値を下回っている場合に修正処置を実行するように構成されている、
集積回路チップ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システムオンチップ(SoC)またはマルチチップモジュール(MCM)内の監視回路を使用して、センサからのメッセージを監視することに関する。
【0002】
背景技術
集積回路チップは、センサによって記録されたデータメッセージを監視するために使用されてよい。記録されたデータメッセージは、センサが自身が記録するメッセージを全体的または部分的にリフレッシュすることができなくなるといった、センサ故障を検出するために使用され得る。上述のセンサ故障によって、センサが実装されているシステム内で発生する問題が記録できなくなる。既知の集積回路チップ構成におけるセンサ故障を検出するために、センサによって記録されたデータメッセージは、まず、集積回路チップに接続されているメモリにこれらのメッセージを書き込むことによって監視される。メッセージがメモリに書き込まれると、これらのメッセージはメモリから読み出され、チップ上の1つまたは複数の処理モジュール内に含まれているソフトウェアによって処理され得る。
【0003】
システム内で発生している問題を示すために使用可能なセンサの一例は、カメラなどのイメージセンサである。センサがイメージセンサである場合には、このセンサによって記録される各データメッセージは、所定の時間窓において捕捉されるイメージフレームである。問題が発生したか否かを判定するために、後続の時間窓にわたって捕捉されたイメージフレームが、監視ソフトウェアによって比較される。センサによって記録されたこれらのイメージフレームにおける経時的な強い類似性を使用して、センサ故障を示すことができる。
【0004】
監視ソフトウェアによってこれらのデータメッセージが処理可能になる前に、集積回路チップはデータメッセージをメモリ内に格納することを要求するので、センサ故障の検出において有意な時間遅延が生じてしまう。これは、センサが実装されるシステム内の問題を識別するためにセンサデータに強く依存しており、これによってこれらの問題に対する応答を最小の時間遅延で実行することができる実装にとって問題である。たとえば、センサがイメージセンサである場合、センサが、やって来る外部オブジェクトを認識し、これらのオブジェクトの接近に対する応答をトリガすることを要求される場合がある。
【0005】
センサによって記録されるデータメッセージの監視にかかる時間を短縮する必要がある。
【0006】
発明の概要
第1の態様によれば、集積回路を使用してセンサからのメッセージを監視する方法が提供され、このメッセージは、このセンサによって測定されたデータを含んでおり、この方法は、メッセージを処理するように構成されている1つまたは複数のコアデバイスにセンサを接続する、集積回路のインターコネクト回路から第1のメッセージを読み出すことを含んでおり、第1のメッセージに対する第1のハッシュ値を計算することを含んでおり、第1のハッシュ値をハッシュストアに格納されている1つまたは複数の先行ハッシュ値と比較することを含んでおり、各先行ハッシュ値は第1のメッセージの前にインターコネクト回路から読み出されたメッセージに対応し、この方法はさらに、第1のハッシュ値とハッシュストアに格納されている先行ハッシュ値のうちの少なくとも1つの先行ハッシュ値との間の差が所定の閾値を下回っている場合に修正処置を実行することを含んでいる。
【0007】
本方法は、第1のハッシュ値をハッシュストアに格納することをさらに含んでいてよい。
【0008】
第1のハッシュ値は、第1のハッシュ値と先行ハッシュ値との比較と同時にハッシュストアに格納されてよい。
【0009】
本方法は、第1のメッセージが1つまたは複数のコアデバイスによって読み出される前に、第1のメッセージをバッファリングすることをさらに含んでいてよい。
【0010】
バッファのサイズは、第1のハッシュ値を含んでいるデータハッシュを計算するために使用されるデータ値の数に対応し得る。
【0011】
本方法は、第1のハッシュ値をM個の先行ハッシュ値と比較することおよび第1のハッシュ値とP個の先行ハッシュ値との間の差が所定の閾値を下回っている場合に修正処置を実行することをさらに含んでいてよく、ここで1<P<Mである。
【0012】
本方法は、第1のハッシュ値とP個の先行ハッシュ値の各値との間の差が所定の閾値を下回る、P個の先行ハッシュ値に対応する信頼値を導出することをさらに含んでいてよい。
【0013】
Mは、動的に設定可能であってよい。
【0014】
第1のハッシュ値が、ハッシュストアに格納されている先行ハッシュ値のうちの少なくとも1つの先行ハッシュ値と同じである場合に、修正処置が実行されてよい。
【0015】
本方法は、第1のメッセージに対する複数のハッシュ値を計算することをさらに含んでいてよく、複数のハッシュ値の各ハッシュ値は第1のメッセージの一部分を表しており、第1のメッセージに対する複数のハッシュ値の各ハッシュ値は、第1のメッセージのこの一部分に対応する1つまたは複数の先行ハッシュ値と比較され得る。
【0016】
第1のメッセージに対して計算された複数のハッシュ値は、第1のメッセージの重畳している一部分を表していてよい。
【0017】
第1のメッセージに対して計算された複数のハッシュ値は、第1のメッセージの重畳していない一部分を表していてよい。
【0018】
インターコネクト回路はさらに、センサをメモリに接続してよく、メモリは、センサによって伝達されたメッセージを格納してよい。
【0019】
修正処置は、センサデータが信頼できないということをユーザに通知すること、センサから取得したデータに依存する集積回路のコンポーネントの作動を停止させること、およびセンサを修復するように構成されている機構を作動させることのうちの1つまたは複数であってよい。
【0020】
修正処置は、集積回路の他のコンポーネントに警告信号を出力することを含んでいてよい。
【0021】
修正処置は、ハードウェアイベントを出力すること、割り込み信号を出力すること、またはメッセージを外部コアデバイスに出力することを含んでいてよい。
【0022】
センサはイメージセンサであってよく、インターコネクト回路から読み出される各メッセージは、イメージセンサによって捕捉されるフレームであってよい。
【0023】
集積回路は、システムオンチップであってよい。
【0024】
インターコネクト回路は、データバスであってよい。
【0025】
第2の態様によれば、センサからのメッセージを監視するための集積回路チップが提供され、このメッセージは、このセンサによって測定されたデータを含んでおり、この集積回路チップは、メッセージを処理するように構成されているコアデバイスにセンサを接続するインターコネクト回路と、インターコネクト回路から第1のメッセージを読み出すように構成されている監視デバイスと、各ハッシュ値が第1のメッセージの前にインターコネクト回路から読み出されたメッセージに対応する、複数の先行ハッシュ値を格納するハッシュストアと、プロセッサとを含んでおり、プロセッサは、第1のメッセージに対する第1のハッシュ値を計算し、第1のハッシュ値を、ハッシュストアに格納されている先行ハッシュ値のうちの1つまたは複数の先行ハッシュ値と比較するように構成されており、集積回路は、第1のハッシュ値とハッシュストアに格納されている先行ハッシュ値のうちの少なくとも1つの先行ハッシュ値との間の差が所定の閾値を下回っている場合に修正処置を実行するように構成されている。
【0026】
次に、本発明を、添付の図面を参照して例として説明する。
【図面の簡単な説明】
【0027】
図1】例示的な集積回路チップデバイスの概略図である。
図2】集積回路チップデバイスを使用してデータメッセージを監視するための例示的なシステムの概略図である。
図3図2に示された集積回路チップデバイスの監視デバイスの詳細な実施形態を示す図である。
図4】集積回路チップデバイスを使用してデータメッセージを監視するための択一的な例示的なシステムの概略図である。
図5図2または図4に示された集積回路チップデバイスを使用してセンサからのメッセージを監視する例示的な方法のフローチャートである。
図6図2または図4に示された集積回路チップデバイスを使用してセンサからのメッセージを監視する択一的な例示的な方法のフローチャートである。
【0028】
詳細な説明
図1図4は、例示的なシステムアーキテクチャおよびシステムアーキテクチャ内のコンポーネントの概略図である。これらの図は、機能ブロックの観点から構造を示している。当技術分野で周知の機能を実行するためのいくつかの機能ブロックは、これらの図面から所々省略されている。図5および図6は、図1図4のシステムアーキテクチャを使用してセンサメッセージを監視する方法を示すフローチャートである。各フローチャートは、このフローチャートの方法が実施され得る順序を示している。しかし、これらのフローチャートは、説明された方法を、図示されている順序で実施することに制限することを意図したものではない。方法のステップは、フローチャートに示されている順序に代わる順序で実行されてよい。
【0029】
図1は、SoC100のための例示的な監視ネットワークの一般的な構造を示している。監視回路104は、システム回路102を監視するように構成されている。たとえば、安全性またはセキュリティ上の懸念に関連するコアデバイスの不適切な動作を検出する目的で構成されている。
【0030】
図2は、センサ202から受け取ったデータメッセージを監視するためのSoCなどの集積回路チップ100を含んでいる例示的なシステム200を示している。メッセージは、センサによって記録された1つまたは複数の別個のデータ値を含んでいるため、データメッセージと称される。センサ202は、定期的にデータを記録することができる任意のタイプのセンサであってよい。すなわち、センサ202は、データを連続的に、かつ定期的な時間枠で記録することが可能であってよい。その他に、各時間窓は集積回路チップのクロックサイクルと称され得る。一例では、センサ202は、カメラなどのイメージセンサであり、センサによって記録される各データメッセージはイメージフレームである。
【0031】
センサ202と同様に、SoC100は、メモリ204にも接続されている。したがって、センサ202は、SoC100によってメモリ204に接続されている。図2において、メモリ204は外部メモリである。外部メモリは、SoC100内に含まれていないメモリである。択一的な例では、メモリ204は内部メモリであってよく、したがってSoC100内に含まれていてよい。メモリ204は、センサ202によって記録され、SoC100を介してメモリ204に伝達されたデータメッセージを格納するように構成されている。
【0032】
図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は、マスタデバイスとスレーブデバイスとの組み合わせである。1つまたは複数のコアデバイス208,210,212は、センサ202から受け取ったデータメッセージを処理するように構成されている。データの処理を可能にするために、1つまたは複数のコアデバイス208,210,212は、適切なシステムソフトウェアを含んでいる。図2では、SoCは3つのコアデバイスを含むものとして示されているが、任意の数のコアデバイスをシステム回路に適切に組み込むことができる。SoCインターコネクトは、SoCのための通信バックボーンを形成し、この通信バックボーンを介してコアデバイス同士が通信することができる。これらの通信は双方向である。
【0033】
マスタデバイスは、トラフィック、たとえばネットワーク内の読み出し/書き込み要求を開始するデバイスである。マスタデバイスの例は、DSP(digital signal processor)、ビデオプロセッサ、アプリケーションプロセッサ、CPU(central processor unit)およびGPU(graphics processor unit)などのプロセッサである。プログラミング可能な任意のプロセッサは、マスタデバイスであってよい。マスタデバイスの他の例は、DMA(direct memory access)機能を有するデバイスであり、たとえば1つのロケーションから別のロケーションにデータを移動させるための従来のDMA、DMA機能を有する自律的なコプロセッサ(暗号化エンジンなど)およびDMA機能を有する周辺装置(イーサネットコントローラなど)である。
【0034】
スレーブデバイスは、マスタデバイスのコマンドに応答するデバイスである。スレーブデバイスの例は、オンチップメモリ、(DRAMなどの)オフチップメモリ用のメモリコントローラおよび周辺機器である。
【0035】
インターコネクト回路206のトポロジは、SoCに依存する。たとえば、これは、システム回路周辺の通信を搬送する以下の種類のネットワークのいずれか1つまたは組み合わせを含んでいてよい:バスネットワーク、リングネットワーク、ツリーネットワーク、またはメッシュネットワーク。一例では、インターコネクト回路は、データバスである。
【0036】
上述のように、システム回路102のコアデバイス208,210,212は、センサ202によって記録されたデータメッセージを処理するように構成されている。コアデバイス208,210,212は、適切なシステムソフトウェアを使用してこのデータ処理を実行する。データメッセージが処理されるために、データメッセージは、まず、メモリ204に書き込まれる。すなわち、データメッセージがメモリ204に書き込まれると、これらのデータメッセージは、処理のために1つまたは複数のコアデバイス208,210,212によって読み出し可能となる。データは、最近取得したデータ値を、メモリ204に格納されている先行データ値と比較することによって、1つまたは複数のコアデバイス208,210,212内に含まれているソフトウェアによって処理されてよい。一例では、連続するデータメッセージから取得したデータ値間の類似性が、センサ故障の発生を示す。すなわち、センサ202は、繰り返し発生するデータ値を記録することがあり、そこでは、センサが実装されているシステムにおける条件が変化している。センサ202がイメージセンサである例では、センサによって記録された繰り返し発生するデータ値の検出は、イメージセンサが欠陥ピクセルまたはスタックピクセルを含んでいることを示し得る。
【0037】
センサ202によって記録されたデータメッセージを処理するためにシステム回路102を使用することの欠点は、センサ故障から、この故障の検出までの有意な時間遅延である。すなわち、コアデバイス208,210,212内に含まれているソフトウェアによって読み出しおよび処理され得る前に、センサデータをメモリ204に書き込まなければならない。データメッセージを格納かつ処理するのにかかる時間は、数十ミリ秒~数百ミリ秒のオーダーであり得る。この時間は、幾つかの組み込まれたシステムにとっては長すぎ、これらの組み込まれたシステムは、センサ故障に応答する適切な時間の長さを実現できるようにするために、より迅速な故障検出メカニズムが実装されることを要求する。
【0038】
センサ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は、ハードウェアコンポーネントの構成を使用してデータメッセージを読み出し、続いて処理するように構成されている。
【0039】
監視デバイス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内のアドレスを識別するフラグを含んでいるデータメッセージだけを選択的に読み出すことができる。
【0040】
図2では、SoCは3つの監視デバイスを含むものとして示されているが、任意の数の監視デバイスを集積回路チップ100に適切に組み込むことができる。各監視デバイス214,216,218は、単一の通信リンクによってインターコネクト回路206に接続されていてよい。択一的に、1つまたは複数のデバイスユニット214,216,218が複数の通信リンクに接続されていてよい。監視デバイス214,216,218はさらに、インターコネクト回路206から読み出されたデータメッセージを監視し、これらのメッセージが、センサ202が監視しているシステムのセンサ故障を示すデータ値を含んでいるか否かを判定するように構成されている。
【0041】
インターコネクト回路206に加えて、監視デバイス214,216,218は、出力モジュール220に接続されている。出力モジュール220は、1つまたは複数の監視デバイス214,216,218が、データメッセージに含まれているデータ値がセンサ故障を示していると判定した場合に、修正処置を実行するように構成されている。すなわち、監視デバイス214,216,218は、データメッセージに含まれているデータ値がセンサ故障を示していると判定した場合に、出力モジュール220に、修正処置を実行するように指示するように構成されている。図2では、システムは1つの出力モジュール220を含んでいるが、回路は任意の数の出力モジュール220を含んでいてよい。図2の出力モジュール220は、集積回路チップ100の外部にあるものとして示されているが、択一的に、出力モジュール220が、集積回路チップ内に含まれていてよい。回路が2つ以上の出力モジュール220を含んでいる場合、各出力モジュールは、読み出されたデータがセンサ故障を示すものであるという、1つまたは複数の監視デバイス214,216,218からの判定に応じて、異なる修正処置を実行するように構成されていてよい。
【0042】
図3は、図1および図2に示されている集積回路チップの監視デバイス214の詳細な実施形態である。監視デバイス214は、ハードウェアコンポーネントの構成によって、いずれのシステムソフトウェアの介入なく、インターコネクト回路206からのデータメッセージを読み出して監視することができる。これらのハードウェアコンポーネントは、データストア304とコミュニケータ306との両方に接続されているプロセッサ302を含んでいる。
【0043】
監視デバイス214のプロセッサ302は、インターコネクト回路206から受け取った第1のメッセージに対する第1のハッシュ値を計算するように構成されている。ハッシュストア304は、複数の先行ハッシュ値を格納するように構成されているメモリ記憶装置であり、ここでは格納されている各ハッシュ値は、インターコネクト回路から、第1のメッセージより前に読み出されたメッセージに対応する。プロセッサ302はさらに、第1のメッセージに対して計算された少なくとも1つのハッシュ値を、ハッシュストア304に格納されている1つまたは複数の先行ハッシュ値と比較するように構成されている。プロセッサ302が、第1のハッシュ値と、ハッシュストアに格納されている先行ハッシュ値のうちの少なくとも1つの先行ハッシュ値との間の差が、プロセッサ302によって識別された所定の閾値を下回っていると判定した場合、プロセッサはコミュニケータ306に信号を出力する。コミュニケータ306は、この信号を受け取ると、集積回路に接続されている出力モジュール220に、修正処置を実行するように指示するように構成されている。
【0044】
監視デバイス214のプロセッサ302は、ハッシュ計算器310に接続されているデータバッファ308をさらに含んでいる。データバッファ308に加えて、ハッシュ計算器310は、カレントハッシュ選択器312および比較器314の両方に接続されている。カレントハッシュ選択器312および比較器314の両方は、ハッシュストア304に接続されている。比較器314はさらに、コミュニケータ306に接続されている。
【0045】
データバッファ308は、インターコネクト回路206から読み出されたデータメッセージを受け取り、受け取ったこれらのデータメッセージを短期間の間、格納するように構成されている。データバッファ308は、続いて、受け取ったデータメッセージをハッシュ計算器310に転送する。上記で要約したように、データバッファ308によって受け取られた第1のデータメッセージは、データメッセージが、集積回路チップ100に接続されているメモリ204によって受け取られ、メモリ204に書き込まれる前に、インターコネクト回路206から読み出されたデータメッセージである。したがって、データバッファ308は、第1のデータメッセージが1つまたは複数のコアデバイス208,210,212によってメモリ204から読み出される前に、第1のデータメッセージを受け取る。
【0046】
データバッファ308は、所定のサイズを有していてよい。一例では、データバッファ308のサイズは、このバッファによって受け取られるデータメッセージのサイズと同じである。換言すれば、データバッファ308のサイズは、バッファによって受け取られる第1のメッセージのサイズと同じである。したがって、データバッファ308は、1つのクロックサイクルにおいて記録されたデータメッセージのみを格納するように構成されている。択一的な例では、データバッファ308のサイズは、第1のデータメッセージ内に含まれているデータ値のサブセットのみのサイズを有している。この択一的な例では、バッファのサイズは、ハッシュ計算器310によって計算されるハッシュのサイズに対応する。したがって、データバッファ308は、任意の1つのクロックサイクルにおいて、1つのデータメッセージ内に含まれるデータ値のサブセットのみを格納するように構成されている。ハッシュサイズについては以下で詳しく説明する。
【0047】
ハッシュ計算器310は、データバッファ308から受け取ったデータメッセージごとに1つまたは複数のデータハッシュを計算するように構成されている。各データハッシュは、このハッシュの計算に使用されたメッセージからのデータ値を表すハッシュ値を含んでいる。上述したように、データバッファ308から受け取った各データメッセージは、1つまたは複数の別個のデータ値を含んでいる。したがって、各データメッセージは、複数のデータ値を含んでいてよい。一例では、ハッシュ計算器310は、受け取ったデータメッセージのすべてのデータ値に対して1つのデータハッシュを計算するように構成されている。択一的な例では、ハッシュ計算器310は、受け取った各データメッセージに対して複数のデータハッシュを計算するように構成されている。この択一的な例では、第1のデータメッセージに対して、各ハッシュ値が、このデータメッセージのデータ値のサブセットに対して計算される。サブセットは、第1のデータメッセージからの1つまたは複数のデータ値を含んでいてよい。すなわち、第1のデータメッセージに対して計算された各ハッシュ値は、このデータメッセージの一部分を表している。
【0048】
ハッシュ計算器310によって計算された各データハッシュは、所定のハッシュサイズを有しており、このハッシュサイズは、このハッシュの計算に使用されたデータ値の数を示している。ハッシュサイズは、集積回路チップのオペレータによって設定可能である。一例では、ハッシュサイズは、集積回路チップ100のインスタンス化時点で、オペレータによって設定可能である。択一的な例では、ハッシュサイズは動的に設定可能である。すなわち、集積回路チップ100の操作中にハッシュサイズを設定することができる。
【0049】
センサがイメージセンサである例では、インターコネクト回路206から読み出された各データメッセージはイメージフレームである。したがって、所与のメッセージの各データ値は、イメージフレームのピクセルであってよい。したがって、一例では、ハッシュ計算器310は、第1のイメージフレームのすべてのピクセルについてデータハッシュを計算するように構成されている。択一的な例では、ハッシュ計算器310は、第1のイメージフレームのピクセルの所定のサブセットのそれぞれに対して、データハッシュを計算するように構成されている。
【0050】
ハッシュ計算器310が、データバッファ308から受け取った各データメッセージに対して2つ以上のデータハッシュを計算するように構成されている例では、これは、データメッセージのデータ値を使用して、これらのハッシュ値を形成するために、ローリング入力または非重畳入力のいずれかを形成することができる。ローリング入力は、連続するハッシュの計算に使用されるデータ値において有意な重畳が存在する入力である。すなわち、各データメッセージに対して計算されたハッシュは、メッセージのデータの重畳するサブセットまたはメッセージの一部分を表している。ローリング入力から取得した一連のデータハッシュの例を以下のように表すことができる:
=f(X,X…X
=f(X,X…XN+1
=f(X,X…XN+2
【0051】
上記において、H、HおよびHはそれぞれ、第1のデータメッセージYにおけるデータ値のサブセットX、X…XN+2から取得したデータハッシュの値を表している。上述の例では、データハッシュHへの入力およびデータハッシュHへの入力は、データ値1ぶんだけ異なっている。同様に、データハッシュHへの入力およびデータハッシュHへの入力は、データ値1ぶんだけ異なっている。択一的な例では、連続するデータハッシュ間の入力は、より多くのデータ値ぶんだけ異なっていてよい。
【0052】
非重畳入力は、連続するハッシュ値を形成するために使用されるデータ値間に重畳がない入力である。すなわち、各データメッセージに対して計算されるハッシュ値は、このメッセージの重畳していない一部分を表している。非重畳入力から取得した一連のデータハッシュの例を以下のように表すことができる:
=f(X,X…X
=f(XN+1,XN+2…X2N
=f(X2N+1,X2N+2…X3N
【0053】
上記において、H、HおよびHはそれぞれ、第1のデータメッセージYにおけるデータ値のサブセットX、X…X3Nから取得したデータハッシュの値を表している。
【0054】
ハッシュストア304は、第1のデータメッセージの受け取りより前にハッシュ計算器310によって計算された複数の先行ハッシュ値を格納するように構成されているメモリストアである。ハッシュストア304は、ハッシュ計算器310によって計算された先行ハッシュ値を格納するための複数のエントリ316,318,320を含んでいる。
【0055】
ハッシュストア304に格納されている各先行ハッシュ値は、データバッファ308が受け取った第1のデータメッセージより前にインターコネクト回路206から監視デバイス214によって読み出されたデータメッセージに対応する。第1のデータメッセージに対して計算された各ハッシュ値に対して、ハッシュストアは、次のような先行ハッシュ値、すなわちデータメッセージに対する1つまたは複数のハッシュ値の計算に使用されたデータ値のサブセットと同じデータ値のサブセットに対して計算されているが、先行クロックサイクルに対して計算されている先行ハッシュ値を格納する。たとえば、第1のクロックサイクルTに対して、センサ202によって記録された第1のデータメッセージを、基準Y1,Tによって表すことができる。ハッシュ計算器310によって第1のデータメッセージから計算された第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に格納することができる。ハッシュストアは、そこにおいてデータが受け取られた任意の数の先行クロックサイクルに対するハッシュ値を格納してよい。
【0056】
択一的な例では、第1のハッシュ値H1,Tは、第1のメッセージY1,T内に含まれているデータ値のサブセットX1,T、X2,T…XN,Tに対してのみ、ハッシュ計算器310によって計算されてよいことに留意されたい。
【0057】
第1のデータメッセージY1,Tに対する第1のハッシュ値H1,Tがハッシュ計算器310によって計算されると、これはカレントハッシュ選択器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に伝達される。
【0058】
比較器314は、ハッシュストア304とハッシュ計算器310との両方に接続されている。したがって比較器314は、ハッシュ計算器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は、動的に設定可能である。すなわち、集積回路チップ100の操作中にMを設定することができる。
【0059】
比較器314は、所定の閾値Wに対して、第1のデータハッシュのハッシュ値H1,Tと各先行ハッシュ値H1,T-2・・・1,T-Mとの差を比較するように構成されている。所定の閾値の値は、監視デバイス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である。
【0060】
一例では、監視デバイス214は、第1のハッシュ値H1,Tと1つの先行ハッシュ値との間の差が所定の閾値Wを下回っていることが判定された場合に修正処置を実行するように構成されている。この例では、第1のハッシュ値は、このハッシュ値の直前のハッシュ値のみと比較される。|H-H1,T-1|<Tの場合、修正処置が実行される。
【0061】
択一的な例では、監視デバイス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より大きい場合に、修正処置が実行される。
【0062】
上記で定められたように、第1のハッシュ値H1,Tと、ハッシュストア304に格納されている先行ハッシュ値のうちの少なくとも1つの先行ハッシュ値との間の差が所定の閾値Wを下回っていることが判定された場合、比較器314は、コミュニケータ306に信号を出力する。コミュニケータ306は、監視デバイス214の外部にある1つまたは複数の出力モジュール220と通信するように構成されている。したがって、コミュニケータ306は、出力モジュールに指示を伝達する役割を担う。これらの指示は、システムによって実行されるべき修正処置を示す。
【0063】
コミュニケータ306によって指示される修正処置は、
・センサデータが信頼できないということをユーザに通知すること、
・センサ202から取得したデータに依存する集積回路100のコンポーネントの作動を停止させること、
・センサ202を修復するように構成されている機構を作動させること、
・集積回路100の他のコンポーネントに警告信号を出力すること、
・ハードウェアイベントを出力すること、
・割り込み信号を出力すること、および
・メッセージを外部コアデバイス208,210,212に出力すること
のうちの1つまたは複数を含んでいてよい。
【0064】
カレントハッシュ選択器312はさらに、第1のハッシュ値H1,Tをハッシュストア304内に挿入するように構成されている。ハッシュストア304内に挿入されると、第1のハッシュ値は先行ハッシュ値になる。この先行ハッシュ値は、次いで、インターコネクト回路206から読み出された到来するデータメッセージから計算された未来のハッシュ値との比較に使用され得る。一例では、第1のハッシュ値H1,Tが、比較器314によって対応する先行ハッシュ値と比較されている間に、カレントハッシュ選択器312によって第1のハッシュ値H1,Tがハッシュストア内に挿入される。すなわち、第1のハッシュ値H1,Tと、これに対応する先行ハッシュ値との比較と、このハッシュ値のハッシュストア304への格納とは、同時に行われる。択一的な例では、第1のハッシュ値H1,Tは、比較器314によって処理された後、ハッシュストアに格納される。換言すれば、第1のハッシュ値の比較および格納は、同じクロックサイクル内または連続するクロックサイクル内のいずれかで行われてよい。
【0065】
図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を計算して比較してよい。このようにして、各監視デバイスは、データメッセージに対するデータ値の自身のサブセットに対する処理を同時に実行することができる。これによって、センサデータの処理に付随するレイテンシがさらに短縮されるだろう。
【0066】
図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のうちの一方のみに書き込まれてよい。データメッセージが書き込まれるメモリは、そのメモリの特性に関連して選択されてよい。データメッセージが所与のメモリに書き込まれるか否かを判定することができる特性の例には、メモリに含まれるストレージの量、メモリへのデータメッセージの書き込みに付随するレイテンシ(これは、メモリがセンサからどの程度離れているかの関数である)、およびメモリがサポートする帯域幅の広さが含まれる。
【0067】
図4に示されているシステム回路102のインターコネクト回路は、メモリコントローラ412およびセンサコントローラ416をさらに含んでいる。センサコントローラ416は、センサ402とSoCインターコネクト414との両方に接続されている。センサコントローラ416は、センサ402に指示を伝達し、センサの性能をコントロールする役割を担う。センサコントローラ416はさらに、センサ402によって記録されたデータメッセージを受け取り、それらのメッセージを、SoCインターコネクト414を介してシステム回路102の他のコンポーネントに伝達する役割を担う。メモリコントローラ412は、メモリ404とSoCインターコネクト414との両方に接続されている。メモリコントローラ412は、メモリに書き込む、またはメモリに格納するために、データメッセージをSoCインターコネクトから受け取る役割と、格納されているデータメッセージを、SoCインターコネクト414を介してコアデバイスに伝達する役割との両方を担う。
【0068】
SoCインターコネクト414は、コアデバイス406,408,410,418,420、センサコントローラ416およびメモリコントローラ412に接続されている。したがって、SoCインターコネクト414は、(センサコントローラ416を介して)センサ402とメモリ404とコアデバイスとの間でデータメッセージを転送する役割を担う。SoCインターコネクトのトポロジはSoCに依存するが、システム回路周辺の通信を搬送する以下の種類のネットワークのいずれか1つまたは組み合わせを含んでいてよい:バスネットワーク、リングネットワーク、ツリーネットワーク、またはメッシュネットワーク。一例では、SoCインターコネクト414は、データバスである。
【0069】
図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のいずれかによって出力されたデータについてさらなる分析を実行するように構成されている。
【0070】
分析CPUは、メッセージエンジン428および内部コミュニケータ430によって、1つまたは複数の監視デバイス422,424,426に接続されている。メッセージエンジン428は、監視回路のすべてのコンポーネントを互いに接続し、これらのコンポーネント間でメッセージを伝達するように構成されている。SoCインターコネクト414と同様に、メッセージエンジンのトポロジはSoCに依存するが、システム回路周辺の通信を搬送する以下の種類のネットワークのいずれか1つまたは組み合わせを含んでいてよい:バスネットワーク、リングネットワーク、ツリーネットワーク、またはメッシュネットワーク。一例では、メッセージエンジン428は、データバスである。内部コミュニケータ430は、分析CPUとメッセージエンジン428との間でメッセージを中継するように構成されている。
【0071】
出力モジュール436は、外部デバッガである。外部デバッガ436は、センサ故障の原因である、集積回路チップ100または周囲のシステム内の欠陥または問題を解決するために使用される。外部デバッガ436によって使用される戦術は、対話型デバッグ、コントロールフロー分析、ユニットテスト、統合テスト、ログファイル分析、アプリケーションレベルまたはシステムレベルでの監視、メモリダンプおよび/またはプロファイリングを含んでいてよい。外部デバッガ436は、外部コミュニケータ434によってメッセージエンジン428に接続されている。外部コミュニケータ434は、外部デバッガ436とメッセージエンジン428との間でメッセージを中継するように構成されている。
【0072】
図5は、図2または図4に示されている集積回路チップデバイスを使用して、センサからのメッセージを監視する例示的な方法のフローチャートである。上述のように、データメッセージは、集積回路チップ100に接続されているセンサ202,402からの測定データを含んでいる。この方法は、ステップ502で始まり、ここでは第1のデータメッセージY1,Tが1つまたは複数の監視デバイス214,216,218を使用して、集積回路のインターコネクト回路206から読み出される。第1のデータメッセージY1,Tは、第1のクロックサイクルTの間、センサ202によって記録される。第1のデータメッセージY1,Tは、監視デバイスのプロセッサ302内に配置されているデータバッファ308によって受け取られる。一例では、データメッセージY1,Tは、データ値の1つのサブセットXのみを含んでいる。択一的な例では、データメッセージは、データ値の複数のサブセットを含んでいる。
【0073】
ステップ504において、監視デバイス214のプロセッサ302のハッシュ計算器310が、第1のデータメッセージY1,Tに対して、ハッシュ値H1,Tを伴う第1のデータハッシュを計算する。上記で要約したように、第1のハッシュ値H1,Tは、受け取ったデータメッセージに含まれるすべてのデータ値を表していてよい、または択一的にこのデータメッセージ内に含まれるデータ値のサブセットのみを表していてよい。第1のハッシュ値H1,Tが計算されると、このハッシュ値がカレントハッシュ選択器312に伝達される。カレントハッシュ選択器312は、第1のハッシュ値H1,Tを使用して、ハッシュストア304に格納されている対応する先行ハッシュ値を調べる。これらの対応する先行ハッシュ値は、比較器314によってハッシュストア304から読み出される。
【0074】
ステップ506において、比較器314は、第1のハッシュ値H1,Tを、ハッシュストア304に格納されている1つまたは複数の先行ハッシュ値H1,T-1…H1,T-Mと比較する。上述したように、ハッシュストア304に格納されている各先行ハッシュ値は、第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内に格納されている所定の閾値と比較される。
【0075】
ステップ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以上である)ことを比較器314が判定した場合、コミュニケータ306によって指示は伝達されない。したがって、1つまたは複数の出力モジュール220は、修正処置を実行しない。代わりに本方法はステップ510をスキップし、ステップ512に進む。
【0076】
比較器314が、第1のハッシュ値と先行ハッシュ値のうちの少なくとも1つの先行ハッシュ値との間の差が所定の閾値を下回っていることを判定した場合、ステップ510において、比較器はコミュニケータ306に信号を出力する。この信号を受け取ると、コミュニケータ306は修正処置の実行を指示する。すなわち、コミュニケータ306は、監視デバイス214の外部の1つまたは複数のモジュールに1つまたは複数の指示を伝達する。これらの指示は、システムによって実行される修正処置を表している。
【0077】
ステップ512において、第1のハッシュ値H1,Tがハッシュストア304内に格納される。したがって、第1のハッシュ値が先行ハッシュ値となり、後続の到来するハッシュ値と比較されてよく、これによって、これらの後続するハッシュ値がセンサ故障の発生を示しているか否かを判定することができる。次に、方法はステップ514に進み、ここではステップ502への入力として、Y1,TがY1,T+1に置き換えられる。すなわち、Y1,T1が記録されたクロックサイクルの後続のクロックサイクルにおいてセンサによって記録されたデータメッセージが、データバッファ308によって受け取られる。後続のデータメッセージY1,T+1は、ステップ504において新たなハッシュ値H1,T+1を計算するためにハッシュ計算器310によって使用され、この新たなハッシュ値は、先行ハッシュ値H1,T、H1,T-1、H1,T-2…H1,T-Mなどと比較される。
【0078】
図5に示された方法は、ハッシュ計算器310によって計算されたハッシュ値が、類似のデータ値に対して類似している場合に適している。ハッシュ値が、類似のデータ値に対して類似している場合、閾値Wを使用して、連続するクロックサイクルにわたってどの程度までハッシュ値が変化するかを明らかにすることができる。図6は、類似のハッシュ値が類似のデータ値に対して生成されない、図2または図4に示された集積回路チップデバイスを使用してセンサからのメッセージを監視する択一的な例示的な方法を示すフローチャートである。すなわち、類似のデータ値に対してハッシュ計算器310によって計算されたハッシュ値が大幅に異なる値を有する可能性があり、ここではハッシュ値間の差は、データ値間の差そのものとは無関係である。この例では、ハッシュ値が、連続するクロックサイクルにわたって変化する程度を示す一貫した閾値は得られない。その代わりに、ハッシュ値間の同等性を観測することによって、センサ故障を識別することができる。すなわち、第1のハッシュ値が1つまたは複数の先行ハッシュ値と同じであるということは、センサ故障が発生しているということと判定され得る。
【0079】
図6のステップ602~ステップ604は、図5のステップ502~ステップ506に対応する。すなわち、ステップ602において、第1のデータメッセージY1,Tが、1つまたは複数の監視デバイス208,210,212を使用して集積回路のインターコネクト回路206から読み出される。ステップ604において、監視デバイス214のプロセッサ302のハッシュ計算器310が、第1のデータメッセージY1,Tに対して、第1のハッシュ値H1,Tを計算する。
【0080】
ステップ608において、比較器314は、第1のハッシュ値H1,Tと先行ハッシュ値H1,T-Zとの間の差を比較し、ここでZ=1、2…Mである。比較器314が、H1,TがH1,T-Zと等しいと判定した場合、換言すれば、|H1,T-H1,T-Z|=0であると判定した場合、方法は、ステップ610に進み、ステップ610において、コミュニケータ306は、集積回路の出力モジュール220に、修正処置を実行するように指示する。この指示に応答して、出力モジュール220は、修正処置を実行する。比較器314が、H1,TがH1,T-Zと等しくないと判定した場合、換言すれば、|H1,T-H1,T-Z|>0であると判定した場合、コミュニケータ306によって指示は伝達されない。したがって、1つまたは複数の出力モジュール220は、修正処置を実行しない。代わりに本方法はステップ610をスキップし、ステップ612に進む。
【0081】
図6のステップ610~ステップ614は、図5のステップ510~ステップ514に対応する。すなわち、ステップ610において、コミュニケータ306が、集積回路の出力モジュール220に、修正処置を実行するように指示する。ステップ612において、第1のハッシュ値H1,Tがハッシュストア304に格納される。ステップ614において、ステップ602への入力として、Y1,TがY1,T+1に置き換えられる。
【0082】
上述したように、一例では、比較器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内のメモリに格納することができる。
【0083】
上述したように、一例では、集積回路チップに接続されているセンサはカメラであり、集積回路チップの1つまたは複数の監視デバイスによって読み出される各データメッセージは、第1のクロックサイクルTにわたって捕捉されたイメージフレームである。この例では、集積回路チップ、特に1つまたは複数の監視デバイスを使用して、フレーム内のスタックピクセルの発生を監視することができる。すなわち、モニタ214のプロセッサ302の比較器314が、第1のハッシュ値Hと、ハッシュストアに格納されている少なくとも1つの対応する先行ハッシュ値H1,T-1、H1,T-2などとの間の差が所定の閾値Wを下回っていると判定した場合、この判定は、Hの計算に使用されたフレームの一部分がスタックピクセルを含んでいることを示す。
【0084】
センサがカメラである例の1つの実装において、上述した集積回路チップを、車両、たとえば自律型車両内に挿入することができる。この例では、1つまたは複数の出力モジュール220は、車用セーフティコントローラを含んでいる。したがって、監視デバイス214のコミュニケータ306によって指示可能な1つまたは複数の修正処置は、
・カメラビューが信頼できないということを車両のオペレータに通知すること、
・操作がカメラの支援に依存している車のサブシステムの作動を停止させること、
・故障の原因となった汚れをカメラから除去することができるカメラワッシャを作動させること、
・車用セーフティコントローラが取るべき特定の処置を決定することができるように、車用セーフティコントローラに故障を通知すること
を含んでいてよい。
【0085】
一例では、センサはイメージセンサであるが、択一的に、連続的なデータを記録することができるあらゆるタイプのセンサが、集積回路チップに接続されていてよい。メッセージを監視することができる択一的なセンサの例には、温度センサ、近接センサ、加速度計、圧力センサ、流量センサ、湿度センサまたはタッチセンサが含まれ得る。たとえば、センサは、サーモスタットであってよく、集積回路チップは、サーモスタットによって記録された温度を監視するために使用されてよい。
【0086】
本明細書に記載されたシステムおよび方法は、ソフトウェアの実装に依拠する相応のシステムと比較した場合に、センサ故障を識別するために要する時間の長さを大幅に低減する。すなわち、監視デバイスによるハッシュ値の計算および比較は、僅かなハードウェアクロックサイクルのみにおいて実行され得る。1つまたは複数の監視デバイスによってセンサ故障が識別されると、これらのデバイスは、時間遅延をさらに低減するために、低レイテンシメカニズムを使用して修正処置を実行するように適切な出力モジュールが指示されることを保証することができる。
【0087】
記載されているSoCは、コンピューティングベースデバイス内に適切に組み込まれている。コンピューティングベースデバイスは、電子デバイスであってよい。適切には、コンピューティングベースデバイスは、本明細書に記載の方法を実施するために、デバイスの動作をコントロールするためのコンピュータ実行可能な指示を処理する1つまたは複数のプロセッサを含んでいる。コンピュータ実行可能な指示は、メモリのような任意のコンピュータ可読媒体を使用して提供されてよい。本明細書に記載の方法のいくつかは、有形の記憶媒体上の機械可読形式のソフトウェアによって実施可能である。本明細書に記載の方法のいくつかを実施するために、コンピューティングベースデバイスにソフトウェアを提供することができる。
【0088】
上記の説明は、システム回路と監視回路とを、同じSoC上に含まれているものとして説明している。択一的な実装では、システム回路および監視回路は、MCMの2つ以上の集積回路チップにわたって含まれている。MCMでは、これらの集積回路チップは典型的に、中間基板上に積層されるか、または中間基板上に隣接して配置される。いくつかのシステム回路が、MCMの1つの集積回路チップ上に配置されてよく、他のシステム回路が、MCMの別の集積回路チップ上に配置されてよい。同様に、監視回路を、MCMの2つ以上の集積回路チップにわたって分散させてよい。したがって、SoCのコンテキストにおいて上述した方法および装置は、MCMのコンテキストにおいても適用される。
【0089】
本出願人は、本明細書に記載された各個別の特徴および2つ以上のこのような特徴のあらゆる組み合わせを、このような特徴または特徴の組み合わせが本明細書に開示されたあらゆる問題を解決するか否かにかかわらず、特許請求の範囲に限定されることなく、このような特徴または組み合わせが当業者の一般的な知識に照らして本明細書に全体として基づいて実行可能な範囲で、単独で開示する。出願人は、本発明の態様が、任意のそのような個々の特徴または特徴の組み合わせから構成され得ることを示している。上記の説明を考慮すれば、本発明の範囲内で様々な変更を行い得ることは、当業者には明らかであろう。
図1
図2
図3
図4
図5
図6