JP2008515079A - 2フェーズデータ転送プロトコル - Google Patents

2フェーズデータ転送プロトコル Download PDF

Info

Publication number
JP2008515079A
JP2008515079A JP2007534161A JP2007534161A JP2008515079A JP 2008515079 A JP2008515079 A JP 2008515079A JP 2007534161 A JP2007534161 A JP 2007534161A JP 2007534161 A JP2007534161 A JP 2007534161A JP 2008515079 A JP2008515079 A JP 2008515079A
Authority
JP
Japan
Prior art keywords
data
value
target modules
target
generating
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.)
Withdrawn
Application number
JP2007534161A
Other languages
English (en)
Inventor
ティモシー、エイ.ポンティウス
ジェンス、ローバー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
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 Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2008515079A publication Critical patent/JP2008515079A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/4226Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Dc Digital Transmission (AREA)

Abstract

データ通信装置は、2フェーズプロトコルを用いて、コントローラモジュール(102)と、複数のターゲットモジュール(104)の間で、効率的なデータ転送を可能にする。コントローラモジュール(102)とターゲットモジュール(104)は、それぞれ、個別のクロックドメインに属することができる。一実施形態の例と一致する、データ通信装置は、複数のターゲットモジュール(104)と、第1のデータ完全性表示信号(111)を供給し、ターゲットモジュール(104)のそれぞれからの、それぞれの第2のデータ完全性表示信号(108)に応じるように構成された第1のXORツリー(110)とを含む。第2のXORツリー(112)は、第1のデータバス(114)を供給し、ターゲットモジュール(104)のそれぞれからの、それぞれの第2のデータバス(106)に応じるように構成されている。また、コントローラモジュール(102)を用いて、第1のデータ完全性表示信号(111)に応じて、第1のデータバス(114)でのデータの利用可能性が決定される。

Description

