(57)【要約】  データ通信装置は、２フェーズプロトコルを用いて、コントローラモジュール（１０２）と、複数のターゲットモジュール（１０４）の間で、効率的なデータ転送を可能にする。コントローラモジュール（１０２）とターゲットモジュール（１０４）は、それぞれ、個別のクロックドメインに属することができる。一実施形態の例と一致する、データ通信装置は、複数のターゲットモジュール（１０４）と、第１のデータ完全性表示信号（１１１）を供給し、ターゲットモジュール（１０４）のそれぞれからの、それぞれの第２のデータ完全性表示信号（１０８）に応じるように構成された第１のＸＯＲツリー（１１０）とを含む。第２のＸＯＲツリー（１１２）は、第１のデータバス（１１４）を供給し、ターゲットモジュール（１０４）のそれぞれからの、それぞれの第２のデータバス（１０６）に応じるように構成されている。また、コントローラモジュール（１０２）を用いて、第１のデータ完全性表示信号（１１１）に応じて、第１のデータバス（１１４）でのデータの利用可能性が決定される。
2008515079.tif 000002
【特許請求の範囲】
【請求項１】
複数のターゲットモジュールと、
第１のデータ完全性表示信号を供給するとともに、前記ターゲットモジュールのそれぞれからの第２のデータ完全性表示信号にそれぞれ応答するように構成された第１のＸＯＲツリーと、
第１のデータバスを供給するとともに、前記ターゲットモジュールのそれぞれからの第２のデータバスにそれぞれ応答するように構成された第２のＸＯＲツリーと、
前記第１のデータ完全性表示信号に応じて、前記第１のデータバスでのデータの利用可能性を決定するように構成されたコントローラモジュールと、
を備えることを特徴とするデータ通信装置。
【請求項２】
前記第１のデータバスは、少なくとも１つの信号を含み、各第２のデータバスは、対応する少なくとも１つの信号を含む、ことを特徴とする請求項１に記載のデータ通信装置。
【請求項３】
前記コントローラモジュールおよび前記複数のターゲットモジュールは、完全非同期モードで通信する、ことを特徴とする請求項１に記載のデータ通信装置。
【請求項４】
前記第１のデータバスは、少なくとも１つの信号を含み、各第２のデータバスは、対応する少なくとも１つの信号を含み、前記第１のＸＯＲツリーは、前記第１のデータ完全性信号を、各第２のデータ完全性表示信号の排他的論理和関数によって供給するように構成されており、前記第２のＸＯＲツリーは、並列して、前記第１のデータバスの前記少なくとも１つの信号のそれぞれを、各第２のデータバスからの対応する信号の排他的論理和関数によって、供給するように構成されている、ことを特徴とする請求項１に記載のデータ通信装置。
【請求項５】
前記ターゲットモジュールのそれぞれは、前記それぞれの第２のデータバスでのデータの利用可能性を、前記それぞれの第２のデータ完全性表示信号の値の修正によって示すように構成されており、前記コントローラモジュールは、前記データの利用可能性を、前記第１のデータ完全性表示信号の値の修正から決定するように構成されている、ことを特徴とする請求項１に記載のデータ通信装置。
【請求項６】
ターゲットモジュールのそれぞれは、前記データを、前記データと前記それぞれの第２のデータバスで先に供給された符号化データとの間の並列的な排他的論理和によって、前記それぞれの第２のデータバスで符号化データとして、供給するように構成されている、ことを特徴とする請求項５に記載のデータ通信装置。
【請求項７】
前記コントローラモジュールは、前記データを、前記第１のデータバスからのデータと前記第１のデータバスからの前のデータとの間の並列的な排他的論理和によって、復号するように構成されている、ことを特徴とする請求項６に記載のデータ通信装置。
【請求項８】
前記ターゲットモジュールのそれぞれは、前記コントローラモジュールからの読み出しアクセスに応じて、前記データの利用可能性を示すように構成されている、ことを特徴とする請求項７に記載のデータ通信装置。
【請求項９】
前記コントローラモジュールは、それぞれの肯定応答完全性表示信号を、前記ターゲットモジュールのそれぞれに供給するように構成されており、前記コントローラモジュールは、前記データの受け取りを、前記それぞれの肯定応答完全性表示信号の値の修正によって示すように構成されている、ことを特徴とする請求項７に記載のデータ通信装置。
【請求項１０】
前記コントローラモジュールは、前記ターゲットモジュールのそれぞれに、アクセスバスを供給するように構成されており、前記コントローラモジュールは、前記データの受け取りの表示とともに、前記アクセスバスでの後続のアクセスを供給するように構成されている、ことを特徴とする請求項９に記載のデータ通信装置。
【請求項１１】
前記コントローラモジュールは、前記第１のデータ完全性表示信号用のシンクロナイザを含むように構成されており、前記ターゲットモジュールのそれぞれは、前記それぞれの肯定応答完全性表示信号用のシンクロナイザを含むように構成されている、ことを特徴とする請求項９に記載のデータ通信装置。
【請求項１２】
データを転送するためのシステムであって、
複数のターゲットモジュールのうちの１つを特定する読み出し動作を生成するためのサブシステムと、
前記複数のターゲットモジュールのうちの前記１つによる前記読み出し動作に関する第１のデータ値を生成するためのサブシステムと、
前記ターゲットモジュールのそれぞれによって、それぞれの第２のデータ値を生成するためのサブシステムであって、前記第２のデータ値は、前記第１のデータ値と前の第２のデータ値との間の排他的論理和演算によって、前記複数のターゲットモジュールのうちの前記１つ向けに修正され、前記第２のデータ値は、前記複数のターゲットモジュールのうちの前記１つ以外の前記ターゲットモジュール向けには修正されない、サブシステムと、
前記ターゲットモジュールのそれぞれによって、それぞれの第１の確認値を生成するためのサブシステムであって、前記第１の確認値は、前記複数のターゲットモジュールのうちの前記１つ向けに修正され、前記第１の確認値は、前記複数のターゲットモジュールのうちの前記１つ以外の前記ターゲットモジュール向けには修正されない、サブシステムと、
排他的論理和演算を用いて、前記第１の確認値から第２の確認値を生成するためのサブシステムと、
前記第２の確認値の修正から、前記第１のデータ値の利用可能性を決定するためのサブシステムと、
排他的論理和演算を用いて、前記第２のデータ値から、第３のデータ値を生成するためのサブシステムと、
前記第３のデータ値と前の第３のデータ値との間の排他的論理和演算によって、前記第１のデータ値を決定するサブシステムと、
を備えることを特徴とするシステム。
【請求項１３】
データを転送するためのシステムであって、
複数のターゲットモジュールのうちの１つを特定する読み出し動作を生成するための手段と、
前記複数のターゲットモジュールのうちの前記１つによる前記読み出し動作に関する第１のデータ値を生成するための手段と、
前記ターゲットモジュールのそれぞれによって、それぞれの第２のデータ値を生成するための手段であって、前記第２のデータ値は、前記第１のデータ値と前の第２のデータ値との間の排他的論理和演算によって、前記複数のターゲットモジュールのうちの前記１つ向けに修正され、前記第２のデータ値は、前記複数のターゲットモジュールのうちの前記１つ以外の前記ターゲットモジュール向けには修正されない、手段と、
前記ターゲットモジュールのそれぞれによって、それぞれの第１の確認値を生成するための手段であって、前記第１の確認値は、前記複数のターゲットモジュールのうちの前記１つ向けに修正され、前記第１の確認値は、前記複数のターゲットモジュールのうちの前記１つ以外の前記ターゲットモジュール向けには修正されない、手段と、
排他的論理和演算を用いて、前記第１の確認値から第２の確認値を生成するための手段と、
前記第２の確認値の修正から、前記第１のデータ値の利用可能性を決定するための手段と、
排他的論理和演算を用いて、前記第２のデータ値から、第３のデータ値を生成するための手段と、
前記第３のデータ値と前の第３のデータ値との間の排他的論理和演算によって、前記第１のデータ値を決定するための手段と、
を備えることを特徴とするシステム。
【請求項１４】
データを転送するための方法であって、
複数のターゲットモジュールのうちの１つを特定する読み出し動作を生成するステップと、
前記複数のターゲットモジュールのうちの前記１つによる前記読み出し動作に関する第１のデータ値を生成するステップと、
前記ターゲットモジュールのそれぞれによって、それぞれの第２のデータ値を生成するステップであって、前記第２のデータ値は、前記第１のデータ値と前の第２のデータ値との間の排他的論理和演算によって、前記複数のターゲットモジュールのうちの前記１つ向けに修正され、前記第２のデータ値は、前記複数のターゲットモジュールのうちの前記１つ以外の前記ターゲットモジュール向けには修正されない、ステップと、
前記ターゲットモジュールのそれぞれによって、それぞれの第１の確認値を生成するステップであって、前記第１の確認値は、前記複数のターゲットモジュールのうちの前記１つ向けに修正され、前記第１の確認値は、前記複数のターゲットモジュールのうちの前記１つ以外の前記ターゲットモジュール向けには修正されない、ステップと、
排他的論理和演算を用いて、前記第１の確認値から第２の確認値を生成するステップと、
前記第２の確認値の修正から、前記第１のデータ値の利用可能性を決定するステップと、
排他的論理和演算を用いて、前記第２のデータ値から、第３のデータ値を生成するステップと、
前記第３のデータ値と前の第３のデータ値の間の排他的論理和演算によって、前記第１のデータ値を決定するステップと、
を備えることを特徴とする方法。
【請求項１５】
データを転送するためのシステムであって、
複数のターゲットモジュールのうちの１つを特定する書き込み動作を生成するためのサブシステムと、
前記ターゲットモジュールのそれぞれによって、それぞれの第１の確認値を生成するためのサブシステムであって、前記第１の確認値は、前記複数のターゲットモジュールのうちの前記１つ向けに修正され、前記第１の確認値は、前記複数のターゲットモジュールのうちの前記１つ以外の前記ターゲットモジュール向けには修正されない、サブシステムと、
排他的論理和演算を用いて、前記第１の確認値から第２の確認値を生成するためのサブシステムと、
前記第２の確認値の修正から、前記書き込み動作の完了を決定するためのサブシステムと、
を備えることを特徴とするシステム。
【請求項１６】
データを転送するためのシステムであって、
複数のターゲットモジュールのうちの１つを特定する書き込み動作を生成するための手段と、
前記ターゲットモジュールのそれぞれによって、それぞれの第１の確認値を生成するための手段であって、前記第１の確認値は、前記複数のターゲットモジュールのうちの前記１つ向けに修正され、前記第１の確認値は、前記複数のターゲットモジュールのうちの前記１つ以外の前記ターゲットモジュール向けには修正されない、手段と、
排他的論理和演算を用いて、前記第１の確認値から第２の確認値を生成するための手段と、
前記第２の確認値の修正から、前記書き込み動作の完了を決定するための手段と、
を備えることを特徴とするシステム。
【請求項１７】
データを転送するための方法であって、
複数のターゲットモジュールのうちの１つを特定する書き込み動作を生成するステップと、
前記ターゲットモジュールのそれぞれによって、それぞれの第１の確認値を生成するステップであって、前記第１の確認値は、前記複数のターゲットモジュールのうちの前記１つ向けに修正され、前記第１の確認値は、前記複数のターゲットモジュールのうちの前記１つ以外の前記ターゲットモジュール向けには修正されない、ステップと、
排他的論理和演算を用いて、前記第１の確認値から第２の確認値を生成するステップと、
前記第２の確認値の修正から、前記書き込み動作の完了を決定するステップと、
を備えることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、データ通信に関する。より具体的には、本発明は、２フェーズハンドシェイキングプロトコルを用いたデータ転送のための方法および装置に関する。
【背景技術】
【０００２】
より複雑な回路への継続的な要求は、著しい達成をもたらしており、これは、シリコンウエハの小さな領域での回路の超大規模集積の製造を通じて実現されてきた。これらの複雑な回路は、多くの場合、機能的に定義されたモジュールのセットとして設計され、モジュールは、データを処理し、次いで、処理されたデータを、さらなる処理のために他のモジュールに転送する。この機能的に定義されたモジュール間の通信により、同一の集積回路内のモジュール間で、または、より離れた位置の通信回路装置およびシステムの間で、少量または大量のデータを渡すことができる。データの完全性が維持されることを確実にするため、および、集積回路設計が、実装スペースおよび利用可能な動作電力に関する実用上の制限に敏感であることを確実にするために、通信は、その構成にかかわらず、通常、近接して制御されるインターフェイスを必要とする。
【０００３】
回路の複雑さが増大すると同時に、モジュール間でデータが渡される速度を速くするという要求がある。これらの高速通信用途の多くは、複数のデータビットが、並列の通信パスにまたがって同時に送られる、並列データ相互接続送信を用いて実現することができる。このような“並列送信（parallel bussing）”は、高いデータレートでのデータ転送を達成するために広く受け入れられているアプローチである。
【０００４】
典型的なシステムは、例えば集積回路、ケーブルおよび／または他の相互接続上の内部バスの形態をとる、並列データバスとインターフェイシングし、並列データバスを介して通信する、複数のモジュールを含む場合がある。送信モジュールは、バスを介して、送信モジュールのクロックと同期してデータを送信する。このように、並列信号ラインでの遷移は、送信モジュールを、互いに、および送信モジュールのクロックと、同期関係のままにする。並列データ相互接続のリモートエンドで、受信モジュールは、並列データバスでデータを受信する。このようなシステムでは、受信信号は、正しいデータ回復を提供するために、受信モジュールのクロックと特定のフェーズ関係を持つ必要がある。
【０００５】
多くの集積回路は、２つ以上のクロックドメインを含み、従って、データ送信モジュールは、１つのクロックドメインで、第１のクロック周波数で動作しているかもしれず、一方で、データ受信モジュールは、他のクロックドメインにおいて、異なる第２のクロック周波数で動作している。また、同一のクロック周波数で動作するが未知のフェーズ関係を有するデータ送信モジュールおよびデータ受信についても、複数のクロックドメインが生じ得る。クロックドメイン間のインターフェイスは、情報が境界を通過するクロックドメイン境界、すなわちクロックドメイン交差点である。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
送信および受信モジュールが、異なるクロックドメインに属する箇所では、クロックドメイン境界を越えて転送されるデータの完全性を維持するために、同期が必要とされる。ハンドシェイキングプロトコルすなわち中間バッファを用いて、必要とされる同期を、クロックドメイン交差点で実現することができる。同期バッファは、米国特許第６，１５４，８０３号、“基準チップと外部バスの間でデータを渡すための方法および装置（Method and Arrangement for Passing Data between a Reference Chip and an External Bus）”で示されているように、従来、２つのクロックドメインの間での２地点間通信に用いられる。ハンドシェイキングプロトコルは、並列バスとインターフェイスをとる複数のモジュールに対応する３つ以上のクロックドメインの間で、並列バスの同期に使用することができる。しかし、このような環境での従来のハンドシェイキングプロトコルは、４フェーズハンドシェイクプロトコルであり、これは、可能なデータ転送レートを制限する。
【０００７】
複数のクロックドメインを使用する集積回路の実現は、様々な理由から望ましく、例えば、Philips Semiconductors社のデバイス制御および状態ネットワーク（device control and status network (DCS network)）は、コントローラが、個別のクロックソースを有する可能性がある複数の周辺装置と通信することを可能にする。したがって、クロックドメイン間での並列バスを介したデータ通信の改善は、より実用的かつ高速の並列バスの利用を可能にし、これは一方で、高速回路への要求に、直接役立てることができる。本発明の様々な態様は、上述の欠点に対処し、かつ、他の用途にも有用な通信方法および装置を提供する。
【課題を解決するための手段】
【０００８】
本発明の様々な態様は、上述の問題に対処し、克服するようなやり方のデータ転送に関する。一実施形態の例と一致する、データ通信装置は、複数のターゲットモジュールと、第１のデータ完全性表示信号を供給し、ターゲットモジュールのそれぞれからの第２のデータ完全性表示信号にそれぞれ応じるように構成された第１のＸＯＲツリーとを含む。第２のＸＯＲツリーは、第１のデータバスを供給し、ターゲットモジュールのそれぞれからの第２のデータバスにそれぞれ応じるように構成されている。また、コントローラモジュールを用いて、第１のデータ完全性表示信号に応じて、第１のデータバスでのデータの利用可能性が決定される。
【０００９】
本発明の他の実施形態は、読み出し動作と関連する、第１のデータ値を転送するための方法を開示する。読み出し動作が生成され、複数のターゲットモジュールのうちの１つを特定する。特定されたターゲットモジュールにより、第１のデータ値が生成される。ターゲットモジュールのそれぞれによって、それぞれの第２のデータ値が生成され、第２のデータ値は、第１のデータ値と前の第２のデータ値との間の排他的論理和演算によって、特定されたターゲットモジュール向けに修正され、第２のデータ値は、特定されたターゲットモジュール以外のターゲットモジュール向けには修正されない。また、ターゲットモジュールのそれぞれによって、それぞれの第１の確認値が生成され、第１の確認値は、特定されたターゲットモジュール向けに修正され、第１の確認値は、特定されたターゲットモジュール以外のターゲットモジュール向けには修正されない。排他的論理和演算により、第１の確認値から第２の確認値が生成される。第２の確認値の修正から、第１のデータ値の利用可能性が決定される。排他的論理和演算により、第２のデータ値から第３のデータ値が生成される。第１のデータ値は、第３のデータ値と前の第３のデータ値との間の排他的論理和演算によって、決定される。
【発明を実施するための形態】
【００１０】
本発明は、添付の図面と関連する、以下の本発明の様々な実施形態の詳細な説明を考察することによって、より完全に理解することができる。
【００１１】
本発明は、様々な変更および代替形態に適するが、その詳細は、図面において例示されており、詳しく説明される。しかし、本発明は、説明される特定の実施形態に発明を限定しないことに留意すべきである。対照的に、本発明は、添付の特許請求の範囲に定義されるように、本発明の要旨および範囲に含まれる全ての変更、均等物、および代案をカバーする。
【００１２】
本発明は、概して、モジュール間でデータを転送するための方法および装置に適用可能であると考えられる。本発明は、異なるクロックドメインに属するモジュール間でのデータの転送に、特に有利であることが見出されている。このような応用例として、特に、場合によってはそれぞれ個別のクロックドメインに属することが可能な複数の集積された周辺装置と通信する１つのクロックドメイン内のコントローラを使用するシステムオンチップや、１つまたは複数のプリント回路基板に配置することが可能な集積回路間の高速通信が挙げられる。本発明は、このような応用例に必ずしも限定されないが、本発明の様々な態様の理解は、このような環境での例を考察することによって、最良に得られる。
【００１３】
本発明の一実施形態の例によると、データ通信装置は、それぞれが肯定応答信号とデータバスとを供給する、複数のターゲットを有する。各ターゲットは、それぞれの肯定応答信号の遷移を用いて、それぞれのデータバスでのデータの利用可能性を示す。全ての肯定応答信号の排他的論理和関数が、グローバル肯定応答信号を生成し、ターゲットに対する肯定応答信号のうちの１つの遷移は、グローバル肯定応答信号に関連する遷移に伝播する。各ターゲットは、ターゲットからのデータと前の符号化データとの間の並列的な排他的論理和によって、データバスのデータを符号化する。全てのデータバスの並列的な排他的論理和関数が、グローバルデータバスを生成する。コントローラが、グローバル肯定応答信号の遷移を観察することにより、グローバルデータバスでのデータの利用可能性を決定する。コントローラは、グローバルデータバスの現在および前の値の間の並列的な排他的論理和によって、グローバルデータバスからのデータを復号する。コントローラは、ターゲットに対応する要求信号をトグルすることによって、データの受け取りを示し、場合によっては、その後のアクセス要求を供給する。
【００１４】
本発明のさまざまな実施形態は、コントローラモジュールと複数のターゲットモジュールの間で、並列バスインターフェイスに類似したやり方でのデータ転送を可能にし、一方で、２フェーズ転送プロトコルを使用した効率的なデータ転送を可能にする。２フェーズ転送プロトコルは、従来の４フェーズ転送プロトコルから、データを転送しない２つの回復フェーズを除去している。データ転送は効率的に行われるが、これは、従来の４フェーズプロトコルの回復フェーズの代わりに、２フェーズプロトコルの２つのフェーズを繰り返すことにより、２フェーズプロトコルを用いたデータ転送の後に、他の転送が即座に発生可能なためである。回復フェーズをなくすことは、また、データ転送に必要な電力を減少させることができ、これは、通常、従来の４フェーズ転送プロトコルでの回復フェーズ中に実施されるような、データバスをデフォルト値に戻すことに関連する信号スイッチングがなくなるからである。２フェーズプロトコルの２つの交互に繰り返すフェーズは、前の要求の結果の受け取りを肯定応答することが可能な要求フェーズと、肯定応答フェーズである。コントローラモジュールと、ターゲットモジュールのそれぞれは、個別のクロックドメインに属することができる。
【００１５】
図１を参照すると、一例として、本発明に係る、コントローラモジュール１０２と、複数のターゲットモジュール１０４の間に、データ通信装置１００のブロック図が示されている。コントローラモジュール１０２は、ターゲットモジュール１０４のいずれか１つからのデータを要求できる。通常、コントローラモジュール１０２は、タ―ゲットモジュール１０４に対する複数の要求を、同時に重複させない。
【００１６】
ターゲットモジュール１０４が、コントローラモジュール１０２からの読み取り要求を満たすデータなどの、コントローラモジュール１０２に送るデータを得ると、ターゲットモジュール１０４は、ライン１０６の対応するデータバスを介して、コントローラモジュール１０２にデータを送る。一実施形態において、ターゲットモジュール１０４によって、ライン１０６の対応するデータバスを介して、コントローラモジュール１０２に送られたデータは、後に詳述するように、符号化することが可能である。ライン１０６の対応するデータバスを介したデータの送信と共に、ターゲットモジュール１０４は、ライン１０８の対応する肯定応答信号の現在値を修正して、有効データが使用可能であることを示す。ターゲットモジュール１０４によるライン１０８の肯定応答信号の修正は、ライン１０８の肯定応答信号の値のトグリングとすることができる。よって、ライン１０８の肯定応答信号のローからハイまたはハイからローの遷移のいずれかにより、ライン１０６の対応するデータバスにおいて、対応するターゲットモジュール１０４からのデータが使用可能であることを示すことができる。
【００１７】
ターゲットモジュール１０４が、データの使用可能であることを示していない限り、ターゲットモジュール１０４は、ライン１０８の対応する肯定応答信号の値を修正しない。ターゲットモジュール１０４が、コントローラモジュール１０２にデータを送信していない限り、ターゲットモジュール１０４は、ライン１０６の対応するデータバスの値を修正しない。
【００１８】
排他的論理和関数１１０は、ライン１０８の全ての肯定応答信号の排他的論理和を生成して、ライン１１１のグローバル肯定応答信号を生成する。排他的論理和関数１１０は、ライン１０８の肯定応答信号のいずれか１つの遷移が、ライン１１１のグローバル肯定応答信号の遷移に伝播するという特性を有する。よって、バスコントローラ１０２は、ライン１１１のグローバル肯定応答信号の遷移から、ライン１０６の対応するデータバスでデータが使用可能であることをターゲット１０４が示していると決定することができる。
【００１９】
並列的な排他的論理和関数１１２は、ライン１０６の全てのデータバスから、ライン１１４のグローバルデータバスを生成する。一般的には、ライン１０６のデータバスおよびライン１１４のグローバルデータバスは、１または複数の信号の同一のビット幅を有する。並列的な排他的論理和関数１１２は、ライン１０６のデータバスからの対応するビットの排他的論理和から、ライン１１４のグローバルデータバスの各ビットを生成し、例えば、ライン１１４のグローバルデータバスの最下位ビットは、ライン１０６のデータバスのそれぞれからの最下位ビットの排他的論理和から生成される。
【００２０】
並列的な排他的論理和関数１１２は、ライン１０６のデータバスのどのような修正も、ライン１１４のグローバルデータバスの修正に伝播するという特性を有する。ターゲットモジュール１０４によって送られたデータが、通常は、ターゲットモジュール１０４からコントローラモジュール１０２まで、修正なしには転送されない一方、後に詳述するように、コントローラモジュール１０２によりグローバルデータバス１１４で観測された修正を用いて、ライン１０６のデータバスでターゲットモジュール１０４によって送られたデータ値を決定することができる。
【００２１】
データ通信装置１００が、一般的には、２値論理システム用に使用されるが、データ通信装置１００は、３値論理システムなどの、他の論理システムにも使用できることが理解される。
【００２２】
図１に示される要素は、本発明の理解を助けるための、単なる説明のためのものであることを理解すべきである。当該技術分野で知られるように、ハードウェアとして説明される要素は、同等に、ソフトウェアでも実現することができる。特定の電子回路に対する参照もまた、単に本発明の理解を助けるためのものであり、基本的に同一の機能を行う回路はどれも、同等の回路とみなされる。
【００２３】
図２を参照すると、一例として、本発明に係る分散された排他的論理和ツリーを示す、データ通信装置のブロック図が示されている。コントローラモジュール１０２は、複数のターゲットモジュール１０４とデータの通信を行う。ＸＯＲゲート２０２，２０４，２０６，および２０８は、ＸＯＲツリーを形成し、集合的に、図１の排他的論理和関数１１０に対応する。ＸＯＲゲート２１０，２１２，２１４，および２１６は、ＸＯＲツリーを形成し、集合的に、図１の排他的論理和関数１１２に対応する。ＸＯＲゲート２０２，２０４，２０６，および２０８により形成されるＸＯＲツリーは、ターゲットモジュール１０４のライン１０８の肯定応答信号から、ライン１１１にグローバル肯定応答信号を生成する。ＸＯＲゲート２１０，２１２，２１４，および２１６により形成されるＸＯＲツリーは、ターゲットモジュール１０４のライン１０６のデータバスから、ライン１１４にグローバルデータバスを生成する。
【００２４】
ＸＯＲゲート２０２，２０４，２０６，および２０８で形成されるＸＯＲツリーなどのＸＯＲツリーは、ツリーの全体的な機能が、ライン１０８の肯定応答信号などの入力の排他的論理和であるグローバル肯定応答信号などの出力を、ライン１１１に生成する限りは、様々な配置を有することができる。ライン１１４のグローバルデータバスの個別ビットは、それぞれ、固有の配置を有するＸＯＲツリーを有することができる。
【００２５】
各ＸＯＲツリーは、ＸＯＲツリーを実現するために必要な配線を減少させるように選択された、分散された配置を有することができる。例えば、図２のモジュール１０２および１０４の配置は、概ね、集積回路上のモジュール１０２および１０４の物理配置に対応し、隣接する物理位置に基づくモジュール１０２および１０４のクラスタリングの第１のレベルを用いて、ＸＯＲゲート２０４，２０６，および２０８の第１のレベルについて示されているように、ＸＯＲツリーの第１のレベルを生成することができる。モジュールの物理クラスタリングは、ＸＯＲツリーの各レベルで使用することができる。必要とされる配線は、特に多数のターゲットモジュール１０４がある場合に、著しく減少できる。分散されたＸＯＲツリーは、また、集積回路または他のシステム上の長い信号ラインをなくすことができ、これにより、長い信号ラインに起因することのある過剰な伝播遅延を排除する。
【００２６】
図３を参照すると、本発明に係る、例としてのターゲットモジュール１０４のブロック図が示されている。ターゲットモジュール１０４は、ターゲットモジュール１０４のターゲットロジック３０４が、コントローラモジュール（図示せず）とインターフェイスをとるために用いられる、ターゲットインターフェイス３０２を含んでいる。
【００２７】
コントローラモジュールは、アクセス要求を、ライン３０６のアクセスバスにより、ターゲットモジュール１０４に供給することができる。ライン３０８の要求信号を用いて、ライン３０６のアクセスバスに有効なアクセス要求があることを示すことができ、また、前のアクセス要求に関するターゲットモジュール１０４からの結果が、コントローラモジュールによって受け入れられたことを示すことができる。ノンオペレーション（ＮＯＰ：no-operation）アクセス要求を用いて、ターゲットモジュール１０４による処理を要求する追加のアクセス要求を示すことなく、前のアクセス要求に関する結果の受け入れを示すことができる。ライン３０８の要求信号のトグリングなどの修正を用いて、ライン３０６のアクセスバスのアクセス要求の利用可能性を示すことができ、また、前のアクセス要求に関する結果のコントローラモジュールによる受け入れを示すことができる。
【００２８】
ターゲットモジュール１０４およびコントローラモジュールは、ターゲットモジュール１０４とコントローラモジュールの間の通信に同期が必要とされるような、異なるクロックドメインにおいて動作することができる。第１のレジスタ３１０は、ターゲットモジュール１０４の局部クロックに基づいて、ライン３０８の要求信号をサンプリングすることができる。コントローラモジュールとターゲットモジュール１０４のそれぞれのクロックは、同期されない可能性があるので、第１のレジスタ３１０は、ライン３０８の要求信号の遷移の間に、ライン３０８の要求信号をサンプリングすることができる。よって、信号３１２は、第１のレジスタ３１０によるサンプリングの直後に、未定義の準安定値を持つことができる。通常、信号３１２のどのような準安定性も、第２のレジスタ３１４によってサンプリングされる前に、第１のレジスタ３１０によって解決され、よって、レジスタ３１０および３１４が、ライン３０８の要求信号を、ターゲットモジュール１０４の局部クロックに同期させる。一般的には、ターゲットモジュールおよびコントローラモジュールが、異なるクロックドメインにある場合にのみ、第２のレジスタ（またはフリップフロップ）３１４は使用される。ターゲットがコントローラと同じ領域にある代替の実施形態においては、この第２のレジスタ３１４はバイパスされる。
【００２９】
コントローラモジュールは、ライン３０６のアクセスバスの対応するアクセス要求と共に、ライン３０８の要求信号の遷移を供給するので、ライン３１６の同期された要求信号の遷移は、ライン３０６のアクセスバスが、ターゲットモジュール１０４の局部クロックの少なくとも１クロックサイクルにわたって安定値を持たない限り、ターゲットロジック３０４によって認識されない。よって、レジスタ３１８は、ライン３１６の同期された要求信号が遷移を有する場合はいつでも、ライン３２０で安定値をサンプリングおよび供給する。ライン３１６の同期された要求信号が、遷移を持たない場合、ライン３２０のアクセス要求は、準安定値を有することができ、この潜在的な準安定値は、ターゲットロジック３０４によって無視されるべきである。
【００３０】
ライン３０６のアクセスバスで供給されるアクセス要求は、ターゲット１０４と関連付けられた、メモリまたはＩ／Ｏ位置などの他の位置に対する読み出しアクセスとすることができる。読み出しアクセスに関するデータを得た後、ターゲットロジック３０４は、ライン３２２でデータを供給し、かつライン３２４の更新信号を、ターゲット１０４クロックの１クロックサイクルにわたってアサートすることができ、インバータ３２６、マルチプレクサ３２８、およびレジスタ３３０は、ライン３２４の更新信号用のパルスを、ライン１０８の肯定応答遷移に変換することができ、この遷移は、図１の排他的論理和関数１１０などのＸＯＲツリーを介して、コントローラモジュールに伝播する。ＸＯＲゲート３３２、マルチプレクサ３３４およびレジスタ３３６は、ライン３２２の読み出しアクセスに関するデータを符号化する。符号化データは、１の値を有するライン３２２のデータの対応するビットに対する、ライン１０６のデータバスのビットの遷移を有し、符号化データは、ゼロの値を有するライン３２２のデータのビットに対する、ライン１０６のデータバスのビットの遷移を持たない。
【００３１】
ライン１０６の符号化データのビットは、代わりに、ゼロの値を有するライン３２２のデータに対する遷移を持つことができ、１の値を有するライン３２２のデータに対する遷移は持たないことが理解される。他の実施形態においては、ＸＯＲゲート３３２およびマルチプレクサ３３４は省略され、ライン３２２のデータは、レジスタ３３６に直接送られることにより、符号化されない。
【００３２】
一実施形態においては、各書き込みアクセスが、ターゲット１０４で出され、ターゲット１０４によって肯定応答されない。他の実施形態では、いくつかまたは全ての書き込みアクセスが、ターゲットロジック３０４によって肯定応答され、ライン３２４で、１サイクルにわたり更新信号をアサートし、一方、ライン３２２でデフォルトデータ値を供給する。いくつかまたは全ての書き込みアクセスの肯定応答は、フロー制御または命令の目的で使用することができる。ライン３０８の要求信号は、前の読み出しアクセスに対するコントローラモジュールによる読み出しデータの受け取りか、または先の書き込みアクセスに対するコントローラモジュールによる書き込みの完了の受け取りを示すことができる。
【００３３】
図４を参照すると、本発明に係る、例としてのコントローラモジュール１０２のブロック図が示されている。コントローラモジュール１０２は、コントローラモジュール１０２のコントローラロジック４０４が、ターゲットモジュール（図示せず）とインターフェイスをとるために用いられる、コントローラインターフェイス４０２を含んでいる。
【００３４】
コントローラモジュール１０２は、全てのターゲットモジュールに結合される、ライン３０６のアクセスバスを持つことができる。コントローラモジュール１０２は、ライン４０６，３０８，および４０８に、ターゲットモジュールのそれぞれに対する個別の要求信号を持つことができる。ライン４０６，３０８，および４０８のそれぞれの要求信号を用いて、対応するターゲットモジュールに対して指定されたライン３０６のアクセスバスでのアクセス要求の利用可能性を示すことができ、対応するターゲットモジュールからの前のアクセス要求の結果の受け取りを示すことができる。他の実施形態においては、１つの要求信号のみが、ライン３０８にあり、ライン３０６のアクセスバスは、ターゲットモジュール間で分割されたアドレス空間を有するアドレスや、ターゲットモジュールを指定するタグなどの、ターゲットモジュールを特定する情報を含む。
【００３５】
排他的論理和関数１１０は、ターゲットモジュールからの全ての肯定応答信号１０８の排他的論理和を行い、ライン１１１にグローバル肯定応答信号を生成する。コントローラモジュール１０２は、ライン１１１のグローバル肯定応答信号を、コントローラモジュール１０２の局部クロックと同期させる、レジスタ４１０および４１２を有する。図３の例示のように、第２のレジスタ４１２は、ターゲットモジュールおよびコントローラモジュールが、異なるクロックドメインにある場合にのみ使用される。ターゲットがコントローラと同じ領域にある、代替の実施形態においては、この第２のレジスタ４１２はバイパスされる。
【００３６】
マルチプレクサ４１４、レジスタ４１６、およびＸＯＲゲート４１８は、ターゲットモジュールのうちの１つからのライン１０８での肯定応答遷移によって、ライン１１１のグローバル肯定応答信号の肯定応答遷移が発生した後に、ライン４２０にアサート値を生成する。コントローラロジック４０４は、ライン４２０のアサート値を観測すると、ライン４２２の復号データをサンプリングすることができる。ターゲットモジュールは、ライン１０８の肯定応答信号の遷移と共に、ライン１０６の符号化データを転送する。よって、ライン４２２の復号データは、安定値を有し、その理由は、コントローラロジック４０４によってライン４２０でアサート値が観測されたときはいつでも、ライン１１４のグローバルデータバスが、コントローラモジュール１０２の少なくとも１局部クロックサイクルにわたって安定しているからである。
【００３７】
ターゲットモジュールからのデータバス１０６の値の変化は、排他的論理和関数１１２によって、グローバルデータバス１１４の値における対応する変化に伝播し、そして、レジスタ１２４によって取得される。マルチプレクサ４２６、レジスタ４２８、およびＸＯＲゲート４３０は、グローバルデータバス１１４の値における変化を、ターゲットモジュールによって符号化されたデータに対応するライン４２２の復号データへと復号する。ライン４２２の復号データをサンプリングした後、コントローラロジック４０４は、ライン４３２のサンプル信号を、コントローラモジュール１０２の局部クロックの１サイクルの間、アサートすることができる。
【００３８】
ライン４３２のサンプル信号のパルスは、マルチプレクサ４１４を介して、レジスタ４１６を、ライン１１１のグローバル肯定応答信号の現在レベルで更新させ、これにより、ＸＯＲゲート４１８は、ライン４２０の値を、ライン１１１のグローバル肯定応答信号のその後の遷移までデアサートする。ライン４３２のサンプル信号のパルスは、レジスタ４２８を、ライン１１４のグローバルデータバスの現在値を反映したレジスタ４２４の現在値で更新させる。レジスタ４２８の更新は、ＸＯＲゲート４３０が、ライン１１４のグローバルデータバスの符号化値内でのその後の遷移を、ライン４２２の復号値に変換することを可能にする。復号の間に、遷移を有するビット幅は、１の値に変換され、遷移のないビットは、ゼロの値に変換される。
【００３９】
他の実施形態においては、ターゲットモジュールは、ライン１０６のデータバスのデータを符号化せず、コントローラモジュール１０２は、各ターゲットモジュールについて、ターゲットモジュールにより駆動されて現在データ値のコピーを記憶するレジスタを、維持する。ライン１１４のデータバスで観測される遷移を用いて、特定のターゲットモジュールに対応するレジスタの値が更新される。ライン１１４のグローバルデータバスで観測される遷移を有するビットは、特定のターゲットモジュールに対応するレジスタ内の対応するビットを補足させる。ライン１１４のグローバルデータバスで観測される遷移がないビットは、特定のターゲットモジュールに対応するレジスタ内の対応するビットを、修正されないままにする。
【００４０】
図５を参照すると、本発明に係る、コントローラモジュールと複数のターゲットモジュールの間のデータ通信のための、例としてのプロセス５００のフロー図が、示されている。ステップ５０２において、コントローラモジュールは、読み出しアクセスまたは書き込みアクセスなどのアクセスを生成し、アクセスは、個々のターゲットモジュールを特定する。ターゲットモジュールは、例えば、アドレスマップを介して個々のターゲットモジュールに対応するアクセスに含まれるアクセスアドレスによって、特定してもよく、または、個々のターゲットモジュールを特定するアクセスに含まれるタグによって、特定してもよく、または、個々のターゲットモジュールに対応する、リクエスト信号などの個別のストローブ信号をアサートすることによって、特定してもよい。読み出しアクセスでは、プロセス５００は、決定５０４からステップ５０６へと進み、書き込みアクセスでは、プロセス５００は、決定５０４からステップ５２０に進む。
【００４１】
ステップ５０６において、特定されたターゲットは、読み出しアクセスに関する位置から、読み出しアクセスを満足するデータを取得する。データは、特定されたターゲットモジュールによって、このデータと、特定されたターゲットモジュールについて前に符号化されたデータとの間の並列的な排他的論理和により、ステップ５０８で符号化される。特定されたターゲットモジュール以外のターゲットモジュールは、それぞれの符号化データを修正しない。ステップ５１０において、特定されたターゲットモジュールに対する肯定応答信号は、読み出しアクセスに対する符号化データの利用可能性を示すように、トグルされ、一方、特定されたターゲットモジュール以外のターゲットモジュールに対する肯定応答信号は、修正されないままとなる。
【００４２】
ステップ５１２において、ターゲットモジュールのそれぞれから、肯定応答信号の排他的論理和によって、グローバル肯定応答信号が生成される。ステップ５１４において、グローバル肯定応答信号のトグリングから、読み出しアクセスに対する符号化データの利用可能性が決定される。グローバルデータバスは、ステップ５１６において、ターゲットモジュールのそれぞれからのデータバスの並列的な排他的論理和によって生成される。ステップ５１８において、グローバルデータバスの現在および前の値の間の排他的論理和によって、グローバルデータバスの現在および前の値から、読み出しデータが復号される。
【００４３】
特定の書き込みアクセスについては、特定されたターゲットモジュールによって、この書き込みアクセスに対する完了を生成することができる。ステップ５２０において、書き込みアクセスの完了は、特定されたターゲットモジュールに対する肯定応答信号をトグルすることで示され、一方、特定されたターゲット信号以外のターゲット信号に対する肯定応答信号は、修正されないままとなる。グローバル肯定応答信号は、ステップ５２２において、ターゲットモジュールのそれぞれからの肯定応答信号の排他的論理和によって生成される。ステップ５２４において、書き込みアクセスの完了は、グローバル肯定応答信号のトグリングから決定される。
【００４４】
これらのデータ通信装置およびアプローチは、同期（クロックド（clocked））設計に限定されず、完全非同期の実施にも応用可能であることが理解される。このような応用は、例えばコントローラモジュールまたはターゲットモジュールのいずれにもクロックが含まれない完全非同期の通信プロトコルを用いた、１つまたは複数の上述の実施形態を検討する際に、明らかとなる。このようなプロトコルは、ファーバー（Furber），Ｓ．Ｂ．、エドワーズ（Edwards），Ｄ．Ａ．、ガーサイド（Garside）、Ｊ．Ｄ．らの、ＡＭＵＬＥＴ３：１００ＭＩＰＳ非同期埋め込みプロセッサ（AMULET3: A 100 MIPS Asynchronous Embedded Processor）、２０００年９月１７〜２０日の国際会議２０００（2000 International Conference）における、コンピュータ設計（Computer Design）の３２９〜３３４頁、および１９９０年１２月の固体回路のＩＥＥＥジャーナル（IEEE Journal of Solid-State Circuits）、Ｖｏｌ．２５、Ｎｏ．６、１５２６〜１５３７頁における、ジェイコブス（Jacobs），Ｇ．Ｍ．、ブロダーセン（Brodersen），Ｒ．Ｗ．らの、セルフタイムド回路を用いた完全非同期のデジタル信号プロセッサ（Fully Asynchronous Digital Signal Processor Using Self-timed Circuits）において、例示および説明されており、これら文献は、参考のためにここに引用される（また、付録Ａおよび付録Ｂとしてここに添付する）。
【００４５】
このように、コントローラモジュールと複数のターゲットモジュールの間のデータ通信を伴う、本発明の例としての実施形態として、様々な実施形態を、図面および／または考察によって説明した。本発明は、これらの特定の例としての実施に限定されるとみなすべきではない。本発明を適用可能な様々な変更、同等のプロセス、および数多くの構造が、本発明の範囲に入る。例えば、同様に形成されたインターフェイスを、チップセット装置間での通信用に同様に構成されたインターフェイスを用いて、マルチチップまたはシングルチップ装置を実施することができる。このような変形は、添付の特許請求の範囲において公正に定められるように、特許請求される本発明の一部とみなすことが可能である。
【図面の簡単な説明】
【００４６】
【図１】図１は、本発明に係る、コントローラモジュールと複数のターゲットモジュールの間の、例としてのデータ通信装置のブロック図である。
【図２】図２は、本発明に係る、分散された排他的論理和ツリーを示す例としてのデータ通信装置のブロック図である。
【図３】図３は、本発明に係る、例としてのターゲットモジュールのブロック図である。
【図４】図４は、本発明に係る、例としてのコントローラモジュールのブロック図を示している。
【図５】図５は、本発明に係る、コントローラモジュールと複数のターゲットモジュールの間のデータ通信のための、例としてのプロセスのフロー図である。
【図１】
2008515079.tif 000003
【図２】
2008515079.tif 000004
【図３】
2008515079.tif 000005
【図４】
2008515079.tif 000006
【図５】
2008515079.tif 000007
【国際調査報告】
2008515079.tif 000008
2008515079.tif 000009