(57)【要約】      （修正有）【課題】２つのクロックドメインのクロック信号の位相および周波数の少なくとも一方がずれている２つのクロックドメイン間で信号を伝送するための装置および方法を提供する。【解決手段】装置は、第１のクロックドメイン内に、主信号および第１のチェック信号のそれぞれを受信するための第１の主インタフェースおよび第１の冗長インタフェースを含み、第２のクロックドメイン内に、主信号および第２の冗長信号のそれぞれを出力するための第２の主インタフェースおよび第２の冗長インタフェースを含む。主信号とチェック信号は、所定の時間遅延だけ離され、第２のチェック信号は、主信号に基づいて第２のクロックドメインで生成される。２つのチェック信号に基づいてエラーチェック手順を実行し、第２のチェック信号を第２の冗長インタフェースに提供するチェック回路が第２のクロックドメインに設けられる。【選択図】図３
2020035419.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
第１のクロックドメインで動作する第１の部分と、第２のクロックドメインで動作する第２の部分とを備え、
前記第１の部分が、第１の主インタフェースおよび第１の冗長インタフェースを備え、前記第１の主インタフェースが、主信号を受信するように構成されており、前記第１の冗長インタフェースが、第１のチェック信号を受信するように構成されており、前記第１のチェック信号と前記主信号が、所定の時間遅延だけ離され、
前記第２の部分が、第２の主インタフェースおよび第２の冗長インタフェースを備え、前記第２の主インタフェースが、前記主信号を出力するように構成されており、前記第２の冗長インタフェースが、第２のチェック信号を出力するように構成されており、
前記装置が、前記第２のクロックドメイン内にチェック回路を備え、前記チェック回路が、
前記主信号に基づいて前記第２のチェック信号を生成し、
前記第１のチェック信号および前記第２のチェック信号に基づいてエラーチェック手順を実行し、
前記主信号が前記第２の主インタフェースに供給されてから前記所定の時間遅延の後に前記第２のチェック信号を前記第２の冗長インタフェースに供給する
ように構成されている装置。
【請求項２】
前記第２の主インタフェースおよび前記第２の冗長インタフェースが、独立した同期クロックで動作するように構成されている、請求項１に記載の装置。
【請求項３】
前記第１のチェック信号を記憶するように構成された、前記第１のクロックドメイン内の遅延バッファを備え、
前記チェック回路が、前記第２のチェック信号を記憶するように構成された比較バッファと、前記エラーチェック手順を実行するように構成された比較回路とを備える、
請求項１に記載の装置。
【請求項４】
前記遅延バッファが、前記第２のチェック信号が前記第１のチェック信号との比較に利用可能であることを示す、前記比較バッファからの信号に応答して前記第１のチェック信号を出力するように構成されている、請求項３に記載の装置。
【請求項５】
前記比較バッファが、前記比較バッファ内のすべてのエントリが利用不可能であるときにフル信号を生成するように構成されている、請求項３に記載の装置。
【請求項６】
前記比較バッファが、少なくとも２つのエントリを含む、請求項３に記載の装置。
【請求項７】
前記チェック回路が、前記主信号をコピーすることによって前記第２のチェック信号を生成するように構成されている、請求項１に記載の装置。
【請求項８】
前記第２のチェック信号が、前記主信号に基づいて前記チェック回路によって計算されるエラーチェックコードを含み、前記第２のチェック信号が、前記第２のチェック信号を生成するために使用される前記主信号の部分より少ないビットを有する、請求項１に記載の装置。
【請求項９】
前記主信号が、データ伝送またはメモリアクセス要求を含む、請求項１に記載の装置。
【請求項１０】
下流バッファから上流バッファにクレジットリターン信号を伝送するためのクレジットリターン経路を備え、前記上流バッファからのデータ伝送の伝送タイミングを制御するための前記クレジットリターン信号が、前記下流バッファの予期占有率に依存する、請求項１記載の装置。
【請求項１１】
前記主信号が、前記クレジットリターン信号を含む、請求項１０に記載の装置。
【請求項１２】
前記クレジットリターン経路が、前記第２のクロックドメインから前記第１のクロックドメインに前記クレジットリターン信号を伝送するように構成されている、請求項１０に記載の装置。
【請求項１３】
前記クレジットリターン信号が、第１のクレジットリターン信号識別子を含み、
前記装置が、前記第２のクロックドメインから前記第１のクロックドメインに第２のクレジットリターン信号識別子を含む冗長クレジットリターン信号を伝送するように構成された冗長クレジットリターン経路と、前記クレジットリターン信号または前記冗長クレジットリターン信号の伝送におけるエラーを検出するために前記第１のクレジットリターン信号識別子と前記第２のクレジットリターン信号識別子とを比較する、前記第１のクロックドメイン内のクレジット比較器とを備える、請求項１２に記載の装置。
【請求項１４】
前記クレジット信号リターン識別子が、利用可能になった、前記下流バッファ内のエントリのエントリ識別子を含む、請求項１３に記載の装置。
【請求項１５】
前記第１のクロックドメインから前記第２のクロックドメインに前記主信号を伝送するように構成された主クロックドメインブリッジと、前記第１のクロックドメインから前記第２のクロックドメインに前記第１のチェック信号を伝送するように構成された冗長クロックドメインブリッジとを備える、請求項１に記載の装置。
【請求項１６】
前記エラーチェック手順が、前記第１のチェック信号と前記第２のチェック信号とを比較し、前記第１のチェック信号と前記第２のチェック信号が異なるときにエラー指示を返すことを含む、請求項１に記載の装置。
【請求項１７】
第１のクロックドメインで動作する第１の部分と第２のクロックドメインで動作する第２の部分との間で主信号を伝送するための方法であって、前記方法が、
前記第１の部分の第１の主インタフェースで主信号を受信し、前記第１の部分の第１の冗長インタフェースで第１のチェック信号を受信するステップであって、前記第１のチェック信号と前記主信号が、所定の時間遅延だけ離されているステップと、
前記第２の部分の第２の主インタフェースで前記主信号を出力し、前記第２の部分の第２の冗長インタフェースで第２のチェック信号を出力するステップであって、前記第２のクロックドメイン内のチェック回路が、
前記主信号に基づいて前記第２のチェック信号を生成し、
前記第１のチェック信号および前記第２のチェック信号に基づいてエラーチェック手順を実行し、
前記主信号が前記第２の主インタフェースに供給されてから前記所定の時間遅延の後に前記第２のチェック信号を前記第２の冗長インタフェースに供給する
ように構成されているステップと
を含む方法。
【請求項１８】
請求項１に記載の装置の設計を表す電子設計ファイルを記憶した非一時的記憶媒体。
【請求項１９】
集積回路の複数のノード間でデータ伝送を実現するための相互接続ネットワークの設計を表す電子設計ファイルを生成するコンピュータ実施方法であって、前記方法が、
前記複数のノードが、第１のクロックドメインで動作する第１のノードと第２のクロックドメインで動作する第２のノードとを含むことの特定に応答して、前記相互接続ネットワークがクロックドメインクロッシングを備えることを指定する前記電子設計ファイルを生成するステップであって、前記クロックドメインクロッシングが、
前記第１のクロックドメインで動作する第１の部分と、前記第２のクロックドメインで動作する第２の部分とを備え、
前記第１の部分が、第１の主インタフェースおよび第１の冗長インタフェースを備え、前記第１の主インタフェースが、主信号を受信するように構成されており、前記第１の冗長インタフェースが、第１のチェック信号を受信するように構成されており、前記第１のチェック信号と前記主信号が、所定の時間遅延だけ離され、
前記第２の部分が、第２の主インタフェースおよび第２の冗長インタフェースを備え、前記第２の主インタフェースが、前記主信号を出力するように構成されており、前記第２の冗長インタフェースが、第２のチェック信号を出力するように構成されており、
前記装置が、前記第２のクロックドメイン内にチェック回路を備え、前記チェック回路が、
前記主信号に基づいて前記第２のチェック信号を生成し、
前記第１のチェック信号および前記第２のチェック信号に基づいてエラーチェック手順を実行し、
前記主信号が前記第２の主インタフェースに供給されてから前記所定の時間遅延の後に前記第２のチェック信号を前記第２の冗長インタフェースに供給する
ように構成されているステップを含むコンピュータ実施方法。
【請求項２０】
請求項１９に記載の方法を実行するようにデータ処理装置を制御するためのコンピュータプログラムを記憶した非一時的記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、集積回路の分野に関する。より具体的には、本技術は、クロックドメイン間の信号の伝送に関する。
【背景技術】
【０００２】
集積回路は、クロック信号の位相および／または周波数がずれているクロック信号に従って動作する異なるクロックドメインを有する場合がある。これは、クロックドメイン境界を越えてクロック信号を伝送することをより複雑にし得る。
【発明の概要】
【０００３】
一観点から見ると、本技術は、装置であって、
第１のクロックドメインで動作する第１の部分と、第２のクロックドメインで動作する第２の部分とを備え、
第１の部分が、第１の主インタフェースおよび第１の冗長インタフェースを備え、第１の主インタフェースが、主信号を受信するように構成されており、第１の冗長インタフェースが、第１のチェック信号を受信するように構成されており、第１のチェック信号と主信号が、所定の時間遅延だけ離され、
第２の部分が、第２の主インタフェースおよび第２の冗長インタフェースを備え、第２の主インタフェースが、主信号を出力するように構成されており、第２の冗長インタフェースが、第２のチェック信号を出力するように構成されており、
装置が、第２のクロックドメイン内にチェック回路を備え、チェック回路が、
主信号に基づいて第２のチェック信号を生成し、
第１のチェック信号および第２のチェック信号に基づいてエラーチェック手順を実行し、
主信号が第２の主インタフェースに供給されてから所定の時間遅延の後に第２のチェック信号を第２の冗長インタフェースに供給する
ように構成されている装置を提供する。
【０００４】
別の観点から見ると、本技術は、第１のクロックドメインで動作する第１の部分と第２のクロックドメインで動作する第２の部分との間で主信号を伝送するための方法であって、方法が、
第１の部分の第１の主インタフェースで主信号を受信し、第１の部分の第１の冗長インタフェースで第１のチェック信号を受信するステップであって、第１のチェック信号と主信号が、所定の時間遅延だけ離されているステップと、
第２の部分の第２の主インタフェースで主信号を出力し、第２の部分の第２の冗長インタフェースで第２のチェック信号を出力するステップであって、第２のクロックドメイン内のチェック回路が、
主信号に基づいて第２のチェック信号を生成し、
第１のチェック信号および第２のチェック信号に基づいてエラーチェック手順を実行し、
主信号が第２の主インタフェースに供給されてから所定の時間遅延の後に第２のチェック信号を第２の冗長インタフェースに供給する
ように構成されているステップと
を含む方法を提供する。
【０００５】
さらなる観点から見ると、本技術は、集積回路の複数のノード間でデータ伝送を実現するための相互接続ネットワークの設計を表す電子設計ファイルを生成するコンピュータ実施方法であって、方法が、
複数のノードが、第１のクロックドメインで動作する第１のノードと第２のクロックドメインで動作する第２のノードとを含むことの特定に応答して、相互接続ネットワークがクロックドメインクロッシングを備えることを指定する電子設計ファイルを生成するステップであって、クロックドメインクロッシングが、
第１のクロックドメインで動作する第１の部分と、第２のクロックドメインで動作する第２の部分とを備え、
第１の部分が、第１の主インタフェースおよび第１の冗長インタフェースを備え、第１の主インタフェースが、主信号を受信するように構成されており、第１の冗長インタフェースが、第１のチェック信号を受信するように構成されており、第１のチェック信号と主信号が、所定の時間遅延だけ離され、
第２の部分が、第２の主インタフェースおよび第２の冗長インタフェースを備え、第２の主インタフェースが、主信号を出力するように構成されており、第２の冗長インタフェースが、第２のチェック信号を出力するように構成されており、
装置が、第２のクロックドメイン内にチェック回路を備え、チェック回路が、
主信号に基づいて第２のチェック信号を生成し、
第１のチェック信号および第２のチェック信号に基づいてエラーチェック手順を実行し、
主信号が第２の主インタフェースに供給されてから所定の時間遅延の後に第２のチェック信号を第２の冗長インタフェースに供給する
ように構成されているステップを含むコンピュータ実施方法を提供する。
【０００６】
本技術のさらなる態様、特徴、および利点は、添付の図面と併せて読まれるべきである以下の例の説明から明らかになろう。
【図面の簡単な説明】
【０００７】
【図１】少なくとも１つの相互接続部を有するデータ処理システムの例を示す。
【図２】図１の例のシステム相互接続部として機能するネットワークオンチップの例を示す。
【図３】クロックドメインクロッシングの例を示す。
【図４】クロックドメインクロッシングのさらなる例を示す。
【図５】クロックドメイン境界を越えて信号を伝送するためのシステムの例を示す。
【図６】クロックドメイン境界を越えて信号を伝送するためのシステムのさらなる例を示す。
【図７】異なるクロック周波数または位相を有するクロックドメイン間で信号を伝送する方法を示す流れ図である。
【図８】相互接続部の設計を表す電子設計ファイルを生成する方法を示す流れ図である。
【図９】相互接続ネットワークを含む集積回路の設計および製造を概略的に示す。
【発明を実施するための形態】
【０００８】
集積回路の機能的安全性は、ロックステップでコンポーネントを動作させることによって向上させることができ、その場合、コンポーネントは、主コンポーネント間で送信される信号と、冗長コンポーネント間で送信される対応する信号との間の固定時間遅延を用いて冗長的に動作され、エラーをチェックするために主信号および冗長チェック信号は複製されて互いに比較される。主コンポーネントと冗長コンポーネントとの間の固定された時間的遅延はゼロであってもゼロでなくてもよい。ゼロでない遅延は、エラーに対するロバスト性を向上させることができる。なぜなら、主信号にエラーを発生させる、特定の時間のイベントがチェック信号にも同じエラーを発生させるまたはその逆である可能性は低いからである。しかしながら、場合によっては、固定時間遅延がゼロであっても、一部の用途に必要な機能的安全性の一部の等級に準拠するのに十分なエラー検出率を実現することができる。
【０００９】
しかしながら、このような安全機能を複数のクロックドメインを有するシステムで実施することは困難であり得る。これらのシステムでは、「クロックドメイン」は、単一のクロック信号を使用するコンポーネントの集合であり得るものであり、異なるクロック周波数および／または位相を有するクロックを使用し得る２つのクロックドメイン間の境界は、クロックドメイン境界と呼ばれる。実際、一部の例では、集積回路内に冗長論理を実装することが原因でクロックドメインクロッシングが必要になり、追加の冗長コンポーネントが原因で回路の面積が増大するため、回路の所与の部分をカバーするために必要なクロックドメインのサイズを単一のクロック信号で維持することは実際的ではなくなり得る。したがって、異なる部分が同じ周波数で動作するように意図されていたとしても、それらは、それにもかかわらず異なる位相クロックを有する場合がある。
【００１０】
いずれの場合も、主信号および対応するチェック信号（冗長信号）が、クロックドメインクロッシングを介してクロックドメイン境界を越えて伝送されるとき、元の信号と、チェックのためのその冗長対応物との間の固定された時間的遅延を維持することはより困難であり得る。このため、第２のクロックドメインのロックステップメカニズムはそれほど有効ではなくなる。なぜなら、第１のドメインからの伝送に対して第２のドメインで信号がサンプリングされるタイミングの不確実性により、主信号と正しい冗長信号との信頼できる比較を行うことがより困難になり得るからである。
【００１１】
複数のクロックドメインを有する集積回路では、第１のクロックドメインと第２のクロックドメインとの間でクロック周波数、クロック位相、またはこれら両方がずれている場合にこれら２つのクロックドメイン間で信号を伝送するためにクロックドメインクロッシング（ＣＤＣ）を設けることができる。一部の例では、第１のクロックドメインおよび第２のクロックドメイン内のクロック信号は互いに独立して生成される。他の例では、両方のクロック信号を共通のクロック信号から生成することが可能であり、この場合、クロックツリー（単一の共通クロック信号から生じる一群のクロック信号）の実用的な実現により、信号の一方または両方は、位相または周波数のいずれかがそれらの間で異なるように変更されることになる。
【００１２】
装置（例えば、集積回路のためのＣＤＣ）は、信号を受信する、第１のクロックドメイン内の第１の部分と、信号を出力する、第２のクロックドメイン内の第２の部分とを含むことができる。本技術の第１の例示的な構成によれば、第１の部分には、第１の主インタフェースおよび第１の冗長インタフェースがある。第１の主インタフェースは、主信号を受信するように構成され、第１の冗長インタフェースは、第１のチェック信号を受信するように構成される。第１のチェック信号は、主信号が受信されてから所定の時間遅延の後に受信され、例えば、遅延は、第１のクロックドメインおよび第２のクロックドメイン内で実施されるロックステップ冗長メカニズムに従って選択される。第１のチェック信号は、主信号に冗長性を提供し、主信号またはチェック信号自体のいずれかの障害を特定するために集積回路のさらに下流で主コンポーネントと比較することができる。
【００１３】
第２の部分には、第２の主インタフェースおよび第２の冗長インタフェースがある。第２の主インタフェースは、主信号が下流コンポーネントによって使用され得るように主信号を出力するよう構成され、第２の冗長インタフェースは、主信号またはチェック信号自体のいずれかのエラーをチェックするために下流コンポーネントによって使用される第２のチェック信号を出力するように構成される。
【００１４】
また、第２のクロックドメインには、主信号がクロックドメイン境界を越えた後に主信号に基づいて第２のチェック信号を生成するように構成されたチェック回路がある。チェック回路はまた、第１の冗長インタフェースから第１のチェック信号を受信し、第１のチェック信号または主信号のいずれかに１つ以上のエラーが存在するかどうかを判定するために第１のエラーチェック信号および第２のエラーチェック信号に基づいてエラーチェック手順を実行する。第２のエラーチェック信号は、所定の時間遅延に等しい時間遅延の後に第２の冗長インタフェースに提供される。所定の時間遅延は、一部の例ではゼロである所定の時間遅延を含む任意の適切な期間とすることができることが理解されよう。
【００１５】
したがって、下流クロックドメインでロックステップメカニズムに使用される固定時間遅延は、チェック回路において主信号から第２のチェック信号を生成し、主信号と第２のチェックとの間に予期された時間遅延を導入することによって第２のクロックドメインで再現される。これにより、クロックドメイン境界が、第１のクロックドメインから受信される信号のサンプリングタイミングの不確実性の原因になったとしても、第２のクロックドメイン内の下流回路には、予期された時間遅延によって離された主信号および（第２の）チェック信号を提供することが可能になる。したがって、ロックステップエラーチェックメカニズムは、クロックドメイン境界を越える信号において実施することができ、これにより、システムの機能的安全性が向上する。
【００１６】
しかしながら、この手法は直観に反する。なぜなら、第２のチェック信号が、クロックドメイン境界を越えた後の主信号に存在するエラーを潜在的に含み、したがって、エラーを下流コンポーネントによって特定することが妨げられるからである。しかしながら、第１のチェック信号および第２のチェック信号に基づいてエラーチェック手順を実行することによって、チェック回路は、いずれかのチェック信号に存在するエラーを特定することができる。したがって、第１のクロックドメインにおいて主信号または第１のチェック信号の伝送中にエラーが発生したかどうかの指示を提供することができる。エラーが検出された場合、障害処理応答（データの再伝送の要求など）をトリガすることができる。
【００１７】
一部の例では、第２の主インタフェースおよび第２の冗長インタフェースは、独立した同期クロックで動作するように構成され、つまり、第２の主インタフェースおよび第２の冗長インタフェースは、独立したクロック信号を使用して動作するが、これら２つのクロック信号の周波数および位相は同じである。これは、独立した同期クロックで同様に動作することができる第１の主インタフェースおよび第１の冗長インタフェースにも当てはまる（ただし、第１の主／冗長インタフェースに使用されるクロックは、第２の主／冗長インタフェースに使用されるクロックと同期しない）。これにより、主信号とチェック信号との間の遅延を主／冗長インタフェースで維持することが可能になる。なぜなら、遅延が、２つの信号間のクロックサイクルの数に基づき、所与のクロックドメイン内の主／冗長インタフェースの両方が同期クロックで動作するからである。
【００１８】
装置（ＣＤＣ）はまた、第１のクロックドメイン内の遅延バッファおよび第２のクロックドメイン内のチェック回路内の比較バッファを含むことができ、遅延バッファは、第１のチェック信号を記憶するように構成され、比較バッファは、第２のチェック信号を記憶するように構成される。チェック回路は、エラーチェック手順を実行する比較回路も含む。遅延バッファおよび比較バッファはそれぞれ、それぞれのチェック信号を比較回路に送る前にそれぞれのチェック信号を記憶するように構成される。これらのバッファは、比較のために比較回路に信号を供給するタイミングを、第１のドメインにおける信号に対して第２のドメインにおいて信号がサンプリングされる相対的なタイミングから切り離すことを可能にし、対応する信号をドメイン境界を越えて互いに比較することができるようにする。
【００１９】
比較回路は、例えば、２つのチェック信号の比較を実行し、それらの間に不一致がある場合にエラー処理応答をトリガすることによって、障害に関してチェック信号をチェックすることができるメカニズムを提供する。比較回路は、２つのチェック信号の比較を実行するように構成された任意の回路または論理とすることができる。一部の例では、遅延バッファおよび比較バッファは、先入れ先出し（ＦＩＦＯ）バッファであり、遅延バッファは、トランスペアレントＦＩＦＯ（場合によってはスキッドＦＩＦＯとして知られる）とすることができ、比較バッファは、比較ＦＩＦＯとすることができる。また、他の形態のバッファが使用されてもよい。
【００２０】
遅延バッファは、第２のチェック信号が第１のチェック信号との比較に利用可能であることを示す信号が比較バッファから受信されるまで第１のチェック信号を記憶するように構成することができ、遅延バッファは、比較バッファからの信号に応答して第１のチェック信号を出力する。これにより、２つのエラー信号のうちの一方のみが提供されることに起因して比較回路が早まって障害を特定することがないことが保証される。なお、これは、２つのクロックドメインの位相および／もしくは周波数間の不一致に起因して、または伝送において特定の信号が失われることになり得る、データ伝送中に発生する何らかの形の制御エラー（信号がルーティングされる場所を制御する制御信号に発生するエラーなど）に起因して発生し得る。
【００２１】
一部の例では、比較バッファは、比較バッファ内のすべてのエントリが利用不可能である（例えば、すべてのエントリが比較を待つ信号で占有されている）ときに「フル」信号を生成して出力するように構成される。場合によっては、フル信号は、エラー処理応答をトリガし、エラー処理応答は、チェック回路によるエラーチェック手順の実行の阻止、データの下流伝送の阻止、および／または安全な状態からシステムを再起動する役割を果たす別のシステムコンポーネントへのエラーのシグナリングなどを含み得る。一部の例では、利用可能なエントリがないとき、遅延バッファもフル信号を生成する。このようにして、さらなる信号を収容するためのスペースがバッファにない可能性があるため、システムは、さらなる信号の安全な伝送を保証できないことをシグナリングするように、フルである比較バッファに応答する。
【００２２】
一部の例では、比較バッファは、少なくとも２つのエントリを含む。多くの場合、２エントリバッファは、クロック境界を越える安全な伝送を可能にするのに十分であり得る。なぜなら、第１のドメインのクロックに対する第２のドメインのサンプリング時間の不確実性は、第２のクロック信号の隣接する２つのクロックサイクルのうちの一方に限定され得るので、比較バッファに記憶されたチェック信号は、たいていの場合、第２のドメインにおける受信の２つのクロックサイクル内で使用され得るからである。２エントリバッファを使用すると、比較バッファを不必要に大きくしなくて済み、その結果、集積回路内の回路面積が節約される。しかしながら、他の例では、チェック信号は、２つのクロックサイクル内で使用することができず、その場合、比較バッファ内に２つより多くのエントリを設けることが好適である。遅延バッファについても同様に考えることができ、遅延バッファも、正確に２つのエントリを含むか、または２つより多くのエントリを含むように設計することができる。
【００２３】
一部の例では、第２のチェック信号は、クロックドメイン境界を越えた後の主信号をコピーすることによってチェック回路によって生成される。したがって、主信号は完全に複製され、チェック信号において完全な冗長性が提供される。これにより、主信号と第２のチェック信号とを比較し、それらの間の不一致を特定することによって下流コンポーネントでエラーを簡単に特定することが可能になる。
【００２４】
一部の例では、第２のチェック信号は、チェック回路によって、主信号の部分に基づいてエラーチェックコードとして生成され、エラーチェックコードは、それを生成する際に使用された主信号の部分より少ないビットを含む。エラーチェックコードは、例えば巡回冗長チェックもしくは暗号ハッシュ関数などのハッシュ関数、チェックサム、または他の任意の形式のエラーチェック手順を含む任意のエラー検出方式を使用して生成することができる。使用することができるエラーチェックコードの例として、ＥＣＣ（エラー訂正コード）、ＤＥＤ（二重エラー検出コード）、およびＳＥＣＤＥＤ（単一エラー訂正二重エラー検出）コードも挙げられる。エラーチェックコードが導出される主信号の部分は、一部の例では主信号のビットのすべてであり、他の例では主信号のビットのサブセットのみである。エラーチェックコードを計算するために使用されるビットのサブセットは、他のビットに対する一部のビットの相対的な重要性に基づいて決定されてもよい（例えば、主信号の一部のビットにおけるエラーは、他のビットに対するエラーより損害が少ない場合があるため、他のビットがエラーからのより一層の保護を必要とする場合があり得る）。代わりに、ビットのサブセットは、ランダムに選択されてもよいし、あるいは常に同じビットのサブセット（例えば、常にビット０から４または常にビット５から８）であってもよい。あるいは、主信号の一部のビットは、他の安全メカニズムによって既に保護されており、したがってエラーチェックコードに含めるために選択されない場合がある。
【００２５】
同様に、第１のクロックドメイン内の上流回路から受信される第１のチェック信号は、主信号の完全に複製されたバージョン、または主信号の部分に基づくエラーチェックコードのいずれかであり得る。
【００２６】
上記のような主信号はデータ伝送であり得る。データ伝送は、上流のマスタデバイスから下流のメモリコンポーネントもしくは周辺機器に送信される、読み出されるもしくは書き込まれるアドレス指定可能な場所のアドレスを指定するメモリアクセス要求であり得るか、または下流コンポーネントから上流のマスタデバイスへのもう一方の方向に送信される、このようなメモリアクセス要求に対する応答であり得る。データ伝送の別の例は、コヒーレンシメッセージ、または必ずしも応答を必要としなくてもよい他のタイプのトランザクションである。特に、上で説明したように従来のエラー保護方式が有効ではあり得ない場合にクロックドメイン境界を越えるとき、集積チップ内の上流コンポーネントと下流コンポーネントとの間のデータ伝送をエラーから保護することがしばしば望ましい。したがって、本技術をこのようなデータ伝送に適用することは好適である。データ伝送は、通常、システム内またはシステム外の記憶場所に記憶され、システム内のコンポーネントによって計算に使用され、またはシステムによって出力される、システム内のコンポーネント間で送られる複数のデータビットのストリングである。
【００２７】
下流バッファの予期占有率に応じて、上流バッファからのデータ伝送の伝送タイミングを制御するために、下流バッファから上流バッファにクレジットリターン信号を伝送することは有用であり得る。このような上流／下流バッファは装置（ＣＤＣ）自体の内部になくてもよく、集積回路の別の部分にあってもよいことに留意されたい。例えば、下流バッファは、メモリコントローラなどのメモリシステムコンポーネント内のバッファとすることができ、上流コンポーネントは、キャッシュコントローラの一部、コヒーレント相互接続部、またはＣＤＣを含む相互接続ネットワークのための入力ポートとすることができる。上記の装置は、クレジットリターン信号を伝送するためにクレジットリターン経路を含むことができ、クレジットリターン経路は、システムが、下流バッファ内にデータのための十分なスペースがあるときにのみデータ伝送が伝送されることを保証することを可能にする。
【００２８】
クレジットリターン信号は、上流バッファ内のクレジットプールをインクリメントまたはデクリメントすることによってデータ伝送のタイミングを制御することができる。例えば、上流バッファが、伝送が下流バッファに送信されるたびにカウンタをインクリメントするように構成されている場合、上流バッファは、カウンタがあるしきい値に達したときに下流へのデータ伝送の送信を停止するように構成することができる。クレジットリターン信号は、バッファ内のスペースが利用可能になったときに下流バッファによって上流に伝送され、上流バッファ内のカウンタの一回のデクリメントをトリガすることができる。したがって、上流バッファは、下流バッファ内で利用可能であると予期されるスペースを動的に追跡し続け、これにより、下流に十分なスペースがあるときにのみデータ伝送が送信される。
【００２９】
装置がクレジットリターン経路を含む例では、上述の主信号は、クレジットリターン信号であり得る。したがって、クレジットリターン信号は、上記の方法でエラーから保護することができる。
【００３０】
あるいは、主信号がデータ伝送である場合、装置は、それでもクレジットリターン経路を含むことができ、クレジットリターン経路も、それがクロックドメイン境界を越えるときにロックステップエラー検出方式に従うことができる。この場合、反対方向（下流への方向ではなく上流への方向）でも、同様の装置をクレジットリターン経路に適用することができる。これにより、両方の信号がクロックドメイン境界を越えるときにも、ロックステップの冗長性を使用してデータ伝送とクレジットリターン信号の両方をエラーから保護することが可能になる。
【００３１】
上記のクレジットリターン経路は、第２のクロックドメインから第１のクロックドメインにクレジットリターン信号を伝送することができる。言い換えれば、第２のクロックドメインは、下流クロックドメインであり、第１のドメインは、上流クロックドメインであり、クレジットリターン信号は、下流クロックドメインから上流クロックドメインに伝送される。
【００３２】
クレジットリターン信号はまた、一部の例では、クレジットリターン信号を一意に識別する１つ以上のビットとすることができる第１のクレジットリターン信号識別子を含むことができる。装置（ＣＤＣ）はまた、第２のクレジットリターン信号識別子を含む冗長クレジットリターン信号を伝送するための冗長クレジットリターン経路を含むことができる。冗長クレジットリターン信号は、元のクレジットリターン信号に基づいて生成され、一部の例では、クレジットリターン信号をコピーすることによって生成される。そのとき、クレジットリターン信号または冗長クレジットリターン信号のいずれかにエラーが存在することを検出するために第１のクレジットリターン信号識別子と第２のクレジットリターン信号識別子とを比較するクレジット比較器を第１のクロックドメイン内に設けることができる。これは、（対応するデータ伝送に対して提供されるロックステップチェックに加えて）クレジットリターン信号を保護するために追加のロックステップメカニズムの適用を必要としない、クレジットリターン信号のエラー検出の有効な代替技術を提供する。代わりに、各クレジットリターン信号に関連する識別子の使用により、クレジットリターン信号と冗長クレジットリターン信号との間の固定遅延は不要になる。なぜなら、比較される関連するリターン信号をそれらの識別子から識別することができるからである。このため、クロックドメイン境界を越えてもロックステップタイミングの確実性を保証するためにデータ伝送経路上に設けられるものと同様の、クレジットリターン経路上の対応するチェック回路は不要になる。
【００３３】
クレジットリターン信号識別子は、利用可能になった下流バッファ内の特定のエントリのエントリ識別子とすることができる。これは、クレジットリターン信号に識別子を提供するための簡単な技術を提供する。
【００３４】
本技術による装置は、クロックドメイン境界を越えて信号を伝送するように構成された、第１のクロックドメインと第２のクロックドメインとの間の多数のクロックドメインブリッジを含むことができる。特に、装置は、第１のクロックドメインから第２のクロックドメインに主信号を伝送するための第１のクロックドメインブリッジと、第１のクロックドメインから第２のクロックドメインに第１のチェック信号を伝送するための冗長クロックドメインブリッジとを含むことができる。クロックドメインブリッジは、境界を越えて信号を伝送するための簡単ですぐに利用可能なハードウェアコンポーネントを提供する。このようなブリッジに加えて、上述のチェック回路を追加することで、ロックステップの固定タイミングを第２のクロックドメインで再現することができる。
【００３５】
エラーチェック回路によって適用される、本技術によるエラーチェック手順は、第１のチェック信号と第２のチェック信号とを比較すること、および２つの信号間に差があるときにエラー指示を返すことを含むことができる。これにより、単純なビットごとの比較を使用してチェック信号のエラーを特定するための迅速で容易な方法が提供される。
【００３６】
ＣＤ、ＤＶＤ、フラッシュメモリドライブ、ハードディスクドライブ、または任意の他の形態の非一時的記憶媒体など、上述のような装置の電子設計ファイルを記憶することができる記憶媒体を提供することができる。電子設計ファイルは、そのような装置の設計を表し、装置の物理的形態を製造するための製造設備に設計ファイルが供給されたときに、対応する装置を作るために使用することができる。
【００３７】
ネットワークの２つ以上のノードが、ずれた位相および／または周波数を有する互いに異なるクロックドメインで動作しているとの判定に応答して、統合ネットワークの複数のノード間でデータ伝送を実現するための相互接続ネットワークの設計ファイルを生成するコンピュータ実施方法を提供することができる。設計された相互接続ネットワークは、上述のような装置を含むことができる。
【００３８】
一部の例では、上記のコンピュータ実施方法を実行するようにデータ処理装置を制御するためのコンピュータプログラムを記憶する非一時的記録媒体を提供することができる。
【００３９】
図１は、要求ノードと宛先ノードとの間でデータアクセス要求をルーティングし、このようなデータアクセス要求に対する応答を宛先ノードから要求ノードにルーティングするためのデータアクセスルーティング回路４、６を有するデータ処理システム２（例えば、集積回路またはシステムオンチップ）の例を概略的に示す。この例では、システム２は、１つ以上の中央処理装置（ＣＰＵ）７またはＣＰＵのクラスタ、グラフィック処理装置（ＧＰＵ）８、ユニバーサルシリアルバス（ＵＳＢ）を介してデバイスとのやりとりを制御するためのＵＳＢマスタ１０、ＰＣＩ  Ｅｘｐｒｅｓｓバスを介してシステム２に接続された装置とのやりとりを制御するためのＰＣＩｅコントローラ１２、デジタル信号プロセッサ（ＤＳＰ）１４、表示コントローラおよび／または画像信号プロセッサ１６、ビデオコントローラ１８、直接メモリアクセス動作の制御、暗号化もしくは他のオンチップセキュリティ動作などのセキュリティ動作の制御、または周辺機器とのやりとりの制御などの多数のシステム制御機能を提供することができるシステムコントローラ２０、ならびにモデムを介した通信を制御するためのモデムシステムコントローラ２２など、多数のマスタデバイスを含む。マスタ７〜２２のすべては、システムの宛先ノードによってサービスされるべきデータアクセス要求を発行するための要求ノードとして機能することができる。
【００４０】
システムは、例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）へのアクセスを制御するための多数のメモリコントローラ２６、スタティックランダムアクセスメモリ（ＳＲＡＭ）へのアクセスを制御するためのメモリコントローラ２８、読み出し専用メモリ（ＲＯＭ）へのアクセスを制御するためのメモリコントローラ３０、フラッシュメモリへのアクセスを制御するためのフラッシュメモリコントローラ３２、周辺デバイスへのアクセスを制御するための周辺機器コントローラ３４、およびネットワークインタフェースを介して遠隔デバイスまたはさらなる周辺機器とのやりとりを制御するためのネットワークインタフェースコントローラ３６を含む、宛先ノードとして機能することができる多数のコンポーネントを有することができる。また、宛先ノードは、データルーティング回路４、６内にシステムキャッシュ３８を含むことができ、システムキャッシュ３８は、メモリシステム２６〜３６からの何らかのデータをキャッシュすることができ、このため、何らかのデータアクセス要求を下流のメモリコンポーネントに送る必要なく、何らかのデータアクセス要求にサービスすることができる。
【００４１】
図１の例では、マスタの一部７、８は、各マスタのキャッシュによって保持されているキャッシュデータ間のコヒーレンシを管理する役割を果たすキャッシュコヒーレント相互接続部４を介して結合される。キャッシュコヒーレント相互接続部は、特定のマスタのキャッシュにキャッシュされたデータを追跡するためのスヌープフィルタ４０を有することができ、他のマスタにキャッシュされたターゲットアドレスに関連するデータのコヒーレンシ状態をチェックするスヌープトランザクションを発行することによってターゲットアドレスを指定する読み出しおよび書き込みデータアクセス要求に応答することができ、このため、あるマスタが、データへの読み出しまたは書き込みアクセスを要求した場合、別のマスタのキャッシュ内の同じアドレスのデータを無効にすることができ、または、ダーティな場合、当該の他のマスタのキャッシュ内の最新値を、要求マスタに提供するおよび／またはメモリシステムに書き戻すことができる。キャッシュコヒーレント相互接続部４には、任意の既知のコヒーレンシプロトコルを使用することができる。
【００４２】
他のマスタ１０〜２２（キャッシュを備えくてもよい）は、キャッシュコヒーレント相互接続部４を介して接続する必要はない。システム相互接続部６は、キャッシュコヒーレント相互接続部４および非キャッシュマスタ１０〜２２の出力と各宛先デバイス２６〜３６とを結合する。システム相互接続部６は、要求によって指定されたターゲットアドレスに基づいて選択されたターゲット宛先ノードへのトランザクションのルーティングおよび要求ノードへの応答のルーティングに使用される。図１に示す配置では、システム相互接続部６は、各マスタのキャッシュデータ間のコヒーレンシを管理する役割を果たす必要はない。しかしながら、他の例では、図１に示すように別々のキャッシュコヒーレント相互接続部４およびシステム相互接続部６を設ける代わりに、マスタデバイスおよびスレーブデバイスのそれぞれを接続し、キャッシュコヒーレンシも管理する、システム相互接続部６と同様の単一の相互接続部を設けることができる。
【００４３】
この例では、システム相互接続部６は、多数のマスタインタフェース４６（各マスタデバイス７〜２２からの、読み出し要求および書き込み要求を含むデータアクセス要求はこれらから受信することができる）と、多数の宛先インタフェース４８（各宛先デバイス２６〜３６に対して要求を出力するための）とを結合するための多数のルータ４４を備えるネットワークオンチップ（ＮｏＣ）として実施される。各マスタインタフェース４６（入口ポート、ＩＰ、またはソースエンドポイントとしても知られる）は、データアクセス要求にサービスすべき選択された宛先ノードに関連する宛先インタフェース４８に到達するようにルータ４４を経由してネットワークオンチップ６を通るとられるべき特定のルートを特定するために、データアクセス要求によって指定されたアドレスを復号する役割を果たす。場合によっては、マスタインタフェース４６は、ネットワークオンチップ６にアサートされた要求に使用されたプロトコルを、ネットワークオンチップ６を通る要求をルーティングするために使用される内部表現に変換することもできる。要求が内部プロトコルに変換される場合、宛先インタフェース４８（出口ポート、ＥＰ、または宛先エンドポイントとしても知られる）は、宛先によるサービス提供のためにそれらを、要求によって使用された元のプロトコルに変換することができる。あるいは、宛先ノードの一部は、宛先インタフェースで変換を必要としないようにするために、ネットワークオンチップ６によって使用された形式で要求を直接処理してもよい。各宛先インタフェース４８に関しては、各宛先インタフェース４８が、宛先ノード２６〜３６からデータアクセス要求に対する応答を受信すると、宛先インタフェース４８は、対応する要求によってとられた経路に沿ってこの応答を、その要求を発行したマスタインタフェース４６に発行し、次に、マスタインタフェース４６は、この応答を要求ノードに返す。
【００４４】
図１に示すようなネットワークオンチップ６は、接続されるべき多数のマスタデバイスおよび宛先デバイスがあるときに有用であり得る。なぜなら、ルータ４４の配置は、適切なレベルの帯域幅を提供し、チップにおいて要求をルーティングする必要がある物理的な距離に、信号遅延を大幅に増加させることなく対応することができる十分な数のルータを提供するために、所与のシステムの要件に合わせて特注設計することができるからである。大量のトラフィックを必要とすることが予期される要求ノードと宛先ノードの対については、そのとき、それらの間に追加のルータまたは信号チャネルを設けることができるが、他の要求ノード／宛先ノードの対は容量が少なくてもよい。
【００４５】
一部の例では、ネットワークオンチップは、メッシュトポロジを有することができ、各インタフェース４６、４８は、グリッド上のポイントに接続され、要求および応答は、対応するマスタインタフェース４６および宛先インタフェース４８に関連するグリッド上のポイント間を行き来することができる。他のＮｏＣトポロジも可能である。
【００４６】
しかしながら、ネットワークオンチップの使用は必須ではなく、他の例では、異なるトポロジを、システム相互接続部６内で使用することができる。例えば、マスタインタフェースと宛先インタフェースとの間の一連のポイントツーポイント接続を使用することができ、または、すべての要求が、リングバス上にアサートされ、次に、要求されたターゲットインタフェースに到達するまで巡回するリングトポロジを使用することができる。しかしながら、ネットワークオンチップの使用は、マスタおよび宛先の数が増加するにつれて、より良いスケーリングを可能にする。
【００４７】
図１は、集積回路内のマスタデバイスとスレーブデバイスとの間で信号をルーティングするためのネットワークの例を示しているが、他の例では、相互接続部によって接続されるデバイスは、マスタ−スレーブ関係を有さなくてもよく、その代わりに、デバイスは、ピアツーピア接続によって接続されてもよい。また、一部の例では、ネットワークによってルーティングされる一部の要求は、相互接続部の外の宛先ノードをターゲットとするのではなく、コヒーレンシポイントまたはキャッシュなど、相互接続部自体の中の宛先ノードをターゲットとしてもよい。
【００４８】
図２は、ネットワークオンチップ（ＮｏＣ）６のコンポーネントの例をより詳細に示す。ＮｏＣ６は、ＮｏＣ６によって接続されるべきマスタデバイスおよび宛先デバイスの特定の配置に応じて異なるレイアウトおよび配置で組み合わせることができる多数のコンポーネントを備える。例えば、これは、以下のコンポーネントのいずれかを含むことができる。
【００４９】
入口ポート（ソースエンドポイント）４６
入口ポートは、入口ポートに結合されている要求ノードからデータアクセス要求を受信する。例えば、入口ポートは、図１に示されているマスタインタフェース４６のうちの１つとして機能することができる。入口ポート４６は、要求を処理するためにどの出口ポート４８を選択すべきかを特定するために、要求ノードから受信したデータアクセス要求によって指定されたターゲットアドレスを復号することができ、ＮｏＣを通る要求の、選択された出口ポート４８へのルーティングを制御するためのルーティング情報を生成する。また、ＮｏＣ６内でルーティングされる要求は、データアクセス要求に関して要求ノードによって使用されたプロトコルとは異なるプロトコルを使用する場合があるため、入口ポートは、要求を、ネットワークで使用されるトランスポートプロトコルに変換するためのプロトコルアダプタ５０を含むことができる。入口ポート４６は、要求に対応するネットワークパケットがどのようにＮｏＣを通ってルーティングされるべきかを特定するルーティング情報を伴って、変換されたパケットをネットワークに伝送する。入口ポート４６はまた、ネットワークの帯域幅に対する異なるマスタデバイスの競合するニーズをバランスさせために、特定の要求に対するリソース割り当ての管理および異なるソースからの要求に対して提供されるサービス品質レベルの制御などの他の機能を提供することができる。例えば、入口ポート４６は、要求に関する追跡情報をバッファリングし、要求に対する応答をバッファリングするための様々なバッファを有することができる。入口ポート４６は、バッファ内のスペースの利用可能性に基づいて、およびサービス品質要件に基づいて、リソースの割り当ておよび要求の発行を制御することができる（例えば、所与の時点で保留になり得る現在未処理のトランザクションの数に制限を設ける、または所与の期間内にサービスされる所与の要求モードからのトランザクションの数に制限を設ける）。
【００５０】
ルータ５４
各ルータ５４は、対応する要求が発信された入口ポート４６によってパケットに追加されたパケットによって指定されたルーティング情報に基づいて、ＮｏＣ６の１つのコンポーネントから受信したパケットをルーティングし、パケットを他のどのコンポーネントに送るべきかを選択する役割を果たす。設けられるルータ５４の特定の配置および数は、特定のシステム要件に依存し得る。例えば、入口ポートと出口ポートが、集積回路において大きな距離で離れている場合、パケットがそれらの宛先に到達したときに信号レベルを維持するためにパケットの十分な繰り返しを提供するためにより多くのルータが必要となり得る。また、ルータが接続されているトポロジは、ポート４６、４８の特定の対に対する予期帯域幅要件に基づいて選択されてもよい。
【００５１】
出口ポート（宛先エンドポイント）４８
出口ポート４８は、入口ポート４６によって生成され、ルータ５４を経由してＮｏＣを通るルーティングされたデータアクセス要求を表すネットワークパケットを受信する。出口ポート４８は、ネットワークパケットのトランスポートプロトコルを、出口ポートが接続された宛先ノードによって使用されるプロトコルに変換するためのプロトコルアダプタ５８を有する。一部の形式の要求は、宛先ノードからの応答を必要としない場合がある。しかしながら、応答（例えば、読み出し応答、書き込み応答、またはこれら両方）を必要とする要求の場合、データアクセス要求にサービスした宛先ノードから、データアクセス要求に対する応答が受信されたとき、応答を、出口ポート４８内のプロトコルアダプタ５８によってネットワークのトランスポートプロトコルに適合させ、次に、出口ポート４８によってネットワークに出力することができる。場合によっては、応答パケットは、例えば、データアクセス要求パケットによってとられた経路に対応する逆方向の経路または異なる経路に沿って、それらの応答をトリガした元のデータアクセス要求を受信した入口ポート４６にルーティングされてもよい。他の場合では、応答パケットは、元の要求を発行した要求ノードとは異なる要求ノードに提供される必要が場合によってはあり得る（例えば、各マスタのキャッシュのコヒーレンシ状態の変化により）ので、異なる入口ポートにルーティングされてもよい。したがって、やはりプロトコルアダプタ５８は、応答パケットによってとられるべきルートを指定するルーティング情報を追加することができる。これらの応答パケットが、入口ポート４６で受信されると、プロトコルアダプタ５０は、それらを、要求ノードによって予期される応答に変換し、それらを要求ノードに転送する。
【００５２】
一部の例では、入口ポート／出口ポートの機能は、ネットワークブリッジコンポーネント（２つのネットワーク部分の間の境界にある）で処理されてもよく、これにより、ネットワークブリッジは、少なくともいくつかの目的で入口ポートおよび出口ポートの両方として有効に機能してもよいことに留意されたい。
【００５３】
データリサイザ７０
あるコンポーネントから別のコンポーネントに提供するときに、ネットワークを介して伝送されるデータ値をリサイズする必要がある場合がある。例えば、より少数のフリットを含むパケットは、より小さなデータサイズのより多数のフリットを含むパケットに分けることができ、または、より小さなフリットを含むパケットは、より大きなサイズのより少数のフリットに結合または再分割されたフリットを有することができる。リサイズが、入力フリット数および出力フリット数が多対一または一対多の関係に従うようなものである場合、図２に示すように、リサイザ７０は、シリアライザ−デシリアライザ（ＳＥＲＤＥＳ）として機能してもよい。しかしながら、リサイザが、ＮとＭの両方が１より大きいデータフリットのＭ：Ｎリサイズを行うことも可能であり、この場合、特定の入力フリットグループに関連するデータを異なる数の出力フリットに関連するデータにマッピングするために、より一般的なリサイズを提供することができる。一部の実施形態では、ネットワークの残りの部分で伝送されるように、ある数の受信パケットを異なる数のパケットに変換することも可能であり得る。
【００５４】
クロックドメインクロッシング（ＣＤＣ）７２
図２に示すように、ＮｏＣ６は、複数のクロックドメインにまたがることができ、この場合、１つのクロックドメイン内のコンポーネントは、別のクロックドメイン内のコンポーネントを制御するクロックとは周波数および位相の一方または両方で異なるクロック信号に従って動作する。例えば、異なるクロックドメインの各クロック信号は、異なるクロック周波数を有する非同期信号、または同じ周波数を有するが位相がオフセットしているメソクロナスクロック信号であり得る。クロックドメイン境界で、クロックがずれている場合、上流ドメインの信号を下流ドメインの対応する信号経路に単純に接続すると、下流ドメインがソースドメインのクロックに対して間違ったタイミングで信号をサンプリングする危険性が生じる。ＣＤＣ７２については以下でより詳細に説明する。
【００５５】
冗長ネットワークコンポーネント
図２に示すように、ＮｏＣを通る主ペイロードのルーティングのために主ネットワークを形成するコンポーネント５４、７０、７２に加えて、ＮｏＣはまた、主ネットワークの主ネットワークコンポーネントの少なくとも一部を部分的に複製する冗長ネットワークを含む。例えば、図２において、ネットワークは、主ネットワークの対応するメインルータ５４をミラーリングする多数の冗長ルータ５４−Ｒを含む。また、メインネットワークのデータリサイザ７０は、対応する冗長ネットワークデータリサイザ７０−Ｒを有することができる。クロックドメインクロッシング７２は、メイン信号および冗長信号をクロックドメイン境界を越えてブリッジできるようにするためにその中にメインチャネルと冗長チャネルの両方を有することができるが、ＣＤＣ７２で主ペイロードに対して冗長伝送ペイロードをチェックするクロスチェック回路を含むこともできる。入口ポート４６および出口ポート４８も複製されない。なぜなら、入口ポート４６は、受信ノードから受信した要求を受け取り、それを対応する主ペイロードおよび冗長ペイロードにマッピングする役割を果たし、出口ポート４８は、主ペイロードおよび冗長ペイロードから情報を抽出し、この情報を、宛先ノードに伝送される進行中の情報にマッピングするからである。主ネットワーク上を移動する情報を少なくとも部分的に複製する冗長情報を提供する冗長ネットワークを提供することによって、これを、出口ポート４８でのエラーチェックに使用して、潜在的に間違った動作の原因となり得る永続的または一時的な障害が主ペイロードまたは冗長ペイロードのルーティング中に発生したかどうかを判定することができる。
【００５６】
ネットワークオンチップ６は、図２に示されていない他のコンポーネントを含むこともできることが理解されよう。
【００５７】
機能的安全性の目的で冗長性を実現するための１つの手法は、冗長ネットワークが、主ネットワークのコンポーネントの一部または全部を複製し、主信号と実質的に同一（例えば、主信号または冗長信号のいずれかに存在し得るエラーを除いて同一）である冗長信号が主信号と並行して伝送されるようにルーティングするというものであり得る。冗長信号は、主信号または冗長信号のいずれかに存在するエラーを特定するために、さらに下流のエラーチェック手順で後に使用することができる。この場合、エラーチェック手順は、通常、２つの信号のうちの一方にエラーが存在することを意味する、２つの信号の間の差を特定するために主信号と冗長信号とを比較することを含む。しかしながら、これは、追加の処理論理および回路の面積の点で費用がかさみ得る。なぜなら、各冗長ルータ５４−Ｒおよび他の冗長コンポーネント７０−Ｒを拡張しなければならない可能性があり、典型的なＮｏＣにはこのようなコンポーネントが多いため、これは、回路面積の大幅な増加の原因となり得るからである。代替的でより安価な手法は、チェック信号がチェック信号が導出された主信号の部分より少ないビットを有するように、主信号から導出された他の何らかのチェック信号を主信号と並行して伝送することである。これは、ハッシュ関数（巡回冗長チェックコードもしくは暗号ハッシュ関数を含む）、チェックサム、ＥＣＣ、ＤＥＤもしくはＳＥＣＤＥＤコード、または他の形式のエラーチェックコードなどのエラーチェックコードであり得る。この場合、使用されるエラー検出方式のタイプに応じて、チェックコードおよび主信号を使用する異なるエラーチェック手順を適用することができる。
【００５８】
いずれの場合も、主信号および冗長信号（または他のチェック信号）は、特定の時点での障害またはイベントが主信号とチェック信号の両方に同じように影響を与える可能性をさらに低減することによってさらなる保護を提供するために、所定の時間遅延によって時間的に分離させる（例えば、チェック信号は主信号に対して遅延させる）ことができる。あるいは、遅延はゼロであってもよい。
【００５９】
しかしながら、主信号と冗長信号との間の固定時間遅延に頼ることは、特定のクロック位相および周波数を有する第１のクロックドメインから異なるクロック位相または異なるクロック周波数を有する第２のクロックドメインへクロックドメイン境界を越えるときに複雑さを増加させ得る。２つのクロックドメインにおけるクロック信号の位相または周波数の不一致のために、信号が異なる時間にドメイン境界を越えるときに主信号とチェック信号との間の遅延が歪められ得る。これは、エラー検出方式を無効にし、システムの機能的安全性を損ない得る。
【００６０】
図３は、クロック境界を越えてロックステップ冗長システムを使用することで上記の問題を克服する、本技術の例によるＣＤＣ７２の例示的な構成である。ＣＤＣ７２は、第１のクロックドメイン側の第１の部分７４と第２のクロックドメイン側の第２の部分７６とを含む。第１の部分７４は、主信号を受信するための第１の主インタフェース７８と、第１のチェック信号を受信するための第１の冗長インタフェース８０とを含む。第１の部分７４は、ネットワークルータ５４または入口ポート４６などの、ネットワークの上流コンポーネントから主チェック信号および第１のチェック信号を受信する。上述のように、第１のチェック信号は遅延されているので、第１のチェック信号は、主信号が第１の部分７４で受信されてから所定の時間の後に第１の部分７４で受信される。第１のチェック信号は、主信号に基づき、場合によっては主信号をコピーすることによって生成される。他の場合では、第１のチェック信号は、それが導出される主信号の部分より少ないビットを有する、異なる形式のエラーチェックコードであり得る。第１のチェック信号は、主信号が主ネットワークを介して伝送される間に冗長ネットワークを介して伝送することができる。第１の主インタフェース７８および第１の冗長インタフェース８０を含む第１の部分７４はすべて第１のクロックドメイン内にある。
【００６１】
第２の部分７６は、主信号を出力するための第２の主インタフェース８２と、第２のチェック信号を出力するための第２の冗長インタフェース８４とを含む。第２のチェック信号は、第１のチェック信号を生成したネットワークコンポーネントで（例えば、メッセージが発信された入口ポート４６で）第１のチェック信号を生成するために使用されたのと同様のプロセスに従って、主信号に基づいて第２のクロックドメインで生成される。第１のチェック信号が主信号をコピーすることによって生成された場合、第２のチェック信号も主信号をコピーすることによって生成される。あるいは、第１のチェック信号が、各部分のビット数より少ないビットを有するエラーチェックコードを生成するために何らかの関数を主信号の部分に適用することによって生成された場合、第２のチェック信号も、同じ関数を主信号に適用することによって生成される。
【００６２】
また、ＣＤＣ７２では、第２の部分７６に、エラー比較器８６と第２のチェック信号発生回路８８とを備えるチェック回路８７がある。エラー比較器８６は、第１の冗長インタフェース８０からの第１のチェック信号と、第２のチェック信号発生回路８８からの第２のチェック信号とを受信し、エラーチェック手順を実行する。第２のチェック信号発生回路８８は、多数の方法のうちのいずれかで第２のチェック信号を生成することができる。例えば、第２のチェック信号発生回路８８は、主信号と第１のチェック信号との間の所定の時間遅延に等しい時間遅延の後に、遅延した主信号を第２のチェック信号としてエラー比較器８６に提供するように構成された時間遅延回路であってもよい。あるいは、第２のチェック信号発生回路８８は、例えば巡回冗長チェックもしくは暗号ハッシュ関数などのハッシュ関数、チェックサム、または他の形式のエラーチェック手順を含む任意のエラー検出方式を使用して生成されるエラーチェックコードなどの、異なる形式のエラーチェックコードを生成するように構成されてもよい。いずれの場合でも、第２のチェック信号発生回路８８は、所定の時間遅延の後に第２のチェック信号をエラー比較器８６に提供するように構成される。
【００６３】
エラー比較器８６は、第１のチェック信号および第２のチェック信号のいずれかにエラーが存在するかどうかを判定するために、第１のチェック信号および第２のチェック信号に基づいてエラーチェック手順を実行する。エラーチェック手順は、チェック信号の形式および実施されるエラー保護方式によって異なるが、例えば、第１のチェックコードと第２のチェックコードとを比較し、それらの間の差を潜在的なエラーとして特定することを含むことができる。
【００６４】
第２の主インタフェース８２および第２の冗長インタフェース８４、第２のチェック信号発生回路８８、ならびにエラー比較器８６を含む第２の部分７６は、第２のクロックドメイン内にある。したがって、主信号がクロックドメイン境界を越えた後に第２のチェック信号が第２のクロックドメインで生成されるので、第１のクロックドメインおよび第２のクロックドメインにおけるクロックの位相または周波数の差は、主信号と第２のチェック信号との間の時間遅延に影響しない。このようにして、ロックステップ冗長性が、本質的に、後のバージョンの主信号から第２のドメインで再現される（例えば、それがクロックドメイン境界を通過した後に）ことにより、複数のクロックドメインにわたるロックステップ冗長性の実現に関する上記の問題は克服される。さらに、第１のチェック信号および第２のチェック信号を使用してエラーチェック手順を実行するために第２のクロックドメインにエラー比較器８６を設けることによって、第２のチェック信号に反映された、主信号に既に存在するエラーが特定される。
【００６５】
図４は、ＣＤＣ７２を含む、異なるクロックドメインにおいて、マスタコンポーネント８９とスレーブコンポーネント１０３との間で信号を伝送するためのシステムの例を示す。図４に示すＣＤＣ７２は、第１のクロックドメイン内の第１の部分７４と第２のクロックドメイン内の第２の部分７６とを含む。第１の部分７４は、マスタコンポーネント８９から主信号を受信し、クロックドメイン境界にまたがる非同期ドメインブリッジ（ＡＤＢ）９０を介して第２の部分７６内の第２の主インタフェース８２に主信号を伝送するように構成された第１の主インタフェース７８を含む。図４に示す例では、信号は、ハンドシェイクプロトコルに従って伝送される。第１の主インタフェース７８から第２の主インタフェース８２への主信号の伝送の場合、ハンドシェイクプロトコルは以下の通りである。
１．マスタコンポーネント８９内の主論理９１は、マスタコンポーネント８９が主信号を伝送する準備ができていることを示す「有効」信号（ｔｖａｌｉｄ）をスレーブコンポーネント１０３内の主論理９３に送信する。
２．スレーブコンポーネント１０３内の主論理９３は、スレーブコンポーネント１０３が主信号を受信する準備ができていることを示す「レディ」信号（ｔｒｅａｄｙ）をマスタコンポーネント８９内の主論理９１に送信する。
３．マスタコンポーネント８９内の主論理９１は、主信号をスレーブコンポーネント１０３に送信する（ｔｄａｔａ）。
【００６６】
このような有効−レディハンドシェイクは必須ではなく、データが伝送されるタイミングを制御するために他のメカニズムを使用することができることが理解されよう。
【００６７】
一部の例では、スレーブコンポーネント１０３は、それが主信号の受信に成功したことを示す応答信号（図示せず）をマスタコンポーネント８９に送信することができる。マスタコンポーネント８９はまた、制御信号（ｔｃｔｒｌ）の形式で制御データをスレーブコンポーネント１０３に送信する。制御データは、ネットワークにおけるネットワークパケットのルーティングを制御（例えば、ルータの選択またはパケットフォーマッティングを制御）するために使用されるルーティング制御データであり得るため、場合によっては、ｔｄａｔａおよびｔｃｔｒｌ信号は一緒に主チャネルにおいて主信号と見なされ得る。有効信号、レディ信号、制御信号、および主信号はすべて、マスタコンポーネント８９とスレーブコンポーネント１０３との間で第１の主インタフェース７８および第２の主インタフェース８２を介して伝送される。
【００６８】
主信号は、有効信号、レディ信号、および制御信号と同様に、第１のクロックドメインと第２のクロックドメインとの間で非同期ドメインブリッジ（ＡＤＢ）９０を介して伝送される。ＡＤＢ９０は、両方のクロック境界にまたがって存在し、第２のクロックドメイン内の「マスタ」側９０ｂと第１のクロックドメイン内の「スレーブ」側９０ａとを有する。ＡＤＢ９０は、異なるクロック位相、クロック周波数、または電力／電圧要件を有するクロックドメイン間の境界を越えて信号を伝送するように構成される。
【００６９】
第１の冗長インタフェース８０は、主信号が第１の主インタフェース７８によって受信されてから所定の時間の後にマスタコンポーネント８９から第１のチェック信号を受信し、それをＣＤＣ７２の第１の部分７４に設けられた遅延バッファ９２に伝送するように構成される。第１のチェック信号は、上記したものと同様のハンドシェイクプロトコルを使用して遅延バッファ９２に伝送される。
１．マスタコンポーネント８９内の冗長論理１０５は、ＡＮＤゲート９４を介して有効信号（ｔｖａｌｉｄ）を遅延バッファ９２に送信する。
２．スレーブコンポーネント１０３内の主論理９３から第１の冗長インタフェース８０を介してマスタコンポーネント８９に送信されたレディ信号のコピーは、時間遅延回路９６を介してＡＮＤゲート９４とマスタコンポーネント８９内の冗長論理１０５の両方に伝送される。時間遅延回路８８は、第１の部分７４における主信号の到着と第１のチェック信号の到着との間の所定の時間に等しい時間遅延を挿入し、レディ信号が、第１の冗長インタフェース８０が第１のチェック信号を受信するまで第１の冗長インタフェース８０によって受信されないことを保証する。
３．マスタコンポーネント８９内の冗長論理１０５がレディ信号を受信すると、それは第１の冗長インタフェース８０を介して第１のチェック信号を遅延バッファ９２に送信する。
４．それが有効信号とレディ信号の両方を受信すると、ＡＮＤゲート９４は、「プッシュ」信号を生成し、それは、そのデータ入力９５に提供される第１のチェック信号値をサンプリングし、それを利用可能なエントリに割り当てるように遅延バッファ９２をトリガする。
【００７０】
マスタコンポーネント８９内の冗長論理１０５はまた、制御信号（ｔｃｔｒｌ）の形式の制御データを遅延バッファ９２（これも第１のチェック信号の一部と見なすことができる）に送信し、遅延バッファ９２は、それがフルである場合（例えば、遅延バッファ９２に利用可能なエントリがない場合）、「フル」信号（ＡＤＢエラー）を生成するように構成される。
【００７１】
この例では、遅延バッファ９２は、先入れ先出し（ＦＩＦＯ）バッファ、特にトランスペアレントＦＩＦＯであり、第２のチェック信号が第１のチェック信号との比較の準備ができているという指示をそれがエラー比較器８６（ＣＤＣ７２の第２の部分７６に設けられた）から受信するまで第１のチェック信号を記憶するように構成される。遅延バッファ９２内のエントリの数は、第２のクロックドメインにまだ伝送されていないチェック信号でそれが埋められることを防止するのに十分であるべきである（例えば、ほとんどの場合、２エントリで十分である）。遅延バッファ９２は、ハンドシェイクプロトコルを使用して、ＡＤＢ９８を介してエラー比較器８６に第１のチェック信号を伝送するように構成される。特に、遅延バッファ９２は、それがエンプティであるときに、ＮＯＴゲート１００を通過する「エンプティ」信号を生成し、ＮＯＴゲート１００は、エラー比較器８６およびＡＮＤゲート１０２に伝送される有効信号（ｔｖａｌｉｄ）を、バッファがエンプティでないときに生成する。エラー比較器８６は、応答して、レディ信号（ｔｒｅａｄｙ）をＡＮＤゲート１０２に伝送するように構成される。ＡＮＤゲート１０２が有効信号とレディ信号の両方を受信すると、第１のチェック信号をエラー比較器８６に伝送するように遅延バッファ９２をトリガする「ポップ」信号が生成される。遅延バッファ９２はまた、エラー比較器８６に制御信号（ｔｃｔｒｌ）を送信する。
【００７２】
有効信号、レディ信号、および制御信号ならびに第１のチェック信号はすべて、ＡＤＢ９８を介して遅延バッファ９２からエラー比較器８６に伝送される。ＡＤＢ９８は、ドメイン境界にまたがり、他のＡＤＢ９０と同じように動作する。ブリッジ９０、９８は、クロックドメイン境界を越える信号の安全な伝送を提供するためにバッファリングを提供することができるが、それらは、主信号と冗長信号との間に保証された時間遅延を提供することができない可能性がある。
【００７３】
第１の主インタフェース７８、第１の冗長インタフェース８０、遅延バッファ９２、時間遅延回路９６、ＡＮＤゲート９４、１０２、およびＮＯＴゲート１００を含む第１の部分７４は、第１のクロックドメイン内にある。
【００７４】
第２のクロックドメインに設けられた第２の部分７６は、第２の主インタフェース８２に加えて、第２のチェック信号発生回路８８から第２のチェック信号を受信し、主信号が出力されてから上記の所定の時間遅延に等しい時間遅延の後にそれをスレーブコンポーネント１０３に出力するように構成された第２の冗長インタフェース８４を含む。この例では、第２のチェック信号発生回路８８は、主信号を受信し、それをエラー比較器８６および第２の冗長インタフェース８４に伝送する前に所定の時間遅延させることによって第２のチェック信号を生成するように構成された時間遅延回路である（すなわち、時間遅延回路は、主信号を単にコピーしてそれを遅延させる）。
【００７５】
図４の例では、エラー比較器８６は、比較バッファ１０４および比較回路１０６を含む。比較バッファ１０４（この場合は比較ＦＩＦＯ）は、遅延バッファ９２が、第１のチェック信号が比較回路１０６による第２のチェック信号との比較に利用可能であることを（上記の有効信号と共に）示すまで第２のチェック信号を記憶するように構成される。
【００７６】
第２のチェック信号は、以下のようにハンドシェイクプロトコルを使用して第２のチェック信号発生回路８８によって比較バッファ１０４および第２の冗長インタフェース８４に伝送される。
１．第２のチェック信号発生回路８８は、（主チャネルのｔｖａｌｉｄ信号に基づいて）有効信号（ｔｖａｌｉｄ）を生成し、それを第２の冗長インタフェース８４を介してスレーブコンポーネント１０３内の冗長論理１０７およびエラー比較器８６内のＡＮＤゲート１０８に送信する。
２．冗長論理１０７は、ＡＮＤゲート１０８にレディ信号（ｔｒｅａｄｙ）を送信する。
３．第２のチェック信号発生回路８８は、制御信号と共に第２のチェック信号（ｔｄａｔａ＋ｔｃｔｒｌ）を第２の冗長インタフェース８４および比較バッファ１０４に送信し、第２の冗長インタフェース８４は、第２のチェック信号を冗長論理１０７に出力する。
４．有効信号とレディ信号の両方がＡＮＤゲート１０８によって受信されると、それは、第２のチェック信号が比較バッファ１０４のデータ入力１０９でサンプリングされて比較バッファ１０４の次のエントリに割り当てられるべきであることを示すプッシュ信号を比較バッファ１０４内に生成する。
【００７７】
比較バッファ１０４は、バッファ内のすべてのエントリが利用可能になったときにエンプティ信号を生成するように構成される。エンプティ信号は、ＮＯＴゲート１１０に伝送され、ＮＯＴゲート１１０は、比較バッファ１０４が第２のチェック信号を含むときにレディ信号（ｔｒｅａｄｙ）を生成する。このレディ信号は、上記のように遅延バッファ９２に結合されたＡＮＤゲート１０２に伝送される。レディ信号は、さらなるＡＮＤゲート１１２にも送信され、ＡＮＤゲート１１２は、遅延バッファ９２に結合されたＮＯＴゲート１００によって生成されたｔｖａｌｉｄ信号も受信する。ＡＮＤゲート１１２が、有効信号とレディ信号の両方を受信すると、それは、第１のチェック信号および第２のチェック信号が両方とも比較される準備ができていることを示すポップ信号を比較バッファ１０４内に生成し、比較バッファ１０４の最も古い有効エントリから第２のチェック信号を比較回路１０６に出力するように比較バッファ１０４をトリガする。比較バッファ１０４はまた、比較バッファ１０４がフルになったとき（例えば、比較バッファ１０４内に利用可能なエントリがないとき）にエラー信号（ＡＤＢエラー）を生成するように構成される。
【００７８】
この例では、比較バッファ１０４は、先入れ先出し（ＦＩＦＯ）バッファである。比較バッファ１０４内のエントリの数は、比較回路１０６にまだ伝送されていないチェック信号でそれが埋められることを防止するのに十分であるべきである（例えば、ほとんどの場合、２エントリで十分である）。
【００７９】
比較回路１０６は、第１のチェック信号および第２のチェック信号のいずれかにエラーが存在するかどうかを判定するために第１のチェック信号および第２のチェック信号に基づいてエラーチェック手順を実行するように構成される。この例において比較回路１０６によって実行されるエラーチェック手順は、第１のチェック信号と第２のチェック信号との比較である。比較回路１０６は、２つのチェック信号間に不一致があるときにエラー処理応答をトリガするように構成される。例えば、不一致が検出されたときに生成され得る信号ＡＤＢ−Ａｓｙｎｃエラーは、例えば、主／冗長信号の再伝送を要求する、または動作するようにソフトウェアをトリガすることができる中断もしくは例外もしくは他の障害状態をシグナリングする障害処理応答をトリガすることができる。
【００８０】
第２の主インタフェース８２、第２の冗長インタフェース８４、時間遅延回路８８、およびエラー比較器８６を含む第２の部分７６は、第２のクロックドメイン内にある。
【００８１】
図５は、（図４に示したマスタコンポーネント８９を含むことができる）上流コンポーネント１１４と（図４に示したスレーブコンポーネント１０３を含むことができる）下流コンポーネント１１６との間で主信号が伝送されるシステムの例を示し、この場合、上流コンポーネント１１４と下流コンポーネント１１６は異なるクロックドメイン内にある。主信号は、図３によるＣＤＣ７２ａを介して上流コンポーネント１１４と下流コンポーネント１１６との間で伝送される。
【００８２】
図５はまた、下流コンポーネント１１６と上流コンポーネント１１４との間でクレジットリターン信号を伝送するためのクレジットリターン経路を示し、それは、この場合、さらなるＣＤＣ７２ｂの形態である。
【００８３】
クレジットリターン信号は、下流コンポーネント１１６内のスペースの利用可能性を上流コンポーネント１１４に示す信号であり、下流コンポーネント１１６内の利用可能なスペースが不十分である場合に、上流コンポーネント１１４が主信号の伝送を遅延させることを可能にする。クレジットリターン信号は、主信号を保護するために使用されるものと同様のロックステップ冗長手段を使用して保護することができ、そのため、下流クロックドメインから上流クロックドメインへドメイン境界を越えてクレジットリターン信号を伝送するための本技術に従ってさらなるＣＤＣ７２ｂを設けることは好適である。クレジットリターン経路を構成するＣＤＣ７２ｂは、それが逆にされる点を除いて、クロックドメイン境界を越えて主信号を伝送するためのＣＤＣ７２ａと同一であり、例えば、クレジットリターン信号を保護するＣＤＣ７２ｂの第１のクロックドメインは、この場合は下流クロックドメインであり、第２のクロックドメインは、上流クロックドメインである。
【００８４】
クレジットリターン信号は、様々な方法で下流コンポーネント１１６内のスペースの利用可能性を示すことができる。一例では、上流コンポーネント１１４内の上流バッファは、主信号がバッファから伝送されるたびに値をインクリメントするクレジットカウンタを含む。値が所定の最大値（例えば、下流コンポーネント１１６内の下流バッファ内の利用可能なスロットの最大数に対応する値）に達すると、カウンタが所定の最大値未満の値に戻るまで上流バッファは主信号の伝送を中断する。上流バッファが、クレジットリターン信号を受信すると、カウンタはデクリメントされ、もう１つのスロットが下流バッファ内で利用可能になったことを示す。このようにして、上流バッファは、下流バッファ内のスペースの利用可能性を動的に追跡する。あるいは、別の例では、上流バッファは、クレジットカウンタの代わりにクレジットプールを含み、そこでは主信号が伝送されるたびに値がデクリメントされる。この場合、値が所定の最小値（例えば、下流バッファ内に利用可能なスロットがないことを示す値、例えば、所定の最小値はゼロであってもよい）に達すると、上流バッファは、主信号の伝送を中断し、クレジットリターン信号は、値をインクリメントするようにクレジットプールをトリガする。
【００８５】
図６は、ＣＤＣ７２のさらなる例を示す。図６では、主信号は、第１の主インタフェース７８で受信され、第１のチェック信号は、第１の冗長インタフェース８０で受信される。主信号は、入力バッファ１１８に伝送され、入力バッファ１１８は、ＡＤＢ９０を介してこの信号を出力バッファ１１９に伝送する。出力バッファは、主信号を第２の主インタフェース８２に伝送し、第２の主インタフェース８２は、この信号を様々な下流コンポーネント１１６（図示せず）に出力する。主信号のコピーも、出力バッファ１１９から第２のチェック信号発生回路８８（この場合は時間遅延回路）に伝送され、第２のチェック信号発生回路８８は、第２のチェック信号を生成し、これを第２の冗長インタフェース８４および比較バッファ１０４に出力する。
【００８６】
図５と同様に、下流コンポーネント１１６は、主信号を受信するとクレジットリターン信号を伝送することができる。クレジットリターン信号（ｃｒｅｄｉｔ）は、第２の主インタフェース８２で受信され、出力バッファ１１９に伝送される。出力バッファは、クレジットＡＤＢ１２１を介して、一意の識別子（スロットＩＤ）と共にクレジットリターン信号を入力バッファ１１８に伝送する。一意の識別子は、この例では、利用可能になった下流バッファ内のスロットを識別するスロットＩＤであるが、一意の識別子は、クレジットリターン信号を識別する任意の一意の信号であってもよい。クレジットリターン信号は、次に第１の主インタフェース７８に伝送され、クレジットリターン信号のコピーが、一意の識別子と共に時間遅延回路１２３に送信される。クレジットリターン信号および一意の識別子は、ＦＩＦＯ１２５に伝送される。
【００８７】
多くの状況において識別子が真に一意であることは有用であるが、状況によっては、識別子が許容可能な確率レベル内でクレジットリターン信号を一意に識別することで十分であり、これは、システムの安全性および効率の要件のバランスに依存し得ることに留意されたい。
【００８８】
第１の冗長インタフェース８０は、第１のチェック信号を受信し、それを冗長入力バッファ１２７に伝送する。冗長入力バッファ１２７は、ＡＤＢ９８を介して第１のチェック信号を冗長出力バッファ１２９に伝送する。次に、第１のチェック信号は、比較回路１０６に伝送され、比較回路１０６は、第２のチェック信号を比較回路１０６に伝送するように比較バッファ１０４をトリガする。比較回路１０６は、エラーをチェックするために第１のチェック信号と第２のチェック信号とを比較する。
【００８９】
下流コンポーネント１１６は、上流クロックドメインで元のクレジットリターン信号と比較される冗長クレジットリターン信号（ｃｒｅｄｉｔ’）を伝送することができる。冗長クレジットリターン信号は、第２の冗長インタフェース８４によって受信され、冗長出力バッファ１２９に伝送される。冗長出力バッファ１２９は、冗長クレジットＡＤＢ１３１を介して、冗長識別子（この例ではスロットＩＤ）と共に冗長クレジットリターン信号を冗長入力バッファ１２７に伝送する。冗長入力バッファ１２７は、冗長クレジットリターン信号および冗長識別子を比較器１３３に伝送し、比較器１３３は、一意の識別子を比較器１３３に出力するようにＦＩＦＯ１２５をトリガする。比較器１３３は、一意の識別子と冗長識別子とを比較し、これらの間に不一致があると判定された場合、それは、クレジットリターン信号または冗長クレジットリターン信号にエラーがあり得ることを示すエラー信号（ｅｒｒｏｒ）を出力する。この手法では、主クレジットリターン信号または冗長クレジットリターン信号のいずれかが遅延されることになるエラーが発生した場合、比較器１３３は、主クレジットリターン信号および冗長クレジットリターン信号のうち遅延されない方を、主信号の伝送の異なるインスタンスに関連する別のクレジットリターン信号と比較することができるため、エラーを検出することができ、これは、主クレジットリターン信号と冗長クレジットリターン信号の識別子の不一致から検出することができる。
【００９０】
図７は、本技術による、クロックドメイン境界を越えて主信号を伝送する方法を示す流れ図である。ステップ１２０において、主信号が、第１のクロックドメイン内の第１の主インタフェース７８で受信され、ステップ１２２において、第１のチェック信号が、所定の時間遅延の後に第１のクロックドメイン内の第１の冗長インタフェース８０で受信される。
【００９１】
ステップ１２４において、第２のクロックドメインで、第２のチェック信号が主信号に基づいて生成される。第２のチェック信号は、第２のチェック信号発生回路８８によって生成され、第２のチェック信号発生回路８８は、上記の所定の時間遅延に等しい遅延の後に主信号のコピーを供給するように構成された時間遅延回路とすることができる。あるいは、第２のチェック信号発生回路８８は、第２のチェック信号が主信号の部分に基づくエラーチェックコードであり、主信号の部分のビット数より少ないビットを含む他の何らかのエラー検出手順を使用して第２のチェック信号を生成するように構成されてもよい。第１のチェック信号および第２のチェック信号は、対応するプロセスに従って生成される同じ形式のものである。
【００９２】
第１のチェック信号および第２のチェック信号の形式が何であれ、ステップ１２６において、２つのチェック信号に基づいてエラーチェック手順が実行される。エラーチェック手順は、エラー比較器８６によって実行され、一部の例では、第１のチェック信号と第２のチェック信号とを比較することを含む。しかしながら、他のエラーチェック手順もまた使用され得る。ステップ１２８において、チェック信号の一方にエラーが存在するかどうかが判定される。エラーが存在すると判定された場合、エラー処理応答１３０がトリガされる。エラー処理応答１３０は、ステップ１３２から１３８のいずれも実行しないようにすることを含むことができる。エラー処理応答はまた、エラーが発生したことを、主信号を生成した上流コンポーネントにシグナリングすることを含むことができ、それは、データを再伝送することまたは他の何らかの動作を行うことによって応答することができる。他のエラー処理応答を使用することもできる。
【００９３】
エラーが検出されなかった場合、方法はステップ１３２に進む。ステップ１３２において、主信号は、第２のクロックドメイン内の第２の主インタフェース８２に供給される。ステップ１３４において、第２のチェック信号は、所定の時間遅延の後に第２のクロックドメイン内の第２の冗長インタフェース８４に供給される。ステップ１３６において、主信号は、第２の主インタフェース８２で出力され、ステップ１３８において、第２のチェック信号は、第２の冗長インタフェース１３８で出力される。
【００９４】
図８は、本技術によるＣＤＣ７２を含む相互接続ネットワークの設計のために電子設計ファイルを生成するコンピュータ実施方法１４０を示す流れ図である。ステップ１４２において、複数のノードが、第１のクロックドメインで動作する第１のノードと第２のクロックドメインで動作する第２のノードとを含み、第１のクロックドメインと第２のクロックドメインが異なるクロック周波数、異なるクロック位相、またはこれら両方を有することが決定される。ステップ１４４において、本技術による少なくとも１つのＣＤＣ７２を含む相互接続ネットワークの電子設計ファイルが生成される。すなわち、ネットワークが、異なるクロックドメイン内のコンポーネントを接続しなければならない場合、ネットワークのための設計は、上述のようにエラー比較器８６、８８およびバッファ９２、１０４を備えることができる少なくとも１つのＣＤＣ７２を含むことができる。
【００９５】
図９は、設計プロセスを単純化するために自動設計技術を使用することができる、本発明による電子設計ファイルを設計するための電子設計プロセスの例を概略的に示す。設計プロセスのより早い段階を実行するシステム設計者または電子設計ツールは、集積回路の相互接続部に使用されるポート４６、４８の物理的位置および／または予期される使用要件（例えば、どのポート対が、それらの間の通信リンクを必要とする可能性があるか、および予期されるデータトラフィックまたは互いに対する異なるマスタの優先順位付けに依存する、異なるポート対の予期される帯域幅のレベル）などの様々なシステム要件１４６を指定することができる。図８に示されている方法１４０に従って電子設計ファイル１５２を生成するために、データ処理装置上で実行されるＮｏＣ構成ツールプログラム１４８は、ＮｏＣを組み立てるために選択することができる様々なＮｏＣコンポーネントの高レベル表現を提供するコンポーネントライブラリ１５０と共に、システム要件を使用することができ、これにより、ＮｏＣコンポーネントの高レベルレイアウトが提供され、これらのコンポーネントの特定の特性を構成するパラメータなどの、これらのコンポーネントの様々なパラメータが指定される。
【００９６】
例えば、コンポーネントライブラリ１５０は、図２に関して上述したような入口ポート４６、出口ポート４８、ルータ５４、またはリサイザ７０などのコンポーネントの範囲を指定することができる。これらのタイプのコンポーネントのうちの一部について、システム要件の特定の必要性に応じて選択のためにコンポーネントライブラリにおいて複数の代替タイプを指定することができる。あるいは、単一タイプのコンポーネントが準備されてもよく、ＮｏＣ構成ツール１４８は、所与のコンポーネントの特性として、ＮｏＣの所与のコンポーネントの動作を調整することができるまたはそのコンポーネントを製造する方法を制御することができる特定の変数を指定することができる。ＮｏＣ構成ツール１４８は、入力されたシステム要件に基づいてそのような要件を決定することができる。したがって、ツール１４８によって選択され得るコンポーネントのうちの１つは、上述のようなＣＤＣであり得る。
【００９７】
ＮｏＣ構成ツール１４８によって生成された高レベルレイアウトファイル１５２は、電子設計自動化（ＥＤＡ）ツール１５４に提供され、電子設計自動化（ＥＤＡ）ツール１５４は、ＮｏＣコンポーネントライブラリ１５０より詳細なレベルで集積回路コンポーネントの標準セルを指定する低レベルセルライブラリ１５６を使用し、ＮＯＣ構成ツール１４８によって設計された相互接続部を含む集積回路に対して生成されるべき特定のゲートまたはトランジスタを指定する集積回路設計ファイル１５８を生成する。場合によっては、ＥＤＡ１５４は、実際には、より詳細な回路レベル表現を生成するために段階的に設計を繰り返す多数のツールを含むことができる。ＥＤＡツール１５４はまた、設計された回路がそのタイミング要件を満たすかどうかをチェックするためにタイミング解析（例えば、セットアップおよびホールドの違反のテスト）を実行し、前の試行がタイミング解析で不合格になった場合は設計を繰り返すことができる。次に、設計ファイル１５８によって表される最終的に準備された集積回路設計は、相互接続部を含む集積回路を実施するために、トランジスタ間に必要とされる接続を有する集積回路を製造するように製造設備１６０を制御するために設計ファイルを使用する製造業者に提供される。
【００９８】
本出願では、「・・・するように構成される」という語は、装置の要素が規定の動作を実行することができる構成を有することを意味するために使用される。これに関連して、「構成」は、ハードウェアまたはソフトウェアを相互接続する配置または方法を意味する。例えば、装置は、規定の動作を実現する専用ハードウェアを有することができ、または、プロセッサもしくは他の処理デバイスは、機能を実行するようにプログラムすることができる。「するように構成される」は、規定の動作を実現するために装置の要素が何らかの方法で変更される必要があることを含意しない。
【００９９】
本明細書では添付の図面を参照しながら本技術の例示的な実施形態を詳細に説明してきたが、本技術はそれらの正確な実施形態に限定されず、添付の特許請求の範囲によって規定されるような技術の範囲から逸脱することなく、そこには様々な変更および修正が当業者によって加えられ得ることを理解されたい。
【図１】
2020035419.tif 000003
【図２】
2020035419.tif 000004
【図３】
2020035419.tif 000005
【図４】
2020035419.tif 000006
【図５】
2020035419.tif 000007
【図６】
2020035419.tif 000008
【図７】
2020035419.tif 000009
【図８】
2020035419.tif 000010
【図９】
2020035419.tif 000011
【外国語明細書】
2020035419000001.pdf