本発明は、概して、データ通信に関する。より具体的には、本発明は、2フェーズハンドシェイキングプロトコルを用いたデータ転送のための方法および装置に関する。
より複雑な回路への継続的な要求は、著しい達成をもたらしており、これは、シリコンウエハの小さな領域での回路の超大規模集積の製造を通じて実現されてきた。これらの複雑な回路は、多くの場合、機能的に定義されたモジュールのセットとして設計され、モジュールは、データを処理し、次いで、処理されたデータを、さらなる処理のために他のモジュールに転送する。この機能的に定義されたモジュール間の通信により、同一の集積回路内のモジュール間で、または、より離れた位置の通信回路装置およびシステムの間で、少量または大量のデータを渡すことができる。データの完全性が維持されることを確実にするため、および、集積回路設計が、実装スペースおよび利用可能な動作電力に関する実用上の制限に敏感であることを確実にするために、通信は、その構成にかかわらず、通常、近接して制御されるインターフェイスを必要とする。
回路の複雑さが増大すると同時に、モジュール間でデータが渡される速度を速くするという要求がある。これらの高速通信用途の多くは、複数のデータビットが、並列の通信パスにまたがって同時に送られる、並列データ相互接続送信を用いて実現することができる。このような“並列送信(parallel bussing)”は、高いデータレートでのデータ転送を達成するために広く受け入れられているアプローチである。
典型的なシステムは、例えば集積回路、ケーブルおよび/または他の相互接続上の内部バスの形態をとる、並列データバスとインターフェイシングし、並列データバスを介して通信する、複数のモジュールを含む場合がある。送信モジュールは、バスを介して、送信モジュールのクロックと同期してデータを送信する。このように、並列信号ラインでの遷移は、送信モジュールを、互いに、および送信モジュールのクロックと、同期関係のままにする。並列データ相互接続のリモートエンドで、受信モジュールは、並列データバスでデータを受信する。このようなシステムでは、受信信号は、正しいデータ回復を提供するために、受信モジュールのクロックと特定のフェーズ関係を持つ必要がある。
多くの集積回路は、2つ以上のクロックドメインを含み、従って、データ送信モジュールは、1つのクロックドメインで、第1のクロック周波数で動作しているかもしれず、一方で、データ受信モジュールは、他のクロックドメインにおいて、異なる第2のクロック周波数で動作している。また、同一のクロック周波数で動作するが未知のフェーズ関係を有するデータ送信モジュールおよびデータ受信についても、複数のクロックドメインが生じ得る。クロックドメイン間のインターフェイスは、情報が境界を通過するクロックドメイン境界、すなわちクロックドメイン交差点である。
送信および受信モジュールが、異なるクロックドメインに属する箇所では、クロックドメイン境界を越えて転送されるデータの完全性を維持するために、同期が必要とされる。ハンドシェイキングプロトコルすなわち中間バッファを用いて、必要とされる同期を、クロックドメイン交差点で実現することができる。同期バッファは、米国特許第6,154,803号、“基準チップと外部バスの間でデータを渡すための方法および装置(Method and Arrangement for Passing Data between a Reference Chip and an External Bus)”で示されているように、従来、2つのクロックドメインの間での2地点間通信に用いられる。ハンドシェイキングプロトコルは、並列バスとインターフェイスをとる複数のモジュールに対応する3つ以上のクロックドメインの間で、並列バスの同期に使用することができる。しかし、このような環境での従来のハンドシェイキングプロトコルは、4フェーズハンドシェイクプロトコルであり、これは、可能なデータ転送レートを制限する。
複数のクロックドメインを使用する集積回路の実現は、様々な理由から望ましく、例えば、Philips Semiconductors社のデバイス制御および状態ネットワーク(device control and status network (DCS network))は、コントローラが、個別のクロックソースを有する可能性がある複数の周辺装置と通信することを可能にする。したがって、クロックドメイン間での並列バスを介したデータ通信の改善は、より実用的かつ高速の並列バスの利用を可能にし、これは一方で、高速回路への要求に、直接役立てることができる。本発明の様々な態様は、上述の欠点に対処し、かつ、他の用途にも有用な通信方法および装置を提供する。
本発明の様々な態様は、上述の問題に対処し、克服するようなやり方のデータ転送に関する。一実施形態の例と一致する、データ通信装置は、複数のターゲットモジュールと、第1のデータ完全性表示信号を供給し、ターゲットモジュールのそれぞれからの第2のデータ完全性表示信号にそれぞれ応じるように構成された第1のXORツリーとを含む。第2のXORツリーは、第1のデータバスを供給し、ターゲットモジュールのそれぞれからの第2のデータバスにそれぞれ応じるように構成されている。また、コントローラモジュールを用いて、第1のデータ完全性表示信号に応じて、第1のデータバスでのデータの利用可能性が決定される。
本発明の他の実施形態は、読み出し動作と関連する、第1のデータ値を転送するための方法を開示する。読み出し動作が生成され、複数のターゲットモジュールのうちの1つを特定する。特定されたターゲットモジュールにより、第1のデータ値が生成される。ターゲットモジュールのそれぞれによって、それぞれの第2のデータ値が生成され、第2のデータ値は、第1のデータ値と前の第2のデータ値との間の排他的論理和演算によって、特定されたターゲットモジュール向けに修正され、第2のデータ値は、特定されたターゲットモジュール以外のターゲットモジュール向けには修正されない。また、ターゲットモジュールのそれぞれによって、それぞれの第1の確認値が生成され、第1の確認値は、特定されたターゲットモジュール向けに修正され、第1の確認値は、特定されたターゲットモジュール以外のターゲットモジュール向けには修正されない。排他的論理和演算により、第1の確認値から第2の確認値が生成される。第2の確認値の修正から、第1のデータ値の利用可能性が決定される。排他的論理和演算により、第2のデータ値から第3のデータ値が生成される。第1のデータ値は、第3のデータ値と前の第3のデータ値との間の排他的論理和演算によって、決定される。
発明を実施するための形態
本発明は、添付の図面と関連する、以下の本発明の様々な実施形態の詳細な説明を考察することによって、より完全に理解することができる。
本発明は、様々な変更および代替形態に適するが、その詳細は、図面において例示されており、詳しく説明される。しかし、本発明は、説明される特定の実施形態に発明を限定しないことに留意すべきである。対照的に、本発明は、添付の特許請求の範囲に定義されるように、本発明の要旨および範囲に含まれる全ての変更、均等物、および代案をカバーする。
本発明は、概して、モジュール間でデータを転送するための方法および装置に適用可能であると考えられる。本発明は、異なるクロックドメインに属するモジュール間でのデータの転送に、特に有利であることが見出されている。このような応用例として、特に、場合によってはそれぞれ個別のクロックドメインに属することが可能な複数の集積された周辺装置と通信する1つのクロックドメイン内のコントローラを使用するシステムオンチップや、1つまたは複数のプリント回路基板に配置することが可能な集積回路間の高速通信が挙げられる。本発明は、このような応用例に必ずしも限定されないが、本発明の様々な態様の理解は、このような環境での例を考察することによって、最良に得られる。
本発明の一実施形態の例によると、データ通信装置は、それぞれが肯定応答信号とデータバスとを供給する、複数のターゲットを有する。各ターゲットは、それぞれの肯定応答信号の遷移を用いて、それぞれのデータバスでのデータの利用可能性を示す。全ての肯定応答信号の排他的論理和関数が、グローバル肯定応答信号を生成し、ターゲットに対する肯定応答信号のうちの1つの遷移は、グローバル肯定応答信号に関連する遷移に伝播する。各ターゲットは、ターゲットからのデータと前の符号化データとの間の並列的な排他的論理和によって、データバスのデータを符号化する。全てのデータバスの並列的な排他的論理和関数が、グローバルデータバスを生成する。コントローラが、グローバル肯定応答信号の遷移を観察することにより、グローバルデータバスでのデータの利用可能性を決定する。コントローラは、グローバルデータバスの現在および前の値の間の並列的な排他的論理和によって、グローバルデータバスからのデータを復号する。コントローラは、ターゲットに対応する要求信号をトグルすることによって、データの受け取りを示し、場合によっては、その後のアクセス要求を供給する。
本発明のさまざまな実施形態は、コントローラモジュールと複数のターゲットモジュールの間で、並列バスインターフェイスに類似したやり方でのデータ転送を可能にし、一方で、2フェーズ転送プロトコルを使用した効率的なデータ転送を可能にする。2フェーズ転送プロトコルは、従来の4フェーズ転送プロトコルから、データを転送しない2つの回復フェーズを除去している。データ転送は効率的に行われるが、これは、従来の4フェーズプロトコルの回復フェーズの代わりに、2フェーズプロトコルの2つのフェーズを繰り返すことにより、2フェーズプロトコルを用いたデータ転送の後に、他の転送が即座に発生可能なためである。回復フェーズをなくすことは、また、データ転送に必要な電力を減少させることができ、これは、通常、従来の4フェーズ転送プロトコルでの回復フェーズ中に実施されるような、データバスをデフォルト値に戻すことに関連する信号スイッチングがなくなるからである。2フェーズプロトコルの2つの交互に繰り返すフェーズは、前の要求の結果の受け取りを肯定応答することが可能な要求フェーズと、肯定応答フェーズである。コントローラモジュールと、ターゲットモジュールのそれぞれは、個別のクロックドメインに属することができる。
図1を参照すると、一例として、本発明に係る、コントローラモジュール102と、複数のターゲットモジュール104の間に、データ通信装置100のブロック図が示されている。コントローラモジュール102は、ターゲットモジュール104のいずれか1つからのデータを要求できる。通常、コントローラモジュール102は、タ―ゲットモジュール104に対する複数の要求を、同時に重複させない。
ターゲットモジュール104が、コントローラモジュール102からの読み取り要求を満たすデータなどの、コントローラモジュール102に送るデータを得ると、ターゲットモジュール104は、ライン106の対応するデータバスを介して、コントローラモジュール102にデータを送る。一実施形態において、ターゲットモジュール104によって、ライン106の対応するデータバスを介して、コントローラモジュール102に送られたデータは、後に詳述するように、符号化することが可能である。ライン106の対応するデータバスを介したデータの送信と共に、ターゲットモジュール104は、ライン108の対応する肯定応答信号の現在値を修正して、有効データが使用可能であることを示す。ターゲットモジュール104によるライン108の肯定応答信号の修正は、ライン108の肯定応答信号の値のトグリングとすることができる。よって、ライン108の肯定応答信号のローからハイまたはハイからローの遷移のいずれかにより、ライン106の対応するデータバスにおいて、対応するターゲットモジュール104からのデータが使用可能であることを示すことができる。
ターゲットモジュール104が、データの使用可能であることを示していない限り、ターゲットモジュール104は、ライン108の対応する肯定応答信号の値を修正しない。ターゲットモジュール104が、コントローラモジュール102にデータを送信していない限り、ターゲットモジュール104は、ライン106の対応するデータバスの値を修正しない。
排他的論理和関数110は、ライン108の全ての肯定応答信号の排他的論理和を生成して、ライン111のグローバル肯定応答信号を生成する。排他的論理和関数110は、ライン108の肯定応答信号のいずれか1つの遷移が、ライン111のグローバル肯定応答信号の遷移に伝播するという特性を有する。よって、バスコントローラ102は、ライン111のグローバル肯定応答信号の遷移から、ライン106の対応するデータバスでデータが使用可能であることをターゲット104が示していると決定することができる。
並列的な排他的論理和関数112は、ライン106の全てのデータバスから、ライン114のグローバルデータバスを生成する。一般的には、ライン106のデータバスおよびライン114のグローバルデータバスは、1または複数の信号の同一のビット幅を有する。並列的な排他的論理和関数112は、ライン106のデータバスからの対応するビットの排他的論理和から、ライン114のグローバルデータバスの各ビットを生成し、例えば、ライン114のグローバルデータバスの最下位ビットは、ライン106のデータバスのそれぞれからの最下位ビットの排他的論理和から生成される。
並列的な排他的論理和関数112は、ライン106のデータバスのどのような修正も、ライン114のグローバルデータバスの修正に伝播するという特性を有する。ターゲットモジュール104によって送られたデータが、通常は、ターゲットモジュール104からコントローラモジュール102まで、修正なしには転送されない一方、後に詳述するように、コントローラモジュール102によりグローバルデータバス114で観測された修正を用いて、ライン106のデータバスでターゲットモジュール104によって送られたデータ値を決定することができる。
データ通信装置100が、一般的には、2値論理システム用に使用されるが、データ通信装置100は、3値論理システムなどの、他の論理システムにも使用できることが理解される。
図1に示される要素は、本発明の理解を助けるための、単なる説明のためのものであることを理解すべきである。当該技術分野で知られるように、ハードウェアとして説明される要素は、同等に、ソフトウェアでも実現することができる。特定の電子回路に対する参照もまた、単に本発明の理解を助けるためのものであり、基本的に同一の機能を行う回路はどれも、同等の回路とみなされる。
図2を参照すると、一例として、本発明に係る分散された排他的論理和ツリーを示す、データ通信装置のブロック図が示されている。コントローラモジュール102は、複数のターゲットモジュール104とデータの通信を行う。XORゲート202,204,206,および208は、XORツリーを形成し、集合的に、図1の排他的論理和関数110に対応する。XORゲート210,212,214,および216は、XORツリーを形成し、集合的に、図1の排他的論理和関数112に対応する。XORゲート202,204,206,および208により形成されるXORツリーは、ターゲットモジュール104のライン108の肯定応答信号から、ライン111にグローバル肯定応答信号を生成する。XORゲート210,212,214,および216により形成されるXORツリーは、ターゲットモジュール104のライン106のデータバスから、ライン114にグローバルデータバスを生成する。
XORゲート202,204,206,および208で形成されるXORツリーなどのXORツリーは、ツリーの全体的な機能が、ライン108の肯定応答信号などの入力の排他的論理和であるグローバル肯定応答信号などの出力を、ライン111に生成する限りは、様々な配置を有することができる。ライン114のグローバルデータバスの個別ビットは、それぞれ、固有の配置を有するXORツリーを有することができる。
各XORツリーは、XORツリーを実現するために必要な配線を減少させるように選択された、分散された配置を有することができる。例えば、図2のモジュール102および104の配置は、概ね、集積回路上のモジュール102および104の物理配置に対応し、隣接する物理位置に基づくモジュール102および104のクラスタリングの第1のレベルを用いて、XORゲート204,206,および208の第1のレベルについて示されているように、XORツリーの第1のレベルを生成することができる。モジュールの物理クラスタリングは、XORツリーの各レベルで使用することができる。必要とされる配線は、特に多数のターゲットモジュール104がある場合に、著しく減少できる。分散されたXORツリーは、また、集積回路または他のシステム上の長い信号ラインをなくすことができ、これにより、長い信号ラインに起因することのある過剰な伝播遅延を排除する。
図3を参照すると、本発明に係る、例としてのターゲットモジュール104のブロック図が示されている。ターゲットモジュール104は、ターゲットモジュール104のターゲットロジック304が、コントローラモジュール(図示せず)とインターフェイスをとるために用いられる、ターゲットインターフェイス302を含んでいる。
コントローラモジュールは、アクセス要求を、ライン306のアクセスバスにより、ターゲットモジュール104に供給することができる。ライン308の要求信号を用いて、ライン306のアクセスバスに有効なアクセス要求があることを示すことができ、また、前のアクセス要求に関するターゲットモジュール104からの結果が、コントローラモジュールによって受け入れられたことを示すことができる。ノンオペレーション(NOP:no-operation)アクセス要求を用いて、ターゲットモジュール104による処理を要求する追加のアクセス要求を示すことなく、前のアクセス要求に関する結果の受け入れを示すことができる。ライン308の要求信号のトグリングなどの修正を用いて、ライン306のアクセスバスのアクセス要求の利用可能性を示すことができ、また、前のアクセス要求に関する結果のコントローラモジュールによる受け入れを示すことができる。
ターゲットモジュール104およびコントローラモジュールは、ターゲットモジュール104とコントローラモジュールの間の通信に同期が必要とされるような、異なるクロックドメインにおいて動作することができる。第1のレジスタ310は、ターゲットモジュール104の局部クロックに基づいて、ライン308の要求信号をサンプリングすることができる。コントローラモジュールとターゲットモジュール104のそれぞれのクロックは、同期されない可能性があるので、第1のレジスタ310は、ライン308の要求信号の遷移の間に、ライン308の要求信号をサンプリングすることができる。よって、信号312は、第1のレジスタ310によるサンプリングの直後に、未定義の準安定値を持つことができる。通常、信号312のどのような準安定性も、第2のレジスタ314によってサンプリングされる前に、第1のレジスタ310によって解決され、よって、レジスタ310および314が、ライン308の要求信号を、ターゲットモジュール104の局部クロックに同期させる。一般的には、ターゲットモジュールおよびコントローラモジュールが、異なるクロックドメインにある場合にのみ、第2のレジスタ(またはフリップフロップ)314は使用される。ターゲットがコントローラと同じ領域にある代替の実施形態においては、この第2のレジスタ314はバイパスされる。
コントローラモジュールは、ライン306のアクセスバスの対応するアクセス要求と共に、ライン308の要求信号の遷移を供給するので、ライン316の同期された要求信号の遷移は、ライン306のアクセスバスが、ターゲットモジュール104の局部クロックの少なくとも1クロックサイクルにわたって安定値を持たない限り、ターゲットロジック304によって認識されない。よって、レジスタ318は、ライン316の同期された要求信号が遷移を有する場合はいつでも、ライン320で安定値をサンプリングおよび供給する。ライン316の同期された要求信号が、遷移を持たない場合、ライン320のアクセス要求は、準安定値を有することができ、この潜在的な準安定値は、ターゲットロジック304によって無視されるべきである。
ライン306のアクセスバスで供給されるアクセス要求は、ターゲット104と関連付けられた、メモリまたはI/O位置などの他の位置に対する読み出しアクセスとすることができる。読み出しアクセスに関するデータを得た後、ターゲットロジック304は、ライン322でデータを供給し、かつライン324の更新信号を、ターゲット104クロックの1クロックサイクルにわたってアサートすることができ、インバータ326、マルチプレクサ328、およびレジスタ330は、ライン324の更新信号用のパルスを、ライン108の肯定応答遷移に変換することができ、この遷移は、図1の排他的論理和関数110などのXORツリーを介して、コントローラモジュールに伝播する。XORゲート332、マルチプレクサ334およびレジスタ336は、ライン322の読み出しアクセスに関するデータを符号化する。符号化データは、1の値を有するライン322のデータの対応するビットに対する、ライン106のデータバスのビットの遷移を有し、符号化データは、ゼロの値を有するライン322のデータのビットに対する、ライン106のデータバスのビットの遷移を持たない。
ライン106の符号化データのビットは、代わりに、ゼロの値を有するライン322のデータに対する遷移を持つことができ、1の値を有するライン322のデータに対する遷移は持たないことが理解される。他の実施形態においては、XORゲート332およびマルチプレクサ334は省略され、ライン322のデータは、レジスタ336に直接送られることにより、符号化されない。
一実施形態においては、各書き込みアクセスが、ターゲット104で出され、ターゲット104によって肯定応答されない。他の実施形態では、いくつかまたは全ての書き込みアクセスが、ターゲットロジック304によって肯定応答され、ライン324で、1サイクルにわたり更新信号をアサートし、一方、ライン322でデフォルトデータ値を供給する。いくつかまたは全ての書き込みアクセスの肯定応答は、フロー制御または命令の目的で使用することができる。ライン308の要求信号は、前の読み出しアクセスに対するコントローラモジュールによる読み出しデータの受け取りか、または先の書き込みアクセスに対するコントローラモジュールによる書き込みの完了の受け取りを示すことができる。
図4を参照すると、本発明に係る、例としてのコントローラモジュール102のブロック図が示されている。コントローラモジュール102は、コントローラモジュール102のコントローラロジック404が、ターゲットモジュール(図示せず)とインターフェイスをとるために用いられる、コントローラインターフェイス402を含んでいる。
コントローラモジュール102は、全てのターゲットモジュールに結合される、ライン306のアクセスバスを持つことができる。コントローラモジュール102は、ライン406,308,および408に、ターゲットモジュールのそれぞれに対する個別の要求信号を持つことができる。ライン406,308,および408のそれぞれの要求信号を用いて、対応するターゲットモジュールに対して指定されたライン306のアクセスバスでのアクセス要求の利用可能性を示すことができ、対応するターゲットモジュールからの前のアクセス要求の結果の受け取りを示すことができる。他の実施形態においては、1つの要求信号のみが、ライン308にあり、ライン306のアクセスバスは、ターゲットモジュール間で分割されたアドレス空間を有するアドレスや、ターゲットモジュールを指定するタグなどの、ターゲットモジュールを特定する情報を含む。
排他的論理和関数110は、ターゲットモジュールからの全ての肯定応答信号108の排他的論理和を行い、ライン111にグローバル肯定応答信号を生成する。コントローラモジュール102は、ライン111のグローバル肯定応答信号を、コントローラモジュール102の局部クロックと同期させる、レジスタ410および412を有する。図3の例示のように、第2のレジスタ412は、ターゲットモジュールおよびコントローラモジュールが、異なるクロックドメインにある場合にのみ使用される。ターゲットがコントローラと同じ領域にある、代替の実施形態においては、この第2のレジスタ412はバイパスされる。
マルチプレクサ414、レジスタ416、およびXORゲート418は、ターゲットモジュールのうちの1つからのライン108での肯定応答遷移によって、ライン111のグローバル肯定応答信号の肯定応答遷移が発生した後に、ライン420にアサート値を生成する。コントローラロジック404は、ライン420のアサート値を観測すると、ライン422の復号データをサンプリングすることができる。ターゲットモジュールは、ライン108の肯定応答信号の遷移と共に、ライン106の符号化データを転送する。よって、ライン422の復号データは、安定値を有し、その理由は、コントローラロジック404によってライン420でアサート値が観測されたときはいつでも、ライン114のグローバルデータバスが、コントローラモジュール102の少なくとも1局部クロックサイクルにわたって安定しているからである。
ターゲットモジュールからのデータバス106の値の変化は、排他的論理和関数112によって、グローバルデータバス114の値における対応する変化に伝播し、そして、レジスタ124によって取得される。マルチプレクサ426、レジスタ428、およびXORゲート430は、グローバルデータバス114の値における変化を、ターゲットモジュールによって符号化されたデータに対応するライン422の復号データへと復号する。ライン422の復号データをサンプリングした後、コントローラロジック404は、ライン432のサンプル信号を、コントローラモジュール102の局部クロックの1サイクルの間、アサートすることができる。
ライン432のサンプル信号のパルスは、マルチプレクサ414を介して、レジスタ416を、ライン111のグローバル肯定応答信号の現在レベルで更新させ、これにより、XORゲート418は、ライン420の値を、ライン111のグローバル肯定応答信号のその後の遷移までデアサートする。ライン432のサンプル信号のパルスは、レジスタ428を、ライン114のグローバルデータバスの現在値を反映したレジスタ424の現在値で更新させる。レジスタ428の更新は、XORゲート430が、ライン114のグローバルデータバスの符号化値内でのその後の遷移を、ライン422の復号値に変換することを可能にする。復号の間に、遷移を有するビット幅は、1の値に変換され、遷移のないビットは、ゼロの値に変換される。
他の実施形態においては、ターゲットモジュールは、ライン106のデータバスのデータを符号化せず、コントローラモジュール102は、各ターゲットモジュールについて、ターゲットモジュールにより駆動されて現在データ値のコピーを記憶するレジスタを、維持する。ライン114のデータバスで観測される遷移を用いて、特定のターゲットモジュールに対応するレジスタの値が更新される。ライン114のグローバルデータバスで観測される遷移を有するビットは、特定のターゲットモジュールに対応するレジスタ内の対応するビットを補足させる。ライン114のグローバルデータバスで観測される遷移がないビットは、特定のターゲットモジュールに対応するレジスタ内の対応するビットを、修正されないままにする。
図5を参照すると、本発明に係る、コントローラモジュールと複数のターゲットモジュールの間のデータ通信のための、例としてのプロセス500のフロー図が、示されている。ステップ502において、コントローラモジュールは、読み出しアクセスまたは書き込みアクセスなどのアクセスを生成し、アクセスは、個々のターゲットモジュールを特定する。ターゲットモジュールは、例えば、アドレスマップを介して個々のターゲットモジュールに対応するアクセスに含まれるアクセスアドレスによって、特定してもよく、または、個々のターゲットモジュールを特定するアクセスに含まれるタグによって、特定してもよく、または、個々のターゲットモジュールに対応する、リクエスト信号などの個別のストローブ信号をアサートすることによって、特定してもよい。読み出しアクセスでは、プロセス500は、決定504からステップ506へと進み、書き込みアクセスでは、プロセス500は、決定504からステップ520に進む。
ステップ506において、特定されたターゲットは、読み出しアクセスに関する位置から、読み出しアクセスを満足するデータを取得する。データは、特定されたターゲットモジュールによって、このデータと、特定されたターゲットモジュールについて前に符号化されたデータとの間の並列的な排他的論理和により、ステップ508で符号化される。特定されたターゲットモジュール以外のターゲットモジュールは、それぞれの符号化データを修正しない。ステップ510において、特定されたターゲットモジュールに対する肯定応答信号は、読み出しアクセスに対する符号化データの利用可能性を示すように、トグルされ、一方、特定されたターゲットモジュール以外のターゲットモジュールに対する肯定応答信号は、修正されないままとなる。
ステップ512において、ターゲットモジュールのそれぞれから、肯定応答信号の排他的論理和によって、グローバル肯定応答信号が生成される。ステップ514において、グローバル肯定応答信号のトグリングから、読み出しアクセスに対する符号化データの利用可能性が決定される。グローバルデータバスは、ステップ516において、ターゲットモジュールのそれぞれからのデータバスの並列的な排他的論理和によって生成される。ステップ518において、グローバルデータバスの現在および前の値の間の排他的論理和によって、グローバルデータバスの現在および前の値から、読み出しデータが復号される。
特定の書き込みアクセスについては、特定されたターゲットモジュールによって、この書き込みアクセスに対する完了を生成することができる。ステップ520において、書き込みアクセスの完了は、特定されたターゲットモジュールに対する肯定応答信号をトグルすることで示され、一方、特定されたターゲット信号以外のターゲット信号に対する肯定応答信号は、修正されないままとなる。グローバル肯定応答信号は、ステップ522において、ターゲットモジュールのそれぞれからの肯定応答信号の排他的論理和によって生成される。ステップ524において、書き込みアクセスの完了は、グローバル肯定応答信号のトグリングから決定される。
これらのデータ通信装置およびアプローチは、同期(クロックド(clocked))設計に限定されず、完全非同期の実施にも応用可能であることが理解される。このような応用は、例えばコントローラモジュールまたはターゲットモジュールのいずれにもクロックが含まれない完全非同期の通信プロトコルを用いた、1つまたは複数の上述の実施形態を検討する際に、明らかとなる。このようなプロトコルは、ファーバー(Furber),S.B.、エドワーズ(Edwards),D.A.、ガーサイド(Garside)、J.D.らの、AMULET3:100MIPS非同期埋め込みプロセッサ(AMULET3: A 100 MIPS Asynchronous Embedded Processor)、2000年9月17〜20日の国際会議2000(2000 International Conference)における、コンピュータ設計(Computer Design)の329〜334頁、および1990年12月の固体回路のIEEEジャーナル(IEEE Journal of Solid-State Circuits)、Vol.25、No.6、1526〜1537頁における、ジェイコブス(Jacobs),G.M.、ブロダーセン(Brodersen),R.W.らの、セルフタイムド回路を用いた完全非同期のデジタル信号プロセッサ(Fully Asynchronous Digital Signal Processor Using Self-timed Circuits)において、例示および説明されており、これら文献は、参考のためにここに引用される(また、付録Aおよび付録Bとしてここに添付する)。
このように、コントローラモジュールと複数のターゲットモジュールの間のデータ通信を伴う、本発明の例としての実施形態として、様々な実施形態を、図面および/または考察によって説明した。本発明は、これらの特定の例としての実施に限定されるとみなすべきではない。本発明を適用可能な様々な変更、同等のプロセス、および数多くの構造が、本発明の範囲に入る。例えば、同様に形成されたインターフェイスを、チップセット装置間での通信用に同様に構成されたインターフェイスを用いて、マルチチップまたはシングルチップ装置を実施することができる。このような変形は、添付の特許請求の範囲において公正に定められるように、特許請求される本発明の一部とみなすことが可能である。
図1は、本発明に係る、コントローラモジュールと複数のターゲットモジュールの間の、例としてのデータ通信装置のブロック図である。 図2は、本発明に係る、分散された排他的論理和ツリーを示す例としてのデータ通信装置のブロック図である。 図3は、本発明に係る、例としてのターゲットモジュールのブロック図である。 図4は、本発明に係る、例としてのコントローラモジュールのブロック図を示している。 図5は、本発明に係る、コントローラモジュールと複数のターゲットモジュールの間のデータ通信のための、例としてのプロセスのフロー図である。

