JP2021052386A - システムオンチップにおけるイベントメッセージのブロードキャスティング - Google Patents

システムオンチップにおけるイベントメッセージのブロードキャスティング Download PDF

Info

Publication number
JP2021052386A
JP2021052386A JP2020132914A JP2020132914A JP2021052386A JP 2021052386 A JP2021052386 A JP 2021052386A JP 2020132914 A JP2020132914 A JP 2020132914A JP 2020132914 A JP2020132914 A JP 2020132914A JP 2021052386 A JP2021052386 A JP 2021052386A
Authority
JP
Japan
Prior art keywords
unit
branch
event
event message
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020132914A
Other languages
English (en)
Other versions
JP7326231B2 (ja
Inventor
スチュワート・キャラム
Stewart Callum
ロバートソン・イアン
Robertson Iain
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ultrasoc Technologies Ltd
Original Assignee
Ultrasoc Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ultrasoc Technologies Ltd filed Critical Ultrasoc Technologies Ltd
Publication of JP2021052386A publication Critical patent/JP2021052386A/ja
Application granted granted Critical
Publication of JP7326231B2 publication Critical patent/JP7326231B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/65Re-configuration of fast packet switches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1423Reconfiguring to eliminate the error by reconfiguration of paths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3048Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the topology of the computing system or computing system component explicitly influences the monitoring activity, e.g. serial, hierarchical systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0669Configuration or reconfiguration with decentralised address assignment
    • G06F12/0676Configuration or reconfiguration with decentralised address assignment the address being position dependent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】SoCにおいてイベントメッセージをブロードキャストする方法を提供する。【解決手段】SoCは、システム回路と、システム回路を監視するための監視回路とを含む。監視回路は、システムオンチップにわたって通信をルーティングするための、ツリーベース構造で接続された複数のユニット301〜310を含む。ツリーベース構造は、ルートユニットから延在している複数の分岐を含む。それぞれの分岐は、複数のユニットを含み、隣接し合う分岐の対応するユニット同士を接続するクロスリンクをさらに含む。方法は、イベントが生成された場合に、イベントユニットの分岐内におけるイベントユニットの上位にある全ての隣接するユニットと、下位にある全ての隣接するユニットと、イベントユニットがクロスリンクを介して接続されている、隣接する分岐の全ての対応するユニットとに、イベントユニットからイベントメッセージを直接的にルーティングする。【選択図】図11

Description

背景
本開示は、集積回路チップデバイス上の通信プロトコルに関し、特に、集積回路チップデバイスの回路を介してメッセージをルーティングするためのメカニズムに関する。
システムオンチップ(SoC)デバイスでは、組み込みシステムの複数のコアデバイスが単一のチップ上に集積されている。組み込みシステムにおけるトラフィックは、典型的に、コアデバイス間のバスを介して伝送される。トラフィックを監視するために、SoC上に監視機能を組み込むことが知られている。例えば、それぞれのコアデバイスには、それらのコアデバイスへのトラフィックおよびそれらのコアデバイスからのトラフィックを監視するために1つの監視ユニットを関連付けることができる。これらの監視ユニットは、収集されたトレースデータのようなデータを生成する。典型的に、監視ユニットは、オフチップの分析器の制御下で動作し、コアデバイスのあらゆる不適切な動作を検出するために、そのオフチップの分析器に各自のデータを送信する。
監視回路専用のSoCのオンチップ領域を最小化することが望ましい。監視ネットワークのための効率的な構成の1つは、ツリーベースのトポロジである。このようなトポロジでは、ルートユニットが、監視ネットワークをチップの出力ポートに接続する。そのルートユニットからSoCを介して複数の分岐が延在しており、それぞれの分岐は、直列に接続された多数のユニットを有する。それぞれのユニットは、各自の分岐を介して、ルートユニットへのメッセージおよびルートユニットからのメッセージをルーティングすることが可能である。このようなネットワークは、監視回路のメッセージをSoCにわたって伝送するために効率的である。しかしながら、ツリーベースのトポロジでは、或る1つのユニットに障害が発生すると、その障害が発生したユニットの分岐内において上位に接続されているユニットは、もはやルートユニットと通信できなくなる。この状況では、監視回路の単一のユニットで障害が発生した結果として、SoC全体が破棄されるおそれがある。
ツリーベースのトポロジを有するノードネットワークでは、ツリーを複製することにより、換言すれば、第1のノードネットワークと同じツリーベースのトポロジを有する、第2のノードネットワークを利用することにより、単一のノードの障害から保護することが知られている。第1のネットワーク内のノードに障害が発生した場合には、第2のネットワーク内の対応するノードを利用して、障害が発生したノードの代わりにすることができる。この冗長的なツリーアプローチは、効果的ではあるが、チップ上にこのネットワーク専用の領域を複製する必要がある。
したがって、監視ネットワーク専用のSoCのオンチップ領域を最小化しながら、監視ネットワークの障害に対してよりロバストなSoCに対するニーズが存在する。
発明の概要
本開示の第1の態様によれば、システムオンチップにおいてイベントメッセージをブロードキャストする方法であって、当該システムオンチップは、システム回路と、システム回路を監視するための監視回路とを含み、監視回路は、システムオンチップにわたって通信をルーティングするための、ツリーベース構造で接続された複数のユニットを含み、ツリーベース構造は、ルートユニットから延在している複数の分岐を含み、それぞれの分岐は、複数のユニットを含み、それぞれのユニットは、分岐内における上位にある単一のユニットと、分岐内における下位にある単一のユニットとに接続されており、それにより、それぞれのユニットは、各自の分岐内における各自の上位にある個別にアドレス指定可能なエンティティへの通信、および各自の分岐内における各自の上位にある個別にアドレス指定可能なエンティティからの通信をルーティングし、ツリーベース構造は、隣接し合う分岐の対応するユニット同士を接続するクロスリンクをさらに含み、当該方法は、イベントユニットまたはイベントユニットのローカルサブシステムにおいてイベントが生成された場合に、イベントユニットの分岐内におけるイベントユニットの上位にある全ての隣接するユニットと、イベントユニットの分岐内におけるイベントユニットの下位にある全ての隣接するユニットと、イベントユニットがクロスリンクを介して接続されている、隣接する分岐の全ての対応するユニットとに、イベントユニットからイベントメッセージを直接的にルーティングすることを含む、方法が提供される。
本方法は、システムオンチップにおける第1のユニットにおいて、第1のユニットの分岐内における第1のユニットに隣接していて、かつ第1のユニットの下位にある第2のユニットから、イベントメッセージを受信することと、第1のユニットの分岐内における第1のユニットの上位にある全ての隣接するユニットに、イベントメッセージをルーティングすることと、第2のユニットを除いて、第1のユニットの分岐内における第1のユニットの下位にある全ての隣接するユニットに、イベントメッセージをルーティングすることとをさらに含み得る。
本方法は、システムオンチップにおける第3のユニットにおいて、第3のユニットの分岐内における第3のユニットに隣接していて、かつ第3のユニットの上位にある第4のユニットから、イベントメッセージを受信することと、第3のユニットの分岐内における第3のユニットの下位にある全ての隣接するユニットに、イベントメッセージをルーティングすることと、第4のユニットを除いて、第3のユニットの分岐内における第3のユニットの上位にある全ての隣接するユニットに、イベントメッセージをルーティングすることとをさらに含み得る。
本方法は、システムオンチップにおける第5のユニットにおいて、第5のユニットを第6のユニットに接続しているクロスリンクから、イベントメッセージを受信することと、第5のユニットの分岐内における第5のユニットの上位にある全ての隣接するユニットに、イベントメッセージをルーティングすることと、第5のユニットの分岐内における第5のユニットの下位にある全ての隣接するユニットに、イベントメッセージをルーティングすることと、第5のユニットを第6のユニットに接続しているクロスリンクを除いて、第5のユニットがクロスリンクを介して接続されている、隣接する分岐の全ての対応するユニットに、イベントメッセージをルーティングすることとをさらに含み得る。
本方法は、イベントユニットにおいて、イベントユニットの分岐内におけるイベントユニットの下位にある全ての隣接するユニットのみにイベントメッセージとともに送信されるべきフラグを設定することをさらに含み得る。
本方法は、フラグを有するイベントメッセージを受信した第7のユニットにおいて、フラグを有するイベントメッセージを、第7のユニットの分岐内における第7のユニットの下位にある全ての隣接するユニットのみにルーティングすることと、フラグを有していないイベントメッセージを、第7のユニットに当該イベントメッセージを送信してきたユニットを除いて、第7のユニットの分岐内における第7のユニットの上位にある隣接するユニットにルーティングすることとをさらに含み得る。
本方法は、ルートユニットにおいて、フラグを有するイベントメッセージを受信することと、イベントメッセージをコミュニケータにルーティングすることとをさらに含み得る。
コミュニケータは、イベントメッセージをオフチップにルーティングすることができる。
本方法は、ルートユニットにおいて、フラグが設定されていないイベントメッセージを受信することと、イベントメッセージが他のユニットにルーティングされることを阻止することとをさらに含み得る。
フラグは、イベントメッセージの単一のビットであり得る。
本方法は、或るユニットが不良であると判定することと、不良なユニットと同じ分岐内にある第8のユニットと、隣接する分岐内にある第9のユニットとの間のクロスリンクを有効化すること(enabling)と、不良なユニットの分岐内にある個別にアドレス指定可能なエンティティへのその後の非イベント関連の通信が、隣接する分岐とクロスリンクとを介してルートユニットからルーティングされることによって不良なユニットがバイパスされるように、クロスリンクを再構成することとをさらに含み得る。
本方法は、その後のイベントが生成された場合に、イベントメッセージをルーティングする各請求項のステップに関して、第8のユニットを、第9のユニットと同じ分岐内における第9のユニットに隣接していて、かつ第9のユニットの上位にあるユニットとして取り扱うことをさらに含み得る。
本方法は、その後のイベントが生成された場合に、イベントメッセージをルーティングする各請求項のステップに関して、第9のユニットを、第8のユニットと同じ分岐内における第8のユニットに隣接していて、かつ第8のユニットの下位にあるユニットとして取り扱うことをさらに含み得る。
本方法は、第8のユニットにおいて、フラグを有するイベントメッセージを受信することと、フラグを有するイベントメッセージを、クロスリンクを介して第9のユニットにルーティングすることとを含み得る。
本方法は、第9のユニットにおいて、フラグを有するイベントメッセージを、第8のユニットからクロスリンクを介して受信することと、フラグを有するイベントメッセージを、第9のユニットの分岐内における第9のユニットの下位にある全ての隣接するユニットのみにルーティングすることとを含み得る。
イベントメッセージを受信したそれぞれのユニットは、当該イベントメッセージを、各自のローカルサブシステムに転送することができる。
それぞれのユニットは、構成不可能なリンクによって分岐内における上位にあるユニットに接続され、かつ構成不可能なリンクによって分岐内における下位にあるユニットに接続され得る。
それぞれのクロスリンクは、構成可能であり得る。
図面の簡単な説明
以下では、本開示を、添付の図面を参照しながら例として説明する。
集積回路チップデバイス上の例示的な監視ネットワークの概略図である。 集積回路チップデバイス上の例示的な監視ネットワークの概略図である。 集積回路チップデバイス上の監視ネットワークの例示的なツリーベースのトポロジの概略図である。 クロスリンクを有効化するためのメカニズムを説明するフローチャートである。 SoC内における不良なユニットの一例を示す図である。 SoC内における不良なユニットの別の例を示す図である。 クロスリンクによって接続された分岐ユニットの例示的な内部構造を示す図である。 クロスリンクを介してアップストリームメッセージおよびダウンストリームメッセージを伝送するように構成された、図7の分岐ユニットを示す図である。 ユニットが不良であることを判定して、その後の通信においてその不良なユニットをバイパスするためのメカニズムを説明するフローチャートである。 図3の監視ネットワーク全体にわたってブロードキャストされているイベントメッセージの一例を示す図である。 クロスリンクが利用されている、図3の監視ネットワーク全体にわたってブロードキャストされているイベントメッセージの一例を示す図である。 クロスリンクが利用されている、図3の監視ネットワーク全体にわたってブロードキャストされているイベントメッセージの別の例を示す図である。
詳細な説明
以下の開示は、SoC上またはMCM上に実装するために適した監視ネットワークについて記載する。
図1〜図3、図5〜図8、および図10〜図12は、例示的なシステムアーキテクチャと、これらのシステムアーキテクチャの内部のコンポーネントとの概略図である。これらの図面は、機能ブロックの観点から構造を示している。当技術分野で周知の機能を実行するためのいくつかの機能ブロックは、これらの図面から所々省略されている。図4および図9は、監視回路を介してメッセージをルーティングする方法を説明するフローチャートである。それぞれのフローチャートは、それらのフローチャートの方法を実行することができる順序を図示している。しかしながら、これらのフローチャートは、記載されている方法を、図示されている順序で実装することに制限することを意図したものではない。方法のステップを、フローチャートに図示されている順序に代わる順序で実行してもよい。
図1は、SoC100のための例示的な監視ネットワークの一般的な構造を示す。監視回路101は、システム回路102を監視するように配置されている。例えば、安全性またはセキュリティ上の懸念に関連するコアデバイスの不適切な動作を検出することが目的である。図2は、複数のコアデバイスと1つの通信インターフェースとを含む、例示的なシステム回路を示す。SoCのコアデバイス201,202,および203は、それぞれ監視回路101に接続されている。図2は、3つのコアデバイスを示しているが、好適には、任意の個数のコアデバイスを監視ネットワークに組み込むことができる。例示的なコアデバイスには、DSP(デジタルシグナルプロセッサ)、ビデオプロセッサ、アプリケーションプロセッサまたはCPU(中央処理装置)、グラフィックプロセッサ、システムメモリ、バス、システムインターコネクト、RTOS(リアルタイムオペレーティングシステム)、ソフトウェア、データ、カスタム回路、およびデータエンジンが含まれる。しかしながら、図2のコアデバイスとして監視ネットワークに組み込むために、SoCのあらゆるコンポーネントが適している。コアデバイスは、チップ上の他のデバイスのエミュレータまたはシミュレータであり得る。例えば、コアデバイスは、プロセッサをエミュレートすることができる。
監視回路は、コアデバイスの動作を操作することと、コアデバイスの動作を監視することとが可能であり得る。監視回路は、通信インターフェース204に接続されている。通信インターフェース204は、オフチップのエンティティと通信するように構成可能である。例えば、監視回路101は、通信インターフェース204を介してオフチップの分析器と通信することができる。通信インターフェース204は、他のオンチップのエンティティと通信するようにも構成可能である。例えば、監視回路101は、通信インターフェース204を介してオンチップの分析器と通信することができる。図2は、1つの通信インターフェースを示しているが、任意の個数の通信インターフェースをSoC上に組み込むことができる。実装される通信インターフェースは、確立されるべき接続の種類に応じて選択される。例示的な通信インターフェースには、JTAG、並列トレース入力/出力、およびAuroraベースの高速シリアルインターフェースと、USB、イーサネット、RS232、PCIe、およびCANのようなシステムインターフェースの再利用とが含まれる。
図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を含む。
分岐内におけるユニット同士は、直列に接続されている。それぞれのユニットは、分岐内における各自の下位にある単一のユニットに接続されている。それぞれのユニットは、分岐内における各自の上位にある単一のユニット(存在する場合)に接続されている。それぞれのユニットは、分岐内における各自の下位にあるユニットと通信するための下位ポートを有する。それぞれのユニットは、分岐内における各自の上位にあるユニットと通信するための上位ポートを有する。下位ポートおよび上位ポートは、両方とも双方向である。例えば、ユニット302は、ルートユニット301の上位ポート301bに接続された下位ポート302aを有する。ユニット302は、下位ポート302aを介してルートユニット301からメッセージを受信し、下位ポート302aを介してルートユニット301にメッセージを送信する。ユニット302は、ユニット305の下位ポート305aに接続されている上位ポート302bも有する。ユニット302は、上位ポート302bを介してユニット305にメッセージを送信し、上位ポート302bを介してユニット305からメッセージを受信する。
それぞれのユニットは、1つまたは複数のローカルサブシステムに直接的に接続可能である。図3に示されている例では、ユニット302は、ローカルサブシステム312に直接的に接続されている。ユニット305も、単一のローカルサブシステム313に直接的に接続されている。ユニット308は、2つのローカルサブシステム314,315に直接的に接続されている。図示を簡単にするために、ユニット303および306に直接的に接続されているローカルサブシステムが、図3から省略されていることに注意すべきである。それぞれのユニットは、各自のローカルサブシステムに接続されているローカルポート302c,305c等を有する。このローカルポートは、ユニットの上位ポートおよび下位ポートとは別個の異なるものである。このローカルポートは、ユニットからローカルサブシステムへの通信と、ローカルサブシステムからユニットへの通信との両方の通信を可能にするために双方向であり得る。
ローカルサブシステムは、1つまたは複数のコアデバイスを含む。ローカルサブシステムは、1つまたは複数の分析モジュールを含むこともできる。ローカルサブシステムは、1つまたは複数のさらなるルーティングユニットを含むこともできる。例えば、ユニット302のローカルサブシステム312は、2つのコアデバイス316a,316bと、2つの分析モジュール317a,317bとを有する。それぞれのコアデバイスは、各自の独自の分析モジュールに接続可能である。例えば、分析モジュール317aは、コアデバイス316aのみに接続可能である。同様に、分析モジュール317bは、コアデバイス316aのみに接続可能である。これに代えて、1つの分析モジュールを複数のコアデバイスに接続してもよい。
分析モジュールは、結合されているコアデバイスを受動的または能動的に監視するように構成可能である。コアデバイスを受動的に監視する分析モジュールは、そのコアデバイスの出力を分析することに限定されている。逆に、コアデバイスを能動的に監視する分析モジュールは、そのコアデバイスの出力を分析することができ、追加的に、そのコアデバイスを制御して、そのコアデバイスの動作を変更することができる。例えば、分析モジュールは、コアデバイスを制御して、コアデバイスが動作する速度を遅くすることができるか、またはコアデバイスのプロセッサを停止および/または再起動することができる。
それぞれの分析モジュール317a,317bは、サブシステムのサブシステムポート312aに接続されている。それぞれのサブシステムポートは、複数の個別のポートを含み、すなわち、1つの分析モジュールにつき1つずつの個別のポートを含む。したがって、サブシステムポート312aは、分析モジュール317aのためのポートと、分析モジュール317bのための別個のポートとを含む。分析モジュール317a,317bは、これらの分析モジュールが監視しているコアデバイス316a,316bに関連するデータが含まれたメッセージを生成する。例えば、これらのメッセージは、コアデバイスのトレースデータを含むことができる。分析モジュールは、サブシステムポート312aの個別のポートを介して、接続された分岐ユニット302に自身のメッセージを出力する。分析モジュールは、接続された分岐ユニット302からサブシステムポート312aを介して構成メッセージを受信することができる。例えば、これらの構成メッセージは、分析モジュールに対して、種々異なるアクティビティを検出および報告することを検討するように、コアデバイスの監視を変更するように指示することができる。例えば、構成メッセージは、分析モジュールに対して、コアデバイスの出力における特定の値を検索するように、またはコアデバイスがメモリ内の特定のアドレス範囲から読み出す際に報告するように指示することができる。
これに代わる配置構成では、ローカルサブシステムは、複数の分析モジュールと、単一のポートのみからなる1つのサブシステムポートとを有することができる。この場合には、ローカルサブシステムは、ポートで受信したメッセージを個別の分析モジュールに、またはその逆方向にルーティングするルーティングユニットをさらに含む。
図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への通信は、分岐を下るように対応するやり方でルーティングされる。したがって、システム内の全ての一次通信は、分岐の上下にのみルーティングされる。
図3に示されている配置構成では、ルートユニット301は、データをオフチップにルーティングする。図示の通信インターフェース311は、USBポートである。通信インターフェース311とルートユニット301との間の接続は、双方向である。ルートユニット301は、オフチップに伝送するために、監視回路から受信したデータを通信インターフェース311に出力する。このデータは、トレースデータを含むことができる。このデータは、イベントデータを含むことができる。通信インターフェース311はまた、オフチップのデバイス、例えばオフチップの分析器から受信したメッセージをルートユニット301に送信する。このデータは、1つまたは複数の監視ユニットを構成するための構成メッセージを含むことができる。ルートユニット301は、通信インターフェース311から、分岐内におけるアドレス指定されたユニットまで、メッセージをルーティングする。
代替的または追加的に、ルートユニット301は、オンチップの分析器に接続可能である。この場合には、ルートユニット301は、監視回路から受信したメッセージをそのオンチップの分析器にルーティングすることができる。ルートユニット301は、そのオンチップの分析器から受信したメッセージを、上述したツリーベースのトポロジを介して監視ユニットにルーティングすることができる。
典型的に、SoC上のコンポーネントは、タイル状のアレイの形態で配置されている。換言すれば、コンポーネントは、正方形のグリッドの形態で配置されている。図3を参照しながら説明したツリーベースの監視ネットワークは、SoCコンポーネントにわたって適合するようにチップ上に構築されている。したがって、SoCのコンポーネントがそのような配置になっている場合には、分岐ユニットの物理的なレイアウトは、図3に示されているような規則的なタイル状の配置になる。しかしながら、SoCコンポーネントが別の配置を有する場合には、分岐ユニットの物理的なレイアウトを、分岐ユニットとツリーベースのトポロジのルーティングメカニズムとの間の相対的な接続を維持しながら、SoCコンポーネントにわたって適合するように別の配置にすることができる。
監視回路に関連する一次通信は、上述したようにSoCにわたってツリーベースのトポロジの分岐の上下に伝送される。しかしながら、背景技術のセクションに記載したように、或る1つの分岐ユニットに障害が発生すると、その障害が発生したユニットよりも分岐内において上位に接続されている全てのユニットは、もはやその分岐を介してルートユニットと通信できなくなる。図3のネットワークは、この問題に対処するものである。
図3は、ルートユニット301の上位にある分岐同士を接続するクロスリンクを示す。それぞれのクロスリンクは、隣接し合う分岐の対応するユニット同士を接続する。好適には、それぞれのクロスリンクは、互いに隣接し合う分岐内にある2つのユニットのみを接続する。クロスリンクによって接続されたユニット同士は、互いに同じ階層レベルにある。クロスリンクによって接続されたユニット同士は、各自のそれぞれの分岐内におけるこれらのユニットとルートユニットとの間に、それぞれ同じ数の中間ユニットを有することができる。
図3は、4つの階層レベルを示す。レベル0は、ルートユニット301を含む。レベル1は、レベル0に隣接していて、かつレベル0より上位にある階層レベルである。レベル1は、分岐ユニット302,303,および304を含む。これらの分岐ユニットの各々は、ルートユニット301に直接的に接続されている。分岐ユニット303は、分岐ユニット302に隣接していて、かつ分岐ユニット302と同じ階層レベルにある。分岐ユニット302と303とは、クロスリンク319によって接続されている。同様に、分岐ユニット303は、クロスリンク320によって分岐ユニット304に接続されている。
レベル2は、レベル1に隣接していて、かつレベル1より上位にある階層レベルである。レベル2は、分岐ユニット305,306,および307を含む。これらの分岐ユニットの各々は、それぞれの分岐内におけるこれらの分岐ユニットとルートユニットとの間に、それぞれ1つの中間ユニットを有する。分岐ユニット306は、分岐ユニット305に隣接していて、かつ分岐ユニット305と同じ階層レベルにある。したがって、分岐ユニット305と306とは、クロスリンク321によって接続されている。同様に、分岐ユニット306は、クロスリンク322によって分岐ユニット307に接続されている。
最後に、レベル3は、レベル2に隣接していて、かつレベル2より上位にある階層レベルである。レベル3は、分岐ユニット308,309,および310を含む。これらの分岐ユニットの各々は、それぞれの分岐内におけるこれらの分岐ユニットとルートユニットとの間に、それぞれ2つの中間ユニットを有する。対応する分岐ユニット308と309とは、隣接し合う分岐内にあって、かつクロスリンク323によって接続されている。対応する分岐ユニット309と310とは、隣接し合う分岐内にあって、かつクロスリンク324によって接続されている。
それぞれの分岐ユニットは、接続先である1つのクロスリンクにつき1つのクロスリンクポートを有する。それぞれのクロスリンクは、構成可能である。具体的には、クロスリンクの方向が、構成可能である。第1の分岐内の第1のユニットを第2の分岐内の第2のユニットに接続するクロスリンクの場合には、このクロスリンクは、
1.ルートユニットからのアップストリームメッセージを第1のユニットから第2のユニットに送信し、かつルートユニットへのダウンストリームメッセージを第2のユニットから第1のユニットに送信するように、または
2.ルートユニットからのアップストリームメッセージを第2のユニットから第1のユニットに送信し、かつルートユニットへのダウンストリームメッセージを第1のユニットから第2のユニットに送信するように、
構成可能である。対照的に、各分岐の内部における各分岐ユニットの上位ポートと下位ポートとを接続するリンクの方向は、構成可能ではない。
クロスリンクは、初期時には、SoCにわたる監視回路に関連するメッセージをルーティングする一次通信のためには使用されない。しかしながら、或る分岐ユニットが不良であるとみなされた場合には、その不良なユニットをバイパスするように、クロスリンクが有効化される。これについては、図4を参照しながらさらに説明する。
図4は、クロスリンクが利用されるシナリオを説明するフローチャートである。ステップ401において、メッセージは、SoCの分岐の上下にのみ伝送される。ステップ402において、SoC内における不良な分岐ユニットが存在するかどうかについての判定が下される。答えが「いいえ」の場合、方法は、ステップ401に戻り、このステップ401では、メッセージが、引き続きSoCの分岐の上下にのみ伝送される。しかしながら、ステップ402の答えが「はい」の場合、方法は、ステップ403に進む。ステップ403において、ユニットが不良であるとみなされたことに応答して、その不良なユニットと同じ分岐内におけるその不良なユニットの上位にある分岐ユニットと、隣接する分岐内における対応するユニットとの間のクロスリンクが有効化される。次に、ステップ404において、不良なユニットと同じ分岐内にある宛先ユニットへのその後のメッセージが、ルートユニットから、隣接する分岐と有効化されたクロスリンクとを介してルーティングされる。不良なユニットが、これによってバイパスされる。
図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は、以下のように有効化される。
ユニット303が不良であることが検出されたことに応答して、ルートユニット301は、第1の分岐内のユニット305に再構成命令を送信する。ルートユニット301は、不良なユニットを識別したオフチップ(またはオンチップ)の分析器からこの再構成命令を受信することができる。再構成命令を受信したことに応答して、ユニット305は、(i)第2の分岐内における宛先ユニットのための、ユニット305の下位ポート305aで受信した通信を、クロスリンクポート305dを介してクロスリンク321を介してルーティングし、かつ(ii)クロスリンク321からクロスリンクポート305dで受信した通信を、ユニット305の下位ポート305aを介してルートユニット301にルーティングするように、自分自身を再構成する。
再構成命令を受信したことに応答して、ユニット305は、再構成命令を、クロスリンク321上でユニット306にも送信する。この再構成命令を受信したことに応答して、ユニット306は、(i)ルートユニットのための、ユニット306の上位ポート306bで受信した通信を、クロスリンクポート306cを介してクロスリンク321を介してルーティングし、かつ(ii)クロスリンクポート306cで受信した通信を、ユニット306の上位ポート306bを介して第2の分岐内における宛先ユニットにルーティングするように、自分自身を再構成する。
したがって、ユニット305は、アップリンク321aがユニット305からユニット306にメッセージをルーティングし、かつダウンリンク321bがユニット306からユニット305にメッセージをルーティングするように、クロスリンク321の方向を構成する。このようにして、不良なユニット303をバイパスするように、クロスリンクが有効化され、それにより、第2の分岐内における不良なユニット303よりも上位にあるユニットが、メッセージを送受信できるようになる。
図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は、以下のように有効化される。
ユニット302が不良であることが検出されたことに応答して、ルートユニット301は、第2の分岐内のユニット306に再構成命令を送信する。ルートユニット301は、不良なユニットを識別したオフチップ(またはオンチップ)の分析器からこの再構成命令を受信することができる。再構成命令を受信したことに応答して、ユニット306は、(i)第1の分岐内における宛先ユニットのための、ユニット306の下位ポート306aで受信した通信を、クロスリンクポート306cを介してクロスリンク321を介してルーティングし、かつ(ii)クロスリンク321からクロスリンクポート306cで受信した通信を、ユニット306の下位ポート306aを介してルートユニット301にルーティングするように、自分自身を再構成する。
再構成命令を受信したことに応答して、ユニット306は、再構成命令を、クロスリンク321上でユニット305にも送信する。この再構成命令を受信したことに応答して、ユニット305は、(i)ルートユニットのための、ユニット305の上位ポート305bで受信した通信を、クロスリンクポート305dを介してクロスリンク321を介してルーティングし、かつ(ii)クロスリンクポート305dで受信した通信を、ユニット305の上位ポート305bを介して第1の分岐内における宛先ユニットにルーティングするように、自分自身を再構成する。
したがって、ユニット306は、アップリンク321cがユニット306からユニット305にメッセージをルーティングし、かつダウンリンク321dがユニット305からユニット306にメッセージをルーティングするように、クロスリンク321の方向を構成する。このようにして、不良なユニット302をバイパスするように、クロスリンクが有効化され、それにより、第1の分岐内における不良なユニット302よりも上位にあるユニットが、メッセージを送受信できるようになる。
図5および図6の例は、同一のクロスリンク321が2つの構成を有すること、すなわち、これらの2つの構成におけるアップリンクおよびダウンリンクの方向が互いに反対であることを示す。クロスリンクは、いずれか一方の構成を採用するように構成可能である。採用される構成は、クロスリンクが接続している分岐のうちのどの分岐が、不良なユニットを有しているかによって決まる。
図7は、分岐ユニットの内部構造の一例を示す。図7には、隣接し合う分岐の、同じ階層レベルにある2つの分岐ユニット701a,701bが示されている。これらの2つの分岐ユニットは、クロスリンク702によって接続されている。それぞれの分岐ユニットは、受信したメッセージのルーティングを制御するための制御モジュール713a,713bを含む。それぞれの分岐ユニットは、アップストリームメッセージを受信するための下位入口704a,704bと、メッセージをダウンストリームで送信するための下位出口705a,705bとを有する下位ポート703a,703bを含む。それぞれの分岐ユニットは、さらなるポート706a,706bを含む。このさらなるポートは、ダウンストリームメッセージを受信するための上位入口707a,707bと、メッセージをアップストリームで送信するための上位出口708a,708bとを有する上位ポートを含む。このさらなるポートは、ローカルサブシステムと通信するための1つまたは複数のさらなるローカルポートを含むことができ、それぞれのローカルポートは、ローカルサブシステムからメッセージを受信するための入口と、ローカルサブシステムにメッセージを送信するための出口とを有する。
分岐ユニットは、これらの分岐ユニットがクロスリンク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に選択的にルーティングする。
DeMUXは、ギアボックス717a,717bを介して、縮小された入口716a,716bにメッセージを出力することができる。ギアボックス717a,717bは、ダウンストリームメッセージの幅がアップストリームメッセージの幅よりも広い場合に、より狭い方のメッセージを実装する。縮小された入口716a,716bは、全てのメッセージを制御モジュール713a,713bにルーティングする。縮小された入口716a,716bは、メッセージFIFO、イベントFIFO、またはルーティング制御を有さない。
分岐ユニットは、2x2スイッチであるメッセージスイッチ712a,712bを含み、このメッセージスイッチ712a,712bは、(i)DeMUX711a,711bの出力と、(ii)分岐内における下位にある分岐ユニットからのアップストリーム入力とを、入力として受信する。このスイッチは、(i)下位入口704a,704bと、(ii)縮小された入口716a,716bとへの出力を有する。下位出口705a,705bからのダウンストリーム出力は、ゲート709a,709bによってゲーティングされる。
それぞれの分岐ユニットは、マルチプレクサMUX710a,710bをさらに含む。MUXは、クロスリンク702上のメッセージを他の分岐ユニットに出力する。MUXは、クロスリンク出口715a,715bまたは下位出口705a,705bのいずれかから選択的に出力する。MUXは、ルートユニットから受信した再構成命令に応答して入力を選択する。したがって、例えば、クロスリンクが、ルートユニット301から分岐ユニット701aへのアップストリームメッセージを分岐ユニット701aにルーティングするように有効化されている場合には、MUX710aは、クロスリンク出口715aからのメッセージをクロスリンク702に選択的にルーティングする。その一方で、クロスリンクが、分岐ユニット701aから分岐ユニット701bへのダウンストリームメッセージをルートユニット301にルーティングするように有効化されている場合には、MUX710aは、下位出口705aからのメッセージをクロスリンク702に選択的にルーティングする。
したがって、クロスリンクの一方の側にあるそれぞれの分岐ユニットのMUXは、クロスリンクの他方の側にある分岐ユニットのDeMUXにメッセージを出力する。また、クロスリンクの一方の側にあるそれぞれの分岐ユニットのDeMUXは、クロスリンクの他方の側にある分岐ユニットのMUXからメッセージを受信する。
図7は、分岐ユニットがデフォルト状態で動作するように構成されている場合における、分岐ユニットでのメッセージフローを示し、このデフォルト状態では、クロスリンクは、ツリーベースのネットワークを介した一次通信のためには利用されていない。図7では、メッセージフローが点線で示されている。MUX710a,710bは、クロスリンク出口715a,715bからのメッセージを、クロスリンク702上にルーティングするように構成されている。DeMUX711a,711bは、クロスリンク702からのメッセージを、縮小された入口716a,716bにルーティングするように構成されている。メッセージスイッチ712a,712bは、DeMUX711a,711bの出力を、縮小された入口716a,716bにルーティングするように構成されている。この構成では、クロスリンクは、このクロスリンクを介してルートユニットと宛先ユニットの間でメッセージをルーティングするようには有効化されていない。この構成では、クロスリンクに接続されている一方のユニットが他方のユニットを再構成することができるように、クロスリンクが有効化されている。これにより、クロスリンクをどちらの方向にも構成することが可能となる。
図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を構成する。
再構成命令に応答して、ユニット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を構成することもできる。これにより、不良なコンポーネントがメッセージを受信および処理することが回避されるので、電力が節約される。
上述した方法を使用して、2つ以上の不良なユニットをバイパスしてもよい。2つの不良なユニットが同じ分岐内にあって、かつ互いに隣接し合っている場合には、これらの両方の不良なユニットをバイパスするために、同じクロスリンクを利用することができる。2つの不良なユニットが同じ分岐内にあるが、互いに隣接し合っていない場合には、これらの不良なユニットをバイパスするために、それぞれ異なるクロスリンクを利用することができ、すなわち、それぞれの不良なユニットごとに1つのバイパスルートを利用することができる。複数の不良なユニットがそれぞれ異なる分岐内にある場合には、これらの不良なユニットをバイパスするために、それぞれ異なるクロスリンクを利用することができ、すなわち、それぞれの不良なユニットごとに1つのバイパスルートを利用することができる。
以下では、1つまたは複数の分岐ユニットを不良であるとみなすための方法と、ツリーベースのシステムを通じてメッセージをルーティングする際に、分岐ユニットに不良なユニットをバイパスさせるために使用することができるアドレス指定メカニズムとについて説明する。
以下で説明するアドレス指定メカニズムプロトコルは、システム内のそれぞれの個別にアドレス指定可能なエンティティに1つのアドレスを割り当てる。個別にアドレス指定可能なエンティティへの通信、および個別にアドレス指定可能なエンティティからの通信は、個別にアドレス指定可能なエンティティのアドレスに従って、中間の分岐ユニットを介してシステムを通じてルーティングされる。それぞれの分岐ユニットは、各自の分岐内における各自の上位にある個別にアドレス指定可能なエンティティへの通信、および各自の分岐内における各自の上位にある個別にアドレス指定可能なエンティティからの通信をルーティングする。それぞれの分岐ユニットは、隣接する分岐内における個別にアドレス指定可能なエンティティへの通信、および隣接する分岐内における個別にアドレス指定可能なエンティティからの通信を、クロスリンクを介してルーティングして、不良なユニットを上述したようにバイパスすることもできる。
図9は、ユニットが不良であることを判定し、その後の通信においてその不良なユニットをバイパスするためのメカニズムを説明するフローチャートである。ステップ901において、ルートユニット301は、発見メッセージを送信する。この発見メッセージは、ツリーベース構造内の全ての分岐ユニットに送信される単一の発見メッセージであり得る。これに代えて、ルートユニット301から、システム内のそれぞれの個別にアドレス指定可能なエンティティに、個別の発見メッセージを送信してもよい。例えば、それぞれの個別にアドレス指定可能なエンティティに、発見メッセージを順番に送信してもよい。ルートユニット301は、システム内の各ユニットから発見応答を受信する。それぞれの発見応答は、そのユニット内と、そのユニットの上位にあるその分岐内の各ユニット内とにおける、個別にアドレス指定可能なエンティティの個数を識別するものである。
ステップ902において、それぞれのユニットから発見応答を受信したかどうかについての評価が行われる。例えば、ルートユニットは、発見リクエストへの応答を所定の時間Tだけ待つように構成可能である。その時間Tの間に或るユニットから応答がない場合には、そのユニットは、非応答であるとみなされる。あらゆるユニットから発見応答を受信した場合には、ステップ902の答えが「はい」となる。これに該当する場合には、ステップ903において、監視ネットワークの一次通信が、通常通り、ツリーベース構造の分岐の内部でのみ伝送される。ステップ902での答えが「いいえ」である場合には、このことは、非応答ユニットと同じ分岐内に、1つまたは複数の不良なユニットが存在することを示している。このことは、必ずしも全ての非応答ユニットが不良であるということを示すわけではない。例えば、図6の例では、ユニット302だけが不良であったとしても、第1の分岐内におけるいずれのユニットからも、発見リクエストへの応答を受信することはない。
ステップ904において、1つまたは複数の非応答ユニットが、不良であると識別される。ルートユニットに最も近い階層レベルにある非応答ユニットを、不良であるとみなすことができる。換言すれば、ルートユニットとの間にある中間ユニットの個数が最も少ない非応答ユニットを、不良であるとみなすことができる。好適には、そのユニットが、この段階で不良であるとみなされる唯一の非応答ユニットである。
次のステップ905において、不良なユニットと同じ分岐内にある第1のユニットと、隣接する分岐内にある第2のユニットとの間のクロスリンクが有効化される。好適には、第1のユニットは、不良なユニットと同じ分岐内において不良なユニットに隣接している。不良なユニットは、分岐内において第1のユニットとルートユニットとの間にある。図6の例を参照すると、有効化されるクロスリンクは、クロスリンク321であろう。なぜなら、このクロスリンクは、ユニット305と306とを接続しており、ユニット305は、不良なユニット302と同じ分岐内において不良なユニット302に隣接しているからである。
次のステップ906において、ルートユニット301は、さらなる発見メッセージを送信する。ステップ901の発見メッセージと同様に、このさらなる発見メッセージは、ツリーベース構造内の全ての分岐ユニットに送信される単一の発見メッセージであり得る。これに代えて、ルートユニット301から、システム内のそれぞれの個別にアドレス指定可能なエンティティに、個別の発見メッセージを送信してもよい。ルートユニット301は、システム内の各ユニットから発見応答を受信する。それぞれの発見応答は、そのユニット内と、そのユニットの上位にあるその分岐内の各ユニット内とにおける、個別にアドレス指定可能なエンティティの個数を識別するものである。ステップ905のクロスリンクが正常に有効化されていた場合には、第2のユニットからの発見応答は、ステップ901の発見リクエストに対するこの第2のユニットの発見応答とは異なるものとなる。具体的には、第2のユニットの発見応答は、ステップ901の発見リクエストに対するこの第2のユニットの発見応答と比較して、自身のルーティング先である個別にアドレス指定可能なエンティティをより多数、識別するものとなる。ステップ905のクロスリンクが正常に有効化されていた場合には、第2のユニットが自身の発見応答において識別する個別にアドレス指定可能なエンティティの個数は、(i)第2のユニット内と、(ii)第2のユニットの上位にあるその分岐内の各ユニット内と、(iii)第1のユニット内と、(iv)第1のユニットの上位にあるその分岐内の全てのアクセス可能なユニット内とにおける、個別にアドレス指定可能なエンティティの個数の合計になる。
オプションとして、ステップ907において、ルートユニットは、システム内のそれぞれの不良でないユニットから発見応答を受信したかどうかを評価する。例えば、ルートユニットは、発見リクエストへの応答を所定の時間Tだけ待つように構成可能である。その時間Tの間に或るユニットから応答がない場合には、そのユニットは、非応答であるとみなされる。答えが「はい」の場合には、全ての不良なユニットが正常にバイパスされている。答えが「いいえ」の場合には、システム内にさらなる不良なユニットが存在する。
ステップ906における、第2のユニットの発見応答において識別された個別にアドレス指定可能なエンティティの個数が、ステップ901において識別された対応する個数よりも多い場合には、クロスリンクが正常に有効化されたということである。この場合に、ステップ907に対する答えが「いいえ」である場合には、このことは、システム内の他の場所にさらなる不良なユニットが存在することを示している。例えば、図6の例では、ユニット308が不良である可能性がある。ステップ904から907までのプロセスが反復される。この反復において、不良であるとみなされるべき次の非応答ユニットは、すでに不良であるとみなされた非応答ユニットを除いて、ルートユニットに最も近い階層レベルにある非応答ユニットである。
ステップ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に隣接している。
ステップ904からステップ907までの反復ループは、システム内の全ての不良でないユニットから発見応答が受信されるまで継続する。非応答ユニットの集合から不良なユニットが識別されると、方法は、ステップ908,909,および910に進む。ステップ908において、不良なユニットの分岐内にある個別にアドレス指定可能なエンティティへのその後の通信が、隣接する分岐と有効化されたクロスリンクとを介してルーティングされることによって不良なユニットがバイパスされるように、それぞれの正常に有効化されたクロスリンクのアドレスが再構成される。
ステップ909において、不良なユニットの分岐内にある個別にアドレス指定可能なエンティティへのその後の通信が第2のユニットを介してルーティングされるように、隣接する分岐の、第2のユニットとルートユニットとの間にあるそれぞれの中間ユニットのアドレスが再構成される。図6の例では、これに伴って、ユニット303が、第1の分岐内におけるユニット305およびそれより上位のユニットのために意図されたメッセージを、第2の分岐を介してユニット306およびクロスリンク321にルーティングするように、第2の分岐のユニット303のアドレスが再構成される。
ステップ910において、ルートユニット301は、2通りに再構成される。まず始めに、ルートユニット301は、宛先ユニットの個別にアドレス指定可能なエンティティに対する通信のために、ルートユニットと宛先ユニットとの間にある不良なユニットと同じ分岐へと直接的に通信が送信されることを阻止するように再構成される。ルートユニット301はまた、宛先ユニットの個別にアドレス指定可能なエンティティに対する通信のために、ルートユニットと宛先ユニットとの間にある不良なユニットの分岐内にある個別にアドレス指定可能なエンティティに、隣接する分岐を介して通信を送信するようにも再構成される。
次に、本方法は、ステップ911に進み、そこでは、メッセージが、不良なユニットをバイパスするために、有効化されたクロスリンクを介して分岐内で伝送される。
以下に、上述した方法と組み合わせて使用することができるアドレス指定プロトコルについて説明する。このアドレス指定プロトコルは、リベースメカニズムを利用する。リベースメカニズムでは、それぞれのユニットは、自分自身を、ツリーベースのネットワーク内の他のユニットと同じ内部アドレスを有するものとみなす。以下では、この内部アドレスをベースアドレスと呼ぶ。それぞれのユニットは、他のユニットへのアドレス指定を、ツリーベースのネットワーク内におけるこれらの他のユニットの位置が指定された、それらのユニットの内部アドレスを基準にして導出することができるアドレスを使用して、実施するように構成されている。宛先ユニットへの経路上でメッセージをルーティングするそれぞれのユニットは、そのメッセージの宛先アドレスをリベースする。
したがって、例えば、ルートユニットは、個別にアドレス指定可能なエンティティの宛先アドレスが含まれたメッセージを送信する。その宛先アドレスは、ルートユニットの内部アドレスを基準にしている。ルートユニットは、自身に接続されている分岐にメッセージを送信する。その分岐上においてルートユニットに隣接する中間ユニットが、メッセージを受信する。その中間ユニットは、宛先アドレスにオフセットを追加してリベースされた宛先アドレスを形成することにより、メッセージをリベースする。リベースされた宛先アドレスは、その中間ユニットの内部アドレスを基準にしている。次いで、中間ユニットは、リベースされたメッセージを、個別にアドレス指定可能なエンティティ上にルーティングする。
リベースメカニズムは、アドレスインデックスを利用することができる。例えば、監視システムのそれぞれの個別にアドレス指定可能なエンティティは、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)の合計インデックス数を報告する。
システム内のアップストリームメッセージは、インデックスによってルーティング可能である。ベースアドレスが0である場合を検討する。換言すれば、それぞれのユニットは、自分自身を、0の内部アドレスを有するものとみなす。アップストリームメッセージがシステムを通じて伝播されると、メッセージのアドレスインデックスが調整される。例えば、ルートユニット301が、分岐ユニット308のローカルサブシステム315の分析モジュール325aにメッセージを送信する場合には、ルートユニット301は、ルートユニット301に基づいた、分析モジュール325aのアドレスであるアドレスインデックス10を、そのメッセージに適用する。ルートユニット301は、このメッセージを、ルートユニット301の上位ポート301b上にルーティングする。ルートユニットは、−nのオフセットを追加することによってアドレスをリベースし、ここで、nは、ルートユニット自体に割り当てられたアドレスインデックスの数である。n=1である。したがって、リベースされたメッセージは、9の宛先アドレスを有する。
分岐ユニット302は、そのメッセージを受信する。分岐ユニット302によれば、分岐ユニット302はアドレス0を有し、ローカルサブシステム312はアドレス1〜2を有し、分岐ユニット305はアドレス3〜11を有する。分岐ユニット302は、メッセージの宛先アドレスを、分岐ユニット302の観点からの分析モジュール325aのアドレスとなるようにリベースする。分岐ユニットは、−mのオフセットを追加することによってアドレスをリベースし、ここで、mは、分岐ユニット自体と、この分岐ユニットに直接的に接続されているローカルサブシステム、すなわちローカルサブシステム312とに割り当てられたアドレスインデックスの数である。したがって、この例では、分岐ユニット302は3を差し引くので、リベースされた宛先アドレスは6である。分岐ユニット302は、リベースされたメッセージを、分岐ユニット302の上位ポート302bにルーティングし、そこから分岐ユニット305にルーティングする。
分岐ユニット305は、そのメッセージを受信する。分岐ユニット305によれば、分岐ユニット305はアドレス0を有し、ローカルサブシステム313はアドレス1〜2を有し、分岐ユニット308はアドレス3〜8を有する。分岐ユニット305は、メッセージの宛先アドレスを、分岐ユニット305の観点からの分析モジュール325aのアドレスになるようにリベースする。上記のように、分岐ユニット305は3を差し引くので、リベースされた宛先アドレスは3である。分岐ユニット305は、リベースされたメッセージを、分岐ユニット305の上位ポート305bにルーティングし、そこから分岐ユニット308にルーティングする。
分岐ユニット308は、そのメッセージを受信する。分岐ユニット308によれば、分岐ユニット308はアドレス0を有し、ローカルサブシステム314はアドレス1〜2を有し、ローカルサブシステム315はアドレス3〜4を有する。上記のように、分岐ユニット308は3を差し引くので、リベースされた宛先アドレスは0である。分岐ユニット308は、リベースされたメッセージを、分岐ユニット308の上位ポート308bにルーティングし、そこからローカルサブシステム315にルーティングする。
分析モジュール325aは、自分自身を、アドレスインデックス0を有するものとみなし、したがって、自分自身を、受信したメッセージのための宛先ユニットであると識別する。
システム内のユニットが不良であると判定される前には、システム内のそれぞれクロスリンクは、0のアドレスインデックスを有する。クロスリンクは、図9のステップ905において、そのクロスリンクにアドレスインデックスを割り当てることにより有効化され得る。例えば、クロスリンクに、1のアドレスインデックスを割り当てることができる。クロスリンクによって隣接する分岐に接続されている、不良なユニットの上位にある分岐ユニットは、上述したように、その分岐ユニットのDeMUX、MUX、メッセージスイッチ、およびゲートを再構成することによって、アドレスインデックスが割り当てられているクロスリンクに応答することができる。クロスリンクが正常に有効化されていない場合には、ルートユニットは、クロスリンクへのアドレスインデックスの割り当てを解除する。次いで、失敗したクロスリンクの上位にある次のクロスリンクが、上述したように有効化される。
ここで、図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に図示)に変更されている。
ステップ909において、分岐ユニット305のアドレスは、クロスリンク321によって消費されるアドレスインデックスを、分岐ユニット305に追加的に割り当てることによって再構成される。分岐ユニット305は、1のアドレスインデックスを有し、ローカルサブシステム313は、2のアドレスインデックスを有し、第1の分岐内における分岐ユニット305の上位にあるユニットは、5のアドレスインデックスを有し、クロスリンクは、4のインデックスを有する。したがって、分岐ユニット305のためのアドレスインデックスの数は、8(図3に図示)から12(図5に図示)に変更されている。したがって、分岐ユニット302は、12のアドレスインデックスを有するメッセージを分岐ユニット305にルーティングする。
ステップ909において、分岐ユニット302のアドレスも、分岐ユニット305によって消費される追加的なアドレスインデックスを、分岐ユニット302に追加的に割り当てることによって再構成される。したがって、分岐ユニット302のためのアドレスインデックスの数は、11(図3に図示)から15(図5に図示)に変更されている。したがって、ルートユニット301は、15のアドレスインデックスを有するメッセージを分岐ユニット302にルーティングする。
ステップ910において、ルートユニット301は、2通りに再構成される。第一に、ルートユニット301の上位ポート301bが、最大で15のアドレスインデックスを有するメッセージを、第1の分岐内の分岐ユニット302に送信するように再構成される。第二に、ルートユニット301の上位ポート301cが、第2の分岐の分岐ユニット303にもはや如何なるメッセージをも送信しないように再構成される。
したがって、一例として、再インデックス付けされたアドレス指定メカニズムでは、メッセージが、以下のように、ルートユニット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を有するものとみなし、したがって、自分自身を、受信したメッセージのための宛先アドレスであると識別する。
典型的に、上述したツリーベースのシステムの内部において伝送されるメッセージには、アップストリーム方向における、システム回路を監視するように分析モジュールを構成するための構成メッセージと、ダウンストリーム方向における、システム回路の分析モジュールの監視から結果的に生じる監視データが含まれたメッセージとがある。これらのメッセージに加えて、イベントメッセージがシステム内で伝送される。分析モジュールは、この分析モジュールが監視しているコアデバイスによる特定のアクティビティが検出されたことに応答して、イベントメッセージを生成するように構成されている。例えば、分析モジュールは、メモリから特定のアドレス範囲を読み取った各自の関連するコアデバイスに応答して、イベントメッセージを生成するように構成可能である。好適には、分析モジュールにイベントメッセージを生成させるアクティビティは、ランタイム中に構成可能である。
イベントメッセージは、システム全体中にわたって伝播する。他の分析モジュールは、アクションを実行することによってイベントメッセージの受信に応答する。アクションは、イベントメッセージの内容によって異なり得る。イベントメッセージは、例えば、安全性またはセキュリティ上の懸念を示すことができる。それに応じて、分析モジュールは、各自の関連するコアデバイスの動作を停止させることができる。別の例として、分析モジュールは、イベントに応答して、各自が監視している関連するコアデバイスのアクティビティを適合させることができる。システム内の或る1つの分析モジュールにおいて生成されたイベントメッセージは、システム内の他の全てのユニットにブロードキャストされる。換言すれば、イベントメッセージは、システム全体にわたってクロストリガされる。
図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の分岐にも適用される。
それぞれの分岐ユニットがイベントメッセージを受信して伝播させる際には、それぞれの分岐ユニットにおいてサイクルの遅延が発生する。図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サイクルかかる。
メッセージが分岐の上下に伝送されるこのツリーベースのトポロジでは、イベントメッセージをネットワーク全体にわたってルーティングするための最大待ち時間が、複数の異なる分岐内における階層の最上位にあるコンポーネント間で観察される。したがって、ローカルサブシステム326は、イベントメッセージを生成したローカルサブシステム315に物理的に近接しているが、イベントメッセージがこのローカルサブシステム326に到達するためには8サイクルの最大待ち時間が観察される。このことは問題である。なぜなら、典型的に、イベントメッセージを生成した分析モジュールに物理的に最も近接している分析モジュールは、イベントメッセージに対して最も緊急に応答する必要がある分析モジュールであり、したがって、イベントメッセージを最も緊急に受信する必要がある分析モジュールだからである。
図11は、図3の監視ネットワーク全体にわたってブロードキャストされているイベントメッセージを示し、ここでは、分岐の内部でイベントメッセージをルーティングすることに加えて、クロスリンクを利用して分岐間でイベントメッセージをルーティングしている。これらのクロスリンクは、各自のデフォルト構成において使用され、このデフォルト構成では、これらのクロスリンクが接続している分岐ユニットが、図7に示されているように構成されている。それぞれの分岐ユニットがイベントメッセージをルーティングするやり方は、これらの分岐ユニットがどのようにしてイベントメッセージを受信したのかによって決まる。具体的には、以下の通りである:
1.分岐ユニットが分析モジュールから直接的にイベントメッセージを受信した場合には、その分岐ユニットは、イベントメッセージをアップストリームでルーティングし、ダウンストリームでルーティングし、かつその分岐ユニットの全てのクロスリンクを介してルーティングする。分岐ユニットは、イベントメッセージを自身の全てのローカルサブシステムにもルーティングする。分岐ユニットは、イベントメッセージを送信してきた分析モジュールにはイベントメッセージをルーティングし戻さない。
2.分岐ユニットがクロスリンクからイベントメッセージを受信した場合には、その分岐ユニットは、イベントメッセージをアップストリームでルーティングし、ダウンストリームでルーティングし、かつその分岐ユニットが他のクロスリンクを有する場合には、そのクロスリンクを介してルーティングする。分岐ユニットは、イベントメッセージを自身の全てのローカルサブシステムにもルーティングする。分岐ユニットは、イベントメッセージを送信してきたクロスリンクにはイベントメッセージをルーティングし戻さない。
3.分岐ユニットが自身の分岐内における自身の上位にあるユニットからイベントメッセージを受信した場合には、その分岐ユニットは、イベントメッセージをアップストリームでルーティングし(イベントメッセージを送信してきたユニット以外のユニットへのポートを有する場合)、かつダウンストリームでルーティングする。分岐ユニットは、イベントメッセージを自身の全てのローカルサブシステムにもルーティングする。分岐ユニットは、自身のクロスリンク上ではイベントメッセージをルーティングしない。分岐ユニットは、イベントメッセージを送信してきたユニットにはイベントメッセージをルーティングし戻さない。
4.分岐ユニットが自身の分岐内における自身の下位にあるユニットからイベントメッセージを受信した場合には、その分岐ユニットは、イベントメッセージをダウンストリームでルーティングし(イベントメッセージを送信してきたユニット以外のユニットへのポートが存在する場合)、かつアップストリームでルーティングする。分岐ユニットは、イベントメッセージを自身の全てのローカルサブシステムにもルーティングする。分岐ユニットは、自身のクロスリンク上ではイベントメッセージをルーティングしない。分岐ユニットは、イベントメッセージを送信してきたユニットにはイベントメッセージをルーティングし戻さない。
図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に従っている。したがって、これらの分岐ユニットは、イベントメッセージを、ダウンストリームでルーティングし、かつ各自のローカルサブシステムにルーティングする(ローカルサブシステムを有する場合)。
クロスリンクを利用してイベントメッセージを伝送するこの方法は、イベントメッセージを生成したユニットに物理的に近接しているユニットへとクロストリガする際に生じる待ち時間を短縮する。図11は、イベントメッセージがツリーベースのネットワーク内のそれぞれのユニットに到達するためにかかるサイクル数を、それぞれのユニットの横にある円の中の数字によって示している。図10の方法を使用した場合の8サイクルと比較して、イベントメッセージが、物理的に最も近接しているローカルサブシステム326に到達するためには3サイクルかかる。図10の方法を使用した場合の8サイクルと比較して、イベントメッセージがローカルサブシステム1001および1002に到達するためには4サイクルかかる。したがって、図11に関連して説明した方法は、物理的に近接しているサブシステム間でのイベントメッセージの伝播遅延を短縮するものである。最長の伝搬遅延も、8サイクルから6サイクルに短縮された。
図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に従っている。したがって、これらの分岐ユニットは、イベントメッセージを、ダウンストリームでルーティングし、かつ各自のローカルサブシステムにルーティングする(ローカルサブシステムを有する場合)。
イベントメッセージは、イベントコードを含むことができる。イベントコードは、イベントメッセージを生成した分析モジュールによって検出されたイベントを識別するものである。追加的に、イベントメッセージは、フラグを含むことができる。例えば、分岐ユニットが分析モジュールから直接的にイベントメッセージを受信した場合(すなわち、上記の規則1)には、この分岐ユニットは、分岐内における各自の下位にあるユニットへのダウンストリームでのイベントメッセージとともに送信されるべきフラグを設定することができる。この分岐ユニットは、分岐内における各自の下位にはないユニットへのイベントメッセージとともに送信されるべきフラグは設定しない。或る分岐ユニットが、分岐内におけるその分岐ユニットの上位にあるユニットから、フラグが設定されたイベントメッセージを受信した場合(すなわち、上記の規則3)には、この分岐ユニットは、(i)フラグが設定されたイベントメッセージを、その分岐ユニットの分岐内におけるこの分岐ユニットの下位にあって隣接する分岐ユニットにルーティングし、かつ(ii)フラグが設定されていないイベントメッセージを、分岐内におけるこの分岐ユニットの上位にあって隣接するユニットと、この分岐ユニットのローカルサブシステムとにルーティングする。
ルートユニット301がイベントメッセージの受信に応答するやり方は、フラグが設定されているかどうかによって決まる。ルートユニット301が、フラグが設定されたイベントメッセージを受信した場合には、ルートユニット301は、イベントメッセージを自身の下位ポート301aのみにルーティングすることによって応答することができる。この下位ポート301aから、イベントメッセージが通信インターフェース311,1005に送信される。通信インターフェースは、イベントメッセージをオフチップに、例えばオフチップの分析器にルーティングすることができる。これに代えて、通信インターフェースは、イベントメッセージをオンチップの別のモジュールに、例えばオンチップの分析器にルーティングしてもよい。ルートユニット301が、フラグが設定されていないイベントメッセージを受信した場合には、ルートユニット301が、アクションを実行しないようにすることができる。換言すれば、ルートユニット301は、イベントメッセージを他のいずれのユニットにもルーティングしてはならない。これにより、イベントメッセージがシステムにわたって無限にブロードキャストされることが阻止される。フラグは、イベントが発生した分岐内でのみ設定されるので、通信インターフェースは、ルートユニット301からイベントメッセージを1回だけ受信する。
フラグは、イベントメッセージの単一のビットであってもよい。例えば、イベントコードを8ビットコードとし、フラグを追加的な1ビットとしてもよい。例えば、ビット0〜7をイベントコードとし、ビット8をフラグとしてもよい。これに代えて、フラグがイベントコードの一部を形成するようにしてもよい。
不良なユニットをバイパスするために、分岐間の通信をルーティングするようにクロスリンクが有効化されている場合には、そのクロスリンクは、イベントメッセージを伝播させる目的でアップリンクまたはダウンリンクとして取り扱われる。一例として図5の不良なシステムを取り上げると、ローカルサブシステム326の分析モジュール501によってイベントが生成された場合には、分岐ユニット309は、イベントメッセージを、ダウンストリームで分岐ユニット306に転送し、クロスリンク323および324を介して転送し、かつローカルサブシステム326内の分析モジュール1201に返送する。分岐ユニット306は、アップストリームからイベントメッセージを受信し、したがって、規則3に従って動作する。分岐ユニット306は、クロスリンク321を分岐ユニット305へのダウンリンクとして取り扱うので、分岐ユニット306は、イベントメッセージを、クロスリンク321を介してダウンストリームで分岐ユニット305にルーティングする。次いで、分岐ユニット305は、イベントメッセージを、アップストリームで分岐ユニット308にルーティングし、かつダウンストリームで分岐ユニット302と、分岐ユニット305のローカルサブシステム313とにルーティングする。
さらなる例として図6の不良なシステムを取り上げると、ローカルサブシステム315の分析モジュール325aによってイベントが生成された場合には、分岐ユニット308は、イベントメッセージを、ダウンストリームで分岐ユニット305に転送し、クロスリンク323を介して転送し、かつローカルサブシステム314と、ローカルサブシステム315内の分析モジュール325bとに転送する。分岐ユニット305は、アップストリームからイベントメッセージを受信し、したがって、規則3に従って動作する。分岐ユニット305は、クロスリンク321を分岐ユニット306へのダウンリンクとして取り扱うので、分岐ユニット305は、イベントメッセージを、クロスリンク321を介してダウンストリームで分岐ユニット306にルーティングする。次いで、分岐ユニット306は、イベントメッセージを、アップストリームで分岐ユニット309にルーティングし、かつダウンストリームで分岐ユニット303にルーティングする。
不良なユニットをバイパスするために使用されている有効化されたクロスリンクは、アップリンク/ダウンリンクとして取り扱われているので、そのクロスリンクに結合されている分岐ユニットは、イベントメッセージを、このクロスリンクを介してダウンストリームでルーティングする際に、設定されたフラグを維持する。図5の例を取り上げると、イベントがローカルサブシステム326の分析モジュール501によって生成された場合には、分岐ユニット309は、イベントメッセージをダウンストリームで分岐ユニット306にルーティングする際に、イベントメッセージのフラグを設定する。分岐ユニット306は、イベントメッセージを、クロスリンク321を介してダウンストリームで分岐ユニット305にルーティングする際に、設定されたフラグを維持する。分岐ユニット305は、イベントメッセージをダウンストリームで分岐ユニット302にルーティングする際に、設定されたフラグを維持する。そして、分岐ユニット302は、イベントメッセージをダウンストリームでルートユニット301にルーティングする際に、設定されたフラグを維持する。フラグが設定されているので、ルートユニット301は、このイベントメッセージを、ルートユニット301に接続されている通信インターフェース311にダウンストリームでルーティングする。
図1〜図3、図5〜図8、および図10〜図12に示されているSoCのそれぞれのコンポーネントは、専用のハードウェアの形態で実装可能である。これに代えて、図1〜図3、図5〜図8、および図10〜図12に示されているSoCのそれぞれのコンポーネントを、ソフトウェアの形態で実装してもよい。いくつかのコンポーネントをソフトウェアの形態で実装してもよく、その一方で、他のコンポーネントは、専用のハードウェアの形態で実装される。
記載されているSoCは、好適には、コンピューティングベースのデバイスの内部に組み込まれている。コンピューティングベースのデバイスは、電子デバイスであり得る。好適には、コンピューティングベースのデバイスは、本明細書に記載の方法を実施するために、デバイスの動作を制御するためのコンピュータ実行可能命令を処理する1つまたは複数のプロセッサを含む。コンピュータの実行可能命令は、メモリのような任意のコンピュータ可読媒体を使用して提供可能である。本明細書に記載の方法は、有形の記憶媒体上で機械可読形式のソフトウェアによって実施可能である。コンピューティングベースのデバイスに、本明細書に記載の方法を実施するためのソフトウェアを提供可能である。
上述した説明は、システム回路と監視回路とが同じSoC上に含まれているものとして記載されている。これに代わる実装態様では、システム回路と監視回路とがMCMの2つ以上の集積回路チップにわたって含まれている。MCMでは、これらの集積回路チップは、典型的に、インターポーザ基板上で積層されるか、または隣接し合うように配置される。いくつかのシステム回路を、MCMの1つの集積回路チップ上に配置して、他のシステム回路を、MCMの別の集積回路チップ上に配置してもよい。同様に、監視回路を、MCMの複数の集積回路チップにわたって分散させてもよい。したがって、SoCの文脈において上述した方法および装置は、MCMの文脈においても適用される。
本出願人は、本明細書に記載されたそれぞれの個々の特徴を、単独でも、2つ以上のそのような特徴の任意の組み合わせでも、そのような特徴または特徴の組み合わせが、当業者の共通の一般知識に照らして全体として本明細書に基づいて実行可能である範囲で、そのような特徴または特徴の組み合わせが本明細書に開示された何らかの課題を解決するかどうかに関係なく、また、特許請求の範囲を限定することもなく、ここに開示する。本出願人は、本発明の各態様を、そのような個々の特徴または特徴の組み合わせから形成してもよいことを指摘しておく。前述した説明を考慮すると、本発明の範囲内で種々の修正を行ってもよいことが、当業者には自明であろう。

