(57)【特許請求の範囲】
【請求項１】
バスに接続されている少なくとも１個のバス・マスタ、
前記バス・マスタの個数と合わせた総数が３個以上となる個数で存在して前記バスに接続されている少なくとも１個のバス・スレーブ、及び
前記バス・マスタと前記バス・スレーブとの間のバス経路に介在して該バス経路を複数の区画に分割しクロックに同期して伝送信号のラッチ及び出力を行うラッチ手段、
を有し、
クロックの周期は、前記バス上の隣接する任意の第１及び第２の区画に対して、第１の区画における信号伝送時間より長くかつ第１及び第２の区画の合計の信号伝送時間より短く設定されており、
バス・マスタ、バス・スレーブ、及びラッチ手段をコンポーネントと総称することにし、各ラッチ手段に対してパケット転送方向へ上流側及び下流側に隣接するコンポーネントをそれぞれ第１及び第２のコンポーネントと呼び、かつ連続する３個のクロック・サイクルを前から順番に、第１、第２、及び第３のクロック・サイクルと呼ぶことにすると、
各ラッチ手段は、第２のクロック・サイクルにおいて第１のコンポーネントからパケットを受けるために、第１のクロック・サイクルにおいて第１のコンポーネントへアクノリッジ信号を出力し、
前記ラッチ手段は、第１及び第２のラッチを有し、第１のクロック・サイクルにおいて第１のコンポーネントへはアクノリッジ信号を出力しかつ第２のコンポーネントからはアクノリッジ信号を入力しなかったとき、第１のクロック・サイクルにおいて第２のコンポーネントへのパケットを第１のラッチにホールドし、第２のクロック・サイクルでは、第２のコンポーネントへ第１のラッチのパケットを再送するとともに、第１のコンポーネントからのパケットを第２のラッチにラッチすることを特徴とするバス・システム。
【請求項２】
前記バス上の各区画の長さがほぼ均等に設定されていることを特徴とする請求項１記載のバス・システム。
【請求項３】
前記バスは、各バス・マスタ及び各バス・スレーブから見てツリー構造となっていることを特徴とする請求項１記載のバス・システム。
【請求項４】
少なくとも２個のバス・マスタを有し、
少なくとも１個のラッチ手段は、バス・マスタからバス・スレーブへの信号伝送に対するアービタであることを特徴とする請求項１記載のバス・システム。
【請求項５】
少なくとも２個のバス・スレーブを有し、少なくとも１個のラッチ手段は、バス・マスタからバス・スレーブへの信号伝送に対するデコーダであることを特徴とする請求項１記載のバス・システム。
【請求項６】
前記アービタ及び前記デコーダとしてのラッチ手段は、それぞれバス・スレーブからバス・マスタへの信号伝送に対するデコーダ及びアービタとなっていることを特徴とする請求項４又は５記載のバス・システム。
【請求項７】
データの読出し及び書込みの高速性の要求度の高い特定のバス・マスタとバス・スレーブとの間のバス経路長は、要求度の低い他のバス・マスタとバス・スレーブとの間のバス経路長未満に設定されるとともに、該特定のバス・マスタとバス・スレーブとの間におけるラッチ手段の介在個数は、該他のバス・マスタとバス・スレーブとの間の介在個数未満に設定されていることを特徴とする請求項３記載のバス・システム。
【請求項８】
バス・マスタとバス・スレーブとの間のデータ転送はパケット方式であることを特徴とする請求項１記載のバス・システム。
【請求項９】
前記パケット方式のデータ転送はコネクションレスであることを特徴とする請求項８記載のバス・システム。
【請求項１０】
前記バス・マスタは第１のバス・マスタとキャッシュを装備する第２のバス・マスタとを含み、
前記アービタは、前記バス・スレーブの特定のアドレス範囲に対するリード・リクエストを第１のバス・マスタから受け付けたとき、第２のバス・マスタへ、該第２のバス・マスタが自分のキャッシュに前記バス・スレーブの特定のアドレス範囲に係るデータを保持しているか否かを問い合わせ、前記第２のバス・マスタが前記データを保持している場合は、前記第２のバス・マスタに、前記データを前記バス・スレーブの該当アドレス範囲に書込ませることを特徴とする請求項４記載のバス・システム。
【請求項１１】
前記ラッチ手段は、第２のクロック・サイクルでは、第１のコンポーネントへのアクノリッジ信号の出力を中止し、もし第２のクロック・サイクルにおいて第２のコンポーネントからアクノリッジ信号を入力したならば、第３のクロック・サイクルでは、第１のラッチのパケットを第２のコンポーネントへ送出しつつ、第２のラッチのパケットを第１のラッチへラッチし、かつ第１のコンポーネントへアクノリッジ信号を出力することを特徴とする請求項１記載のバス・システム。
【請求項１２】
前記アービタは、複数個の第１のコンポーネントの内の一つを優先コンポーネントと定め、いずれの第１のコンポーネントからもリクエスト信号を受付けていないクロック・サイクルでは、優先コンポーネントへアクノリッジ信号を発行するパーキング状態にされ、また、アービタ以外のラッチ手段も唯一の第１のコンポーネントについてのパーキング状態にされていることを特徴とする請求項１記載のバス・システム。
【請求項１３】
前記バス・マスタ、前記バス・スレーブ、及び前記ラッチ手段が１チップ内に製作されていることを特徴とする請求項１記載のバス・システム。
【請求項１４】
バスを介して接続されるバス・マスタ及びバス・スレーブをそれぞれ少なくとも１個、かつ両者の総数が３以上となっているバス・システムの信号伝送方法において、
少なくとも１個のラッチ手段を前記バス・マスタと前記バス・スレーブとの間のバス経路に介在させて、該バス経路を複数の区画に分割し、
クロックに同期して伝送信号をラッチ手段においてラッチ及び出力させ、
クロックの周期を、前記バス上の隣接する任意の第１及び第２の区画に対して、第１の区画における信号伝送時間より長くかつ第１及び第２の区画の合計の信号伝送時間より短く設定し、
バス・マスタ、バス・スレーブ、及びラッチ手段をコンポーネントと総称することにし、各ラッチ手段に対してパケット転送方向へ上流側及び下流側に隣接するコンポーネントをそれぞれ第１及び第２のコンポーネントと呼び、かつ連続する１８個のクロック・サイクルを前から順番に、第１、第２、及び第３のクロック・サイクルと呼ぶことにすると、
各ラッチ手段の作動として、各ラッチ手段は、第２のクロック・サイクルにおいて第１のコンポーネントからパケットを受けるために、第１のクロック・サイクルにおいて第１のコンポーネントへアクノリッジ信号を出力させる作動を、設定し、
前記ラッチ手段には、第１及び第２のラッチを装備させ、前記ラッチ手段の作動として、前記ラッチ手段は、第１のクロック・サイクルにおいて第１のコンポーネントへはアクノリッジ信号を出力しかつ第２のコンポーネントからはアクノリッジ信号を入力しなかったとき、第１のクロック・サイクルにおいて第２のコンポーネントへのパケットを第１のラッチにホールドし、第２のクロック・サイクルでは、第２のコンポーネントへ第１のラッチのパケットを再送するとともに、第１のコンポーネントからのパケットを第２のラッチにラッチする作動を設定することを特徴とするバス・システム用信号伝送方法。
【請求項１５】
前記バス上の各区画の長さをほぼ均等に設定することを特徴とする請求項１４記載のバス・システム用信号伝送方法。
【請求項１６】
前記バスを、各バス・マスタ及び各バス・スレーブから見てツリー構造とすることを特徴とする請求項１４記載のバス・システム用信号伝送方法。
【請求項１７】
バス・マスタの個数を少なくとも２個とし、少なくとも１個のラッチ手段を、バス・マスタからバス・スレーブへの信号伝送に対するアービタとすることを特徴とする請求項１４記載のバス・システム用信号伝送方法。
【請求項１８】
バス・スレーブの個数を少なくとも２個とし、
少なくとも１個のラッチ手段を、バス・マスタからバス・スレーブへの信号伝送に対するデコーダとすることを特徴とする請求項１４記載のバス・システム用信号伝送方法。
【請求項１９】
前記アービタ及び前記デコーダとしてのラッチ手段を、それぞれバス・スレーブからバス・マスタへの信号伝送に対するデコーダ及びアービタとすることを特徴とする請求項１７又は１８記載のバス・システム用信号伝送方法。
【請求項２０】
データの読出し及び書込みの高速性の要求度の高い特定のバス・マスタとバス・スレーブとの間のバス経路長を、要求度の低い他のバス・マスタとバス・スレーブとの間のバス経路長未満に設定するとともに、該特定のバス・マスタとバス・スレーブとの間におけるラッチ手段の介在個数を、該他のバス・マスタとバス・スレーブとの間の介在個数未満に設定することを特徴とする請求項１６記載のバス・システム用信号伝送方法。
【請求項２１】
バス・マスタとバス・スレーブとの間のデータ転送をパケット方式とすることを特徴とする請求項１４記載のバス・システム用信号伝送方法。
【請求項２２】
前記パケット方式のデータ転送をコネクションレスとすることを特徴とする請求項２１記載のバス・システム用信号伝送方法。
【請求項２３】
前記バス・マスタには、第１のバス・マスタとキャッシュを装備する第２のバス・マスタとを含ませ、
前記アービタの作動として、前記アービタは、前記バス・スレーブの特定のアドレス範囲に対するリード・リクエストを第１のバス・マスタから受け付けたとき、第２のバス・マスタへ、該第２のバス・マスタが自分のキャッシュに前記バス・スレーブの特定のアドレス範囲に係るデータを保持しているか否かを問い合わせ、前記第２のバス・マスタが前記データを保持している場合は、前記第２のバス・マスタに、前記データを前記バス・スレーブの該当アドレス範囲に書込ませる作動を、設定することを特徴とする請求項１７記載のバス・システム用信号伝送方法。
【請求項２４】
前記ラッチ手段の作動として、前記ラッチ手段は、第２のクロック・サイクルでは、第１のコンポーネントへのアクノリッジ信号の出力を中止し、もし第２のクロック・サイクルにおいて第２のコンポーネントからアクノリッジ信号を入力したならば、第３のクロック・サイクルでは、第１のラッチのパケットを第２のコンポーネントへ送出しつつ、第２のラッチのパケットを第１のラッチへラッチし、かつ第１のコンポーネントへアクノリッジ信号を出力する作動を、設定することを特徴とする請求項１４記載のバス・システム用信号伝送方法。
【請求項２５】
前記アービタの作動として、前記アービタは、複数個の第１のコンポーネントの内の一つを優先コンポーネントと定め、いずれの第１のコンポーネントからもリクエスト信号を受付けていないクロック・サイクルでは、優先コンポーネントへアクノリッジ信号を発行するパーキング状態にされ、また、アービタ以外のラッチ手段も唯一の第１のコンポーネントについてのパーキング状態にされる作動を、設定することを特徴とする請求項１４記載のバス・システム用信号伝送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バス・マスタ及びバス・スレーブを含むバス・システム及びその信号伝送方法に関し、詳しくはバス・マスタ及びバス・スレーブの配置の自由度を高めたバス・システム及びその信号伝送方法に関するものである。
【０００２】
【従来の技術】
図１は従来の典型的なバス・システムの概念構成図である。該バス・システムは１個のチップ上に製作されている。複数個のバス・マスタ１１及び複数個のバス・スレーブ１２は共通のバス・システム１０へ接続されている。図１において各バス・マスタ１１−バス・システム１０間、及び各バス・スレーブ１２−バス・システム１０間の数値は、各バス・マスタ１１−各バス・スレーブ１２間の距離を計算するために、各バス・マスタ１１及び各バス・スレーブ１２から基準点までの距離を単位ｍｍで示したものである。バス・システム１０におけるバス・マスタ１１−バス・スレーブ１２間の信号伝送時間は、両者の間の信号伝送距離が長いほど、増大する。図１の例では、バス・マスタ１１−基準点間の最大距離は２．０ｍｍであり、また、バス・スレーブ１２−基準点間の最大距離は７．３ｍｍである。したがって、図１のバス・システムにおけるバス・マスタ１１−バス・スレーブ１２間の最大距離は９．３（＝２．０＋７．３）ｍｍとなる。バス・システムのクロックの周期は、バス・システムにおけるバス・マスタとバス・スレーブとの間の信号伝送時間より短くできないので、図１のバス・システムでは、その動作周波数は、９．３ｍｍにより決定される。このようなバス・システムにおいて、一定の動作周波数を確保するためには、距離の最大となるバス・マスタ１１−バス・スレーブ１２間の距離を詰める必要があるが、このような場合、バス・マスタ１１及びバス・スレーブ１２が中心部に集中することになり、特に、バス・システムを１個のＩＣ上に製作する場合には、中心部の密度に限界がある。周辺のスペースにバス・マスタ１１及びバス・スレーブ１２を配置しても、バス・システムについて一定の動作周波数が確保できるのが好ましい。
【０００３】
特開平８−３３５２０４号公報は、例えば２個のバス・マスタと１個のバス・スレーブとの間のデータ転送のために、並列な２個のバスが用意される。並列伝送の個数だけバスが用意されなければならないので、並列転送の個数だけ、バス数が増大する。
【０００４】
特開平５−１８１８１７号公報は、複数個のコンポーネントがマトリックス配置され、同一行のコンポーネント同士、及び同一列のコンポーネント（バスへ接続されている素子）同士が、リング・バスを構成するバス・システムを開示する。各コンポーネントは、行方向のリング・バスと列方向のリング・バスとの２個のリング・バスに属することになり、各コンポーネントは、２個のリング・バスに対して入力及び出力を処理する必要があり、制御が複雑化する。
【０００５】
特開平５−２８１０４号公報では、バス・マスタ及びバス・スレーブは共通のリング・バスに接続され、リング・バスには、ラッチが、バス・マスタ及びバス・スレーブの１：１に対応して近接して配備されるのみで、該１：１の対応関係とは別個にラッチが設けられることはない。このバス・システムでは、リング・バスへ隣接的に接続されるバス・マスタ又はバス・スレーブの間隔が開けば、バス上で隣接隣同士のラッチの間隔も開き、動作周波数は、バス・マスタ及びバス・スレーブの間隔が開けば、それに伴い、低下することになる。
【０００６】
【発明が解決しようとする課題】
本発明の目的は、一定の動作周波数を確保するために、バス・マスタとバス・スレーブとの間の距離を詰める必要を排除したバス・システム及びその信号伝送方法を提供することである。
本発明の目的は、バス・システム及びその信号伝送方法においてバス・マスタとバス・スレーブとの間の距離に対して実現可能な動作周波数を増大することである。
本発明の目的は、全体におけるデータ転送を効率化するバス・システム及びその信号伝送方法を提供することである。
本発明の目的は、バス・システム及びその信号伝送方法において並列的なデータ転送を可能にすることである。
本発明の目的は、キャッシュ付きバス・マスタを装備するバス・システム及びその信号伝送方法においてデータ・コヒーレンシィを確保することである。
【０００７】
【課題を解決するための手段】
本発明のバス・システムは、バスに接続されている少なくとも１個のバス・マスタ、バス・マスタの個数と合わせた総数が３個以上となる個数で存在してバスに接続されている少なくとも１個のバス・スレーブ、及びバス・マスタとバス・スレーブとの間のバス経路に介在して該バス経路を複数の区画に分割しクロックに同期して伝送信号のラッチ及び出力を行うラッチ手段、を有している。そして、クロックの周期は、バス上の隣接する任意の第１及び第２の区画に対して、第１の区画における信号伝送時間より長くかつ第１及び第２の区画の合計の信号伝送時間より短く設定されている。
【０００８】
バス・システムには、例えばツリー型、リング型、及びスター型のバス・システムが含まれる。バス・マスタ及びバス・スレーブは共に少なくとも１個は存在し、かつバス・マスタ及びバス・スレーブの個数の合計の最小値は３である。バス・システムにおけるバス・マスタ及びバス・スレーブの総個数の最小構成では、バス・マスタ及びバス・スレーブが、それぞれ１個及び２個である場合と、それぞれ２個及び１個である場合とがある。
【０００９】
説明の便宜上、バス・マスタ、バス・スレーブ、及びラッチ手段をコンポーネントと総称することにする。バス上の隣接コンポーネント間の距離は、バス・システムにおいて均一化されていることが好ましいが、必ずしも均一でなくてもよい。ラッチ手段によりバス上の隣接コンポーネント間の最大距離が、バス・システムの動作周波数増大のために十分に詰まっていればよい。バス・システムにおけるバス・マスタ及びバス・スレーブは、十分に近接して配置できない事情がある。バス・マスタとバス・スレーブとの間をデータを１クロック・サイクルで伝送しなければならないバス・システムでは、バス・マスタ及びバス・スレーブを多数装備するバス・システムほど、バス・マスタとバス・スレーブとの間の距離の最大値が増大し、バス・システムに適用できる動作周波数は低下してしまう。本発明では、ラッチ手段がバス・マスタとバス・スレーブとの間に適宜、介在することにより、バス・マスタとバス・スレーブとの間の最大距離の増大にもかかわらず、１クロック・サイクル当たりのデータ転送距離の増大は回避される。したがって、バス・システムの一定の動作周波数を確保するために、バス・マスタ及びバス・スレーブをＩＣチップ等のバス・システム装備装置の中心部に集中配置する設計上の制約を排除できる。あるいは、バス・システムにおけるバス・マスタとバス・スレーブとの間の距離の最大値に対するバス・システムの動作周波数を高めることができる。
【００１０】
本発明のバス・システムには、以下に記載する具体的態様を任意の組み合わせで適宜、付加可能となっている。
・バス上の各区画の長さがほぼ均等に設定されている。バスの動作周波数は最大長さの区画により決まるので、バス上の各区画の長さを均等化することにより、ラッチ手段の分布が改善され、所定動作周波数を得るためのラッチ手段の個数を低減できる。
・バスは、各バス・マスタ及び各バス・スレーブから見てツリー構造となっている。好ましくは、データの読出し及び書込みの高速性の要求度の高い特定のバス・マスタとバス・スレーブとの間のバス経路長は、要求度の低い他のバス・マスタとバス・スレーブとの間のバス経路長未満に設定されるとともに、該特定のバス・マスタとバス・スレーブとの間におけるラッチ手段の介在個数は、該他のバス・マスタとバス・スレーブとの間の介在個数未満に設定されている。バス・マスタとバス・スレーブとの間の信号伝送に要するクロック・サイクル数は、バス・マスタとバス・スレーブとの間のラッチ手段の介在個数の増大に伴い、増大する。速やかな伝送の必要とされるバス・マスタ及びバス・スレーブについて、それらの間におけるラッチ手段の介在個数を少なくすることにより、その信号伝送に要するクロック・サイクル数が低減し、有利である。
【００１１】
・バス・システムは少なくとも２個のバス・マスタを有し、少なくとも１個のラッチ手段は、バス・マスタからバス・スレーブへの信号伝送に対するアービタである。又は、バス・システムは少なくとも２個のバス・スレーブを有し、少なくとも１個のラッチ手段は、バス・マスタからバス・スレーブへの信号伝送に対するデコーダである。前述したように、バス・システムは、バス・マスタからバス・スレーブへの信号伝送は必須であるが、リードを必要としないバス・システムでは、バス・スレーブからバス・マスタへの信号伝送は不要となることがある。バス・スレーブからバス・マスタへの信号伝送を行うバス・システムでは、バス・マスタからバス・スレーブへの信号伝送用のアービタ及びデコーダとしてのラッチ手段は、それぞれバス・スレーブからバス・マスタへの信号伝送に対するデコーダ及びアービタとなる。バス・マスタは第１のバス・マスタとキャッシュを装備する第２のバス・マスタとを含み、アービタは、バス・スレーブの特定のアドレス範囲に対するリード・リクエストを第１のバス・マスタから受け付けたとき、第２のバス・マスタへ、該第２のバス・マスタが自分のキャッシュにバス・スレーブの特定のアドレス範囲に係るデータを保持しているか否かを問い合わせ、第２のバス・マスタがデータを保持している場合は、第２のバス・マスタに、データをバス・スレーブの該当アドレス範囲に書込ませる。
【００１２】
・バス・マスタとバス・スレーブとの間のデータ転送はパケット方式である。１個のパケットのサイズは、１クロック・サイクルで伝送可能なサイズより大きくてもよい。１個のパケットのサイズが、１クロック・サイクルで伝送可能なサイズより大きいときは、１個のパケットは、複数個のブロックに分割されて、伝送される。パケットのヘッダ情報部分は、好ましくは、１クロック・サイクルで伝送されるが、これに限定されず、複数個のクロック・サイクルで伝送されたり、パケットのデータ範囲の先頭部分と一緒に１クロック・サイクルで伝送されたりしてもよい。本バス・システムでは、複数個のパケットが、バスの区画を重複しないことを条件に、同時に存在可能となる。また、送信元の異なる複数個のパケット、送信先の異なる複数個のパケットが、バス・システム上に存在可能になる。典型的には、パケット方式のデータ転送はコネクションレスである。
【００１３】
・バス・マスタ、バス・スレーブ、及びラッチ手段をコンポーネントと総称することにし、各ラッチ手段に対してパケット転送方向へ上流側及び下流側に隣接するコンポーネントをそれぞれ第１及び第２のコンポーネントと呼び、かつ連続する３個のクロック・サイクルを前から順番に、第１、第２、及び第３のクロック・サイクルと呼ぶことにすると、各ラッチ手段は、第２のクロック・サイクルにおいて第１のコンポーネントからパケットを受けるために、第１のクロック・サイクルにおいて第１のコンポーネントへアクノリッジ信号を出力する。ラッチ手段は、第１及び第２のラッチを有し、第１のクロック・サイクルにおいて第１のコンポーネントへはアクノリッジ信号を出力しかつ第２のコンポーネントからはアクノリッジ信号を入力しなかったとき、第１のクロック・サイクルにおいて第２のコンポーネントへのパケットを第１のラッチにホールドし、第２のクロック・サイクルでは、第２のコンポーネントへ第１のラッチのパケットを再送するとともに、第１のコンポーネントからのパケットを第２のラッチにラッチする。ラッチ手段は、第２のクロック・サイクルでは、第１のコンポーネントへのアクノリッジ信号の出力を中止し、もし第２のクロック・サイクルにおいて第２のコンポーネントからアクノリッジ信号を入力したならば、第３のクロック・サイクルでは、第１のラッチのパケットを第２のコンポーネントへ送出しつつ、第２のラッチのパケットを第１のラッチへラッチし、かつ第１のコンポーネントへアクノリッジ信号を出力する。アービタは、複数個の第１のコンポーネントの内の一つを優先コンポーネントと定め、いずれの第１のコンポーネントからもリクエスト信号を受付けていないクロック・サイクルでは、優先コンポーネントへアクノリッジ信号を発行するパーキング状態とされ、また、アービタ以外のラッチ手段も唯一の第１のコンポーネントについてのパーキング状態にされている。
【００１４】
本発明のバス・システム用信号伝送方法の適用されるバス・システムでは、バスを介して接続されるバス・マスタ及びバス・スレーブをそれぞれ少なくとも１個、かつ両者の総数が１８以上となっている。該バス・システム用信号伝送方法において、少なくとも１個のラッチ手段をバス・マスタとバス・スレーブとの間のバス経路に介在させて、該バス経路を複数の区画に分割し、クロックに同期して伝送信号をラッチ手段においてラッチ及び出力させ、クロックの周期を、バス上の隣接する任意の第１及び第２の区画に対して、第１の区画における信号伝送時間より長くかつ第１及び第２の区画の合計の信号伝送時間より短く設定する。
【００１５】
本発明のバス・システム用信号伝送方法は以下の種々の具体的態様を任意の組み合わせで適宜、付加することができる。バス上の各区画の長さをほぼ均等に設定する。バスを、各バス・マスタ及び各バス・スレーブから見てツリー構造とする。バス・マスタの個数を少なくとも２個とし、少なくとも１個のラッチ手段を、バス・マスタからバス・スレーブへの信号伝送に対するアービタとする。バス・スレーブの個数を少なくとも２個とし、少なくとも１個のラッチ手段を、バス・マスタからバス・スレーブへの信号伝送に対するデコーダとする。アービタ及びデコーダとしてのラッチ手段を、それぞれバス・スレーブからバス・マスタへの信号伝送に対するデコーダ及びアービタとする。
【００１６】
ツリー型のバス・システムの信号伝送方法では、データの読出し及び書込みの高速性の要求度の高い特定のバス・マスタとバス・スレーブとの間のバス経路長を、要求度の低い他のバス・マスタとバス・スレーブとの間のバス経路長未満に設定するとともに、該特定のバス・マスタとバス・スレーブとの間におけるラッチ手段の介在個数を、該他のバス・マスタとバス・スレーブとの間の介在個数未満に設定する。
【００１７】
【発明の実施の形態】
以下、発明の実施の形態について図面を参照して説明する。
図２は本発明を具現化したバス・システム１９の概念構成図である。バス・システム１９は、１個のＩＣチップ上に製作され、例えばプリンタ・コントーラに組み込まれて膨大なイメージデータを処理する。バス・システム１９は、複数個のバス・マスタ２１、及び複数個のバス・スレーブ２２を有している。バス・マスタ２１は例えばＣＰＵやＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ)であり、バス・スレーブ２２は例えばメモリである。バス・マスタ２１−バス・スレーブ２２間は、パイプライン素子２３、アービタ２４、及びデコーダ２５を介して相互に接続されている。説明の便宜上、バス・マスタ２１からバス・スレーブ２２の方への信号伝送方向を上り方向、その逆を下り方向と適宜、呼ぶことにする。また、パイプライン素子２３、アービタ２４、及びデコーダ２５を適宜、ラッチ手段と総称することにし、ラッチ手段、バス・マスタ２１、及びバス・スレーブ２２を適宜、コンポーネントと総称することにする。ラッチ手段は、上り方向及び下り方向用にそれぞれ少なくとも１個のラッチを備えている。バスは複数個のバス部分２０から成り、各バス部分２０は信号伝送方向へ隣接関係のコンポーネント同士を相互に接続している。このバスはパイプライン方式であり、各コンポーネントはそれぞれ１又は複数の信号ポートを備え、或るコンポーネントに他のコンポーネントが接続されるとき、両コンポーネントは、信号ポート同士を１：１に接続される。図２では、バス上の隣接コンポーネント間の矢印の向きは上り方向で示されており、各バス・マスタ２１から各バス・スレーブ２２への信号は、パイプライン素子２３、アービタ２４、及び／又はデコーダ２５を経由する。バス・マスタ２１は例えばＣＰＵやＤＭＡ（ダイレクト・メモリ・アクセス）制御器であり、バス・スレーブ２２は例えばビデオ・コントローラ等の各種インターフェースである。バスは複数個のバス部分２０から構成され、各バス部分２０は、バス上で隣接同士のコンポーネントを相互に接続する。このバスは、ツリー型、パイプライン型、パケット転送型、コネクションレス型、及びパイプライン型の特徴を持つ。バス・マスタ２１及びバス・スレーブ２２はバスの端末に接続され、各バス・マスタ２１及び各バス・スレーブ２２からバスの方を見ると、バスはツリー状に広がっている。
【００１８】
データはパケット化されて伝送され、１個のパケットは１又は複数個のクロック・サイクルにわたって各コンポーネントから送出される。１クロック・サイクルに対応する長さのパケット・ブロックが各ラッチ手段のラッチにラッチされる。アービタ２４は、パケット転送方向に関して調停機能を備え、前段に接続された複数個のコンポーネントの中から１個を選択して、次段のコンポーネントに接続し、パケット転送方向へパケットを転送する。デコーダ２５は、パケット転送方向へ分岐機能を備え、前段の１個のコンポーネントを次段の複数個のコンポーネントの中から選択した１個のコンポーネントへ接続し、パケット転送方向へパケットを転送する。パイプライン素子２３は、或るクロック・サイクルで入力した信号をラッチし、次のクロック・サイクル以降において、パケット転送方向の次段のコンポーネントへ送る役目を持つ。パス上の隣接コンポーネントを結ぶバス部分２０について示されている数値”０．９”は、バス部分２０により相互に結ばれるコンポーネント間の距離を単位ｍｍで示したものである。バス・システム１９において隣接関係にあるコンポーネント間の距離ｄは、すべて等しい値、例えば０．９ｍｍとなるように、設計されている。パイプライン素子２３、アービタ２４、及びデコーダ２５がラッチを装備しかつ隣接関係のコンポーネント同士がパイプラインにより相互に接続されている結果、信号は、１クロック・サイクル当たりに隣接コンポーネント間を伝送すれば足りることになる。そして、バス・システム１９では、隣接関係のコンポーネント間の距離は、十分に短縮されているので、バス・システム１９の動作周波数を大幅に増大できる。ＩＣチップ上のスペースに余裕のある限り、パイプライン素子２３の介在個数を増大して、バス・システム１９の動作周波数の一層の上昇を図ることもできる。
【００１９】
このバス・システム１９では、バス・マスタ２１−バス・スレーブ２２間の距離が長くても、そのバス・マスタ２１−バス・スレーブ２２間のパイプライン素子２３の介在数個数を増大すれば、バス・スレーブ２２の動作周波数の減少の必要性を排除できる。これにより、一定の動作周波数の確保のために、バス・マスタ２１及びバス・スレーブ２２を相互の距離を詰めて、ＩＣチップの中心部に集中配置する制約を排除して、それらをスペースの十分に余裕のある周辺部に配置することが可能となる。
【００２０】
図２は、バス・システム１９について上り方向のパケットの流れでアービタ２４及びデコーダ２５を示しているが、下り方向ではアービタ２４及びデコーダ２５の機能が逆転する。すなわち、下り方向では、アービタ２４はデコーダとなり、デコーダ２５はアービタとなる。例えば、バス・システム１９がバス・マスタからバス・スレーブへのアクノリッジ信号不要のライト命令だけから成るバス・システムである場合には、該バス・システムにおけるパケットの流れ方向は、バス・マスタからバス・スレーブへの一方向のみとなるので、アービタ２４及びデコーダ２５はそれぞれ下り方向のパケットに対するデコーダ及びアービタの機能は不要となる。典型的なバス・システムではバス・マスタがリード・リクエストを発行し、読み出しデータが下り方向のパケットとして伝送されるので、各アービタ２４及び各デコーダ２５は下り方向のパケット転送に対処するためデコーダ及びアービタの機能も装備する。
【００２１】
図３及び図４は本発明を具現化したバス・システムにおける信号の並列伝送及び一時停止を示している。バス・マスタ２１ａ，２１ｂは、アービタ２４ａ及びデコーダ２５ａを介してバス・スレーブ２２ａへ接続されている。バス・マスタ２１ａ，２１ｂは、また、アービタ２４ａ、デコーダ２５ａ、アービタ２４ｂ、及びデコーダ２５ｂを介してバス・スレーブ２２ｂ，２２ｃへ接続されている。バス・マスタ２１ｃは、アービタ２４ｂ及びデコーダ２５ｂを介してバス・スレーブ２２ｂ，２２ｃへ接続されている。バス部分２０は、全体でバスを構成するとともに、バス上で隣接同士のコンポーネントを相互に接続する。図３における各バス部分２０の向きは、図２の場合と同様に、上り方向で示されている。図３のアービタ及びデコーダも、図２のアービタ及びデコーダと同様に、下り方向のパケット転送に対処するために、それぞれデコーダ及びアービタの機能を装備している。
【００２２】
図３において、ｆ１はバス・マスタ２１ｂからバス・スレーブ２２ａへの信号の流れを、また、ｆ２はバス・マスタ２１ｃからバス・スレーブ２２ｃへの信号の流れを示している。本発明のバス・システムでは、経路が重複しない限り、バス・マスタとバス・スレーブとの間の複数の通信が確立できる。なお、図３の例では、ｆ１，ｆ２の向きは、共に、バス・マスタからバス・スレーブの向きとなっているが、一方又は両方がバス・スレーブからバス・マスタの向きであってもよい。
【００２３】
図４の示す状態では、アービタ２４ｂがバス・マスタ２１ｃからバス・スレーブ２２ｃへ向かう信号流れを優先し、バス・マスタ２１ｂからバス・スレーブ２２ｂ又は２２ｃへ向かう信号流れはアービタ２４ｂの前段のデコーダ２５ａにおいて進行を一時停止されている。信号は、クロック・サイクルに同期して、１クロック・サイクルごとに１個のバス部分２０ずつ進行するようになっている。また、バス・システムにおける信号送受はコネクションレス型であるので、バス・マスタとバス・スレーブとの間に通信が確立されていなくても、信号の進行が可能になっている。ｆ３の先端は、進行が可能なアービタの手前まで進行し、すなわち送信先に十分に接近した位置で一時停止することができるので、送信元への到達時間が短縮される。
【００２４】
図５は全体的な伝送効率を考慮してバス・マスタとバス・スレーブとの間の距離を設定したバス・システムにおける構成図である。図５においてバス・マスタとバス・スレーブとの間の図面上の距離は、ＩＣチップ等の実際の製品におけるバス・マスタとバス・スレーブとの間の距離を反映したものである。○はバス・マスタ、□はバス・スレーブ、△は上り方向用のアービタ、▼は上り方向用のデコーダをそれぞれ表している。Ｐ１，Ｐ２はそれぞれリクエスト・パケット及びアクノリッジ・パケットの方向を示している。バス・マスタは、高速バス・マスタ２６ａ，２６ｂと、低速バス・マスタ２７ａ〜２７ｄとに分類される。バス・スレーブは、高速バス・スレーブ３０ａ，３０ｂと低速バス・スレーブ３１とに分類される。高速バス・マスタ２６ａ，２６ｂは低速バス・マスタ２７ａ〜２７ｄよりも高速な通信を要求されるバス・マスタである。また、高速バス・スレーブ３０ａ，３０ｂは低速バス・スレーブ３１よりも高速な通信を要求されるバス・スレーブである。各バス・マスタは、通信相手のバス・スレーブが決まっており、アービタ３２ａ〜３２ｆ及びデコーダ３３ａ，３３ｂは、通信可能性のある全部のバス・マスタとバス・スレーブとの間の通信が保証されるように、バス・マスタとバス・スレーブとの間を接続している。例えば、高速バス・マスタ２６ｂは全部のバス・スレーブ３０ａ，３０ｂ，３１と通信可能性があるのに対し、高速バス・マスタ２６ａは高速バス・スレーブ３０ａとのみ通信するだけであり、低速バス・マスタ２７ｅ，２７ｆは低速バス・スレーブ３１とのみ通信可能性がある。図５では、デコーダ３３ａ−アービタ３２ｆ間の距離が、他のコンポーネント間の距離より比較的長くなっているので、デコーダ３３ａ−アービタ３２ｆ間に所定個数のパイプラインを適宜、介在させ、バス上の隣接コンポーネント同士の距離を均一化するのが好ましい。このバス・システムにおいて、高速バス・マスタ２６ａ−高速バス・スレーブ３０ａ間の通信は、低速バス・マスタ２７ｂ〜ｄ−低速バス・スレーブ３１間の通信よりも高速性が要求されるので、チップ上における高速バス・マスタ２６ａと高速バス・スレーブ３０ａとの相互距離は、低速バス・マスタ２７ｂ〜ｄと低速バス・スレーブ３１との相互距離よりも短くされるとともに、高速バス・マスタ２６ａ−高速バス・スレーブ３０ａ間のラッチ手段の介在個数は低速バス・マスタ２７ｂ〜ｄ−低速バス・スレーブ３１間のラッチ手段の介在個数より小さくされている。また、アービタ３２ａ〜３２ｆは、バス・マスタとバス・スレーブとの間の通信の高速性が要求される通信を優先する調停を行うようになっている。
【００２５】
図６は各パイプライン素子が発行するパケットの種類及びその内容を示している。
（ａ）Ｗｒｉｔｅ  Ｒｅｑｕｅｓｔ  Ｐａｃｋｅｔ  Ｄａｔａ（ＷＲＰＤ）：バス・マスタがバス・スレーブにデータの書込みを要求するパケット。
（ｂ）Ｒｅａｄ  Ｒｅｑｕｅｓｔ  Ｐａｃｋｅｔ  Ｄａｔａ（ＲＲＰＤ）：バス・マスタがバス・スレーブにデータのリードを要求するパケット。
（ｃ）Ｗｒｉｔｅ  Ａｃｋ  Ｐａｃｋｅｔ  Ｄａｔａ（ＷＡＰＤ）：バス・スレーブがＷＲＰＤに対してバス・マスタへ発行するアクノリッジ・パケット。
（ｄ）Ｒｅａｄ  Ａｃｋ  Ｐａｃｋｅｔ  Ｄａｔａ（ＲＡＰＤ）；バス・スレーブがＲＲＰＤに対してバス・マスタへ発行するアクノリッジ・パケット。
（ｅ）Ｃｏｈｅｒｅｎｃｙ  Ｒｅｑｕｅｓｔ  Ｐａｃｋｅｔ（ＣＲＰ）：アービタがキャッシャ付きバス・マスタへデータのコヒーレンシィを問い合わせるパケット。
（ｆ）Ｃｏｈｅｒｅｎｃｙ  Ａｃｋ  Ｐａｃｋｅｔ（ＣＡＰ）：キャッシュ付きバス・マスタがＣＲＰに対してアービタへ発行するアクノリッジ・パケット。
【００２６】
ＷＲＰＤの持つ情報は次のとおりである。
Ｍａｓｔｅｒ  ＩＤ：該ＷＲＰＤを発行したバス・マスタのＩＤ。
Ａｄｄｒｅｓｓ：該ＷＲＰＤの送り先のバス・スレーブにおけるライトアドレス範囲の先頭アドレス。
Ｓｉｚｅ：ライトアドレス範囲のサイズ。
Ｄａｔａ(Ｓｉｚｅ）：データ・ブロック（パケット中の該データ・ブロックの番号）。
【００２７】
ＲＲＰＤの持つ情報は次のとおりである。
Ｍａｓｔｅｒ  ＩＤ：該ＲＲＰＤを発行したバス・マスタのＩＤ。
Ａｄｄｒｅｓｓ：該ＲＲＰＤの送り先のバス・スレーブにおけるリード・アドレス範囲の先頭アドレス。
Ｓｉｚｅ：リード・アドレス範囲のサイズ。
Ｔｙｐｅ：タイプ（詳細は後述する。）。
【００２８】
ＷＡＰＤは次の情報を含む。
Ｍａｓｔｅｒ  ＩＤ：ライト・リクエストに対するアクノリッジの宛て先のバス・マスタのＩＤ。
Ａｄｄｒｅｓｓ：バス・スレーブにおけるライトアドレス範囲の先頭アドレス。
Ｓｔａｔｕｓ：ライト・リクエストに対するエラーとかビジー等のバス・スレーブの状態。
【００２９】
ＲＡＰＤは次の情報を含む。
Ｍａｓｔｅｒ  ＩＤ：リード・リクエストに対するアクノリッジの宛て先のバス・マスタのＩＤ。
Ａｄｄｒｅｓｓ：バス・スレーブにおけるリード・アドレス範囲の先頭アドレス。
Ｓｉｚｅ：リード・アドレス範囲のサイズ。
Ｄａｔａ(Ｓｉｚｅ）：データ・ブロック（パケット中の該データ・ブロックの番号）。
Ｓｔａｔｕｓ：リード・リクエストに対するエラーとかビジー等のバス・スレーブの状態。
【００３０】
ＣＲＰは次の情報を含む。
Ａｄｄｒｅｓｓ：コヒーレンシィについての対象アドレス範囲の先頭アドレス。
Ｓｉｚｅ：コヒーレンシィについての対象アドレス範囲のサイズ。
【００３１】
ＣＡＰは次の情報を含む。
Ａｄｄｒｅｓｓ：コヒーレンシィについての対象アドレス範囲の先頭アドレス。
Ｓｔａｔｕｓ：コヒーレンシィリクエストに対するエラーとかビジー等のバス・マスタの状態。
【００３２】
前述のタイプ（Ｔｙｐｅ）には次のものがある。なお、ｗ／ｏは無し（ｗｉｔｈｏｕｔ）、ｗ／は有り（ｗｉｔｈ）を意味する。
Ｗｒｉｔｅ  ｗ/ｏ  Ａｃｋ：アクノリッジ無しの書込み。
Ｗｒｉｔｅ  ｗ/  Ａｃｋ：アクノリッジ有りの書込み。
Ｒｅａｄ  ｗ/ｏ  Ａｃｋ：アクノリッジ無しの書込み。
Ｒｅａｄ  ｗ/  Ａｃｋ：アクノリッジ有りの書込み。
Ｃｏｈｅｒｅｎｃｙ  Ｒｅｑ  ｗ/ｏ  Ａｃｋ：アクノリッジ無しのコヒーレンシィリクエスト。
Ｃｏｈｅｒｅｎｃｙ  Ｒｅｑ  ｗ/  Ａｃｋ；アクノリッジ有りのコヒーレンシィリクエスト。
【００３３】
図７はパケットとは別に各ラッチ手段の発行する信号を示している。なお、説明の便宜上、ラッチ手段がパケット転送方向の発行元側及び発行先側にそれぞれ隣接するコンポーネントをそれぞれシンボルＣｕ，Ｃｄで表すものとする。また、すでに定義しているように、コンポーネントとは、ラッチ手段だけでなく、バス・マスタ及びバス・スレーブを含む概念として使用している。マスタ信号（Ｍａｓｔｅｒ  Ｓｉｇｎａｌｓ）とは、各ラッチ手段がそのコンポーネントＣｄと送受する信号の総称である。スレーブ信号（Ｓｌａｖｅ  Ｓｉｇｎａｌｓ）とは、各ラッチ手段がそのコンポーネントＣｕと送受する信号の総称である。アービタ信号（Ａｒｂｉｔｅｒ  Ｓｉｇｎａｌｓ）とは、ラッチ手段の内のアービタのみがコンポーネントＣｕ，Ｃｄと送受する信号である。デコーダ信号（Ｄｅｃｏｄｅｒ  Ｓｉｇｎａｌｓ）は、ラッチ手段の内のデコーダのみがコンポーネントＣｕ，Ｃｄと送受する信号である。図７において、信号名の先頭のＭｓｔ，Ｓｌｖはそれぞれデータ・パケット転送方向及びその逆方向へ流れる信号を意味する。信号名の中間のＲｅｑ，Ａｃｋ，ＩＤ，ＡＤ，Ｓｉｚｅ，Ｔｙｐｅ，ＭＩＤはそれぞれリクエスト、アクノリッジ、マスタＩＤ、アドレス＆データ・バスサイズ、タイプ、及びマスタＩＤを意味する。なお、ＩＤ及びＭＩＤ共に、マスタＩＤを意味することになっているが、Ｍｓｔ＿ＩＤの意味するマスタＩＤとは、データ転送方向へ隣接する上流側及び下流側のコンポーネント間において、上流側コンポーネントが自分のＩＤとして出力するＩＤであるのに対し、Ｓｌｖ＿ＩＤの意味するマスタＩＤとは、データ転送方向へ隣接する上流側及び下流側のコンポーネント間において、下流側コンポーネントがパケットの転送先のバス・マスタのＩＤを指し示すものである。信号名における（Ｏ），（Ｉ）の付記は、その信号がそれぞれラッチ手段の出力及び入力に係る信号であることを表す。マスタ信号（Ｍａｓｔｅｒ  Ｓｉｇｎａｌｓ）には、Ｍｓｔ＿Ｒｅｑ(Ｏ），Ｓｌｖ＿Ａｃｋ(Ｉ），Ｍｓｔ＿ＩＤ(Ｏ），Ｍｓｔ＿ＡＤ(Ｏ），Ｍｓｔ＿Ｓｉｚｅ(Ｏ），Ｍｓｔ＿Ｔｙｐｅ(Ｏ）Ｓｌｖ＿Ｒｅｑ(Ｉ），Ｍｓｔ＿Ａｃｋ(Ｏ），Ｓｌｖ＿Ｓｉｚｅ(Ｉ），Ｓｌｖ＿ＡＤ(Ｉ），Ｓｌｖ＿Ｓｔａｔｕｓ(Ｉ），Ｓｌｖ＿ＩＤ(Ｉ）がある。スレーブ信号（Ｓｌａｖｅ  Ｓｉｇｎａｌｓ）には、Ｍｓｔ＿Ｒｅｑ(Ｉ），Ｓｌｖ＿Ａｃｋ(Ｏ），Ｍｓｔ＿ＩＤ(Ｉ），Ｍｓｔ＿ＡＤ(Ｉ），Ｍｓｔ＿Ｓｉｚｅ(Ｉ），Ｍｓｔ＿Ｔｙｐｅ(Ｉ）Ｓｌｖ＿Ｒｅｑ(Ｏ），Ｍｓｔ＿Ａｃｋ(Ｉ），Ｓｌｖ＿Ｓｉｚｅ(Ｏ），Ｓｌｖ＿ＡＤ(Ｏ），Ｓｌｖ＿Ｓｔａｔｕｓ(Ｏ），Ｓｌｖ＿ＩＤ(Ｏ）がある。
【００３４】
ここで、ＮをアービタにおけるコンポーネントＣｕの総数（Ｍａｓｔｅｒ  Ｃｏｎｎｅｃｔｉｏｎ）、又はデコーダにおけるコンポーネントＣｄの総数（Ｓｌａｖｅ  Ｃｏｎｎｅｃｔｉｏｎ）とする。各アービタでは、１個のコンポーネントＣｕ当たりラッチ手段のスレーブ信号（Ｓｌａｖｅ  Ｓｉｇｎａｌｓ）の個数だけ送受が必要となるとともに、１個のコンポーネントＣｄ当たりラッチ手段のマスタ信号（Ｍａｓｔｅｒ  Ｓｉｇｎａｌｓ）の個数だけ送受が必要となる。したがって、各アービタでは、上流側の信号ポートの個数はスレーブ信号（Ｓｌａｖｅ  Ｓｉｇｎａｌｓ）の総数ｘＮとなり、下流側の信号ポートの個数はマスタ信号（Ｍａｓｔｅｒ  Ｓｉｇｎａｌｓ）の総数ｘＮとなる。各デコーダでは、１個のコンポーネントＣｕ当たりラッチ手段のマスタ信号（Ｍａｓｔｅｒ  Ｓｉｇｎａｌｓの個数だけ送受が必要となるとともに、１個のコンポーネントＣｄ当たりラッチ手段のスレーブ信号（Ｓｌａｖｅ  Ｓｉｇｎａｌｓ）の個数だけ送受が必要となる。したがって、各デコーダでは、上流側の信号ポートの個数はマスタ信号（Ｍａｓｔｅｒ  Ｓｉｇｎａｌｓ）の総数ｘＮとなり、下流側の信号ポートの個数はスレーブ信号（Ｓｌａｖｅ  Ｓｉｇｎａｌｓ）の総数ｘＮとなる。
【００３５】
図８及び図９はバス・システムにおけるパケットの流れを順番に示す説明図である。パケットの流れの過程は、図８の（ａ）→（ｂ）→（ｃ）→図９の（ａ）→（ｂ）→（ｃ）となる。バス・システムについての図８及び図９の例では、バス・マスタ３４ａ，３４ｂは、アービタ３６ａ，３６ｂ、及びデコーダ３７を経てバス・スレーブ３５ａ，３５ｂへ接続されている。バス部分４０は、その全体でバスを構成するとともに、バス上で隣接関係のコンポーネント同士を相互に接続している。各ステップを順番に説明する。なお、図８及び図９において説明する通信要求は一例である。
【００３６】
図８（ａ）：バス・マスタ３４ａ，３４ｂが同時にアービタ３６ａへライト・リクエストＲ０及びリードＲ１を出す。この例では、Ｒ０，Ｒ１は、リクエストてあるとともに、パケット・ヘッダともなっている。
図８（ｂ）：アービタ３６ａはＲ０をＲ１よりも優先し、また、アービタ３６ｂはアービタ３６ａ以外からのリクエストは受け付けていない。これにより、バス・マスタ３４からの計４個のパケット・ブロックＲ０，Ｄ０−１，Ｄ０−２，Ｄ０−３がアービタ３６ａ，３６ｂ、及びデコーダ３７を経てクロック・サイクルに同期してバス・スレーブ３５ａへ発送される。先頭のパケット・ブロックＲ０がバス・スレーブ３５ａに到着した状態では、各Ｒ０，Ｄ０−１，Ｄ０−２，Ｄ０−３はそれぞれバス・スレーブ３５ａ−デコーダ３７間、デコーダ３７−アービタ３６ｂ間、アービタ３６ｂ−アービタ３６ａ間、アービタ３６ａ−バス・マスタ３４ａ間に存在する。
図８（ｃ）：アービタ３６ａは、バス・マスタ３４ａからの最後尾のパケット・ブロックＤ０−３をアービタ３６ｂへ送信しだい、バス・マスタ３４ｂからのリード・リクエストＲ１をバス・スレーブ３５ａの方へ発送する。これにより、パケット・ブロックＲ１は、Ｄ０−３の後に続いて、バス・スレーブ３５ｃへ進む。
【００３７】
図９（ａ）：この例のライト・リクエストはアクノリッジ不要のものであるので、バス・スレーブ３５ａは、Ｄ３を受け付けると、アクノリッジ信号をバス・マスタ３４ａへ向かって発行することなく、バス・マスタ３４ｂからのリクエストＲ１を受け付ける。
図９（ｂ），（ｃ）：バス・スレーブ３５ａは、バス・マスタ３４ｂからのリード・リクエストのパケットＲ１に対するアクノリッジ・パケットの各パケット・ブロックＲ，Ｄ１−１，Ｄ１−２，Ｄ１−３，Ｄ１−４をクロック・サイクルごとに順番に発行する。なお、この例では、Ｒは、アクノリッジ信号であるとともに、パケット・ヘッダである。アクノリッジ・パケットは、リクエスト・パケットとは経路を逆方向へバス・マスタ３４ｂへ向かう。アクノリッジ・パケットに対しては、デコーダ３７ｂはアービタ、アービタ３６ｂはデコーダ、アービタ３６ａはデコーダの機能をそれぞれ果たす。
【００３８】
本発明の適用されるバス・システムはデータのコヒーレンシィが配慮される。すなわち、バス・マスタの中にはキャッシュを装備するものがあり、或るバス・マスタが、それの装備するキャッシュの内容を変更しているにもかかわらず、対応のバス・スレーブにおけるデータの更新が済まされていないときがある。これに対処するために、各アービタは、それへデータのリード及びライトをリクエストして来るバス・マスタの中でキャッシャ装備のバス・マスタを全部、把握する。そして、或るバス・マスタＭａから所定のバス・スレーブＳａにおける所定アドレス範囲ＡＷ１のデータのリードをリクエストしてきたときは、他のキャッシャ装備のバス・マスタへそのキャッシュにおいて該アドレス範囲ＡＷ１と重複アドレス範囲のデータを書き換えていないかを問い合わせる。問い合わせ先のバス・マスタは、問い合わせ元のアービタへ回答し、回答がＮｏであれば、アービタは、データのリードをリクエストして来たバス・マスタからのリード・リクエストを、待機させることなく、速やかにバス・スレーブ側のコンポーネントへ送る。回答がＹｅｓ、すなわち該アドレス範囲ＡＷ１と重複アドレス範囲の書き換えがあれば、問い合わせ先のバス・マスタは、そのキャッシュにおける更新データに基づいてバス・スレーブＳａの更新必要アドレス範囲を更新するために、ライト・リクエストを発行する。バス・マスタは、キャッシャ内容更新に基づくライト・リクエストによる書込みパケットを送出し終わってから、バス・マスタＭａからの待機中のリード・リクエストをバス・スレーブＳａの方へ送出する。
【００３９】
図１０及び図１１は図８及び図９のパケット転送モデルにおいて各ラッチ手段がラッチを上り方向及び下り方向共に１個しか装備していないときの各信号についてのそれぞれ上り方向及び下り方向タイミングチャートである。ラッチ手段は、上り方向及び下り方向に専用にそれぞれ１個のラッチを装備する。図１１は下り方向のタイミングチャートであるが、上り方向のタイミングとの関係を明確にするために、図１１の上段には、デコーダ３７からバス・スレーブ３５ａへの上り方向のタイミングチャートも示されている。このバス・システムでは、各コンポーネントの発行するアクノリッジは、パケットの受け入れ可を意味する。図７の説明のときと同様に、各ラッチ手段に対して、それがパケット転送方向上流側及び下流側にそれぞれ隣接するコンポーネントをそれぞれシンボルＣｕ，Ｃｄで表すものとする。ラッチ手段（前述したように、ラッチ手段とは、パイプライン素子、アービタ、及びデコーダの総称である。）は、１個のラッチしか持たないので、或るクロック・サイクルにおいて、コンポーネントＣｄからアクノリッジ信号を受け取らないと、次のクロック・サイクルでは、ラッチのデータをコンポーネントＣｄへ引き渡すことができず、したがって、ラッチ・データを次のクロック・サイクルのためにホールドする必要上、次のクロック・サイクルでは、コンポーネントＣｕからのデータをラッチにラッチすることができない。したがって、各ラッチ手段は、コンポーネントＣｕからパケットを自分のラッチにホールドするために、コンポーネントＣｄからアクノリッジ信号を受け取った後、コンポーネントＣｕへアクノリッジ信号を発行しなければならない。図１０及び図１１において同一列は同一クロック・サイクルを示している。
【００４０】
説明の便宜上、図１０において、バス・マスタ３４ａがリクエストＲ０をアービタ３６ａへ初めて出力するクロック・サイクルをＴ１で表し、以下、各クロック・サイクルをＴ１から順番にＴ２，Ｔ３，・・・と表すことにする。図１０において、バス・マスタ３４ａ，３４ｂは、クロック・サイクルＴ１において最初のリクエスト信号としてのリクエストＲ０，Ｒ１をアービタ３６ａへ出力する。バス・マスタ３４ａは、リクエスト信号Ｒ０と共に、書込み先のバス・スレーブにおける先頭アドレスを指示するパケット・ブロックａ０、ライト（ｗｒｉｔｅ）対象のアドレス範囲を所定単位に換算したサイズ（Ｓｉｚｅ）の信号３、ライト・リクエストがアクノリッジ不要であることを意味するタイプＷｎ、及び自分のＩＤを示す信号Ｍ０を、アービタ３６ａへ出力している。同様に、バス・マスタ３４ｂは、リクエスト信号Ｒ１と共に、読出し先のバス・スレーブにおける先頭アドレスを指示するパケット・ブロックａ０、リード対象のアドレス範囲を所定単位に換算したサイズ４、リード・リクエストがアクノリッジを必要とすることを意味するタイプＲａ、及び自分のＩＤを示すＭ１を、アービタ３６ａへ出力している。
【００４１】
アービタ３６ａは、バス・マスタ３４ａのライト・リクエストをバス・マスタ３４ｂのリード・リクエストよりも優先し、クロック・サイクルＴ２において、バス・マスタ３４ａへアクノリッジ信号Ａを発行する。これに対して、バス・マスタ３４ａは、クロック・サイクルＴ３では、先頭アドレス情報ａ０に代えて、データのパケット・ブロックｄ０をアービタ３６ａへ送る。図１０では、データの全部のパケット・ブロックは同一のシンボルｄ０で表示されているが、計６個のｄ０の内、１番目及び２番目のｄ０はデータ・パケット・ブロック（１）、３番目及び４番目のｄ０はデータ・パケット・ブロック（２）、５番目及び６番目のｄ０はデータ・パケット・ブロック（３）となっている。各ラッチ手段は、上り方向及び下り方向共にラッチを１個しか装備しないので、コンポーネントＣｄからアクノリッジ信号を受けたクロック・サイクルに対して、該クロック・サイクルでは、コンポーネントＣｕへアクノリッジ信号を発行できず、コンポーネントＣｕへアクノリッジ信号を発行できるのは次のクロック・サイクルとなる。こうして、エラー等の支障のない限り、アクノリッジが１クロック・サイクル置きに発生するバス・マスタ３４ａ−アービタ３６ｂ間の送受信号パターンが、１クロック・サイクルずつ遅れながら、下流段のコンポーネントへ伝播していく。
【００４２】
アービタ３６ａは、クロック・サイクルＴ９においてアービタ３６ｂからアクノリッジ信号を受け取ると、クロック・サイクル１０では、バス・マスタ３４ｂへアクノリッジ信号へ発行する。バス・マスタ３４ｂは、クロック・サイクルＴ１０におけるアービタ３６ａからのアクノリッジ信号により、クロック・サイクルＴ９におけるアービタ３６ａへの伝送信号がアービタ３６ａに受け入れられたことを検知する。エラー等の支障のない限り、バス・マスタ３４ｂ−アービタ３６ａ間の送受信号パターンが、１クロック・サイクルずつ遅れながら、下流段のコンポーネント間へ伝播していく。バス・スレーブ３５ａがＲ１に対してデコーダ３７へアクノリッジを発行するのはクロック・サイクルＴ１２となる。
【００４３】
図１１において、バス・スレーブ３５ａは、デコーダ３７からリード・リクエストＲ１を受け取ると、関連のメモリへの所定のアクセスタイムを経てデコーダ３７へリクエスト(Ｓｌｖ＿Ｒｅｑ)Ｒを送る。説明の便宜上、図１１において、バス・スレーブ３５ａが初めてデコーダ３７へＲを発行したクロック・サイクルをＴ１とし、以下、Ｔ１以降の各クロック・サイクルについて順番にＴ２，Ｔ３，・・・と表すことにする。バス・スレーブ３５ａは、クロック・サイクルＴ１において、Ｒと共に、リード・アドレス範囲の先頭アドレスを表すａ１、リード対象のアドレス範囲を所定単位に換算したサイズの信号４、タイプがリード・リクエストに対するリクエスト・パケットであることを表すａＲ、どのバス・マスタに対するアクノリッジ・パケットであるかを表すＭ１を出力する。下り方向では、デコーダ３７はアービタとして機能し、アービタ３６ｂ，ａはデコーダとして機能する。各ラッチ手段は、上り方向のときの信号伝送の場合と同様に、アクノリッジを受けたコンポーネントＣｄ（注：上り方向のときのコンポーネントＣｄ，Ｃｕは下り方向ではそれぞれコンポーネントＣｕ，Ｃｄとなる。）に対して、そのアクノリッジを受けたクロック・サイクルの次のクロック・サイクルでは、ラッチのデータを出力するとともに、コンポーネントＣｕへはアクノリッジ信号を発行する。こうして、エラー等の支障のない限り、バス・スレーブ３５ａ−デコーダ３７間の送受信号パターンが、１クロック・サイクルずつ遅れながら、下流段のコンポーネント間へ伝播していく。なお、図１１では、デコーダ３７−アービタ３６ｂ間、及びアービタ３６ｂ−アービタ３６ａ間において、Ｓｌｖ＿ＡＤ、Ｓｌｖ＿Ｓｉｚｅ、Ｓｌｖ＿Ｔｙｐｅの記載は図示の簡便化のために省略している。バス・マスタ３４ｂが最後のパケット・ブロックの入力に対するアクノリッジをアービタ３６ａへ出力するのはクロック・サイクルＴ１２となる。
【００４４】
図１２及び図１３は各ラッチ手段がラッチを上り方向及び下り方向共に２個ずつ装備しているときの各信号についてのそれぞれ上り方向及び下り方向タイミングチャートである。ラッチ手段は、上り方向及び下り方向に専用にそれぞれ２個のラッチを装備する。図１３は下り方向のタイミングチャートであるが、上り方向のタイミングとの関係を明確にするために、図１２の上段には、デコーダ３７からバス・スレーブ３５ａへの上り方向のタイミングチャートも示されている。図１０及び図１１との相違点についてのみ説明する。なお、説明の便宜上、図１２では、図１０の説明のときと同様に、バス・マスタ３４ａがリクエストＲ０をアービタ３６ａへ初めて出力するクロック・サイクルをＴ１で表し、以下、各クロック・サイクルをＴ１から順番にＴ２，Ｔ３，・・・と表すことにし、また、図１３では、図１１の説明のときと同様に、バス・スレーブ３５ａが初めてデコーダ３７へＲを発行したクロック・サイクルをＴ１とし、以下、Ｔ１以降の各クロック・サイクルについて順番にＴ２，Ｔ３，・・・と表すことにする。ラッチ手段がラッチを２個装備する場合には、各ラッチ手段は、コンポーネントＣｕへアクノリッジ信号を発行したにもかかわらず、コンポーネントＣｄからアクノリッジ信号を入力しないクロック・サイクルがあり、次のクロック・サイクルでは、ラッチのデータをコンポーネントＣｄへ再度、送出しなければならないときも、該次のクロック・サイクルにおいてコンポーネントＣｕからのデータを別のラッチにラッチすることができる。したがって、各ラッチ手段は同一のクロック・サイクルにおいてコンポーネントＣｕからアクノリッジ信号を受けつつ、コンポーネントＣｄへアクノリッジ信号を発行することができる。各ラッチ手段Ｌｏは、コンポーネントＣｕからの最初のクロック・サイクルに対しては、その入力のあったクロック・サイクルＴ１の次のクロック・サイクルＴ２でアクノリッジをコンポーネントＣｕへ発行する。また、コンポーネントＣｕへアクノリッジを発行したラッチ手段Ｌｏは、クロック・サイクルＴ２でコンポーネントＣｄへリクエストを発行するものの、コンポーネントＣｄがアービタ３６ｂのようなアービタである場合は、ラッチ手段Ｌｏからのリクエストを他のコンポーネントに優先して受け付けてくれる保証もないので、コンポーネントＣｄから最初のアクノリッジを入力するまで、２番目のアクノリッジをコンポーネントＣｕへ発行することができない。したがって、各ラッチ手段ＬｏがコンポーネントＣｕへ２番目のアクノリッジを発行できるのは、コンポーネントＣｄからアクノリッジを受け取ったクロック・サイクルの次のクロック・サイクルであり、最も早くてクロック・サイクルＴ４となる。したがって、各クロック・サイクルＬｏは、コンポーネントＣｕへ連続してアクノリッジを発行できるのはクロック・サイクルＴ４以降となる。後述のパーキング方式ではこれを改善できる。こうして、図１２及び図１３のバス・システムでは、バス・スレーブ３５ａがデコーダ３７へＲ１に対するアクノリッジを発行するのはクロック・サイクルＴ１０となる。また、バス・マスタ３４ｂが最後のパケット・ブロックの入力に対するアクノリッジをアービタ３６ａへ出力するのはクロック・サイクルＴ９となる。
【００４５】
図１２において、アービタ３６ａは、クロック・サイクルＴ７においてバス・マスタ３４ｂへアクノリッジ信号を発行しているので、クロック・サイクルＴ６におけるバス・マスタ３４ａへのアクノリッジ信号に連続してアクノリッジ信号を発行していることになるが、デコーダ３７ｂはクロック・サイクルＴ８においてアービタ３６ａへのアクノリッジ信号の発行を保留している。これは、アービタ３６ｂは、クロック・サイクルＴ８においてバス・マスタ３４ｂがリード・リクエストを発行しているのを初めて知り、他のバス・マスタからのアクノリッジとの調停の必要上、直ちにアクノリッジ信号をアービタ３６ａへ発行することができないからである。後述のパーキング方式では、このようなアクノリッジ信号の保留を省略して、伝送効率を高めることができる。
【００４６】
図１４及び図１５は図１２及び図１３に係るバス・システムにパーキング技術を適用した改良バス・システムにおける各信号についてのそれぞれ上り方向及び下り方向タイミングチャートである。図１２及び図１３のタイミングチャートとの相違点を説明する。なお、説明の便宜上、図１４では、図１１の説明のときと同様に、バス・マスタ３４ａがリクエストＲ０をアービタ３６ａへ初めて出力するクロック・サイクルをＴ１で表し、以下、各クロック・サイクルをＴ１から順番にＴ２，Ｔ３，・・・と表すことにし、また、図１５では、図１２の説明のときと同様に、バス・スレーブ３５ａが初めてデコーダ３７へＲを発行したクロック・サイクルをＴ１とし、以下、Ｔ１以降の各クロック・サイクルについて順番にＴ２，Ｔ３，・・・と表すことにする。パイプライン素子及びデコーダは、唯一のコンポーネントＣｕへアクノリッジ信号を常時、発行し続けるパーキング状態になっている。また、アービタは、どこからもリクエスト信号を入力していないときは、所定の１個のコンポーネントＣｕへアクノリッジ信号を発行し続けるパーキング状態になっている。したがって、アービタから優先的にアクノリッジ信号を発行されるアービタ３６ａからのパケットは、その１番目のパケット・ブロックから、エラー等の支障のない限り、アービタを含む全クロック・サイクルにおいてアクノリッジを待つことなく、進行することができる。こうして、バス・スレーブ３５ａがデコーダ３７へＲ１に対するアクノリッジを発行するのはクロック・サイクルＴ７となる。また、バス・マスタ３４ｂが最後のパケット・ブロックの入力に対するアクノリッジをアービタ３６ａへ出力するのもクロック・サイクルＴ７となる。
【００４７】
図１６はパイプライン素子の動作に関わっている複数個の信号についてのタイミングチャートの例示である。各信号の意味は次のとおりである。なお、図１６〜図２２を参照して説明するバス・システムは、図６〜図１５において説明したバス・システムとは、同一のパイプライン方式ながら、装備するインターフェースが異なっているので、一部の信号が相違している。図６〜図１５のものでは、ＳＩＺＥによりパケット・サイズを定義していたのに対し、図１６以降のものは、パケット・サイズの代わりに、ＣＭＤ及びＮＸＴと言う信号によりをパケットの開始と終了を定義している。
ＣＬＫ：該ＣＬＫの０から１の変化点で各信号がバス上の隣接コンポーネント間で転送される。
ＲＳＴ：各コンポーネントがコンポーネントＣｄへ出力する信号。１のときバスがリセット状態であることを示す。
ＲＥＱ：各コンポーネントがコンポーネントＣｄへ出力する信号。１のとき転送パケットとしての後述のＡＤが在ることを示す。
ＣＭＤ：各コンポーネントがコンポーネントＣｄへ出力する信号。１のとき転送パケットとしてのＡＤがコマンドであることを示す。
ＮＸＴ：各コンポーネントがコンポーネントＣｄへ出力する信号。１のとき転送パケットが続くことを示す。
ＡＤ：各コンポーネントがコンポーネントＣｄへ出力する信号。ＣＭＤが１のときはＡＤの内容はコマンドであり、０のときはＡＤの内容はデータである。
ＡＣＫ：各コンポーネントがコンポーネントＣｕへ出力する信号。１のとき現在の転送情報を受け取ったことを示す。
【００４８】
図１６において、ＡＤのパケットには、コマンド・パケットのみのばあいと、コマンド・パケットの後に１個以上のデータ・パケットが続く場合とがある。なお、前述の図１０〜図１５で説明した各コンポーネントは、コンポーネントＣｄからアクノリッジ信号を受けるアクノリッジ信号までリクエスト信号をコンポーネントＣｄに対して出力することになっているが、この図１６のコンポーネントは、ＡＤ信号をコンポーネントＣｄへ出力する全アクノリッジ信号において、リクエスト信号をコンポーネントＣｄへ出力することになっている。
【００４９】
図１７は上り方向のパケット転送の場合のバス・システムの各コンポーネントにおける信号入出力を示している。バス・マスタ４３ａ，４３ｂからの上り方向パケットは、アービタ４６、パイプライン素子４７、及びデコーダ４８を経てバス・スレーブ４４ａ又は４４ｂへ送られる。図１６に示したように、各コンポーネントは、コンポーネントＣｕへはＲＳＴ、ＲＥＱ，ＣＭＤ，ＮＸＴ，ＡＤの信号を出力し、コンポーネントＣｄへはＡＣＫを送る。各コンポーネントは、また、共通のＣＬＫの供給を受ける。バス・マスタ４３ａ，４３ｂ及びバス・スレーブ４４ａ，４４ｂのロジックはユーザに委託される（Ｕｓｅｒ  Ｌｏｇｉｃ）。
【００５０】
なお、図１７では、バス・マスタからバス・スレーブへのパケット転送に関連して回路を説明しているが、バス・スレーブからバス・マスタへのパケット転送に対処するために、図１７の回路とは信号方向が逆向きの回路が別途、装備されている。すなわち、下り方向のパケット転送用の回路では、図１７の上り方向のパケット転送用回路のアービタ４６及びデコーダ４８はそれぞれバス・スレーブ及びバス・マスタに置き換わるとともに、各ラッチ手段に対するコンポーネントＣｕ及びコンポーネントＣｄの関係が図１７のものとは逆となり、それに伴い、ＲＳＴ、ＲＥＱ，ＣＭＤ，ＮＸＴ，ＡＤ，ＡＣＫも各コンポーネント間において図１７とは逆向きとされる。
【００５１】
図１８はパイプライン素子４７のブロック図である。図１８において、ＭＳＴが信号名の語頭に付いている信号は、パケット転送方向上流側に隣接するコンポーネントＣｕからパイプライン素子４７へ入力される信号を意味し、ＳＬＶが信号名の語頭に付いている信号はパケット転送方向下流側に隣接するコンポーネントＣｄから入力される信号を意味し、ＰＩＰが語頭に付いているものは、パイプライン素子４７がコンポーネントＣｕ及びコンポーネントＣｄへ出力する信号であることを意味する。パイプライン素子４７はラッチＡ５０及びラッチＢ５１を有している。コンポーネントＣｕ側からのＡＤ，ＣＤ，ＮＸＴはラッチＢ５１のＤ及び選択器５３のＡへ入力される。制御器５２はコンポーネントＣｕ側に対しては、ＲＥＱを入力され、ＡＣＫを出力し、また、コンポーネントＣｄ側に対しては、ＲＥＱを出力し、ＡＣＫを入力される。制御器５２は、ラッチＡ５０のＥＮＢ端子、ラッチＢ５１のＥＮＢ端子、及び選択器５３のＳＥＬ端子のへ制御信号を送る。
【００５２】
図１９は図１８のパイプライン素子４７の真理値表である。各信号の現在の値（Ｃｕｒｒｅｎｔ  Ｖａｌｕｅ）と次の値（Ｎｅｘｔ  Ｖａｌｕｅ）との関係が示されており、同一列において、各信号の現在の値に対して各信号の次の値がどうなるかが示されている。なお、Ｘは”１”，”０”のどちらでもかまわないことを意味し、Ｈはラッチが値をホールドすること、すなわち前のクロック・サイクルにおける値を維持すること、Ａは選択器５３のＡ端子のデータがラッチＡ５０にラッチされること、Ｂは選択器５３のＢ端子のデータがラッチＡ５０にラッチされること、ＤはラッチＢ５１のＤ端子のデータがラッチＢ５１にラッチされることを、それぞれ意味する。図１９の真理値表は１２行×９列の行列となっている。図２０は図１９の真理値表に基づくパイプライン素子４７の状態遷移図である。４個の囲み内の４桁の数値は左から順番に、ＰＩＰ＿ＡＣＫ、ＰＩＰ＿ＲＥＱ、Ｌａｔｃｈ−Ａ＿Ｆｕｌｌ、及びＬａｔｃｈ−Ｂ＿Ｆｕｌｌの真理値であり、図１９の１〜４行の真理値に対応している。
【００５３】
図１９及び図２０を参照しつつ、パイプライン素子４７の状態遷移を説明する。エラー等が発生しないで、各パケットが１クロック・サイクルごとに次段のコンポーネントへ転送されているときは、図１９の真理値表では、６列目の真理値（上から順番に１，１，１，０｜１，１｜１，１，１，０｜Ｈ，Ｄ）の状態に対応し、図２０の状態遷移図ではＳ３に対応する。すなわち、コンポーネントは、各クロック・サイクルにおいて、コンポーネントＣｕ及びコンポーネントＣｄへアクノリッジ信号（ＰＩＰ＿ＡＣＫ）及びリクエスト信号（ＰＩＰ＿ＲＥＱ）を出力し、また、ラッチＡ５０のパケットをコンポーネントＣｄへ転送しつつ、コンポーネントＣｕからのパケットをラッチＡ５０にラッチする処理を続けている。Ｓ３の状態は、パイプライン素子４７が、クロック・サイクルにおいてコンポーネントＣｕ及びコンポーネントＣｄからそれぞれリクエスト信号及びアクノリッジ信号を入力される場合だけでなく、クロック・サイクルにおいてコンポーネントＣｕ及びコンポーネントＣｄからそれぞれリクエスト信号及びアクノリッジ信号を入力されない場合も、継続する。Ｓ３の状態において、コンポーネントＣｄからのアクノリッジ信号が途絶えると、パイプライン素子４７はＳ４の状態へ移行する。Ｓ４の状態では、コンポーネントは、各クロック・サイクルにおいて、コンポーネントＣｕへはアクノリッジ信号（ＰＩＰ＿ＡＣＫ）を出力せず、コンポーネントＣｄへはリクエスト信号（ＰＩＰ＿ＲＥＱ）を出力する。Ｓ４では、ラッチＡ５０及びラッチＢ５１は共にフル（Ｆｕｌｌ）の状態にあり、パケットをラッチＡ５０及びラッチＢ５１にホールドしている。なお、Ｓ４において、ラッチＡ５０はＳ３の最後のクロック・サイクルにおいてラッチしていたパケットをホールドしており、また、ラッチＢ５１は、Ｓ４の最初のクロック・サイクルにおいてコンポーネントＣｕから入力してラッチしたパケットをホールドしている。Ｓ４の状態は、コンポーネントＣｄからアクノリッジ信号を入力しない限り（Ｓ＿ＡＣＫ＝０）、コンポーネントＣｕからのリクエスト信号の有無に関係なく（Ｍ＿ＲＥＱ＝Ｘ）、維持される。そして、パイプライン素子４７は、アクノリッジ信号がコンポーネントＣｄから入力されしだい、ラッチＢ５１のパケットをラッチＡ５０にラッチして、Ｓ４からＳ３へ戻る。
【００５４】
図２１はアービタ４６のブロック図である。アービタ４６はパイプライン・ロジック５５を含み、パイプライン・ロジック５５の構成は図１８のパイプライン素子４７の構成と同一である。各コンポーネントＣｕ（図１７の例では、バス・マスタ４３ａ及びバス・マスタ４３ｂ）からの信号は選択器５６のＡ，Ｂへそれぞれ入力される。パイプライン・ロジック５５が各コンポーネントＣｕへ出力する信号はデコーダ５７のそれぞれＯＵＴ０，ＯＵＴ１から出力される。各コンポーネントＣｕからのＲＥＱ及びＮＸＴ信号は、選択器５６だけでなく、制御器５８へも入力される。コンポーネントＣｄからのアクノリッジ信号（ＳＬＶ＿ＡＣＫ）は、パイプライン・ロジック５５を経て、ＡＲＢ＿ＡＣＫとしてデコーダ５７のＩＮ端子及び制御器５８へ入力される。制御器５８は、ＲＥＱ（リクエスト信号）及びＮＥＸＴ（継続信号）に基づいて選択器５６におけるＡ，Ｂの切替を制御し、また、ＲＥＱ（リクエスト信号）、ＮＥＸＴ（継続信号）、及びに基づいてデコーダ５７におけるＯＵＴ０，ＯＵＴ１の切替を制御する。選択器５６は、複数個のコンポーネントＣｕからリクエスト信号（ＭＳＴ＿ＲＥＱ０，ＭＳＴ＿ＲＥＱ１）を同時に入力した場合、あらかじめ定めてある調停律に従って１個のコンポーネントＣｕを選択器５６に選択させ、該選択したコンポーネントＣｕからのＮＥＸＴ信号が途絶えるまで、その選択を選択器５６に維持させる。こうして、アービタ４６において選択されたコンポーネントＣｕからの連続パケットは、その連続が途絶えるまで次段のコンポーネントＣｄ（図１７の例ではパイプライン素子４７）へ送り続けられる。
【００５５】
図２２はデコーダ４８のブロック図である。アービタ４６はパイプライン・ロジック６１を含み、パイプライン・ロジック６１の構成は図１８のパイプライン素子４７の構成と同一である。コンポーネントＣｕからの信号ＭＳＴ＿ＲＥＱ，ＭＳＴ＿ＣＭＤ，ＭＳＴ＿ＮＸＴ，ＭＳＴ＿ＡＤはパイプライン・ロジック６１を経てデコーダ６３のＩＮへ信号ＤＥＣ＿ＲＥＱ，ＤＥＣ＿ＣＭＤ，ＤＥＣ＿ＮＸＴ，ＤＥＣ＿ＡＤとして入力される。ＤＥＣ＿ＣＭＤ，ＤＥＣ＿ＡＤはまた制御器６４へも入力される。制御器６４は、入力信号ＤＥＣ＿ＣＭＤ，ＤＥＣ＿ＡＤに基づいて選択器６２におけるＩＮ０，ＩＮ１を切替えるとともに、デコーダ６３のＯＵＴ０，ＯＵＴ１を切替える。こうして、コンポーネントＣｕ側からのパケットは、そのあて先のバス・スレーブに対応するＯＵＴ０又はＯＵＴ１からコンポーネントＣｄ側へ送り出され、また、選択器６２において選択された１個のコンポーネントＣｄ側からのアクノリッジ信号（ＳＬＶ＿ＡＣＫ０，ＳＬＶ＿ＡＣＫ１）がＳＬＶ＿ＡＣＫとしてパイプライン・ロジック６１へ入力され、さらに、パイプライン・ロジック６１からＤＥＣ＿ＡＣＫとしてコンポーネントＣｕ側のコンポーネントへ出力される。
【００５６】
まとめとして本発明の構成に関して以下の事項を開示する。
(１)バスに接続されている少なくとも１個のバス・マスタ、バス・マスタの個数と合わせた総数が３個以上となる個数で存在してバスに接続されている少なくとも１個のバス・スレーブ、及びバス・マスタとバス・スレーブとの間のバス経路に介在して該バス経路を複数の区画に分割しクロックに同期して伝送信号のラッチ及び出力を行うラッチ手段、を有し、
クロックの周期は、バス上の隣接する任意の第１及び第２の区画に対して、第１の区画における信号伝送時間より長くかつ第１及び第２の区画の合計の信号伝送時間より短く設定されている、バス・システム。
(２)バス上の各区画の長さがほぼ均等に設定されている(１)記載のバス・システム。
(３)バスは、各バス・マスタ及び各バス・スレーブから見てツリー構造となっている(１)記載のバス・システム。
(４)少なくとも２個のバス・マスタを有し、少なくとも１個のラッチ手段は、バス・マスタからバス・スレーブへの信号伝送に対するアービタである(１)記載のバス・システム。
(５)少なくとも２個のバス・スレーブを有し、少なくとも１個のラッチ手段は、バス・マスタからバス・スレーブへの信号伝送に対するデコーダである(１)記載のバス・システム。
【００５７】
(６)アービタ及びデコーダとしてのラッチ手段は、それぞれバス・スレーブからバス・マスタへの信号伝送に対するデコーダ及びアービタとなっている(４)又は(５)記載のバス・システム。
(７)データの読出し及び書込みの高速性の要求度の高い特定のバス・マスタとバス・スレーブとの間のバス経路長は、要求度の低い他のバス・マスタとバス・スレーブとの間のバス経路長未満に設定されるとともに、該特定のバス・マスタとバス・スレーブとの間におけるラッチ手段の介在個数は、該他のバス・マスタとバス・スレーブとの間の介在個数未満に設定されている(３)記載のバス・システム。
(８)バス・マスタとバス・スレーブとの間のデータ転送はパケット方式である(１)記載のバス・システム。
(９)パケット方式のデータ転送はコネクションレスである(８)記載のバス・システム。
(１０)バス・マスタは第１のバス・マスタとキャッシュを装備する第２のバス・マスタとを含み、
アービタは、バス・スレーブの特定のアドレス範囲に対するリード・リクエストを第１のバス・マスタから受け付けたとき、第２のバス・マスタへ、該第２のバス・マスタが自分のキャッシュにバス・スレーブの特定のアドレス範囲に係るデータを保持しているか否かを問い合わせ、第２のバス・マスタがデータを保持している場合は、第２のバス・マスタに、データをバス・スレーブの該当アドレス範囲に書込ませる(４)記載のバス・システム。
【００５８】
(１１)バス・マスタ、バス・スレーブ、及びラッチ手段をコンポーネントと総称することにし、各ラッチ手段に対してパケット転送方向へ上流側及び下流側に隣接するコンポーネントをそれぞれ第１及び第２のコンポーネントと呼び、かつ連続する３個のクロック・サイクルを前から順番に、第１、第２、及び第３のクロック・サイクルと呼ぶことにすると、
各ラッチ手段は、第２のクロック・サイクルにおいて第１のコンポーネントからパケットを受けるために、第１のクロック・サイクルにおいて第１のコンポーネントへアクノリッジ信号を出力する(１)記載のバス・システム。
(１２)ラッチ手段は、第１及び第２のラッチを有し、第１のクロック・サイクルにおいて第１のコンポーネントへはアクノリッジ信号を出力しかつ第２のコンポーネントからはアクノリッジ信号を入力しなかったとき、第１のクロック・サイクルにおいて第２のコンポーネントへのパケットを第１のラッチにホールドし、第２のクロック・サイクルでは、第２のコンポーネントへ第１のラッチのパケットを再送するとともに、第１のコンポーネントからのパケットを第２のラッチにラッチする(１１)記載のバス・システム。
(１３)ラッチ手段は、第２のクロック・サイクルでは、第１のコンポーネントへのアクノリッジ信号の出力を中止し、もし第２のクロック・サイクルにおいて第２のコンポーネントからアクノリッジ信号を入力したならば、第３のクロック・サイクルでは、第１のラッチのパケットを第２のコンポーネントへ送出しつつ、第２のラッチのパケットを第１のラッチへラッチし、かつ第１のコンポーネントへアクノリッジ信号を出力する(１２)記載のバス・システム。
(１４)アービタは、複数個の第１のコンポーネントの内の一つを優先コンポーネントと定め、いずれの第１のコンポーネントからもリクエスト信号を受付けていないクロック・サイクルでは、優先コンポーネントへアクノリッジ信号を発行するパーキング状態にされ、また、アービタ以外のラッチ手段も唯一の第１のコンポーネントについてのパーキング状態にされている(１２)記載のバス・システム。
(１５)バス・マスタ、バス・スレーブ、及びラッチ手段が１チップ内に製作されている(１)記載のバス・システム。
【００５９】
(１６)バスを介して接続されるバス・マスタ及びバス・スレーブをそれぞれ少なくとも１個、かつ両者の総数が１８以上となっているバス・システムの信号伝送方法において、
少なくとも１個のラッチ手段をバス・マスタとバス・スレーブとの間のバス経路に介在させて、該バス経路を複数の区画に分割し、
クロックに同期して伝送信号をラッチ手段においてラッチ及び出力させ、
クロックの周期を、バス上の隣接する任意の第１及び第２の区画に対して、第１の区画における信号伝送時間より長くかつ第１及び第２の区画の合計の信号伝送時間より短く設定する、
バス・システム用信号伝送方法。
(１７)バス上の各区画の長さをほぼ均等に設定する(１６)記載のバス・システム用信号伝送方法。
(１８)バスを、各バス・マスタ及び各バス・スレーブから見てツリー構造とする(１６)記載のバス・システム用信号伝送方法。
(１９)バス・マスタの個数を少なくとも２個とし、
少なくとも１個のラッチ手段を、バス・マスタからバス・スレーブへの信号伝送に対するアービタとする(１６)記載のバス・システム用信号伝送方法。
(２０)バス・スレーブの個数を少なくとも２個とし、
少なくとも１個のラッチ手段を、バス・マスタからバス・スレーブへの信号伝送に対するデコーダとする(１６)記載のバス・システム用信号伝送方法。
【００６０】
(２１)アービタ及びデコーダとしてのラッチ手段を、それぞれバス・スレーブからバス・マスタへの信号伝送に対するデコーダ及びアービタとする(１９)又は(２０)記載のバス・システム用信号伝送方法。
(２２)データの読出し及び書込みの高速性の要求度の高い特定のバス・マスタとバス・スレーブとの間のバス経路長を、要求度の低い他のバス・マスタとバス・スレーブとの間のバス経路長未満に設定するとともに、該特定のバス・マスタとバス・スレーブとの間におけるラッチ手段の介在個数を、該他のバス・マスタとバス・スレーブとの間の介在個数未満に設定する(１８)記載のバス・システム用信号伝送方法。
(２３)バス・マスタとバス・スレーブとの間のデータ転送をパケット方式とする(１６)記載のバス・システム用信号伝送方法。
(２４)パケット方式のデータ転送をコネクションレスとする(２３)記載のバス・システム用信号伝送方法。
(２５)バス・マスタには、第１のバス・マスタとキャッシュを装備する第２のバス・マスタとを含ませ、
アービタの作動として、アービタは、バス・スレーブの特定のアドレス範囲に対するリード・リクエストを第１のバス・マスタから受け付けたとき、第２のバス・マスタへ、該第２のバス・マスタが自分のキャッシュにバス・スレーブの特定のアドレス範囲に係るデータを保持しているか否かを問い合わせ、第２のバス・マスタがデータを保持している場合は、第２のバス・マスタに、データをバス・スレーブの該当アドレス範囲に書込ませる作動を、設定する(１９)記載のバス・システム用信号伝送方法。
【００６１】
(２６)バス・マスタ、バス・スレーブ、及びラッチ手段をコンポーネントと総称することにし、各ラッチ手段に対してパケット転送方向へ上流側及び下流側に隣接するコンポーネントをそれぞれ第１及び第２のコンポーネントと呼び、かつ連続する１８個のクロック・サイクルを前から順番に、第１、第２、及び第３のクロック・サイクルと呼ぶことにすると、
各ラッチ手段の作動として、各ラッチ手段は、第２のクロック・サイクルにおいて第１のコンポーネントからパケットを受けるために、第１のクロック・サイクルにおいて第１のコンポーネントへアクノリッジ信号を出力させる作動を、設定する(１６)記載のバス・システム用信号伝送方法。
(２７)ラッチ手段には、第１及び第２のラッチを装備させ、
ラッチ手段の作動として、ラッチ手段は、第１のクロック・サイクルにおいて第１のコンポーネントへはアクノリッジ信号を出力しかつ第２のコンポーネントからはアクノリッジ信号を入力しなかったとき、第１のクロック・サイクルにおいて第２のコンポーネントへのパケットを第１のラッチにホールドし、第２のクロック・サイクルでは、第２のコンポーネントへ第１のラッチのパケットを再送するとともに、第１のコンポーネントからのパケットを第２のラッチにラッチする作動を設定する(２６)記載のバス・システム用信号伝送方法。
(２８)ラッチ手段の作動として、ラッチ手段は、第２のクロック・サイクルでは、第１のコンポーネントへのアクノリッジ信号の出力を中止し、もし第２のクロック・サイクルにおいて第２のコンポーネントからアクノリッジ信号を入力したならば、第３のクロック・サイクルでは、第１のラッチのパケットを第２のコンポーネントへ送出しつつ、第２のラッチのパケットを第１のラッチへラッチし、かつ第１のコンポーネントへアクノリッジ信号を出力する作動を、設定する(２７)記載のバス・システム用信号伝送方法。
(２９)アービタの作動として、アービタは、複数個の第１のコンポーネントの内の一つを優先コンポーネントと定め、いずれの第１のコンポーネントからもリクエスト信号を受付けていないクロック・サイクルでは、優先コンポーネントへアクノリッジ信号を発行するパーキング状態にされ、また、アービタ以外のラッチ手段も唯一の第１のコンポーネントについてのパーキング状態にされる作動を、設定する(２７)記載のバス・システム用信号伝送方法。
【００６２】
【発明の効果】
本発明によれば、バス・マスタとバス・スレーブとの間の距離が増大しても、バス・システムの動作周波数の減少を回避できるので、所定の動作周波数を確保しつつ、ＩＣチップ等のバス・システム装備体にバス・マスタ及びバス・スレーブを広く分布させて、配置させることができる。
【図面の簡単な説明】
【図１】従来の典型的なバス・システムの概念構成図である。
【図２】本発明を具現化したバス・システムの概念構成図である。
【図３】本発明を具現化したバス・システムにおける信号の並列伝送を示す図である。
【図４】本発明を具現化したバス・システムにおける信号の一時停止を示す図である。
【図５】全体的な伝送効率を考慮してバス・マスタとバス・スレーブとの間の距離を設定したバス・システムにおける構成図である。
【図６】各パイプライン素子が発行するパケットの種類及びその内容を示す図である。
【図７】別に各ラッチ手段の発行する信号を示す図である。
【図８】バス・システムにおけるパケットの流れを順番に示す説明図である。
【図９】バス・システムにおけるパケットの流れを図８に続けて順番に示す説明図である。
【図１０】図８及び図９のパケット転送モデルにおいて各ラッチ手段がラッチを上り方向及び下り方向共に１個しか装備していないときの各信号についての上り方向タイミングチャートである。
【図１１】図８及び図９のパケット転送モデルにおいて各ラッチ手段がラッチを上り方向及び下り方向共に１個しか装備していないときの各信号についての下り方向タイミングチャートである。
【図１２】各ラッチ手段がラッチを上り方向及び下り方向共に２個ずつ装備しているときの各信号についての上り方向タイミングチャートである。
【図１３】各ラッチ手段がラッチを上り方向及び下り方向共に２個ずつ装備しているときの各信号についての下り方向タイミングチャートである。
【図１４】図１２及び図１３に係るバス・システムにパーキング技術を適用した改良バス・システムにおける各信号についての上り方向タイミングチャートである。
【図１５】図１２及び図１３に係るバス・システムにパーキング技術を適用した改良バス・システムにおける各信号についての下り方向タイミングチャートである。
【図１６】パイプライン素子の動作に関わっている複数個の信号についてのタイミングチャートの例示である。
【図１７】上り方向のパケット転送の場合のバス・システムの各コンポーネントにおける信号入出力を示す図である。
【図１８】パイプライン素子のブロック図である。
【図１９】図１８のパイプライン素子の真理値表である。
【図２０】図１９の真理値表に基づくパイプライン素子の状態遷移図である。
【図２１】アービタのブロック図である。
【図２２】デコーダのブロック図である。
【符号の説明】
１９    バス・システム
２１ａ〜ｃ    バス・マスタ（コンポーネント）
２２ａ〜ｃ    バス・スレーブ（コンポーネント）
２３    パイプライン素子（ラッチ手段）
２４ａ，ｂ    アービタ（ラッチ手段、コンポーネント）
２５ａ，ｂ    デコーダ（ラッチ手段、コンポーネント）
２６ａ，ｂ    高速バス・マスタ（コンポーネント）
２７ａ〜ｆ    低速バス・マスタ（コンポーネント）
３０ａ，ｂ    高速バス・スレーブ（コンポーネント）
３１    低速バス・スレーブ（コンポーネント）
３２ａ〜ｆ    アービタ（ラッチ手段、コンポーネント）
３３ａ，ｂ    デコーダ（ラッチ手段、コンポーネント）
３４ａ，ｂ    バス・マスタ（コンポーネント）
３５ａ，ｂ    バス・スレーブ（コンポーネント）
３６ａ，ｂ    アービタ（ラッチ手段、コンポーネント）
３７    デコーダ（ラッチ手段、コンポーネント）
４３ａ，４３ｂ    バス・マスタ（コンポーネント）
４４ａ，４４ｂ    バス・スレーブ（コンポーネント）
４６    アービタ（ラッチ手段、コンポーネント）
４７    パイプライン素子（ラッチ手段）
４８    デコーダ（ラッチ手段、コンポーネント）
【図１】
0003659345.tif 000002
【図２】
0003659345.tif 000003
【図３】
0003659345.tif 000004
【図４】
0003659345.tif 000005
【図５】
0003659345.tif 000006
【図６】
0003659345.tif 000007
【図７】
0003659345.tif 000008
【図８】
0003659345.tif 000009
【図９】
0003659345.tif 000010
【図１０】
0003659345.tif 000011
【図１１】
0003659345.tif 000012
【図１２】
0003659345.tif 000013
【図１３】
0003659345.tif 000014
【図１４】
0003659345.tif 000015
【図１５】
0003659345.tif 000016
【図１６】
0003659345.tif 000017
【図１７】
0003659345.tif 000018
【図１８】
0003659345.tif 000019
【図１９】
0003659345.tif 000020
【図２０】
0003659345.tif 000021
【図２１】
0003659345.tif 000022
【図２２】
0003659345.tif 000023