[go: up one dir, main page]

JP2018528540A - チップ間およびチップ内のノード通信のための統一されたシステムおよび方法 - Google Patents

チップ間およびチップ内のノード通信のための統一されたシステムおよび方法 Download PDF

Info

Publication number
JP2018528540A
JP2018528540A JP2018509894A JP2018509894A JP2018528540A JP 2018528540 A JP2018528540 A JP 2018528540A JP 2018509894 A JP2018509894 A JP 2018509894A JP 2018509894 A JP2018509894 A JP 2018509894A JP 2018528540 A JP2018528540 A JP 2018528540A
Authority
JP
Japan
Prior art keywords
node
gateway
bus
state
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
JP2018509894A
Other languages
English (en)
Other versions
JP6845224B2 (ja
JP2018528540A5 (ja
Inventor
リチャード・ドミニク・ウィートフェルト
マキシム・レクレーク
ジョージ・アラン・ウィリー
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2018528540A publication Critical patent/JP2018528540A/ja
Publication of JP2018528540A5 publication Critical patent/JP2018528540A5/ja
Application granted granted Critical
Publication of JP6845224B2 publication Critical patent/JP6845224B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)

Abstract

チップ間およびチップ内のノード通信のための統一されたシステムおよび方法が開示される。一態様において、コンピューティングデバイス内のチップの各々を接続する単一の統一された低速バスが提供される。チップは、物理層インターフェースおよび関連するゲートウェイを介してバスに結合する。ゲートウェイは、インターフェースファブリック内のすべてのノードの状態を要約する状態テーブルを記憶するメモリを含む。ノードが状態変化を経験する時に、そのノードは、関連するローカルゲートウェイに更新を供給する。次いで、ローカルゲートウェイは、スカウトメッセージを使用して、状態変化に関する情報をリモートゲートウェイにメッセージングする。第1のノードが第2のノードへの信号を準備している時に、第1のノードは、第2のノードの現在の状態を判定するために、関連するローカルゲートウェイにある状態テーブルをチェックする。第2のノードの状態に基づいて、第1のノードは、メッセージを送り、または他の適当なアクションを行うことができる。

Description

優先権出願
本願は、その全体が参照により本明細書に組み込まれている、2015年9月10日に出願した米国特許出願第14/850104号、名称「UNIFIED SYSTEMS AND METHODS FOR INTERCHIP AND INTRACHIP NODE COMMUNICATION」の優先権を主張するものである。
本開示の技術は、全般的には、コンピューティングデバイス内のノードの間の通信を容易にするための構造および方法に関する。
コンピューティングデバイスが現代の社会において普及してきた。コンピューティングデバイスの普及は、部分的には、そのようなコンピューティングデバイス上で使用可能にされる、増加し続ける多数の機能によって駆り立てられる。増加する機能性は、より高速のプロセッサ、より大きくより高速のメモリ要素、および特定のタスクを実行するように構成された特殊化された集積回路(IC)の包含によって使用可能にされる。歴史的に、新しい機能または新しいICがコンピューティングデバイスに追加される時には、バスが、新しい機能に関連するノードがコンピューティングデバイスの他のノードと通信することを可能にするのに使用される。バスは、ユニバーサル非同期受信機/送信機(UART:Universal asynchronous receiver/transmitter)、Inter-Integrated Circuit(I2C)、シリアルペリフェラルインターフェース(SPI)などの既存の低速標準規格またはペリフェラルコンポーネントインターコネクト(PCI)、PCIエクスプレス(PCIe)、ユニバーサルシリアルバス(USB)、もしくは類似物などの既存の高速標準規格のルールに従うことができる。
既存の標準規格は、ある種の特定の所期の目的には適するが、各バスの導電要素が、ある設計判断基準に従い、かつ/または電磁妨害(EMI)放出限度もしくは電磁両立性(electromagnetic compatibility、EMC)標準規格(たとえば、米国連邦通信委員会(FCC)によって発布された標準規格など)に従うように作られる形でルーティングされなければならないので、異なる標準規格に従って動作するバスの増殖は、デバイス設計を難しくする。様々な複数のプロトコルが使用される時には、異なるプロトコルの間のプロトコル変換をサポートする必要もある場合がある。そのような変換要件は、ICの複雑さを増加させる。ノードの間の通信は、異なる標準規格によってセットされる異なるスリープ/ウェイクルールに従って動作するノードによってさらに複雑にされる可能性がある。クロック信号が、各バス上で送られる可能性があり、これが、EMI放出限度またはEMC標準規格の準拠の難しさを高める可能性がある。さらに、ICが複数のバスに結合される場合に、ICは、結合ごとに1つの、異なるインターフェースを有する可能性がある。そのようなインターフェースは、コンピューティングデバイス内で重複し、IC内の空間を消費し、コンピューティングデバイスの設計を難しくする可能性がある。バスが、ICの内部にある(たとえば、システムネットワークオンチップ(SNOC:system network on chip))時であっても、複数の物理層およびプロトコル層の要件がある可能性があり、その各々が、設計の複雑さを高める。
設計者が、コンピューティングデバイス内の様々なバスの包含に関する競合する要件を調停できる場合であっても、設計者は、それでも、チップ内通信をチップ間通信と調停するという難事に直面する。設計者が、チップ内通信とチップ間通信との両方のルーティングという問題およびEMIを制御するという問題を解決できる場合であっても、様々な要素が通信を受信するためにウェイクしていることを確かにするという問題が残る。したがって、単一のIC内のノードの間ならびに別々のIC上のノードの間の信頼できる通信を可能にする一貫したノード対ノード通信システムの必要が残っている。
詳細な説明で開示される態様は、チップ間およびチップ内のノード通信のための統一されたシステムおよび方法を含む。例示的な態様において、時々外部バスまたはチップ間バスと呼ばれる、コンピューティングデバイス内のチップの各々を接続する単一の統一された低速バスが提供される。チップは、物理層インターフェースおよび関連するゲートウェイを介してバスに結合する。ゲートウェイは、インターフェースファブリック内のすべてのノードの状態を要約する状態テーブルを記憶するメモリを含む。状態テーブルは、システム初期化時に当初にデータ設定される。ノードが状態変化を経験する時に、そのノードは、関連するローカルゲートウェイに更新を供給する。次いで、ローカルゲートウェイは、スカウトメッセージを使用して、状態変化に関する情報をリモートゲートウェイにメッセージングする。この形において、各ゲートウェイは、ネットワーク内の任意のノードの状態に関して参照が行われ得る更新された状態テーブルを有する。第1のノードが第2のノードへの信号を準備している時に、第1のノードは、第2のノードの現在の状態を判定するために、関連するローカルゲートウェイにある状態テーブルをチェックする。第2のノードの状態に基づいて、第1のノードは、メッセージを送り、メッセージを保持し、ウェイクコマンドと共に送り、または他の適当なアクションを行うことができる。すべての低速バスを単一の統一された物理層インターフェースを有する単一の統一されたバスに合併することによって、コンピューティングデバイスの集積回路(IC)内の空間が、重複した物理層インターフェースのために使用されず、不必要な重複した導電要素が、ICを接続するのに必要ではなく、レイアウト設計が、単純化される。さらに、より少数のバスは、より少数のクロック信号が要求されることを意味し、これは、電力消費が低減され得ることを意味する。設計は、様々なインターフェースブロックをサポートする必要を除去することによって、同様に単純化される。さらに、異なるソフトウェアおよび/またはブリッジソフトウェアが、ノードの間でメッセージを送るためにしばしば必要になる異種システムとは対照的に、ソフトウェア統一性が保証される。
本開示の例示的な態様は、ゲートウェイが受信されたメッセージ内の一貫しない挙動を検出する状況において、バスが、アービトレーションプロセスの操作を介して再初期化されることを可能にする。すなわち、ゲートウェイが、ゲートウェイの内部状態と衝突するイベントを検出する時に、ゲートウェイは、ゲートウェイがアービトレーションに勝つことを保証するために、次のアービトレーションサイクル中に特殊なアービトレーション識別子を送る。アービトレーションに勝った後に、次いで、ゲートウェイは、データを送らず、これが、リセットタイムアウトを強制する。リセットタイムアウトは、再初期化を強制し、この再初期化は、状態テーブルが再データ設定され、メッセージトラフィックが以前に検出されたエラーなしで再開することを可能にする。
これに関して、一態様において、コンピューティングデバイス内のネットワークノードの状態テーブルをデータ設定するための方法が提供される。この方法は、バスに結合された第1のICをアクティブ化するステップを含む。この方法は、第1のICに関連する第1のノードを第1のゲートウェイに登録するステップをも含む。この方法は、第1のICに関連する第1のノードに関する情報で第1のゲートウェイにある第1の状態テーブルをデータ設定するステップをも含む。この方法は、第1の状態テーブル内で示される可用性に基づいて、第1のICに関連する第1のノードの間のチップ内通信を可能にするステップをも含む。
別の態様において、コンピューティングデバイス内のネットワークノードの状態テーブルをデータ設定するための方法が提供される。この方法は、第1のノードを有する第1のICをコンピューティングデバイス内のバスに結合するステップを含む。この方法は、第2のノードを有する第2のICをコンピューティングデバイス内のバスに結合するステップをも含む。この方法は、第1のICに関連する第1のゲートウェイから、第1のノードに関する状態および構成情報を受信するステップをも含む。この方法は、第1のノードに関する状態および構成情報で、第2のICに関連する第2のゲートウェイにある状態テーブルをデータ設定するステップをも含む。
別の態様において、コンピューティングデバイス内のネットワークノードの状態テーブルを更新するための方法が提供される。この方法は、第1のIC内の第1のゲートウェイにおいて、第1のIC内の第1のノードから状態変化指示を受信するステップを含む。この方法は、状態変化指示に応答して、第1のノードの状態変化を反映するように第1のゲートウェイにある第1の状態テーブルを更新するステップをも含む。この方法は、第2のIC内の第2のゲートウェイへのスカウトメッセージを生成するステップであって、スカウトメッセージは、第1のノードの状態変化を示す、生成するステップをも含む。
別の態様において、コンピューティングデバイス内のネットワークノードの状態テーブルを更新するための方法が提供される。この方法は、第1のIC内の第1のゲートウェイにおいて、第2のIC内の第2のゲートウェイからスカウトメッセージを受信するステップであって、スカウトメッセージは、第2のIC内のノードの状態変化を示す、受信するステップを含む。この方法は、スカウトメッセージに応答して、ノードの状態変化を反映するように第1のゲートウェイにある第1の状態テーブルを更新するステップをも含む。
これに関して、一態様において、ICが提供される。ICは、ノードを含む。ノードは、送信機および受信機を含む。ICは、ゲートウェイをも含む。ゲートウェイは、バスに結合され、第1のプロトコルを介してその上で通信するように構成された外部インターフェースを含む。ゲートウェイはノードに通信可能に結合され、第1のプロトコルを介してその間で通信するように構成された内部インターフェースをも含む。
別の態様において、ICが提供される。ICは、第1のノードを含む。ICは、第2のノードをも含む。ICは、ゲートウェイをも含む。ゲートウェイは、バスに結合され、第1のノードおよび第2のノードからの情報を制御するように動作可能になるように構成された外部インターフェースを含む。ICは、第1のノードおよび第2のノードをゲートウェイに通信可能に結合する共通回路網をも含む。
別の態様において、コンピューティングシステムが提供される。コンピューティングシステムは、第1のICを含む。第1のICは、第1のノードを含む。第1のノードは、第1の送信機および第1の受信機を含む。第1のICは、第1のゲートウェイをも含む。第1のICは、第1の外部インターフェースをも含む。第1のゲートウェイは、第1のノードに通信可能に結合され、第1のプロトコルを介してその間で通信するように構成された第1の内部インターフェースをも含む。コンピューティングシステムは、第2のICをも含む。第2のICは、第2のノードを含む。第2のノードは、第2の送信機および第2の受信機を含む。第2のICは、第2のゲートウェイをも含む。第2のゲートウェイは、第2の外部インターフェースを含む。第2のゲートウェイは、第2のノードに通信可能に結合され、第1のプロトコルを介してその間で通信するように構成された第2の内部インターフェースをも含む。コンピューティングシステムは、第1のICの第1のゲートウェイおよび第2のICの第2のゲートウェイに結合され、第1のプロトコルを使用してその間で信号を搬送するように構成されたバスをも含む。
これに関して、一態様において、ICが提供される。ICは、ノードを含む。ICは、ノードに通信可能に結合されたゲートウェイをも含む。ゲートウェイは、バスに結合されるように構成されたインターフェースを含む。ゲートウェイは、バスに関連するノードの可用性に関するデータを記憶するように構成されたルックアップテーブルをも含む。ICは、ノードおよびゲートウェイに動作可能に結合された制御システムをも含む。制御システムは、ノードの状態に関する状態更新を受信するように構成される。制御システムは、ノード対ノード通信の間の信頼性を増進するためにバスに関連する他のゲートウェイにノードの状態に関する情報を送るようにも構成される。
別の態様において、ノード対ノード通信を容易にするための方法が提供される。この方法は、ゲートウェイにおいて、ローカルノードから状態更新を受信するステップを含む。この方法は、リモートゲートウェイに状態更新をブロードキャストするステップをも含む。
例示的な態様において、システムリセットを強制する方法が開示される。この方法は、アービトレーションフェーズ中に、アービトレーションに勝つためにゲートウェイから最も緊急の優先順位値をアサートするステップを含む。この方法は、アービトレーションに勝った後に、バスタイムアウトを強制するためにゲートウェイからデータを送らないステップをも含む。この方法は、バスタイムアウトに応答して、システムリセットを開始するステップをも含む。
別の例示的な態様において、ICが開示される。ICは、ゲートウェイを含む。ゲートウェイは、バスに結合するように構成されたバスインターフェースを含む。ゲートウェイは、制御システムをさらに含む。制御システムは、アービトレーションフェーズ中に、アービトレーションに勝つためにバス上で最も緊急の優先順位値をアサートするように構成される。制御システムは、アービトレーションに勝った後に、バスタイムアウトを強制するためにバス上でデータを送らないようにさらに構成される。制御システムは、バスタイムアウトに応答して、システムリセットを開始するようにさらに構成される。
チップ対チップ通信のための複数の通信バスおよび複数のプロトコルを有する例示的な従来のコンピューティングシステムを示すブロック図である。 本開示の例示的な態様による単一外部バスを有する例示的なコンピューティングシステムを示すブロック図である。 複数のノードを有する第2のチップに結合された複数のノードを有する第1のチップを示す単純化されたブロック図である。 図2のコンピューティングシステムの初期化中のゲートウェイ内のシステムトポロジおよび状態テーブルのデータ設定を示す流れ図である。 本開示の例示的な態様による例示的なシステムトポロジおよび状態テーブルを示す図である。 ノードがどのようにゲートウェイに登録するのかを示す信号フロー図である。 ノードの状態の変化によって生成されるスカウトメッセージを用いる図5のシステムトポロジおよび状態テーブルの更新を示す流れ図である。 本開示のプロトコルの例示的な態様による例示的なスカウトメッセージを示す図である。 チップ内の第2のノードと通信するノードを示す信号図である。 第2のリモートノードと通信するノードを示す信号図である。 本開示のプロトコルの例示的な態様による標準メッセージの構造を示す表である。 本開示の例示的な態様によるアービトレーションプロセスを示す信号図である。 バス上のアービトレーションに続くバスホールトの例示的なバスシーケンスを示す図である。 バスがキーパー回路を有しないが、ワイヤANDアービトレーションを有する、バスホールトの代替の例示的なバスシーケンスを示す図である。
ここで、図面に関して、本開示の複数の例示的な態様について説明する。「例示的」という単語は、本明細書では、「例、実例、または例示として働く」を意味するのに使用される。本明細書で「例示的」と説明されるすべての態様は、必ずしも、他の態様より好ましいまたは有利であると解釈されるべきではない。
詳細な説明内で開示される態様は、チップ間およびチップ内のノード通信のためのシステムおよび方法を含む。例示的な態様において、コンピューティングデバイス内のチップの各々を接続する、時々外部バスまたはチップ間バスと呼ばれる単一の統一された低速バスが設けられる。チップは、物理層インターフェースおよび関連するゲートウェイを介してバスに結合する。ゲートウェイは、インターフェースファブリック内のすべてのノードの状態を要約する状態テーブルを記憶するメモリを含む。状態テーブルは、システム初期化時に当初にデータ設定される。ノードが状態変化を経験する時に、ノードは、関連するローカルゲートウェイに更新を供給する。次いで、ローカルゲートウェイは、スカウトメッセージを使用して、状態変化に関する情報をリモートゲートウェイにメッセージングする。この形において、各ゲートウェイは、ネットワーク内の任意のノードの状態に関して参照が行われ得る更新された状態テーブルを有する。第1のノードが第2のノードへの信号を準備している時に、第1のノードは、第2のノードの現在の状態を判定するために、ローカルな関連するゲートウェイにある状態テーブルをチェックする。第2のノードの状態に基づいて、第1のノードは、メッセージを送り、メッセージを保持し、ウェイクコマンドと共に送り、または他の適当なアクションを行うことができる。すべての低速バスを単一の統一された物理層インターフェースを有する単一の統一されたバスに合併することによって、コンピューティングデバイスの集積回路内の空間が、重複した物理層インターフェースのために使用されず、不必要な重複した導電要素が、集積回路を接続するのに必要ではなく、レイアウト設計が、単純化される。さらに、より少数のバスは、より少数のクロック信号が要求されることを意味し、これは、電力消費が低減され得ることを意味する。設計は、様々なインターフェースブロックをサポートする必要を除去することによって、同様に単純化される。さらに、異なるソフトウェアおよび/またはブリッジソフトウェアが、ノードの間でメッセージを送るためにしばしば必要になる異種システムとは対照的に、ソフトウェア統一性が保証される。
本開示の例示的な態様は、ゲートウェイが受信されたメッセージ内の一貫しない挙動を検出する状況において、バスが、アービトレーションプロセスの操作を介して再初期化されることを可能にする。すなわち、ゲートウェイが、ゲートウェイの内部状態と衝突するイベントを検出する時に、ゲートウェイは、ゲートウェイがアービトレーションに勝つことを保証するために、次のアービトレーションサイクル中に特殊なアービトレーション識別子を送る。アービトレーションに勝った後に、次いで、ゲートウェイは、データを送らず、これが、リセットタイムアウトを強制する。リセットタイムアウトは、再初期化を強制し、この再初期化は、状態テーブルが再データ設定され、メッセージトラフィックが以前に検出されたエラーなしで再開することを可能にする。
本開示の例示的な態様に対処する前に、従来のコンピューティングシステム10の短い概要が、図1を参照して提供される。従来のコンピューティングシステム10の概要は、本開示の例示的な態様を対比させるのを助けるために提供され、従来のシステムの短所を示す。本開示の例示的な態様の議論は、下で図2を参照して開始される。
これに関して、図1は、従来のコンピューティングシステム10のブロック図であり、従来のコンピューティングシステム10は、第1のIC 12を含み、第1のIC 12は、アプリケーションプロセッサ(本明細書では時々「AP」と呼ばれる)とすることができる。第1のIC 12は、複数のサブシステム14(1)〜14(N)を含み、サブシステムは、全地球的航法衛星システム(GNSS)(本明細書では時々「ナビ(Nav)」と呼ばれる)などのナビゲーションシステム、3G、4G、および/またはロングタームエボリューション(LTE)用のセルラーモデムなどのモデム、センササブシステム、Always On Processor(AOP)サブシステム、オーディオサブシステム、および類似物を含むことができる。複数のサブシステム14(1)〜14(N)の各サブシステムが、他のノードとの通信のためにサブシステムのアプリケーション層アクティビティをプロトコルスタック内の下位層に変換する、それに関連するノード(図示せず)を有する場合があることを諒解されたい。従来のコンピューティングシステム10は、さらに、他のIC 16(1)〜16(6)を含む場合がある。6つの他のIC 16(1)〜16(6)が図示されているが、他のIC 16(1)〜16(6)などのより多数またはより少数の他のICが、従来のコンピューティングシステム10内に存在する場合があることを諒解されたい。例示的な態様において、他のIC 16(1)および16(2)は、モバイルデバイスモデム(MDM)であり、他のIC 16(4)は、WIFIまたはBLUETOOTH(登録商標)システム(時々WIFI/BTと呼ばれる)などの近距離無線通信モデム(NFCM)である。他のIC 16(5)は、オーディオコーデックまたは音声コーデックなどのワイヤレスコーデックデバイス(時々WCDと呼ばれる)とすることができ、他のIC 16(6)は、電力管理IC(PMIC)とすることができる。第1のIC 12および他のIC 16(1)〜16(6)が、従来のコンピューティングシステム10内のプリント回路基板(PCB)上に取り付けられたそれ自体のチップを有する場合があることを諒解されたい。そのような取付けは、チップのピンをソケットに挿入すること、ピンをPCBにはんだ付けすること、またはよく理解されている他の技法によって行われ得る。
図1の参照を続けると、第1のIC 12は、通信バス18(1)〜18(6)を介して他のIC 16(1)〜16(6)と通信する。通信バス18(1)〜18(6)の各々が、異なるプロトコルに従って動作し、異なる本数のワイヤを有するサブバスを含む場合があることを諒解されたい。たとえば、通信バス18(2)は、2ワイヤ(2W)ペリフェラルコンポーネントインターコネクト(PCI)エクスプレス(PCIe)バス、4ワイヤ(4W)ユニバーサル非同期受信機/送信機(UART)ホストコントローラインターフェース(UARTHCI)バス、2ワイヤUART BLUETOOTH Low Energy(UART BLE)バス、および4ワイヤUART mobility/mobile assisted wireless-fidelity(WiFi) connectivity(UART MAWC)バスを含む。他のバスは、システム電力管理インターフェース(SPMI:system power management interface)標準規格、汎用入力/出力(GPIO:general purpose input/output)標準規格、シリアルペリフェラルインターフェース(SPI)標準規格、UART GeoFencing(UART GF)、UART wireless connectivity interface, version 2(UARTWCI2)、または他の標準規格に準拠する可能性がある。各バスおよび/またはサブバスに関して、チップは、別々のインターフェースを必要とする場合があり、これが重複する場合がある。サブバスのすべてに伴う通信バス18(1)〜18(6)の各々のルーティングが、複雑になる可能性があることを諒解されたい。さらに、各バスの各ワイヤは、ピンまたは接点を必要とし、これは、素早く商業的に非実用的になる。さらに、これらの通信バス18(1)〜18(6)の各々は、電磁妨害(EMI)アグレッサ(aggressor)またはEMIビクティム(victim)として働く可能性があり、これは、通信バス18(1)〜18(6)のルーティングの複雑さを高める。要するに、従来のコンピューティングシステム10は、改善され得る。
これに関して、本開示の例示的な態様は、コンピューティングシステム内の低速バスを単一の低速バスに合併し、チップ内レベルとチップ間レベルとの両方におけるノード対ノード通信を可能にするプロトコルを実施する。そのような合併は、バスのルーティングを単純化し、EMIの機会を低減し、チップ上のピンカウントを減少させる。さらに、そのような合併は、サブシステムノードおよびそれらの対応する制御ソフトウェアに、異種システム内での多数のAPIの要件ではなく単一の共通アプリケーションプログラミングインターフェース(API)を厳守させることによって全体的なシステムソフトウェアを単純化する。
これに関して、図2は、アプリケーションプロセッサとすることのできる第1のIC 32を有する例示的なコンピューティングシステム30を示す。第1のIC 32は、複数のサブシステム(長方形として図示されているが、番号のラベルは付けられていない)を含む場合がある。上で注記したように、サブシステムは、ナビゲーションサブシステム、モデムサブシステム、センササブシステム、オーディオサブシステム、AOPサブシステム、および類似物を含むことができる。複数のサブシステムの各々は、関連するノードを有する。したがって、第1のIC 32は、ノード34(1)〜34(N)を有する。ノード34(1)〜34(N)が、それぞれの送信機34(1)Tx〜34(N)Txおよびそれぞれの受信機34(1)Rx〜34(N)Rxを有することを諒解されたい。コンピューティングシステム30は、他のIC 36(1)〜36(M)をさらに含むことができる(6つを図示)。外部バス38が、第1のIC 32および他のIC 36(1)〜36(M)を結合する。例示的な態様において、外部バス38は、低速バスである。他のIC 36(1)は、その中にノード40(1)〜40(P)を有し、他のIC 36(2)は、その中にノード42を有し、他のIC 36(3)は、その中に複数のノード44(1)〜44(Q)を有する。他のIC 36(1)〜36(M)のさらなる他のICは、その中に様々な個数のノードを有することができる(明示的にはラベルを付けられていないが、図示されている)。やはり、ノード40(1)〜40(P)、42、および44(1)〜44(Q)の各々が、それ自体のそれぞれの送信機および受信機(図示せず)を有することを諒解されたい。第1のIC 32は、ゲートウェイ46(図内では「GW」というラベルをも付けられている)を含む。ゲートウェイ46は、ノード34(1)〜34(N)に結合される内部インターフェースと、外部バス38に結合される外部インターフェースとを含む。同様に、他のIC 36(1)〜36(M)は、ゲートウェイ46に類似するそれぞれのゲートウェイ48(1)〜48(M)(やはり図内では「GW」と呼ばれる)を含む。USBおよびPCIeバスなどの他のバスが残っている場合があるが、一般に、これらは高速バスである。本明細書で使用される時に、低速バスは、50〜100Mbpsまでの速度を有するバスである。対照的に、高速バスは、数百から数千MbpsまたはGbpsである。例示的な態様において、外部バス38の周波数は、57.6MHzとすることができ、これは、多くのセルラー設計内に見られる共通の19.2MHzの倍数であり、低速バスとして分類される。
ノードおよびゲートウェイのある種の特徴をよりよく示すために、図3は、図2のコンピューティングシステム30から抽出された部分的なコンピューティングシステム50の単純化されたブロック図を提供する。部分的なコンピューティングシステム50は、制御システム51(図内では「CS」というラベルを付けられている)を有する第1のIC 32、制御システム52(図内では「CS」というラベルを付けられている)を有する他のIC 36(1)、ならびに第1のIC 32および他のIC 36(1)を結合する外部バス38を含む。外部バス38は、第1のワイヤ上でクロック信号(SCLK)、第2のワイヤ上でデータ信号(SDATA)を搬送することのできる2ワイヤバスとすることができる。第1のIC 32のゲートウェイ46は、ポイントツーポイント結合53によってノード34(1)〜34(N)に直接に結合される。本明細書で使用される時に、そのような直接結合は、1対1物理接続を含むように定義される。能動要素および受動要素が、ノード34(1)〜34(N)の所与のノードとゲートウェイ46との間に存在する可能性があるが、接続は、ゲートウェイ46を通過せずに第1のIC 32内のノード34(1)〜34(N)の任意の他のノードに通信可能には接続しない。対照的に、他のIC 36(1)のノード40(1)〜40(P)は、ネットワークオンチップ(NoC) 54を介するなど、ゲートウェイ48(1)に間接的に結合される。図3は、ポイントツーポイント結合53を有する第1のIC 32およびNoC 54を有する他のIC 36(1)を示すが、例示的な態様において、これらのシステムは、相互に排他的である。すなわち、第1のIC 32がポイントツーポイント結合53を有する場合に、他のIC 36(1)は、NoC 54ではなくポイントツーポイント結合53を同様に有する。同様に、他のIC 36(1)がNoC 54を有する場合に、第1のIC 32は、同様にNoC 54を有する。図示のように、制御システム51および52が、それぞれのゲートウェイ46および48(1)の内部にあるが、本開示が、それに限定されず、制御システム51および52が、それぞれのゲートウェイ46および48(1)の外部にあってもよいことにも留意されたい。
図3の参照を続けると、外部バス38は、第1のIC 32および他のIC 36(1)をアービトレーションクロックマネージャ(ACM) 56に結合することができる。代替案では、ACM 58が、他のIC 36(1)(または、第1のIC 32などの別のIC)内に存在することができる。ACM 56またはACM 58の機能は、アービトレーション期間中に外部バス38のSCLKをソーシングすることである。上で注記したように、ゲートウェイ46および48(1)は、外部バス38に結合するためにそれぞれの外部インターフェース60および62を含む。同様に、ゲートウェイ46は、ノード34(1)〜34(N)に結合するために内部インターフェース64を含むことができる。内部インターフェース64は、必要または望みに応じて、単一の要素または複数の要素とすることができる。同様に、ゲートウェイ48(1)は、NoC 54に結合する内部インターフェース66を含むことができる。例示的な態様において、内部インターフェース64は、内部ノード34(1)〜34(N)に接続するポートのセットを有することができる。各ポートは、ポート論理IDレジスタのセットを有し、その結果、ノード34(1)〜34(N)のノードが、複数の論理ノードIDに応答できるようになる。例示的なポートテーブルは、信頼できる、オンライン、ウェイク可能、最大伝送単位(MTU)、および送信可(CTS)という条件の状態を定義するレジスタを含む。信頼性が、個々の論理ノードの機能とされ得るが、ゲートウェイが、ポート内のすべての論理ノードのパラメータの共通のセット(たとえば、オンライン、ウェイク可能、MTU、CTS)を提供できることに留意されたい。異なる実施態様は、属性を異なって区分することができる。
図4は、図2のコンピューティングシステム30の初期化中のゲートウェイ(たとえば、ゲートウェイ46またはゲートウェイ48(1)〜48(P)のうちの1つ)内のシステムトポロジおよび状態テーブル100(図5参照)のデータ設定プロセス70を示す流れ図である。プロセス70は、コンピューティングシステム30が、外部バス38に接続された第1のIC 32と共にアクティブ化すること(ブロック72)から始まる。第1のノード34(1)〜34(N)が、第1のゲートウェイ46に登録する(ブロック74)。この登録は、容易に理解されるように、ゲートウェイ46からの懇請に応答して、ノード34(1)〜34(N)が電力を受け取ることに応答して、または別のコマンドから行われ得る。第1のゲートウェイ46が、ノード34(1)〜34(N)に関する情報でシステムトポロジおよび状態テーブル100(図5参照)をデータ設定する(ブロック76)。この時点で、チップ内通信(すなわち、ノード34(1)〜34(N)の間の)が可能である(ブロック78)が、ゲートウェイ46は、チップ間通信を阻む。
図4の参照を続けると、少し後に、他のIC 36(1)〜36(M)のうちの1つまたは複数がアクティブ化される。例示のために、他のIC 36(1)がアクティブ化され、第2のゲートウェイ48(1)がブートする(ブロック80)。本明細書内で使用される時に、第1および第2が、要素の間で弁別する際の便宜のために使用され、必ずしも厳密に時間的なラベルではないことに留意されたい。たとえば、他のIC 36(3)が、第1の時刻にアクティブ化され、IC 32がその後にアクティブ化することができ、したがって、他のIC 36(3)が、プロセス70に関して「第1」になることができる。容易に理解されるように、さらに他の時間的順序が可能である。第2のゲートウェイ48(1)は、登録するように第2のノード40(1)〜40(P)にシグナリングする(ブロック82)。第2のゲートウェイ48(1)は、第1のゲートウェイ46に、第1のゲートウェイ46に関連するノード34(1)〜34(N)の構成データを要求する(ブロック84)。第2のノード40(1)〜40(P)は、第2のゲートウェイ48(1)に登録し(ブロック86)、第2のゲートウェイ48(1)は、それ自体のシステムトポロジおよび状態テーブルをデータ設定する。本開示の例示的な態様において、IC 32およびIC 36(1)〜36(M)が、お互いと独立に構成されるが、別の例示的な態様において、第1のゲートウェイ46が、第2のゲートウェイ48(1)を構成することができることに留意されたい。
図4の参照を続けると、第2のゲートウェイ48(1)は、第2のノード40(1)〜40(P)の状態およびプロパティをブロードキャストする外部バス38上のスカウトメッセージを送る(ブロック88)。スカウトメッセージに関するさらなる情報は、下で図8を参照して提供される。第1のゲートウェイ46は、第2のノード40(1)〜40(P)に関する情報を用いてローカルシステムトポロジおよび状態テーブルを更新する。第1のゲートウェイ46は、第1のノード34(1)〜34(N)の状態およびプロパティを有するスカウトメッセージを外部バス38上で第2のゲートウェイ48(1)に送る(ブロック90)。第2のゲートウェイ48(1)は、第1のノード34(1)〜34(N)に関する情報を用いてローカルシステムトポロジおよび状態テーブルを更新する。システムトポロジおよび状態テーブルがリモートノードに関する情報を用いて更新された後に、チップ間通信は、図9および図10を参照して下でより詳細に説明されるように、通信に含まれるノードの可用性に従って発生することができる。
図5は、本開示の例示的な態様による例示的なシステムトポロジおよび状態テーブル100である。システムトポロジおよび状態テーブル100は、ノードアドレスフィールド102、ノードが内部的に存在するフィールド104、ノードが外部的に存在するフィールド106、ノードがアウェイクしているフィールド108、ウェイクオンメッセージが許可されるフィールド110、信頼できる配送が必要とされるフィールド112、ノード送信可(CTS)状態フィールド114、および最大伝送単位(MTU)サイズフィールド116などのフィールドを含むことができる。本開示の例示的な態様において、MTUは、バッファをオーバーフローさせず、同様の要因のためにすべての受信ノードに関してシステム設計者によって決定される。より大きいMTUがより大きいバッファサイズを、したがってより大きいSOCエリアを暗示するという点で、SOCエリアとMTUとバッファサイズとの間に直接の関係がある。フィールド104、106、108、110、および112が、単一のビットまたは単純なY/N指示とされ得ることに留意されたい。他のフィールド102、114、および116は、単一のビットより大きいものとされ得る。フィールド104および106が、内部または外部を示すか、ノードの位置を示すために単一の指示を使用するためにノードの位置の相互に排他的な性質と、指示を欠くノードの他の位置を推論するのにそのような指示に不在(たとえば、ノードが内部的に存在するフィールド104だけが存在する場合に、ここでの正のビットの不在は、必ず、ノードが外部的に存在することを示す)とに頼る単一のフィールドに合併され得ることにさらに留意されたい。
図6は、ノード(たとえば、ノード34(1))がリセット時または初期化時にどのようにゲートウェイ(たとえば、ゲートウェイ46)に登録するのかを示す信号フロー図130である。ノード34(1)が、ノードハードウェア(HW) 132およびノードソフトウェア(SW) 134を含むことを諒解されたい。同様に、ゲートウェイ46は、ゲートウェイ(図内ではGWとして参照される)ポートマネージャ140、ゲートウェイルーティングテーブル142(たとえば、システムトポロジおよび状態テーブル100)、ゲートウェイ外部バスマネージャ144、およびゲートウェイ構成SW 146を含む。当初に、ハードウェアまたはソフトウェアコマンドがリセットを開始する。ノード34(1)は、状態レジスタ(図示せず)内にリセット条件を書き込むことができる。リセット条件は、コールド/サブシステムハードウェアリセット、ゲートウェイリセット要求、ソフトウェアリセット要求、またはデバッグリセットとすることができる。ノード34(1)は、ゲートウェイ46が準備ができているかどうかを調べるためにテストすることができる。ゲートウェイ46が準備ができた後に、信号フロー図130の初期化プロセスが始まる。
図6の参照を続けると、当初に、ポートテーブルがアンロックされ、ゲートウェイ構成SW 146によって変更され得る。ゲートウェイ構成SW 146は、信号150を用いて、ポートテーブル内に論理ノードID、有効、信頼できる/信頼できないを書き込む。また、ゲートウェイ構成SW 146は、信号152を用いてゲートウェイ46をイネーブルする。代替案では、ゲートウェイ46が自動イネーブルされる。ゲートウェイポートマネージャ140は、信号154を用いてゲートウェイ46が準備ができていることをノードHW 132に指示し、これは、ノードHW 132に、ゲートウェイ読取状態レジスタ(図示せず)を更新させる。ノードHW 132は、ゲートウェイポートマネージャ140にノードリセットコマンド156を送り、ゲートウェイポートマネージャ140は、ポートフラグ値をチェックする。ポートフラグ値は、ディスエーブルにセットされなければならない。ポートフラグ値は、ウォームリセット条件時にポートおよびルーティングテーブルをリセットするのに使用される。
図6の参照を続けると、ゲートウェイポートマネージャ140は、ノードHW 132にリセット肯定応答(ACK) 158を送る。ノードHW 132は、ノードSW 134にノード初期化割込み160を送る。その一方で、ゲートウェイ構成SW 146は、信号162を用いて、ポートテーブル内に論理ノードID、有効、信頼できる/信頼できないを書き込むことができる。ゲートウェイ構成SW 146は、ノード初期化割込み160によってトリガされ得る。ノードHW 132は、コマンド164を用いて自動イネーブルビットをセットする。ノードSW 134は、ノードHW 132にイネーブルノードコマンド166を送る。ノードHW 132は、ゲートウェイポートマネージャ140にポートCONFコマンド(時々CMDと呼ばれる)168を送り、ゲートウェイポートマネージャ140は、ポートCONF ACK 170を応答し、ポートテーブルがゲートウェイ構成SW 146によって変更され得ないようにポートテーブルをロックする(書込保護または「WP」)。
図6の参照を続けると、ノードHW 132は、ゲートウェイポートマネージャ140にRX_MTU CMD 172を送り、ゲートウェイポートマネージャ140は、コマンド174を用いてゲートウェイルーティングテーブル142内にローカル、有効、信頼できる、RX_MTUをセットする。ゲートウェイポートマネージャ140は、ノードHW 132にMTU ACK 176を送る。その一方で、ゲートウェイルーティングテーブル142は、コマンド178を用いて、デフォルト値によってHDRをセットする。ノードHW 132は、ゲートウェイポートマネージャ140にウェイク可能CMD 180を送り、ゲートウェイポートマネージャ140は、コマンド182を用いてゲートウェイルーティングテーブル142内にウェイク可能/ウェイク不能(NW)ビットをセットする。ゲートウェイポートマネージャ140は、ノードHW 132にウェイクACK 184を送る。ノードHW 132は、ゲートウェイポートマネージャ140にCTS CMD 186を送り、ゲートウェイポートマネージャ140は、コマンド188を用いてゲートウェイルーティングテーブル142内でCTSビットをセットする。ゲートウェイポートマネージャ140は、ノードHW 132にCTS ACK 190を送る。ノードHW 132は、ゲートウェイポートマネージャ140にオン/オフCMD 192を送り、ゲートウェイポートマネージャ140は、コマンド194を用いてゲートウェイルーティングテーブル142内でオン/オフビットをセットする。ゲートウェイポートマネージャ140は、ノードHW 132にオン/オフACK 196を送る。ノードHW 132は、ゲートウェイポートマネージャ140に構成終了(CONFDONE) CMD 198を送る。次いで、ゲートウェイルーティングテーブル142は、ゲートウェイ外部バスマネージャ144に、ノード状態変化と共にスカウントコマンド200を送る。ゲートウェイポートマネージャ140は、ノードHW 132にCONFDONE ACK 202を送り、ポートテーブルは、アンロックされ、ゲートウェイ構成SW 146によって変更され得る。信号およびコマンド170〜202は、ポートテーブル内のノードIDごとに繰り返される。ノードHW 132は、ノードSW 134にノード構
成終了割込み204を送ることによって終了する。
例示的な態様において、ポートは、論理ノードIDの動的作成の場合に使用すべきノードの状態を維持しなければならない。これは、イネーブル(オンライン)、オン/オフ、ウェイク可能、Rx_MTU、およびCTSなどのノードの状態が、論理ノードIDが作成される時のポートの状態を継承することを可能にする。論理ノードIDが、論理ノードID値をセットしまたは変更することによって動的に作成され得ることに留意されたい。ゲートウェイ内のポートは、すべての可能な論理ノードIDおよびそれらの状態を追跡する。一例として、物理ノードは、ID a、b、c、およびdを有する4つの論理ノードを有することができる。変化する条件は、ID eでの新しい論理ノード(およびそのパラメータ)の動的作成を引き起こす。それを行う際に、論理ノードeは、論理ノードaを置換する。作成後に、論理ノードのゲートウェイリストは、b、c、d、およびeに更新される。論理ノードaのパラメータは、望まれる場合に、ノードソフトウェア内で保持され得る。
図7は、ノードの状態の変化によって生成されるスカウトメッセージを用いる図5のシステムトポロジおよび状態テーブル100の更新を示す流れ図である。具体的には、プロセス220は、ノード34(1)が通常動作中に状態を変化させることから始まる(ブロック222)。たとえば、ノード34(1)は、スリープモードに入ることができる。第1のゲートウェイ46は、ノード34(1)の状態変化について知る(ブロック224)。ノード34(1)は、状態変化の前にこの状態変化についてゲートウェイ46に先を見越して知らせることができ、ゲートウェイ46は、状態変化に関してノード34(1)〜34(N)を周期的にポーリングすることができ、または、他の技法が、必要または望みに応じて使用され得る。状態変化について知った後に、第1のゲートウェイ46は、ローカルシステムトポロジおよび状態テーブル100を更新する(ブロック226)。
図7の参照を続けると、第1のゲートウェイ46は、ローカルシステムトポロジおよび状態テーブル100内の変化をブロードキャストするスカウトメッセージを外部バス38を介して送る(ブロック228)。第2のゲートウェイ48(1)は、スカウトメッセージを受信し(ブロック230)、そのローカルシステムトポロジおよび状態テーブル100を更新する(ブロック232)。
図8は、本開示のプロトコルの例示的な態様による例示的なスカウトメッセージ250である。スカウトメッセージ250は、アイドルフィールド252、開始フィールド254、スカウト識別子フィールド256、バージョン(「ver」)フィールド258、優先順位フィールド260、ハンドオーバフィールド262、メッセージヘッダ264、および1つから4つまでのスカウトコマンド266(1つだけ図示)を含むことができる。ハンドオーバフィールド262は、スカウトメッセージ250のアービトレーションフェーズを終了し、データフェーズを開始する。
すべてのシステムトポロジおよび状態テーブル100がデータ設定され、更新された後に、図2のコンピューティングシステム30のノードは、コンピューティングシステム30の高水準機能を遂行するためにお互いと通信することができる。これに関して、図9は、第1のIC 32内の第2のノード34(2)と通信するノード34(1)の信号図270である。ノード34(1)は、ゲートウェイ46にメッセージ要求272を送る。メッセージ要求272は、信頼性要件などの属性を含むことができる。ゲートウェイ46は、信頼性が要求されるかどうかをチェックする(信号274)。信頼性が要求されない場合には、ゲートウェイ46は、メッセージを送るようにノード34(1)に命令し(信号276)、ノード34(1)は、メッセージ278を送る。
図9の参照を続けると、信頼性が要求される場合には、ゲートウェイ46は、宛先ノード34(2)が利用可能であるかどうかを調べるためにシステムトポロジおよび状態テーブル100をチェックする(信号280)。テーブル100が、宛先ノード34(2)が利用可能であることを示す場合に(信号282)、ゲートウェイ46は、メッセージを送るようにノード34(1)に命令し(信号284)、ノード34(1)は、メッセージ278を送る。
図9の参照を続けると、信頼性が要求され、宛先ノード34(2)が利用可能ではなく、ウェイク可能ではない場合に(信号286)、次いで、ゲートウェイ46は、メッセージを保持しまたは破棄するようにノード34(1)に命令する(信号288)。
図9の参照を続けると、信頼性が要求され、宛先ノード34(2)が利用可能ではないが、ウェイク可能である場合に(信号290)、ゲートウェイ46は、宛先ノード34(2)にウェイクコマンド292を送る。宛先ノード34(2)は、ウェイクの確認を送り(信号294)、ゲートウェイ46は、メッセージを送るようにノード34(1)に命令する(信号296)。ノード34(1)は、メッセージ278を送る。
システムトポロジおよび状態テーブル100をチェックすることによって、信頼性が、メッセージ転送において保証される。改善された信頼性は、より少ないメッセージが再送されるという点で帯域幅の節約を可能にする。そのような信頼性は、ノードが異なる電力ドメイン、異なるクロックドメイン、および/または異なるウェイク可能性パラメータを有する場合であっても達成される。
信号図270は、チップ内ノード対ノード通信を議論するが、図10は、他のIC 36(1)〜36(M)のうちの1つなどのリモートIC上の第2のノード40(1)と通信するノード34(1)の信号図310である。ノード34(1)は、ゲートウェイ46にメッセージ要求312を送る。メッセージ要求312は、信頼性要件などの属性を含むことができる。ゲートウェイ46は、信頼性が要求されるかどうかをチェックする(信号314)。信頼性が要求されない場合には、ゲートウェイ46は、メッセージを送るようにノード34(1)に命令し(信号316)、ノード34(1)は、リモート宛先ノード40(1)に外部バス38を介してメッセージ318を送る。
図10の参照を続けると、信頼性が要求される場合に、ゲートウェイ46は、リモート宛先ノード40(1)が利用可能であるかどうかを調べるために、システムトポロジおよび状態テーブル100をチェックする(信号320)。テーブル100は、コンピューティングシステム30内のすべてのノードの状態を供給するために以前に送られたスカウトメッセージに基づいて最新でなければならない。テーブル100が、リモート宛先ノード40(1)が利用可能であることを示す場合に(信号322)、ゲートウェイ46は、メッセージを送るようにノード34(1)に命令し(信号324)、ノード34(1)は、リモート宛先ノード40(1)に外部バス38を介してメッセージ318を送る。
図10の参照を続けると、信頼性が要求され、リモート宛先ノード40(1)が利用可能ではなく、ウェイク可能ではない場合に(信号326)、次いで、ゲートウェイ46は、メッセージを保持しまたは破棄するようにノード34(1)に命令する(信号328)。
図10の参照を続けると、信頼性が要求され、リモート宛先ノード40(1)が利用可能ではないが、ウェイク可能である場合に(信号330)、ゲートウェイ46は、外部バス38を介してリモート宛先ノード40(1)にウェイクコマンド332を送る。リモート宛先ノード40(1)は、外部バス38を介してウェイクの確認を送り(信号334)、ゲートウェイ46は、メッセージを送るようにノード34(1)に命令する(信号336)。ノード34(1)は、メッセージ318を送る。
外部バス38上で使用される新しいプロトコルを解説するのを助けるために、図11は、本開示のプロトコルの例示的な態様による標準メッセージの構造を示すテーブル350である。標準メッセージは、標準またはスカウト(Std_or_Scout) 352、バージョン354、優先順位レベル356、バックオフビット358、ノードサブID 360、クロックハンドオーバ362、巡回冗長検査(CRC)存在364、HDRモード366、宛先ノードID 368、長さ370、ペイロード372、CRC 374、およびバスパーク376などのフィールドを有することができる。標準メッセージの他の構造および/または配置が可能であるが、図11内に示された構造は、本開示の例示的な態様に適する。
図12は、本開示の例示的な態様によるアービトレーションプロセス400の信号図である。アービトレーションプロセス400は、外部バス38上で使用される新しいプロトコルを解説するのを助けるために提供される。他のアービトレーションプロセスが可能であるが、アービトレーションプロセス400は、本開示の例示的な態様に適する。アービトレーションプロセス400は、以前のシーケンス期間402の終りの後、バスアイドル期間404の後に開始する。バスアイドル期間404中に、SCLKは、SDATAと同様に休眠中である。アービトレーションフェーズ406は、アービトレーション開始408と共に始まり、アービトレーション開始408は、チップのうちの1つ(または複数)がSDATA信号線上で要求を開始する時に始まる。メッセージ開始の検出時に、アービトレーションシーケンス410が始まり、ACM 58が、SCLKを駆動する(412に表されている)。様々な要求するゲートウェイは、それらのそれぞれのメッセージ優先順位に従ってSDATAを駆動し(全般的に414)、優先順位が確立される。優先順位が区立された後に、クロックハンドオーバ期間416が始まり、その後に、勝つゲートウェイが、SCLKを駆動し(418に示されている)、データフェーズ422内に適当なSDATA(420に示されている)を供給する。
アービトレーションフェーズ406内に、複数のゲートウェイ46および48(1)〜48(M)が、一意のメッセージ優先順位値を送信することによって、外部バス38へのアクセスに関して競合することができる。外部バス38は、ゲートウェイ46および48(1)〜48(M)のうちの複数がアービトレーションフェーズ406中に送信する時に、最も緊急の優先順位値が、より低い緊急優先順位値を有するゲートウェイ46および48(1)〜48(M)をオーバーライドするように構成される。この優先順位方式を達成するために、メッセージ優先順位値は、最上位ビット(MSB)を最初に送信され、それらが外部バス38に出力したビットが外部バス38の実際の値であることを確認するために、ゲートウェイ46および48(1)〜48(M)のすべてが外部バス38を感知する。ゲートウェイ46および48(1)〜48(M)のうちの1つが、そのゲートウェイが送信したばかりの値と等しくないビット値を検出する時には必ず、そのゲートウェイは、バックオフし、メッセージ優先順位値の後続ビットの送信を試みない。勝つゲートウェイは、そのメッセージ優先順位値のすべてのビットが適切に送信された(すなわち、優先順位ビットが、ゲートウェイ46および48(1)〜48(M)の別の1つによってプリエンプトされなかった)ことを検出したゲートウェイである。勝つゲートウェイは、そのメッセージをデータフェーズ422中に送信する許可を与えられる。ゲートウェイが、そのメッセージの送信を終了する時に、外部バス38は、ゲートウェイ46および48(1)〜48(M)のいずれもが外部バス38へのアクセスを要求できるアイドル状態に戻る。
ゲートウェイ46および48(1)〜48(M)のうちの1つが、その初期状態において回復不能なエラーを検出する時に、そのゲートウェイは、システム全体のリセットを発生させる一意のバスアクセス要求を送ることができる。一意のバスアクセス要求は、バスエラーホールトシーケンスと呼ばれる。バスエラーホールトシーケンスを実施するために、アービトレーションプロセス内の最も緊急の優先順位値が、バスエラーホールトシーケンスを送信するために予約されている。例示的な態様において、この優先順位値は、コンピューティングシステム30内のメッセージ優先順位値の割り当てに依存して、すべて1またはすべて0のいずれかとされ得る。バスエラーホールトシーケンスは、ゲートウェイ46および48(1)〜48(M)のいずれかによって送信され得、ゲートウェイ46および48(1)〜48(M)のうちの複数がバスエラーホールトシーケンスを同時に送信することが、許される。バスエラーホールトシーケンスに最も緊急の優先順位値を使用することによって、バスエラーホールトシーケンスを送信しないゲートウェイ46および48(1)〜48(M)が、アービトレーションフェーズ406に勝つことを諒解されたい。次いで、勝つゲートウェイは、データフェーズ422内にデータを送信しない。すべての勝つゲートウェイがいかなるデータを送信しないので、アービトレーションフェーズ406において引き分けがある場合であっても、競合はない。データフェーズ422内のメッセージの欠如は、最終的に、ゲートウェイ46および48(1)〜48(M)の各々内のリセットタイマをトリガし、これは、システムエラーを引き起こし、すべてのゲートウェイ46および48(1)〜48(M)をリセットさせる。例示的な態様において、システムエラーは、ゲートウェイ46および48(1)〜48(M)の各々において判定される。ゲートウェイ46および48(1)〜48(M)は、ゲートウェイ46および48(1)〜48(M)のうちで最も遅いものがリセット条件を内部的に宣言することもできるように、ゲートウェイ46および48(1)〜48(M)のうちで最も遅いものがフリーズした外部バス38を検出する機会を有するまで、ゲートウェイ46および48(1)〜48(M)が再始動するのを防ぐ第2のタイマを有することができる。
説明したばかりのシステムリセットを反映する信号図500が、図13内で提供される。信号図500は、アービトレーションプロセス400が以前のシーケンス期間402の終りの後、バスアイドル期間404の後に開始するという点で、図12のアービトレーションプロセス400の信号図に類似する。バスアイドル期間404中に、SCLKは、SDATAと同様に休眠中である。アービトレーションフェーズ406は、アービトレーション開始408と共に開始し、アービトレーション開始408は、チップのうちの1つがSDATA信号線上でメッセージを開始する時に始まる。メッセージ開始の検出時に、アービトレーションシーケンス410が始まり、ACM 58が、SCLKを駆動する(412に表されている)。要求するゲートウェイは、SDATA信号線上でデータ414'をアサートし、優先順位が確立される。図示されているように、データ414'は、非ゼロ復帰逆転(NRZI:non-return to zero inverted)フォーマットで符号化され、このフォーマットでは、値の変化が1であり、値の変化なしが0である。それぞれの優先順位値を送信するゲートウェイ46および48(1)〜48(M)は、外部バス38の状態を変更するために遷移を駆動することによって論理1を送信し、次いで、高インピーダンス状態に移る。外部バス38上の信号は、キーパー回路(図示せず)を使用してその現在の状態に保たれ、その結果、外部バス38は、外部バス38を能動的に駆動するゲートウェイがない場合に現在の論理状態に保たれるようになる。ゲートウェイ46および48(1)〜48(M)のうちの1つは、外部バス38の状態を変更しないことによって論理0を送る。この方法を使用すると、論理1は、論理0に優先する。バスエラーホールトシーケンスを送っているゲートウェイ46および48(1)〜48(M)のいずれもが、最も緊急の優先順位値を送っており、したがって、他のより高い優先順位値は存在することができず、したがって、バスエラーホールトシーケンスを送っているゲートウェイ46および48(1)〜48(M)のいずれもが、アービトレーションフェーズ406に勝つ。最も緊急の優先順位値を送信するゲートウェイ46および48(1)〜48(M)のすべてが、外部バス38上で同一の値をアサートしているので、競合の問題はない。
図13の参照を続けると、アービトレーションフェーズ406に勝った後に、勝つゲートウェイは、データフェーズ422中にデータを送信しない502。同様に、勝つゲートウェイは、時刻506にバスタイムアウト条件が発生するまで、SCLKを0に駆動する(504に表されている)。バスタイムアウト条件の検出は、前に示したようにシステムリセットを引き起こす。
同様に、図14は、外部バス38がワイヤAND機能を実施するバスエラーホールトシーケンスの信号図600を示す。すなわち、外部バス38は、キーパー回路の代わりにプルアップ抵抗(図示せず)を有し、すべて0の優先順位値は、最も緊急の値である(全般的に414"に表されている)。論理0は、ゲートウェイ46および48(1)〜48(M)のうちの1つが外部バス38をロウにプルすることによって送信され、論理1は、ゲートウェイ46および48(1)〜48(M)のうちの1つが外部バス38を駆動しないことによって送信される。ゲートウェイのどれもが外部バス38を駆動しない場合には、プルアップ抵抗が、外部バス38を論理1にプルする。しかし、図示されているように、ゲートウェイ46および48(1)〜48(M)のうちの少なくとも1つが、最も緊急の優先順位値をアサートし、アービトレーションフェーズ406に勝つ。次いで、前に説明したように、勝つゲートウェイは、データフェーズ422中にデータを送信せず502、バスタイムアウト条件が時刻506に発生するまで、SLCKを0に駆動する(504に表されている)。
本明細書で開示される態様によるチップ間およびチップ内の通信のためのインターフェースファブリックは、任意のプロセッサベースのデバイス内で提供されまたはこれに統合され得る。例は、限定なしに、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、スマートフォン、タブレット、ファブレット、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤおよび自動車を含む。
当業者は、本明細書で開示される態様に関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムが、電子ハードウェア、メモリ内または別のコンピュータ可読媒体内に記憶されプロセッサまたは他の処理デバイスによって実行される命令、またはその両方の組合せとして実施され得ることをさらに諒解されよう。本明細書で説明されるデバイスは、例として、任意の回路、ハードウェア構成要素、IC、またはICチップ内で使用され得る。本明細書で開示されるメモリは、任意のタイプおよびサイズのメモリであり得、所望の任意のタイプの情報を記憶するように構成され得る。この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、その機能性に関して上記で全般的に説明された。そのような機能性がどのようにして実施されるのかは、システム全体に課せられる、特定の適用例、設計選択、および/または設計制約に依存する。当業者は、特定の適用例ごとに様々な方式で記載の機能を実装してもよいが、そのような実装決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
本明細書で開示される態様に関連して説明される様々な例示的な論理ブロック、モジュール、および回路は、本明細書で説明される機能を実行するように設計された、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲート論理もしくはトランジスタ論理、個別ハードウェア構成要素、またはその任意の組合せを用いて実施されまたは実行され得る。プロセッサは、マイクロプロセッサとすることができるが、代替案では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサは、コンピューティングデバイスの組合せ(たとえば、DSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成)としても実施され得る。
本明細書で開示される態様は、ハードウェアと、ハードウェア内に記憶され、たとえばランダムアクセスメモリ(RAM)、フラッシュメモリ、読取専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で既知の任意の他の形のコンピュータ可読媒体内に存在することのできる命令とにおいて実施され得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、これに情報を書き込むことができるようにプロセッサに結合される。代替案では、記憶媒体は、プロセッサと一体である場合がある。プロセッサおよび記憶媒体は、ASIC内に存在する場合がある。ASICは、リモート局内に存在する場合がある。代替案では、プロセッサおよび記憶媒体は、リモート局、基地局、またはサーバ内に個別構成要素として存在する場合がある。
本明細書の例示的な態様のいずれかで説明される動作ステップが、例および議論を提供するために説明されることにも留意されたい。上述の動作は、図示されたシーケンス以外の多数の異なるシーケンスにおいて実行される場合がある。さらに、単一の動作ステップにおいて説明された動作は、実際にはいくつかの異なるステップにおいて実行される場合がある。さらに、例示的な態様において議論される1つまたは複数の動作ステップが、組み合わされる場合がある。流れ図内に示された動作ステップが、当業者に容易に明らかになる多数の異なる変更の対象になり得ることを理解されたい。当業者は、情報および信号が様々な異なる技術および技法のいずれを使用して表されてもよいことをも理解されよう。たとえば、上記の説明全体を通じて参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されてもよい。
本開示の前の説明は、当業者が本開示を製作しまたは使用することを可能にするために提供されるものである。本開示の様々な変更が、当業者には容易に明らかになり、本明細書において定義される一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用される場合がある。したがって、本開示は、本明細書において説明された例および設計には限定されないものとし、本明細書において開示される原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
10 コンピューティングシステム
12 第1のIC
14(1)〜14(N) サブシステム
16(1)〜16(6) 他のIC
18(1)〜18(6) 通信バス
30 コンピューティングシステム
32 第1のIC
34(1)〜34(N) ノード
34(1)Tx〜34(N)Tx 送信機
34(1)Rx〜34(N)Rx 受信機
36(1)〜36(M) 他のIC
38 外部バス
40(1)〜40(P) ノード
42 ノード
44(1)〜44(Q) ノード
46 ゲートウェイ
48(1)〜48(M) ゲートウェイ
50 部分的なコンピューティングシステム
51 制御システム
52 制御システム
53 ポイントツーポイント結合
54 ネットワークオンチップ(NoC)
56 アービトレーションクロックマネージャ(ACM)
58 ACM
60 外部インターフェース
62 外部インターフェース
64 内部インターフェース
66 内部インターフェース
70 データ設定プロセス
100 システムトポロジおよび状態テーブル
102 ノードアドレスフィールド
104 ノードが内部的に存在するフィールド
106 ノードが外部的に存在するフィールド
108 ノードがアウェイクしているフィールド
110 ウェイクオンメッセージが許可されるフィールド
112 信頼できる配送が必要とされるフィールド
114 ノード送信可(CTS)状態フィールド
116 最大伝送単位(MTU)サイズフィールド
130 信号フロー図
132 ノードハードウェア(HW)
134 ノードソフトウェア(SW)
140 ゲートウェイポートマネージャ
142 ゲートウェイルーティングテーブル
144 ゲートウェイ外部バスマネージャ
146 ゲートウェイ構成SW
150 信号
152 信号
154 信号
156 ノードリセットコマンド
158 リセット肯定応答(ACK)
160 ノード初期化割込み
162 信号
164 コマンド
166 イネーブルノードコマンド
168 ポートCONFコマンド
170 ポートCONF ACK
172 RX_MTU CMD
174 コマンド
176 MTU ACK
178 コマンド
180 ウェイク可能CMD
182 コマンド
184 ウェイクACK
186 CTS CMD
188 コマンド
190 CTS ACK
192 オン/オフCMD
194 コマンド
196 オン/オフACK
198 構成終了(CONFDONE) CMD
200 スカウントコマンド
202 CONFDONE ACK
204 ノード構成終了割込み
220 プロセス
250 スカウトメッセージ
252 アイドルフィールド
254 開始フィールド
256 スカウト識別子フィールド
258 バージョンフィールド
260 優先順位フィールド
262 ハンドオーバフィールド
264 メッセージヘッダ
266 スカウトコマンド
270 信号図
272 メッセージ要求
274 信号
276 信号
278 メッセージ
280 信号
282 信号
284 信号
286 信号
288 信号
290 信号
292 ウェイクコマンド
294 信号
296 信号
310 信号図
312 メッセージ要求
314 信号
316 信号
318 メッセージ
320 信号
322 信号
324 信号
326 信号
328 信号
330 信号
332 ウェイクコマンド
334 信号
336 信号
350 テーブル
352 標準またはスカウト(Std_or_Scout)
354 バージョン
356 優先順位レベル
358 バックオフビット
360 ノードサブID
362 クロックハンドオーバ
364 巡回冗長検査(CRC)存在
366 HDRモード
368 宛先ノードID
370 長さ
372 ペイロード
374 CRC
376 バスパーク
400 アービトレーションプロセス
402 以前のシーケンス期間
404 バスアイドル期間
406 アービトレーションフェーズ
408 アービトレーション開始
410 アービトレーションシーケンス
414' データ
416 クロックハンドオーバ期間
422 データフェーズ
500 信号図
506 時刻
600 信号図

Claims (58)

  1. コンピューティングデバイス内のネットワークノードの状態テーブルをデータ設定するための方法であって、
    バスに結合された第1の集積回路(IC)をアクティブ化するステップと、
    前記第1のICに関連する第1のノードを第1のゲートウェイに登録するステップと、
    前記第1のICに関連する前記第1のノードに関する情報で前記第1のゲートウェイにある第1の状態テーブルをデータ設定するステップと、
    前記第1の状態テーブル内で示される可用性に基づいて、前記第1のICに関連する前記第1のノードの間のチップ内通信を可能にするステップと
    を含む方法。
  2. 前記バスに結合された第2のICをアクティブ化するステップと、
    前記第2のICに関連する第2のノードを第2のゲートウェイに登録するステップと、
    前記第2のICに関連する前記第2のノードに関する情報で前記第2のゲートウェイにある第2の状態テーブルをデータ設定するステップと、
    前記第2のゲートウェイによって、前記第1のゲートウェイに構成データを要求するステップと、
    前記第1のゲートウェイにある前記第1の状態テーブルからの前記第1のICに関連する前記第1のノードに関する前記情報に基づいて、前記第1のICに関連する前記第1のノードに関する前記情報で前記第2のゲートウェイにある前記第2の状態テーブルをデータ設定するステップと
    をさらに含む、請求項1に記載の方法。
  3. 前記第2のゲートウェイから、前記バスを介して、前記第2の状態テーブル内に記憶された前記第2のICに関連する前記第2のノードに関する前記情報をブロードキャストするステップをさらに含む、請求項2に記載の方法。
  4. 第1のノードが状態を変更することに応答して、前記第1のノードの変更された状態を反映するように前記第1の状態テーブルを更新するステップをさらに含む、請求項1に記載の方法。
  5. 前記第1のノードの前記変更された状態に関する情報を用いて前記第1のゲートウェイにおいてスカウトメッセージを生成するステップと、
    前記第1のゲートウェイから前記バスに通信可能に結合されたリモートゲートウェイに前記スカウトメッセージを送るステップと
    をさらに含む、請求項4に記載の方法。
  6. 第2のゲートウェイにおいて前記スカウトメッセージを受信するステップと、
    前記スカウトメッセージに基づいて第2の状態テーブルを更新するステップと
    をさらに含む、請求項5に記載の方法。
  7. 前記第1の状態テーブル内で示される前記可用性に基づいて、前記第1のICに関連する前記第1のノードの間の前記チップ内通信を可能にするステップは、
    前記第1のゲートウェイにおいて、前記第1のIC内の初期ノードから前記第1のIC内の宛先ノードへのメッセージ要求を受信するステップと、
    前記第1の状態テーブル内の前記第1のICに関連する前記第1のノードに関する前記情報に基づいて、前記宛先ノードが利用可能であるかどうかを判定するステップと、
    前記宛先ノードが利用可能である場合に、前記メッセージ要求に関連するメッセージを送るように前記初期ノードに命令するステップと
    を含む、請求項1に記載の方法。
  8. 前記宛先ノードが利用可能でないとの判定に応答して、前記宛先ノードがウェイク可能であるかどうかを判定するステップと、
    前記宛先ノードがウェイク可能であるとの判定に応答して、前記宛先ノードにウェイクコマンドを送るステップと、
    前記宛先ノードをウェイクした後に、前記メッセージ要求に関連する前記メッセージを送るように前記初期ノードに命令するステップと
    をさらに含む、請求項7に記載の方法。
  9. 前記第1のIC内の初期ノードから第2のICにある宛先ノードへのメッセージ要求を受信するステップと、
    前記第1の状態テーブル内の前記宛先ノードに関する情報に基づいて、前記宛先ノードが利用可能であるかどうかを判定するステップと、
    前記宛先ノードが利用可能である場合に、前記メッセージ要求に関連するメッセージを前記バスを介して送るように前記初期ノードに命令するステップと
    をさらに含む、請求項1に記載の方法。
  10. コンピューティングデバイス内のネットワークノードの状態テーブルをデータ設定するための方法であって、
    第1のノードを有する第1の集積回路(IC)をコンピューティングデバイス内のバスに結合するステップと、
    第2のノードを有する第2のICを前記コンピューティングデバイス内の前記バスに結合するステップと、
    前記第1のICに関連する第1のゲートウェイから、前記第1のノードに関する状態および構成情報を受信するステップと、
    前記第1のノードに関する前記状態および構成情報で、前記第2のICに関連する第2のゲートウェイにある状態テーブルをデータ設定するステップと
    を含む方法。
  11. 前記第2のノードに関する第2の状態および構成情報で前記第2のゲートウェイにある前記状態テーブルをデータ設定するステップをさらに含む、請求項10に記載の方法。
  12. 前記第1のノードのうちの1つの状態の変化を示す更新を前記第1のゲートウェイから受信するステップをさらに含む、請求項10に記載の方法。
  13. 前記第1のノードのうちの前記1つの前記状態の前記変化を示す前記更新を用いて前記第2のゲートウェイにある前記状態テーブルを更新するステップをさらに含む、請求項12に記載の方法。
  14. 前記第2のICによって、前記第2のICが前記バスに結合されることに応答して前記第1のノードに関する前記状態および構成情報を要求するステップをさらに含む、請求項10に記載の方法。
  15. コンピューティングデバイス内のネットワークノードの状態テーブルを更新するための方法であって、
    第1の集積回路(IC)内の第1のゲートウェイにおいて、前記第1のIC内の第1のノードから状態変化指示を受信するステップと、
    前記状態変化指示に応答して、前記第1のノードの状態変化を反映するように前記第1のゲートウェイにある第1の状態テーブルを更新するステップと、
    第2のIC内の第2のゲートウェイへのスカウトメッセージを生成するステップであって、前記スカウトメッセージは、前記第1のノードの前記状態変化を示す、生成するステップと
    を含む方法。
  16. コンピューティングデバイス内のネットワークノードの状態テーブルを更新するための方法であって、
    第1の集積回路(IC)内の第1のゲートウェイにおいて、第2のIC内の第2のゲートウェイからスカウトメッセージを受信するステップであって、前記スカウトメッセージは、前記第2のIC内のノードの状態変化を示す、受信するステップと、
    前記スカウトメッセージに応答して、前記ノードの前記状態変化を反映するように前記第1のゲートウェイにある第1の状態テーブルを更新するステップと
    を含む方法。
  17. 送信機および受信機を含むノードと、
    ゲートウェイであって、
    バスに結合され、第1のプロトコルを介してその上で通信するように構成された外部インターフェースと、
    前記ノードに通信可能に結合され、前記第1のプロトコルを介してその間で通信するように構成された内部インターフェースと
    を含むゲートウェイと
    を含む集積回路(IC)。
  18. 前記ノードは、前記ゲートウェイの前記内部インターフェースに直接に結合される、請求項17に記載のIC。
  19. 前記ノードは、ネットワークオンチップ(NoC)を介して前記ゲートウェイの前記内部インターフェースに結合される、請求項17に記載のIC。
  20. 前記ゲートウェイを制御するように構成された制御システムをさらに含む、請求項17に記載のIC。
  21. 前記制御システムは、前記ゲートウェイ内に位置決めされる、請求項20に記載のIC。
  22. 前記制御システムは、前記ゲートウェイの外部にある、請求項20に記載のIC。
  23. 前記ゲートウェイの前記内部インターフェースに結合された複数のノードをさらに含む、請求項20に記載のIC。
  24. 前記制御システムは、前記複数のノードの間でアービトレートするように構成される、請求項23に記載のIC。
  25. 前記制御システムは、前記第1のプロトコルを実行するように構成される、請求項20に記載のIC。
  26. 前記ノードは、前記IC内の第2のノードと通信するように構成される、請求項17に記載のIC。
  27. 前記ノードは、前記ICの外部の第2のノードと通信するように構成される、請求項17に記載のIC。
  28. 前記ノードは、ナビゲーション回路、センサ回路、Always On Processor(AOP)回路、オーディオ回路、およびモデム回路のうちの少なくとも1つとして動作するように構成された回路網を含む、請求項17に記載のIC。
  29. 第1のノードと、
    第2のノードと、
    バスに結合され、前記第1のノードおよび前記第2のノードからの情報を制御するように動作可能になるように構成された外部インターフェースを含むゲートウェイと、
    前記第1のノードおよび前記第2のノードを前記ゲートウェイに通信可能に結合する共通回路網と
    を含む集積回路(IC)。
  30. 第1の送信機および第1の送信機を含む第1のノードと、
    第1のゲートウェイであって、
    第1の外部インターフェースと、
    前記第1のノードに通信可能に結合され、第1のプロトコルを介してその間で通信するように構成された第1の内部インターフェースと
    を含む第1のゲートウェイと
    を含む第1の集積回路(IC)と、
    第2の送信機および第2の送信機を含む第2のノードと、
    第2のゲートウェイであって、
    第2の外部インターフェースと、
    前記第2のノードに通信可能に結合され、前記第1のプロトコルを介してその間で通信するように構成された第2の内部インターフェースと
    を含む第2のゲートウェイと
    を含む第2のICと、
    前記第1のICの前記第1のゲートウェイおよび前記第2のICの前記第2のゲートウェイに結合され、前記第1のプロトコルを使用してその間で信号を搬送するように構成されたバスと
    を含むコンピューティングシステム。
  31. 前記コンピューティングシステムは、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、スマートフォン、タブレット、ファブレット、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、および自動車からなる群から選択されたデバイスである、請求項30に記載のコンピューティングシステム。
  32. ノードと、
    前記ノードに通信可能に結合されたゲートウェイであって、
    バスに結合されるように構成されたインターフェースと、
    前記バスに関連するノードの可用性に関するデータを記憶するように構成されたルックアップテーブルと
    を含むゲートウェイと、
    前記ノードおよび前記ゲートウェイに動作可能に結合された制御システムであって、
    前記ノードの状態に関する状態更新を受信し、
    ノード対ノード通信の間の信頼性を増進するために前記バスに関連する他のゲートウェイに前記ノードの前記状態に関する情報を送る
    ように構成された制御システムと
    を含む集積回路(IC)。
  33. 前記ゲートウェイに通信可能に接続された複数のノードをさらに含む、請求項32に記載のIC。
  34. 前記制御システムは、前記ゲートウェイ内に位置決めされる、請求項32に記載のIC。
  35. 前記制御システムは、前記ゲートウェイの外部に位置決めされる、請求項32に記載のIC。
  36. 前記制御システムは、
    前記ノードからメッセージ要求を受信し、
    前記メッセージ要求からの宛先識別子を前記ルックアップテーブルと比較し、
    前記ルックアップテーブル内の前記データに基づいて受信ノードの可用性を判定する
    ようにさらに構成される、請求項32に記載のIC。
  37. 前記制御システムは、前記受信ノードが前記ルックアップテーブル内の前記データに基づいて利用可能ではないと前記制御システムが判定する場合に、前記ノードからのメッセージの送信を阻むようにさらに構成される、請求項36に記載のIC。
  38. 前記制御システムは、
    前記ノードからメッセージ要求を受信し、
    前記メッセージ要求が信頼性を要求するかどうかを判定し、
    前記メッセージ要求が信頼性を要求しない場合に、前記メッセージ要求に関連するメッセージを第2のノードに送るように前記ノードに命令する
    ようにさらに構成される、請求項32に記載のIC。
  39. 前記制御システムは、
    前記受信ノードのウェイクオンコマンド能力を判定し、
    前記受信ノードにウェイクコマンドを送る
    ようにさらに構成される、請求項36に記載のIC。
  40. 前記受信ノードの前記可用性を判定するように構成された前記制御システムは、前記IC内の受信ノードの可用性を判定する、請求項36に記載のIC。
  41. 前記受信ノードの前記可用性を判定するように構成された前記制御システムは、前記ICの外部に位置決めされた受信ノードの可用性を判定する、請求項36に記載のIC。
  42. 前記制御システムは、前記ICの外部に位置決めされた第2のノードの状態に関するリモート状態更新を受信するようにさらに構成される、請求項32に記載のIC。
  43. ノード対ノード通信を容易にするための方法であって、
    ゲートウェイにおいて、ローカルノードから状態更新を受信するステップと、
    リモートゲートウェイに前記状態更新をブロードキャストするステップと
    を含む方法。
  44. 前記状態更新をブロードキャストするステップは、前記ローカルノードが使用不能であることを前記リモートゲートウェイに知らせるステップを含む、請求項43に記載の方法。
  45. 前記状態更新をブロードキャストするステップは、前記ローカルノードがスリープしていることを前記リモートゲートウェイに知らせるステップを含む、請求項43に記載の方法。
  46. 前記ローカルノードがスリープしていることを前記リモートゲートウェイに知らせるステップは、前記ローカルノードがコマンド時にウェイク可能であることを前記リモートゲートウェイに知らせるステップをさらに含む、請求項45に記載の方法。
  47. リモートゲートウェイから第2の状態更新を受信するステップをさらに含む、請求項43に記載の方法。
  48. 前記第2の状態更新を用いてルックアップテーブルを更新するステップをさらに含む、請求項47に記載の方法。
  49. 前記ローカルノードからメッセージ要求を受信するステップをさらに含む、請求項47に記載の方法。
  50. 前記第2の状態更新が、前記メッセージ要求に関連する宛先ノードが使用不能であったことを示す場合に、前記ローカルノードからメッセージを送ることを阻むステップをさらに含む、請求項49に記載の方法。
  51. システムリセットを強制する方法であって、
    アービトレーションフェーズ中に、アービトレーションに勝つためにゲートウェイから最も緊急の優先順位値をアサートするステップと、
    前記アービトレーションに勝った後に、バスタイムアウトを強制するために前記ゲートウェイからデータを送らないステップと、
    前記バスタイムアウトに応答して、システムリセットを開始するステップと
    を含む方法。
  52. ノード状態と前記ゲートウェイにある状態テーブル内の情報との間のエラーを検出するステップと、
    前記エラーの検出に応答して、前記システムリセットが必要であると判定するステップと
    をさらに含む、請求項51に記載の方法。
  53. 前記最も緊急の優先順位値をアサートするステップは、すべて論理1をアサートするステップを含む、請求項51に記載の方法。
  54. 前記最も緊急の優先順位値をアサートするステップは、すべて論理0をアサートするステップを含む、請求項51に記載の方法。
  55. 前記アービトレーションに勝った後に、前記ゲートウェイからクロック信号を送らないステップをさらに含む、請求項51に記載の方法。
  56. 前記アービトレーションに勝つために前記ゲートウェイから前記最も緊急の優先順位値をアサートするステップは、複数のゲートウェイから同時に前記最も緊急の優先順位値をアサートするステップを含む、請求項51に記載の方法。
  57. 遅いゲートウェイが前記システムリセットを開始する前に前記バスタイムアウトを検出することを可能にするためにタイマを実行させるステップをさらに含む、請求項51に記載の方法。
  58. ゲートウェイであって、
    バスに結合するように構成されたバスインターフェースと、
    アービトレーションフェーズ中に、アービトレーションに勝つために前記バス上で最も緊急の優先順位値をアサートし、
    前記アービトレーションに勝った後に、バスタイムアウトを強制するために前記バス上でデータを送らず、
    前記バスタイムアウトに応答して、システムリセットを開始する
    ように構成された制御システムと
    を含むゲートウェイ
    を含む集積回路(IC)。
JP2018509894A 2015-09-10 2016-08-12 チップ間およびチップ内のノード通信のための統一されたシステムおよび方法 Active JP6845224B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/850,104 US20170075843A1 (en) 2015-09-10 2015-09-10 Unified systems and methods for interchip and intrachip node communication
US14/850,104 2015-09-10
PCT/US2016/046728 WO2017044247A1 (en) 2015-09-10 2016-08-12 Unified systems and methods for interchip and intrachip node communication

Publications (3)

Publication Number Publication Date
JP2018528540A true JP2018528540A (ja) 2018-09-27
JP2018528540A5 JP2018528540A5 (ja) 2019-08-29
JP6845224B2 JP6845224B2 (ja) 2021-03-17

Family

ID=56787712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018509894A Active JP6845224B2 (ja) 2015-09-10 2016-08-12 チップ間およびチップ内のノード通信のための統一されたシステムおよび方法

Country Status (7)

Country Link
US (2) US20170075843A1 (ja)
EP (2) EP4195058B1 (ja)
JP (1) JP6845224B2 (ja)
KR (2) KR102853457B1 (ja)
CN (1) CN108027792B (ja)
BR (1) BR112018004715A2 (ja)
WO (1) WO2017044247A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022239337A1 (ja) * 2021-05-10 2022-11-17 日本たばこ産業株式会社 エアロゾル生成装置の回路ユニット及びエアロゾル生成装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170075843A1 (en) 2015-09-10 2017-03-16 Qualcomm Incorporated Unified systems and methods for interchip and intrachip node communication
US10521392B2 (en) 2017-05-10 2019-12-31 Qualcomm Incorporated Slave master-write/read datagram payload extension
US20190227971A1 (en) * 2018-01-23 2019-07-25 Qualcomm Incorporated Architecture for consolidating multiple sources of low-bandwidth data over a serial bus
US11443713B2 (en) * 2020-01-30 2022-09-13 Apple Inc. Billboard for context information sharing
CN113296479B (zh) * 2020-06-17 2024-07-23 盒马(中国)有限公司 总线入网单元、输送线电气控制系统及部署方法
US11675713B2 (en) * 2021-04-02 2023-06-13 Micron Technology, Inc. Avoiding deadlock with a fabric having multiple systems on chip
CN115460128B (zh) * 2022-11-09 2023-07-07 之江实验室 一种面向多芯粒组合芯片的片上网络仿真系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63211837A (ja) * 1987-02-27 1988-09-02 Hitachi Ltd デ−タ伝送制御方式
JPH0278343A (ja) * 1988-06-20 1990-03-19 Hitachi Ltd 通信制御方式
JP2009021939A (ja) * 2007-07-13 2009-01-29 Oki Electric Ind Co Ltd ノード情報収集システム、ネットワーク装置及びノード
WO2015077562A1 (en) * 2013-11-25 2015-05-28 Qualcomm Incorporated Multipoint interface shortest pulse width priority resolution

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5199106A (en) * 1986-09-19 1993-03-30 International Business Machines Corporation Input output interface controller connecting a synchronous bus to an asynchronous bus and methods for performing operations on the bus
US6157967A (en) 1992-12-17 2000-12-05 Tandem Computer Incorporated Method of data communication flow control in a data processing system using busy/ready commands
US6247161B1 (en) 1997-01-16 2001-06-12 Advanced Micro Devices, Inc. Dynamically configured on-chip communications paths based on statistical analysis
US6173350B1 (en) * 1997-10-17 2001-01-09 Eveready Battery Company Inc. System and method for writing data to a serial bus from a smart battery
US6714994B1 (en) 1998-12-23 2004-03-30 Advanced Micro Devices, Inc. Host bridge translating non-coherent packets from non-coherent link to coherent packets on conherent link and vice versa
US6791949B1 (en) * 2000-04-28 2004-09-14 Raytheon Company Network protocol for wireless ad hoc networks
JP2002051055A (ja) * 2000-08-04 2002-02-15 Sony Corp 通信制御方法、通信システム及び通信装置
US7191271B2 (en) * 2001-09-20 2007-03-13 Lockheed Martin Corporation Two level multi-tier system bus
US7484118B2 (en) 2003-12-16 2009-01-27 International Business Machines Corporation Multi nodal computer system and method for handling check stops in the multi nodal computer system
US7409473B2 (en) 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
US7751850B2 (en) 2005-09-01 2010-07-06 Broadcom Corporation Single chip multimode baseband processing circuitry with a shared radio interface
US7464225B2 (en) 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US20070109015A1 (en) * 2005-11-15 2007-05-17 Alcatel Switched integrated circuit connection architectures and techniques
US8189573B2 (en) * 2005-12-22 2012-05-29 Intel Corporation Method and apparatus for configuring at least one port in a switch to be an upstream port or a downstream port
US7945721B1 (en) * 2006-08-11 2011-05-17 Oracle America, Inc. Flexible control and/or status register configuration
US9009350B2 (en) 2008-04-01 2015-04-14 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US8140835B2 (en) 2008-05-09 2012-03-20 International Business Machines Corporation Updating a basic input/output system (‘BIOS’) boot block security module in compute nodes of a multinode computer
US20090307408A1 (en) 2008-06-09 2009-12-10 Rowan Nigel Naylor Peer-to-Peer Embedded System Communication Method and Apparatus
US20100158005A1 (en) 2008-12-23 2010-06-24 Suvhasis Mukhopadhyay System-On-a-Chip and Multi-Chip Systems Supporting Advanced Telecommunication Functions
EP2339795B1 (en) 2009-12-07 2013-08-14 STMicroelectronics (Research & Development) Limited Inter-chip communication interface for a multi-chip package
US8359367B2 (en) 2010-01-08 2013-01-22 International Business Machines Corporation Network support for system initiated checkpoints
US20120166621A1 (en) 2010-12-23 2012-06-28 Anish Sharma Sharing the Status of S-CSCF Nodes Across I-CSCF Nodes in a Communications Network
US8824295B2 (en) 2011-12-30 2014-09-02 Qualcomm Technologies, Inc. Link between chips using virtual channels and credit based flow control
TW201346572A (zh) 2012-01-27 2013-11-16 Marvell World Trade Ltd 發送器設備及發送器系統
WO2013177665A1 (en) * 2012-06-01 2013-12-05 Research In Motion Limited Universal synchronization engine based on probabilistic methods for guarantee of lock in multiformat audio systems
US20130339091A1 (en) * 2012-06-15 2013-12-19 Anthony W. Humay Intelligent social polling platform
CN103838698A (zh) * 2012-11-27 2014-06-04 鸿富锦精密工业(深圳)有限公司 I2c总线架构及设备可用性查询方法
US9152598B2 (en) 2012-11-28 2015-10-06 Atmel Corporation Connecting multiple slave devices to a single master controller in bus system
US20150120826A1 (en) 2013-10-28 2015-04-30 Bernd Gauweiler Node control in a distributed peer-to-peer network
US20170075843A1 (en) 2015-09-10 2017-03-16 Qualcomm Incorporated Unified systems and methods for interchip and intrachip node communication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63211837A (ja) * 1987-02-27 1988-09-02 Hitachi Ltd デ−タ伝送制御方式
JPH0278343A (ja) * 1988-06-20 1990-03-19 Hitachi Ltd 通信制御方式
JP2009021939A (ja) * 2007-07-13 2009-01-29 Oki Electric Ind Co Ltd ノード情報収集システム、ネットワーク装置及びノード
WO2015077562A1 (en) * 2013-11-25 2015-05-28 Qualcomm Incorporated Multipoint interface shortest pulse width priority resolution

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022239337A1 (ja) * 2021-05-10 2022-11-17 日本たばこ産業株式会社 エアロゾル生成装置の回路ユニット及びエアロゾル生成装置

Also Published As

Publication number Publication date
EP3347823A1 (en) 2018-07-18
CN108027792A (zh) 2018-05-11
JP6845224B2 (ja) 2021-03-17
US20210326290A1 (en) 2021-10-21
EP4195058A1 (en) 2023-06-14
WO2017044247A1 (en) 2017-03-16
KR102853457B1 (ko) 2025-09-01
KR20240108580A (ko) 2024-07-09
US20170075843A1 (en) 2017-03-16
US11720512B2 (en) 2023-08-08
CN108027792B (zh) 2021-08-20
KR20180050727A (ko) 2018-05-15
KR102704511B1 (ko) 2024-09-06
BR112018004715A2 (pt) 2018-09-25
EP4195058B1 (en) 2024-07-03
EP4195058C0 (en) 2024-07-03

Similar Documents

Publication Publication Date Title
US11720512B2 (en) Unified systems and methods for interchip and intrachip node communication
CN106970886B (zh) 使用第二协议的扩展功能结构来控制第一协议的物理链路
CN104285426B (zh) 给加载/存储通信协议提供低功率物理单元
US10838898B2 (en) Bit-interleaved bi-directional transmissions on a multi-drop bus for time-critical data exchange
US20050097378A1 (en) Method and system for power management in a gigabit Ethernet chip
US20140068135A1 (en) Providing A Consolidated Sideband Communication Channel Between Devices
CN108885602A (zh) 多协议i3c共用命令码
US10579549B2 (en) Staggered transmissions on a multi-drop half-duplex bus
CN112639753B (zh) 聚合带内中断
CN104350720B (zh) 提供用于双向串行互连的串行协议的装置、方法和系统
TWI512449B (zh) 用於減少嵌入式系統中耗電量之方法與裝置
CN105051706A (zh) 用于具有pcie协议栈的低功率phy的操作的设备、方法和系统
US11520729B2 (en) I2C bus architecture using shared clock and dedicated data lines
CN107092335B (zh) 优化的链路训练及管理机制
US12317131B2 (en) Multi-protocol communication network
US10733121B2 (en) Latency optimized I3C virtual GPIO with configurable operating mode and device skip
KR20170134434A (ko) 멀티-포트 물리 계층 (phy) 에 대한 위상 록킹 루프 (pll) 의 공유된 제어

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190718

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200928

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: 20210201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210225

R150 Certificate of patent or registration of utility model

Ref document number: 6845224

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250