Claims (15)

  1. システムオンチップにおいてイベントメッセージをブロードキャストする方法であって、当該システムオンチップは、
    システム回路と、
    前記システム回路を監視するための監視回路と
    を含み、
    前記監視回路は、前記システムオンチップにわたって通信をルーティングするための、ツリーベース構造で接続された複数のユニットを含み、
    前記ツリーベース構造は、ルートユニットから延在している複数の分岐を含み、それぞれの分岐は、複数のユニットを含み、それぞれのユニットは、前記分岐内における上位にある単一のユニットと、前記分岐内における下位にある単一のユニットとに接続されており、それにより、それぞれのユニットは、各自の分岐内における各自の上位にある個別にアドレス指定可能なエンティティへの通信、および各自の分岐内における各自の上位にある個別にアドレス指定可能なエンティティからの通信をルーティングし、前記ツリーベース構造は、隣接し合う分岐の対応するユニット同士を接続するクロスリンクをさらに含み、
    当該方法は、
    イベントユニットまたは前記イベントユニットのローカルサブシステムにおいてイベントが生成された場合に、
    (i)前記イベントユニットの分岐内における前記イベントユニットの上位にある全ての隣接するユニットと、
    (ii)前記イベントユニットの分岐内における前記イベントユニットの下位にある全ての隣接するユニットと、
    (iii)前記イベントユニットがクロスリンクを介して接続されている、隣接する分岐の全ての対応するユニットと
    に、前記イベントユニットからイベントメッセージを直接的にルーティングするステップ
    を含む、方法。
  2. 前記システムオンチップにおける第1のユニットにおいて、
    前記第1のユニットの分岐内における前記第1のユニットに隣接していて、かつ前記第1のユニットの下位にある第2のユニットから、前記イベントメッセージを受信するステップと、
    前記第1のユニットの分岐内における前記第1のユニットの上位にある全ての隣接するユニットに、前記イベントメッセージをルーティングするステップと、
    前記第2のユニットを除いて、前記第1のユニットの分岐内における前記第1のユニットの下位にある全ての隣接するユニットに、前記イベントメッセージをルーティングするステップと
    をさらに含む、請求項1記載の方法。
  3. 前記システムオンチップにおける第3のユニットにおいて、
    前記第3のユニットの分岐内における前記第3のユニットに隣接していて、かつ前記第3のユニットの上位にある第4のユニットから、前記イベントメッセージを受信するステップと、
    前記第3のユニットの分岐内における前記第3のユニットの下位にある全ての隣接するユニットに、前記イベントメッセージをルーティングするステップと、
    前記第4のユニットを除いて、前記第3のユニットの分岐内における前記第3のユニットの上位にある全ての隣接するユニットに、前記イベントメッセージをルーティングするステップと
    をさらに含む、請求項1または2記載の方法。
  4. 前記システムオンチップにおける第5のユニットにおいて、
    前記第5のユニットを第6のユニットに接続しているクロスリンクから、前記イベントメッセージを受信するステップと、
    前記第5のユニットの分岐内における前記第5のユニットの上位にある全ての隣接するユニットに、前記イベントメッセージをルーティングするステップと、
    前記第5のユニットの分岐内における前記第5のユニットの下位にある全ての隣接するユニットに、前記イベントメッセージをルーティングするステップと、
    前記第5のユニットを前記第6のユニットに接続している前記クロスリンクを除いて、前記第5のユニットがクロスリンクを介して接続されている、隣接する分岐の全ての対応するユニットに、前記イベントメッセージをルーティングするステップと
    をさらに含む、請求項1から3までのいずれか1項記載の方法。
  5. 前記イベントユニットにおいて、
    前記イベントユニットの分岐内における前記イベントユニットの下位にある全ての隣接するユニットのみに前記イベントメッセージとともに送信されるべきフラグを設定するステップ
    をさらに含む、請求項1から4までのいずれか1項記載の方法。
  6. 前記フラグを有するイベントメッセージを受信した第7のユニットにおいて、
    前記フラグを有するイベントメッセージを、前記第7のユニットの分岐内における前記第7のユニットの下位にある全ての隣接するユニットのみにルーティングするステップと、
    前記フラグを有していないイベントメッセージを、前記第7のユニットに当該イベントメッセージを送信してきたユニットを除いて、前記第7のユニットの分岐内における前記第7のユニットの上位にある隣接するユニットにルーティングするステップと
    をさらに含む、請求項5記載の方法。
  7. 前記ルートユニットにおいて、
    前記フラグを有するイベントメッセージを受信するステップと、
    前記イベントメッセージをコミュニケータにルーティングするステップと
    をさらに含む、請求項5または6記載の方法。
  8. 前記ルートユニットにおいて、
    フラグが設定されていないイベントメッセージを受信するステップと、
    前記イベントメッセージが他のユニットにルーティングされることを阻止するステップと
    をさらに含む、請求項1から7までのいずれか1項記載の方法。
  9. 前記フラグは、前記イベントメッセージの単一のビットである、
    請求項5から8までのいずれか1項記載の方法。
  10. ユニットが不良であると判定するステップと、
    前記不良なユニットと同じ分岐内にある第8のユニットと、隣接する分岐内にある第9のユニットとの間のクロスリンクを有効化するステップと、
    前記不良なユニットの分岐内にある個別にアドレス指定可能なエンティティへのその後の非イベント関連の通信が、前記隣接する分岐と前記クロスリンクとを介して前記ルートユニットからルーティングされることによって前記不良なユニットがバイパスされるように、前記クロスリンクを再構成するステップと
    をさらに含む、請求項1から9までのいずれか1項記載の方法。
  11. その後のイベントが生成された場合に、前記イベントメッセージをルーティングする各請求項のステップに関して、前記第8のユニットを、前記第9のユニットと同じ分岐内における前記第9のユニットに隣接していて、かつ前記第9のユニットの上位にあるユニットとして取り扱うステップ
    をさらに含む、請求項10記載の方法。
  12. その後のイベントが生成された場合に、前記イベントメッセージをルーティングする各請求項のステップに関して、前記第9のユニットを、前記第8のユニットと同じ分岐内における前記第8のユニットに隣接していて、かつ前記第8のユニットの下位にあるユニットとして取り扱うステップ
    をさらに含む、請求項11記載の方法。
  13. 前記第8のユニットにおいて、
    フラグを有するイベントメッセージを受信するステップと、
    前記フラグを有するイベントメッセージを、前記クロスリンクを介して前記第9のユニットにルーティングするステップと
    を含む、請求項12記載の方法。
  14. 前記第9のユニットにおいて、
    前記フラグを有するイベントメッセージを、前記第8のユニットから前記クロスリンクを介して受信するステップと、
    前記フラグを有するイベントメッセージを、前記第9のユニットの分岐内における前記第9のユニットの下位にある全ての隣接するユニットのみにルーティングするステップと
    を含む、請求項12記載の方法。
  15. イベントメッセージを受信したそれぞれのユニットは、当該イベントメッセージを、各自のローカルサブシステムに転送する、
    請求項1から14までのいずれか1項記載の方法。
