(57)【要約】  通信プロトコルは、起点端と送り先端との間でのパラレルデータの高速転送を提供する。プロトコルは、起点端から送り先端に対して情報を定期的に送信することを含み、この場合、送り先端がビジー状態にある時であって且つコマンド、データ、または状態が保留されていない時間中に、起点端から送り先端へとアイドルデータを送信する。送り先端がビジー状態でないと、読み取りコマンドまたは書き込みコマンドを順次送信し、また、書き込みプロトコルにしたがって、保留中の書き込みデータを送信し、コマンドが保留されていない時間中にアイドルパケットを送信することにより、データが起点端から送り先端に対して送信される。起点端がビジー状態でないと、保留中の書き込み終了状態を順次送信し、書き込み終了状態が保留されていない時間中に読み取りプロトコルにしたがって保留中の読み取りデータおよび読み取り状態パケットを順次送信し、読み取りデータまたは読み取り状態が保留されていない時間中にアイドルパケットを送信することにより、送り先端から起点端に対してデータが送信される。
2005510798.tif 000002
【特許請求の範囲】
【請求項１】
起点端と送り先端との間で通信チャンネルを介してパラレルデータ通信を行なう方法において、
起点端から送り先端に対して情報を定期的に送信し、この場合、送り先端のビジー状態に応じて、コマンド、データ、または状態が保留されていない時間中に、起点端から送り先端へとアイドルデータを送信し、
送り先端がビジー状態でないことを受けて、起点端から送り先端に対し、読み取りコマンドまたは書き込みコマンドを順次送信し、また、書き込みプロトコルにしたがって、保留中の書き込みデータを送信し、コマンドが保留されていない時間中にアイドルパケットを送信し、
起点端がビジー状態でないことを受けて、送り先端から起点端に対して、保留中の書き込み終了状態を順次送信し、書き込み終了状態が保留されていない時間中に、読み取りプロトコルにしたがって、保留中の読み取りデータおよび読み取り状態パケットを順次送信する、ことを含む方法。
【請求項２】
前記書き込みプロトコルは、起点端から書き込みコマンドを送信し、それに続いて、書き込みデータおよび書き込み終了通知を送信することを更に含む、請求項１に記載の方法。
【請求項３】
書き込み終了通知に対応する書き込み終了状態を送り先端から送信することを更に含む、請求項２に記載の方法。
【請求項４】
各書き込みコマンドの直後に書き込みアドレスを起点端から送信することを更に含む、請求項２に記載の方法。
【請求項５】
書き込みデータの一部に先立ってバイトイネーブル情報を起点端から送信することを更に含む、請求項２に記載の方法。
【請求項６】
読み取り状態は、読み取り終了およびエラー情報を含む、請求項１に記載の方法。
【請求項７】
転送のために情報がパケット化される、請求項１に記載の方法。
【請求項８】
送り先端から起点端に対して情報を定期的に送信することを更に含み、この場合、起点端のビジー状態に応じて、読み取りデータまたは読み取り状態が保留されていない時間中に、送り先端から起点端へとアイドルデータを送信する、請求項１に記載の方法。
【請求項９】
情報は通信チャンネルの第１の単指向性データ経路を介して起点端から送り先端へと送信され、また、情報は通信チャンネルの第２の単指向性データ経路を介して送り先端から起点端へと送信される請求項１に記載の方法。
【請求項１０】
起点端から送り先端へと通信チャンネルを介してパラレルデータ通信を行なうデータ通信装置において、
起点端から送り先端に対して情報を定期的に送信する手段であって、送り先端のビジー状態に応じて、コマンド、データ、または状態が保留されていない時に、起点端から送り先端へとアイドルデータを送信する手段を含む手段と、
送り先端がビジー状態でないことを受けて、起点端から送り先端に対し、読み取りコマンドまたは書き込みコマンドを順次送信し、また、書き込みプロトコルにしたがって、保留中の書き込みデータを送信し、コマンドが保留されていない時間中にアイドルパケットを送信する、手段と、
起点端がビジー状態でないことを受けて、送り先端から起点端に対し、保留中の書き込み終了状態を順次送信し、書き込み終了状態が保留されていない時間中に、読み取りプロトコルにしたがって、保留中の読み取りデータおよび読み取り状態パケットを順次送信する手段と、を備えるデータ通信装置。
【請求項１１】
起点端から書き込みコマンドを送信し、それに続いて、書き込みデータおよび書き込み終了通知を送信する手段を更に有する、請求項１０に記載の装置。
【請求項１２】
書き込み終了通知に対応する書き込み終了状態を、送り先端から送信する手段を更に有する、請求項１０に記載の装置。
【請求項１３】
送り先端から起点端に対して情報を定期的に送信する手段であって、起点端のビジー状態に応じて、読み取りデータまたは読み取り状態が保留されていない時間中に、送り先端から起点端へとアイドルデータを送信することを含む手段を更に有する、請求項１０に記載の装置。
【請求項１４】
単指向性情報を起点端から送り先端へと連続して同時に送信し、単指向性情報を送り先端から起点端へと連続して送信するための手段を更に有する、請求項１０に記載の装置。
【請求項１５】
起点端から送り先端へと通信チャンネルを介してパラレルデータ通信を行なうデータ通信装置において、
起点端に配置され、送り先端に対して情報を定期的に送信するようになっているとともに、送り先端のビジー状態に応じて、コマンド、データ、または、状態が保留されていない時間中に、アイドルデータを送り先端へ送信する第１のデータプロセッサ装置であって、
送り先端がビジー状態でないことを受けて、更に、送り先端に対して順次送信し、読み取りコマンドまたは書き込みコマンドを送信し、書き込みプロトコルにしたがって、保留中の書き込みデータを送信し、コマンドが保留されていない時間中にアイドルパケットを送信する、第１のデータプロセッサ装置と、
送り先端に配置され、起点端がビジー状態でないことを受けて、保留中の書き込み終了状態を起点端に対して順次送信し、書き込み終了状態が保留されていない時間中に、読み取りプロトコルにしたがって、保留中の読み取りデータおよび読み取り状態パケットを順次送信する、第１のデータプロセッサ装置と、を備えるデータ通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ通信に関し、特に集積回路チップ間で高速インタフェースを介してデータを通信するための方法および装置に関する。
【背景技術】
【０００２】
昨今のより複雑な回路に対する要求は、シリコンウエハの狭い領域上で大規模集積回路を組み立てることを通じて、飛躍的な成果を導いてきた。多くの場合、その複雑な回路は、一連のデータを演算した後にそのデータを更なる処理のために転送する、機能的に規定されたブロック、または物理的に規定されたチップとして設計されている。そのような物理的に規定されたチップからの通信は、僅かな量または多量のデータの状態で、別個の各回路間、集積回路（“ＩＣ”）間、同一のチップ内、異なるチップ上に配置されたＩＣ間、乃至更に離れて位置された通信回路装置およびシステム間を行き交う。一般に通信は、構成とは無関係にデータの統合が維持され、且つチップセット設計が実装スペースおよび利用可能な動作電力にについての実際的な制約に対して敏感に対応するよう、厳密に制御されたインタフェースを必要とする。
【０００３】
回路の複雑さが高まるにつれて、回路ブロック間およびＩＣチップ間でのデータ送信速度を向上させる相等しい要求がある。高速通信の用途の多くは、パラレル通信経路を介して複数のデータビットが同時に送信されるパラレルデータ相互接続送信を使用して実施することができる。そのような“パラレルバシング(parallel bussing)”は、高データ転送速度でデータ転送を行なうための、よく用いられる手法である。
【０００４】
典型的なシステムは、パラレルデータ通信ラインに接続し、且つパラレルデータ通信ラインを介して通信する多くのモジュール（例えば、一つまたは複数の、協働して機能するチップ）、例えばケーブルを介して周辺装置と通信するプロセッサチップ、バックプレーン回路、チップ上の内部バス構造、チップ間インタフェース、他の内部接続、またはそれらの通信媒体の任意の組み合わせを有していても良い。送信モジュールは、送信モジュール上のクロックと同期して、バスを介してデータを送信する。このように、パラレル信号ラインにわたる遷移により、送信モジュールの回路同士が互いに同期関係を成し、及び／又は、送信モジュールの回路が送信モジュール上のクロックと同期関係を成す。データは、パラレルデータ相互接続の他端で、クロック信号と共に受信される。受信クロックは一般に、送信モジュール上のクロックから得られ、あるいは、送信モジュール上のクロックと同期する。パラレル信号ラインを介してデータが送られる速度は、時として（パラレル）“バスレート”と称される。
【０００５】
別個のＩＣチップを含む複数の回路モジュールを使用して電子デバイスを実現することが様々な理由により望ましい。したがって、ハードウェアと、パラレルバスを介してデータを通信するために使用される対応する送信プロトコルとにより、より実用的且つより高い速度でパラレルバシングを行なうことができ、これにより、データ統合を維持しつつ高速回路における要求を直接的に満たすことができる。本発明の様々な態様は、前述した欠点に対応するとともに、他の用途にも同様に有用な通信方法および装置を提供する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、パラレルデータ通信経路によって相互に接続された２つのモジュール（機能ブロック）間でデータを送信するための方法および回路に関する。本発明は、多くの実施および用途で例示されるが、そのうちの幾つかを以下に要約する。
【課題を解決するための手段】
【０００７】
本発明の一実施形態においては、起点端と送り先端との間のパラレル通信チャンネルを介して高速通信が行なわれる。プロトコルは、起点端から送り先端に対してデータを定期的に送信することを含み、この場合、送り先端がビジー状態にある時であって、コマンド、データ、または状態が保留されていない時間中に、起点端からアイドルデータを送信する。送り先端がビジー状態でないと、読み取りコマンドまたは書き込みコマンドを順次送信し、また、書き込みプロトコルにしたがって、保留中の書き込みデータを送信し、アイドルパケットを送信することにより、データが起点端から送り先端に対して送信される。起点端がビジー状態でないと、保留中の書き込み終了状態を順次送信し、書き込み終了状態が保留されていない時間中に読み取りプロトコルにしたがって保留中の読み取りデータおよび読み取り状態パケットを順次送信することにより、送り先端から起点端に対してデータが送信される。
【０００８】
前記の要約は、図示の実施形態または本発明の全ての実施について説明するものではない。図面および以下の詳細な説明は、これらの実施形態を特に例示する。
【０００９】
本発明の様々な実施形態についての以下の詳細な説明を、添付の図面を参照して考慮することにより、本発明はより完壁に理解されよう。
【００１０】
本発明は、様々な変更および他の形式を成すことができるが、そのうちの特定の内容を一例として図面に示すとともに以下に詳細に説明する。しかし、本発明をここで説明する特定の実施形態に限定しようとするものでないことは言うまでもない。むしろ、添付の請求項によって規定される本発明の思想および範囲内に含まれる全ての改良、等価物、変形例を網羅することを意図するものである。
【発明を実施するための最良の形態】
【００１１】
本発明は、パラレルデータ通信経路によって相互に接続された２つのモジュール（機能ブロック）間でデータを送信するための方法および回路に適用できると考えられる。本発明は、データ統合の維持を必要とする或いはデータ統合の維持によって利益を得る高速データ転送の用途での使用に特に有益であることが分かった。そのような用途の例としては、特に、ＳＳＴＬ（スタブ・シリーズ・トランシーバ・ロジック）、ＲＳＬ（ラムバス信号論理）インタフェース、例えばパラレルデータ通信経路が１つのチップ上で２つのモジュールを相互に接続するような近接して接続される用途、同じプリント回路基板上で互いに近接するチップ間でのオフボード高速通信を挙げることができる。
【００１２】
前述した特許文献で開示された高速パラレルデータ通信の実施形態に関して他の用途例を説明する。本発明は、それらの装置に必ずしも限定されないが、その用途を使用する様々な実施例を説明することにより、本発明の様々な態様を最も良く評価することができる。
【００１３】
図１は、本発明に係るパラレルデータ通信装置１００の一実施形態を示す。装置１００は、プロセッサＩＣチップ１２０と、高速インターチップデータ通信チャンネル、例えばトンネルインタフェース１１０を介して接続されたペリフェラルＩＣチップ１３０とを有する。プロセッサ１２０は、ＤＲＡＭ回路１２５を有する。トンネル１１０は、中間ターゲット１５６および中間イニシエータ１４６として機能しており、これにより、イニシエータ１６０は、ターゲットと通信することができる。例えば、リモートチップ１２５上に配置されたメインシステムメモリへと上方に通信することができる。トンネル１１０は、電気的なデータ経路を有しており、様々なタイミングによるデータ転送、コード化、プロトコル方法を実行するようになっている。トンネルは、高帯域ストリーミングデータをサポートするとともに、２地点間接続として構成される。３つ以上の装置を相互に接続する場合には、デイジー・チェーニングトンネル接続が必要となり、これにより、１つの装置毎に２つ以上のトンネルインタフェースが必要となる。
【００１４】
ペリフェラルチップ１３０のトンネル１１０は、他の内部装置のためのターゲット１５６として、内部バス１７０を介して接続されている。これにより、トンネルは、ペリフェラルチップ１３０におけるトンネルを介して中間イニシエータとして機能することができる。トンネルは、プロセッサチップ１２０の内部では、ＤＲＡＭ１２５と共に、特にトンネルのターゲットとしてのＤＲＡＭコントローラ１２８と共に、中間イニシエータ１４６機能を行なうように構成される。トンネルは、ペリフェラルチップ１３０内のイニシエータ１６０に対して透過的に機能するようになっており、そのため、ペリフェラルイニシエータ１６０にとっては、それがあたかもローカルバス１７０を介してＤＲＡＭコントローラ１２８のターゲットインタフェースに接続されているかのように見える。トンネルが複数のイニシエータ間でターゲットになっているイニシエータ選択において必要な場合には、マルチプレクサ（図示せず）およびアービタ（図示せず）が使用される。様々なデータエンコード／デコード処理回路が選択的にトンネル構成に対して接続され、或いはトンネル構成と一体化される。
【００１５】
トンネル１１０は、プロセッサチップ１２０にあるトンネル入口部１４０と、ペリフェラルチップ１３０にあるトンネル出口部１５０とを有する。トンネル入口部１４０は、送信側１４２と受信側１４４とを有する。トンネル出口部１５０は、送信側１５２と受信側１５４とを有する。ペリフェラルチップ１３０のトンネル出口部１５０は、バス１７０に接続されたペリフェラルチップのストリーミングデータマスター（図示せず）から、プロセッサコアに接続する一体化ＤＲＡＭ１２５へと、データを送信する。別個のイニシエータがバス１７０を介してトンネルに接続されていても良い。他の実装において、トンネルは、多くの別個の高速帯域幅要件、例えば１つのＤＲＡＭコントローラを共有する２つの別個のプロセッサチップをサポートするために使用される。トンネル転送は、トンネル出口部１５０のターゲット１５６からトンネル入口部１４０の中間イニシエータ１４６に向かって、読み取り及び書き込みデータを求める。
【００１６】
トンネル１１０は、２つの完全に独立したチャンネル、すなわち、第１のチャンネル１１２と第２のチャンネル１１４とを有する。図１において各チャンネルを表わす矢印で示されるように、各チャンネルは、一方向に送信するように機能する。各チャンネルは、パケット化された“情報”を常に図示の方向で送信する。しかし、“情報”は時としてアイドルパケットとなる。各チャンネルは、図示の方向と逆の方向には情報を送信しない。したがって、チャンネルの２つの端部間でのチャンネルの設定優先順位は不要である（例えば、送信部が常に“優先権”を有する）。
【００１７】
一つの例示的な実施形態において、トンネル１１０は、３２ビット値のデータを送信するようになっている（“３２ビットトンネル”）。他の実施形態において、トンネル１１０は、帯域幅境界での用途において拡張子を含んでおり、６４ビット値を送信するようになっている（“６４ビットトンネル”）。一般に、データはトンネル１１０を介して送信できるようにパケット化される。更に特定の実装において、トンネル１１０は、３６ビットデータパケットにパケット化された３２ビットデータペイロードを送信するようになっており、これにより、３６ビットパケットは、例えばクオリフィアパケットと区別される。クオリフィアパケットについては以下で更に説明する。トンネル１１０は、パケットがエンコードされた後に、４８個の実データラインを使用して３６ビットデータパケットを送信するために設けられている。トンネル１１０は、プロセッサと周辺装置との間におけるパラレル通信チャンネル上でのデータフローを制御するための通信プロトコルを使用するようになっている。トンネルプロトコルは、書き込みプロトコルおよび読み取りプロトコルとを含む。
【００１８】
図２Ａおよび図２Ｂは、本発明の一態様に係る書き込みプロトコルを示す状態図である。このアプリケーションの状態図における状態とは、ここでは、本発明のプロトコルによるその特定の状態で通信される情報の種類のことである。イニシエータからターゲットへデータを送信するために、書き込みトランザクションが使用される。書き込みのためのバイトレーンは、書き込みコマンドの最後の部分、または、送られる任意の書き込みクオリフィアパケットによって識別される。
【００１９】
ここで図２Ａを参照すると、書き込みトランザクションは、常にコマンドパケット２１０がトンネルを介して送信されることにより開始される。３２ビットトンネルの場合には、書き込みコマンド情報が書き込みコマンドパケット２１２へとパケット化され、アドレス情報が別個のアドレスパケット２１５へとパケット化される。状態矢印２１４によって示されるように、アドレスパケットは、書き込みコマンドパケットの後に通信される。６４ビットトンネルは、書き込みコマンドおよびアドレス情報を一括して１つのパケット２１０として送信する。
【００２０】
コマンドおよびアドレスパケットの通信後は、選択的に、状態矢印２１６で示されるように、書き込みクオリフィアパケット２２０が続く。書き込みクオリフィアパケットは、選択的な書き込みコマンド情報を含むとともに、書き込みコマンドパケットのフィールドが必要な全てのオプションを通信しない例外的なケースで使用される。更なる書き込みコマンド情報が必要ない場合、例えば、バイトイネーブルの制御が不要な場合には、書き込みクオリフィアパケットが送信されないことが好ましい。各書き込みデータ転送と共に書き込みクオリフィアパケットを使用することは効果的でなく、また必要でもない。
【００２１】
一般的なマルチデータ要素書き込みの場合、状態矢印２１８によって示されるように、書き込みデータパケット２３０は、アドレス情報後に通信される。データ転送の全体にわたって書き込みコマンド情報が変わらないまま維持される（例えば、同じマスク）一般的な筋書きとして、状態矢印２３２で示されるように、書き込みデータの１つのパケットが残るまで、トンネルを介して書き込みデータパケット２３０のバーストが順次通信される。書き込みデータの最後のパケットは、書き込みラストパケット２４０として通信される。書き込みラストパケットは、最後のデータ転送として、書き込みトランザクション毎に１回送信される。書き込みラストパケット、すなわち、書き込みデータの最後の要素は、書き込みトランザクションが終了し、書き込みをＤＲＡＭへと送ることができ、その代わりとして、結果的に、書き込み状態が予期されることを、トンネル部の受信側１４４に知らせる。最後の書き込みデータ要素を送ると、所定のトランザクション中に送られる書き込みデータ要素を受信側１４４がカウントする必要がなくなる。
【００２２】
バイトイネーブルは、バイトを選択的に書き込むために使用されても良い。バイトイネーブルは、“厄介な”フィールドである。すなわち、バイトイネーブルは変更がなされるまで、引き続き有効である。一般に、バイトイネーブルは、書き込みコマンドパケットにおいて、また必要に応じて、選択的な書き込みクオリフィアパケットにおいて、最初の書き込みデータパケットのためにアサートされる。常に同じバイトを書き込むバースト書き込み、例えばメモリへのバースト書き込みが行なわれると、書き込みコマンド内で設定されるバイトイネーブルは有効のままであり、その後の全てのデータは、最初のバイトイネーブルを使用して書き込まれる。バイトイネーブルは、新たな書き込みコマンド及び／又は書き込みクオリフィアパケットが送信されるまで、引き続き有効である。バイトイネーブルの更なる操作がその後のデータパケットにおいて望ましい場合には、対象とする書き込みデータパケットに先立って、書き込みクオリフィアパケットが通信される。書き込みクオリフィアパケット２２０は、状態矢印２３４で示されるように変更されたバイトイネーブルに晒されることが意図されていない書き込みデータパケットの次の書き込みデータパケット２３０と、状態矢印２３６で示されるように変更されたバイトイネーブルに晒される最初の書き込みデータパケットとなるべく意図された最後ではない書き込みデータパケットに先行する書き込みデータパケット２３０との間に挿入される。状態矢印２３８は、書き込みラスト（データ）パケット２４０に先立って書き込みイネーブルをアサートするために書き込みクオリフィアパケットも通信できることを示す。状態矢印２４２は、最後のデータパケット２４０がバイトイネーブルの変更と先行する書き込みクオリフィアパケットとを必要としない場合に、最後の書き込みデータパケット２３０の送信後に書き込みラストパケット２４０が送信されることを示す。
【００２３】
バイトイネーブルの使用例としてトンネルデータ転送の幅、一つの一般的な実施においては３２ビット、に合わせられないアドレスで始まって終わる、冗長なバースト書き込みトランザクションについて考える。３つの書き込みマスクが必要とされ、そのうちの１つは、書き込みコマンド内に含まれ、他の２つは書き込みクオリフィアパケットによって送られる。パケットシーケンスは、以下の通りである。
（１）最初の書き込みデータパケットのためにアサートされるバイトイネーブルを含む書き込みコマンド（およびアドレス）パケット
（２）最初の書き込みデータパケット
（３）使用可能な全てのマスクビットを有する書き込みクオリフィアパケット
（４）書き込みデータパケットのバースト
（５）最後のデータ転送のために設定されたマスクビットを有する書き込みクオリフィアパケット
（６）書き込みラストパケット
【００２４】
一般的な事例として、書き込みクオリフィアパケット２３０は、書き込みコマンドパケットの直後には続かない（書き込みコマンドパケット内に含まれない更なる書き込みコマンド情報が必要な場合にのみ続く）。二次元（“２Ｄ”）転送はこの一般的な事例の例外である。２Ｄ転送等の特定の転送において、書き込みクオリフィアパケットは、書き込みコマンドパケットの直後に続く（例えば、６４ビットトンネルの場合；３２ビットトンネルの場合、書き込みクオリフィアパケット２２０は、アドレスパケット２１５の直後に続く）。図２Ａの状態矢印２１６は、２Ｄ書き込みにおける前述した状態経路を更に示す。
【００２５】
２Ｄ転送とは、１つのコマンドを伴う“二次元”ブロックを移動する転送である。データのブロック、例えば、１０００ピクセル幅×１０００ピクセル高さのデジタル画像を考える。画像をメモリ内に記憶する１つの方法は、最初の１０００個の記憶場所、例えば０〜９９９のアドレス位置にピクセルデータの一番上の列を記憶することである。ピクセルデータの次の列は、次の１０００個の記憶場所（例えば、１０００〜１９９９）内に記憶され、以下同様にして記憶される。二次元画像は、記憶場所のブロック内に記憶される。特定の圧縮アルゴリズム（例えば、ＭＰＥＧ、ＪＰＥＧ等）は、画像の小さな二次元部分上、例えば８ピクセル×８ピクセル領域上で機能する。これらの画像部分のうちの１つは、８個のコマンドを使用してメモリから検索される。この場合、各コマンドは、８個のピクセルから成る１つの列を検索する。あるいは、２Ｄコマンドは、６４個の全てのピクセルを一度に要求するために使用される。一般に、２Ｄコマンドは１ライン当りの要素（すなわち、ピクセル）の数、ライン数、各ライン間のメモリアドレスの差、この実施例ではストライド１０００、とを特定する。本発明の一態様において、ラインカウントおよびストライドは、２Ｄ転送において書き込みコマンドパケットの直後に続く書き込み（または、読み取り）クオリフィアパケットで送信される。
【００２６】
一般的な単一データ要素書き込みの場合、書き込みデータは、状態矢印２４４で示されるようにアドレス情報の直後に通信される書き込みラストパケット２４０によって通信される。
【００２７】
図２Ｂに示されるように、書き込みトランザクションを終了するため、書き込み状態パケット２５０は、受信側からトンネルの送信側へと戻される。書き込みラストパケットの通信後は、いつでも更なる書き込みシーケンスおよび読み取りコマンドをトンネルの送信側から送信することができる。書き込み状態パケットの戻りを待つ必要はない。また、送られた書き込みにおいてしばしば行なわれるように、イニシエータが書き込みコマンドを取り消す場合には、書き込み状態パケットは役に立たなくなることもある。しかしながら、書き込み状態パケットは、たとえそれが受取時に無視された場合でも、戻される必要がある。適切なフロー制御およびバッファ管理のため、必要に応じて、図２Ａに示される任意の状態間に一つまたは複数のアイドルパケットが挿入されても良い。
【００２８】
図３Ａおよび図３Ｂは、本発明の一態様に係る読み取りプロトコルを示す状態図である。ターゲットからイニシエータへデータを送信するために、読み取りトランザクションが使用される。読み取りのためのバイトレーンは、最後の読み取りコマンド、または、送られる任意の読み取りクオリフィアパケットによって識別される。図３Ａに示されるように、読み取りトランザクションは、常に、トンネル出口部からトンネル入口部に対して読み取りコマンドパケット３１０がトンネルを介して送信されることにより開始される。コマンドパケットは読み取りフラグがアサートされる（例えば、“１”に等しい）情報を含む。６４ビットトンネルの場合、読み取りコマンドパケット３１０は、読み取りコマンドのための転送の長さ及びアドレスを通信する。３２ビットトンネルの場合、読み取りコマンドおよびアドレス部分は、別個にパッケージ化され、３２ビット読み取りコマンドパケット３１２およびアドレスパケット３１５をそれぞれ介して送られる。状態矢印３１４によって示されるように、（読み取り）アドレスパケットは、読み取りコマンドパケットの後に通信される。
【００２９】
拡張された読み取りコマンドは、読み取りコマンドパケット後に送信される読み取りクオリフィアパケット３２０によって通信される情報を含む。完全な読み取りコマンド（例えば３１０）は、ＥＸＴフラグを“０”に設定することにより、あるいはＥＸＴフラグを“１”に設定することにより、読み取りコマンドパケットによって通信されて信号化され、これにより、拡張された読み取りコマンドおよび読み取りクオリフィアフィールドが次の送信される読み取りクオリフィアパケットによって通信されることを知らせる。読み取りクオリフィアパケットを必要とする情報は、主に、特別の読み取り、例えば２Ｄ読み取り演算と共に使用される。必要に応じて、読み取りトランザクション毎に、１つの読み取りクオリフィアパケットのみが送信される。書き込み（データパケット）転送の場合と同様に、読み取り（データパケット）転送毎にバイトイネーブルを変える機構は存在しない。
【００３０】
読み取りコマンドは、トンネル出口部からトンネル入口部へと送信される。時として、ターゲットへの読み取りコマンド（および、選択的な読み取りクオリフィアパケット）の送信後、データは、読み取りコマンド方向と逆方向で（例えば、トンネル入口部からトンネル出口部に対して）ターゲットから戻される。読み取りデータの戻りは、読み取りコマンドの送信から経時的に切断される。読み取りデータの実際の転送の開始を待っている間、アイドルパケットが送信されても良い。
【００３１】
図３Ｂは、トンネル入口部からトンネル出口部への読み取りデータの戻りを示す。本発明の一態様においては、読み取りデータの戻りが読み取りコマンドから経時的に切断されるため、任意の読み取りプロトコル状態間に、例えば、読み取りコマンドパケット３１０または読み取りクオリフィアパケット３２０のいずれかの送信後に、一つまたは複数のアイドルパケット３２６が挿入（すなわち、送信）されても良い。読み取りデータは、トランザクションの最後に、常に読み取りラストデータパケット３４０または状態パケット３５０のいずれかをもって完結する可変量の読み取りデータパケット３３０へと、パッケージ化される。読み取りデータの送信が可能な状態になると、アイドル状態後、状態矢印３２８で示されるように、読み取りデータパケット３３０が送信される。特定の読み取りに必要な場合には、状態矢印３３２で示されるように、更なる読み取りデータパケットが順次送信される。エラーが無く、拡張されていない通常の読み取りトランザクションは、状態矢印３４２で示されるように、読み取りラストパケット３４０で終了する。特別の完了コード、例えばリードエラー、を含む読み取りトランザクションは、状態矢印３３９で示されるように、状態パケット３５０で終了する。
【００３２】
読み取りトランザクションが読み取りデータ転送を１つだけ含み、且つ状態パケット３５０を介したトランザクション終了を必要とする特別の完了コードを含んでいない場合には、状態矢印３２２で示されるように、読み取りラストデータパケット３４０がトランザクション全体における唯一の実質的な転送である。図３Ｂの状態矢印３２４は、読み取りラストパケット転送３４０からアイドル状態に戻る通信プロセスを示す。状態矢印３４４、３４６は、アイドル状態３２６を経ないその後の読み取りデータ転送を示す。第１の例において、新たな（マルチパケット）読み取りは、読み取りラストデータパケット転送３４０に続き、読み取りデータパケト３３０によって開始される。この読み取り間の移行を状態矢印３４４で示す。あるいは、その後の読み取りは、特別の完了コードが無い一つの読み取りデータ転送のみを含んでおり、他の読み取りラストデータパケット３４０は、その後の読み取りトランザクションにとって唯一の実質的な転送として送られる。一連の読み取りラストデータパケット転送が状態矢印３４６で示す。読み取りトランザクションが１つの読み取りデータ転送のみを含み、特別の完了コードを含んでいない場合、すなわち状態パケット３５０を含んでいる場合、状態パケット３５０は、状態矢印３２８で示されるように、全体のトラザクションにとって唯一の実質的な転送となる。図３Ｂの状態矢印３５２は、読み取り状態パケット転送からアイドル状態に戻る通信プロセスである。
【００３３】
図４は、本発明の一態様に係るトンネル出口受信／トンネル入口送信トランザクションのためのトンネルプロトコルの状態移行を示す状態図である。トンネルプロトコルは、統合読み取り・書き込みトンネルトラフィック演算のための読み取り・書き込みプロトコルを組み合わせる。図１および図４を参照すると、トンネル入口送信側１４２の主な機能は、読み取りデータを送信することである。また、トンネル入口部の送信側は、書き込みトランザクション毎に、書き込み状態パケットを戻す。書き込み状態パケットは、読み取りデータパケットよりも高い優先順位で送信されるとともに、トンネルプロトコルの読み取り部分の任意の２つの状態間に挿入可能である。この能力は、図４において、書き込み状態パケット２５０の送信によって実線状態矢印に対してバイパス経路を与える両端破線状態矢印２５２、２５４、２５６、２５８で示す。また、破線状態矢印２５５は、複数の書き込み状態パケット２５０が順次送信されても良いことを示している。
【００３４】
本発明のトンネルプロトコルの一態様において、アイドルパケット３２６は、フロー制御にとって必要な場合、図４の状態図の任意の場所に挿入されても良い。しかし、簡略化のため、アイドルパケット送信状態の全ての構成が図４に示されるわけではない。
【００３５】
組み合わされたトンネルプロトコルの一実施例に係る、トンネルのチャンネル１１４にわたる読み取り送信と書き込み送信との間の調整は、最高優先事項から最低優先事項へと以下に記載された設定優先順位によって行なわれる。
（１）トンネル出口部の受信側がビジー状態にある時には、アイドルパケットを送信する。
（２）保留中の書き込み状態パケットを送信する。
（３）読み取りプロトコルにしたがって、保留中の読み取りデータ、読み取りラストデータ、（読み取り）状態パケットを送信する。
（４）アイドルパケットを送信する。
【００３６】
トンネル出口部の受信側は、“１”にアサートされる“Ｔ ＲＤＳ ＢＵＳＹ”（トンネル読み取りデータ／状態ビジー）信号によってビジー状態になるように示されている。
【００３７】
また、図５は、本発明に係るトンネル出口送信／トンネル入口受信トランザクションのためのトンネルプロトコルの状態移行の一例を示す状態図である。トンネル出口部の送信側は、読み取りコマンドと、書き込みコマンドと、書き込みデータとを送り出す。図５の状態図の書き込み部分５８０の状態は、図２と同様の参照符号が付された前述の説明にしたがって移行する。図５の状態図の読み取り部分５９０の状態は、図３と同様の参照符号が付された前述の説明にしたがって移行する。
【００３８】
本発明のトンネルプロトコルの一態様においては、コマンドも書き込みデータも保留されていない場合、アイドルパケット３２６に向かう状態矢印５７０およびアイドルパケット３２６からの状態矢印５７５を含んで形成されるループ移行経路によって示されるように、トンネルを介してアイドルパケットのサイクルが送信される。アイドルパケット３２６は、フロー制御にとって必要な場合（例えば、トンネル入口部の受信側１４４がフル（full）あるいはそれに近い場合）、図５の状態図の任意の場所に挿入されても良い。しかし、簡略化のため、アイドルパケット送信状態の全ての構成が、図５に示されるわけではない。
【００３９】
組み合わされたトンネル出口送信／トンネル入口受信トンネルプロトコルに係る、トンネルにわたる読み取り送信と書き込み送信との間の調整は、最高優先事項から最低優先事項へと以下に記載された設定優先順位によって行なわれる。
（１）トンネル入口部の受信側がビジー状態にある時には、アイドルパケットを送信する。
（２）アービタ（図示せず）のトンネルの外側で決定された優先順位をもって任意の保留中のコマンドを送信し、コマンドが書き込みコマンドである場合には、書き込みデータも送信する。
（３）それ以外に行うことが無い場合には、アイドルパケットを送信する。
【００４０】
トンネル入口部の受信側は、“１”にアサートされる“Ｔ ＡＣＷ ＢＵＳＹ”（トンネルアドレス／コマンド／書き込みデータビジー）信号によってビジー状態になるように示されている。
【００４１】
読み取りコマンドの全てのパケット（例えば、読み取りコマンドパケット、３２ビットトンネルにおけるアドレスパケット、選択的な読み取りクオリフィアパケット）は、図５に示される順番で送られる。各読み取りコマンドパケット間にアイドルパケットだけが挿入されても良い。同様に、書き込みトランザクションの全てのパケット（例えば、書き込みコマンドパケット、３２ビットトンネルにおけるアドレスパケット、選択的な書き込みクオリフィアパケット、書き込みデータパケット、書き込みラストパケット）も、図５に示される順番で送られる。フロー制御のため、各書き込みトランザクションコマンドパケット間にアイドルパケットだけが挿入されても良い。
【００４２】
ソース同期通信システムがターゲット（すなわち、送り先）をオーバーランする際に生じる複雑さを無くすため、トンネルは、受信バッファ、例えば先入れ先出し記憶構造すなわちＦＩＦＯで十分なスペースを利用できる場合、データだけを送信するようになっている。通信チャンネルを介したデータ送信の“飛行時間”中に、受信バッファのデータ記憶容量に加えて、通信チャンネルそれ自体の一時データ記憶容量を利用することにより、最大速度および最大効率を得ることができる。また、受信バッファからデータ送信中止を行なう送信部まで“フル”の信号を送るために必要な時間を予想し、その時間を送信／受信調整信号のタイミングに組み込まなければならない。飛行時間遅延は、通信チャンネルの実際の長さに基づいてシステムに依存するものである。例えば、共通の基板上の２つのシステムチップ間でトンネルを相互に接続すると、プラグインカードによって相互に接続されるシステムよりも飛行時間遅延が実質的に短くなる。
【００４３】
本発明の一実施形態において、通信チャンネルの長さにより、通信チャンネルの６インチ当たり１ナノ秒の伝搬遅延が生じる。通信チャンネルの最大長は１２インチであるため、信号が通信チャンネルの送信端に到達するまで通信チャンネルの送り先で受信バッファフラグがアサートされる時間から、２ナノ秒（ｎＳ）の伝搬遅延が予期される。同様に、データ信号が通信チャンネルを行き来するのにかかる時間であるデータ“飛行”時間に起因して、通信チャンネルの送り先へのデータ送信にかかった時間も２ｎＳである。通信チャンネル伝搬遅延は、通信チャンネルそれ自体において２ｎＳのデータ“記憶”を与える。したがって、通信チャンネル内でデータが終わるまで“ほぼフル”の信号を送信する受信バッファ間で生じる全体の遅延は４ｎＳである。
【００４４】
この実施形態の最高送信速度は４００ＭＨｚであり、これはクロックサイクル当たり２．５ｎＳに相当する。４ｎＳという全体の遅延は、２クロックサイクル遅延をもって補償される。クロック周波数が２００ＭＨｚ以下の場合、通信チャンネルを介したダウン伝搬遅延およびバック伝搬遅延を補償するためには、１クロックサイクル遅延が必要である。同期クロックシステムにおいては、通信チャンネル伝搬遅延以外に、更なる３クロックサイクルの補償が必要である。内部クロックに同期して状態フラグが形成される場合に受信バッファ状態フラグを送信するためには、更に１クロックサイクルの補償が必要である。また、受信された状態フラグ信号も１クロックサイクルだけ遅れる。構造を強化する準安定性に応じて、更に１クロックサイクルまたは２クロックサイクルの遅れを加えるために、受信装置における内部状態フラグは、クロックドメインを変えなければならない。受信装置は、“ほぼフル”のフラグを受ける装置であり、一般的には、送信しようとする装置、例えば図１のトンネル入口送信部１５２またはトンネル出口送信部１４２である。したがって、全体のクロック遅延は、クロック論理に起因する１＋１＋１＝３クロックサイクルと、通信チャンネル伝搬遅延に起因する更に２クロックサイクルとを合わせて、５クロックサイクルとなる。
【００４５】
この実施形態の一態様において、受信バッファは、“ほぼフル”の表示が与えられる（例えば、状態フラグがアサートされる）プログラム可能な“フル”のレベルを含む。“ほぼフル”の表示がプログラム可能な範囲は、包括的に個々の受信バッファに残される４ランク〜１６ランクである。
【００４６】
図６Ａは、本発明の一実施形態に係るトンネル１１０からＤＲＡＭ１２５へのデータパケットフロー制御を示すタイミング図の一例である。図６Ａに示される通信トランザクションの一例において、周辺装置１３０は、ＳＤＲＡＭ１２５にアクセスするためにトンネル１１０を使用している。通信トランザクションは、一連の３つの書き込み（Ｗ１〜Ｗ３）と、３つの読み取り（Ｒ１〜Ｒ３）と、第４の書き込み（Ｗ４）と、第４の読み取り（Ｒ４）と、最後の第５の書き込み（Ｗ５）とを含む。トンネルへと送信される一連の書き込み及び読み取りは、図６Ａの一番上の列６１０に示す。図６Ａの真ん中の列６２０に書き込み及び読み取りの演算によって示されるように、ＤＲＡＭは、全ての要求を、それらがトンネル送信部で送信／要求される順番と同じ順番で行なう。書き込み完了コードは、各書き込みがＤＲＡＭで行なわれた後、イニシエータトンネルの受信側に戻され、これにより、書き込み作業が終了したことが示される。イニシエータトンネル受信部でのこれらの書き込み完了コードの相対的なタイミングおよび読み取りは、図６Ａの一番下の列６３０に示す。送信および受信は停止せず、したがって、図６Ａに規定されていない全てのスペースがアイドルパケットの送信で満たされる（簡略化のため図示せず）。
【００４７】
図６Ｂは、ビジー状態の受信バッファを受け入れるためのアイドルパケットの挿入を伴う、本発明の一実施形態に係るトンネルからＤＲＡＭへのデータパケットフロー制御を示すタイミング図の一例である。図６Ｂの名称および一連のデータパケットは、図６Ａのそれと同じである。前述したように、送信および受信は停止せず、したがって、図６Ｂに規定されていない全てのパケット間スペースは、アイドルパケットの送信で満たされる。簡略化のため、２つのアイドルパケット６４０、６４０のみが図６Ｂに明示される。
【００４８】
６９０で示される相対時間において、周辺装置は、トンネル出口送信側に対して２つの書き込みＷ１、Ｗ２を順次送信する。６９１で示される相対時間において、ＤＲＡＭはＷ１を書き込む。ＤＲＡＭは、トンネル入口の受信側によってＷ１が完全に受信されるまで、Ｗ１を書き込み始めることができない。６９２で示される相対時間において、アドレス／コマンド／書き込みデータ（“ＡＣＷ”）受信バッファがフルとなり、これにより、アイドルパケット６４０が送信され、Ｗ３の遅延が終了する。６９３で示される相対時間において、ＤＲＡＭは、Ｗ１を終了し、Ｗ２を開始する。６９４で示される相対時間において、トンネルへのＷ３の送信が完了する。６９５で示される相対時間において、周辺装置は、４つの読み取りコマンドをトンネルに送信する。読み取りコマンドだけの場合、各読み取りコマンドは、非常に僅かなバッファスペースしか使用しない。６９６で示される相対時間において、ＤＲＡＭコントローラはＷ３を終了し、読み取りＲ１、Ｒ２、Ｒ３を行なう。６９７で示される相対時間において、Ｒ２は、周辺装置のトンネル出口受信側で、受信バッファスペースを待つべくトンネルにわたる進行中に待機する。ＤＲＡＭデータは、常にＤＲＡＭ速度で送信しなければならず、ＤＲＡＭコントローラが待機させられることはありえない。
【００４９】
開始装置は、トンネルにわたるトランザクションを中止、或いは一時停止することができない。例えば、周辺装置１３０またはデータ経路１７０を介してトンネル出口部のターゲット１５６に接続された他の装置は、トンネルにわたるメモリトランザクションを中止、或いは一時停止することができない。
【００５０】
幾つかの特定の実施形態に関して本発明を説明してきたが、本発明の様々な態様は、前述した欠点を扱うとともに、他の用途に有用な通信方法および装置を提供する。本発明は、前述した特定の実施例に限定されると考えるべきではない。様々な変更、等価なプロセス、本発明を適用できる多数の構造が本発明の範囲内に含まれる。例えば、当業者であれば分かるように、本発明は他の通信装置でも許容でき、また、前述した送信プロトコルを利用するチップセット装置間での通信のために同様に構成された１方向または２方向インタフェースを使用する複数チップまたは単一チップ装置においても実施可能である。また、当業者であれば分かるように、前述した特許文献に記載された一つまたは複数の実施形態と本発明の実施形態とを組み合わせることにより、様々な別の利点が得られる。そのような利点、組み合わせ、他の変更及び／又は追加は、本発明の思想および範囲内から逸脱することなく行なうことができ、また、それらは添付の請求の範囲に記載された請求項に係る発明の一部とみなすことができる。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施形態に係る通信プロトコルを有する高速チップ間データ通信インタフェースを示すブロック図である。
【図２】本発明の一実施形態に係る書き込みプロトコルを示す状態図である。
【図３】本発明の一実施形態に係る読み取りプロトコルを示す状態図である。
【図４】本発明の一実施形態に係るトンネル出口受信／トンネル入口送信プロトコルを示す状態図である。
【図５】本発明の一実施形態に係るトンネル出口送信／トンネル入口受信プロトコルを示す状態図である。
【図６Ａ】本発明の一実施形態に係るデータパケットフロー制御を示すタイミング図である。
【図６Ｂ】本発明の一実施形態に係るアイドル文字を含むデータパケットフロー制御を示すタイミング図である。
【図１】
2005510798.tif 000003
【図２Ａ】
2005510798.tif 000004
【図２Ｂ】
2005510798.tif 000005
【図３Ａ】
2005510798.tif 000006
【図３Ｂ】
2005510798.tif 000007
【図４】
2005510798.tif 000008
【図５】
2005510798.tif 000009
【図６Ａ】
2005510798.tif 000010
【図６Ｂ】
2005510798.tif 000011
【国際調査報告】
2005510798.tif 000012
2005510798.tif 000013