Claims (17)

  1. 複数のターゲットモジュールと、
    第1のデータ完全性表示信号を供給するとともに、前記ターゲットモジュールのそれぞれからの第2のデータ完全性表示信号にそれぞれ応答するように構成された第1のXORツリーと、
    第1のデータバスを供給するとともに、前記ターゲットモジュールのそれぞれからの第2のデータバスにそれぞれ応答するように構成された第2のXORツリーと、
    前記第1のデータ完全性表示信号に応じて、前記第1のデータバスでのデータの利用可能性を決定するように構成されたコントローラモジュールと、
    を備えることを特徴とするデータ通信装置。
  2. 前記第1のデータバスは、少なくとも1つの信号を含み、各第2のデータバスは、対応する少なくとも1つの信号を含む、ことを特徴とする請求項1に記載のデータ通信装置。
  3. 前記コントローラモジュールおよび前記複数のターゲットモジュールは、完全非同期モードで通信する、ことを特徴とする請求項1に記載のデータ通信装置。
  4. 前記第1のデータバスは、少なくとも1つの信号を含み、各第2のデータバスは、対応する少なくとも1つの信号を含み、前記第1のXORツリーは、前記第1のデータ完全性信号を、各第2のデータ完全性表示信号の排他的論理和関数によって供給するように構成されており、前記第2のXORツリーは、並列して、前記第1のデータバスの前記少なくとも1つの信号のそれぞれを、各第2のデータバスからの対応する信号の排他的論理和関数によって、供給するように構成されている、ことを特徴とする請求項1に記載のデータ通信装置。
  5. 前記ターゲットモジュールのそれぞれは、前記それぞれの第2のデータバスでのデータの利用可能性を、前記それぞれの第2のデータ完全性表示信号の値の修正によって示すように構成されており、前記コントローラモジュールは、前記データの利用可能性を、前記第1のデータ完全性表示信号の値の修正から決定するように構成されている、ことを特徴とする請求項1に記載のデータ通信装置。
  6. ターゲットモジュールのそれぞれは、前記データを、前記データと前記それぞれの第2のデータバスで先に供給された符号化データとの間の並列的な排他的論理和によって、前記それぞれの第2のデータバスで符号化データとして、供給するように構成されている、ことを特徴とする請求項5に記載のデータ通信装置。
  7. 前記コントローラモジュールは、前記データを、前記第1のデータバスからのデータと前記第1のデータバスからの前のデータとの間の並列的な排他的論理和によって、復号するように構成されている、ことを特徴とする請求項6に記載のデータ通信装置。
  8. 前記ターゲットモジュールのそれぞれは、前記コントローラモジュールからの読み出しアクセスに応じて、前記データの利用可能性を示すように構成されている、ことを特徴とする請求項7に記載のデータ通信装置。
  9. 前記コントローラモジュールは、それぞれの肯定応答完全性表示信号を、前記ターゲットモジュールのそれぞれに供給するように構成されており、前記コントローラモジュールは、前記データの受け取りを、前記それぞれの肯定応答完全性表示信号の値の修正によって示すように構成されている、ことを特徴とする請求項7に記載のデータ通信装置。
  10. 前記コントローラモジュールは、前記ターゲットモジュールのそれぞれに、アクセスバスを供給するように構成されており、前記コントローラモジュールは、前記データの受け取りの表示とともに、前記アクセスバスでの後続のアクセスを供給するように構成されている、ことを特徴とする請求項9に記載のデータ通信装置。
  11. 前記コントローラモジュールは、前記第1のデータ完全性表示信号用のシンクロナイザを含むように構成されており、前記ターゲットモジュールのそれぞれは、前記それぞれの肯定応答完全性表示信号用のシンクロナイザを含むように構成されている、ことを特徴とする請求項9に記載のデータ通信装置。
  12. データを転送するためのシステムであって、
    複数のターゲットモジュールのうちの1つを特定する読み出し動作を生成するためのサブシステムと、
    前記複数のターゲットモジュールのうちの前記1つによる前記読み出し動作に関する第1のデータ値を生成するためのサブシステムと、
    前記ターゲットモジュールのそれぞれによって、それぞれの第2のデータ値を生成するためのサブシステムであって、前記第2のデータ値は、前記第1のデータ値と前の第2のデータ値との間の排他的論理和演算によって、前記複数のターゲットモジュールのうちの前記1つ向けに修正され、前記第2のデータ値は、前記複数のターゲットモジュールのうちの前記1つ以外の前記ターゲットモジュール向けには修正されない、サブシステムと、
    前記ターゲットモジュールのそれぞれによって、それぞれの第1の確認値を生成するためのサブシステムであって、前記第1の確認値は、前記複数のターゲットモジュールのうちの前記1つ向けに修正され、前記第1の確認値は、前記複数のターゲットモジュールのうちの前記1つ以外の前記ターゲットモジュール向けには修正されない、サブシステムと、
    排他的論理和演算を用いて、前記第1の確認値から第2の確認値を生成するためのサブシステムと、
    前記第2の確認値の修正から、前記第1のデータ値の利用可能性を決定するためのサブシステムと、
    排他的論理和演算を用いて、前記第2のデータ値から、第3のデータ値を生成するためのサブシステムと、
    前記第3のデータ値と前の第3のデータ値との間の排他的論理和演算によって、前記第1のデータ値を決定するサブシステムと、
    を備えることを特徴とするシステム。
  13. データを転送するためのシステムであって、
    複数のターゲットモジュールのうちの1つを特定する読み出し動作を生成するための手段と、
    前記複数のターゲットモジュールのうちの前記1つによる前記読み出し動作に関する第1のデータ値を生成するための手段と、
    前記ターゲットモジュールのそれぞれによって、それぞれの第2のデータ値を生成するための手段であって、前記第2のデータ値は、前記第1のデータ値と前の第2のデータ値との間の排他的論理和演算によって、前記複数のターゲットモジュールのうちの前記1つ向けに修正され、前記第2のデータ値は、前記複数のターゲットモジュールのうちの前記1つ以外の前記ターゲットモジュール向けには修正されない、手段と、
    前記ターゲットモジュールのそれぞれによって、それぞれの第1の確認値を生成するための手段であって、前記第1の確認値は、前記複数のターゲットモジュールのうちの前記1つ向けに修正され、前記第1の確認値は、前記複数のターゲットモジュールのうちの前記1つ以外の前記ターゲットモジュール向けには修正されない、手段と、
    排他的論理和演算を用いて、前記第1の確認値から第2の確認値を生成するための手段と、
    前記第2の確認値の修正から、前記第1のデータ値の利用可能性を決定するための手段と、
    排他的論理和演算を用いて、前記第2のデータ値から、第3のデータ値を生成するための手段と、
    前記第3のデータ値と前の第3のデータ値との間の排他的論理和演算によって、前記第1のデータ値を決定するための手段と、
    を備えることを特徴とするシステム。
  14. データを転送するための方法であって、
    複数のターゲットモジュールのうちの1つを特定する読み出し動作を生成するステップと、
    前記複数のターゲットモジュールのうちの前記1つによる前記読み出し動作に関する第1のデータ値を生成するステップと、
    前記ターゲットモジュールのそれぞれによって、それぞれの第2のデータ値を生成するステップであって、前記第2のデータ値は、前記第1のデータ値と前の第2のデータ値との間の排他的論理和演算によって、前記複数のターゲットモジュールのうちの前記1つ向けに修正され、前記第2のデータ値は、前記複数のターゲットモジュールのうちの前記1つ以外の前記ターゲットモジュール向けには修正されない、ステップと、
    前記ターゲットモジュールのそれぞれによって、それぞれの第1の確認値を生成するステップであって、前記第1の確認値は、前記複数のターゲットモジュールのうちの前記1つ向けに修正され、前記第1の確認値は、前記複数のターゲットモジュールのうちの前記1つ以外の前記ターゲットモジュール向けには修正されない、ステップと、
    排他的論理和演算を用いて、前記第1の確認値から第2の確認値を生成するステップと、
    前記第2の確認値の修正から、前記第1のデータ値の利用可能性を決定するステップと、
    排他的論理和演算を用いて、前記第2のデータ値から、第3のデータ値を生成するステップと、
    前記第3のデータ値と前の第3のデータ値の間の排他的論理和演算によって、前記第1のデータ値を決定するステップと、
    を備えることを特徴とする方法。
  15. データを転送するためのシステムであって、
    複数のターゲットモジュールのうちの1つを特定する書き込み動作を生成するためのサブシステムと、
    前記ターゲットモジュールのそれぞれによって、それぞれの第1の確認値を生成するためのサブシステムであって、前記第1の確認値は、前記複数のターゲットモジュールのうちの前記1つ向けに修正され、前記第1の確認値は、前記複数のターゲットモジュールのうちの前記1つ以外の前記ターゲットモジュール向けには修正されない、サブシステムと、
    排他的論理和演算を用いて、前記第1の確認値から第2の確認値を生成するためのサブシステムと、
    前記第2の確認値の修正から、前記書き込み動作の完了を決定するためのサブシステムと、
    を備えることを特徴とするシステム。
  16. データを転送するためのシステムであって、
    複数のターゲットモジュールのうちの1つを特定する書き込み動作を生成するための手段と、
    前記ターゲットモジュールのそれぞれによって、それぞれの第1の確認値を生成するための手段であって、前記第1の確認値は、前記複数のターゲットモジュールのうちの前記1つ向けに修正され、前記第1の確認値は、前記複数のターゲットモジュールのうちの前記1つ以外の前記ターゲットモジュール向けには修正されない、手段と、
    排他的論理和演算を用いて、前記第1の確認値から第2の確認値を生成するための手段と、
    前記第2の確認値の修正から、前記書き込み動作の完了を決定するための手段と、
    を備えることを特徴とするシステム。
  17. データを転送するための方法であって、
    複数のターゲットモジュールのうちの1つを特定する書き込み動作を生成するステップと、
    前記ターゲットモジュールのそれぞれによって、それぞれの第1の確認値を生成するステップであって、前記第1の確認値は、前記複数のターゲットモジュールのうちの前記1つ向けに修正され、前記第1の確認値は、前記複数のターゲットモジュールのうちの前記1つ以外の前記ターゲットモジュール向けには修正されない、ステップと、
    排他的論理和演算を用いて、前記第1の確認値から第2の確認値を生成するステップと、
    前記第2の確認値の修正から、前記書き込み動作の完了を決定するステップと、
    を備えることを特徴とする方法。