JP2020132914A 2019-08-16 2020-08-05 システムオンチップにおけるイベントメッセージのブロードキャスティング Active JP7326231B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1911783.7A GB2586277B (en) 2019-08-16 2019-08-16 Broadcasting event messages in a system on chip
GB1911783.7 2019-08-16

Publications (2)

Publication Number Publication Date
JP2021052386A true JP2021052386A (ja) 2021-04-01
JP7326231B2 JP7326231B2 (ja) 2023-08-15

Family

ID=67957171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020132914A Active JP7326231B2 (ja) 2019-08-16 2020-08-05 システムオンチップにおけるイベントメッセージのブロードキャスティング

Country Status (5)

Country Link
US (1) US11429459B2 (ja)
EP (1) EP3783492B1 (ja)
JP (1) JP7326231B2 (ja)
CN (1) CN112395241A (ja)
GB (1) GB2586277B (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004536372A (ja) * 2001-02-24 2004-12-02 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピューティング構造のグローバル・ツリー・ネットワーク
JP2009027349A (ja) * 2007-07-18 2009-02-05 Canon Inc ネットワーク機器
US20160182245A1 (en) * 2014-12-17 2016-06-23 Intel Corporation System for multicast and reduction communications on a network-on-chip
JP2018007094A (ja) * 2016-07-05 2018-01-11 株式会社ワンブリッジ 中継装置の冗長化構成における物理的非対称ルーティング防止メカニズム
JP2018502376A (ja) * 2014-12-19 2018-01-25 アマゾン テクノロジーズ インコーポレイテッド 複数のコンピュートサブシステムを備えるチップ上のシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020150056A1 (en) * 1998-05-15 2002-10-17 Martin Abadi Method for avoiding broadcast deadlocks in a mesh-connected network
DE10116540A1 (de) * 2000-08-22 2002-03-14 Siemens Ag System und Verfahren zur kontextbezogenen Protokollierung insbesondere im Umfeld Produktion, Montage, Service oder Wartung
US20090113308A1 (en) * 2007-10-26 2009-04-30 Gheorghe Almasi Administering Communications Schedules for Data Communications Among Compute Nodes in a Data Communications Network of a Parallel Computer
CN101404491B (zh) * 2008-05-23 2012-03-28 雅格罗技(北京)科技有限公司 一种具有交叉链接的可编程互连网络的集成电路
US9201571B2 (en) * 2011-01-06 2015-12-01 It's Relevant, LLC Logging, editing and production system for activities of local interest and related video
CN103902604B (zh) * 2012-12-28 2020-11-10 Ge医疗系统环球技术有限公司 用于搜索并显示分散日志的方法和装置
DE102014000078A1 (de) * 2013-01-09 2014-07-10 NiGeSo Software GmbH Verfahren zur kontrollierten Verwaltung, Erstellung und Durchführung von Ablaufplänen
US10175980B2 (en) * 2016-10-27 2019-01-08 Google Llc Neural network compute tile
US10963780B2 (en) * 2017-08-24 2021-03-30 Google Llc Yield improvements for three-dimensionally stacked neural network accelerators

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004536372A (ja) * 2001-02-24 2004-12-02 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピューティング構造のグローバル・ツリー・ネットワーク
JP2009027349A (ja) * 2007-07-18 2009-02-05 Canon Inc ネットワーク機器
US20160182245A1 (en) * 2014-12-17 2016-06-23 Intel Corporation System for multicast and reduction communications on a network-on-chip
JP2018502376A (ja) * 2014-12-19 2018-01-25 アマゾン テクノロジーズ インコーポレイテッド 複数のコンピュートサブシステムを備えるチップ上のシステム
JP2018007094A (ja) * 2016-07-05 2018-01-11 株式会社ワンブリッジ 中継装置の冗長化構成における物理的非対称ルーティング防止メカニズム

Also Published As

Publication number Publication date
JP7326231B2 (ja) 2023-08-15
GB2586277A (en) 2021-02-17
EP3783492A1 (en) 2021-02-24
EP3783492B1 (en) 2023-08-23
GB201911783D0 (en) 2019-10-02
US20210049055A1 (en) 2021-02-18
CN112395241A (zh) 2021-02-23
US11429459B2 (en) 2022-08-30
GB2586277B (en) 2022-11-23

Similar Documents

Publication Publication Date Title
JP4422157B2 (ja) 自己強化型自動拡大ネットワーク
EP0869641B1 (en) Fibre channel arbitrated loop dynamic loop sizing
US20210344618A1 (en) Interconnection Network With Adaptable Router Lines For Chiplet-Based Manycore Architecture
JP2008271538A (ja) パケットデータ比較器及びそれを用いたウイルスフィルタ、ウイルスチェッカ、ネットワークシステム
CN101485147B (zh) 片上系统以及监控数据流通量的方法
JP2021060973A (ja) 集積回路チップデバイスにおけるメッセージのルーティング
CN110062303B (zh) 基于mesh网络的自适应大容量交叉光通信设备架构
KR101039185B1 (ko) 대용량 병렬 컴퓨터 시스템의 연산 노드의 패스트 백업
JP7326231B2 (ja) システムオンチップにおけるイベントメッセージのブロードキャスティング
US20060221818A1 (en) Method, system and storage medium for redundant input/output access
JP7369104B2 (ja) システムオンチップのためのアドレス指定メカニズム
US11003394B2 (en) Multi-domain data storage system with illegal loop prevention
Khalil et al. Flexible self-healing router for reliable and high-performance network-on-chips architecture
US20050060394A1 (en) Programmable delay, transparent switching multi-port interface line card
EP1675015B1 (en) Reconfigurable multiprocessor system particularly for digital processing of radar images
US7353418B2 (en) Method and apparatus for updating serial devices
Darbani et al. A reconfigurable Network-on-Chip architecture to improve overall performance and throughput
Agarwal et al. StaRRNIC: Enabling Runtime Reconfigurable FPGA NICs
Wu et al. Design of SRIO Reconstruction and Switching Network Architecture
KR101004669B1 (ko) 다중화 트래픽 경로를 위한 네트워크 콘텐츠 보안 시스템

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20201109

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20201116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210202

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20210203

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230612

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230802

R150 Certificate of patent or registration of utility model

Ref document number: 7326231

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150