(57)【特許請求の範囲】
【請求項１】
複数の情報処理エージェント（以下、単に「エージェント」と称す）から成る情報処理システムでこれらのエージェント間でメッセージを転送するメッセージ転送システムにおいて、
各々のエージェントに全体クロック信号を供給するとともにその全体クロック信号を使用して対話式メッセージの送信を行う全体同期形態を有し、少なくとも１つの前記エージェントから少なくとも他の１つのエージェントに、少なくとも１つの対話式メッセージを全体同期形態で送給するための第１相互連結手段と、
前記全体クロック信号のレートより大きいレートを有するよう該全体クロック信号から生成されたデータクロック信号を前記少なくとも一つのエージェントから出力するデータクロック手段を備え、該データクロック信号を使用して非対話式メッセージの送信を行うソース同期形態を有し、前記少なくとも１つのエージェントから前記少なくとも１つの他のエージェントへソース同期形態で、少なくとも１つの非対話式メッセージを送給する第２相互連結手段と、
前記複数のエージェントの各々に、前記第２相互連結手段を介して前記エージェントによって受信した非対話式メッセージをメタスタビリティによるエラーのリスク無しで処理できる時を、前記エージェントによって前記第１相互連結手段を介した少なくとも１つの対話式メッセージの受信に基づいて決定する決定手段とを設け、
前記決定手段は、送信側エージェントが前記第２相互連結手段を介して一つの非対話式メッセージを送信する際に発行した、前記第１相互連結手段を介する対話式メッセージとしてのヘッダ信号を受信する受信手段を有し、この受信手段が前記ヘッダ信号を受信したときに受信側エージェントが前記一つの非対話式メッセージが到来したことを認識して該一つの非対話式メッセージを処理できる時を決定するよう構成したことを特徴とするメッセージ転送システム。
【請求項２】
中央調停器と、バスと、このバスに接続する複数の情報処理エージェント（以下、単に「エージェント」と称す）から成る情報処理システムでこれらのエージェント間でメッセージを転送するメッセージ転送システムにおいて、
前記中央調停器と前記複数のエージェントとの間で低速のクロック信号を使用して対話式メッセージの送信を行う全体同期形態を有し、前記中央調停器と前記複数のエージェントとの間で、少なくとも１つの対話式メッセージを全体同期形態で送給するための第１相互連結手段と、
非対話式メッセージを送信するために前記中央調停器から前記バスの使用権を許可されたときに高速データクロック信号を出力するデータクロック手段を備え、該データクロック信号を使用して受信先のエージェントに非対話式メッセージの送信を行うソース同期形態を有し、前記バスの使用権を許可されたエージェントから前記受信先のエージェントへソース同期形態で、少なくとも１つの非対話式メッセージを送給する第２相互連結手段と、
前記複数のエージェントの各々に、前記第２相互連結手段を介して前記バスの使用権を許可されたエージェントによって送信された非対話式メッセージをメタスタビリティによるエラーのリスク無しで処理できる時を、前記エージェントによって前記第１相互連結手段を介した少なくとも１つの対話式メッセージの受信に基づいて決定する決定手段とを設け、
前記決定手段は、前記中央調停器からの前記第１相互連結手段を介する、前記バスの使用権を許可されたエージェントの送信済みサイクル数を表す信号を受信する受信手段を有し、この受信手段が該送信済みサイクル数を表す信号を受信したことをもって受信側エージェントが前記一つの非対話式メッセージを処理できる時を決定するよう構成したことを特徴とするメッセージ転送システム。
【請求項３】
中央調停器と、バスと、このバスに接続する複数の情報処理エージェント（以下、単に「エージェント」と称す）から成る情報処理システムでこれらのエージェント間でメッセージを転送するメッセージ転送方法において、
前記中央調停器と前記複数のエージェントとの間で低速のクロック信号を使用して対話式メッセージの送信を行う全体同期形態を形成し、前記中央調停器と前記複数のエージェントとの間で、少なくとも１つの対話式メッセージを全体同期形態で送給するステップと、
前記中央調停器から非対話式メッセージを送信するために前記バスの使用権を許可されたときに高速データクロック信号を使用して受信先のエージェントに非対話式メッセージの送信を行うソース同期形態を形成し、前記バスの使用権を許可されたエージェントから前記受信先のエージェントへソース同期形態で、少なくとも１つの非対話式メッセージを送給するステップと、
前記バスの使用権を許可されたエージェントによって送信された非対話式メッセージをメタスタビリティによるエラーのリスク無しで処理できる時を、前記受信先のエージェントが前記全体同期形態での前記中央調停器からの少なくとも１つの対話式メッセージの受信に基づいて決定するステップとを備え、
前記決定するための少なくとも一つの対話式メッセージは、前記バスの使用権を許可されたエージェントの送信済みサイクル数を表す信号であることを特徴とするメッセージ転送システム。
【発明の詳細な説明】
【０００１】
【技術分野】
本発明は、複数のデータ処理装置間に情報を転送する方法および装置に関するものである。特に、本発明は、コンピュータバスの改良に関し、このバスでは、ソース同期データの転送と、調停（アービトレーション：ａｒｂｉｔｒａｔｉｏｎ）／整合（ｃｏｎｓｉｓｔｅｎｃｙ）情報を全体的に同期させて転送することを利用して、再同期化および準安定性を回避している。
【０００２】
【従来技術】
一般に、コンピュータ分野では、システムバス上の複数個のデータ処理装置、例えば、プロセッサ、メモリ、入／出力デバイス、周辺コントローラ等間で情報を転送することが極く普通に行われている。システムバスとは本質的には、種々のデバイスを予め決められた形態で相互に接続する配線の集合である。代表的に、このシステムバスには、アドレスライン、データライン、クロックライン、パワーライン、および多数の制御信号ラインが設けられている。共同資源としてのシステムバスに対するアクセスを頻繁に調停する必要があると共に、バスプロトコル即ち、「ハンドシェイク」ルーチンをこのバスに結合されたすべてのデータ処理装置によって観察している。このようなバスプロトコルは、このバスに結合されたデバイス間でデータを実際に交換するに先立って行われるイベントの予め決められた順序を必要としている。
【０００３】
特定のデータ処理システムの全体のスピードおよび性能は、そのシステムのバスによって利用されるオペレーションの設計および方法によって大きく影響を受けるものである。このシステムバスの性能を測る２つの尺度としては、待ち時間およびスループットが存在する。待ち時間とは、デバイスによるバスを利用する要求とこの要求に対する調停の許可との間の遅延時間である。スループットとは、デバイスによってバスに対してデータを転送する権利が許可されてから、実際にデータを転送できる割合を称している。
【０００４】
一般に、１つのバスアクセス要求に相当するデータは、マルチサイクルパケット形態で送信される。この理由は、送信すべき情報のビット数は、データを送信するために利用されるバスワイヤの数に比べて相当多いからである。また、データの転送には高いスループットが望まれている。しかし乍ら、調停およびキャッシュ整合情報は、バスのアクセス当たり、僅か数ビットの情報のみを表すと共に、一般に、このような情報を１サイクルまたは２サイクル内で転送するために、十分なバスワイヤを設けている。従って、この情報に対して、待ち時間の少ないことは高いスループットに比べて更に重要なことである。
【０００５】
この結果、特定のデータ処理タスクに対して必要な演算時間量を最小限度に抑制するために、少ない待ち時間で且つ、高いスループットを有するバスを提供することが望まれている。マルチ処理の利用の増加に伴って、オペレーションサポートマルチ処理のバス装置および方法が更に重要なものとなってきている。
【０００６】
バスを介してデータを転送することは、全体同期データ転送またはソース同期データ転送を利用することによって実行できる。全体同期データ転送においては、中央全体クロックによって、データを送信するデバイスおよびこのデータを受信するデバイスを包含するすべてのデバイスに対してクロック動作させる。これに対して、ソース同期データ転送においては、データを送信するデバイスによって、このデータおよびクロック信号の両者を受信デバイスに送信する。ソース同期データ転送において、データが、受信したクロックを利用して、受信中のデバイス内に設けたデータバッファ中に頻繁に記憶され、この記憶動作は、受信中のデバイスからデータの読取り準備ができるまで行われる。データをこのデータバッファから読出す場合に、受信中のデバイスのローカルクロックの制御の下で読出し動作が行われる。従来例では、そのような処理には、一般に、準安定度に付随したリスクと共に再同期化が要求されていた。
【０００７】
前述したように、本発明の装置および方法によれば、高速のソース同期データ転送および低速で全体同期式の調停／整合情報の転送の両方を上手に利用している。また、本発明のバスによってキャッシュコヒーレントマルチ処理をサポートすると共に、このバスをパケット切換型プロトコル内で適切に利用する。更に、本発明の方法および装置によれば、再同期化と組合わされた準安定度の可能性を効果的に除去できる特徴がある。
【０００８】
【発明が解決しようとする課題】
本発明は、特定のデータ処理タスクに対して必要な演算時間量を最小限度に抑制し、少ない待ち時間で且つ、高いスループットを有するバスを提供する。
【０００９】
【課題を解決するための手段】
以下において、準安定度とは無関係な高速のソース同期型バスが開示されている。このバスは、特に、マルチプロセッサコンピュータシステムでの応用に適している。このバスは、高速のソース同期データ転送および低速で全体同期の調停／整合情報の転送を利用している。第１実施例によれば、高速のクロック信号および低速のクロックイネーブル信号を中央調停器からこのバスに結合されたエージェントへ全体的に分配する。或るエージェントがバスの制御を受ける場合に、このエージェントは中央調停器によって供給された高速クロック信号を利用し、これによってソース同期データ転送を実行する。この高速クロック信号をデータクロックラインに「送給」し、これと同期してこのデータをデータラインに与える。従って、このデータは、送信用エージェントから受信用エージェントへ、送給された高速クロック信号を利用し乍ら、ソース同期形態で転送される。
【００１０】
これに対して、調停要求と、調停許可とは、低速のクロックイネーブル信号の早さで全体同期形態で処理されている。第１実施例においては、低速の全体クロックイネーブル信号によって、調停情報の処理を、中央調停器から各エージェントに結合された低速の全体クロックイネーブルラインを介して制御する。本実施例によって再同期化の必要性を回避できると共に、中央調停器から受信用エージェントへ転送データのサイクル数についての情報（「インタラクティブ」情報）を低速の全体クロックイネーブル信号で伝達することによって準安定度の可能性を除去できる。このような方法によって、受信用エージェントは、この「インタラクティブ」情報を全体同期形態で受信すると共に、これが受信データバッファ内で安定している時に、データを消費する。この実施例によって、キャッシュコヒーレントマルチ処理を容易にサポートすることができると共に、パケット切換式プロトコルで良好に利用できる。本発明によれば、データのパケット間のデッドタイムを、バスの中心部に中央調停器を配置することによって最小に抑えることができる。
【００１１】
他の実施例によれば、低速のクロック信号を複数のエージェントおよび１つの中央調停器全体に配分している。次に、各エージェントによって、この低速クロック信号に位相ロックされた高速クロック信号を発生する。更に、この高速クロック信号を高速のソース同期データ転送用に利用する。調停／整合情報を、この低速クロック信号レートで取扱う。また、他の実施例によれば、再同期化および準安定度は、データパケットの開始を表すと共に、低速クロック信号レートで送信されるヘッダ信号を利用することによって回避できる。
【００１２】
【実施例】
コンピュータシステムで利用される特定な応用例を有する、改良された高速バスが開示されている。以下の記載において、例えば、特定の周波数、帯域幅、データパス等の種々の詳細な記載は、説明のためであり、本発明を容易に理解するためのものである。しかし乍ら、本発明をこれら特定の詳細なデータを用いなくとも実現できることは当業者であれば容易である。また、以下に説明した他の実施例によれば、周知の電気的回路および構成がブロックダイヤグラムの形態で示されており、これは本発明を不必要に不明確にするのを防止するためである。
【００１３】
また、本発明が或る情況の下で記載されているが、本発明をこの特定の情況に限定するためのものでなく、且つ、データ処理システムの広範な利用範囲で適用できることは当業者にとって明白である。特に、本発明は次のようなシステムで利用することが好適なものである。即ち、パケット切換式データ転送、キャッシュ・整合、スヌーピング、および共用／専用情報のパイプライン処理によって特徴付けられたシステムである。本発明は、特に、以下に示した３件の米国特許出願明細書に記載されたシステムおよびバスプロトコルと協動することによって好適に利用できる。即ち、Ｓｉｎｄｈｕ等によって１９９０年１１月３０日に出願され、ゼロックスコーポレーションに譲渡された３件の米国特許明細書で、発明の名称は「共用メモリマルチプロセッサ用の整合パケット切換式メモリバス」、「共用メモリマルチプロセッサ用の整合プロトコル」、および「共用メモリマルチプロセッサ用バスを包含するパケット切換式バスの調停」である。
【００１４】
図１には、本発明を適用できるコンピュータシステムの一例の構成が図示されている。この基本的なコンピュータシステムにおいて、中央演算ユニット（ＣＰＵ）２０は、バス１００上に存在する多数のデータ処理デバイスおよび周辺デバイスと通信を行う。本明細書では、本発明のバス１００  に結合された、これらデータ処理デバイスおよび周辺デバイスを、以下集合的に「エージェント」と称するものとする。図１において、これらエージェントには、ＤＲＡＭ２４に結合されたメモリコントローラ２２と、Ｉ／Ｏバス２８に結合された入／出力デバイス２６と、ＧＦＸモジュール３０とが包含されている。所望に応じて、共有プロセッサ、ディスクインターフェイス、またはネットワークインターフェイスを含む追加のエージェントを、所望に応じてこのデータ処理システムに追加することができる。
【００１５】
同様に、図１において、このバス１００  には、複数の個々のラインが設けられており、これらラインによって、データおよびコントロール信号をこのコンピュータシステム中の種々のエージェントに伝送する。中央調停器１５０によって、バス１００に結合された種々のエージェントから、このバス１００  のコントロールに対する要求を調停する。データの転送がこのバス１００上で実行される。前述したように、本発明のバス１００  は高速及び低速の双方で利用される。高速はソース同期データ転送などで、低速は全体同期の調停要求およびキャッシュ整合情報転送などである。また、本発明のバス１００  によれば、再同期と組合わされた準安定度の問題を有効に除去することができる。ソース同期のデータ転送と、全体同期のデータ転送との基本的な差異について、以下詳述する。
【００１６】
図２は、全体同期データ転送に利用する回路網を簡単な形態で表しており、このデータ転送は、送信用エージェント４０として表されているデータ転送用エージェントと、受信用エージェント５０として表されているデータ転送用エージェントと間で行われる。図２で示したように、この送信用エージェント４０にはドライバ４４に結合されたフリップフロップ４２が設けられており、他方、受信用エージェント５０にはフリップフロップ５２に結合された受信器５４が設けられている。中央全体クロック６０によって、全体クロック信号を送信用エージェント４０および受信用エージェント５０の両方へ送給する。これらクロック信号がスキューするのを防止するために、全体クロック６０を送信用エージェント４０と受信用エージェント５０とに与えるために利用するワイヤの長さおよび電気的特性を、理想的には同一なものにする。
【００１７】
図２において、送信用エージェント４０から受信用エージェント５０へデータライン４６を経てデータを送信する（図面上、単一データラインを示しているが、実際の応用例では、このようなデータラインを複数本、実質的に並列に利用して１バイトまたは複数バイトの情報を送給するようにする）。特に、伝送すべきデータを、最初、フリップフロップ４２の外で、中央全体クロック６０の制御の下でクロック処理する。次に、このデータは、送信用エージェント４０から受信用エージェント５０へ転送され、この受信用エージェント５０内では、このデータが受信器５４によって受信され、これによってデータがフリップフロップ５２へ与えられる。中央全体クロック６０の制御の下で、このデータがフリップフロップ５２へクロック処理される。
【００１８】
このように、全体同期型データ転送には、必然的に、大幅な遅延が起こることが明らかである。前提条件として、１クロック期間内では、単一ビットを送信用エージェント４０からデータライン４６を経て受信用エージェント５０まで送信することができる。従って、データライン４６を介してビットを通信する早さは、クロックの周波数に等しいものとなる。残念ながら、このクロックの周波数は、電気信号を１つの場所から他の場所へ送信するのに固有の多くの遅延によって抑制される。送信用エージェント４０から受信用エージェント５０までデータを確実に送信するために、クロック期間（１／周波数）を信号送信に必要な時間より大きく設定する必要がある。即ち、この信号が、受信用フリップフロップ５２に到達する前および登録される前に、送信用フリップフロップ４２から、ドライバ４４を経て、データライン４６上へ送信され、かつ受信器５４を介して送信されるのに必要な時間である。
【００１９】
更にまた、このようなシステムを実際に実現する場合には、中央全体クロック６０のクロック信号を送信用エージェント４０および受信用エージェント５０に分配するために利用される実際のワイヤ（配線）の長さおよび電気的特性（インピーダンス）を正確に同一にすることは希である。この結果として受信用エージェント５０によって受信されたこのクロック信号が、送信用エージェント４０に供給されたクロック信号に比べてスキューすると共に、スキュー遅延が生じてしまう。幾何学的スキューとして称される異なった長さのワイヤによるスキューは、特に、多数のデータラインがバスに組込まれている場合に目立つものである。また、技術的スキューと称されている第２のタイプのスキューは、電気的デバイスの特性の差に基因するものである。これらスキュー項を信号伝搬遅延に追加して、データを信頼性を維持しながら送信するための最少クロック期間を決定する必要がある。従って、全体同期システムでは、クロック早さは信号伝送遅延と、スキューとの両者によって制限を受け、これによってデータ伝送レートも同様に制限を受けるようになる。
【００２０】
テーブル１には、図２で示したような全体同期のデータ転送において生じる遅延に対する具体的な値および特別な項目が含まれている。これら具体例は具体的な最大値に相当する。
【００２１】
テーブル１
（１）  ｔｃｋ−Ｑ            ｔｃｋ−Ｑ−ｍａｘ＝０．５  ｎｓ（内部フリップフロップ）
（２）  ｔｄｒ                  ｔｄｒ−ｍａｘ＝２．５  ｎｓ（バスドライバー）
（３）  ｔｐｒｏｐ              ｔｐｒｏｐ−ｍａｘ＝４  ｎｓ（１２  ｉｎ／３  ｉｎ／ｎｓ）
（４）  ｔｒｃ                  ｔｒｃ−ｍａｘ＝２．５  ｎｓ（バス受信器）
（５）  ｔｓｅｔｕｐ            ｔｓｅｔｕｐ＝０．５  ｎｓ（内部フリップフロップセットアップ）
（６）  ｔｓｋｅｗ              ｔｓｋｅｗ＝１．５  ｎｓ（幾何学的／技術的スキュー）
【００２２】
このテーブル１にある項目は図２のエレメントに関連するもので、以下に説明する。即ち、テーブル１と図２とを参照すると、第１の項目ｔｃｋ  −Ｑは、クロックがフリップフロップ４２において低から高へのトランジション（転移）を起こす時間から、出力データがフリップフロップ４２でそれ自身の新しい値になる時間までの遅延に相当する。第２の項目ｔｄｒは、ドライバ４４を介しての伝送遅延に相当する。第３の項目ｔｐｒｏｐは、特に重要な項目であり、データライン４６の長さに亘ってのデータの伝送に基因する伝送遅延である。テーブル１のこの項目の値は、データライン長は１２インチであり、約１ｎｓ／３インチの伝送遅延である。このような仮定条件は、以下のような状況に相当する。即ち、多数のエージェントが１２インチ長のバスに接続されており、送信用エージェント４０がこのバスの一端に配置されると共に、受信用エージェント５０が他端に配置される。第４項目ｔｒｃは、受信器５４を介して伝送される時間量に相当し、第５項目ｔｓｅｔｕｐ  は、フリップフロップ５２によってデータを正確にレジスタ（登録）するのに必要なセットアップ時間量を表している。第６番目ｔｓｋｅｗは送信用エージェント４０によるクロック処理と受信用エージェント５０によるクロック処理との間に対応する。
【００２３】
図２およびテーブル１から理解できるように、全体同期データ転送システムにおける最大サイクル時間（データのビット間のタイムインターバル）ｔｃｙｃｌｅは、以下の式を満たす必要がある；
ｔｃｙｃｌｅ＞ｔｃｋ−Ｑ−ｍａｘ＋ｔｄｒ−ｍａｘ＋ｔｐｒｏｐ−ｍａｘ＋ｔｒｃ−ｍａｘ＋ｔｓｅｔｕｐ＋ｔｓｋｅｗ
従って、これらの項目に対してテーブル１に設けられた上述の値を利用して演算すると、ｔｃｙｃｌｅ＞１１．５  ｎｓとなる。この結果、テーブル１に与えられたような具体的なパラメータを有する全体同期のデータ転送システムにおいては、クロックは１／１１．５  ｎｓ、即ち８７ＭＨｚより速く動作できないものとなる。結局、ワイヤ当たりのデータレートは８７Ｍｂｉｔｓ／秒を越えることができない。以下ソース同期データ転送について詳述する。
【００２４】
図３は、送信用エージェント７０と受信用エージェント８０との間でのソース同期データ転送に利用される回路網を簡単形態で表している。図３で示したように、この送信用エージェント７０にはフリップフロップ７２、ドライバ７４、ドライバ７５が設けられ、他方受信用エージェント８０にはＦＩＦＯデータバッファ８２、レシーバ８４、レシーバ８５が設けられている。ソースクロック信号がフリップフロップ７２およびドライバ７５に供給される。このＦＩＦＯデータバッファ８２には、受信用エージェント８０によってデータをＦＩＦＯデータバッファ８２から読出すまで、この受信用エージェント８０に対して送信されたデータをストアする。データがＦＩＦＯデータバッファ８２に導入される瞬時レートを、このデータを受信用エージェント８０によって読出す瞬時レートとは無関係に設定できる。
【００２５】
続いて図３において、このソース同期データ転送システムでは、データ（ＤＡＴ）  とソースクロック信号との両者を送信用エージェント７０から受信用エージェント８０へ転送する。転送すべきデータ（ＤＡＴ）  をソースクロック信号の制御の下でフリップフロップ７２によってクロック処理する。次に、データ（ＤＡＴ）  およびソースクロック信号をドライバ７４とドライバ７５とに供給する。更に、これらドライバ７４とドライバ７５とによって、これらデータ（ＤＡＴ）  およびソースクロック信号をデータライン７６およびソースクロックライン７７にそれぞれ供給する（また、図面の都合上、単一データラインのみを表すと共に説明する）。データライン７６とソースクロックライン７７によって、データ（ＤＡＴ）  およびソースクロック信号をレシーバ８４とレシーバ８５とにそれぞれ供給する。受信用エージェント８０内において、このデータ（ＤＡＴ）をソースクロック信号の制御の下でＦＩＦＯデータバッファ８２  でクロック処理する。
【００２６】
従って、このソース同期データ転送において、これらデータおよびソースクロック信号は、送信用エージェント７０および受信用エージェント８０へ実質的に並列形態で伝搬される。理想的には、このような転送において、これらドライバ、レシーバ、およびクロックとデータ通路用ワイヤ（配線）がマッチング（整合）され、これによって伝送上の差を最小限にできる。例えば、ドライバ７４とドライバ７５とをマッチングさせることが重要なことである。更に、データライン７６とソースクロックライン７７とを、同一長および同一電気的特性としてマッチングさせる必要がある。また、レシーバ８４と８５とをマッチングさせる必要がある。
【００２７】
次に、テーブル２を参照し乍ら、図３に示したようなソース同期データ転送システムでの特定の項目および遅延に関する具体的な値を説明する。これら具体的な値は、具体的な最大値に相当する。
【００２８】
テーブル２
（１）  ｔｃｋ−Ｑ            ｔｃｋ−Ｑｍａｘ＝０．５  ｎｓ（内部フリップフロップ）
（２）  △ｔｄｒ              △ｔｄｒ＝０．２  ｎｓ（バスドライバの伝搬遅延における差）
（３）  △ｔｐｒｏｐ          △ｔｐｒｏｐ＝０．２  ｎｓ（伝搬における遅延差：±２．５％）
（４）  △ｔｒｃ              △ｔｒｃ＝０．２  ｎｓ（バスドライバの伝搬遅延における差）
（５）  ｔｓｅｔｕｐ            ｔｓｅｔｕｐ＝０．５  ｎｓ（内部フリップフロップセットアップ）
【００２９】
テーブル２と図３において、第１の項目ｔｃｋ  −Ｑは、クロックがフリップフロップ７２が「ロー」から「ハイ」へ転移する時間から出力データがフリップフロップ７２で新しい値に成る時間までの遅延に相当する。第２の項目△ｔｄｒは、ドライバ７４と７５との間の伝搬における遅延の差に相当する。第３の項目△ｔｐｒｏｐは、データライン７６とソースクロックライン７７のと間の伝搬上の遅延における差に相当する。第４項目△ｔｒｃは、レシーバ８４の伝搬遅延と、レシーバ８５の伝搬遅延との間の差に相当する。第５項目ｔｓｅｔｕｐ  は、データを正しくレジスタするために、ＦＩＦＯデータバッファ８２にとって必要なセットアップ時間量を表している。
【００３０】
また、これらテーブル２および図３から理解できるように、ソース同期データ転送システムにおけるサイクルタイム（データのビット間のタイムインターバル）は、以下の式を満たす必要がある；
ｔｃｙｃｌｅ＞ｔｃｋＱ−ｍａｘ＋△ｔｄｒ＋△ｔｐｒｏｐ＋△ｔｒｃ＋ｔｓｅｔｕｐ
従って、これらの項目に対してテーブル２  で与えられた具体例を利用して、このサイクルタイムを演算すると、ｔｃｙｃｌｅ＞１．６  ｎｓ  となる。結局、テーブル３で記載されたパラメータを有するソース同期システムにおいては、クロックは１／１．６  ｎｓ、即ち、６２５ＭＨｚより高速で動作できない。このことは、ワイヤ当たりのデータレートは、６２５Ｍｂｉｔｓ／秒、即ち、前述した全体同期システムのデータレートより  ７倍も大きなものであることを意味する。また、図３に示したフリップフロップ７２、ドライバ７４／７５、およびレシーバ８４／８５によって発生された出力信号は、このデータレートで動作できるのに十分に短い立上り時間および立下り時間を有する必要があることが明らかである。以下、本発明による、調停要求と整合性情報の低速度での全体同期転送と組合わされた、高速度のソース同期データ転送の利用について詳述する。
【００３１】
図４は、本発明の第１実施例の全体を簡易的に表すブロックダイヤグラムである。図示のように、第１エージェント１１０、第２エージェント１８０、および中央調停器（調停器）１５０がバス１００に結合されている。例示的な目的により、僅か２つのエージェントのみ図示している。前述したように、本発明はこのような特定の内容に限定されるものではない。特に、多数の追加のエージェントをこのバスに接続可能で、この数は、単に、バス１００  の電気的負荷によって制限されるものである。本発明のバス１００  は以下に示した複数のラインから構成されるものである。即ち、全体クロック（ＧＣＫ）ライン１０１  、全体クロックイネーブル（ＧＣＫＥ）ライン  １０２、全体データサイクル（ＧＤＣ）ライン１０３  、データ（ＤＡＴ）ライン１０４（図示の都合上、１つのデータラインのみ表示）、およびデータクロック（ＤＣＫ）ライン１０５から構成される。更に、バス１００には、エージェント１１０用の要求（ＲＥＱＳ）ライン１０６  およびバス許可（ＧＮＴＳ）ライン１０８、更に、エージェント１８０用の要求（ＲＥＱＲ）ライン１０７およびバス許可（ＧＮＴＲ）ライン１０９が設けられている。このバス１００  に接続された各エージェントには、それ自身用のバス要求ラインとバス許可ラインとが設けられている。
【００３２】
図４に示した本発明の実施例において、中央調停器１５０  によって、バスの制御用の調停要求に加えて、全体クロック信号（ＧＣＫ）を全体クロックライン１０１へ供給する。この全体クロック信号（ＧＣＫ）自身を中央調停器１５０内で発生するか、または、図４に示したように、このクロック信号を外部のソースからこの中央調停器１５０  へマスタクロック信号の形態で供給することもできる。本例においては、この全体クロック信号（ＧＣＫ）を例えば２５０ＭＨｚ  のような高い周波数で作用させることができる。次に、この高い周波数の全体クロック信号（ＧＣＫ）  を全体クロックライン１０１へ供給し、この全体クロックライン１０１によって全体クロック信号（ＧＣＫ）  をこのバス１００に接続された種々のエージェントへ供給する。
【００３３】
また、図４において、エージェントは、バス要求を要求ラインを介して発生させることによってこのバスのコントロールを要求する。前述したように、時々、このバスをコントロールする各エージェントは、中央調停器１５０  に結合された独特な要求ラインを有している。この中央調停器１５０  は、このような種々の要求を調停し、次に、このバスの特定のエージェントのコントロールを許可する。これには、この特定のエージェントに結合されたバス許可ライン上にバス許可信号を発生させて行う。例えば、エージェント１１０  は、バス要求信号（ＲＥＱＳ）をバス要求ライン１０６に発生させることによりバス１００上のコントロールを要求する。次に、中央調停器１５０はバス１００のエージェント１１０  に対するコントロールを、バス許可信号（ＧＮＴＳ）をバス許可ライン１０８上に発生させることによって許可する。
【００３４】
バスのコントロールが許可されたエージェントによって、データ（ＤＡＴ）  をデータライン１０４  に転送する（図面を簡単且つ明瞭にするために、単一のデータラインのみを図示すると共に説明する）。以下に説明するように、データクロックライン１０５によって、ソース同期データ転送用のデータクロック信号（ＤＣＫ）が供給される。また、後続するように、本発明によれば、全体クロックイネーブル（ＧＣＫＥ）ライン１０２  がコントロールラインとして有効に作用し、調停／整合情報のタイミングを制御する一方、全体データサイクルライン１０３  によってデータサイクル情報（ＧＤＣ）をバス１００に接続されたエージェントに供給する。これによって再同期化および準安定性を回避できる。
【００３５】
次に、本発明による、高速のソース同期データ転送の方法および装置を、図４を参照し乍ら説明する。以下の説明において、エージェント１１０  を「送信用エージェント」と呼び、エージェント１８０を「受信用エージェント」と呼ぶ。一般に、多数の受信用エージェントを設置できる。また、一般的な事項として、送信用エージェント１１０によって、高周波全体クロック信号を受信用エージェント１８０に送給して、高速のソース同期データ転送を実行する。特に、この送信用エージェント１１０は、データ（ＤＡＴ）をデータライン１０４を供給する一方、全体クロック信号（ＧＣＫ）をデータクロックライン１０５  にも供給することによって高速ソース同期データ転送を遂行する。また、全体クロック信号（ＧＣＫ）自身を中央調停器１５０によって送信用エージェント１１０に供給している。
【００３６】
従って、本発明によれば、高速のソース同期データ転送は、全体的に分配されたクロック信号を「供給」することによって実行される。そのようなアプローチで全体システムをクロックの特性および周波数を理解し乍ら設計することができ、このクロックをデータと共に供給するようにしている。本質において、全体的に既知のクロックレートが１つだけ存在し、これが中央調停器１５０  によってバス１００に接続されたエージェントに与えられるようになっている。
【００３７】
図５は、図４に示した送信用エージェント１１０  から発生された信号と、受信用エージェント１８０  によって受信された信号との間のタイミング関係を表す。図５における垂直線は、このシステムにおける絶対時間を表す。（クロック信号以外のすべての信号はロー（低）レベルとして考える）。本発明のソース同期データ転送は、図４および図５を参照し乍ら理解し得るものである。送信用エージェント１１０  によって、データ信号（ＤＡＴ）およびデータクロック信号（ＤＣＫ）をデータライン１０４とデータクロックライン１０５とにそれぞれ供給する。前述したように、データクロックライン１０５に供給されたデータクロック信号（ＤＣＫ）を全体クロック信号（ＧＣＫ）から取出す。この全体クロック信号は、調停器１５０によって送信用エージェント１１０へ供給される。初期の伝搬遅延「ｔｐｒ」以降、データクロック信号（ＤＣＫ）とデータ信号（ＤＡＴ）を受信エージェント１８０で受信すると共に、ソース同期データ転送が完了する。
【００３８】
図６は、本発明による全体クロック信号（ＧＣＫ）  を「送給」するために利用する回路網の一実施例を表す。これによって、高速のソース同期データ転送用の高速の全体配分型のクロックを利用できる。図６において、エージェント１１０  、全体クロックライン１０１、データライン１０４、データクロックライン１０５  およびバス許可ライン１０８が図示されている。
【００３９】
現在、エージェント１１０によって、データをバス１００上に転送しようとし、このエージェントがこのバスを利用する権利を許可されたものとすると、中央調停器１５０（本図では図示せず）バス許可（許可）ライン１０８をローにする。このバス許可信号（ＧＮＴＳ）をレシーバ１１２へ供給し、次にこのレシーバ１１２によって、この信号がフリップフロップ１１６へ供給される。このフリップフロップ１１６は、全体クロックライン１０１によって供給された全体クロック信号（ＧＣＫ）の制御の下で作動する。フリップフロップ１１６はバス許可信号（ＧＮＴＳ）をロジック（論理）ゲート１１８へ供給し、これには、全体クロック信号（ＧＣＫ）  も供給される。従って、この全体クロック信号（ＧＣＫ）が、エージェント１１０のバスのコントロールを許可された時に、データクロックライン１０５へ送給される。その後、エージェント１１０によってデータライン１０４  上のデータ（ＤＡＴ）をドライブすると共に、データクロックライン１０５上の同期されたデータクロック信号（ＤＣＫ）  をドライブする。この結果、全体的に配分されたクロック信号が送給されてソース同期データ転送を完了する。
【００４０】
図７のブロックダイヤグラムおよび図８のタイミングダイヤグラムは、本発明による調停要求および整合性情報の全体的な同期について開示している。図７に示したように、中央調停器１５０  は、ドライバ１５４、１５８、レシーバ１５２、１５６、Ｎ分割カウンタ１６０、およびフリップフロップ１６２を有している。エージェント１１０は、ドライバ１２８、レシーバ１２２、１２４およびフリップフロップ１２６を有する。全体クロック（ＧＣＫ）ライン１０１、全体クロックイネーブル（ＧＣＫＥ）ライン１０２、および要求（ＲＥＱＳ）ライン１０６も図示されている。
【００４１】
図７で示したように、マスタクロック信号を中央調停器１５０  へ供給する。（前述したように、このクロック信号は、高周波数、例えば、２５０ＭＨｚで動作している）。レシーバ１５２によって、このマスタクロック信号をドライバ１５４、Ｎ分割カウンタ１６０およびフリップフロップ１６２に供給する。ドライバ１５４  によって、このマスタクロック信号が全体クロックライン１０１  へ供給されて、これによって、前述したように、マスタクロック信号を「全体クロック信号」として、効果的に分配できるようになる。Ｎ分割カウンタ１６０  によって、このマスタクロック信号を予め決められた数値「Ｎ」によって分割して、全体クロックイネーブル信号を有する本発明が実現する。本質的には、「Ｎ」マスタクロックサイクル毎に、Ｎ分割カウンタ１６０  によって全体クロックイネーブル信号が１サイクル間出力される。従って、このマスタクロック信号の周波数が２５０ＭＨｚで、Ｎが４であると仮定すると、このＮ分割カウンタ１６０によって、６２．５ＭＨｚの全体クロックイネーブル信号が出力される。後述するように、この全体クロックイネーブル信号をこのバス構成中で利用して、全体的に、調停および整合性情報を同期させる。
【００４２】
更に、図７において、Ｎ分割カウンタ１６０  の全体クロックイネーブル信号出力をドライバ１５８へ供給し、次に、このドライバ１５８によって、この全体クロックイネーブル信号（ＧＣＫＥ）を全体クロックイネーブルライン１０２へ供給する。この結果、この全体クロックイネーブル信号（ＧＣＫＥ）が、バス１００  に全体クロックイネーブルライン１０２  を介して接続された種々のエージェントへ供給される。特に、この図に示したように、この全体クロックイネーブル信号（ＧＣＫＥ）  をエージェント１１０へ供給し、ここでは、レシーバ１２４によって全体クロックイネーブル信号（ＧＣＫＥ）  をフリップフロップ１２６  のイネーブル入力に与える。従って、この図から明らかなように、フリップフロップ１２６が、全体クロックライン１０１上に与えられた高速の全体クロック信号によってクロック処理される一方、このフリップフロップ１２６  が全体クロックイネーブル信号（ＧＣＫＥ）の早さでイネーブルされるだけである。
【００４３】
図７および８を参照し乍ら、バス要求の処理について説明する。動作において、例えばエージェント１１０  のようなエージェントがバスのコントロールを所望する場合に、このエージェントは、中央調停器１５０  からバスのコントロールを要求する。この調停器１５０  は、主としてこのバスのコントロールに対する複数の要求を処理するものである。例えば、エージェント１１０  がバスのコントロールを所望する場合に、最初、このエージェント１１０はその要求をフリップフロップ１２６に与える。図示したように、このフリップフロップ１２６  はそのクロック入力に、高周波の全体配分したクロック信号（ＧＣＫ）  を受信する。しかし乍ら、このフリップフロップ１２６は、全体クロックイネーブル信号（ＧＣＫＥ）  の制御の下で変化できるだけである。上述したように、この全体クロックイネーブル信号をフリップフロップ１２６  のイネーブル入力に供給する。従って、バスにアクセスする要求が、全体クロックイネーブル信号（ＧＣＫＥ）のタイミングで、且つ制御の下で創作されることがわかる。
【００４４】
この要求を供給してライン１０６を要求した後で、これを中央調停器１５０に供給する。図示したように、レシーバ１５６によって、この要求がフリップフロップ１６２に与えられる。このフリップフロップ１６２  を高速のクロック信号、本例の場合に、マスタクロック信号でクロック動作させるが、Ｎ分割カウンタ１６０  によって発生させた低速のクロック信号によってイネーブルされる。この結果、調停要求が、低速のクロックイネーブル信号の制御の下で中央調停器１５０  によって処理される。調停要求の処理のタイミングダイヤグラムが図８に図示されている。
【００４５】
前述の記載から明らかなように、全体クロックイネーブル信号（ＧＣＫＥ）を全体クロックイネーブルライン１０２へ分配することによって、中央調停器１５０は、バスに接続された各エージェントが調停要求を適切に発生させた場合に、各エージェントに対して効果的に指示を出すようになる。この全体クロックイネーブル信号（ＧＣＫＥ）によって、「対話式メッセージ」と呼ばれているものの転送を有効に制御できることがわかる。即ち、このメッセージとは、システム内において、１つ以上のソースから到来するメッセージ間の調製のいくつかのフォームを最終的に要求するメッセージである。調停要求は、対話式メッセージの一例である。例えば、このバスを要求を発生させているエージェントに対して分担させる必要があり、且つ、複数の競合するエージェントが存在する場合に、これら要求は１個以上のソースから生成されたもので、これら要求を中央調停器１５０  によって調製する必要がある。本発明によれば、このような「対話式メッセージ」を全体同期形態で、データが転送される早さと比較して遅い早さで適切に転送することができる。
【００４６】
「対話式メッセージ」に対比して、「非対話式メッセージ」は１つ以上のソースから到来したメッセージ間の調製を必要としない。データの転送は、「非対話式メッセージ」の転送と考えることができる。データはまた「非対話式メッセージ」を１つのソース、即ち送信用エージェントから、１つまたはそれ以上の受信用エージェントへ簡単に送信する。１つ以上のソースからのメッセージの調製は行われない。本発明によれば、そのような「非対話式メッセージ」を高速でソース同期形態で好適に転送することができる。以下、本発明による再同期化および準安定性の可能性の回避を説明する。
【００４７】
高速のソース同期型データ転送を利用した従来のシステムにおいて、一般に、再同期化が受信用エージェントで必要であった。通常、この受信用エージェントは、データをデータバッファ中に受信し、次にこのデータバッファからの或る信号、即ちフラグに応答していた。このフラグは、このデータが受信用エージェントに対して、データバッファから何時読出させるかを表していた。このような従来のシステムでは、このデータは最後に、データバッファより読出されるが、準安定性が発生するリスクがあった。従って、これらシステムは一連のフリップフロップを頻繁に利用して、そのような準安定性に類似したものを下げていた。後述するように、本発明によれば、中央調停器から受信用エージェントへ、転送されたデータがデータバッファから読出すことが可能であることを表した信号を送信することによって、準安定性を除去できる。
【００４８】
図９は、準安定性を除去できる本発明の方法および装置を示す。バス１００  に接続されたエージェント１１０、中央調停器１５０およびエージェント１８０  が図示されている。また全体クロックライン１０１、データライン１０４、データクロックライン１０５、全体クロックイネーブルライン１０２および全体データサイクルライン１０３  が図示されている。同図に示されるように、また前述したように、中央調停器１５０  には、ドライバ１５４、１５８、レシーバ１５２、ならびにＮ分割カウンタ１６０が設けられている。この中央調停器１５０によって全体クロックイネーブル信号（ＧＣＫＥ）  が全体クロックイネーブルライン１０２に供給される。この中央調停器１５０は、再に、ドライバ１７２に接続されたデータサイクルマルチビットフリップフロップ１７０が設けられている。受信用エージェント１８０には、ＦＩＦＯ１９０に接続されたレシーバ１９２、１９４が設けられ、このＦＩＦＯ１９０の出力がポイント１９５に存在する受信用エージェントによって読取られる。この受信用エージェントには、マルチビットフリップフロップ１８５に接続されたレシーバ１８２、１８４、１８６が設けられている。このマルチビットフリップフロップ１８５をＦＩＦＯエントリ有限状態マシーン１８８に接続する。
【００４９】
図９において、送信用エージェント１１０はデータを受信用エージェント１８０に送信することを所望するものとする。このバスが利用できるものとすると、送信用エージェント１１０からの要求に応答して、この中央調停器１５０は送信用エージェント１１０に対して、データをバス上に送信する権利を許可する。（要求ライン１０６とバス許可ライン１０８  は図９では示されない）。図６を参照し乍ら、初期段階で説明したように、全体クロックライン１０１からの高速の全体クロック信号（ＧＣＫ）を送信用エージェント１１０を介してデータクロックライン１０５へ供給する。これに同期して、データ（ＤＡＴ）をデータライン１０４に供給すると共に、受信用エージェント１８０中のＦＩＦＯ１９０に供給する。
【００５０】
送信用エージェント１１０  によってデータを送信開始した後の所定のサイクルにおいて、中央調停器１５０はデータをＦＩＦＯ１９０中に存在させる必要があることを実際に知っている。本質的に、中央調停器１５０  はこのことを認知している。その理由は、この調停器１５０はバスを許可して送信用エージェント１１０より受信用エージェント１８０にデータを送信するからである。従って、中央調停器１５０は、情報を受信用エージェント１８０に全体クロックイネーブル（ＧＣＫＥ）  速度で好適に送信する。この情報は、ＦＩＦＯ１９０  からデータを取出せることを表すものである。転送されたデータのサイクル数を表すこの情報を、マルチビットフリップフロップ１７０  からドライバ１７２を介して全体データサイクル（ＧＤＣ）ライン１０３  に供給する。次に、このデータサイクル情報を、全体データサイクル（ＧＤＣ）ライン１０３を介して、受信用エージェント１８０  へ送給する。特に、このデータサイクル情報をマルチビットフリップフロップ１８５へ供給する。このマルチビットフリップフロップ１８５を高速の全体クロックレートでクロック動作させるが、低速の全体クロックイネーブルレートでイネーブル状態にする。従って、「Ｎ」個の全体クロックレート毎に、マルチビットフリップフロップ１８５  をイネーブル状態にすると共に、このＮサイクル期間内のデータサイクル数をマルチビットフリップフロップ１８５  にロードする。次に、この数をＦＩＦＯエントリ有限状態マシーン１８８に与える。このマシーン１８８には、データサイクル情報のトラックを保持するロジックが設けられており、この結果として、このマシーンは受信用エージェント１８０  に対して、データをＦＩＦＯデータバッファ１９０から何時、読出せるかをアドバイスする。
【００５１】
また、データサイクル情報を低速の全体クロックイネーブル信号（ＧＣＫＥ）レートで通信することによって、中央調停器１５０  は全体同期形態で前述したプロセスを遂行できる。この場合、この形態では、再同期化を必要としないものである。所望に応じて、中央調停器１５０  は、この情報を与える前に、予め決められた数の全体クロック信号（ＧＣＫ）  サイクル、例えば、４または５クロック信号サイクル待機する。この結果、ＦＩＦＯデータバッファ１９０  にストアされたデータが読出される前に安定化するようになる。
【００５２】
図１０は、本発明による中央調停器１５０のバス１００の中央における配置を絵図的に表す。２つのエージェント、即ち、エージェントＥとエージェントＤがバス１００  に接続されて図示されている。この図において、簡単に示すために、バスライン１０４と１０５とをバス１００の上側部分に統合する一方、バスライン１０１、１０２、１０３、１０６、１０７、１０８  および１０９をこのバス１００の下側部分に統合している。前述したように、本発明は、パケット切換式データ転送、キャッシュ・整合性、スヌーピングおよび共有／専有情報のパイプライン化によって特徴付けられたシステム内で好適に利用できるものである。
【００５３】
本発明のバスをパケットスイッチ切換式プロトコルと協動して利用するものと仮定すると、データパケット間のデッドタイムを図１０を参照し乍ら演算することができる。「ｔｘｙ」を、２地点ＸおよびＹ間のバス上の一方向の伝搬遅延とする。また、「ｔｄ」を最小時間とし、この最小時間は、中央調停器（Ａ）１５０  がエージェントＥのパケットの許可を停止した時間と、エージェントＤのパケットの許可を開始した時間との間の経過時間である。またパケットの重複を回避するために、ｔｄ≧ｔＥＤ＋ｔＡＥ−ｔＡＤ  とする。この式を以下に説明する。前提条件として、中央調停器（Ａ）１５０は時間ゼロにおいて、エージェントＥのパケットに対する許可を停止する。エージェントＤにおいて、エージェントＥのパケットを時間ｔＡＥ＋ｔＥＤで停止する。エージェントＤにおいて、エージェントＤのパケットが時間ｔｄ＋ｔＡＤで開始できる。重複を回避するためにｔｄ＋ｔＡＤ≧ｔＡＥ＋ｔＥＤとする。この結果ｔｄ≧ｔＥＤ＋ｔＡＥ−ｔＡＤとなる。しかし乍ら、ｔＥＤ＝ｔＡＥ＋ｔＡＤである。この結果、前述の式をｔｄ≧２（ｔＡＥ）と書替えることができる。これと同一の理由付けを、中央調停器１５０  によるエージェントＤの許可の停止およびエージェントＥの許可の開始の場合に応用でき、重複を回避するために、以下の条件を満たす必要がある。ｔｄ≧２（ｔＡＤ）
【００５４】
所定の実行に対する最悪のデッドタイムは、エージェントＥがバスの一端に配置されると共に、エージェントＤがこのバスの他端に配置され、さらに、このバスのコントロールがこれらエージェントＥ、Ｄ間に伝わるようなケースに相当する。前述した式から、重複（オーバーラップ）を回避するための最悪のデッドタイムは、ｔｄ≧Ｍａｘ［２（ｔＡＥ），２（ｔＡＤ）］であり、これを書替えると、ｔｄ≧Ｍａｘ［２（ｔＡＥ），２（ｔｐ−ｔＡＥ）］となる。ここで、ｔｐは、バスの一方向における端から端までの伝搬遅延である。上述した式から明らかなように、中央調停器１５０がバス１００の中央に配置される場合に、この中央調停器１５０は、パケット間のｔｐより長いデッドタイムを残す必要はなくなる。このことは、バスのコントロールを交換するエージェントの位置に拘らず、真実となる。しかし乍ら、この中央調停器１５０  を、これらエージェントの位置に関する知識に基づいて設計することによって、特定状況におけるパケット間のｔｐより短い時間、待機することもできるようになる
。
【００５５】
図１１は、バス１００  に対する３つのエージェント、即ち、エージェントＡ、ＢおよびＣの結合ならびに中央調停器１５０  の結合を図示する。簡単のために、全体クロック（ＧＣＫ）ライン１０１、全体クロックイネーブル（ＧＣＫＥ）ライン１０２  、全体データサイクル（ＤＧＣ）ライン１０３をバス１００  の上側部分にまとめている（エージェントＡ、Ｂ、Ｃ用の個々のバス要求ラインおよびバス許可ラインは図示しない）。データ（ＤＡＴ）ライン１０４とデータクロック（ＤＣＫ）ライン１０５も同様にまとめてある。
【００５６】
図１２、１３、１４および１５に示したタイミングダイヤグラムは、図１１に示した３つのエージェントで、異なったデータ転送のシナリオの下で実現した信号を図示する。図１２は、背中合わせで２サイクルパケットのケースにおいて実現した信号を示す。トップの信号は、中央調停器によって出力されたような全体クロック信号（ＧＣＫ）に相当する。次に、この全体クロック信号（ＧＣＫ）をエージェントＡ、Ｂ、Ｃで受信したように図示する。バス許可信号（ＧＮＴ）、  データクロック信号（ＤＣＫ）およびデータ信号（ＤＡＴ）を、エージェントＡ、Ｂ、Ｃに対しても表示する。図１３は、背中合わせで９サイクルパケット用のタイミングダイヤグラムである。図１４は、２サイクルパケットによって追従された９サイクルパケットに関するタイミングダイヤグラムを示す。図１５は、共有／専有待ち時間タイミングダイヤグラムを示す。追加の共有／専有信号が各エージェント用に示されており、これは図１５の底部に示した組合わせ共有／専有信号と一緒に図示されている。前述したように、本発明は、スヌーピングおよびキャッシュ・整合性を利用できるようなプロトコルで好適に利用するものである。
【００５７】
システムのパラメータが既知なものであれば、本発明によるデータのバンド幅を演算することができる。以下のパラメータを仮定する。パリティ保護された８バイトのバス幅、２５０ＭＨｚの全体クロック信号、６２．５ＭＨｚ  の全体クロックイネーブル信号、４で割切れるパケット開始サイクル、６４バイトに相当するデータ転送ブロック、約１全体クロックサイクルの一方向トリップを有する１２インチのバス長、２または９サイクルの要求パケット、２または９サイクルのリプライ（応答）パケット、および２または３サイクルのパケット間の平均デッドタイムである。これらの条件の下で、本発明のバスは２ＧＢ／Ｓのピーク帯域幅を有するものとなる。読取りブロックを７０％、書込みブロックを２０％、その他のパケットを１０％とすれば、本発明によるバスのデータバンド幅は１ＧＢ／Ｓとなる。
【００５８】
従って、本発明のバスによって、システムの広範な利用を容易にサポートできる。例えば、本発明は、図１に示した基本的なシステムを用いて、外部のキャッシュを利用せずに、内部での書込み方針を有するデータキャッシュを用いて容易に実施できる。また、本発明は、特に、外部キャッシュを利用し、書戻し方針の下で中規模システム用に好適なものである。更に、本発明によれば、ハイエンド（上位）サーバー（ｈｉｇｈ−ｅｎｄ−ｓｅｒｖｅｒ）  を容易にサポートできる。本発明によって達成される性能のレベルは、ローエンド（下位）ワークステーションからハイエンドサーバーおよびこれを超えるようなシステムの全体範囲における種々の応用に好適なものであることは明らかである。
【００５９】
図１６は本発明の他の実施例を示すブロックダイヤグラムである。前述の実施例と同様に、この実施例は高速のソース同期のデータ転送および低速の全体同期の、調停／整合性情報の転送を利用するものである。この実施例では、中央調停器２５０は、バス２００  のコントロール用の要求を調停している。バス２００には、データ（ＤＡＴ）ライン２０３（簡単のため１本のデータラインのみ図示する）、データクロックライン（ＤＣＫ）２０４、ヘッダライン（ＨＤＲ）２０５  、バス要求（ＲＥＱＳ）ライン２０１、バス要求（ＲＥＱＲ）ライン２０６、バス許可（ＧＮＴＳ）ライン２０２、およびバス許可（ＧＮＴＲ）ライン２０７  が設けられている。前記実施例において説明したように、本発明は、このような２つのエージェント構成に限定されるものでなく、単に図面上の都合によるものである。
【００６０】
図１６から明らかのように、前述の実施例と比較して、この他の実施例では、マスタクロック信号をバスに接続された各エージェントおよび中央調停器２５０  に直接配分している。（２つのエージェント間および中央調停器２５０  と各エージェントとの間のクロックスキューを最小にするために、マスタクロックラインのトレース長さを等しくすることが好ましい）。また、この中央調停器２５０  自身によって、全体クロックを配分しない。また更に、前述の実施例に比べて、本実施例では、このマスタクロック信号は比較的低い周波数、例えば、６２．５ＭＨｚ  で動作する。前述した「対話型情報」のタイプとして、バス要求信号およびバス許可信号を、この低周波のマスタクロック信号と同期して中央調停器２５０  によって取扱う。
【００６１】
高速のソース同期データ転送用に、各エージェントは高速のクロック信号（ＦＣＫ）  を内部的に発生する。このクロック信号は、全体周波数の１／Ｎ番目のもので、既知の位相ロックループ技術を駆使して位相ロックさせ、上述した各エージェントに供給する低周波のマスタクロック信号に対比されるものである。従って、この高速のクロック信号（ＦＣＫ）  はマスタクロック信号に比べて「Ｎ」倍高速なもので、これで「Ｎ」を適切に選ぶことによって、高速のソース同期データ転送が実現する。例えば、マスタクロック信号を６２．５ＭＨｚ  で動作させると共にＮ＝４とした場合に、高速クロック信号（ＦＣＫ）は２５０ＭＨｚ  で動作すると共に、４で割り切れるこのＦＣＫ信号をマスタクロックに位相ロックさせる。
【００６２】
この高速クロック信号（ＦＣＫ）から、高速データクロック信号（ＤＣＫ）を発生させると共に、利用して高速ソース同期データ転送を実現する。このＤＣＫ  信号は、高速クロック信号（ＦＣＫ）の周波数および位相に一致している。例えば、動作において、エージェント２１０がバス２００の制御の下で許可された時に、このエージェントによってデータをデータライン２０３  に供給すると共に、その高速データクロック信号（ＤＣＫ）をデータプロセッサライン２０４に供給する。従って、この実施例によって低周波のクロックを全体的に配分するようになる。次にこれらエージェント自身によって、位相ロックループ回路で高速クロック信号を発生する。この結果ソース同期データ転送がこの高速クロック信号を利用して実現される。
【００６３】
図１７には、この他の実施例における高速のソース同期のデータ転送を実現するために利用される送信エージェントの回路網が簡単な形態で図示されている。この回路網には、ドライバ２１８、２２０、２２２と、フリップフロップ２１６と、データクロック（ＤＣＫ）発生器２１４と、更に、高速クロック（ＦＣＫ）発生器２１２とが設けられている。データライン（ＤＡＴ）２０３、データクロックライン（ＤＣＫ）２０４、ヘッダライン（ＨＤＲ）２０５が図示されている。
【００６４】
動作において、高速クロック発生器２１２は高速クロック信号（ＦＣＫ）を発生し、これは全体周波数の１／Ｎであり、公知の位相ロックループ技術を駆使して位相ロックし、各エージェントに接続された低周波のマスタクロック信号に対比されるものである。この高速クロック信号（ＦＣＫ）をデータクロック発生器２１４に供給する。パケットサイズおよびバス許可を表す信号をデータクロック発生器２１４  にも供給する。データクロック発生器２１４  によって送信されたデータパケットのサイズに対応したデータクロック信号（ＤＣＫ）  を発生する。例えば、データクロック発生器によって、２サイクルパケットに対して２個のパルスデータクロック信号および、９サイクルパケットに対して９個のパルスデータ信号を供給する。図１７に戻って、データ（ＤＡＴ）を、データクロック発生器２１４から発生させたデータクロック信号（ＤＣＫ）と同期して、フリップフロップ２１６の外でドライブする。次に、このデータ（ＤＡＴ）を、データクロック信号（ＤＣＫ）  をデータクロックライン２０４に供給するのに同期してデータライン２０３  へ供給する。このようにして、高速のソース同期データ転送が実行される。
【００６５】
図１９は上述した他の実施例のデータ転送信号のタイミングチャートである。この図の上半分は送信用エージェントから発生されたデータ転送信号を表し、下半分は受信用エージェントで受信したこのデータ転送信号を表す。図１９の頂部から始めると、低周波のマスタクロック信号が図示されている。このマスタクロック信号の下側に、送信用エージェントによって発生され、位相ロックされた高速クロック（ＦＣＫ）信号が図示されている。次に、データクロック（ＤＣＫ）信号が図示され、９サイクルパケット用の９パルス信号に相当する信号と共に表されている。このデータクロック信号の下側に、データパケットおよびヘッダ信号が図示されている。所定の伝搬遅延Ｔｐｒｏｐの後で、ヘッダとデータと、データクロック信号が受信用エージェントによって受信される。データ信号とデータクロック信号との伝搬速度における差に対して最大安全マージンを与えるために、送信用エージェントは、データクロック信号の立下り縁部のデータを好適にドライブすると共に、受信用エージェントは、データクロック信号の立上り縁部のデータをサンプルする。
【００６６】
この他の実施例において、パケットがオーバーラップ（重複）するのを回避するために、２つのパケット間に最小の「デッドタイム」を設定する必要がある。以下に各項目を規定すると、Ｔｄ  はこのデッドタイムであり、Ｔｐはバス上の信号に対する一方向の最大伝搬時間であり、Ｔｓｋｅｗはマスタクロックにおける最大のクライアント対クライアントスキューである。更に、△Ｔｄｒは２つのクライアント間の最大のドライバ遅延の差である。従って、このデッドタイムは以下の式を満たす必要がある：
Ｔｄ＞Ｔｐ＋Ｔｓｋｅｗ＋△Ｔｄｒ
【００６７】
次に、図２０は、ソース同期データ転送を受けるために利用した受信用エージェント２８０  における回路網を簡単に表したものである。この回路網には、イネーブル発生器２８２、データレジスタ２８４、データＦＩＦＯ２９０、ヘッダレジスタ２８６、およびヘッダ有効フリップフロップ２８８  が設けられている。図２０に示したように、その他に、データライン（ＤＡＴ）２０３、データクロックライン（ＤＣＫ）２０４、およびヘッダライン（ＨＤＲ）２０５が設けられている。データ転送動作において、イネーブル発生器２８２  を利用してイネーブルパルスを発生する。このパルスは、転送されるデータパケットのサイズに依存している。図２１および２２を簡単に参照すると、これら図には、２サイクルパケットおよび９サイクルパケット用のイネーブル発生器の波形（ＤＥＮ）が図示されている。２サイクルパケット用のＤＥＮ波形は１サイクルの長さを有しており、他方、９サイクルパケット用の波形は８サイクルの長さを有している。次に、このイネーブル発生器２８２によって発生させたＤＥＮ波形をデータレジスタ２８４に供給する。このデータレジスタ２８４は、それのイネーブル入力に供給されたＤＥＮ  波形の制御の下およびそれのクロック入力に供給されたデータクロックライン上のデータクロック信号の制御の下で、データライン（ＤＡＴ）２０３からのデータを受け入れる。データレジスタ２８４中のデータをデータＦＩＦＯ２９０に供給する。このデータＦＩＦＯ２９０  からのデータを、ヘッダ有効信号を一旦受けると、受信用エージェント２８０によって受信するようにする。
【００６８】
本発明のこの他の実施例によれば、データパケットの開始において、ヘッダ信号を送ることによって準安定性を除去でき、このヘッダ信号の送出によって、データパケットが開始したことを表現できる。図１６、１７、２０において、このヘッダ信号を送信用エージェント２１０からヘッダライン２０５を介して受信用エージェント２８０  へ送信する。このヘッダ信号を低速の全体マスタクロック信号に送信すると共に、受信用エージェントによって同一のマスタクロック信号上で受信する。従って、これの送信および受信が準安定性を起こさないで保証される。
【００６９】
特に、図２０において、データ信号、データクロック信号、およびヘッダ信号をヘッダレジスタ２８６  へ供給する。送信用エージェントから低速の全体に配分されたマスタクロック信号上のヘッダ信号を、ヘッダレジスタ２８６  のイネーブル入力へ供給すると共に、ヘッダ有効フリップフロップ２８８  のセット入力に供給する。従って、このヘッダ信号はヘッダレジスタ用のイネーブルとして作動し、このレジスタによって到来するパケットの第１（即ち、ヘッダ）サイクルをストアする。また、このヘッダ信号によってヘッダ有効信号（即ち、フリップフロップ２８８  の出力）が１となる。これは、パケットが到来したことを表す。このヘッダ有効フリップフロップ２８８は、全体マスタクロックＭＣＫによってクロック動作すると共に、これのＤ入力を永久にゼロにセットする。この結果、このマスタクロックＭＣＫの各正のエッジの直後にヘッダ有効信号がゼロになる。これは、ＨＤＲ信号とは非同期で１にセットされるが、この信号はマスタクロックＭＣＫ  の正に向かうエッジに近接したトランジション（転移）を形成しないように保証される。（送信用エージェントと受信用エージェントとにおけるＭＣＫとＨＤＲとの間の位相関係を示した図１９を参照のこと）。
【００７０】
以上、図１〜２２を参照し乍ら、所定のディジタル設計例について本発明を説明してきたが、これら図面はあくまでも一例であり、本発明を限定するものではない。また、本発明の方法および装置を、種々の広範囲なデータ処理システムに利用できることは明らかである。所定のデータ処理環境の選択および、本発明を好適に利用できる種々なデータ処理システムに対する特定事項が無くても、本発明を広く利用するために、特別な限定を与えるものではない。更に、当業者であれば、以上開示した本発明の技術的思想および範囲を逸脱することなく、多くの変形および変更を加え得ることは明白である。
【図面の簡単な説明】
【図１】本発明を利用できるコンピュータシステムのコンポーネントの一例を示す。
【図２】全体同期データ転送に利用される回路網を示す。
【図３】ソース同期データ転送に利用される回路網を示す。
【図４】本発明の一実施例の方法および装置の全体を示す。
【図５】送信用エージェントにより発生されたデータ転送信号と、受信用エージェントにより受信されたデータ転送信号とのタイミング関係を示す。
【図６】ソース同期データ転送における全体配分型クロック信号を供給する回路の一実施例を示す。
【図７】調停要求および整合性情報の全体同期を表す。
【図８】調停要求および整合性情報の全体同期を表す。
【図９】本発明の方法および装置を示す。
【図１０】バスの中央において、本発明による中央調停器の好適配置を示す。
【図１１】本発明のバスに接続された３個のエージェントを示す。
【図１２】種々のデータ転送内容のタイミングを示す。
【図１３】種々のデータ転送内容のタイミングを示す。
【図１４】種々のデータ転送内容のタイミングを示す。
【図１５】種々のデータ転送内容のタイミングを示す。
【図１６】本発明の他の実施例のブロックダイヤグラムである。
【図１７】高速ソース同期データ転送を実行するために利用される送信用エージェントにおける回路網を示す。
【図１８】２サイクルおよび９サイクルパケット用のデータクロック信号を示す。
【図１９】他の実施例において用いられるデータ転送信号用のタイミングを示す。
【図２０】ソース同期データ転送を受信するために受信用エージェントの回路網を示す。
【図２１】２サイクルパケットおよび９サイクルパケットのイネーブル波形を表す。
【図２２】２サイクルパケットおよび９サイクルパケットのイネーブル波形を表す。
【符号の説明】
２０  ＣＰＵ
２４  ＤＲＡＭ
４２、５２、７２、８２、１２６、１６２  フリップフロップ
４０、７０、１１０、２１０  送信用エージェント
４４、７４、７５、２１８、２２０、２２２  ドライバ
５０、８０、１８０、２８０  受信用エージェント
５４、７５、８５、１１２、１２２、１２４、１５２  レシーバ
１００、２００  バス
２１２  クロック発生器
１５０、２５０  調停器
１６０  カウンタ
【図１】
0003552250.tif 000002
【図２】
0003552250.tif 000003
【図３】
0003552250.tif 000004
【図４】
0003552250.tif 000005
【図５】
0003552250.tif 000006
【図６】
0003552250.tif 000007
【図７】
0003552250.tif 000008
【図８】
0003552250.tif 000009
【図９】
0003552250.tif 000010
【図１０】
0003552250.tif 000011
【図１１】
0003552250.tif 000012
【図１２】
0003552250.tif 000013
【図１３】
0003552250.tif 000014
【図１４】
0003552250.tif 000015
【図１５】
0003552250.tif 000016
【図１６】
0003552250.tif 000017
【図１７】
0003552250.tif 000018
【図１８】
0003552250.tif 000019
【図１９】
0003552250.tif 000020
【図２０】
0003552250.tif 000021
【図２１】
0003552250.tif 000022
【図２２】
0003552250.tif 000023