JP2007534161A 2004-09-29 2005-09-28 2フェーズデータ転送プロトコル Withdrawn JP2008515079A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US61439104P 2004-09-29 2004-09-29
PCT/IB2005/053207 WO2006035410A2 (en) 2004-09-29 2005-09-28 Two-phase data transfer protocol

Publications (1)

Publication Number Publication Date
JP2008515079A true JP2008515079A (ja) 2008-05-08

Family

ID=35976637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007534161A Withdrawn JP2008515079A (ja) 2004-09-29 2005-09-28 2フェーズデータ転送プロトコル

Country Status (4)

Country Link
US (1) US8078948B2 (ja)
EP (1) EP1797504A2 (ja)
JP (1) JP2008515079A (ja)
WO (1) WO2006035410A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018026797A (ja) * 2016-06-10 2018-02-15 ザ・ボーイング・カンパニーThe Boeing Company ハードウェアベースの高速且つセキュアな拡張・圧縮関数を提供するシステム及び方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495594A (en) * 1991-07-12 1996-02-27 Zilog, Inc. Technique for automatically adapting a peripheral integrated circuit for operation with a variety of microprocessor control signal protocols
US5388241A (en) * 1992-03-10 1995-02-07 Northrop Grumman Corporation Asynchronous circuit for 2-cycle to 4-cycle handshake conversion
US6154803A (en) * 1998-12-18 2000-11-28 Philips Semiconductors, Inc. Method and arrangement for passing data between a reference chip and an external bus
US6745363B2 (en) * 1999-07-30 2004-06-01 Hewlett-Packard Development Company, Lp Early error detection using ECC
US6999542B1 (en) * 2001-10-22 2006-02-14 Lsi Logic Corporation Data ready indicator between different clock domains

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018026797A (ja) * 2016-06-10 2018-02-15 ザ・ボーイング・カンパニーThe Boeing Company ハードウェアベースの高速且つセキュアな拡張・圧縮関数を提供するシステム及び方法

