(57)【特許請求の範囲】
【請求項１】
送信チップと受信チップとの間に接続されたチップ間通信バス上で情報パケットの通信を行うために必要なクロックサイクル数を減らす方法において、以下のステップを含むクロックサイクル数低減方法：
第一の時間間隔内に前記チップ間バス上に第一の情報ワードを出力すること、
連続する第二の時間間隔の間に前記第一の情報ワードを利用できるように、前記第一の時間間隔内に前記第一の情報ワードを前記送信チップの中に記憶すること、
前記第二の時間間隔内に前記送信チップ内で第二の情報ワードを発生し、
前記第二の時間間隔の間に前記送信チップ内で前記の記憶された第一の情報ワードを前記第二の情報ワードと比較すること、および
前記の記憶された第一の情報ワードが前記第二の情報ワードと同じである場合には、前記第二の時間間隔の間に前記第二の情報ワードの代わりに前記チップ間バス上に第三の情報ワードを出力し、前記の記憶された第一の情報ワードが前記第二の情報ワードと同じでない場合には、前記第二の時間間隔の直後の第三の時間間隔に前記第三の情報ワードを送ることであって、各時間間隔の継続時間は一つあるいはそれ以上のクロック周期であり、また第三の情報ワードは、前記比較が完了する前にチップ間バスへの送信準備がされる、前記方法。
【請求項２】
請求項１のクロックサイクル数低減方法において、第一の情報ワードが第二の情報ワードと同じになる確率を大きくするように前記第一の情報ワードが規定されるクロックサイクル数低減方法。
【請求項３】
請求項１のクロックサイクル数低減方法において、前記第一の情報ワードに指令ワードまたはアイドルワードが含まれ、前記第二の情報ワードに指令パケット処理に対するプリアンブルが含まれ、そして前記第三の情報ワードにパケット型符号が含まれるクロックサイクル数低減方法。
【請求項４】
請求項１のクロックサイクル数低減方法において、各時間間隔の継続時間が１クロック周期であるクロックサイクル数低減方法。
【請求項５】
請求項１のクロックサイクル数低減方法において、各時間間隔の継続時間が複数のクロック周期であるクロックサイクル数低減方法。
【請求項６】
チップ間バス上の情報パケット処理の間のクロックサイクルを節約するための装置において、
出力ならびに第一および第二の入力をそなえた選択回路であって、前記出力が前記チップ間バスと通じており、選択信号に応答して前記第一および第二の入力の一方を出力として選択する選択回路、
第一の時間間隔の間に前記チップ間バス上へ出力される第一の情報ワードを記憶する前記選択回路の前記出力と通じている一時記憶回路、および
前記選択回路の前記第一の入力と通じている第一の入力および前記一時記憶回路と通じている第二の入力をそなえた比較回路であって、前記一時記憶回路の中に記憶された前記第一の情報ワードと前記選択回路の前記第一の入力上の第二の情報ワードとを第二の時間間隔の間に比較し、前記第一および第二の情報ワードが同じ情報を含んでいるときには前記第二の時間間隔の間、前記選択回路により前記第二の情報ワードの代わりに前記選択回路の前記第二の入力上の第三の情報ワードを出力させる比較回路であって、各時間間隔の継続時間は一つあるいはそれ以上のクロック周期であり、また第三の情報ワードは、前記比較が完了する前にチップ間バスへの送信準備がされる、前記比較回路。
を含むクロックサイクル節約装置。
【請求項７】
請求項６のクロックサイクル節約装置において、前記選択回路がマルチプレクサを含むクロックサイクル節約装置。
【請求項８】
請求項６のクロックサイクル節約装置において、前記一時記憶回路がレジスタを含むクロックサイクル節約装置。
【請求項９】
請求項６のクロックサイクル節約装置において、前記第一および第二の情報ワードが同じビットパターンをそなえているとき、前記比較回路は前記選択回路により前記選択回路の前記第二の入力上の前記第三の情報ワードを出力させるクロックサイクル節約装置。
【請求項１０】
請求項６のクロックサイクル節約装置において、各時間間隔の継続時間が１クロック周期であるクロックサイクル節約装置。
【請求項１１】
請求項６のクロックサイクル節約装置において、各時間間隔の継続時間が多数のクロック周期である前記クロックサイクル節約装置。
【請求項１２】
チップ間バス上でデータのトランズアクションを完了するために必要なクロックサイクル数を低減するための装置において、
第一および第二の入力から、前記チップ間バスと通じている出力を選択するための手段、
第一の時間間隔の間に第一の情報ワードを記憶するための手段であって、前記選択手段の前記出力と通じている記憶手段、および
前記記憶手段の中に記憶された前記第一の情報ワードと前記選択手段の前記第一の入力上の第二の情報ワードとを第二の時間間隔の間に比較し、前記第一および第二の情報ワードが同じ情報を含んでいるときには前記第二の時間間隔の間、前記選択手段により前記第二の情報ワードの代わりに前記選択手段の前記第二の入力上の第三の情報ワードを出力させる手段であって、各時間間隔の継続時間は一つあるいはそれ以上のクロック周期であり、また第三の情報ワードは、前記比較が完了する前にチップ間バスへの送信準備がされる、前記手段を含むクロックサイクル数低減装置。
【請求項１３】
送信チップと受信チップとの間に接続されたチップ間通信バス上で情報パケットの通信を行うために必要なクロックサイクル数を減らす方法において、以下のステップを含むクロックサイクル数低減方法：
前記送信チップにおいて、指令データと、少なくとも一つのアイドルワード符号とを含む指令パケットを発生させるステップであって、前記指令パケットは、前記受信チップへの及び受信チップからのデータ転送に関して前記受信チップを制御するように構成されている、前記ステップと、
前記送信チップにおいて、前記少なくとも一つのアイドルワード符号の最後のアイドルワード符号を、次の指令パケットのプリアンブルとして動作するように修正するステップと、
を有する、前記方法。
【請求項１４】
請求項１３に記載の方法であって、前記最後のアイドルワード符号は、前記受信チップのバッファメモリの位置に対応するように修正されると共に、前記バッファメモリは、受信された指令パケットを記憶するように構成されている、前記方法。
【請求項１５】
送信チップと受信チップとの間に接続されたチップ間通信バス上で情報パケットの通信を行うために必要なクロックサイクル数を減らす方法において、以下のステップを含むクロックサイクル数低減方法：
前記送信チップにおいて、指令データと、少なくとも一つのアイドルワード符号とを含む第一の指令パケットを発生させるステップであって、前記第一の指令パケットは、前記受信チップへの及び受信チップからのデータ転送に関して前記受信チップを制御するように構成されている、前記ステップと、
以前に送信された第二の指令パケットの最後のアイドルワード符号と、前記第一の指令パケットのプリアンブルと、を比較するステップと、
前記第二の指令パケットの最後のアイドルワード符号が、前記第一の指令パケットのプリアンブルと同じである場合には、前記第一の指令パケットを、プリアンブル無しで、前記受信チップに送信するステップと、
を有する、前記方法。
【発明の詳細な説明】
発明の背景
発明の分野
本発明はチップ間バス上でデータを伝送するためのクロックサイクルの総数を減らすための方法および装置に関するものである。
関連技術の説明
たとえば母板（マザーボード）上のチップ間で制御情報および同期情報を伝送するために、比較的小さなチップ間バス（たとえば、４ビットの制御バス）が多数の用途で用いられている。たとえば、マイクロプロセッサと一緒に使用するためのチップ組は一対の集積回路（ＩＣ）チップとして、より都合よく製造することができる。第一のチップはプロセッサバスからアドレス信号および制御信号を受け、他方のチップはプロセッサバスからデータ信号を受ける。第一のチップはチップ間バスを介して第二のチップ上のデータ伝送を制御する。
このようなチップ間バスと一緒に通常、従来の制御信号伝送プロトコルが使用される。これにより、送信チップから一つ以上の受信チップに制御信号を転送することができる。従来のプロトコルによれば、チップ間制御バスを介して送られる指令（コマンド）はパケット形式で送信される。このパケット形式では、各指令パケットに一つ以上の指令ワードが含まれ、その前にプリアンブルワードおよびパケット型符号ワードが配置される。制御信号の転送は同期信号により同期して行われる。チップ間指令バスに指令データが転送されていないときは通常、新たな指令パケットが送られるまでバスにアイドルワードが送出される。
送信チップからチップ間バスを介して受信チップに指令信号を転送しようとするたびごとに、送信チップはバス上にパケット開始指令ワードを送出しなければならない。そのとき、バス上のデータが有効な指令パケットの開始を表すということを示すために、同期信号が作成される。同期信号は通常、パケット開始ワードと同じクロックサイクルで送られる。プリアンブルは時には、パケット開始ワードより前のクロックサイクルで送られる。したがって受信チップは、指令に応答する前に、まずプリアンブルを記憶（セーブ）しなければならない。コマンドパケットの残りを送る前にプリアンブルを送るために各パケットの開始時に１つの追加クロックサイクルが要求されることが分る。
発明の要約
インタフェースを介して送られる指令パケットを重なり合わせることにより通信待ち時間を短縮できるということを、本発明の発明者は見出した。本発明の一つの側面による好ましい実施例は、チップ間通信バスを介した情報の通信のために必要とされるクロックサイクル数を減らす方法である。チップ間通信バスは送信チップと受信チップとの間に接続される。この方法には、第一の時間間隔内にチップ間バス上に第一の情報ワードを出力すること、連続する第二の時間間隔の間に第一の情報ワードを利用できるように、第一の時間間隔内に第一の情報ワードを送信チップの中に記憶すること、第一の時間間隔内に受信チップで第一の情報ワードを受信すること、第一の時間間隔内に受信チップで第一の情報ワードを記憶して、連続した第二の時間間隔の間に利用できるようにすること、第二の時間間隔内に送信チップ内で第二の情報ワードを発生し、第二の時間間隔の間に送信チップ内で記憶された第一の情報ワードを第二の情報ワードと比較すること、および記憶された第一の情報ワードが第二の情報ワードと同じである場合には、第二の時間間隔の間に第二の情報ワードの代わりにチップ間バス上に第三の情報ワードを出力し、記憶された第一の情報ワードが第二の情報ワードと同じでない場合には、第二の時間間隔の直後の第三の時間間隔に第三の情報ワードを送ることのステップが含まれる。
好ましい実施例では、第一の情報ワードが第二の情報ワードと同じになる確率を大きくするように第一の情報ワードが規定される。
もう一つの好ましい実施例では、第一の情報ワードに指令ワードまたはアイドルワードが含まれ、第二の情報ワードに指令パケット処理に対するプリアンブルが含まれ、そして第三の情報ワードにパケット型符号が含まれる。
更にもう一つの好ましい実施例では、各時間間隔の継続時間が１クロック周期である。
代替実施例では、各時間間隔の継続時間が複数のクロック周期である。
もう一つの側面によれば、本発明の好ましい実施例に、チップ間バス上の情報パケット処理の間のクロックサイクルを節約するための装置が含まれる。この装置には、出力ならびに第一および第二の入力をそなえた選択回路が含まれる。出力はチップ間バスと通じており、選択回路は選択信号に応答して第一および第二の入力の一方を出力として選択する。装置には更に、第一の時間間隔の間にチップ間バス上へ出力される第一の情報ワードを記憶する選択回路の出力と通じている一時記憶回路、および選択回路の第一の入力と通じている第一の入力および一時記憶回路と通じている第二の入力をそなえた比較回路も含まれている。比較回路は、一時記憶回路の中に記憶された第一の情報ワードと選択回路の第一の入力上の第二の情報ワードとを第二の時間間隔の間に比較する。比較回路は更に、第一および第二の情報ワードが実質的に同じ情報を含んでいるとき、第二の時間間隔の間、選択回路により第二の情報ワードの代わりに選択回路の第二の入力上の第三の情報ワードを出力させる。
好ましい実施例では、選択回路がマルチプレクサを含み、一時記憶回路がレジスタを含む。
更にもう一つの実施例では、第一および第二の情報ワードが同じビットパターンをそなえているとき、比較回路は選択回路により選択回路の第二の入力上の第三の情報ワードを出力させる。
もう一つの実施例では、各時間間隔の継続時間が１クロック周期であるか、またはその代わりに各時間間隔の継続時間が複数のクロック周期である。
更にもう一つの側面によれば、本発明の好ましい実施例は、チップ間バス上でデータ処理を完了するために必要なクロックサイクル数を低減するための装置である。この装置には、第一および第二の入力から出力を選択するための手段が含まれている。その出力はチップ間バスと通じている。装置には更に、第一の時間間隔の間に第一の情報ワードを記憶するための手段が含まれている。その記憶手段は選択手段の出力と通じている。最後に、装置には、記憶手段の中に記憶された第一の情報ワードと選択手段の第一の入力上の第二の情報ワードとを第二の時間間隔の間に比較する手段が含まれている。その比較手段は、第一および第二の情報ワードが実質的に同じ情報を含んでいるときには第二の時間間隔の間、選択手段により第二の情報ワードの代わりに選択手段の第二の入力上の第三の情報ワードを出力させる。
【図面の簡単な説明】
第１図はチップ間指令バスによって接続された集積回路チップを含むコンピュータシステムの概略ブロック図である。
第２図はチップ間通信バスに沿ったクロックサイクルを節約するための本発明の機構を説明する、第１図の送信チップの内部回路の一部の概略ブロック図である。
第３Ａ−３Ｃ図はチップ間通信バスを介して送られる指令パケットに対する有効な伝送時間を示し、本発明の利点を説明するタイミング図である。
第４図は本発明の教示による早期プリアンブルの作成について第２図のステートマシンの動作を表す状態図である。
実施例の詳細な説明
第１図は本発明を組み込むことができる典型的なコンピュータシステム１００の概略ブロック図である。コンピュータシステム１００には、マイクロプロセッサ１０２が含まれる。チップ組１０７はＰＣＩバス１０８を介してＰＣＩマスタおよびスレーブ１０９と通信する。更にチップ組１０７はメモリバスのデータ部分１１２ならびにアドレスおよび制御部分１１４を介してメモリ（たとえば、ＤＲＡＭ）１１６と通信する。したがってチップ組１０７はコンピュータシステム１００の中でマイクロプロセッサバスからメモリバスへのブリッジとして動作する。もちろん、第１図に示されたコンピュータシステム１００は本発明を説明する際の明快さのために非常に簡略化されていることは熟練した当業者には明らかであろう。
図示するように、チップ組１０７には一対の集積回路（ＩＣ）チッナ１１０、１１２が含まれている。チップ１１０、１１２はコンピュータシステム１００の中の母（基）板上のチップ間通信バス１３０によって接続される。一実施例では、チップ間通信バス１３０に５ビットの制御バスが含まれる。この５ビットの制御バスを使用して送信チップ１１０から受信チップ１２０に指令信号が転送される。一実施例では、この５ビットの制御バスに実際には５本の線が含まれる。この中で、４本の線は指令ワードのために取って置かれ、第五の線は同期信号のために取って置かれる。本発明の一実施例に対しては４ビットのバスが都合がよく、また他の特定の用途の要求に応じて、より少数のバスまたはより多くのバスを使用してもよいことは、熟練した当業者には明らかであろう。この実施例では、チップ組１０７は二つのチップに分けられる。チップ組１０７をＰＣＩバス１０８およびマイクロプロセッサバス１０５と接続するために必要とされるピン数は、単一の集積回路ではコストの点で手が出せないものとなるからである。チップ組１０７のＩＣ１２０はマイクロプロセッサバス１０５からのデータ線を受け、チップ組１０７のＩＣ１１０はマイクロプロセッサバス１０５からのアドレスおよび制御線を受ける。マイクロプロセッサバス１０５と同様に、ＰＣＩバス１０８のデータ信号はチップ組１０７の中のチップ１２０へ伝送されるか、またはそれから伝送され、アドレスおよび制御信号はチップ１１０へ伝送されるか、またはそれから伝送される。同様に、アドレスおよび制御の情報はバス１１４を介してメモリ１１６とＩＣ１１０との間で交換され、データ情報はバス１１２を介してメモリ１１６とＩＣ１２０との間で交換される。
動作について説明する。マイクロプロセッサ１０２は母基板上の他のシステムへデータ、アドレス、および指令信号を送信し、また他のシステムからデータ、アドレス、および指令の信号を受ける。チップ組１０７はマイクロプロセッサからメモリへのブリッジとして動作するので、マイクロプロセッサ１０２から転送されるデータ、アドレス、および指令はそれぞれメモリバス部分１１２、１１４およびＰＣＩバス１０８を介してメモリ１１６ならびにＰＣＩマスタおよびスレーブ１０９に効率的に伝えられ得る。同様にチップ組１０７は、マイクロプロセッサバス１０５およびメモリバス１１２、１１４を介してＰＣＩマスタ１０９からマイクロプロセッサ１０２およびメモリ１１６に転送される信号に対するインタフェースとして動作する。ＩＣ１１０はマイクロプロセッサバス１０５およびＰＣＩバス１０８からアドレスおよび指令の信号を受け、ＩＣ１２０はマイクロプロセッサバス１０５、メモリバスのデータ部分１１２、およびＰＣＩバス１０８からデータ信号を受ける。
第２図はチップ間通信バス１３０に沿ったデータ転送の間のクロックサイクルを節約するために本発明の一実施例で使用される回路を示すチップ１１０および１２０の内部回路の部分の概略ブロック図である。第２図に示されるように、マルチプレクサ回路２２０はチップ間バス１３０を介して送られるべきパケットデータを選択する。
パケットのＰＲＥＡＭＢＬＥ入力２０７、ＰＡＣＫＥＴ＿ＴＹＰＥ入力２４０、およびＭＯＤＩＦＩＥＲ入力２１２はマルチプレクサ回路２２０の別々の入力としての役目を果たす。マルチプレクサ回路２２０は、チップ間バス１３０を介して送られるべき各指令パケットを形成するための必要に応じて各入力２０７、２４０、および２１２を選択する。マルチプレクサ２２０の出力は、選択バス２３８を介してステートマシン２３０によって制御される。
ステートマシン２３０はバス２４０を介してＰＡＣＫＥＴ＿ＴＹＰＥ入力を受け、線２４２を介してＮＥＷ＿ＲＥＱＵＥＳＴ入力を受ける。ＰＡＣＫＥＴ＿ＴＹＰＥ入力はチップ間バス１３０を介して転送されるべきデータの種類を示し、ＮＥＷ＿ＲＥＱＵＥＳＴ入力２４２は受信チップ１２０が次の指令パケットに対するＰＲＥＡＭＢＬＥを受ける準備ができているということを示す。ＮＥＷ＿ＲＥＱＵＥＳＴ線２４２はＡＮＤゲート２４１の出力に接続されている。ＡＮＤゲート２４１は線２４３を介して第一の入力を受ける。バス２４０および線２４３はＩＣ１１０内部の回路と接続されている。ステートマシン２３０は線２４４を介してＩＣ１１０の中の回路への、次のパケットに対する準備完了信号ＲＤＹの出力も行う。これは、ステートマシン２３０がＩＣ１１０の中の回路からの次の指令パケットを受けて処理する準備ができているということを示す。線２４４はＡＮＤゲート２４１の第二の入力となる。
マルチプレクサ２２０の出力はドライバ２５０を介して制御バス１３０に接続されている。更に、マルチプレクサ２２０の出力はレジスタ２５５に接続されている。レジスタ２５５の出力は比較回路２６０の第一の入力となる。更に、ＰＲＥＡＭＢＬＥ２０７の入力は比較回路２６０の第二の入力として与えられる。比較器２６０の出力は線２６５を介してステートマシン２３０にＰＲＥＡＭＢＬＥ＿ＳＥＮＴ入力として供給される。ステートマシン２３０は更に、ドライバ２７０を介して同期出力ＳＹＮＣを供給する。
第２図に示されるように、受信チップ１２０には受信レジスタ２８０が含まれている。受信レジスタ２８０はチップ間バス１３０からの前のクロックのデータを保持する（すなわち遅延させる）。バス２９０上の遅延したデータ、ならびにバス２９５および線２９６上のバッファ介したチップ間データはチップ１２０内部の回路に伝えられる。これらのデータは受信チップ１２０内の回路の制御入力としての役目を果たす。
動作について説明する。ステートマシン２３０がＲＤＹ信号２４４を送出してステートマシン２３０が次のパケットを処理できることを示し、チップ１１０内の回路が線２４３でＮＥＷ＿ＴＡＳＫ信号を送出すると、線２４２でＮＥＷ＿ＲＥＱＵＥＳＴ信号が送出され、次の指令パケットに対するＰＲＥＡＭＢＬＥ、ＰＡＣＫＥＴ＿ＴＹＰＥ、およびＭＯＤＩＦＩＥＲがチップ間バス１３０で出力するために利用できるということを示す。
選択バス２３８を介したステートマシン２３０の制御のもとに、マルチプレクサ２２０はＰＲＥＡＭＢＬＥ入力、ＰＡＣＫＥＴ＿ＴＹＰＥ入力、またはＭＯＤＩＦＩＥＲの中の一つを選択する。ＰＲＥＡＭＢＬＥデータにはたとえば、ＩＣ１２０の中でデータをその中に転送すべきバッファ番号を含めることができる。一方ＭＯＤＩＦＩＥＲには、受信ＩＣチップ１２０の中のバッファ内に転送すべき制御データが含まれる。ＰＡＣＫＥＴ＿ＴＹＰＥには、送られている指令に関する情報が含まれている。一実施例では、ＰＡＣＫＥＴ＿ＴＹＰＥは指令の型（すなわち、ＰＣＩ読み出し、メモリ書き込み等）を表す。もう一つの実施例では、ＰＡＣＫＥＴ＿ＴＹＰＥはパケット長さを規定する（すなわち、ＰＲＥＡＭＢＬＥを含むか否か、および予想されるＭＯＤＩＦＩＥＲ数を含む）。一つの好ましい実施例では、最も一般的な動作は最も短いパケットに対応し、更にもう一つの好ましい実施例では、ＰＡＣＫＥＴ＿ＴＹＰＥの受信時間は受信ＩＣチップ１２０がプロセスを開始または終了すべきであるという表示である。
マルチプレクサ２２０の出力はドライバ２５０を介して制御バス１３０に送出される。チップ間バス１３０上に存在するデータは次に、次のクロックサイクルの発生でレジスタ２８０に記憶される。更に、出力は１クロックサイクルの間、レジスタ２５５の中に記憶される。レジスタ２５５の中にマルチプレクサ２２０の出力を記憶するために必要とされる時間内に、マルチプレクサ２２０によりもう一つの信号がドライバ２５０を介してチップ間バス１３０に送出される。
レジスタ２８０がチップ間バス１３０上のデータをクロックで入れるのと同じクロックサイクル内に、レジスタ２５５の出力がＰＲＥＡＭＢＬＥ入力２０７と比較される。すなわち、ＰＲＥＡＭＢＬＥが比較回路２６０に第一の入力として与えられ、レジスタ２５５の出力を１クロックサイクル遅延させたものが比較回路２６０に第二の入力として与えられる。したがって比較回路２６０の中で、ＰＲＥＡＭＢＬＥが制御バス１３０上に出力された前のクロックサイクルのパケット指令ワードと比較される。ＰＲＥＡＭＢＬＥがレジスタ２５５の中に記憶されたデータと同じであれば、比較回路２６０によりＰＲＥＡＭＢＬＥ＿ＳＥＮＴ信号が送出され、線２６５を介してステートマシン２３０に制御入力として与えられる。
ステートマシン２３０がＮＥＷ＿ＲＥＱＵＥＳＴ信号２４２を受け、そして線２６５上の比較（すなわち、ＰＲＥＡＭＢＬＥ＿ＳＥＮＴ）が妥当であることにより、前のクロックサイクルのチップ間バスの指令ワードとチップ間バス１３０上に出力すべき新しいパケットのＰＲＥＡＭＢＬＥとが同じであることが表されているときは、ステートマシン２３０からドライバ２７０を介してＳＹＮＣ信号が送出され、選択バス２３８を介してチップ間バス１３０に伝送するためにＰＲＥＡＭＢＬＥの代わりにＰＡＣＫＥＴ＿ＴＹＰＥが選択される。ステートマシン２３０が入力２４２でＮＥＷ＿ＲＥＱＵＥＳＴ信号を受けたとき線２６５にＰＲＥＡＭＢＬＥ＿ＳＥＮＴが送出されていなくて、入力２４０のＰＡＣＫＥＴ＿ＴＹＰＥがその指令パケットにＰＲＥＡＭＢＬＥを必要とする型であるとステートマシン２３０が識別した場合には、チップ間バス１３０にマルチプレクサ２２０が出力すべきものとしてステートマシン２３０が選択バス２３８を介してＰＲＥＡＭＢＬＥ２０７を選択する。
ドライバ２７０を介して線２７１にＳＹＮＣパルスが出力されるたびに、チップ間バス１３０上にはＰＡＣＫＥＴ＿ＴＹＰＥが存在する。チップ１２０はデータパケットの処理が開始したことを示す制御信号として、ＳＹＮＣパルスを受ける。ＳＹＮＣパルスを受けると、ＩＣチップ１２０の中の回路はレジスタ２８０の中に記憶されたデータをデータパケット処理のＰＲＥＡＭＢＬＥと判断するが、バス２９５上に現在存在するデータはＰＡＣＫＥＴ＿ＴＹＰＥと判断される。このように、（レジスタ２８０とレジスタ２５５はともに、前のクロックサイクルにチップ間バス１３０に印加されたデータを記憶するので）レジスタ２８０の中のデータはレジスタ２５５の中のデータと同じであり、そしてレジスタ２５５の中のデータはＰＲＥＡＭＢＬＥと同じであるので、レジスタ２８０の中のデータはＰＲＥＡＭＢＬＥと同じになる。このようにして、新しいＰＲＥＡＭＢＬＥの中のデータがチップ間バスのＩＤＬＥパターンと同じであるか、または前のパケットの最後のワードと同じである場合には、新しいパケットのＰＲＥＡＭＢＬＥを送る必要はないので、全体のデータ・トランズアクション処理のクロックサイクルが節約される。
第３Ａ図から第３Ｃ図は、本発明の教示に従ってクロック周期を節約する方法をより明確に説明するタイミング図である。第３Ａ図は、本発明の利点を組み入れないチップ間バス上の従来の信号タイミングを示す。第一の信号３０２はＩＣチップ１１０、１２０の中のパケットデータワードをクロッキングするために使用される同期クロックを表し、信号３０４はチップ間バス１３０の４ビットのＣＭＤ部分に存在する（すなわち、ＳＹＮＣ線上に存在する信号以外の）パケットデータワードを表す。最後に、信号３０６はチップ間バス１３０上を伝送されるＳＹＮＣ信号を表す。チップ間バス１３０上に出力される各パケットＣＭＤワードは、１クロック周期全体の継続時間の間、存在する。したがって、送信ＩＣチップ１１０と受信ＩＣチップ１２０との間で通信するために、パケット内のＣＭＤワード数と同数のクロック周期が必要とされる。
たとえば、第３Ａ図に示されるようにチップ間バス１３０は、次のクロックサイクルの中のＰＲＥＡＭＢＬＥ（たとえば、後続の処理のデータをそれに転送すべきバッファを表すバッファ番号）が印加されるまでの２クロック周期の間、アイドルとなる。以後のクロックサイクルを使用して、（指令の型等を示す）ＰＡＣＫＥＴ＿ＴＹＰＥおよび（更に指令を規定する）ＭＯＤＩＦＩＥＲワードが転送される。
第３Ａ図に示されるＰＲＥＡＭＢＬＥワードの出力から始まって、最後のＭ〇ＤＩＦＩＥＲワードがチップ間バス１３０上に出力されるまでに、合計３クロックサイクルが発生する。ＰＲＥＡＭＢＬＥに続くＰＡＣＫＥＴ＿ＴＹＰＥがチップ間バス１３０上に出力されたと判定されたとき、新しいパケットの存在を示すためにＳＹＮＣ信号３０６が出力される。前に簡単に説明したように、バス２９０および２９５でＰＲＥＡＭＢＬＥおよびＰＡＣＫＥＴ＿ＴＹＰＥを受信したことをＳＹＮＣが受信チップ１２０に警告する。その後、受信チップ１２０は次にバス２９５上にあるデータをＣＭＤパケット内の残りのＣＭＤワード（存在する場合には）と判断する。たとえば、第３Ａ図に示されるように、ＰＡＣＫＥＴ＿ＴＹＰＥの後に一つのＭＯＤＩＦＩＥＲワードが続く場合には、ＰＡＣＫＥＴ＿ＴＹＰＥは次のＣＭＤワードが同じＣＭＤパケットに属することを示すので、受信チップ１２０は次のクロックサイクルのバス２９５上のＣＭＤワードを予想されたＭＯＤＩＦＩＥＲデータとして読み取る。
第３Ｂ図は、本発明の教示により第３Ａ図に示された従来のプロトコルに比べて１クロックサイクル節約する一つの方法を示す。詳しく述べると、チップ間バスで転送されるＣＭＤワード相互の関係を考慮することにより、単一のクロックサイクルの継続時間内に受信ＩＣチップに複数のＣＭＤワードを送出してもよいということを発明者は見出した。特に第３Ｂ図に示すように、最後のアイドルワードの終わりからチップ間バス１３０上に最後のＭＯＤＩＦＩＥＲワードが出力されるまで、合計２クロックサイクルが発生する。ＰＲＥＡＭＢＬＥがアイドルワードと同じである場合にはＰＲＥＡＭＢＬＥを送る必要はないので、２クロックサイクルだけが発生する。前に第２図で説明したように、ＰＲＥＡＭＢＬＥとチップ間バス１３０上に前に送られたＣＭＤワードとの比較が行われる。ＰＲＥＡＭＢＬＥがすぐ前のＣＭＤワード（すなわち、この場合にはアイドルワード）と同じである場合には、ＳＹＮＣの送出と一緒に、ＰＡＣＫＥＴ＿ＴＹＰＥワードがＰＲＥＡＭＢＬＥの代わりに送出される。このようにして、早期ＳＹＮＣが送出されるので、ＣＭＤワードの完了には２クロックサイクルしか必要としない。アイドルワードがＰＲＥＡＭＢＬＥと同じであると判定するということは、受信チップ１２０もすぐ前のＩＤＬＥワードをレジスタ２８０に記憶するので、レジスタ２８０の中のデータがＰＲＥＡＭＢＬＥと同じであるということを意味する。したがって、受信チップ１２０はＰＲＥＡＭＢＬＥがすぐ前のクロックサイクルで送られたかのように動作する。このようにしてＰＲＥＡＭＢＬＥを、そのＰＲＥＡＭＢＬＥを伝送すべきであったクロックサイクルより前に伝送されたアイドルワードに置き換えることができる。したがって、ＰＲＥＡＭＢＬＥをＰＡＣＫＥＴ＿ＴＹＰＥに置き換えることにより、ＣＭＤパケット全体で１クロックサイクルを節約することができる。すなわち、ＰＲＥＡＭＢＬＥ２０７（第２図参照）により示されるバッファ番号をバス１３０上に転送する必要はない。バス１３０上に既に存在するアイドルワードを使用してバッファ番号を置き換えたからである。したがって、ステートマシン２３０はマルチプレクサ２２０を制御してバッファ番号の代わりにＰＡＣＫＥＴ＿ＴＹＰＥを選択するので、次のクロック周期の間に受信ＩＣチップ１２０はＰＲＥＡＭＢＬＥとＰＡＣＫＥＴ＿ＴＹＰＥの両方に対して動作することができる。
本発明の一つの側面によれば、アクセスされる可能性が最も高いバッファ番号がアイドルワード（以後、省略デフォルト値ＰＲＥＡＭＢＬＥとも表す）と同じビットパターンをそなえるものと規定される。したがって、このバッファが選択されるたびに、すぐ前のアイドルワードと同じクロックサイクルで受信ＩＣチップ１２０の中のレジスタにクロックで記憶することができる。本発明の特に有利な実施例では、アイドルワード符号をデフォルト値バッファ番号に対応するように修正することにより、ＰＲＥＡＭＢＬＥとアイドルワードとの合致の可能性を高める。もちろん、ＰＲＥＡＭＢＬＥの中のバッファ番号がアイドルワードと同じでない場合には、付加的なクロックサイクルが発生した後でないと、バッファ番号を受信ＩＣチップ１２０内にラッチすることができない。しかし第３Ｂ図に示されるように、（ＰＲＥＡＭＢＬＥの第一の部分を含む）バッファ番号がアイドルワードと同じである場合には、アイドルワードがバッファ番号の代わりの役目を果たせるので、ＰＡＣＫＥＴ＿ＴＹＰＥと同じクロックサイクル内に直ちにＳＹＮＣ信号を送出することができる。
第３Ｃ図は、連続的なＣＭＤパケットが発生し、第二のＣＭＤパケットのＰＲＥＡＭＢＬＥが第一のＣＭＤパケットの最後のＣＭＤワードと同じビットパターンをそなえる場合を示す。第３Ｃ図に示されるように、前のＣＭＤパケットの最後のワードが受信チップ１２０に送られた直後にＳＹＮＣが作成される。この最後のパケットワードは新しいパケットのＰＲＥＡＭＢＬＥと同じビットパターンをそなえているので、ＳＹＮＣが送出されている間、マルチプレクサ２２０はプリアンブルの代わりにＰＡＣＫＥＴ＿ＴＹＰＥを出力する。したがって、第一のＣＭＤパケットの終わりから第二のＣＭＤパケットの終わりまで２クロックサイクルだけが生じる。これに反して（ＰＲＥＡＭＢＬＥとして第一のパケットの最後のワードを使用しないで）ＰＲＥＡＭＢＬＥを別個に送ったとすれば、第二のＣＭＤパケットを完了するのに３クロックサイクルが必要になる。
第一のＣＭＤパケットの内容がパケットの長さを規定したので、いつ最後のＣＭＤワードが２９５上に存在するかを受信ＩＣチップ１２０が判定するのは困難でない。更に、送出されたＳＹＮＣをチップ１２０が受信すると、チップ１２０はレジスタ２５５の中に含まれる情報を新しいＣＭＤパケットのＰＲＥＡＭＢＬＥとみなす。このように、受信チップ１２０はバス２９５上の情報を２度使用する。一度は前のクロックで（バス２９５上でサンプリングされた）第一のＣＭＤパケットの最後のＣＭＤワードとして、一度は（バス２９０上でサンプリングされた）第二のＣＭＤパケットに対するＰＲＥＡＭＢＬＥとしてである。
第３Ｃ図に示された場合についてＩＣチップ１１０の中の回路の動作を以下、更に詳しく説明する。第一のＣＭＤパケットの最後のＣＭＤワードがマルチプレクサ２２０から出力されたとき、このＣＭＤワードがレジスタ２５５の中に記憶され、バス２０７の比較回路に与えられた次のＰＲＥＡＭＢＬＥと比較される。ＰＲＥＡＭＢＬＥワードがすぐ前のＣＭＤワードと同じであると比較回路の中で判定された場合には、線２６５に比較信号が発生し、ステートマシン２３０に印加され、これによりステートマシン２３０はマルチプレクサ２２０にＰＲＥＡＭＢＬＥではなくＰＡＣＫＥＴ＿ＴＹＰＥを出力させる。同時に、ステートマシン２３０はドライバ２７０を介して１クロック周期の間、ＳＹＮＣを送出する。このようにして、第一のＣＭＤパケットの最後のＣＭＤワードは第二のＣＭＤパケットのバッファ番号としての役目を果たす。このようにして、連続的なパケット伝送の間、１クロックサイクルが節約される。
第４図は本発明の教示に従う早期ＰＲＥＡＭＢＬＥの発生についてのステートマシン２３０の動作を表す状態図である。実際には、ステートマシン２３０は送信チップ１１０の中の他の素子の制御も行うが、本発明の説明を明確にするために、第４図の概略状態図にはステートマシン２３０の機能は表されていない。
ＲＥＳＥＴの開始により、ステートマシン２３０はＩＤＬＥ状態４００に入る。ステートマシン２３０がＩＤＬＥ状態４００にあるとき、これはステートマシン２３０が付加的なＣＭＤパケットを受けて、４ビットのＣＭＤバス１３０上に出力する準備ができているということを示す。ステートマシン２３０は、ＩＤＬＥ状態４００に戻る状態遷移経路４１０によって表されるように、三つの異なる条件下でＩＤＬＥ状態４００にとどまる。
第一の条件下では、ＮＥＷ＿ＲＥＱＵＥＳＴ信号（すなわち、線２４２に印加される信号）が送出されないとき、ステートマシン２３０はＩＤＬＥ状態４００にとどまり、バス１３０の４ビットのＣＭＤバス部分上に指令としてデフォルト値ＰＲＥＡＭＢＬＥを出力する。すなわち、新しい要求が行われないとき、ステートマシン２３０はＰＲＥＡＭＢＬＥ２０７を選択して、マルチプレクサ２２０およびドライバ２５０を介してＣＭＤバス１３０に出力する。ＰＲＥＡＭＢＬＥは最も一般的にアクセスされるバッファに等しく設定するのが都合がよい。これにより、次の実際のＰＲＥＡＭＢＬＥが前のクロックサイクルで送られたデータに等しい可能性がより高くなる。
ステートマシン２３０がＩＤＬＥ状態４００にとどまるもう一つの条件は、ＰＲＥＡＭＢＬＥ＿ＲＥＱＤ信号が送出され（ＣＭＤバス１３０上に送られるべき新しいＣＭＤパケットに対してＰＲＥＡＭＢＬＥが必要であるということをステートマシン２３０に示し）、そしてＰＲＥＡＭＢＬＥ＿ＳＥＮＴ信号が送出されない（すなわち、前のクロック周期にバス１３０上に送られたＣＭＤワードがバス２０７上のＰＲＥＡＭＢＬＥに等しくなかったということを示す）ときである。したがって、ＰＲＥＡＭＢＬＥが必要とされ、前のクロックサイクルに指令バス１３０上にあるＣＭＤワードは適当なＰＲＥＡＭＢＬＥとしての役目を果たさないので、バス２０７上のＰＲＥＡＭＢＬＥがＣＭＤバス１３０上に伝搬し得るようにする選択信号をステートマシン２３０がマルチプレクサ２２０に線２３８を介して送出する。このようにして、送出されるＣＭＤワードはＰＲＥＡＭＢＬＥに等しい。
ステートマシン２３０がＩＤＬＥ状態４００にとどまる最後の条件は、１）ＰＲＥＡＭＢＬＥ＿ＲＥＱＤ信号が送出されないか、またはＰＲＥＡＭＢＬＥ＿ＳＥＮＴ信号が送出される、そして２）ＭＯＤＩＦＩＥＲ＿ＲＥＱＤ信号が送出されない間にＮＥＷ＿ＲＥＱＵＥＳＴ信号が送出されるときである。すなわち、１）ＰＲＥＡＭＢＬＥが必要でないか、または前のクロックサイクルにバス１３０上にあるＣＭＤワードが送られるべきＰＲＥＡＭＢＬＥに等しく、そして２）要求されている新しいパケットはＭＯＤＩＦＩＥＲワードをそなえていないので、これは現在のパケットがＰＲＥＡＭＢＬＥを必要とした場合にはこのＰＲＥＡＭＢＬＥが前のクロック周期に既に送出されたということ、そして現在のパケットが現在のＰＡＣＫＥＴ＿ＴＹＰＥのＣＭＤワードで終わるということを示す。したがって、ステートマシン２３０は新しいパケットを受け入れて、次のクロック周期にＣＭＤバス１３０上に転送することができる。したがって、ステートマシン２３０はＩＤＬＥ状態４００にとどまる。
ステートマシン２３０がＩＤＬＥ状態４００にとどまる最後の条件下では、ステートマシン２３０はマルチプレクサ２２０およびドライバ２５０を介してＰＡＣＫＥＴ＿ＴＹＰＥをＣＭＤバス１３０上に送出させる。更に、線２４４上にＲＤＹ信号も送出されている間に、ＳＹＮＣ信号がドライバ２７０を介して送出される。
１）ＰＲＥＡＭＢＬＥが必要とされないか、または前のクロックサイクルにバス１３０上に存在するＣＭＤワードが送られるべきＰＲＥＡＭＢＬＥに等しくなかった、そして２）ＭＯＤＩＦＩＥＲワードを必要とする新しい要求がなされたということが判定されるたびごとに、ステートマシン２３０は遷移経路４３０を介してＩＤＬＥ状態４００からＢＳＹ（ビジー）状態４２０に遷移する。すなわち、１）ＰＲＥＡＭＢＬＥ＿ＲＥＱＤ信号が送出されないか、またはＰＲＥＡＭＢＬＥ＿ＳＥＮＴ信号が送出される場合、そして２）ＣＭＤパケットに一つ以上のＭＯＤＩＦＩＥＲワードが含まれているということをＰＡＣＫＥＴ＿ＴＹＰＥが示している間に線２４２上にＮＥＷ＿ＲＥＱＵＥＳＴ信号が送出される場合に、ステートマシン２３０はＩＤＬＥ状態４００からＢＳＹ状態４２０に遷移する。したがってこれは、ドライバ２７０を介してＳＹＮＣ信号も送出される間にマルチプレクサ２２０およびドライバ２５０を介してＰＡＣＫＥＴ＿ＴＹＰＥ２４０をＣＭＤバス１３０上に出力すべきであるということを示す。更に、ＭＯＤＩＦＩＥＲ＿ＰＴＲ（これは現在のパケットのＰＡＣＫＥＴ＿ＴＹＰＥの後のＭＯＤＩＦＩＥＲワード数を計数するためのカウンタにロードされる値である）が１に設定される。ステートマシン２３０はＢＳＹ状態（すなわち、現在のパケットの転送が完了するまでステートマシン２３０が新しい要求を処理することができない状態）に遷移する。
ＬＡＳＴ＿ＭＯＤＩＦＩＥＲ信号が送出されない間（すなわち、パケットの最後のＣＭＤワードがＣＭＤバス１３０上に出力されていないということを示す信号が真でない間、遷移経路４４０で表されるように、ステートマシン２３０はＢＳＹ状態４２０にとどまる。経路４４０に沿って遷移が行われるたびごとに、次のＣＭＤワード（すなわち、バス２１２からの次のＭＯＤＩＦＩＥＲワード）がマルチプレクサ２２０およびドライバ２５０を介して指令バス１３０上に送出される。更に、現在のパケットの最後のＭＯＤＩＦＩＥＲワードに達するまで、ＭＯＤＩＦＩＥＲ＿ＰＴＲが増加させられる。パケットの最後のワードがバス１３０上に送出されると、ステートマシン２３０は状態遷移経路４５０を介してＢＳＹ状態４２０からＩＤＬＥ状態４００に戻る。第４図に示されるように、経路４５０に沿った遷移は、ＬＡＳＴ＿ＭＯＤＩＦＩＥＲ信号が送出されるときに生じる。これにより、ステートマシン２３０が線２４４に沿ってＲＤＹ信号を送出する間、ＣＭＤバス１３０上に出力されるＭＯＤＩＦＩＥＲワードが現在のパケットの最後のＣＭＤワードに等しくなる。
以上、本発明を詳しく説明してきたが、上記の説明は説明のためのものであり、発明を限定するものではないことが理解されるべきである。趣旨または中心的な特徴を逸脱することなく本発明に対して多数の明らかな変形を加え得ることは、通常程度に熟練した当業者には理解されよう。たとえば、ＣＭＤワードのビット数がより少ないチップ間バスと一緒に具体化したときに同じＣＭＤワードをそなえる可能性がより大きくなるので本発明が最も有効であるが、実際には６ビット以上のオーダのバスも本発明に従って具体化できることは、通常程度に熟練した当業者には理解されよう。更に本発明は、チップ間の単一の信号線を介してパケットのＣＭＤワードが直列に送られるワード直列方式で本発明を具体化できる。この場合には、ＳＹＮＣ信号が新しいパケットの存在を表すとともに、ＣＭＤワードの境界情報を与える。もう一つの具体化では、ＳＹＮＣ信号の存在を表すために独特のＣＭＤワードパターンを取って置くことができるので、別個のＳＹＮＣ線が不要となる。もう一つの具体化では、より高いクロック速度の動作が行えるように、送信チップ、受信チップの一方または両方にパイプラインレジスタを含めることができる。したがって、本発明の範囲は次の請求の範囲にかんがみて判断するべきである。
【図１】
0003947223.tif 000002
【図２】
0003947223.tif 000003
【図３Ａ】
0003947223.tif 000004
【図３Ｂ】
0003947223.tif 000005
【図３Ｃ】
0003947223.tif 000006
【図４】
0003947223.tif 000007