(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-19
(45)【発行日】2023-12-27
(54)【発明の名称】集積回路チップデバイスにおけるメッセージのルーティング
(51)【国際特許分類】
G06F 15/177 20060101AFI20231220BHJP
H04L 12/44 20060101ALI20231220BHJP
G06F 15/78 20060101ALI20231220BHJP
G06F 15/173 20060101ALI20231220BHJP
【FI】
G06F15/177 C
H04L12/44 Z
G06F15/78 530
G06F15/173 682
【外国語出願】
(21)【出願番号】P 2020132834
(22)【出願日】2020-08-05
【審査請求日】2022-03-16
(32)【優先日】2019-08-16
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】520161964
【氏名又は名称】シーメンス インダストリー ソフトウェア インコーポレイテッド
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100135633
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】スチュワート・キャラム
【審査官】坂東 博司
(56)【参考文献】
【文献】欧州特許第03296781(EP,B1)
【文献】米国特許出願公開第2014/0181573(US,A1)
【文献】国際公開第2019/040587(WO,A1)
【文献】米国特許第09710265(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/177
H04L 12/44
G06F 15/78
G06F 15/173
(57)【特許請求の範囲】
【請求項1】
集積回路チップデバイスであって、当該集積回路チップデバイスは、
システム回路と、
前記システム回路を監視するための監視回路と
を含み、
前記監視回路は、前記集積回路チップデバイスにわたって通信をルーティングするための、ツリーベース構造で接続された複数のユニットを含み、
前記ツリーベース構造は、ルートユニットから延在している複数の分岐を含み、それぞれの分岐は、
前記ルートユニット、宛先ユニット、および、前記ルートユニットと前記宛先ユニットとの間にある複数の
中間ユニット
とを含み、
前記複数の中間ユニットのそれぞれの
中間ユニットは、前記分岐内における上位にある単一のユニットと、前記分岐内における下位にある単一のユニットとに接続されており、それにより、前記ルートユニットと
前記複数の分岐のうちの1つの分岐の
前記宛先ユニットとの間の通信を、
それぞれの分岐の
前記複数の中間ユニットを介してルーティング可能であり、
前記ツリーベース構造は、
前記複数の中間ユニットのそれぞれの中間ユニットが、隣接し合う異なる分岐の少なくとも1つの追加的な中間ユニットに接続されるように、隣接し合う
異なる分岐の
中間ユニット同士を接続する
複数のクロスリンクを含み、
前記複数のクロスリンクのそれぞれのクロスリンクは、前記ルートユニットと
、前記複数の分岐のうちの一
つの分岐の
前記宛先ユニットとの間の通信を、前記宛先ユニットと同じ分岐内にある
、前記複数の中間ユニットのうちの1つの中間ユニットが不良であるとみなされたことに応答して、当該クロスリンクが接続している前記
複数の分岐のうちの
他の分岐を介してルーティングするよう
に構成されている、
集積回路チップデバイス。
【請求項2】
不良な前記中間ユニットは、前記クロスリンクが接続している前記ユニットのうちの一
つに隣接している、
請求項1記載の集積回路チップデバイス。
【請求項3】
前記複数の中間ユニットのそれぞれの
中間ユニットは、
ルーティングを変更できない構成不可能なリンクによって前記分岐内における上位にあるユニットに接続されており、かつ
ルーティングを変更できない構成不可能なリンクによって前記分岐内における下位にあるユニットに接続されている、
請求項1または2記載の集積回路チップデバイス。
【請求項4】
それぞれのクロスリンクは、
ルーティングを変更するように構成可能である、
請求項1から3までのいずれか1項記載の集積回路チップデバイス。
【請求項5】
第1の分岐の第1のユニットと第2の分岐の第1のユニットとを接続するクロスリンクは、
前記ルートユニットから前記第1の分岐の前記第1のユニットへの通信を、前記第2の分岐の宛先ユニットへと前記第2の分岐の前記第1のユニットにルーティングし、かつ
前記第2の分岐の前記宛先ユニットから前記第2の分岐の前記第1のユニットへの通信を、前記ルートユニットへと前記第1の分岐の前記第1のユニットにルーティングする
ように構成可能である、
請求項4記載の集積回路チップデバイス。
【請求項6】
前記第1の分岐の前記第1のユニットは、前記ルートユニットから再構成命令を受信したことに応答して、
前記第2の分岐の前記宛先ユニットへの受信した通信を、前記クロスリンクを介してルーティングし、かつ
前記クロスリンクから受信した通信を、前記ルートユニットにルーティングする
ように、前記第1の分岐の前記第1のユニットを再構成するように構成されている、
請求項5記載の集積回路チップデバイス。
【請求項7】
前記第1の分岐の前記第1のユニットは、前記ルートユニットから前記再構成命令を受信したことに応答して、再構成命令を、前記クロスリンク上で前記第2の分岐の前記第1のユニットに送信するように構成されている、
請求項6記載の集積回路チップデバイス。
【請求項8】
前記第2の分岐の前記第1のユニットは、前記クロスリンク上で前記第1の分岐の前記第1のユニットから前記再構成命令を受信したことに応答して、
前記クロスリンクから受信した通信を、前記第2の分岐の前記宛先ユニットにルーティングし、かつ
前記宛先ユニットから受信した通信を、前記クロスリンクを介して前記第1の分岐の前記第1のユニットにルーティングする
ように、前記第2の分岐の前記第1のユニットを再構成するように構成されている、
請求項7記載の集積回路チップデバイス。
【請求項9】
前記クロスリンクは、
前記ルートユニットから前記第2の分岐の前記第1のユニットへの通信を、前記第1の分岐の宛先ユニットへと前記第1の分岐の前記第1のユニットにルーティングし、かつ
前記第1の分岐の前記宛先ユニットから前記第1の分岐の前記第1のユニットへの通信を、前記ルートユニットへと前記第2の分岐の前記第1のユニットにルーティングする
ように構成可能である、
請求項5から8までのいずれか1項記載の集積回路チップデバイス。
【請求項10】
前記第2の分岐の前記第1のユニットは、前記ルートユニットから再構成命令を受信したことに応答して、
前記第1の分岐の前記宛先ユニットへの受信した通信を、前記クロスリンクを介してルーティングし、かつ
前記クロスリンクから受信した通信を、前記ルートユニットにルーティングする
ように、前記第2の分岐の前記第1のユニットを再構成するように構成されている、
請求項9記載の集積回路チップデバイス。
【請求項11】
前記第2の分岐の前記第1のユニットは、前記ルートユニットから前記再構成命令を受信したことに応答して、再構成命令を、前記クロスリンク上で前記第1の分岐の前記第1のユニットに送信するように構成されている、
請求項10記載の集積回路チップデバイス。
【請求項12】
前記第1の分岐の前記第1のユニットは、前記クロスリンク上で前記第2の分岐の前記第1のユニットから前記再構成命令を受信したことに応答して、
前記クロスリンクから受信した通信を、前記第1の分岐の前記宛先ユニットにルーティングし、かつ
前記宛先ユニットから受信した通信を、前記クロスリンクを介して前記第2の分岐の前記第1のユニットにルーティングする
ように、前記第1の分岐の前記第1のユニットを再構成するように構成されている、
請求項11記載の集積回路チップデバイス。
【請求項13】
前記複数の中間ユニットのそれぞれ
中間のユニットは、
下位にあるユニットからの通信を受信するための入力部と、前記下位にあるユニットに通信を送信するための出力部とを有する下位ポートと、
上位にあるユニットに通信を送信するための出力部と、前記上位にあるユニットからの通信を受信するための入力部とを有する上位ポートと
を含む、請求項1から12までのいずれか1項記載の集積回路チップデバイス。
【請求項14】
前記複数の中間ユニットのそれぞれの
中間ユニットは、前記下位ポートの出力部および前記上位ポートの出力部のうちの一方を、
それぞれの中間ユニットに接続されたクロスリンク上に選択的にルーティングするためのマルチプレクサ
を含む、請求項13記載の集積回路チップデバイス。
【請求項15】
前記複数の中間ユニットのそれぞれの中間ユニットは、当該ユニットに接続されたクロスリンクからの通信を、前記上位ポートの入力部および前記下位ポートの入力部のうちの一方に選択的にルーティングするためのデマルチプレク
サ
を含む、請求項13記載の集積回路チップデバイス。
【請求項16】
前記マルチプレクサは、前記ルートユニットから受信した再構成命令に応答して、前記下位ポートの
前記出力部または前記上位ポートの
前記出力部を選択するように構成されて
いる、請求項14記載の集積回路チップデバイス。
【請求項17】
前記デマルチプレクサは、前記ルートユニットから受信した再構成命令に応答して、前記上位ポートの
前記入力部または前記下位ポートの
前記入力部を選択するように構成されている、請求項
15記載の集積回路チップデバイス。
【請求項18】
前記複数の中間ユニットのそれぞれの中間ユニットは、前記下位にあるユニットから受信した通信、および前記クロスリンクから受信した通信のうちの一方を、前記下位ポートの前記入力部に選択的にルーティングするためのスイッチを含む、請求項13記載の集積回路チップデバイス。
【請求項19】
前記複数の中間ユニットのそれぞれの中間ユニットは、前記下位にあるユニットが不良であるとみなされたことに応答して、前記下位にあるユニットに通信が送信されることを阻止するための、前記下位ポートの前記出力部に接続されたゲートを含む、請求項13記載の集積回路チップデバイス。
【請求項20】
前記宛先ユニットはローカルサブシステムを含み、前記宛先ユニットは、前記通信を前記ローカルサブシステムにルーティングするように構成されている、請求項19記載の集積回路チップデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
背景
本開示は、集積回路チップデバイス上の通信プロトコルに関し、特に、集積回路チップデバイスの回路を介してメッセージをルーティングするためのメカニズムに関する。
【0002】
システムオンチップ(SoC)デバイスでは、組み込みシステムの複数のコアデバイスが単一のチップ上に集積されている。組み込みシステムにおけるトラフィックは、典型的に、コアデバイス間のバスを介して伝送される。トラフィックを監視するために、SoC上に監視機能を組み込むことが知られている。例えば、それぞれのコアデバイスには、それらのコアデバイスへのトラフィックおよびそれらのコアデバイスからのトラフィックを監視するために1つの監視ユニットを関連付けることができる。これらの監視ユニットは、収集されたトレースデータのようなデータを生成する。典型的に、監視ユニットは、オフチップの分析器の制御下で動作し、コアデバイスのあらゆる不適切な動作を検出するために、そのオフチップの分析器に各自のデータを送信する。
【0003】
監視回路専用のSoCのオンチップ領域を最小化することが望ましい。監視ネットワークのための効率的な構成の1つは、ツリーベースのトポロジである。このようなトポロジでは、ルートユニットが、監視ネットワークをチップの出力ポートに接続する。そのルートユニットからSoCを介して複数の分岐が延在しており、それぞれの分岐は、直列に接続された多数のユニットを有する。それぞれのユニットは、各自の分岐を介して、ルートユニットへのメッセージおよびルートユニットからのメッセージをルーティングすることが可能である。このようなネットワークは、監視回路のメッセージをSoCにわたって伝送するために効率的である。しかしながら、ツリーベースのトポロジでは、或る1つのユニットに障害が発生すると、その障害が発生したユニットの分岐内において上位に接続されているユニットは、もはやルートユニットと通信できなくなる。この状況では、監視回路の単一のユニットで障害が発生した結果として、SoC全体が破棄されるおそれがある。
【0004】
ツリーベースのトポロジを有するノードネットワークでは、ツリーを複製することにより、換言すれば、第1のノードネットワークと同じツリーベースのトポロジを有する、第2のノードネットワークを利用することにより、単一のノードの障害から保護することが知られている。第1のネットワーク内のノードに障害が発生した場合には、第2のネットワーク内の対応するノードを利用して、障害が発生したノードの代わりにすることができる。この冗長的なツリーアプローチは、効果的ではあるが、チップ上にこのネットワーク専用の領域を複製する必要がある。
【0005】
したがって、監視ネットワーク専用のSoCのオンチップ領域を最小化しながら、監視ネットワークの障害に対してよりロバストなSoCに対するニーズが存在する。
【0006】
発明の概要
本開示の第1の態様によれば、集積回路チップデバイスであって、当該集積回路チップデバイスは、システム回路と、システム回路を監視するための監視回路とを含み、監視回路は、集積回路チップデバイスにわたって通信をルーティングするための、ツリーベース構造で接続された複数のユニットを含み、ツリーベース構造は、ルートユニットから延在している複数の分岐を含み、それぞれの分岐は、複数のユニットを含み、それぞれのユニットは、分岐内における上位にある単一のユニットと、分岐内における下位にある単一のユニットとに接続されており、それにより、ルートユニットと或る1つの分岐の宛先ユニットとの間の通信を、当該分岐の中間ユニットを介してルーティング可能であり、ツリーベース構造は、隣接し合う分岐の対応するユニット同士を接続するクロスリンクを含み、それぞれのクロスリンクは、ルートユニットと、当該クロスリンクが接続している分岐のうちの一方の分岐の宛先ユニットとの間の通信を、宛先ユニットと同じ分岐内にある中間ユニットが不良であるとみなされたことに応答して、当該クロスリンクが接続している分岐のうちの他方の分岐を介してルーティングするように有効化(enabling)されるように構成されている、集積回路チップデバイスが提供される。
【0007】
不良な中間ユニットは、クロスリンクが接続しているユニットのうちの一方に隣接し得る。
【0008】
それぞれのユニットは、構成不可能なリンク(non-configurable link)によって分岐内における上位にあるユニットに接続され、かつ構成不可能なリンクによって分岐内における下位にあるユニットに接続され得る。
【0009】
それぞれのクロスリンクは、構成可能(configurable)であり得る。
【0010】
第1の分岐の第1のユニットと第2の分岐の第1のユニットとを接続するクロスリンクは、ルートユニットから第1の分岐の第1のユニットへの通信を、第2の分岐の宛先ユニットへと第2の分岐の第1のユニットにルーティングし、かつ第2の分岐の宛先ユニットから第2の分岐の第1のユニットへの通信を、ルートユニットへと第1の分岐の第1のユニットにルーティングするように構成可能であり得る。
【0011】
第1の分岐の第1のユニットは、ルートユニットから再構成命令を受信したことに応答して、第2の分岐の宛先ユニットへの受信した通信を、クロスリンクを介してルーティングし、かつクロスリンクから受信した通信を、ルートユニットにルーティングするように、第1の分岐の第1のユニットを再構成するように構成され得る。
【0012】
第1の分岐の第1のユニットは、ルートユニットから再構成命令を受信したことに応答して、再構成命令を、クロスリンク上で第2の分岐の第1のユニットに送信するように構成され得る。
【0013】
第2の分岐の第1のユニットは、クロスリンク上で第1の分岐の第1のユニットから再構成命令を受信したことに応答して、クロスリンクから受信した通信を、第2の分岐の宛先ユニットにルーティングし、かつ宛先ユニットから受信した通信を、クロスリンクを介して第1の分岐の第1のユニットにルーティングするように、第2の分岐の第1のユニットを再構成するように構成され得る。
【0014】
クロスリンクは、ルートユニットから第2の分岐の第1のユニットへの通信を、第1の分岐の宛先ユニットへと第1の分岐の第1のユニットにルーティングし、かつ第1の分岐の宛先ユニットから第1の分岐の第1のユニットへの通信を、ルートユニットへと第2の分岐の第1のユニットにルーティングするように構成可能であり得る。
【0015】
第2の分岐の第1のユニットは、ルートユニットから再構成命令を受信したことに応答して、第1の分岐の宛先ユニットへの受信した通信を、クロスリンクを介してルーティングし、かつクロスリンクから受信した通信を、ルートユニットにルーティングするように、第2の分岐の第1のユニットを再構成するように構成され得る。
【0016】
第2の分岐の第1のユニットは、ルートユニットから再構成命令を受信したことに応答して、再構成命令を、クロスリンク上で第1の分岐の第1のユニットに送信するように構成され得る。
【0017】
第1の分岐の第1のユニットは、クロスリンク上で第2の分岐の第1のユニットから再構成命令を受信したことに応答して、クロスリンクから受信した通信を、第1の分岐の宛先ユニットにルーティングし、かつ宛先ユニットから受信した通信を、クロスリンクを介して第2の分岐の第1のユニットにルーティングするように、第1の分岐の第1のユニットを再構成するように構成され得る。
【0018】
それぞれのユニットは、下位にあるユニットからの通信を受信するための入力部と、下位にあるユニットに通信を送信するための出力部とを有する下位ポートと、上位にあるユニットに通信を送信するための出力部と、上位にあるユニットからの通信を受信するための入力部とを有する上位ポートとを含み得る。
【0019】
それぞれのユニットは、下位ポートの出力部および上位ポートの出力部のうちの一方を、当該ユニットに接続されたクロスリンク上に選択的にルーティングするためのマルチプレクサを含み得る。
【0020】
マルチプレクサは、ルートユニットから受信した再構成命令に応答して、下位ポートの出力部または上位ポートの出力部を選択するように構成され得る。
【0021】
それぞれのユニットは、当該ユニットに接続されたクロスリンクからの通信を、上位ポートの入力部および下位ポートの入力部のうちの一方に選択的にルーティングするためのデマルチプレクサを含み得る。
【0022】
デマルチプレクサは、ルートユニットから受信した再構成命令に応答して、上位ポートの入力部または下位ポートの入力部を選択するように構成され得る。
【0023】
それぞれのユニットは、下位にあるユニットから受信した通信、およびクロスリンクから受信した通信のうちの一方を、下位ポートの入力部に選択的にルーティングするためのスイッチを含み得る。
【0024】
それぞれのユニットは、下位にあるユニットが不良であるとみなされたことに応答して、その下位にあるユニットに通信が送信されることを阻止するための、下位ポートの出力部に接続されたゲートを含み得る。
【0025】
宛先ユニットは、ローカルサブシステムを含むことができ、宛先ユニットは、通信をローカルサブシステムにルーティングするように構成され得る。
【0026】
図面の簡単な説明
以下では、本開示を、添付の図面を参照しながら例として説明する。
【図面の簡単な説明】
【0027】
【
図1】集積回路チップデバイス上の例示的な監視ネットワークの概略図である。
【
図2】集積回路チップデバイス上の例示的な監視ネットワークの概略図である。
【
図3】集積回路チップデバイス上の監視ネットワークの例示的なツリーベースのトポロジの概略図である。
【
図4】クロスリンクを有効化するためのメカニズムを説明するフローチャートである。
【
図5】SoC内における不良なユニットの一例を示す図である。
【
図6】SoC内における不良なユニットの別の例を示す図である。
【
図7】クロスリンクによって接続された分岐ユニットの例示的な内部構造を示す図である。
【
図8】クロスリンクを介してアップストリームメッセージおよびダウンストリームメッセージを伝送するように構成された、
図7の分岐ユニットを示す図である。
【
図9】ユニットが不良であることを判定して、その後の通信においてその不良なユニットをバイパスするためのメカニズムを説明するフローチャートである。
【
図10】
図3の監視ネットワーク全体にわたってブロードキャストされているイベントメッセージの一例を示す図である。
【
図11】クロスリンクが利用されている、
図3の監視ネットワーク全体にわたってブロードキャストされているイベントメッセージの一例を示す図である。
【
図12】クロスリンクが利用されている、
図3の監視ネットワーク全体にわたってブロードキャストされているイベントメッセージの別の例を示す図である。
【0028】
詳細な説明
以下の開示は、SoC上またはMCM上に実装するために適した監視ネットワークについて記載する。
【0029】
図1~
図3、
図5~
図8、および
図10~
図12は、例示的なシステムアーキテクチャと、これらのシステムアーキテクチャの内部のコンポーネントとの概略図である。これらの図面は、機能ブロックの観点から構造を示している。当技術分野で周知の機能を実行するためのいくつかの機能ブロックは、これらの図面から所々省略されている。
図4および
図9は、監視回路を介してメッセージをルーティングする方法を説明するフローチャートである。それぞれのフローチャートは、それらのフローチャートの方法を実行することができる順序を図示している。しかしながら、これらのフローチャートは、記載されている方法を、図示されている順序で実装することに制限することを意図したものではない。方法のステップを、フローチャートに図示されている順序に代わる順序で実行してもよい。
【0030】
図1は、SoC100のための例示的な監視ネットワークの一般的な構造を示す。監視回路101は、システム回路102を監視するように配置されている。例えば、安全性またはセキュリティ上の懸念に関連するコアデバイスの不適切な動作を検出することが目的である。
図2は、複数のコアデバイスと1つの通信インターフェースとを含む、例示的なシステム回路を示す。SoCのコアデバイス201,202,および203は、それぞれ監視回路101に接続されている。
図2は、3つのコアデバイスを示しているが、好適には、任意の個数のコアデバイスを監視ネットワークに組み込むことができる。例示的なコアデバイスには、DSP(デジタルシグナルプロセッサ)、ビデオプロセッサ、アプリケーションプロセッサまたはCPU(中央処理装置)、グラフィックプロセッサ、システムメモリ、バス、システムインターコネクト、RTOS(リアルタイムオペレーティングシステム)、ソフトウェア、データ、カスタム回路、およびデータエンジンが含まれる。しかしながら、
図2のコアデバイスとして監視ネットワークに組み込むために、SoCのあらゆるコンポーネントが適している。コアデバイスは、チップ上の他のデバイスのエミュレータまたはシミュレータであり得る。例えば、コアデバイスは、プロセッサをエミュレートすることができる。
【0031】
監視回路は、コアデバイスの動作を操作することと、コアデバイスの動作を監視することとが可能であり得る。監視回路は、通信インターフェース204に接続されている。通信インターフェース204は、オフチップのエンティティと通信するように構成可能である。例えば、監視回路101は、通信インターフェース204を介してオフチップの分析器と通信することができる。通信インターフェース204は、他のオンチップのエンティティと通信するようにも構成可能である。例えば、監視回路101は、通信インターフェース204を介してオンチップの分析器と通信することができる。
図2は、1つの通信インターフェースを示しているが、任意の個数の通信インターフェースをSoC上に組み込むことができる。実装される通信インターフェースは、確立されるべき接続の種類に応じて選択される。例示的な通信インターフェースには、JTAG、並列トレース入力/出力、およびAuroraベースの高速シリアルインターフェースと、USB、イーサネット、RS232、PCIe、およびCANのようなシステムインターフェースの再利用とが含まれる。
【0032】
図3は、SoCの例示的な構造を示す。SoCの監視回路を介してメッセージをルーティングするための複数のルーティングユニットが、ツリーベース構造で接続されている。この例では、10個のルーティングユニット301,302,303,304,305,306,307,308,309,および310が示されている。ユニット301は、ツリーベース構造の基部にあるルートユニットである。ルートユニット301の下位ポート301aは、通信インターフェース311に接続されている。ルートユニット301の上位ポート301b,301c,および301dから、ツリーベース構造の複数の異なる分岐が延在している。したがって、ルートユニット301は、ツリーベース構造のそれぞれの分岐の基部にある。それぞれの分岐は、ルートユニットの上位にある1つまたは複数のユニットを含む。第1の分岐は、上位ポート301bから延在している。この第1の分岐は、ユニット302,305,および308を含む。第2の分岐は、上位ポート301cから延在している。この第2の分岐は、ユニット303,306,および309を含む。第3の分岐は、上位ポート301dから延在している。この第3の分岐は、ユニット304,307,および310を含む。
【0033】
分岐内におけるユニット同士は、直列に接続されている。それぞれのユニットは、分岐内における各自の下位にある単一のユニットに接続されている。それぞれのユニットは、分岐内における各自の上位にある単一のユニット(存在する場合)に接続されている。それぞれのユニットは、分岐内における各自の下位にあるユニットと通信するための下位ポートを有する。それぞれのユニットは、分岐内における各自の上位にあるユニットと通信するための上位ポートを有する。下位ポートおよび上位ポートは、両方とも双方向である。例えば、ユニット302は、ルートユニット301の上位ポート301bに接続された下位ポート302aを有する。ユニット302は、下位ポート302aを介してルートユニット301からメッセージを受信し、下位ポート302aを介してルートユニット301にメッセージを送信する。ユニット302は、ユニット305の下位ポート305aに接続されている上位ポート302bも有する。ユニット302は、上位ポート302bを介してユニット305にメッセージを送信し、上位ポート302bを介してユニット305からメッセージを受信する。
【0034】
それぞれのユニットは、1つまたは複数のローカルサブシステムに直接的に接続可能である。
図3に示されている例では、ユニット302は、ローカルサブシステム312に直接的に接続されている。ユニット305も、単一のローカルサブシステム313に直接的に接続されている。ユニット308は、2つのローカルサブシステム314,315に直接的に接続されている。図示を簡単にするために、ユニット303および306に直接的に接続されているローカルサブシステムが、
図3から省略されていることに注意すべきである。それぞれのユニットは、各自のローカルサブシステムに接続されているローカルポート302c,305c等を有する。このローカルポートは、ユニットの上位ポートおよび下位ポートとは別個の異なるものである。このローカルポートは、ユニットからローカルサブシステムへの通信と、ローカルサブシステムからユニットへの通信との両方の通信を可能にするために双方向であり得る。
【0035】
ローカルサブシステムは、1つまたは複数のコアデバイスを含む。ローカルサブシステムは、1つまたは複数の分析モジュールを含むこともできる。ローカルサブシステムは、1つまたは複数のさらなるルーティングユニットを含むこともできる。例えば、ユニット302のローカルサブシステム312は、2つのコアデバイス316a,316bと、2つの分析モジュール317a,317bとを有する。それぞれのコアデバイスは、各自の独自の分析モジュールに接続可能である。例えば、分析モジュール317aは、コアデバイス316aのみに接続可能である。同様に、分析モジュール317bは、コアデバイス316aのみに接続可能である。これに代えて、1つの分析モジュールを複数のコアデバイスに接続してもよい。
【0036】
分析モジュールは、結合されているコアデバイスを受動的または能動的に監視するように構成可能である。コアデバイスを受動的に監視する分析モジュールは、そのコアデバイスの出力を分析することに限定されている。逆に、コアデバイスを能動的に監視する分析モジュールは、そのコアデバイスの出力を分析することができ、追加的に、そのコアデバイスを制御して、そのコアデバイスの動作を変更することができる。例えば、分析モジュールは、コアデバイスを制御して、コアデバイスが動作する速度を遅くすることができるか、またはコアデバイスのプロセッサを停止および/または再起動することができる。
【0037】
それぞれの分析モジュール317a,317bは、サブシステムのサブシステムポート312aに接続されている。それぞれのサブシステムポートは、複数の個別のポートを含み、すなわち、1つの分析モジュールにつき1つずつの個別のポートを含む。したがって、サブシステムポート312aは、分析モジュール317aのためのポートと、分析モジュール317bのための別個のポートとを含む。分析モジュール317a,317bは、これらの分析モジュールが監視しているコアデバイス316a,316bに関連するデータが含まれたメッセージを生成する。例えば、これらのメッセージは、コアデバイスのトレースデータを含むことができる。分析モジュールは、サブシステムポート312aの個別のポートを介して、接続された分岐ユニット302に自身のメッセージを出力する。分析モジュールは、接続された分岐ユニット302からサブシステムポート312aを介して構成メッセージを受信することができる。例えば、これらの構成メッセージは、分析モジュールに対して、種々異なるアクティビティを検出および報告することを検討するように、コアデバイスの監視を変更するように指示することができる。例えば、構成メッセージは、分析モジュールに対して、コアデバイスの出力における特定の値を検索するように、またはコアデバイスがメモリ内の特定のアドレス範囲から読み出す際に報告するように指示することができる。
【0038】
これに代わる配置構成では、ローカルサブシステムは、複数の分析モジュールと、単一のポートのみからなる1つのサブシステムポートとを有することができる。この場合には、ローカルサブシステムは、ポートで受信したメッセージを個別の分析モジュールに、またはその逆方向にルーティングするルーティングユニットをさらに含む。
【0039】
図3を参照しながら説明したツリーベースのトポロジは、以下のように通信をルーティングする。或る分岐内における宛先ユニットへの通信は、当該分岐内におけるルートユニット301とその宛先ユニットとの間にある中間ユニットを介して、その宛先ユニットにルーティングされる。例えば、サブシステム314の分析モジュール318のために意図されたメッセージは、ルートユニット301からルートユニット301の上位ポート301bを介して分岐ユニット302の下位ポート302aにルーティングされる。分岐ユニット302は、このメッセージを、分岐ユニット302の上位ポート302bから分岐ユニット305の下位ポート305aにルーティングする。分岐ユニット305は、このメッセージを、分岐ユニット305の上位ポート305bから分岐ユニット308の下位ポート308aにルーティングする。分岐ユニット308は、このメッセージを、分岐ユニット308のローカルポート308cからサブシステム314のサブシステムポート314aに出力する。次いで、このメッセージが、分析モジュール318に送信される。分岐ユニットからルートユニット301への通信は、分岐を下るように対応するやり方でルーティングされる。したがって、システム内の全ての一次通信は、分岐の上下にのみルーティングされる。
【0040】
図3に示されている配置構成では、ルートユニット301は、データをオフチップにルーティングする。図示の通信インターフェース311は、USBポートである。通信インターフェース311とルートユニット301との間の接続は、双方向である。ルートユニット301は、オフチップに伝送するために、監視回路から受信したデータを通信インターフェース311に出力する。このデータは、トレースデータを含むことができる。このデータは、イベントデータを含むことができる。通信インターフェース311はまた、オフチップのデバイス、例えばオフチップの分析器から受信したメッセージをルートユニット301に送信する。このデータは、1つまたは複数の監視ユニットを構成するための構成メッセージを含むことができる。ルートユニット301は、通信インターフェース311から、分岐内におけるアドレス指定されたユニットまで、メッセージをルーティングする。
【0041】
代替的または追加的に、ルートユニット301は、オンチップの分析器に接続可能である。この場合には、ルートユニット301は、監視回路から受信したメッセージをそのオンチップの分析器にルーティングすることができる。ルートユニット301は、そのオンチップの分析器から受信したメッセージを、上述したツリーベースのトポロジを介して監視ユニットにルーティングすることができる。
【0042】
典型的に、SoC上のコンポーネントは、タイル状のアレイの形態で配置されている。換言すれば、コンポーネントは、正方形のグリッドの形態で配置されている。
図3を参照しながら説明したツリーベースの監視ネットワークは、SoCコンポーネントにわたって適合するようにチップ上に構築されている。したがって、SoCのコンポーネントがそのような配置になっている場合には、分岐ユニットの物理的なレイアウトは、
図3に示されているような規則的なタイル状の配置になる。しかしながら、SoCコンポーネントが別の配置を有する場合には、分岐ユニットの物理的なレイアウトを、分岐ユニットとツリーベースのトポロジのルーティングメカニズムとの間の相対的な接続を維持しながら、SoCコンポーネントにわたって適合するように別の配置にすることができる。
【0043】
監視回路に関連する一次通信は、上述したようにSoCにわたってツリーベースのトポロジの分岐の上下に伝送される。しかしながら、背景技術のセクションに記載したように、或る1つの分岐ユニットに障害が発生すると、その障害が発生したユニットよりも分岐内において上位に接続されている全てのユニットは、もはやその分岐を介してルートユニットと通信できなくなる。
図3のネットワークは、この問題に対処するものである。
【0044】
図3は、ルートユニット301の上位にある分岐同士を接続するクロスリンクを示す。それぞれのクロスリンクは、隣接し合う分岐の対応するユニット同士を接続する。好適には、それぞれのクロスリンクは、互いに隣接し合う分岐内にある2つのユニットのみを接続する。クロスリンクによって接続されたユニット同士は、互いに同じ階層レベルにある。クロスリンクによって接続されたユニット同士は、各自のそれぞれの分岐内におけるこれらのユニットとルートユニットとの間に、それぞれ同じ数の中間ユニットを有することができる。
【0045】
図3は、4つの階層レベルを示す。レベル0は、ルートユニット301を含む。レベル1は、レベル0に隣接していて、かつレベル0より上位にある階層レベルである。レベル1は、分岐ユニット302,303,および304を含む。これらの分岐ユニットの各々は、ルートユニット301に直接的に接続されている。分岐ユニット303は、分岐ユニット302に隣接していて、かつ分岐ユニット302と同じ階層レベルにある。分岐ユニット302と303とは、クロスリンク319によって接続されている。同様に、分岐ユニット303は、クロスリンク320によって分岐ユニット304に接続されている。
【0046】
レベル2は、レベル1に隣接していて、かつレベル1より上位にある階層レベルである。レベル2は、分岐ユニット305,306,および307を含む。これらの分岐ユニットの各々は、それぞれの分岐内におけるこれらの分岐ユニットとルートユニットとの間に、それぞれ1つの中間ユニットを有する。分岐ユニット306は、分岐ユニット305に隣接していて、かつ分岐ユニット305と同じ階層レベルにある。したがって、分岐ユニット305と306とは、クロスリンク321によって接続されている。同様に、分岐ユニット306は、クロスリンク322によって分岐ユニット307に接続されている。
【0047】
最後に、レベル3は、レベル2に隣接していて、かつレベル2より上位にある階層レベルである。レベル3は、分岐ユニット308,309,および310を含む。これらの分岐ユニットの各々は、それぞれの分岐内におけるこれらの分岐ユニットとルートユニットとの間に、それぞれ2つの中間ユニットを有する。対応する分岐ユニット308と309とは、隣接し合う分岐内にあって、かつクロスリンク323によって接続されている。対応する分岐ユニット309と310とは、隣接し合う分岐内にあって、かつクロスリンク324によって接続されている。
【0048】
それぞれの分岐ユニットは、接続先である1つのクロスリンクにつき1つのクロスリンクポートを有する。それぞれのクロスリンクは、構成可能である。具体的には、クロスリンクの方向が、構成可能である。第1の分岐内の第1のユニットを第2の分岐内の第2のユニットに接続するクロスリンクの場合には、このクロスリンクは、
1.ルートユニットからのアップストリームメッセージを第1のユニットから第2のユニットに送信し、かつルートユニットへのダウンストリームメッセージを第2のユニットから第1のユニットに送信するように、または
2.ルートユニットからのアップストリームメッセージを第2のユニットから第1のユニットに送信し、かつルートユニットへのダウンストリームメッセージを第1のユニットから第2のユニットに送信するように、
構成可能である。対照的に、各分岐の内部における各分岐ユニットの上位ポートと下位ポートとを接続するリンクの方向は、構成可能ではない。
【0049】
クロスリンクは、初期時には、SoCにわたる監視回路に関連するメッセージをルーティングする一次通信のためには使用されない。しかしながら、或る分岐ユニットが不良であるとみなされた場合には、その不良なユニットをバイパスするように、クロスリンクが有効化される。これについては、
図4を参照しながらさらに説明する。
【0050】
図4は、クロスリンクが利用されるシナリオを説明するフローチャートである。ステップ401において、メッセージは、SoCの分岐の上下にのみ伝送される。ステップ402において、SoC内における不良な分岐ユニットが存在するかどうかについての判定が下される。答えが「いいえ」の場合、方法は、ステップ401に戻り、このステップ401では、メッセージが、引き続きSoCの分岐の上下にのみ伝送される。しかしながら、ステップ402の答えが「はい」の場合、方法は、ステップ403に進む。ステップ403において、ユニットが不良であるとみなされたことに応答して、その不良なユニットと同じ分岐内におけるその不良なユニットの上位にある分岐ユニットと、隣接する分岐内における対応するユニットとの間のクロスリンクが有効化される。次に、ステップ404において、不良なユニットと同じ分岐内にある宛先ユニットへのその後のメッセージが、ルートユニットから、隣接する分岐と有効化されたクロスリンクとを介してルーティングされる。不良なユニットが、これによってバイパスされる。
【0051】
図5は、SoC内における不良であるとみなされるユニットの第1の例を示す。
図5では、分岐ユニット303が、
図4の方法のステップ402において不良であるとみなされる。分岐ユニット303は、第2の分岐内にある。不良なユニット303は、第2の分岐内の分析モジュールへまたは第2の分岐内の分析モジュールから、すなわち、ローカルサブシステム326の分析モジュールへまたはローカルサブシステム326の分析モジュールから、メッセージがルーティングされることを阻止する。これに応答して、クロスリンク321が有効化される。クロスリンク321は、第1の分岐内の分岐ユニット305と、第2の分岐内の分岐ユニット306との間にある。分岐ユニット306は、不良なユニット303と同じ分岐内において不良なユニット303に隣接している。不良なユニット303は、分岐ユニット306とルートユニット301の間にある。クロスリンク321は、以下のように有効化される。
【0052】
ユニット303が不良であることが検出されたことに応答して、ルートユニット301は、第1の分岐内のユニット305に再構成命令を送信する。ルートユニット301は、不良なユニットを識別したオフチップ(またはオンチップ)の分析器からこの再構成命令を受信することができる。再構成命令を受信したことに応答して、ユニット305は、(i)第2の分岐内における宛先ユニットのための、ユニット305の下位ポート305aで受信した通信を、クロスリンクポート305dを介してクロスリンク321を介してルーティングし、かつ(ii)クロスリンク321からクロスリンクポート305dで受信した通信を、ユニット305の下位ポート305aを介してルートユニット301にルーティングするように、自分自身を再構成する。
【0053】
再構成命令を受信したことに応答して、ユニット305は、再構成命令を、クロスリンク321上でユニット306にも送信する。この再構成命令を受信したことに応答して、ユニット306は、(i)ルートユニットのための、ユニット306の上位ポート306bで受信した通信を、クロスリンクポート306cを介してクロスリンク321を介してルーティングし、かつ(ii)クロスリンクポート306cで受信した通信を、ユニット306の上位ポート306bを介して第2の分岐内における宛先ユニットにルーティングするように、自分自身を再構成する。
【0054】
したがって、ユニット305は、アップリンク321aがユニット305からユニット306にメッセージをルーティングし、かつダウンリンク321bがユニット306からユニット305にメッセージをルーティングするように、クロスリンク321の方向を構成する。このようにして、不良なユニット303をバイパスするように、クロスリンクが有効化され、それにより、第2の分岐内における不良なユニット303よりも上位にあるユニットが、メッセージを送受信できるようになる。
【0055】
図6は、SoC内における不良であるとみなされるユニットの第2の例を示す。
図6では、分岐ユニット302が、
図4の方法のステップ402において不良であるとみなされる。分岐ユニット302は、第1の分岐内にある。不良なユニット302は、第1の分岐内の分析モジュールへまたは第1の分岐内の分析モジュールから、すなわち、ローカルサブシステム312,313,314,および315の分析モジュールへまたはローカルサブシステム312,313,314,および315の分析モジュールから、メッセージがルーティングされることを阻止する。これに応答して、クロスリンク321が有効化される。クロスリンク321は、第1の分岐内の分岐ユニット305と、第2の分岐内の分岐ユニット306との間にある。分岐ユニット305は、不良なユニット302と同じ分岐内において不良なユニット302に隣接している。不良なユニット302は、分岐ユニット305とルートユニット301の間にある。クロスリンク321は、以下のように有効化される。
【0056】
ユニット302が不良であることが検出されたことに応答して、ルートユニット301は、第2の分岐内のユニット306に再構成命令を送信する。ルートユニット301は、不良なユニットを識別したオフチップ(またはオンチップ)の分析器からこの再構成命令を受信することができる。再構成命令を受信したことに応答して、ユニット306は、(i)第1の分岐内における宛先ユニットのための、ユニット306の下位ポート306aで受信した通信を、クロスリンクポート306cを介してクロスリンク321を介してルーティングし、かつ(ii)クロスリンク321からクロスリンクポート306cで受信した通信を、ユニット306の下位ポート306aを介してルートユニット301にルーティングするように、自分自身を再構成する。
【0057】
再構成命令を受信したことに応答して、ユニット306は、再構成命令を、クロスリンク321上でユニット305にも送信する。この再構成命令を受信したことに応答して、ユニット305は、(i)ルートユニットのための、ユニット305の上位ポート305bで受信した通信を、クロスリンクポート305dを介してクロスリンク321を介してルーティングし、かつ(ii)クロスリンクポート305dで受信した通信を、ユニット305の上位ポート305bを介して第1の分岐内における宛先ユニットにルーティングするように、自分自身を再構成する。
【0058】
したがって、ユニット306は、アップリンク321cがユニット306からユニット305にメッセージをルーティングし、かつダウンリンク321dがユニット305からユニット306にメッセージをルーティングするように、クロスリンク321の方向を構成する。このようにして、不良なユニット302をバイパスするように、クロスリンクが有効化され、それにより、第1の分岐内における不良なユニット302よりも上位にあるユニットが、メッセージを送受信できるようになる。
【0059】
図5および
図6の例は、同一のクロスリンク321が2つの構成を有すること、すなわち、これらの2つの構成におけるアップリンクおよびダウンリンクの方向が互いに反対であることを示す。クロスリンクは、いずれか一方の構成を採用するように構成可能である。採用される構成は、クロスリンクが接続している分岐のうちのどの分岐が、不良なユニットを有しているかによって決まる。
【0060】
図7は、分岐ユニットの内部構造の一例を示す。
図7には、隣接し合う分岐の、同じ階層レベルにある2つの分岐ユニット701a,701bが示されている。これらの2つの分岐ユニットは、クロスリンク702によって接続されている。それぞれの分岐ユニットは、受信したメッセージのルーティングを制御するための制御モジュール713a,713bを含む。それぞれの分岐ユニットは、アップストリームメッセージを受信するための下位入口704a,704bと、メッセージをダウンストリームで送信するための下位出口705a,705bとを有する下位ポート703a,703bを含む。それぞれの分岐ユニットは、さらなるポート706a,706bを含む。このさらなるポートは、ダウンストリームメッセージを受信するための上位入口707a,707bと、メッセージをアップストリームで送信するための上位出口708a,708bとを有する上位ポートを含む。このさらなるポートは、ローカルサブシステムと通信するための1つまたは複数のさらなるローカルポートを含むことができ、それぞれのローカルポートは、ローカルサブシステムからメッセージを受信するための入口と、ローカルサブシステムにメッセージを送信するための出口とを有する。
【0061】
分岐ユニットは、これらの分岐ユニットがクロスリンク702を介していずれかの方向にメッセージをルーティングすることを可能にするためのさらなるコンポーネントを含む。それぞれの分岐ユニットは、入口714a,714bおよび出口715a,715bを有するクロスリンクポートを含む。それぞれの分岐ユニットは、デマルチプレクサ(DeMUX)711a,711bを含む。DeMUXは、クロスリンクポートに接続されていて、クロスリンク702を介して他の分岐ユニットからメッセージを受信する。DeMUXは、クロスリンク上で受信したメッセージを、クロスリンク入口714aまたは下位入口704aのいずれかに選択的に出力するように構成されている。DeMUXは、ルートユニットから受信した再構成命令に応答して出力を選択する。したがって、例えば、クロスリンクが、分岐ユニット701bから分岐ユニット701aへのダウンストリームメッセージをルートユニット301にルーティングするように有効化されている場合には、DeMUX711aは、クロスリンク702を介して受信したメッセージをクロスリンク入口714aに選択的にルーティングする。その一方で、クロスリンクが、ルートユニット301から分岐ユニット701bへのアップストリームメッセージを分岐ユニット701aにルーティングするように有効化されている場合には、DeMUX711aは、クロスリンク702を介して受信したメッセージを下位入口704aに選択的にルーティングする。
【0062】
DeMUXは、ギアボックス717a,717bを介して、縮小された入口716a,716bにメッセージを出力することができる。ギアボックス717a,717bは、ダウンストリームメッセージの幅がアップストリームメッセージの幅よりも広い場合に、より狭い方のメッセージを実装する。縮小された入口716a,716bは、全てのメッセージを制御モジュール713a,713bにルーティングする。縮小された入口716a,716bは、メッセージFIFO、イベントFIFO、またはルーティング制御を有さない。
【0063】
分岐ユニットは、2x2スイッチであるメッセージスイッチ712a,712bを含み、このメッセージスイッチ712a,712bは、(i)DeMUX711a,711bの出力と、(ii)分岐内における下位にある分岐ユニットからのアップストリーム入力とを、入力として受信する。このスイッチは、(i)下位入口704a,704bと、(ii)縮小された入口716a,716bとへの出力を有する。下位出口705a,705bからのダウンストリーム出力は、ゲート709a,709bによってゲーティングされる。
【0064】
それぞれの分岐ユニットは、マルチプレクサMUX710a,710bをさらに含む。MUXは、クロスリンク702上のメッセージを他の分岐ユニットに出力する。MUXは、クロスリンク出口715a,715bまたは下位出口705a,705bのいずれかから選択的に出力する。MUXは、ルートユニットから受信した再構成命令に応答して入力を選択する。したがって、例えば、クロスリンクが、ルートユニット301から分岐ユニット701aへのアップストリームメッセージを分岐ユニット701aにルーティングするように有効化されている場合には、MUX710aは、クロスリンク出口715aからのメッセージをクロスリンク702に選択的にルーティングする。その一方で、クロスリンクが、分岐ユニット701aから分岐ユニット701bへのダウンストリームメッセージをルートユニット301にルーティングするように有効化されている場合には、MUX710aは、下位出口705aからのメッセージをクロスリンク702に選択的にルーティングする。
【0065】
したがって、クロスリンクの一方の側にあるそれぞれの分岐ユニットのMUXは、クロスリンクの他方の側にある分岐ユニットのDeMUXにメッセージを出力する。また、クロスリンクの一方の側にあるそれぞれの分岐ユニットのDeMUXは、クロスリンクの他方の側にある分岐ユニットのMUXからメッセージを受信する。
【0066】
図7は、分岐ユニットがデフォルト状態で動作するように構成されている場合における、分岐ユニットでのメッセージフローを示し、このデフォルト状態では、クロスリンクは、ツリーベースのネットワークを介した一次通信のためには利用されていない。
図7では、メッセージフローが点線で示されている。MUX710a,710bは、クロスリンク出口715a,715bからのメッセージを、クロスリンク702上にルーティングするように構成されている。DeMUX711a,711bは、クロスリンク702からのメッセージを、縮小された入口716a,716bにルーティングするように構成されている。メッセージスイッチ712a,712bは、DeMUX711a,711bの出力を、縮小された入口716a,716bにルーティングするように構成されている。この構成では、クロスリンクは、このクロスリンクを介してルートユニットと宛先ユニットの間でメッセージをルーティングするようには有効化されていない。この構成では、クロスリンクに接続されている一方のユニットが他方のユニットを再構成することができるように、クロスリンクが有効化されている。これにより、クロスリンクをどちらの方向にも構成することが可能となる。
【0067】
図8は、ユニット701aと同じ分岐内にある不良な分岐ユニットをバイパスするように、クロスリンクが有効化されている場合における、
図7の分岐ユニット701a,701bの内部構成を示す。
図8は、
図6に示されているシナリオに関する分岐ユニットの内部構成を示しており、ここでは、分岐ユニット701aは、分岐ユニット305と同等であり、分岐ユニット701bは、分岐ユニット306と同等である。このシナリオでは、クロスリンク702/321は、ユニット701b/306からのアップストリームメッセージをユニット701a/305にルーティングするように有効化されている。そして、クロスリンク702/321は、ユニット701a/305からのダウンストリームメッセージをユニット701b/306にルーティングするように有効化されている。
図7のデフォルト構成と比較すると、ユニット701b/306は、ルートユニット301から再構成命令を受信する。この再構成命令に応答して、ユニット701b/306は、(i)クロスリンク出口715bからのメッセージをクロスリンク702/321にルーティングするように、MUX710bを構成し、かつ(ii)クロスリンク702/321から受信したメッセージをクロスリンク入口714bにルーティングするように、DeMUX711bを構成する。
【0068】
再構成命令に応答して、ユニット701b/306はまた、クロスリンク702/321を介してユニット701a/305に再構成命令を送信する。この再構成命令を受信したことに応答して、ユニット701a/305は、(i)ユニット701a/305の下位出口705aからのメッセージをクロスリンク702/321にルーティングするように、MUX710aを構成し、かつ(ii)クロスリンク702/321から受信したメッセージを下位入口704aにルーティングするように、DeMUX711aを構成する。ユニット701a/305は、クロスリンク702/321からのメッセージを、DeMUX711aを介してユニット701a/305の下位入口704aにルーティングするように、メッセージスイッチ712aを構成することもできる。これにより、不良なユニット302からの入力が下位入口704aに接続されることも阻止され、したがって、不良なユニット302からのスプリアス出力がシステムを通じてルーティングされることも回避される。ユニット701a/305は、ユニット701a/305から不良なユニット302にメッセージが出力されることを阻止するために、下位出口705aからの出力をゲーティングするように、ユニット701a/305のゲート709aを構成することもできる。これにより、不良なコンポーネントがメッセージを受信および処理することが回避されるので、電力が節約される。
【0069】
上述した方法を使用して、2つ以上の不良なユニットをバイパスしてもよい。2つの不良なユニットが同じ分岐内にあって、かつ互いに隣接し合っている場合には、これらの両方の不良なユニットをバイパスするために、同じクロスリンクを利用することができる。2つの不良なユニットが同じ分岐内にあるが、互いに隣接し合っていない場合には、これらの不良なユニットをバイパスするために、それぞれ異なるクロスリンクを利用することができ、すなわち、それぞれの不良なユニットごとに1つのバイパスルートを利用することができる。複数の不良なユニットがそれぞれ異なる分岐内にある場合には、これらの不良なユニットをバイパスするために、それぞれ異なるクロスリンクを利用することができ、すなわち、それぞれの不良なユニットごとに1つのバイパスルートを利用することができる。
【0070】
以下では、1つまたは複数の分岐ユニットを不良であるとみなすための方法と、ツリーベースのシステムを通じてメッセージをルーティングする際に、分岐ユニットに不良なユニットをバイパスさせるために使用することができるアドレス指定メカニズムとについて説明する。
【0071】
以下で説明するアドレス指定メカニズムプロトコルは、システム内のそれぞれの個別にアドレス指定可能なエンティティに1つのアドレスを割り当てる。個別にアドレス指定可能なエンティティへの通信、および個別にアドレス指定可能なエンティティからの通信は、個別にアドレス指定可能なエンティティのアドレスに従って、中間の分岐ユニットを介してシステムを通じてルーティングされる。それぞれの分岐ユニットは、各自の分岐内における各自の上位にある個別にアドレス指定可能なエンティティへの通信、および各自の分岐内における各自の上位にある個別にアドレス指定可能なエンティティからの通信をルーティングする。それぞれの分岐ユニットは、隣接する分岐内における個別にアドレス指定可能なエンティティへの通信、および隣接する分岐内における個別にアドレス指定可能なエンティティからの通信を、クロスリンクを介してルーティングして、不良なユニットを上述したようにバイパスすることもできる。
【0072】
図9は、ユニットが不良であることを判定し、その後の通信においてその不良なユニットをバイパスするためのメカニズムを説明するフローチャートである。ステップ901において、ルートユニット301は、発見メッセージを送信する。この発見メッセージは、ツリーベース構造内の全ての分岐ユニットに送信される単一の発見メッセージであり得る。これに代えて、ルートユニット301から、システム内のそれぞれの個別にアドレス指定可能なエンティティに、個別の発見メッセージを送信してもよい。例えば、それぞれの個別にアドレス指定可能なエンティティに、発見メッセージを順番に送信してもよい。ルートユニット301は、システム内の各ユニットから発見応答を受信する。それぞれの発見応答は、そのユニット内と、そのユニットの上位にあるその分岐内の各ユニット内とにおける、個別にアドレス指定可能なエンティティの個数を識別するものである。
【0073】
ステップ902において、それぞれのユニットから発見応答を受信したかどうかについての評価が行われる。例えば、ルートユニットは、発見リクエストへの応答を所定の時間Tだけ待つように構成可能である。その時間Tの間に或るユニットから応答がない場合には、そのユニットは、非応答であるとみなされる。あらゆるユニットから発見応答を受信した場合には、ステップ902の答えが「はい」となる。これに該当する場合には、ステップ903において、監視ネットワークの一次通信が、通常通り、ツリーベース構造の分岐の内部でのみ伝送される。ステップ902での答えが「いいえ」である場合には、このことは、非応答ユニットと同じ分岐内に、1つまたは複数の不良なユニットが存在することを示している。このことは、必ずしも全ての非応答ユニットが不良であるということを示すわけではない。例えば、
図6の例では、ユニット302だけが不良であったとしても、第1の分岐内におけるいずれのユニットからも、発見リクエストへの応答を受信することはない。
【0074】
ステップ904において、1つまたは複数の非応答ユニットが、不良であると識別される。ルートユニットに最も近い階層レベルにある非応答ユニットを、不良であるとみなすことができる。換言すれば、ルートユニットとの間にある中間ユニットの個数が最も少ない非応答ユニットを、不良であるとみなすことができる。好適には、そのユニットが、この段階で不良であるとみなされる唯一の非応答ユニットである。
【0075】
次のステップ905において、不良なユニットと同じ分岐内にある第1のユニットと、隣接する分岐内にある第2のユニットとの間のクロスリンクが有効化される。好適には、第1のユニットは、不良なユニットと同じ分岐内において不良なユニットに隣接している。不良なユニットは、分岐内において第1のユニットとルートユニットとの間にある。
図6の例を参照すると、有効化されるクロスリンクは、クロスリンク321であろう。なぜなら、このクロスリンクは、ユニット305と306とを接続しており、ユニット305は、不良なユニット302と同じ分岐内において不良なユニット302に隣接しているからである。
【0076】
次のステップ906において、ルートユニット301は、さらなる発見メッセージを送信する。ステップ901の発見メッセージと同様に、このさらなる発見メッセージは、ツリーベース構造内の全ての分岐ユニットに送信される単一の発見メッセージであり得る。これに代えて、ルートユニット301から、システム内のそれぞれの個別にアドレス指定可能なエンティティに、個別の発見メッセージを送信してもよい。ルートユニット301は、システム内の各ユニットから発見応答を受信する。それぞれの発見応答は、そのユニット内と、そのユニットの上位にあるその分岐内の各ユニット内とにおける、個別にアドレス指定可能なエンティティの個数を識別するものである。ステップ905のクロスリンクが正常に有効化されていた場合には、第2のユニットからの発見応答は、ステップ901の発見リクエストに対するこの第2のユニットの発見応答とは異なるものとなる。具体的には、第2のユニットの発見応答は、ステップ901の発見リクエストに対するこの第2のユニットの発見応答と比較して、自身のルーティング先である個別にアドレス指定可能なエンティティをより多数、識別するものとなる。ステップ905のクロスリンクが正常に有効化されていた場合には、第2のユニットが自身の発見応答において識別する個別にアドレス指定可能なエンティティの個数は、(i)第2のユニット内と、(ii)第2のユニットの上位にあるその分岐内の各ユニット内と、(iii)第1のユニット内と、(iv)第1のユニットの上位にあるその分岐内の全てのアクセス可能なユニット内とにおける、個別にアドレス指定可能なエンティティの個数の合計になる。
【0077】
オプションとして、ステップ907において、ルートユニットは、システム内のそれぞれの不良でないユニットから発見応答を受信したかどうかを評価する。例えば、ルートユニットは、発見リクエストへの応答を所定の時間Tだけ待つように構成可能である。その時間Tの間に或るユニットから応答がない場合には、そのユニットは、非応答であるとみなされる。答えが「はい」の場合には、全ての不良なユニットが正常にバイパスされている。答えが「いいえ」の場合には、システム内にさらなる不良なユニットが存在する。
【0078】
ステップ906における、第2のユニットの発見応答において識別された個別にアドレス指定可能なエンティティの個数が、ステップ901において識別された対応する個数よりも多い場合には、クロスリンクが正常に有効化されたということである。この場合に、ステップ907に対する答えが「いいえ」である場合には、このことは、システム内の他の場所にさらなる不良なユニットが存在することを示している。例えば、
図6の例では、ユニット308が不良である可能性がある。ステップ904から907までのプロセスが反復される。この反復において、不良であるとみなされるべき次の非応答ユニットは、すでに不良であるとみなされた非応答ユニットを除いて、ルートユニットに最も近い階層レベルにある非応答ユニットである。
【0079】
ステップ906における、第2のユニットの発見応答において識別された個別にアドレス指定可能なエンティティの個数が、ステップ901において識別された対応する個数と同じである場合には、クロスリンクが正常に有効化されなかったということである。この場合に、ステップ907に対する答えが「いいえ」である場合には、ステップ904の次の反復において、ルートユニットは、第1のユニットも不良であると判定することができる。
図6を参照すると、このことは、第1の分岐内におけるユニット302および305の両方が不良であることを意味し得る。ステップ905において、これらの不良なユニットと同じ分岐内にある第3のユニットと、隣接する分岐内にある第4のユニットとの間のクロスリンクが有効化される。第3のユニットは、第1のユニットに隣接している。第1のユニットは、第3のユニットと不良なユニットの間にある。
図6を参照すると、ユニット302および305の両方が不良であるとみなされた場合には、クロスリンク323が有効化される。クロスリンク323は、分岐ユニット308と309との間にある。分岐ユニット308は、第1の分岐内において不良なユニット305に隣接している。
【0080】
ステップ904からステップ907までの反復ループは、システム内の全ての不良でないユニットから発見応答が受信されるまで継続する。非応答ユニットの集合から不良なユニットが識別されると、方法は、ステップ908,909,および910に進む。ステップ908において、不良なユニットの分岐内にある個別にアドレス指定可能なエンティティへのその後の通信が、隣接する分岐と有効化されたクロスリンクとを介してルーティングされることによって不良なユニットがバイパスされるように、それぞれの正常に有効化されたクロスリンクのアドレスが再構成される。
【0081】
ステップ909において、不良なユニットの分岐内にある個別にアドレス指定可能なエンティティへのその後の通信が第2のユニットを介してルーティングされるように、隣接する分岐の、第2のユニットとルートユニットとの間にあるそれぞれの中間ユニットのアドレスが再構成される。
図6の例では、これに伴って、ユニット303が、第1の分岐内におけるユニット305およびそれより上位のユニットのために意図されたメッセージを、第2の分岐を介してユニット306およびクロスリンク321にルーティングするように、第2の分岐のユニット303のアドレスが再構成される。
【0082】
ステップ910において、ルートユニット301は、2通りに再構成される。まず始めに、ルートユニット301は、宛先ユニットの個別にアドレス指定可能なエンティティに対する通信のために、ルートユニットと宛先ユニットとの間にある不良なユニットと同じ分岐へと直接的に通信が送信されることを阻止するように再構成される。ルートユニット301はまた、宛先ユニットの個別にアドレス指定可能なエンティティに対する通信のために、ルートユニットと宛先ユニットとの間にある不良なユニットの分岐内にある個別にアドレス指定可能なエンティティに、隣接する分岐を介して通信を送信するようにも再構成される。
【0083】
次に、本方法は、ステップ911に進み、そこでは、メッセージが、不良なユニットをバイパスするために、有効化されたクロスリンクを介して分岐内で伝送される。
【0084】
以下に、上述した方法と組み合わせて使用することができるアドレス指定プロトコルについて説明する。このアドレス指定プロトコルは、リベースメカニズムを利用する。リベースメカニズムでは、それぞれのユニットは、自分自身を、ツリーベースのネットワーク内の他のユニットと同じ内部アドレスを有するものとみなす。以下では、この内部アドレスをベースアドレスと呼ぶ。それぞれのユニットは、他のユニットへのアドレス指定を、ツリーベースのネットワーク内におけるこれらの他のユニットの位置が指定された、それらのユニットの内部アドレスを基準にして導出することができるアドレスを使用して、実施するように構成されている。宛先ユニットへの経路上でメッセージをルーティングするそれぞれのユニットは、そのメッセージの宛先アドレスをリベースする。
【0085】
したがって、例えば、ルートユニットは、個別にアドレス指定可能なエンティティの宛先アドレスが含まれたメッセージを送信する。その宛先アドレスは、ルートユニットの内部アドレスを基準にしている。ルートユニットは、自身に接続されている分岐にメッセージを送信する。その分岐上においてルートユニットに隣接する中間ユニットが、メッセージを受信する。その中間ユニットは、宛先アドレスにオフセットを追加してリベースされた宛先アドレスを形成することにより、メッセージをリベースする。リベースされた宛先アドレスは、その中間ユニットの内部アドレスを基準にしている。次いで、中間ユニットは、リベースされたメッセージを、個別にアドレス指定可能なエンティティ上にルーティングする。
【0086】
リベースメカニズムは、アドレスインデックスを利用することができる。例えば、監視システムのそれぞれの個別にアドレス指定可能なエンティティは、1つのアドレスインデックスを有することができる。それぞれの分岐ユニットは、1つまたは複数のアドレスインデックスを有することができる。一例として
図3を参照すると、それぞれの分析モジュールは、単一のアドレスインデックスを有する。分岐ユニット308は、ローカルサブシステム314の2つの分析モジュールに割り当てられた2つのアドレスインデックス(
図3のポート308cに2として示されている)と、ローカルサブシステム315の2つの分析モジュールに割り当てられた2つのアドレスインデックス(
図3のポート308bに2として示されている)とを有する。クロスリンク323に割り当てられたアドレスインデックスは存在しない(ポート308dに0として示されている)。分岐ユニット308自体は、1の内部アドレスインデックスを有する。したがって、ステップ901の発見リクエストに応答する際には、分岐ユニット308は、5(=2+2+0+1)の合計インデックス数を報告する。分岐ユニット305は、ローカルサブシステム313の2つの分析モジュールに割り当てられた2つのアドレスインデックスと、ユニット305の上位ポートに接続されている分岐ユニット308に割り当てられた5つのアドレスインデックスとを有する。クロスリンク321に割り当てられたアドレスインデックスは存在しない。分岐ユニット305自体は、1の内部アドレスインデックスを有する。したがって、ステップ901の発見リクエストに応答する際には、分岐ユニット305は、8(=2+5+0+1)の合計インデックス数を報告する。分岐ユニット302は、ローカルサブシステム312の2つの分析モジュールに割り当てられた2つのアドレスインデックスと、ユニット302の上位ポートに接続されている分岐ユニット305に割り当てられた8つのアドレスインデックスとを有する。クロスリンク319に割り当てられたアドレスインデックスは存在しない。分岐ユニット303は、1の内部アドレスインデックスを有する。したがって、ステップ901の発見リクエストに応答する際には、分岐ユニット303は、11(=2+8+0+1)の合計インデックス数を報告する。
【0087】
システム内のアップストリームメッセージは、インデックスによってルーティング可能である。ベースアドレスが0である場合を検討する。換言すれば、それぞれのユニットは、自分自身を、0の内部アドレスを有するものとみなす。アップストリームメッセージがシステムを通じて伝播されると、メッセージのアドレスインデックスが調整される。例えば、ルートユニット301が、分岐ユニット308のローカルサブシステム315の分析モジュール325aにメッセージを送信する場合には、ルートユニット301は、ルートユニット301に基づいた、分析モジュール325aのアドレスであるアドレスインデックス10を、そのメッセージに適用する。ルートユニット301は、このメッセージを、ルートユニット301の上位ポート301b上にルーティングする。ルートユニットは、-nのオフセットを追加することによってアドレスをリベースし、ここで、nは、ルートユニット自体に割り当てられたアドレスインデックスの数である。n=1である。したがって、リベースされたメッセージは、9の宛先アドレスを有する。
【0088】
分岐ユニット302は、そのメッセージを受信する。分岐ユニット302によれば、分岐ユニット302はアドレス0を有し、ローカルサブシステム312はアドレス1~2を有し、分岐ユニット305はアドレス3~11を有する。分岐ユニット302は、メッセージの宛先アドレスを、分岐ユニット302の観点からの分析モジュール325aのアドレスとなるようにリベースする。分岐ユニットは、-mのオフセットを追加することによってアドレスをリベースし、ここで、mは、分岐ユニット自体と、この分岐ユニットに直接的に接続されているローカルサブシステム、すなわちローカルサブシステム312とに割り当てられたアドレスインデックスの数である。したがって、この例では、分岐ユニット302は3を差し引くので、リベースされた宛先アドレスは6である。分岐ユニット302は、リベースされたメッセージを、分岐ユニット302の上位ポート302bにルーティングし、そこから分岐ユニット305にルーティングする。
【0089】
分岐ユニット305は、そのメッセージを受信する。分岐ユニット305によれば、分岐ユニット305はアドレス0を有し、ローカルサブシステム313はアドレス1~2を有し、分岐ユニット308はアドレス3~8を有する。分岐ユニット305は、メッセージの宛先アドレスを、分岐ユニット305の観点からの分析モジュール325aのアドレスになるようにリベースする。上記のように、分岐ユニット305は3を差し引くので、リベースされた宛先アドレスは3である。分岐ユニット305は、リベースされたメッセージを、分岐ユニット305の上位ポート305bにルーティングし、そこから分岐ユニット308にルーティングする。
【0090】
分岐ユニット308は、そのメッセージを受信する。分岐ユニット308によれば、分岐ユニット308はアドレス0を有し、ローカルサブシステム314はアドレス1~2を有し、ローカルサブシステム315はアドレス3~4を有する。上記のように、分岐ユニット308は3を差し引くので、リベースされた宛先アドレスは0である。分岐ユニット308は、リベースされたメッセージを、分岐ユニット308の上位ポート308bにルーティングし、そこからローカルサブシステム315にルーティングする。
【0091】
分析モジュール325aは、自分自身を、アドレスインデックス0を有するものとみなし、したがって、自分自身を、受信したメッセージのための宛先ユニットであると識別する。
【0092】
システム内のユニットが不良であると判定される前には、システム内のそれぞれクロスリンクは、0のアドレスインデックスを有する。クロスリンクは、
図9のステップ905において、そのクロスリンクにアドレスインデックスを割り当てることにより有効化され得る。例えば、クロスリンクに、1のアドレスインデックスを割り当てることができる。クロスリンクによって隣接する分岐に接続されている、不良なユニットの上位にある分岐ユニットは、上述したように、その分岐ユニットのDeMUX、MUX、メッセージスイッチ、およびゲートを再構成することによって、アドレスインデックスが割り当てられているクロスリンクに応答することができる。クロスリンクが正常に有効化されていない場合には、ルートユニットは、クロスリンクへのアドレスインデックスの割り当てを解除する。次いで、失敗したクロスリンクの上位にある次のクロスリンクが、上述したように有効化される。
【0093】
ここで、
図9のステップ908,909,および910の実装を、
図5の不良例に関連して説明する。
図5では、分岐ユニット303が、不良であるとみなされる。その後の通信は、第1の分岐の分岐ユニット302および305と、クロスリンク321とを介して第2の分岐にルーティングされる。ステップ908において、クロスリンク321のアドレスは、分岐ユニット306と、第2の分岐内における分岐ユニット306の上位にあるユニットとによって消費されるアドレスインデックスを、クロスリンク321に割り当てることによって再構成される。分岐ユニット306は、1のアドレスインデックスを有し、分岐ユニット306の上位には、3のアドレスインデックスが存在する。したがって、クロスリンク321には、分岐ユニット305によって4のアドレスインデックスが割り当てられる。したがって、冗長的なリンク321のためのアドレスインデックスの数は、0(
図3に図示)から4(
図5に図示)に変更されている。
【0094】
ステップ909において、分岐ユニット305のアドレスは、クロスリンク321によって消費されるアドレスインデックスを、分岐ユニット305に追加的に割り当てることによって再構成される。分岐ユニット305は、1のアドレスインデックスを有し、ローカルサブシステム313は、2のアドレスインデックスを有し、第1の分岐内における分岐ユニット305の上位にあるユニットは、5のアドレスインデックスを有し、クロスリンクは、4のインデックスを有する。したがって、分岐ユニット305のためのアドレスインデックスの数は、8(
図3に図示)から12(
図5に図示)に変更されている。したがって、分岐ユニット302は、12のアドレスインデックスを有するメッセージを分岐ユニット305にルーティングする。
【0095】
ステップ909において、分岐ユニット302のアドレスも、分岐ユニット305によって消費される追加的なアドレスインデックスを、分岐ユニット302に追加的に割り当てることによって再構成される。したがって、分岐ユニット302のためのアドレスインデックスの数は、11(
図3に図示)から15(
図5に図示)に変更されている。したがって、ルートユニット301は、15のアドレスインデックスを有するメッセージを分岐ユニット302にルーティングする。
【0096】
ステップ910において、ルートユニット301は、2通りに再構成される。第一に、ルートユニット301の上位ポート301bが、最大で15のアドレスインデックスを有するメッセージを、第1の分岐内の分岐ユニット302に送信するように再構成される。第二に、ルートユニット301の上位ポート301cが、第2の分岐の分岐ユニット303にもはや如何なるメッセージをも送信しないように再構成される。
【0097】
したがって、一例として、再インデックス付けされたアドレス指定メカニズムでは、メッセージが、以下のように、ルートユニット301からローカルサブシステム326の分析モジュール501にルーティングされ得る。ルートユニット301は、ルートユニット301に基づいた、分析モジュール501のアドレスであるアドレスインデックス14を、そのメッセージに適用する。ルートユニット301は、このメッセージを、ルートユニット301の上位ポート301bにルーティングして、-1のオフセットを適用する。分岐ユニット302は、13のインデックスを有するメッセージを受信する。分岐ユニット302は、このメッセージを、分岐ユニット302の上位ポート302bにルーティングして、-3のオフセットを適用する。分岐ユニット305は、10のインデックスを有するメッセージを受信する。分岐ユニット305は、このメッセージを、分岐ユニット305のクロスリンクポート305dにルーティングして、-8のオフセットを適用する。分岐ユニット306は、2のインデックスを有するメッセージを受信する。分岐ユニット306は、このメッセージを、分岐ユニット306の上位ポート306bにルーティングして、-1のオフセットを適用する。分岐ユニット309は、1のインデックスを有するメッセージを受信する。分岐ユニット309は、このメッセージを、分岐ユニット309のローカルサブシステムポート502にルーティングして、-1のオフセットを適用する。ローカルサブシステム326は、0のインデックスを有するメッセージを受信する。分析モジュール501は、自分自身を、アドレスインデックス0を有するものとみなし、したがって、自分自身を、受信したメッセージのための宛先アドレスであると識別する。
【0098】
典型的に、上述したツリーベースのシステムの内部において伝送されるメッセージには、アップストリーム方向における、システム回路を監視するように分析モジュールを構成するための構成メッセージと、ダウンストリーム方向における、システム回路の分析モジュールの監視から結果的に生じる監視データが含まれたメッセージとがある。これらのメッセージに加えて、イベントメッセージがシステム内で伝送される。分析モジュールは、この分析モジュールが監視しているコアデバイスによる特定のアクティビティが検出されたことに応答して、イベントメッセージを生成するように構成されている。例えば、分析モジュールは、メモリから特定のアドレス範囲を読み取った各自の関連するコアデバイスに応答して、イベントメッセージを生成するように構成可能である。好適には、分析モジュールにイベントメッセージを生成させるアクティビティは、ランタイム中に構成可能である。
【0099】
イベントメッセージは、システム全体中にわたって伝播する。他の分析モジュールは、アクションを実行することによってイベントメッセージの受信に応答する。アクションは、イベントメッセージの内容によって異なり得る。イベントメッセージは、例えば、安全性またはセキュリティ上の懸念を示すことができる。それに応じて、分析モジュールは、各自の関連するコアデバイスの動作を停止させることができる。別の例として、分析モジュールは、イベントに応答して、各自が監視している関連するコアデバイスのアクティビティを適合させることができる。システム内の或る1つの分析モジュールにおいて生成されたイベントメッセージは、システム内の他の全てのユニットにブロードキャストされる。換言すれば、イベントメッセージは、システム全体にわたってクロストリガされる。
【0100】
図10は、
図3の監視ネットワーク全体にわたってブロードキャストされているイベントメッセージを示す。それぞれの分岐ユニットは、システムを通じて、かつ各自の独自のローカルサブシステムに、イベントメッセージを転送する。イベントメッセージは、分岐ユニット308のローカルサブシステム315内の分析モジュール325aによって生成される。分析モジュール325aは、イベントメッセージを分岐ユニット308に送信する。分岐ユニット308は、イベントメッセージを、アップストリームで分析モジュール325bと、分岐ユニット308の他のローカルサブシステム314とにルーティングし、かつダウンストリームで分岐ユニット305にルーティングする。分岐ユニット308は、イベントメッセージを生成した分析モジュール325aにはイベントメッセージを返送しない。分岐ユニット305は、イベントメッセージを、分岐ユニット305のローカルサブシステム313にルーティングし、かつダウンストリームで分岐ユニット302にルーティングする。分岐ユニット302は、イベントメッセージを、分岐ユニット302のローカルサブシステム312にルーティングし、かつダウンストリームでルートユニット301にルーティングする。ルートユニット301は、イベントメッセージを、第2の分岐および第3の分岐にルーティングし、かつダウンストリームで通信インターフェース311および1005にルーティングする。具体的には、ルートユニット301は、イベントメッセージを、アップストリームで分岐ユニット303および分岐ユニット304にルーティングする。分岐ユニット303は、イベントメッセージを分岐ユニット306にルーティングする。分岐ユニット306は、イベントメッセージを分岐ユニット309にルーティングする。分岐ユニット309は、イベントメッセージをローカルサブシステム326内の分析モジュールにルーティングする。対応するルーティングが、第3の分岐にも適用される。
【0101】
それぞれの分岐ユニットがイベントメッセージを受信して伝播させる際には、それぞれの分岐ユニットにおいてサイクルの遅延が発生する。
図10は、イベントメッセージがツリーベースのネットワーク内のそれぞれのユニットに到達するためにかかるサイクル数を、それぞれのユニットの横にある円の中の数字によって示している。したがって、イベントメッセージが、
分岐ユニット308に到達するためには1サイクルかかり、
分岐ユニット305、ローカルサブシステム314、および分析モジュール325bに到達するまでには2サイクルかかり、
分岐ユニット302およびローカルサブシステム313に到達するためには3サイクルかかり、
ルートユニット301およびローカルサブシステム312に到達するためには4サイクルかかり、
分岐ユニット303および304、ならびに通信インターフェース311および1005に到達するためには5サイクルかかり、
分岐ユニット306および307、ならびにローカルサブシステム1004に到達するためには6サイクルかかり、
分岐ユニット309および310、ならびにローカルサブシステム1003に到達するための7サイクルかかり、
ローカルサブシステム326,1001,および1002に到達するまでには8サイクルかかる。
【0102】
メッセージが分岐の上下に伝送されるこのツリーベースのトポロジでは、イベントメッセージをネットワーク全体にわたってルーティングするための最大待ち時間が、複数の異なる分岐内における階層の最上位にあるコンポーネント間で観察される。したがって、ローカルサブシステム326は、イベントメッセージを生成したローカルサブシステム315に物理的に近接しているが、イベントメッセージがこのローカルサブシステム326に到達するためには8サイクルの最大待ち時間が観察される。このことは問題である。なぜなら、典型的に、イベントメッセージを生成した分析モジュールに物理的に最も近接している分析モジュールは、イベントメッセージに対して最も緊急に応答する必要がある分析モジュールであり、したがって、イベントメッセージを最も緊急に受信する必要がある分析モジュールだからである。
【0103】
図11は、
図3の監視ネットワーク全体にわたってブロードキャストされているイベントメッセージを示し、ここでは、分岐の内部でイベントメッセージをルーティングすることに加えて、クロスリンクを利用して分岐間でイベントメッセージをルーティングしている。これらのクロスリンクは、各自のデフォルト構成において使用され、このデフォルト構成では、これらのクロスリンクが接続している分岐ユニットが、
図7に示されているように構成されている。それぞれの分岐ユニットがイベントメッセージをルーティングするやり方は、これらの分岐ユニットがどのようにしてイベントメッセージを受信したのかによって決まる。具体的には、以下の通りである:
1.分岐ユニットが分析モジュールから直接的にイベントメッセージを受信した場合には、その分岐ユニットは、イベントメッセージをアップストリームでルーティングし、ダウンストリームでルーティングし、かつその分岐ユニットの全てのクロスリンクを介してルーティングする。分岐ユニットは、イベントメッセージを自身の全てのローカルサブシステムにもルーティングする。分岐ユニットは、イベントメッセージを送信してきた分析モジュールにはイベントメッセージをルーティングし戻さない。
2.分岐ユニットがクロスリンクからイベントメッセージを受信した場合には、その分岐ユニットは、イベントメッセージをアップストリームでルーティングし、ダウンストリームでルーティングし、かつその分岐ユニットが他のクロスリンクを有する場合には、そのクロスリンクを介してルーティングする。分岐ユニットは、イベントメッセージを自身の全てのローカルサブシステムにもルーティングする。分岐ユニットは、イベントメッセージを送信してきたクロスリンクにはイベントメッセージをルーティングし戻さない。
3.分岐ユニットが自身の分岐内における自身の上位にあるユニットからイベントメッセージを受信した場合には、その分岐ユニットは、イベントメッセージをアップストリームでルーティングし(イベントメッセージを送信してきたユニット以外のユニットへのポートを有する場合)、かつダウンストリームでルーティングする。分岐ユニットは、イベントメッセージを自身の全てのローカルサブシステムにもルーティングする。分岐ユニットは、自身のクロスリンク上ではイベントメッセージをルーティングしない。分岐ユニットは、イベントメッセージを送信してきたユニットにはイベントメッセージをルーティングし戻さない。
4.分岐ユニットが自身の分岐内における自身の下位にあるユニットからイベントメッセージを受信した場合には、その分岐ユニットは、イベントメッセージをダウンストリームでルーティングし(イベントメッセージを送信してきたユニット以外のユニットへのポートが存在する場合)、かつアップストリームでルーティングする。分岐ユニットは、イベントメッセージを自身の全てのローカルサブシステムにもルーティングする。分岐ユニットは、自身のクロスリンク上ではイベントメッセージをルーティングしない。分岐ユニットは、イベントメッセージを送信してきたユニットにはイベントメッセージをルーティングし戻さない。
【0104】
図11の例では、
図10と同様に、イベントメッセージは、分岐ユニット308のローカルサブシステム315内の分析モジュール325aによって生成される。上記の規則に従って、分析モジュール325aは、イベントメッセージを分岐ユニット308に送信する。分岐ユニット308は、分析モジュール325aからイベントメッセージを受信し、したがって、上記の規則1に従っている。分岐ユニット308は、イベントメッセージを、アップストリームで分析モジュール325bと、分岐ユニット308の他のローカルサブシステム314とにルーティングし、ダウンストリームで分岐ユニット305にルーティングし、かつクロスリンク323を介して分岐ユニット309にもルーティングする。分岐ユニット308は、イベントメッセージを生成した分析モジュール325aにはイベントメッセージを返送しない。分岐ユニット305および302は、
図10を参照しながら説明したようにイベントメッセージをルーティングする。分岐ユニット309は、クロスリンク323上でイベントメッセージを受信し、したがって、上記の規則2に従っている。分岐ユニット309は、イベントメッセージを、アップストリームでローカルサブシステム326にルーティングし、ダウンストリームで分岐ユニット306にルーティングし、かつ分岐ユニット309の他のクロスリンク324上で、隣接する分岐3内の分岐ユニット310にルーティングする。分岐ユニット310は、クロスリンク324からイベントメッセージを受信し、したがって、上記の規則2に従っている。分岐ユニット310は、イベントメッセージを、分岐ユニット310のローカルサブシステム1001および1002にルーティングし、かつダウンストリームでユニット307にルーティングする。分岐ユニット306,303,307,および304は、分岐内における各自の上位にあるユニットからイベントメッセージを受信し、したがって、上記の規則3に従っている。したがって、これらの分岐ユニットは、イベントメッセージを、ダウンストリームでルーティングし、かつ各自のローカルサブシステムにルーティングする(ローカルサブシステムを有する場合)。
【0105】
クロスリンクを利用してイベントメッセージを伝送するこの方法は、イベントメッセージを生成したユニットに物理的に近接しているユニットへとクロストリガする際に生じる待ち時間を短縮する。
図11は、イベントメッセージがツリーベースのネットワーク内のそれぞれのユニットに到達するためにかかるサイクル数を、それぞれのユニットの横にある円の中の数字によって示している。
図10の方法を使用した場合の8サイクルと比較して、イベントメッセージが、物理的に最も近接しているローカルサブシステム326に到達するためには3サイクルかかる。
図10の方法を使用した場合の8サイクルと比較して、イベントメッセージがローカルサブシステム1001および1002に到達するためには4サイクルかかる。したがって、
図11に関連して説明した方法は、物理的に近接しているサブシステム間でのイベントメッセージの伝播遅延を短縮するものである。最長の伝搬遅延も、8サイクルから6サイクルに短縮された。
【0106】
図12は、上記のルールを使用して、
図3の監視ネットワーク全体にわたってイベントメッセージがブロードキャストされる別の例を示す。イベントメッセージは、分岐ユニット309のローカルサブシステム326内の分析モジュール501によって生成される。分岐ユニット309は、分析モジュール501からイベントメッセージを受信し、したがって、上記の規則1に従っている。分岐ユニット309は、イベントメッセージを、アップストリームで分析モジュール1201にルーティングし、ダウンストリームで分岐ユニット306にルーティングし、かつ分岐ユニット309のクロスリンク323を介して分岐ユニット308と、分岐ユニット309のクロスリンク324を介して分岐ユニット310とにもルーティングする。分岐ユニット309は、イベントメッセージを生成した分析モジュール501にはイベントメッセージを返送しない。分岐ユニット308および310は、クロスリンク上でイベントメッセージを受信し、したがって、上記の規則2に従っている。分岐ユニット308は、イベントメッセージを、分岐ユニット308のローカルサブシステム314および315にルーティングし、かつダウンストリームで分岐ユニット305にルーティングする。分岐ユニット308は、イベントメッセージをルーティングするための別のクロスリンクを有していない。分岐ユニット310は、イベントメッセージを、分岐ユニット310のローカルサブシステム1001および1002にルーティングし、かつダウンストリームで分岐ユニット307にルーティングする。分岐ユニット310は、イベントメッセージをルーティングするための別のクロスリンクを有していない。分岐ユニット305,306,307,302,303,および304は、分岐内における各自の上位にあるユニットからイベントメッセージを受信し、したがって、上記の規則3に従っている。したがって、これらの分岐ユニットは、イベントメッセージを、ダウンストリームでルーティングし、かつ各自のローカルサブシステムにルーティングする(ローカルサブシステムを有する場合)。
【0107】
イベントメッセージは、イベントコードを含むことができる。イベントコードは、イベントメッセージを生成した分析モジュールによって検出されたイベントを識別するものである。追加的に、イベントメッセージは、フラグを含むことができる。例えば、分岐ユニットが分析モジュールから直接的にイベントメッセージを受信した場合(すなわち、上記の規則1)には、この分岐ユニットは、分岐内における各自の下位にあるユニットへのダウンストリームでのイベントメッセージとともに送信されるべきフラグを設定することができる。この分岐ユニットは、分岐内における各自の下位にはないユニットへのイベントメッセージとともに送信されるべきフラグは設定しない。或る分岐ユニットが、分岐内におけるその分岐ユニットの上位にあるユニットから、フラグが設定されたイベントメッセージを受信した場合(すなわち、上記の規則3)には、この分岐ユニットは、(i)フラグが設定されたイベントメッセージを、その分岐ユニットの分岐内におけるこの分岐ユニットの下位にあって隣接する分岐ユニットにルーティングし、かつ(ii)フラグが設定されていないイベントメッセージを、分岐内におけるこの分岐ユニットの上位にあって隣接するユニットと、この分岐ユニットのローカルサブシステムとにルーティングする。
【0108】
ルートユニット301がイベントメッセージの受信に応答するやり方は、フラグが設定されているかどうかによって決まる。ルートユニット301が、フラグが設定されたイベントメッセージを受信した場合には、ルートユニット301は、イベントメッセージを自身の下位ポート301aのみにルーティングすることによって応答することができる。この下位ポート301aから、イベントメッセージが通信インターフェース311,1005に送信される。通信インターフェースは、イベントメッセージをオフチップに、例えばオフチップの分析器にルーティングすることができる。これに代えて、通信インターフェースは、イベントメッセージをオンチップの別のモジュールに、例えばオンチップの分析器にルーティングしてもよい。ルートユニット301が、フラグが設定されていないイベントメッセージを受信した場合には、ルートユニット301が、アクションを実行しないようにすることができる。換言すれば、ルートユニット301は、イベントメッセージを他のいずれのユニットにもルーティングしてはならない。これにより、イベントメッセージがシステムにわたって無限にブロードキャストされることが阻止される。フラグは、イベントが発生した分岐内でのみ設定されるので、通信インターフェースは、ルートユニット301からイベントメッセージを1回だけ受信する。
【0109】
フラグは、イベントメッセージの単一のビットであってもよい。例えば、イベントコードを8ビットコードとし、フラグを追加的な1ビットとしてもよい。例えば、ビット0~7をイベントコードとし、ビット8をフラグとしてもよい。これに代えて、フラグがイベントコードの一部を形成するようにしてもよい。
【0110】
不良なユニットをバイパスするために、分岐間の通信をルーティングするようにクロスリンクが有効化されている場合には、そのクロスリンクは、イベントメッセージを伝播させる目的でアップリンクまたはダウンリンクとして取り扱われる。一例として
図5の不良なシステムを取り上げると、ローカルサブシステム326の分析モジュール501によってイベントが生成された場合には、分岐ユニット309は、イベントメッセージを、ダウンストリームで分岐ユニット306に転送し、クロスリンク323および324を介して転送し、かつローカルサブシステム326内の分析モジュール1201に返送する。分岐ユニット306は、アップストリームからイベントメッセージを受信し、したがって、規則3に従って動作する。分岐ユニット306は、クロスリンク321を分岐ユニット305へのダウンリンクとして取り扱うので、分岐ユニット306は、イベントメッセージを、クロスリンク321を介してダウンストリームで分岐ユニット305にルーティングする。次いで、分岐ユニット305は、イベントメッセージを、アップストリームで分岐ユニット308にルーティングし、かつダウンストリームで分岐ユニット302と、分岐ユニット305のローカルサブシステム313とにルーティングする。
【0111】
さらなる例として
図6の不良なシステムを取り上げると、ローカルサブシステム315の分析モジュール325aによってイベントが生成された場合には、分岐ユニット308は、イベントメッセージを、ダウンストリームで分岐ユニット305に転送し、クロスリンク323を介して転送し、かつローカルサブシステム314と、ローカルサブシステム315内の分析モジュール325bとに転送する。分岐ユニット305は、アップストリームからイベントメッセージを受信し、したがって、規則3に従って動作する。分岐ユニット305は、クロスリンク321を分岐ユニット306へのダウンリンクとして取り扱うので、分岐ユニット305は、イベントメッセージを、クロスリンク321を介してダウンストリームで分岐ユニット306にルーティングする。次いで、分岐ユニット306は、イベントメッセージを、アップストリームで分岐ユニット309にルーティングし、かつダウンストリームで分岐ユニット303にルーティングする。
【0112】
不良なユニットをバイパスするために使用されている有効化されたクロスリンクは、アップリンク/ダウンリンクとして取り扱われているので、そのクロスリンクに結合されている分岐ユニットは、イベントメッセージを、このクロスリンクを介してダウンストリームでルーティングする際に、設定されたフラグを維持する。
図5の例を取り上げると、イベントがローカルサブシステム326の分析モジュール501によって生成された場合には、分岐ユニット309は、イベントメッセージをダウンストリームで分岐ユニット306にルーティングする際に、イベントメッセージのフラグを設定する。分岐ユニット306は、イベントメッセージを、クロスリンク321を介してダウンストリームで分岐ユニット305にルーティングする際に、設定されたフラグを維持する。分岐ユニット305は、イベントメッセージをダウンストリームで分岐ユニット302にルーティングする際に、設定されたフラグを維持する。そして、分岐ユニット302は、イベントメッセージをダウンストリームでルートユニット301にルーティングする際に、設定されたフラグを維持する。フラグが設定されているので、ルートユニット301は、このイベントメッセージを、ルートユニット301に接続されている通信インターフェース311にダウンストリームでルーティングする。
【0113】
図1~
図3、
図5~
図8、および
図10~
図12に示されているSoCのそれぞれのコンポーネントは、専用のハードウェアの形態で実装可能である。これに代えて、
図1~
図3、
図5~
図8、および
図10~
図12に示されているSoCのそれぞれのコンポーネントを、ソフトウェアの形態で実装してもよい。いくつかのコンポーネントをソフトウェアの形態で実装してもよく、その一方で、他のコンポーネントは、専用のハードウェアの形態で実装される。
【0114】
記載されているSoCは、好適には、コンピューティングベースのデバイスの内部に組み込まれている。コンピューティングベースのデバイスは、電子デバイスであり得る。好適には、コンピューティングベースのデバイスは、本明細書に記載の方法を実施するために、デバイスの動作を制御するためのコンピュータ実行可能命令を処理する1つまたは複数のプロセッサを含む。コンピュータの実行可能命令は、メモリのような任意のコンピュータ可読媒体を使用して提供可能である。本明細書に記載の方法は、有形の記憶媒体上で機械可読形式のソフトウェアによって実施可能である。コンピューティングベースのデバイスに、本明細書に記載の方法を実施するためのソフトウェアを提供可能である。
【0115】
上述した説明は、システム回路と監視回路とが同じSoC上に含まれているものとして記載されている。これに代わる実装態様では、システム回路と監視回路とがMCMの2つ以上の集積回路チップにわたって含まれている。MCMでは、これらの集積回路チップは、典型的に、インターポーザ基板上で積層されるか、または隣接し合うように配置される。いくつかのシステム回路を、MCMの1つの集積回路チップ上に配置して、他のシステム回路を、MCMの別の集積回路チップ上に配置してもよい。同様に、監視回路を、MCMの複数の集積回路チップにわたって分散させてもよい。したがって、SoCの文脈において上述した方法および装置は、MCMの文脈においても適用される。
【0116】
本出願人は、本明細書に記載されたそれぞれの個々の特徴を、単独でも、2つ以上のそのような特徴の任意の組み合わせでも、そのような特徴または特徴の組み合わせが、当業者の共通の一般知識に照らして全体として本明細書に基づいて実行可能である範囲で、そのような特徴または特徴の組み合わせが本明細書に開示された何らかの課題を解決するかどうかに関係なく、また、特許請求の範囲を限定することもなく、ここに開示する。本出願人は、本発明の各態様を、そのような個々の特徴または特徴の組み合わせから形成してもよいことを指摘しておく。前述した説明を考慮すると、本発明の範囲内で種々の修正を行ってもよいことが、当業者には自明であろう。