Also Published As

Publication number Publication date
WO2006035410A2 (en) 2006-04-06
EP1797504A2 (en) 2007-06-20
US20080270875A1 (en) 2008-10-30
WO2006035410A3 (en) 2006-07-27
US8078948B2 (en) 2011-12-13

Similar Documents

Publication Publication Date Title
US6581124B1 (en) High performance internal bus for promoting design reuse in north bridge chips
US6668292B2 (en) System and method for initiating a serial data transfer between two clock domains
CN107408032B (zh) 互连中的伪随机比特序列
JP4533890B2 (ja) 異なるクロックドメイン間でのデータ信号転送のための方法
JP4279672B2 (ja) データ有効インジケータ及びスキュー不耐性データグループを有するパラレルデータ通信
JP2002523857A (ja) 非同期型論理を用いたfifo
US6925549B2 (en) Asynchronous pipeline control interface using tag values to control passing data through successive pipeline stages
US8977882B2 (en) System for data transfer between asynchronous clock domains
CN114265872B (zh) 一种用于总线的互联装置
US6366973B1 (en) Slave interface circuit for providing communication between a peripheral component interconnect (PCI) domain and an advanced system bus (ASB)
US6052754A (en) Centrally controlled interface scheme for promoting design reusable circuit blocks
US6668335B1 (en) System for recovering data in a multiprocessor system comprising a conduction path for each bit between processors where the paths are grouped into separate bundles and routed along different paths
US6425071B1 (en) Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus
US6584536B1 (en) Bus transaction accelerator for multi-clock systems
TWI291624B (en) Method and device for transferring data and data transfer bridge
US6640277B1 (en) Input staging logic for latching source synchronous data
US8078948B2 (en) Two-phase data-transfer protocol
JP2001168917A (ja) 付加的なポートを有する集積回路
US6067629A (en) Apparatus and method for pseudo-synchronous communication between clocks of different frequencies
US6959398B2 (en) Universal asynchronous boundary module
US6378019B1 (en) Method and system for interfacing a plurality of peripheral devices in a slave group interface device to a bus and a slave group interface device
US7353297B2 (en) Handling of write transactions in a data processing apparatus
US6377581B1 (en) Optimized CPU-memory high bandwidth multibus structure simultaneously supporting design reusable blocks
JP2004326222A (ja) データ処理システム
US7519755B2 (en) Combined command and response on-chip data interface for a computer system chipset

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080703

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080929

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20091111