JP3659345B2 - Bus system and signal transmission method - Google Patents

Bus system and signal transmission method Download PDF

Info

Publication number
JP3659345B2
JP3659345B2 JP2001348268A JP2001348268A JP3659345B2 JP 3659345 B2 JP3659345 B2 JP 3659345B2 JP 2001348268 A JP2001348268 A JP 2001348268A JP 2001348268 A JP2001348268 A JP 2001348268A JP 3659345 B2 JP3659345 B2 JP 3659345B2
Authority
JP
Japan
Prior art keywords
bus
component
master
slave
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001348268A
Other languages
Japanese (ja)
Other versions
JP2003150540A (en
Inventor
信之 原田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2001348268A priority Critical patent/JP3659345B2/en
Publication of JP2003150540A publication Critical patent/JP2003150540A/en
Application granted granted Critical
Publication of JP3659345B2 publication Critical patent/JP3659345B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、バス・マスタ及びバス・スレーブを含むバス・システム及びその信号伝送方法に関し、詳しくはバス・マスタ及びバス・スレーブの配置の自由度を高めたバス・システム及びその信号伝送方法に関するものである。
【0002】
【従来の技術】
図1は従来の典型的なバス・システムの概念構成図である。該バス・システムは1個のチップ上に製作されている。複数個のバス・マスタ11及び複数個のバス・スレーブ12は共通のバス・システム10へ接続されている。図1において各バス・マスタ11−バス・システム10間、及び各バス・スレーブ12−バス・システム10間の数値は、各バス・マスタ11−各バス・スレーブ12間の距離を計算するために、各バス・マスタ11及び各バス・スレーブ12から基準点までの距離を単位mmで示したものである。バス・システム10におけるバス・マスタ11−バス・スレーブ12間の信号伝送時間は、両者の間の信号伝送距離が長いほど、増大する。図1の例では、バス・マスタ11−基準点間の最大距離は2.0mmであり、また、バス・スレーブ12−基準点間の最大距離は7.3mmである。したがって、図1のバス・システムにおけるバス・マスタ11−バス・スレーブ12間の最大距離は9.3(=2.0+7.3)mmとなる。バス・システムのクロックの周期は、バス・システムにおけるバス・マスタとバス・スレーブとの間の信号伝送時間より短くできないので、図1のバス・システムでは、その動作周波数は、9.3mmにより決定される。このようなバス・システムにおいて、一定の動作周波数を確保するためには、距離の最大となるバス・マスタ11−バス・スレーブ12間の距離を詰める必要があるが、このような場合、バス・マスタ11及びバス・スレーブ12が中心部に集中することになり、特に、バス・システムを1個のIC上に製作する場合には、中心部の密度に限界がある。周辺のスペースにバス・マスタ11及びバス・スレーブ12を配置しても、バス・システムについて一定の動作周波数が確保できるのが好ましい。
【0003】
特開平8−335204号公報は、例えば2個のバス・マスタと1個のバス・スレーブとの間のデータ転送のために、並列な2個のバスが用意される。並列伝送の個数だけバスが用意されなければならないので、並列転送の個数だけ、バス数が増大する。
【0004】
特開平5−181817号公報は、複数個のコンポーネントがマトリックス配置され、同一行のコンポーネント同士、及び同一列のコンポーネント(バスへ接続されている素子)同士が、リング・バスを構成するバス・システムを開示する。各コンポーネントは、行方向のリング・バスと列方向のリング・バスとの2個のリング・バスに属することになり、各コンポーネントは、2個のリング・バスに対して入力及び出力を処理する必要があり、制御が複雑化する。
【0005】
特開平5−28104号公報では、バス・マスタ及びバス・スレーブは共通のリング・バスに接続され、リング・バスには、ラッチが、バス・マスタ及びバス・スレーブの1:1に対応して近接して配備されるのみで、該1:1の対応関係とは別個にラッチが設けられることはない。このバス・システムでは、リング・バスへ隣接的に接続されるバス・マスタ又はバス・スレーブの間隔が開けば、バス上で隣接隣同士のラッチの間隔も開き、動作周波数は、バス・マスタ及びバス・スレーブの間隔が開けば、それに伴い、低下することになる。
【0006】
【発明が解決しようとする課題】
本発明の目的は、一定の動作周波数を確保するために、バス・マスタとバス・スレーブとの間の距離を詰める必要を排除したバス・システム及びその信号伝送方法を提供することである。
本発明の目的は、バス・システム及びその信号伝送方法においてバス・マスタとバス・スレーブとの間の距離に対して実現可能な動作周波数を増大することである。
本発明の目的は、全体におけるデータ転送を効率化するバス・システム及びその信号伝送方法を提供することである。
本発明の目的は、バス・システム及びその信号伝送方法において並列的なデータ転送を可能にすることである。
本発明の目的は、キャッシュ付きバス・マスタを装備するバス・システム及びその信号伝送方法においてデータ・コヒーレンシィを確保することである。
【0007】
【課題を解決するための手段】
本発明のバス・システムは、バスに接続されている少なくとも1個のバス・マスタ、バス・マスタの個数と合わせた総数が3個以上となる個数で存在してバスに接続されている少なくとも1個のバス・スレーブ、及びバス・マスタとバス・スレーブとの間のバス経路に介在して該バス経路を複数の区画に分割しクロックに同期して伝送信号のラッチ及び出力を行うラッチ手段、を有している。そして、クロックの周期は、バス上の隣接する任意の第1及び第2の区画に対して、第1の区画における信号伝送時間より長くかつ第1及び第2の区画の合計の信号伝送時間より短く設定されている。
【0008】
バス・システムには、例えばツリー型、リング型、及びスター型のバス・システムが含まれる。バス・マスタ及びバス・スレーブは共に少なくとも1個は存在し、かつバス・マスタ及びバス・スレーブの個数の合計の最小値は3である。バス・システムにおけるバス・マスタ及びバス・スレーブの総個数の最小構成では、バス・マスタ及びバス・スレーブが、それぞれ1個及び2個である場合と、それぞれ2個及び1個である場合とがある。
【0009】
説明の便宜上、バス・マスタ、バス・スレーブ、及びラッチ手段をコンポーネントと総称することにする。バス上の隣接コンポーネント間の距離は、バス・システムにおいて均一化されていることが好ましいが、必ずしも均一でなくてもよい。ラッチ手段によりバス上の隣接コンポーネント間の最大距離が、バス・システムの動作周波数増大のために十分に詰まっていればよい。バス・システムにおけるバス・マスタ及びバス・スレーブは、十分に近接して配置できない事情がある。バス・マスタとバス・スレーブとの間をデータを1クロック・サイクルで伝送しなければならないバス・システムでは、バス・マスタ及びバス・スレーブを多数装備するバス・システムほど、バス・マスタとバス・スレーブとの間の距離の最大値が増大し、バス・システムに適用できる動作周波数は低下してしまう。本発明では、ラッチ手段がバス・マスタとバス・スレーブとの間に適宜、介在することにより、バス・マスタとバス・スレーブとの間の最大距離の増大にもかかわらず、1クロック・サイクル当たりのデータ転送距離の増大は回避される。したがって、バス・システムの一定の動作周波数を確保するために、バス・マスタ及びバス・スレーブをICチップ等のバス・システム装備装置の中心部に集中配置する設計上の制約を排除できる。あるいは、バス・システムにおけるバス・マスタとバス・スレーブとの間の距離の最大値に対するバス・システムの動作周波数を高めることができる。
【0010】
本発明のバス・システムには、以下に記載する具体的態様を任意の組み合わせで適宜、付加可能となっている。
・バス上の各区画の長さがほぼ均等に設定されている。バスの動作周波数は最大長さの区画により決まるので、バス上の各区画の長さを均等化することにより、ラッチ手段の分布が改善され、所定動作周波数を得るためのラッチ手段の個数を低減できる。
・バスは、各バス・マスタ及び各バス・スレーブから見てツリー構造となっている。好ましくは、データの読出し及び書込みの高速性の要求度の高い特定のバス・マスタとバス・スレーブとの間のバス経路長は、要求度の低い他のバス・マスタとバス・スレーブとの間のバス経路長未満に設定されるとともに、該特定のバス・マスタとバス・スレーブとの間におけるラッチ手段の介在個数は、該他のバス・マスタとバス・スレーブとの間の介在個数未満に設定されている。バス・マスタとバス・スレーブとの間の信号伝送に要するクロック・サイクル数は、バス・マスタとバス・スレーブとの間のラッチ手段の介在個数の増大に伴い、増大する。速やかな伝送の必要とされるバス・マスタ及びバス・スレーブについて、それらの間におけるラッチ手段の介在個数を少なくすることにより、その信号伝送に要するクロック・サイクル数が低減し、有利である。
【0011】
・バス・システムは少なくとも2個のバス・マスタを有し、少なくとも1個のラッチ手段は、バス・マスタからバス・スレーブへの信号伝送に対するアービタである。又は、バス・システムは少なくとも2個のバス・スレーブを有し、少なくとも1個のラッチ手段は、バス・マスタからバス・スレーブへの信号伝送に対するデコーダである。前述したように、バス・システムは、バス・マスタからバス・スレーブへの信号伝送は必須であるが、リードを必要としないバス・システムでは、バス・スレーブからバス・マスタへの信号伝送は不要となることがある。バス・スレーブからバス・マスタへの信号伝送を行うバス・システムでは、バス・マスタからバス・スレーブへの信号伝送用のアービタ及びデコーダとしてのラッチ手段は、それぞれバス・スレーブからバス・マスタへの信号伝送に対するデコーダ及びアービタとなる。バス・マスタは第1のバス・マスタとキャッシュを装備する第2のバス・マスタとを含み、アービタは、バス・スレーブの特定のアドレス範囲に対するリード・リクエストを第1のバス・マスタから受け付けたとき、第2のバス・マスタへ、該第2のバス・マスタが自分のキャッシュにバス・スレーブの特定のアドレス範囲に係るデータを保持しているか否かを問い合わせ、第2のバス・マスタがデータを保持している場合は、第2のバス・マスタに、データをバス・スレーブの該当アドレス範囲に書込ませる。
【0012】
・バス・マスタとバス・スレーブとの間のデータ転送はパケット方式である。1個のパケットのサイズは、1クロック・サイクルで伝送可能なサイズより大きくてもよい。1個のパケットのサイズが、1クロック・サイクルで伝送可能なサイズより大きいときは、1個のパケットは、複数個のブロックに分割されて、伝送される。パケットのヘッダ情報部分は、好ましくは、1クロック・サイクルで伝送されるが、これに限定されず、複数個のクロック・サイクルで伝送されたり、パケットのデータ範囲の先頭部分と一緒に1クロック・サイクルで伝送されたりしてもよい。本バス・システムでは、複数個のパケットが、バスの区画を重複しないことを条件に、同時に存在可能となる。また、送信元の異なる複数個のパケット、送信先の異なる複数個のパケットが、バス・システム上に存在可能になる。典型的には、パケット方式のデータ転送はコネクションレスである。
【0013】
・バス・マスタ、バス・スレーブ、及びラッチ手段をコンポーネントと総称することにし、各ラッチ手段に対してパケット転送方向へ上流側及び下流側に隣接するコンポーネントをそれぞれ第1及び第2のコンポーネントと呼び、かつ連続する3個のクロック・サイクルを前から順番に、第1、第2、及び第3のクロック・サイクルと呼ぶことにすると、各ラッチ手段は、第2のクロック・サイクルにおいて第1のコンポーネントからパケットを受けるために、第1のクロック・サイクルにおいて第1のコンポーネントへアクノリッジ信号を出力する。ラッチ手段は、第1及び第2のラッチを有し、第1のクロック・サイクルにおいて第1のコンポーネントへはアクノリッジ信号を出力しかつ第2のコンポーネントからはアクノリッジ信号を入力しなかったとき、第1のクロック・サイクルにおいて第2のコンポーネントへのパケットを第1のラッチにホールドし、第2のクロック・サイクルでは、第2のコンポーネントへ第1のラッチのパケットを再送するとともに、第1のコンポーネントからのパケットを第2のラッチにラッチする。ラッチ手段は、第2のクロック・サイクルでは、第1のコンポーネントへのアクノリッジ信号の出力を中止し、もし第2のクロック・サイクルにおいて第2のコンポーネントからアクノリッジ信号を入力したならば、第3のクロック・サイクルでは、第1のラッチのパケットを第2のコンポーネントへ送出しつつ、第2のラッチのパケットを第1のラッチへラッチし、かつ第1のコンポーネントへアクノリッジ信号を出力する。アービタは、複数個の第1のコンポーネントの内の一つを優先コンポーネントと定め、いずれの第1のコンポーネントからもリクエスト信号を受付けていないクロック・サイクルでは、優先コンポーネントへアクノリッジ信号を発行するパーキング状態とされ、また、アービタ以外のラッチ手段も唯一の第1のコンポーネントについてのパーキング状態にされている。
【0014】
本発明のバス・システム用信号伝送方法の適用されるバス・システムでは、バスを介して接続されるバス・マスタ及びバス・スレーブをそれぞれ少なくとも1個、かつ両者の総数が18以上となっている。該バス・システム用信号伝送方法において、少なくとも1個のラッチ手段をバス・マスタとバス・スレーブとの間のバス経路に介在させて、該バス経路を複数の区画に分割し、クロックに同期して伝送信号をラッチ手段においてラッチ及び出力させ、クロックの周期を、バス上の隣接する任意の第1及び第2の区画に対して、第1の区画における信号伝送時間より長くかつ第1及び第2の区画の合計の信号伝送時間より短く設定する。
【0015】
本発明のバス・システム用信号伝送方法は以下の種々の具体的態様を任意の組み合わせで適宜、付加することができる。バス上の各区画の長さをほぼ均等に設定する。バスを、各バス・マスタ及び各バス・スレーブから見てツリー構造とする。バス・マスタの個数を少なくとも2個とし、少なくとも1個のラッチ手段を、バス・マスタからバス・スレーブへの信号伝送に対するアービタとする。バス・スレーブの個数を少なくとも2個とし、少なくとも1個のラッチ手段を、バス・マスタからバス・スレーブへの信号伝送に対するデコーダとする。アービタ及びデコーダとしてのラッチ手段を、それぞれバス・スレーブからバス・マスタへの信号伝送に対するデコーダ及びアービタとする。
【0016】
ツリー型のバス・システムの信号伝送方法では、データの読出し及び書込みの高速性の要求度の高い特定のバス・マスタとバス・スレーブとの間のバス経路長を、要求度の低い他のバス・マスタとバス・スレーブとの間のバス経路長未満に設定するとともに、該特定のバス・マスタとバス・スレーブとの間におけるラッチ手段の介在個数を、該他のバス・マスタとバス・スレーブとの間の介在個数未満に設定する。
【0017】
【発明の実施の形態】
以下、発明の実施の形態について図面を参照して説明する。
図2は本発明を具現化したバス・システム19の概念構成図である。バス・システム19は、1個のICチップ上に製作され、例えばプリンタ・コントーラに組み込まれて膨大なイメージデータを処理する。バス・システム19は、複数個のバス・マスタ21、及び複数個のバス・スレーブ22を有している。バス・マスタ21は例えばCPUやDMA(Direct Memory Access)であり、バス・スレーブ22は例えばメモリである。バス・マスタ21−バス・スレーブ22間は、パイプライン素子23、アービタ24、及びデコーダ25を介して相互に接続されている。説明の便宜上、バス・マスタ21からバス・スレーブ22の方への信号伝送方向を上り方向、その逆を下り方向と適宜、呼ぶことにする。また、パイプライン素子23、アービタ24、及びデコーダ25を適宜、ラッチ手段と総称することにし、ラッチ手段、バス・マスタ21、及びバス・スレーブ22を適宜、コンポーネントと総称することにする。ラッチ手段は、上り方向及び下り方向用にそれぞれ少なくとも1個のラッチを備えている。バスは複数個のバス部分20から成り、各バス部分20は信号伝送方向へ隣接関係のコンポーネント同士を相互に接続している。このバスはパイプライン方式であり、各コンポーネントはそれぞれ1又は複数の信号ポートを備え、或るコンポーネントに他のコンポーネントが接続されるとき、両コンポーネントは、信号ポート同士を1:1に接続される。図2では、バス上の隣接コンポーネント間の矢印の向きは上り方向で示されており、各バス・マスタ21から各バス・スレーブ22への信号は、パイプライン素子23、アービタ24、及び/又はデコーダ25を経由する。バス・マスタ21は例えばCPUやDMA(ダイレクト・メモリ・アクセス)制御器であり、バス・スレーブ22は例えばビデオ・コントローラ等の各種インターフェースである。バスは複数個のバス部分20から構成され、各バス部分20は、バス上で隣接同士のコンポーネントを相互に接続する。このバスは、ツリー型、パイプライン型、パケット転送型、コネクションレス型、及びパイプライン型の特徴を持つ。バス・マスタ21及びバス・スレーブ22はバスの端末に接続され、各バス・マスタ21及び各バス・スレーブ22からバスの方を見ると、バスはツリー状に広がっている。
【0018】
データはパケット化されて伝送され、1個のパケットは1又は複数個のクロック・サイクルにわたって各コンポーネントから送出される。1クロック・サイクルに対応する長さのパケット・ブロックが各ラッチ手段のラッチにラッチされる。アービタ24は、パケット転送方向に関して調停機能を備え、前段に接続された複数個のコンポーネントの中から1個を選択して、次段のコンポーネントに接続し、パケット転送方向へパケットを転送する。デコーダ25は、パケット転送方向へ分岐機能を備え、前段の1個のコンポーネントを次段の複数個のコンポーネントの中から選択した1個のコンポーネントへ接続し、パケット転送方向へパケットを転送する。パイプライン素子23は、或るクロック・サイクルで入力した信号をラッチし、次のクロック・サイクル以降において、パケット転送方向の次段のコンポーネントへ送る役目を持つ。パス上の隣接コンポーネントを結ぶバス部分20について示されている数値”0.9”は、バス部分20により相互に結ばれるコンポーネント間の距離を単位mmで示したものである。バス・システム19において隣接関係にあるコンポーネント間の距離dは、すべて等しい値、例えば0.9mmとなるように、設計されている。パイプライン素子23、アービタ24、及びデコーダ25がラッチを装備しかつ隣接関係のコンポーネント同士がパイプラインにより相互に接続されている結果、信号は、1クロック・サイクル当たりに隣接コンポーネント間を伝送すれば足りることになる。そして、バス・システム19では、隣接関係のコンポーネント間の距離は、十分に短縮されているので、バス・システム19の動作周波数を大幅に増大できる。ICチップ上のスペースに余裕のある限り、パイプライン素子23の介在個数を増大して、バス・システム19の動作周波数の一層の上昇を図ることもできる。
【0019】
このバス・システム19では、バス・マスタ21−バス・スレーブ22間の距離が長くても、そのバス・マスタ21−バス・スレーブ22間のパイプライン素子23の介在数個数を増大すれば、バス・スレーブ22の動作周波数の減少の必要性を排除できる。これにより、一定の動作周波数の確保のために、バス・マスタ21及びバス・スレーブ22を相互の距離を詰めて、ICチップの中心部に集中配置する制約を排除して、それらをスペースの十分に余裕のある周辺部に配置することが可能となる。
【0020】
図2は、バス・システム19について上り方向のパケットの流れでアービタ24及びデコーダ25を示しているが、下り方向ではアービタ24及びデコーダ25の機能が逆転する。すなわち、下り方向では、アービタ24はデコーダとなり、デコーダ25はアービタとなる。例えば、バス・システム19がバス・マスタからバス・スレーブへのアクノリッジ信号不要のライト命令だけから成るバス・システムである場合には、該バス・システムにおけるパケットの流れ方向は、バス・マスタからバス・スレーブへの一方向のみとなるので、アービタ24及びデコーダ25はそれぞれ下り方向のパケットに対するデコーダ及びアービタの機能は不要となる。典型的なバス・システムではバス・マスタがリード・リクエストを発行し、読み出しデータが下り方向のパケットとして伝送されるので、各アービタ24及び各デコーダ25は下り方向のパケット転送に対処するためデコーダ及びアービタの機能も装備する。
【0021】
図3及び図4は本発明を具現化したバス・システムにおける信号の並列伝送及び一時停止を示している。バス・マスタ21a,21bは、アービタ24a及びデコーダ25aを介してバス・スレーブ22aへ接続されている。バス・マスタ21a,21bは、また、アービタ24a、デコーダ25a、アービタ24b、及びデコーダ25bを介してバス・スレーブ22b,22cへ接続されている。バス・マスタ21cは、アービタ24b及びデコーダ25bを介してバス・スレーブ22b,22cへ接続されている。バス部分20は、全体でバスを構成するとともに、バス上で隣接同士のコンポーネントを相互に接続する。図3における各バス部分20の向きは、図2の場合と同様に、上り方向で示されている。図3のアービタ及びデコーダも、図2のアービタ及びデコーダと同様に、下り方向のパケット転送に対処するために、それぞれデコーダ及びアービタの機能を装備している。
【0022】
図3において、f1はバス・マスタ21bからバス・スレーブ22aへの信号の流れを、また、f2はバス・マスタ21cからバス・スレーブ22cへの信号の流れを示している。本発明のバス・システムでは、経路が重複しない限り、バス・マスタとバス・スレーブとの間の複数の通信が確立できる。なお、図3の例では、f1,f2の向きは、共に、バス・マスタからバス・スレーブの向きとなっているが、一方又は両方がバス・スレーブからバス・マスタの向きであってもよい。
【0023】
図4の示す状態では、アービタ24bがバス・マスタ21cからバス・スレーブ22cへ向かう信号流れを優先し、バス・マスタ21bからバス・スレーブ22b又は22cへ向かう信号流れはアービタ24bの前段のデコーダ25aにおいて進行を一時停止されている。信号は、クロック・サイクルに同期して、1クロック・サイクルごとに1個のバス部分20ずつ進行するようになっている。また、バス・システムにおける信号送受はコネクションレス型であるので、バス・マスタとバス・スレーブとの間に通信が確立されていなくても、信号の進行が可能になっている。f3の先端は、進行が可能なアービタの手前まで進行し、すなわち送信先に十分に接近した位置で一時停止することができるので、送信元への到達時間が短縮される。
【0024】
図5は全体的な伝送効率を考慮してバス・マスタとバス・スレーブとの間の距離を設定したバス・システムにおける構成図である。図5においてバス・マスタとバス・スレーブとの間の図面上の距離は、ICチップ等の実際の製品におけるバス・マスタとバス・スレーブとの間の距離を反映したものである。○はバス・マスタ、□はバス・スレーブ、△は上り方向用のアービタ、▼は上り方向用のデコーダをそれぞれ表している。P1,P2はそれぞれリクエスト・パケット及びアクノリッジ・パケットの方向を示している。バス・マスタは、高速バス・マスタ26a,26bと、低速バス・マスタ27a〜27dとに分類される。バス・スレーブは、高速バス・スレーブ30a,30bと低速バス・スレーブ31とに分類される。高速バス・マスタ26a,26bは低速バス・マスタ27a〜27dよりも高速な通信を要求されるバス・マスタである。また、高速バス・スレーブ30a,30bは低速バス・スレーブ31よりも高速な通信を要求されるバス・スレーブである。各バス・マスタは、通信相手のバス・スレーブが決まっており、アービタ32a〜32f及びデコーダ33a,33bは、通信可能性のある全部のバス・マスタとバス・スレーブとの間の通信が保証されるように、バス・マスタとバス・スレーブとの間を接続している。例えば、高速バス・マスタ26bは全部のバス・スレーブ30a,30b,31と通信可能性があるのに対し、高速バス・マスタ26aは高速バス・スレーブ30aとのみ通信するだけであり、低速バス・マスタ27e,27fは低速バス・スレーブ31とのみ通信可能性がある。図5では、デコーダ33a−アービタ32f間の距離が、他のコンポーネント間の距離より比較的長くなっているので、デコーダ33a−アービタ32f間に所定個数のパイプラインを適宜、介在させ、バス上の隣接コンポーネント同士の距離を均一化するのが好ましい。このバス・システムにおいて、高速バス・マスタ26a−高速バス・スレーブ30a間の通信は、低速バス・マスタ27b〜d−低速バス・スレーブ31間の通信よりも高速性が要求されるので、チップ上における高速バス・マスタ26aと高速バス・スレーブ30aとの相互距離は、低速バス・マスタ27b〜dと低速バス・スレーブ31との相互距離よりも短くされるとともに、高速バス・マスタ26a−高速バス・スレーブ30a間のラッチ手段の介在個数は低速バス・マスタ27b〜d−低速バス・スレーブ31間のラッチ手段の介在個数より小さくされている。また、アービタ32a〜32fは、バス・マスタとバス・スレーブとの間の通信の高速性が要求される通信を優先する調停を行うようになっている。
【0025】
図6は各パイプライン素子が発行するパケットの種類及びその内容を示している。
(a)Write Request Packet Data(WRPD):バス・マスタがバス・スレーブにデータの書込みを要求するパケット。
(b)Read Request Packet Data(RRPD):バス・マスタがバス・スレーブにデータのリードを要求するパケット。
(c)Write Ack Packet Data(WAPD):バス・スレーブがWRPDに対してバス・マスタへ発行するアクノリッジ・パケット。
(d)Read Ack Packet Data(RAPD);バス・スレーブがRRPDに対してバス・マスタへ発行するアクノリッジ・パケット。
(e)Coherency Request Packet(CRP):アービタがキャッシャ付きバス・マスタへデータのコヒーレンシィを問い合わせるパケット。
(f)Coherency Ack Packet(CAP):キャッシュ付きバス・マスタがCRPに対してアービタへ発行するアクノリッジ・パケット。
【0026】
WRPDの持つ情報は次のとおりである。
Master ID:該WRPDを発行したバス・マスタのID。
Address:該WRPDの送り先のバス・スレーブにおけるライトアドレス範囲の先頭アドレス。
Size:ライトアドレス範囲のサイズ。
Data(Size):データ・ブロック(パケット中の該データ・ブロックの番号)。
【0027】
RRPDの持つ情報は次のとおりである。
Master ID:該RRPDを発行したバス・マスタのID。
Address:該RRPDの送り先のバス・スレーブにおけるリード・アドレス範囲の先頭アドレス。
Size:リード・アドレス範囲のサイズ。
Type:タイプ(詳細は後述する。)。
【0028】
WAPDは次の情報を含む。
Master ID:ライト・リクエストに対するアクノリッジの宛て先のバス・マスタのID。
Address:バス・スレーブにおけるライトアドレス範囲の先頭アドレス。
Status:ライト・リクエストに対するエラーとかビジー等のバス・スレーブの状態。
【0029】
RAPDは次の情報を含む。
Master ID:リード・リクエストに対するアクノリッジの宛て先のバス・マスタのID。
Address:バス・スレーブにおけるリード・アドレス範囲の先頭アドレス。
Size:リード・アドレス範囲のサイズ。
Data(Size):データ・ブロック(パケット中の該データ・ブロックの番号)。
Status:リード・リクエストに対するエラーとかビジー等のバス・スレーブの状態。
【0030】
CRPは次の情報を含む。
Address:コヒーレンシィについての対象アドレス範囲の先頭アドレス。
Size:コヒーレンシィについての対象アドレス範囲のサイズ。
【0031】
CAPは次の情報を含む。
Address:コヒーレンシィについての対象アドレス範囲の先頭アドレス。
Status:コヒーレンシィリクエストに対するエラーとかビジー等のバス・マスタの状態。
【0032】
前述のタイプ(Type)には次のものがある。なお、w/oは無し(without)、w/は有り(with)を意味する。
Write w/o Ack:アクノリッジ無しの書込み。
Write w/ Ack:アクノリッジ有りの書込み。
Read w/o Ack:アクノリッジ無しの書込み。
Read w/ Ack:アクノリッジ有りの書込み。
Coherency Req w/o Ack:アクノリッジ無しのコヒーレンシィリクエスト。
Coherency Req w/ Ack;アクノリッジ有りのコヒーレンシィリクエスト。
【0033】
図7はパケットとは別に各ラッチ手段の発行する信号を示している。なお、説明の便宜上、ラッチ手段がパケット転送方向の発行元側及び発行先側にそれぞれ隣接するコンポーネントをそれぞれシンボルCu,Cdで表すものとする。また、すでに定義しているように、コンポーネントとは、ラッチ手段だけでなく、バス・マスタ及びバス・スレーブを含む概念として使用している。マスタ信号(Master Signals)とは、各ラッチ手段がそのコンポーネントCdと送受する信号の総称である。スレーブ信号(Slave Signals)とは、各ラッチ手段がそのコンポーネントCuと送受する信号の総称である。アービタ信号(Arbiter Signals)とは、ラッチ手段の内のアービタのみがコンポーネントCu,Cdと送受する信号である。デコーダ信号(Decoder Signals)は、ラッチ手段の内のデコーダのみがコンポーネントCu,Cdと送受する信号である。図7において、信号名の先頭のMst,Slvはそれぞれデータ・パケット転送方向及びその逆方向へ流れる信号を意味する。信号名の中間のReq,Ack,ID,AD,Size,Type,MIDはそれぞれリクエスト、アクノリッジ、マスタID、アドレス&データ・バスサイズ、タイプ、及びマスタIDを意味する。なお、ID及びMID共に、マスタIDを意味することになっているが、Mst_IDの意味するマスタIDとは、データ転送方向へ隣接する上流側及び下流側のコンポーネント間において、上流側コンポーネントが自分のIDとして出力するIDであるのに対し、Slv_IDの意味するマスタIDとは、データ転送方向へ隣接する上流側及び下流側のコンポーネント間において、下流側コンポーネントがパケットの転送先のバス・マスタのIDを指し示すものである。信号名における(O),(I)の付記は、その信号がそれぞれラッチ手段の出力及び入力に係る信号であることを表す。マスタ信号(Master Signals)には、Mst_Req(O),Slv_Ack(I),Mst_ID(O),Mst_AD(O),Mst_Size(O),Mst_Type(O)Slv_Req(I),Mst_Ack(O),Slv_Size(I),Slv_AD(I),Slv_Status(I),Slv_ID(I)がある。スレーブ信号(Slave Signals)には、Mst_Req(I),Slv_Ack(O),Mst_ID(I),Mst_AD(I),Mst_Size(I),Mst_Type(I)Slv_Req(O),Mst_Ack(I),Slv_Size(O),Slv_AD(O),Slv_Status(O),Slv_ID(O)がある。
【0034】
ここで、NをアービタにおけるコンポーネントCuの総数(Master Connection)、又はデコーダにおけるコンポーネントCdの総数(Slave Connection)とする。各アービタでは、1個のコンポーネントCu当たりラッチ手段のスレーブ信号(Slave Signals)の個数だけ送受が必要となるとともに、1個のコンポーネントCd当たりラッチ手段のマスタ信号(Master Signals)の個数だけ送受が必要となる。したがって、各アービタでは、上流側の信号ポートの個数はスレーブ信号(Slave Signals)の総数xNとなり、下流側の信号ポートの個数はマスタ信号(Master Signals)の総数xNとなる。各デコーダでは、1個のコンポーネントCu当たりラッチ手段のマスタ信号(Master Signalsの個数だけ送受が必要となるとともに、1個のコンポーネントCd当たりラッチ手段のスレーブ信号(Slave Signals)の個数だけ送受が必要となる。したがって、各デコーダでは、上流側の信号ポートの個数はマスタ信号(Master Signals)の総数xNとなり、下流側の信号ポートの個数はスレーブ信号(Slave Signals)の総数xNとなる。
【0035】
図8及び図9はバス・システムにおけるパケットの流れを順番に示す説明図である。パケットの流れの過程は、図8の(a)→(b)→(c)→図9の(a)→(b)→(c)となる。バス・システムについての図8及び図9の例では、バス・マスタ34a,34bは、アービタ36a,36b、及びデコーダ37を経てバス・スレーブ35a,35bへ接続されている。バス部分40は、その全体でバスを構成するとともに、バス上で隣接関係のコンポーネント同士を相互に接続している。各ステップを順番に説明する。なお、図8及び図9において説明する通信要求は一例である。
【0036】
図8(a):バス・マスタ34a,34bが同時にアービタ36aへライト・リクエストR0及びリードR1を出す。この例では、R0,R1は、リクエストてあるとともに、パケット・ヘッダともなっている。
図8(b):アービタ36aはR0をR1よりも優先し、また、アービタ36bはアービタ36a以外からのリクエストは受け付けていない。これにより、バス・マスタ34からの計4個のパケット・ブロックR0,D0−1,D0−2,D0−3がアービタ36a,36b、及びデコーダ37を経てクロック・サイクルに同期してバス・スレーブ35aへ発送される。先頭のパケット・ブロックR0がバス・スレーブ35aに到着した状態では、各R0,D0−1,D0−2,D0−3はそれぞれバス・スレーブ35a−デコーダ37間、デコーダ37−アービタ36b間、アービタ36b−アービタ36a間、アービタ36a−バス・マスタ34a間に存在する。
図8(c):アービタ36aは、バス・マスタ34aからの最後尾のパケット・ブロックD0−3をアービタ36bへ送信しだい、バス・マスタ34bからのリード・リクエストR1をバス・スレーブ35aの方へ発送する。これにより、パケット・ブロックR1は、D0−3の後に続いて、バス・スレーブ35cへ進む。
【0037】
図9(a):この例のライト・リクエストはアクノリッジ不要のものであるので、バス・スレーブ35aは、D3を受け付けると、アクノリッジ信号をバス・マスタ34aへ向かって発行することなく、バス・マスタ34bからのリクエストR1を受け付ける。
図9(b),(c):バス・スレーブ35aは、バス・マスタ34bからのリード・リクエストのパケットR1に対するアクノリッジ・パケットの各パケット・ブロックR,D1−1,D1−2,D1−3,D1−4をクロック・サイクルごとに順番に発行する。なお、この例では、Rは、アクノリッジ信号であるとともに、パケット・ヘッダである。アクノリッジ・パケットは、リクエスト・パケットとは経路を逆方向へバス・マスタ34bへ向かう。アクノリッジ・パケットに対しては、デコーダ37bはアービタ、アービタ36bはデコーダ、アービタ36aはデコーダの機能をそれぞれ果たす。
【0038】
本発明の適用されるバス・システムはデータのコヒーレンシィが配慮される。すなわち、バス・マスタの中にはキャッシュを装備するものがあり、或るバス・マスタが、それの装備するキャッシュの内容を変更しているにもかかわらず、対応のバス・スレーブにおけるデータの更新が済まされていないときがある。これに対処するために、各アービタは、それへデータのリード及びライトをリクエストして来るバス・マスタの中でキャッシャ装備のバス・マスタを全部、把握する。そして、或るバス・マスタMaから所定のバス・スレーブSaにおける所定アドレス範囲AW1のデータのリードをリクエストしてきたときは、他のキャッシャ装備のバス・マスタへそのキャッシュにおいて該アドレス範囲AW1と重複アドレス範囲のデータを書き換えていないかを問い合わせる。問い合わせ先のバス・マスタは、問い合わせ元のアービタへ回答し、回答がNoであれば、アービタは、データのリードをリクエストして来たバス・マスタからのリード・リクエストを、待機させることなく、速やかにバス・スレーブ側のコンポーネントへ送る。回答がYes、すなわち該アドレス範囲AW1と重複アドレス範囲の書き換えがあれば、問い合わせ先のバス・マスタは、そのキャッシュにおける更新データに基づいてバス・スレーブSaの更新必要アドレス範囲を更新するために、ライト・リクエストを発行する。バス・マスタは、キャッシャ内容更新に基づくライト・リクエストによる書込みパケットを送出し終わってから、バス・マスタMaからの待機中のリード・リクエストをバス・スレーブSaの方へ送出する。
【0039】
図10及び図11は図8及び図9のパケット転送モデルにおいて各ラッチ手段がラッチを上り方向及び下り方向共に1個しか装備していないときの各信号についてのそれぞれ上り方向及び下り方向タイミングチャートである。ラッチ手段は、上り方向及び下り方向に専用にそれぞれ1個のラッチを装備する。図11は下り方向のタイミングチャートであるが、上り方向のタイミングとの関係を明確にするために、図11の上段には、デコーダ37からバス・スレーブ35aへの上り方向のタイミングチャートも示されている。このバス・システムでは、各コンポーネントの発行するアクノリッジは、パケットの受け入れ可を意味する。図7の説明のときと同様に、各ラッチ手段に対して、それがパケット転送方向上流側及び下流側にそれぞれ隣接するコンポーネントをそれぞれシンボルCu,Cdで表すものとする。ラッチ手段(前述したように、ラッチ手段とは、パイプライン素子、アービタ、及びデコーダの総称である。)は、1個のラッチしか持たないので、或るクロック・サイクルにおいて、コンポーネントCdからアクノリッジ信号を受け取らないと、次のクロック・サイクルでは、ラッチのデータをコンポーネントCdへ引き渡すことができず、したがって、ラッチ・データを次のクロック・サイクルのためにホールドする必要上、次のクロック・サイクルでは、コンポーネントCuからのデータをラッチにラッチすることができない。したがって、各ラッチ手段は、コンポーネントCuからパケットを自分のラッチにホールドするために、コンポーネントCdからアクノリッジ信号を受け取った後、コンポーネントCuへアクノリッジ信号を発行しなければならない。図10及び図11において同一列は同一クロック・サイクルを示している。
【0040】
説明の便宜上、図10において、バス・マスタ34aがリクエストR0をアービタ36aへ初めて出力するクロック・サイクルをT1で表し、以下、各クロック・サイクルをT1から順番にT2,T3,・・・と表すことにする。図10において、バス・マスタ34a,34bは、クロック・サイクルT1において最初のリクエスト信号としてのリクエストR0,R1をアービタ36aへ出力する。バス・マスタ34aは、リクエスト信号R0と共に、書込み先のバス・スレーブにおける先頭アドレスを指示するパケット・ブロックa0、ライト(write)対象のアドレス範囲を所定単位に換算したサイズ(Size)の信号3、ライト・リクエストがアクノリッジ不要であることを意味するタイプWn、及び自分のIDを示す信号M0を、アービタ36aへ出力している。同様に、バス・マスタ34bは、リクエスト信号R1と共に、読出し先のバス・スレーブにおける先頭アドレスを指示するパケット・ブロックa0、リード対象のアドレス範囲を所定単位に換算したサイズ4、リード・リクエストがアクノリッジを必要とすることを意味するタイプRa、及び自分のIDを示すM1を、アービタ36aへ出力している。
【0041】
アービタ36aは、バス・マスタ34aのライト・リクエストをバス・マスタ34bのリード・リクエストよりも優先し、クロック・サイクルT2において、バス・マスタ34aへアクノリッジ信号Aを発行する。これに対して、バス・マスタ34aは、クロック・サイクルT3では、先頭アドレス情報a0に代えて、データのパケット・ブロックd0をアービタ36aへ送る。図10では、データの全部のパケット・ブロックは同一のシンボルd0で表示されているが、計6個のd0の内、1番目及び2番目のd0はデータ・パケット・ブロック(1)、3番目及び4番目のd0はデータ・パケット・ブロック(2)、5番目及び6番目のd0はデータ・パケット・ブロック(3)となっている。各ラッチ手段は、上り方向及び下り方向共にラッチを1個しか装備しないので、コンポーネントCdからアクノリッジ信号を受けたクロック・サイクルに対して、該クロック・サイクルでは、コンポーネントCuへアクノリッジ信号を発行できず、コンポーネントCuへアクノリッジ信号を発行できるのは次のクロック・サイクルとなる。こうして、エラー等の支障のない限り、アクノリッジが1クロック・サイクル置きに発生するバス・マスタ34a−アービタ36b間の送受信号パターンが、1クロック・サイクルずつ遅れながら、下流段のコンポーネントへ伝播していく。
【0042】
アービタ36aは、クロック・サイクルT9においてアービタ36bからアクノリッジ信号を受け取ると、クロック・サイクル10では、バス・マスタ34bへアクノリッジ信号へ発行する。バス・マスタ34bは、クロック・サイクルT10におけるアービタ36aからのアクノリッジ信号により、クロック・サイクルT9におけるアービタ36aへの伝送信号がアービタ36aに受け入れられたことを検知する。エラー等の支障のない限り、バス・マスタ34b−アービタ36a間の送受信号パターンが、1クロック・サイクルずつ遅れながら、下流段のコンポーネント間へ伝播していく。バス・スレーブ35aがR1に対してデコーダ37へアクノリッジを発行するのはクロック・サイクルT12となる。
【0043】
図11において、バス・スレーブ35aは、デコーダ37からリード・リクエストR1を受け取ると、関連のメモリへの所定のアクセスタイムを経てデコーダ37へリクエスト(Slv_Req)Rを送る。説明の便宜上、図11において、バス・スレーブ35aが初めてデコーダ37へRを発行したクロック・サイクルをT1とし、以下、T1以降の各クロック・サイクルについて順番にT2,T3,・・・と表すことにする。バス・スレーブ35aは、クロック・サイクルT1において、Rと共に、リード・アドレス範囲の先頭アドレスを表すa1、リード対象のアドレス範囲を所定単位に換算したサイズの信号4、タイプがリード・リクエストに対するリクエスト・パケットであることを表すaR、どのバス・マスタに対するアクノリッジ・パケットであるかを表すM1を出力する。下り方向では、デコーダ37はアービタとして機能し、アービタ36b,aはデコーダとして機能する。各ラッチ手段は、上り方向のときの信号伝送の場合と同様に、アクノリッジを受けたコンポーネントCd(注:上り方向のときのコンポーネントCd,Cuは下り方向ではそれぞれコンポーネントCu,Cdとなる。)に対して、そのアクノリッジを受けたクロック・サイクルの次のクロック・サイクルでは、ラッチのデータを出力するとともに、コンポーネントCuへはアクノリッジ信号を発行する。こうして、エラー等の支障のない限り、バス・スレーブ35a−デコーダ37間の送受信号パターンが、1クロック・サイクルずつ遅れながら、下流段のコンポーネント間へ伝播していく。なお、図11では、デコーダ37−アービタ36b間、及びアービタ36b−アービタ36a間において、Slv_AD、Slv_Size、Slv_Typeの記載は図示の簡便化のために省略している。バス・マスタ34bが最後のパケット・ブロックの入力に対するアクノリッジをアービタ36aへ出力するのはクロック・サイクルT12となる。
【0044】
図12及び図13は各ラッチ手段がラッチを上り方向及び下り方向共に2個ずつ装備しているときの各信号についてのそれぞれ上り方向及び下り方向タイミングチャートである。ラッチ手段は、上り方向及び下り方向に専用にそれぞれ2個のラッチを装備する。図13は下り方向のタイミングチャートであるが、上り方向のタイミングとの関係を明確にするために、図12の上段には、デコーダ37からバス・スレーブ35aへの上り方向のタイミングチャートも示されている。図10及び図11との相違点についてのみ説明する。なお、説明の便宜上、図12では、図10の説明のときと同様に、バス・マスタ34aがリクエストR0をアービタ36aへ初めて出力するクロック・サイクルをT1で表し、以下、各クロック・サイクルをT1から順番にT2,T3,・・・と表すことにし、また、図13では、図11の説明のときと同様に、バス・スレーブ35aが初めてデコーダ37へRを発行したクロック・サイクルをT1とし、以下、T1以降の各クロック・サイクルについて順番にT2,T3,・・・と表すことにする。ラッチ手段がラッチを2個装備する場合には、各ラッチ手段は、コンポーネントCuへアクノリッジ信号を発行したにもかかわらず、コンポーネントCdからアクノリッジ信号を入力しないクロック・サイクルがあり、次のクロック・サイクルでは、ラッチのデータをコンポーネントCdへ再度、送出しなければならないときも、該次のクロック・サイクルにおいてコンポーネントCuからのデータを別のラッチにラッチすることができる。したがって、各ラッチ手段は同一のクロック・サイクルにおいてコンポーネントCuからアクノリッジ信号を受けつつ、コンポーネントCdへアクノリッジ信号を発行することができる。各ラッチ手段Loは、コンポーネントCuからの最初のクロック・サイクルに対しては、その入力のあったクロック・サイクルT1の次のクロック・サイクルT2でアクノリッジをコンポーネントCuへ発行する。また、コンポーネントCuへアクノリッジを発行したラッチ手段Loは、クロック・サイクルT2でコンポーネントCdへリクエストを発行するものの、コンポーネントCdがアービタ36bのようなアービタである場合は、ラッチ手段Loからのリクエストを他のコンポーネントに優先して受け付けてくれる保証もないので、コンポーネントCdから最初のアクノリッジを入力するまで、2番目のアクノリッジをコンポーネントCuへ発行することができない。したがって、各ラッチ手段LoがコンポーネントCuへ2番目のアクノリッジを発行できるのは、コンポーネントCdからアクノリッジを受け取ったクロック・サイクルの次のクロック・サイクルであり、最も早くてクロック・サイクルT4となる。したがって、各クロック・サイクルLoは、コンポーネントCuへ連続してアクノリッジを発行できるのはクロック・サイクルT4以降となる。後述のパーキング方式ではこれを改善できる。こうして、図12及び図13のバス・システムでは、バス・スレーブ35aがデコーダ37へR1に対するアクノリッジを発行するのはクロック・サイクルT10となる。また、バス・マスタ34bが最後のパケット・ブロックの入力に対するアクノリッジをアービタ36aへ出力するのはクロック・サイクルT9となる。
【0045】
図12において、アービタ36aは、クロック・サイクルT7においてバス・マスタ34bへアクノリッジ信号を発行しているので、クロック・サイクルT6におけるバス・マスタ34aへのアクノリッジ信号に連続してアクノリッジ信号を発行していることになるが、デコーダ37bはクロック・サイクルT8においてアービタ36aへのアクノリッジ信号の発行を保留している。これは、アービタ36bは、クロック・サイクルT8においてバス・マスタ34bがリード・リクエストを発行しているのを初めて知り、他のバス・マスタからのアクノリッジとの調停の必要上、直ちにアクノリッジ信号をアービタ36aへ発行することができないからである。後述のパーキング方式では、このようなアクノリッジ信号の保留を省略して、伝送効率を高めることができる。
【0046】
図14及び図15は図12及び図13に係るバス・システムにパーキング技術を適用した改良バス・システムにおける各信号についてのそれぞれ上り方向及び下り方向タイミングチャートである。図12及び図13のタイミングチャートとの相違点を説明する。なお、説明の便宜上、図14では、図11の説明のときと同様に、バス・マスタ34aがリクエストR0をアービタ36aへ初めて出力するクロック・サイクルをT1で表し、以下、各クロック・サイクルをT1から順番にT2,T3,・・・と表すことにし、また、図15では、図12の説明のときと同様に、バス・スレーブ35aが初めてデコーダ37へRを発行したクロック・サイクルをT1とし、以下、T1以降の各クロック・サイクルについて順番にT2,T3,・・・と表すことにする。パイプライン素子及びデコーダは、唯一のコンポーネントCuへアクノリッジ信号を常時、発行し続けるパーキング状態になっている。また、アービタは、どこからもリクエスト信号を入力していないときは、所定の1個のコンポーネントCuへアクノリッジ信号を発行し続けるパーキング状態になっている。したがって、アービタから優先的にアクノリッジ信号を発行されるアービタ36aからのパケットは、その1番目のパケット・ブロックから、エラー等の支障のない限り、アービタを含む全クロック・サイクルにおいてアクノリッジを待つことなく、進行することができる。こうして、バス・スレーブ35aがデコーダ37へR1に対するアクノリッジを発行するのはクロック・サイクルT7となる。また、バス・マスタ34bが最後のパケット・ブロックの入力に対するアクノリッジをアービタ36aへ出力するのもクロック・サイクルT7となる。
【0047】
図16はパイプライン素子の動作に関わっている複数個の信号についてのタイミングチャートの例示である。各信号の意味は次のとおりである。なお、図16〜図22を参照して説明するバス・システムは、図6〜図15において説明したバス・システムとは、同一のパイプライン方式ながら、装備するインターフェースが異なっているので、一部の信号が相違している。図6〜図15のものでは、SIZEによりパケット・サイズを定義していたのに対し、図16以降のものは、パケット・サイズの代わりに、CMD及びNXTと言う信号によりをパケットの開始と終了を定義している。
CLK:該CLKの0から1の変化点で各信号がバス上の隣接コンポーネント間で転送される。
RST:各コンポーネントがコンポーネントCdへ出力する信号。1のときバスがリセット状態であることを示す。
REQ:各コンポーネントがコンポーネントCdへ出力する信号。1のとき転送パケットとしての後述のADが在ることを示す。
CMD:各コンポーネントがコンポーネントCdへ出力する信号。1のとき転送パケットとしてのADがコマンドであることを示す。
NXT:各コンポーネントがコンポーネントCdへ出力する信号。1のとき転送パケットが続くことを示す。
AD:各コンポーネントがコンポーネントCdへ出力する信号。CMDが1のときはADの内容はコマンドであり、0のときはADの内容はデータである。
ACK:各コンポーネントがコンポーネントCuへ出力する信号。1のとき現在の転送情報を受け取ったことを示す。
【0048】
図16において、ADのパケットには、コマンド・パケットのみのばあいと、コマンド・パケットの後に1個以上のデータ・パケットが続く場合とがある。なお、前述の図10〜図15で説明した各コンポーネントは、コンポーネントCdからアクノリッジ信号を受けるアクノリッジ信号までリクエスト信号をコンポーネントCdに対して出力することになっているが、この図16のコンポーネントは、AD信号をコンポーネントCdへ出力する全アクノリッジ信号において、リクエスト信号をコンポーネントCdへ出力することになっている。
【0049】
図17は上り方向のパケット転送の場合のバス・システムの各コンポーネントにおける信号入出力を示している。バス・マスタ43a,43bからの上り方向パケットは、アービタ46、パイプライン素子47、及びデコーダ48を経てバス・スレーブ44a又は44bへ送られる。図16に示したように、各コンポーネントは、コンポーネントCuへはRST、REQ,CMD,NXT,ADの信号を出力し、コンポーネントCdへはACKを送る。各コンポーネントは、また、共通のCLKの供給を受ける。バス・マスタ43a,43b及びバス・スレーブ44a,44bのロジックはユーザに委託される(User Logic)。
【0050】
なお、図17では、バス・マスタからバス・スレーブへのパケット転送に関連して回路を説明しているが、バス・スレーブからバス・マスタへのパケット転送に対処するために、図17の回路とは信号方向が逆向きの回路が別途、装備されている。すなわち、下り方向のパケット転送用の回路では、図17の上り方向のパケット転送用回路のアービタ46及びデコーダ48はそれぞれバス・スレーブ及びバス・マスタに置き換わるとともに、各ラッチ手段に対するコンポーネントCu及びコンポーネントCdの関係が図17のものとは逆となり、それに伴い、RST、REQ,CMD,NXT,AD,ACKも各コンポーネント間において図17とは逆向きとされる。
【0051】
図18はパイプライン素子47のブロック図である。図18において、MSTが信号名の語頭に付いている信号は、パケット転送方向上流側に隣接するコンポーネントCuからパイプライン素子47へ入力される信号を意味し、SLVが信号名の語頭に付いている信号はパケット転送方向下流側に隣接するコンポーネントCdから入力される信号を意味し、PIPが語頭に付いているものは、パイプライン素子47がコンポーネントCu及びコンポーネントCdへ出力する信号であることを意味する。パイプライン素子47はラッチA50及びラッチB51を有している。コンポーネントCu側からのAD,CD,NXTはラッチB51のD及び選択器53のAへ入力される。制御器52はコンポーネントCu側に対しては、REQを入力され、ACKを出力し、また、コンポーネントCd側に対しては、REQを出力し、ACKを入力される。制御器52は、ラッチA50のENB端子、ラッチB51のENB端子、及び選択器53のSEL端子のへ制御信号を送る。
【0052】
図19は図18のパイプライン素子47の真理値表である。各信号の現在の値(Current Value)と次の値(Next Value)との関係が示されており、同一列において、各信号の現在の値に対して各信号の次の値がどうなるかが示されている。なお、Xは”1”,”0”のどちらでもかまわないことを意味し、Hはラッチが値をホールドすること、すなわち前のクロック・サイクルにおける値を維持すること、Aは選択器53のA端子のデータがラッチA50にラッチされること、Bは選択器53のB端子のデータがラッチA50にラッチされること、DはラッチB51のD端子のデータがラッチB51にラッチされることを、それぞれ意味する。図19の真理値表は12行×9列の行列となっている。図20は図19の真理値表に基づくパイプライン素子47の状態遷移図である。4個の囲み内の4桁の数値は左から順番に、PIP_ACK、PIP_REQ、Latch−A_Full、及びLatch−B_Fullの真理値であり、図19の1〜4行の真理値に対応している。
【0053】
図19及び図20を参照しつつ、パイプライン素子47の状態遷移を説明する。エラー等が発生しないで、各パケットが1クロック・サイクルごとに次段のコンポーネントへ転送されているときは、図19の真理値表では、6列目の真理値(上から順番に1,1,1,0|1,1|1,1,1,0|H,D)の状態に対応し、図20の状態遷移図ではS3に対応する。すなわち、コンポーネントは、各クロック・サイクルにおいて、コンポーネントCu及びコンポーネントCdへアクノリッジ信号(PIP_ACK)及びリクエスト信号(PIP_REQ)を出力し、また、ラッチA50のパケットをコンポーネントCdへ転送しつつ、コンポーネントCuからのパケットをラッチA50にラッチする処理を続けている。S3の状態は、パイプライン素子47が、クロック・サイクルにおいてコンポーネントCu及びコンポーネントCdからそれぞれリクエスト信号及びアクノリッジ信号を入力される場合だけでなく、クロック・サイクルにおいてコンポーネントCu及びコンポーネントCdからそれぞれリクエスト信号及びアクノリッジ信号を入力されない場合も、継続する。S3の状態において、コンポーネントCdからのアクノリッジ信号が途絶えると、パイプライン素子47はS4の状態へ移行する。S4の状態では、コンポーネントは、各クロック・サイクルにおいて、コンポーネントCuへはアクノリッジ信号(PIP_ACK)を出力せず、コンポーネントCdへはリクエスト信号(PIP_REQ)を出力する。S4では、ラッチA50及びラッチB51は共にフル(Full)の状態にあり、パケットをラッチA50及びラッチB51にホールドしている。なお、S4において、ラッチA50はS3の最後のクロック・サイクルにおいてラッチしていたパケットをホールドしており、また、ラッチB51は、S4の最初のクロック・サイクルにおいてコンポーネントCuから入力してラッチしたパケットをホールドしている。S4の状態は、コンポーネントCdからアクノリッジ信号を入力しない限り(S_ACK=0)、コンポーネントCuからのリクエスト信号の有無に関係なく(M_REQ=X)、維持される。そして、パイプライン素子47は、アクノリッジ信号がコンポーネントCdから入力されしだい、ラッチB51のパケットをラッチA50にラッチして、S4からS3へ戻る。
【0054】
図21はアービタ46のブロック図である。アービタ46はパイプライン・ロジック55を含み、パイプライン・ロジック55の構成は図18のパイプライン素子47の構成と同一である。各コンポーネントCu(図17の例では、バス・マスタ43a及びバス・マスタ43b)からの信号は選択器56のA,Bへそれぞれ入力される。パイプライン・ロジック55が各コンポーネントCuへ出力する信号はデコーダ57のそれぞれOUT0,OUT1から出力される。各コンポーネントCuからのREQ及びNXT信号は、選択器56だけでなく、制御器58へも入力される。コンポーネントCdからのアクノリッジ信号(SLV_ACK)は、パイプライン・ロジック55を経て、ARB_ACKとしてデコーダ57のIN端子及び制御器58へ入力される。制御器58は、REQ(リクエスト信号)及びNEXT(継続信号)に基づいて選択器56におけるA,Bの切替を制御し、また、REQ(リクエスト信号)、NEXT(継続信号)、及びに基づいてデコーダ57におけるOUT0,OUT1の切替を制御する。選択器56は、複数個のコンポーネントCuからリクエスト信号(MST_REQ0,MST_REQ1)を同時に入力した場合、あらかじめ定めてある調停律に従って1個のコンポーネントCuを選択器56に選択させ、該選択したコンポーネントCuからのNEXT信号が途絶えるまで、その選択を選択器56に維持させる。こうして、アービタ46において選択されたコンポーネントCuからの連続パケットは、その連続が途絶えるまで次段のコンポーネントCd(図17の例ではパイプライン素子47)へ送り続けられる。
【0055】
図22はデコーダ48のブロック図である。アービタ46はパイプライン・ロジック61を含み、パイプライン・ロジック61の構成は図18のパイプライン素子47の構成と同一である。コンポーネントCuからの信号MST_REQ,MST_CMD,MST_NXT,MST_ADはパイプライン・ロジック61を経てデコーダ63のINへ信号DEC_REQ,DEC_CMD,DEC_NXT,DEC_ADとして入力される。DEC_CMD,DEC_ADはまた制御器64へも入力される。制御器64は、入力信号DEC_CMD,DEC_ADに基づいて選択器62におけるIN0,IN1を切替えるとともに、デコーダ63のOUT0,OUT1を切替える。こうして、コンポーネントCu側からのパケットは、そのあて先のバス・スレーブに対応するOUT0又はOUT1からコンポーネントCd側へ送り出され、また、選択器62において選択された1個のコンポーネントCd側からのアクノリッジ信号(SLV_ACK0,SLV_ACK1)がSLV_ACKとしてパイプライン・ロジック61へ入力され、さらに、パイプライン・ロジック61からDEC_ACKとしてコンポーネントCu側のコンポーネントへ出力される。
【0056】
まとめとして本発明の構成に関して以下の事項を開示する。
(1)バスに接続されている少なくとも1個のバス・マスタ、バス・マスタの個数と合わせた総数が3個以上となる個数で存在してバスに接続されている少なくとも1個のバス・スレーブ、及びバス・マスタとバス・スレーブとの間のバス経路に介在して該バス経路を複数の区画に分割しクロックに同期して伝送信号のラッチ及び出力を行うラッチ手段、を有し、
クロックの周期は、バス上の隣接する任意の第1及び第2の区画に対して、第1の区画における信号伝送時間より長くかつ第1及び第2の区画の合計の信号伝送時間より短く設定されている、バス・システム。
(2)バス上の各区画の長さがほぼ均等に設定されている(1)記載のバス・システム。
(3)バスは、各バス・マスタ及び各バス・スレーブから見てツリー構造となっている(1)記載のバス・システム。
(4)少なくとも2個のバス・マスタを有し、少なくとも1個のラッチ手段は、バス・マスタからバス・スレーブへの信号伝送に対するアービタである(1)記載のバス・システム。
(5)少なくとも2個のバス・スレーブを有し、少なくとも1個のラッチ手段は、バス・マスタからバス・スレーブへの信号伝送に対するデコーダである(1)記載のバス・システム。
【0057】
(6)アービタ及びデコーダとしてのラッチ手段は、それぞれバス・スレーブからバス・マスタへの信号伝送に対するデコーダ及びアービタとなっている(4)又は(5)記載のバス・システム。
(7)データの読出し及び書込みの高速性の要求度の高い特定のバス・マスタとバス・スレーブとの間のバス経路長は、要求度の低い他のバス・マスタとバス・スレーブとの間のバス経路長未満に設定されるとともに、該特定のバス・マスタとバス・スレーブとの間におけるラッチ手段の介在個数は、該他のバス・マスタとバス・スレーブとの間の介在個数未満に設定されている(3)記載のバス・システム。
(8)バス・マスタとバス・スレーブとの間のデータ転送はパケット方式である(1)記載のバス・システム。
(9)パケット方式のデータ転送はコネクションレスである(8)記載のバス・システム。
(10)バス・マスタは第1のバス・マスタとキャッシュを装備する第2のバス・マスタとを含み、
アービタは、バス・スレーブの特定のアドレス範囲に対するリード・リクエストを第1のバス・マスタから受け付けたとき、第2のバス・マスタへ、該第2のバス・マスタが自分のキャッシュにバス・スレーブの特定のアドレス範囲に係るデータを保持しているか否かを問い合わせ、第2のバス・マスタがデータを保持している場合は、第2のバス・マスタに、データをバス・スレーブの該当アドレス範囲に書込ませる(4)記載のバス・システム。
【0058】
(11)バス・マスタ、バス・スレーブ、及びラッチ手段をコンポーネントと総称することにし、各ラッチ手段に対してパケット転送方向へ上流側及び下流側に隣接するコンポーネントをそれぞれ第1及び第2のコンポーネントと呼び、かつ連続する3個のクロック・サイクルを前から順番に、第1、第2、及び第3のクロック・サイクルと呼ぶことにすると、
各ラッチ手段は、第2のクロック・サイクルにおいて第1のコンポーネントからパケットを受けるために、第1のクロック・サイクルにおいて第1のコンポーネントへアクノリッジ信号を出力する(1)記載のバス・システム。
(12)ラッチ手段は、第1及び第2のラッチを有し、第1のクロック・サイクルにおいて第1のコンポーネントへはアクノリッジ信号を出力しかつ第2のコンポーネントからはアクノリッジ信号を入力しなかったとき、第1のクロック・サイクルにおいて第2のコンポーネントへのパケットを第1のラッチにホールドし、第2のクロック・サイクルでは、第2のコンポーネントへ第1のラッチのパケットを再送するとともに、第1のコンポーネントからのパケットを第2のラッチにラッチする(11)記載のバス・システム。
(13)ラッチ手段は、第2のクロック・サイクルでは、第1のコンポーネントへのアクノリッジ信号の出力を中止し、もし第2のクロック・サイクルにおいて第2のコンポーネントからアクノリッジ信号を入力したならば、第3のクロック・サイクルでは、第1のラッチのパケットを第2のコンポーネントへ送出しつつ、第2のラッチのパケットを第1のラッチへラッチし、かつ第1のコンポーネントへアクノリッジ信号を出力する(12)記載のバス・システム。
(14)アービタは、複数個の第1のコンポーネントの内の一つを優先コンポーネントと定め、いずれの第1のコンポーネントからもリクエスト信号を受付けていないクロック・サイクルでは、優先コンポーネントへアクノリッジ信号を発行するパーキング状態にされ、また、アービタ以外のラッチ手段も唯一の第1のコンポーネントについてのパーキング状態にされている(12)記載のバス・システム。
(15)バス・マスタ、バス・スレーブ、及びラッチ手段が1チップ内に製作されている(1)記載のバス・システム。
【0059】
(16)バスを介して接続されるバス・マスタ及びバス・スレーブをそれぞれ少なくとも1個、かつ両者の総数が18以上となっているバス・システムの信号伝送方法において、
少なくとも1個のラッチ手段をバス・マスタとバス・スレーブとの間のバス経路に介在させて、該バス経路を複数の区画に分割し、
クロックに同期して伝送信号をラッチ手段においてラッチ及び出力させ、
クロックの周期を、バス上の隣接する任意の第1及び第2の区画に対して、第1の区画における信号伝送時間より長くかつ第1及び第2の区画の合計の信号伝送時間より短く設定する、
バス・システム用信号伝送方法。
(17)バス上の各区画の長さをほぼ均等に設定する(16)記載のバス・システム用信号伝送方法。
(18)バスを、各バス・マスタ及び各バス・スレーブから見てツリー構造とする(16)記載のバス・システム用信号伝送方法。
(19)バス・マスタの個数を少なくとも2個とし、
少なくとも1個のラッチ手段を、バス・マスタからバス・スレーブへの信号伝送に対するアービタとする(16)記載のバス・システム用信号伝送方法。
(20)バス・スレーブの個数を少なくとも2個とし、
少なくとも1個のラッチ手段を、バス・マスタからバス・スレーブへの信号伝送に対するデコーダとする(16)記載のバス・システム用信号伝送方法。
【0060】
(21)アービタ及びデコーダとしてのラッチ手段を、それぞれバス・スレーブからバス・マスタへの信号伝送に対するデコーダ及びアービタとする(19)又は(20)記載のバス・システム用信号伝送方法。
(22)データの読出し及び書込みの高速性の要求度の高い特定のバス・マスタとバス・スレーブとの間のバス経路長を、要求度の低い他のバス・マスタとバス・スレーブとの間のバス経路長未満に設定するとともに、該特定のバス・マスタとバス・スレーブとの間におけるラッチ手段の介在個数を、該他のバス・マスタとバス・スレーブとの間の介在個数未満に設定する(18)記載のバス・システム用信号伝送方法。
(23)バス・マスタとバス・スレーブとの間のデータ転送をパケット方式とする(16)記載のバス・システム用信号伝送方法。
(24)パケット方式のデータ転送をコネクションレスとする(23)記載のバス・システム用信号伝送方法。
(25)バス・マスタには、第1のバス・マスタとキャッシュを装備する第2のバス・マスタとを含ませ、
アービタの作動として、アービタは、バス・スレーブの特定のアドレス範囲に対するリード・リクエストを第1のバス・マスタから受け付けたとき、第2のバス・マスタへ、該第2のバス・マスタが自分のキャッシュにバス・スレーブの特定のアドレス範囲に係るデータを保持しているか否かを問い合わせ、第2のバス・マスタがデータを保持している場合は、第2のバス・マスタに、データをバス・スレーブの該当アドレス範囲に書込ませる作動を、設定する(19)記載のバス・システム用信号伝送方法。
【0061】
(26)バス・マスタ、バス・スレーブ、及びラッチ手段をコンポーネントと総称することにし、各ラッチ手段に対してパケット転送方向へ上流側及び下流側に隣接するコンポーネントをそれぞれ第1及び第2のコンポーネントと呼び、かつ連続する18個のクロック・サイクルを前から順番に、第1、第2、及び第3のクロック・サイクルと呼ぶことにすると、
各ラッチ手段の作動として、各ラッチ手段は、第2のクロック・サイクルにおいて第1のコンポーネントからパケットを受けるために、第1のクロック・サイクルにおいて第1のコンポーネントへアクノリッジ信号を出力させる作動を、設定する(16)記載のバス・システム用信号伝送方法。
(27)ラッチ手段には、第1及び第2のラッチを装備させ、
ラッチ手段の作動として、ラッチ手段は、第1のクロック・サイクルにおいて第1のコンポーネントへはアクノリッジ信号を出力しかつ第2のコンポーネントからはアクノリッジ信号を入力しなかったとき、第1のクロック・サイクルにおいて第2のコンポーネントへのパケットを第1のラッチにホールドし、第2のクロック・サイクルでは、第2のコンポーネントへ第1のラッチのパケットを再送するとともに、第1のコンポーネントからのパケットを第2のラッチにラッチする作動を設定する(26)記載のバス・システム用信号伝送方法。
(28)ラッチ手段の作動として、ラッチ手段は、第2のクロック・サイクルでは、第1のコンポーネントへのアクノリッジ信号の出力を中止し、もし第2のクロック・サイクルにおいて第2のコンポーネントからアクノリッジ信号を入力したならば、第3のクロック・サイクルでは、第1のラッチのパケットを第2のコンポーネントへ送出しつつ、第2のラッチのパケットを第1のラッチへラッチし、かつ第1のコンポーネントへアクノリッジ信号を出力する作動を、設定する(27)記載のバス・システム用信号伝送方法。
(29)アービタの作動として、アービタは、複数個の第1のコンポーネントの内の一つを優先コンポーネントと定め、いずれの第1のコンポーネントからもリクエスト信号を受付けていないクロック・サイクルでは、優先コンポーネントへアクノリッジ信号を発行するパーキング状態にされ、また、アービタ以外のラッチ手段も唯一の第1のコンポーネントについてのパーキング状態にされる作動を、設定する(27)記載のバス・システム用信号伝送方法。
【0062】
【発明の効果】
本発明によれば、バス・マスタとバス・スレーブとの間の距離が増大しても、バス・システムの動作周波数の減少を回避できるので、所定の動作周波数を確保しつつ、ICチップ等のバス・システム装備体にバス・マスタ及びバス・スレーブを広く分布させて、配置させることができる。
【図面の簡単な説明】
【図1】従来の典型的なバス・システムの概念構成図である。
【図2】本発明を具現化したバス・システムの概念構成図である。
【図3】本発明を具現化したバス・システムにおける信号の並列伝送を示す図である。
【図4】本発明を具現化したバス・システムにおける信号の一時停止を示す図である。
【図5】全体的な伝送効率を考慮してバス・マスタとバス・スレーブとの間の距離を設定したバス・システムにおける構成図である。
【図6】各パイプライン素子が発行するパケットの種類及びその内容を示す図である。
【図7】別に各ラッチ手段の発行する信号を示す図である。
【図8】バス・システムにおけるパケットの流れを順番に示す説明図である。
【図9】バス・システムにおけるパケットの流れを図8に続けて順番に示す説明図である。
【図10】図8及び図9のパケット転送モデルにおいて各ラッチ手段がラッチを上り方向及び下り方向共に1個しか装備していないときの各信号についての上り方向タイミングチャートである。
【図11】図8及び図9のパケット転送モデルにおいて各ラッチ手段がラッチを上り方向及び下り方向共に1個しか装備していないときの各信号についての下り方向タイミングチャートである。
【図12】各ラッチ手段がラッチを上り方向及び下り方向共に2個ずつ装備しているときの各信号についての上り方向タイミングチャートである。
【図13】各ラッチ手段がラッチを上り方向及び下り方向共に2個ずつ装備しているときの各信号についての下り方向タイミングチャートである。
【図14】図12及び図13に係るバス・システムにパーキング技術を適用した改良バス・システムにおける各信号についての上り方向タイミングチャートである。
【図15】図12及び図13に係るバス・システムにパーキング技術を適用した改良バス・システムにおける各信号についての下り方向タイミングチャートである。
【図16】パイプライン素子の動作に関わっている複数個の信号についてのタイミングチャートの例示である。
【図17】上り方向のパケット転送の場合のバス・システムの各コンポーネントにおける信号入出力を示す図である。
【図18】パイプライン素子のブロック図である。
【図19】図18のパイプライン素子の真理値表である。
【図20】図19の真理値表に基づくパイプライン素子の状態遷移図である。
【図21】アービタのブロック図である。
【図22】デコーダのブロック図である。
【符号の説明】
19 バス・システム
21a〜c バス・マスタ(コンポーネント)
22a〜c バス・スレーブ(コンポーネント)
23 パイプライン素子(ラッチ手段)
24a,b アービタ(ラッチ手段、コンポーネント)
25a,b デコーダ(ラッチ手段、コンポーネント)
26a,b 高速バス・マスタ(コンポーネント)
27a〜f 低速バス・マスタ(コンポーネント)
30a,b 高速バス・スレーブ(コンポーネント)
31 低速バス・スレーブ(コンポーネント)
32a〜f アービタ(ラッチ手段、コンポーネント)
33a,b デコーダ(ラッチ手段、コンポーネント)
34a,b バス・マスタ(コンポーネント)
35a,b バス・スレーブ(コンポーネント)
36a,b アービタ(ラッチ手段、コンポーネント)
37 デコーダ(ラッチ手段、コンポーネント)
43a,43b バス・マスタ(コンポーネント)
44a,44b バス・スレーブ(コンポーネント)
46 アービタ(ラッチ手段、コンポーネント)
47 パイプライン素子(ラッチ手段)
48 デコーダ(ラッチ手段、コンポーネント)
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a bus system including a bus master and a bus slave and a signal transmission method thereof, and more particularly, to a bus system and a signal transmission method thereof in which the degree of freedom of arrangement of the bus master and the bus slave is increased. It is.
[0002]
[Prior art]
FIG. 1 is a conceptual block diagram of a typical conventional bus system. The bus system is fabricated on a single chip. A plurality of bus masters 11 and a plurality of bus slaves 12 are connected to a common bus system 10. In FIG. 1, the numerical values between each bus master 11 and the bus system 10 and between each bus slave 12 and the bus system 10 are used to calculate the distance between each bus master 11 and each bus slave 12. The distance from each bus master 11 and each bus slave 12 to the reference point is shown in unit mm. The signal transmission time between the bus master 11 and the bus slave 12 in the bus system 10 increases as the signal transmission distance between them increases. In the example of FIG. 1, the maximum distance between the bus master 11 and the reference point is 2.0 mm, and the maximum distance between the bus slave 12 and the reference point is 7.3 mm. Therefore, the maximum distance between the bus master 11 and the bus slave 12 in the bus system of FIG. 1 is 9.3 (= 2.0 + 7.3) mm. Since the clock cycle of the bus system cannot be shorter than the signal transmission time between the bus master and the bus slave in the bus system, the operating frequency is determined by 9.3 mm in the bus system of FIG. Is done. In such a bus system, in order to ensure a constant operating frequency, it is necessary to reduce the distance between the bus master 11 and the bus slave 12 that has the maximum distance. The master 11 and the bus slave 12 are concentrated at the center, and particularly when the bus system is manufactured on one IC, the density of the center is limited. Even if the bus master 11 and the bus slave 12 are arranged in a peripheral space, it is preferable that a constant operating frequency can be secured for the bus system.
[0003]
In JP-A-8-335204, for example, two parallel buses are prepared for data transfer between two bus masters and one bus slave. Since buses must be prepared for the number of parallel transmissions, the number of buses increases by the number of parallel transfers.
[0004]
Japanese Patent Laid-Open No. 5-181817 discloses a bus system in which a plurality of components are arranged in a matrix and components in the same row and components in the same column (elements connected to the bus) constitute a ring bus. Is disclosed. Each component will belong to two ring buses, a row-wise ring bus and a column-wise ring bus, and each component will handle input and output for the two ring buses. It is necessary and the control becomes complicated.
[0005]
In Japanese Patent Application Laid-Open No. 5-28104, the bus master and the bus slave are connected to a common ring bus, and the ring bus has a latch corresponding to 1: 1 of the bus master and the bus slave. There is no latch provided separately from the 1: 1 correspondence, only being deployed in close proximity. In this bus system, if the interval between bus masters or bus slaves adjacent to the ring bus is increased, the interval between adjacent latches on the bus is also increased. If the interval between the bus and slave is increased, it will be reduced accordingly.
[0006]
[Problems to be solved by the invention]
An object of the present invention is to provide a bus system and a signal transmission method therefor that eliminate the necessity of reducing the distance between the bus master and the bus slave in order to ensure a constant operating frequency.
An object of the present invention is to increase the achievable operating frequency with respect to the distance between a bus master and a bus slave in a bus system and its signal transmission method.
An object of the present invention is to provide a bus system and a signal transmission method therefor that improve the efficiency of data transfer throughout.
An object of the present invention is to enable parallel data transfer in a bus system and its signal transmission method.
An object of the present invention is to ensure data coherency in a bus system equipped with a bus master with cache and a signal transmission method thereof.
[0007]
[Means for Solving the Problems]
The bus system according to the present invention includes at least one bus master connected to the bus, and the total number of bus masters combined with the number of bus masters is three or more. Latch means for interposing the bus path between the bus slave and the bus master and the bus slave to divide the bus path into a plurality of sections and to latch and output the transmission signal in synchronization with the clock, have. The period of the clock is longer than the signal transmission time in the first partition and the total signal transmission time of the first and second partitions for any adjacent first and second partitions on the bus. It is set short.
[0008]
Bus systems include, for example, tree, ring, and star bus systems. There are at least one bus master and one bus slave, and the minimum total number of bus masters and bus slaves is three. In the minimum configuration of the total number of bus masters and bus slaves in the bus system, there are cases where there are 1 and 2 bus masters and bus slaves, respectively, and cases where there are 2 and 1 respectively. is there.
[0009]
For convenience of explanation, the bus master, the bus slave, and the latch means are collectively referred to as components. The distance between adjacent components on the bus is preferably uniform in the bus system, but it need not be uniform. It is only necessary that the maximum distance between adjacent components on the bus by the latching means is tight enough to increase the operating frequency of the bus system. There are circumstances in which bus masters and bus slaves in a bus system cannot be placed close enough. In a bus system in which data must be transmitted between a bus master and a bus slave in one clock cycle, a bus system having a large number of bus masters and bus slaves is more likely to have a bus master and a bus slave. The maximum value of the distance to the slave increases, and the operating frequency applicable to the bus system decreases. In the present invention, the latch means is appropriately interposed between the bus master and the bus slave, so that the maximum distance between the bus master and the bus slave is increased per clock cycle. An increase in the data transfer distance is avoided. Therefore, in order to ensure a constant operating frequency of the bus system, it is possible to eliminate a design restriction in which the bus master and the bus slave are concentratedly arranged at the center of the bus system equipment such as an IC chip. Alternatively, the operating frequency of the bus system can be increased with respect to the maximum distance between the bus master and the bus slave in the bus system.
[0010]
The bus system of the present invention can be appropriately added with the specific modes described below in any combination.
・ The length of each section on the bus is set almost equally. Since the bus operating frequency is determined by the maximum length of the partition, by equalizing the length of each partition on the bus, the distribution of the latch means is improved and the number of latch means for obtaining a predetermined operating frequency is reduced. it can.
• The bus has a tree structure as seen from each bus master and each bus slave. Preferably, the bus path length between a specific bus master and a bus slave having a high demand for high-speed data reading and writing is between other bus masters and a bus slave having a low demand. And the number of latch means interposed between the specific bus master and the bus slave is less than the number interposed between the other bus master and the bus slave. Is set. The number of clock cycles required for signal transmission between the bus master and the bus slave increases with an increase in the number of latch means interposed between the bus master and the bus slave. By reducing the number of latch means interposed between bus masters and bus slaves that require rapid transmission, the number of clock cycles required for signal transmission is advantageously reduced.
[0011]
The bus system has at least two bus masters, and at least one latch means is an arbiter for signal transmission from the bus master to the bus slave. Alternatively, the bus system has at least two bus slaves, and at least one latch means is a decoder for signal transmission from the bus master to the bus slave. As mentioned above, the bus system requires signal transmission from the bus master to the bus slave, but in a bus system that does not require a read, signal transmission from the bus slave to the bus master is not necessary. It may become. In a bus system that performs signal transmission from the bus slave to the bus master, the arbiter for signal transmission from the bus master to the bus slave and the latch means as the decoder are respectively connected from the bus slave to the bus master. Decoder and arbiter for signal transmission. The bus master includes a first bus master and a second bus master equipped with a cache, and the arbiter has received a read request from the first bus master for a specific address range of the bus slave. When the second bus master inquires whether the second bus master holds data relating to a specific address range of the bus slave in its cache, the second bus master When data is held, the second bus master is made to write the data in the corresponding address range of the bus slave.
[0012]
Data transfer between the bus master and the bus slave is a packet method. The size of one packet may be larger than the size that can be transmitted in one clock cycle. When the size of one packet is larger than the size that can be transmitted in one clock cycle, one packet is divided into a plurality of blocks and transmitted. The header information portion of the packet is preferably transmitted in one clock cycle, but is not limited to this. The header information portion is transmitted in a plurality of clock cycles, or one clock cycle together with the head portion of the data range of the packet. It may be transmitted in cycles. In this bus system, a plurality of packets can exist at the same time on condition that the bus sections do not overlap. In addition, a plurality of packets with different transmission sources and a plurality of packets with different transmission destinations can exist on the bus system. Typically, packet-based data transfer is connectionless.
[0013]
The bus master, the bus slave, and the latch means are collectively referred to as components, and components adjacent to the upstream and downstream sides in the packet transfer direction with respect to each latch means are referred to as first and second components, respectively. , And three consecutive clock cycles in order from the front, referred to as the first, second, and third clock cycles, each latch means has the first clock cycle in the second clock cycle. In order to receive a packet from the component, an acknowledge signal is output to the first component in the first clock cycle. The latch means has first and second latches, and outputs an acknowledge signal to the first component and no acknowledge signal from the second component in the first clock cycle. The packet to the second component is held in the first latch in one clock cycle, the packet in the first latch is retransmitted to the second component in the second clock cycle, and the first component Is latched in the second latch. The latch means stops outputting the acknowledge signal to the first component in the second clock cycle, and if the acknowledge signal is input from the second component in the second clock cycle, the third means In the clock cycle, while sending the packet of the first latch to the second component, the packet of the second latch is latched to the first latch, and the acknowledge signal is output to the first component. The arbiter defines one of the plurality of first components as a priority component, and a parking state in which an acknowledge signal is issued to the priority component in a clock cycle in which a request signal is not received from any of the first components In addition, the latch means other than the arbiter are also parked for the only first component.
[0014]
In the bus system to which the signal transmission method for a bus system of the present invention is applied, there are at least one bus master and a bus slave connected via the bus, and the total number of both is 18 or more. . In the signal transmission method for the bus system, at least one latch means is interposed in the bus path between the bus master and the bus slave, and the bus path is divided into a plurality of sections and synchronized with the clock. The transmission signal is latched and output by the latch means, and the period of the clock is longer than the signal transmission time in the first partition for any adjacent first and second partitions on the bus and the first and second Set shorter than the total signal transmission time of the two sections.
[0015]
The bus system signal transmission method of the present invention can appropriately add the following various specific modes in any combination. Set the length of each section on the bus almost evenly. The bus has a tree structure when viewed from each bus master and each bus slave. The number of bus masters is at least two, and at least one latch means is an arbiter for signal transmission from the bus master to the bus slave. The number of bus slaves is at least two, and at least one latch means is a decoder for signal transmission from the bus master to the bus slave. The latch means as the arbiter and the decoder are a decoder and an arbiter for signal transmission from the bus slave to the bus master, respectively.
[0016]
In the signal transmission method of the tree-type bus system, the bus path length between a specific bus master and a bus slave having a high demand for high-speed data reading and writing is set to another bus having a low demand. Set the length less than the bus path length between the master and the bus slave, and set the number of latch means interposed between the specific bus master and the bus slave to the other bus master and the bus slave. Set to less than the number of intervening between.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 2 is a conceptual block diagram of the bus system 19 embodying the present invention. The bus system 19 is manufactured on one IC chip and is incorporated in a printer controller, for example, to process a large amount of image data. The bus system 19 has a plurality of bus masters 21 and a plurality of bus slaves 22. The bus master 21 is, for example, a CPU or a DMA (Direct Memory Access), and the bus slave 22 is, for example, a memory. The bus master 21 and the bus slave 22 are connected to each other via a pipeline element 23, an arbiter 24, and a decoder 25. For convenience of explanation, the signal transmission direction from the bus master 21 to the bus slave 22 will be appropriately referred to as an upward direction, and the opposite will be appropriately referred to as a downward direction. Further, the pipeline element 23, the arbiter 24, and the decoder 25 are collectively referred to as latch means as appropriate, and the latch means, the bus master 21, and the bus slave 22 are appropriately referred to as components as appropriate. The latch means includes at least one latch for each of the upward direction and the downward direction. The bus is composed of a plurality of bus portions 20, and each bus portion 20 connects adjacent components to each other in the signal transmission direction. This bus is pipelined, and each component has one or more signal ports, and when one component is connected to another component, both components are connected to the signal ports 1: 1. . In FIG. 2, the direction of the arrow between adjacent components on the bus is shown in the upward direction, and the signal from each bus master 21 to each bus slave 22 is sent to the pipeline element 23, arbiter 24, and / or Via the decoder 25. The bus master 21 is, for example, a CPU or a DMA (direct memory access) controller, and the bus slave 22 is, for example, various interfaces such as a video controller. The bus is composed of a plurality of bus portions 20, and each bus portion 20 connects adjacent components to each other on the bus. This bus has characteristics of a tree type, a pipeline type, a packet transfer type, a connectionless type, and a pipeline type. The bus master 21 and the bus slave 22 are connected to the terminal of the bus. When the bus is viewed from each bus master 21 and each bus slave 22, the bus spreads in a tree shape.
[0018]
Data is packetized and transmitted, and one packet is transmitted from each component over one or more clock cycles. A packet block having a length corresponding to one clock cycle is latched in the latch of each latch means. The arbiter 24 has an arbitration function in the packet transfer direction, selects one from a plurality of components connected in the previous stage, connects to the next component, and transfers the packet in the packet transfer direction. The decoder 25 has a branching function in the packet transfer direction, connects one component at the previous stage to one component selected from the plurality of components at the next stage, and transfers the packet in the packet transfer direction. The pipeline element 23 has a function of latching a signal input in a certain clock cycle and sending it to the next component in the packet transfer direction after the next clock cycle. The numerical value “0.9” shown for the bus portion 20 connecting adjacent components on the path indicates the distance between components connected to each other by the bus portion 20 in the unit mm. The distances d between adjacent components in the bus system 19 are designed to be all equal values, for example, 0.9 mm. If the pipeline element 23, the arbiter 24, and the decoder 25 are equipped with a latch and adjacent components are connected to each other by the pipeline, a signal can be transmitted between adjacent components per clock cycle. It will be enough. In the bus system 19, since the distance between adjacent components is sufficiently shortened, the operating frequency of the bus system 19 can be greatly increased. As long as there is enough space on the IC chip, the number of the pipeline elements 23 interposed can be increased to further increase the operating frequency of the bus system 19.
[0019]
In this bus system 19, even if the distance between the bus master 21 and the bus slave 22 is long, if the number of intervening pipeline elements 23 between the bus master 21 and the bus slave 22 is increased, the bus -The necessity of reducing the operating frequency of the slave 22 can be eliminated. Thus, in order to secure a constant operating frequency, the bus master 21 and the bus slave 22 are arranged at a distance from each other, and the restriction of concentrating them at the center of the IC chip is eliminated. It is possible to arrange it in a peripheral part with a margin.
[0020]
FIG. 2 shows the arbiter 24 and the decoder 25 in the upstream packet flow for the bus system 19, but the functions of the arbiter 24 and the decoder 25 are reversed in the downstream direction. That is, in the downstream direction, the arbiter 24 becomes a decoder and the decoder 25 becomes an arbiter. For example, when the bus system 19 is a bus system consisting only of a write command that does not require an acknowledge signal from the bus master to the bus slave, the packet flow direction in the bus system is determined from the bus master to the bus. Since it is only in one direction to the slave, the arbiter 24 and the decoder 25 do not need the decoder and arbiter functions for the downstream packets, respectively. In a typical bus system, the bus master issues a read request, and the read data is transmitted as a downstream packet. Therefore, each arbiter 24 and each decoder 25 have a decoder and a receiver to cope with the downstream packet transfer. Equipped with an arbiter function.
[0021]
3 and 4 show parallel transmission and suspension of signals in a bus system embodying the present invention. The bus masters 21a and 21b are connected to the bus slave 22a via the arbiter 24a and the decoder 25a. The bus masters 21a and 21b are also connected to the bus slaves 22b and 22c via the arbiter 24a, the decoder 25a, the arbiter 24b, and the decoder 25b. The bus master 21c is connected to the bus slaves 22b and 22c via the arbiter 24b and the decoder 25b. The bus portion 20 constitutes a bus as a whole and connects adjacent components to each other on the bus. The direction of each bus portion 20 in FIG. 3 is shown in the upward direction as in the case of FIG. Similarly to the arbiter and decoder of FIG. 2, the arbiter and decoder of FIG. 3 are also equipped with functions of a decoder and an arbiter, respectively, in order to cope with downstream packet transfer.
[0022]
In FIG. 3, f1 indicates a signal flow from the bus master 21b to the bus slave 22a, and f2 indicates a signal flow from the bus master 21c to the bus slave 22c. In the bus system of the present invention, a plurality of communications between the bus master and the bus slave can be established as long as the routes do not overlap. In the example of FIG. 3, the directions of f1 and f2 are both from the bus master to the bus slave, but one or both may be from the bus slave to the bus master. .
[0023]
In the state shown in FIG. 4, the arbiter 24b gives priority to the signal flow from the bus master 21c to the bus slave 22c. Progress has been paused at. The signal is advanced by one bus portion 20 every clock cycle in synchronism with the clock cycle. Further, since signal transmission / reception in the bus system is a connectionless type, even if communication is not established between the bus master and the bus slave, the signal can proceed. The tip of f3 advances to the front of the arbiter capable of traveling, that is, it can be paused at a position sufficiently close to the transmission destination, so that the arrival time at the transmission source is shortened.
[0024]
FIG. 5 is a configuration diagram of the bus system in which the distance between the bus master and the bus slave is set in consideration of the overall transmission efficiency. In FIG. 5, the distance on the drawing between the bus master and the bus slave reflects the distance between the bus master and the bus slave in an actual product such as an IC chip. ○ represents a bus master, □ represents a bus slave, Δ represents an arbiter for the upward direction, and ▼ represents a decoder for the upward direction. P1 and P2 indicate the directions of the request packet and the acknowledge packet, respectively. The bus masters are classified into high-speed bus masters 26a and 26b and low-speed bus masters 27a to 27d. The bus slaves are classified into high-speed bus slaves 30 a and 30 b and low-speed bus slaves 31. The high-speed bus masters 26a and 26b are bus masters that require higher-speed communication than the low-speed bus masters 27a to 27d. The high-speed bus slaves 30a and 30b are bus slaves that require higher-speed communication than the low-speed bus slave 31. Each bus master has a bus slave as a communication partner, and the arbiters 32a to 32f and the decoders 33a and 33b guarantee communication between all bus masters and bus slaves with which communication is possible. As shown, the bus master and the bus slave are connected. For example, the high-speed bus master 26b can communicate with all the bus slaves 30a, 30b, and 31, whereas the high-speed bus master 26a only communicates with the high-speed bus slave 30a. The masters 27e and 27f can communicate only with the low-speed bus slave 31. In FIG. 5, since the distance between the decoder 33a and the arbiter 32f is relatively longer than the distance between the other components, a predetermined number of pipelines are appropriately interposed between the decoder 33a and the arbiter 32f. It is preferable to make the distance between adjacent components uniform. In this bus system, communication between the high-speed bus master 26a and the high-speed bus slave 30a requires higher speed than communication between the low-speed bus masters 27b to 27d and the low-speed bus slave 31. The mutual distance between the high-speed bus master 26a and the high-speed bus slave 30a is made shorter than the mutual distance between the low-speed bus masters 27b to 27d and the low-speed bus slave 31 and the high-speed bus master 26a-high-speed bus. The number of latch means interposed between the slaves 30a is smaller than the number of latch means interposed between the low-speed bus masters 27b to d-the low-speed bus slaves 31. The arbiters 32a to 32f perform arbitration giving priority to communication that requires high-speed communication between the bus master and the bus slave.
[0025]
FIG. 6 shows the types and contents of packets issued by each pipeline element.
(A) Write Request Packet Data (WRPD): A packet in which the bus master requests the bus slave to write data.
(B) Read Request Packet Data (RRPD): A packet in which the bus master requests the bus slave to read data.
(C) Write Ack Packet Data (WAPD): An acknowledge packet issued from the bus slave to the bus master for WRPD.
(D) Read Ack Packet Data (RAPD); an acknowledge packet issued by the bus slave to the bus master for RRPD.
(E) Coherency Request Packet (CRP): A packet in which the arbiter inquires the coherency of data to the bus master with cache.
(F) Coherency Ack Packet (CAP): An acknowledge packet issued by the cached bus master to the arbiter for the CRP.
[0026]
The information held by WRPD is as follows.
Master ID: ID of the bus master that issued the WRPD.
Address: The start address of the write address range in the bus slave to which the WRPD is sent.
Size: Size of the write address range.
Data (Size): Data block (the number of the data block in the packet).
[0027]
The information held by the RRPD is as follows.
Master ID: ID of the bus master that issued the RRPD.
Address: The start address of the read address range in the bus slave to which the RRPD is sent.
Size: The size of the read address range.
Type: Type (details will be described later).
[0028]
The WAPD includes the following information.
Master ID: ID of the bus master addressed to the acknowledge for the write request.
Address: Start address of the write address range in the bus slave.
Status: The state of the bus slave such as an error or busy for a write request.
[0029]
The RAPD includes the following information.
Master ID: ID of the bus master addressed to the acknowledge for the read request.
Address: Start address of the read address range in the bus slave.
Size: The size of the read address range.
Data (Size): Data block (the number of the data block in the packet).
Status: The state of the bus slave such as an error or busy for a read request.
[0030]
The CRP includes the following information.
Address: Start address of the target address range for coherency.
Size: The size of the target address range for coherency.
[0031]
The CAP includes the following information.
Address: Start address of the target address range for coherency.
Status: The state of the bus master such as an error or busy for a coherency request.
[0032]
There are the following types (Type). Note that w / o means no (without) and w / means there.
Write w / o Ack: Write without acknowledge.
Write w / Ack: Write with acknowledge.
Read w / o Ack: Write without acknowledge.
Read w / Ack: Write with acknowledge.
Coherency Req w / o Ack: Coherency request without acknowledgment.
Coherency Req w / Ack; Coherency request with acknowledge.
[0033]
FIG. 7 shows a signal issued by each latch means separately from the packet. For convenience of explanation, it is assumed that components adjacent to the issuer side and the issuer side in the packet transfer direction by the latch means are represented by symbols Cu and Cd, respectively. Further, as already defined, the component is used as a concept including not only latch means but also a bus master and a bus slave. The master signal (Master Signals) is a general term for signals transmitted and received by each latch means with its component Cd. The slave signal (Slave Signals) is a general term for signals transmitted and received by each latch means with its component Cu. Arbiter signals (Arbiter Signals) are signals that only the arbiter in the latch means sends and receives to and from the components Cu and Cd. The decoder signal (Decoder Signals) is a signal that only the decoder in the latch means transmits / receives the components Cu and Cd. In FIG. 7, Mst and Slv at the head of the signal name mean signals flowing in the data packet transfer direction and the opposite direction, respectively. Req, Ack, ID, AD, Size, Type, and MID in the middle of the signal name mean request, acknowledge, master ID, address & data bus size, type, and master ID, respectively. Note that both ID and MID mean a master ID, but the master ID meaning Mst_ID means that the upstream component is between its upstream and downstream components adjacent to each other in the data transfer direction. In contrast to the ID that is output as the ID, the master ID that means Slv_ID is the ID of the bus master to which the downstream component forwards the packet between the upstream and downstream components adjacent in the data transfer direction. Is pointed to. The addition of (O) and (I) in the signal name indicates that the signal is a signal related to the output and input of the latch means, respectively. The master signals (Master Signals) include Mst_Req (O), Slv_Ack (I), Mst_ID (O), Mst_AD (O), Mst_Size (O), Mst_Type (O), Slv_Req (I), Mst_Ack (O), Slv_Size (Slv_Size). I), Slv_AD (I), Slv_Status (I), and Slv_ID (I). The slave signals (Slave Signals) include Mst_Req (I), Slv_Ack (O), Mst_ID (I), Mst_AD (I), Mst_Size (I), Mst_Type (I) Slv_Req (O), Mst_Ack (I), Slv_Sie (Slv_Siez). O), Slv_AD (O), Slv_Status (O), and Slv_ID (O).
[0034]
Here, N is the total number of components Cu in the arbiter (Master Connection), or the total number of components Cd in the decoder (Slave Connection). Each arbiter requires transmission / reception of the number of slave signals (Slave Signals) of latch means per component Cu, and transmission / reception of the number of master signals (Master Signals) of latch means per component Cd. It becomes. Therefore, in each arbiter, the number of upstream signal ports is the total number xN of slave signals (Slave Signals), and the number of downstream signal ports is the total number xN of master signals (Master Signals). Each decoder requires transmission / reception of the number of master signals (Master Signals) of the latch means per component Cu and transmission / reception of the number of slave signals (Slave Signals) of the latch means per component Cd. Accordingly, in each decoder, the number of upstream signal ports is the total number of master signals (Master Signals) xN, and the number of downstream signal ports is the total number of slave signals (Slave Signals) xN.
[0035]
8 and 9 are explanatory diagrams showing the flow of packets in the bus system in order. The process of packet flow is (a) → (b) → (c) in FIG. 8 → (a) → (b) → (c) in FIG. 9. In the example of FIGS. 8 and 9 for the bus system, the bus masters 34a and 34b are connected to the bus slaves 35a and 35b via the arbiters 36a and 36b and the decoder 37. The bus portion 40 constitutes a bus as a whole, and connects adjacent components to each other on the bus. Each step will be described in turn. Note that the communication request described in FIGS. 8 and 9 is an example.
[0036]
FIG. 8A: The bus masters 34a and 34b simultaneously issue a write request R0 and a read R1 to the arbiter 36a. In this example, R0 and R1 are both requested and packet headers.
FIG. 8B: The arbiter 36a prioritizes R0 over R1, and the arbiter 36b does not accept requests from other than the arbiter 36a. As a result, a total of four packet blocks R0, D0-1, D0-2, and D0-3 from the bus master 34 pass through the arbiters 36a and 36b and the decoder 37 in synchronism with the clock cycle. Ships to 35a. In a state where the first packet block R0 has arrived at the bus slave 35a, each of R0, D0-1, D0-2, D0-3 is between the bus slave 35a and the decoder 37, between the decoder 37 and the arbiter 36b, and between the arbiter. 36b between the arbiter 36a and between the arbiter 36a and the bus master 34a.
FIG. 8C: The arbiter 36a transmits the last packet block D0-3 from the bus master 34a to the arbiter 36b, and the read request R1 from the bus master 34b is directed to the bus slave 35a. Ship. As a result, the packet block R1 proceeds to the bus slave 35c following D0-3.
[0037]
FIG. 9A: Since the write request in this example does not require an acknowledge, when the bus slave 35a accepts D3, the bus slave 35a does not issue an acknowledge signal toward the bus master 34a. The request R1 from 34b is accepted.
FIGS. 9B and 9C: The bus slave 35a receives the packet blocks R, D1-1, D1-2, and D1-3 of the acknowledge packet for the packet R1 of the read request from the bus master 34b. , D1-4 are issued in order every clock cycle. In this example, R is an acknowledge signal and a packet header. The acknowledge packet travels in the opposite direction to the request packet toward the bus master 34b. For the acknowledge packet, the decoder 37b functions as an arbiter, the arbiter 36b functions as a decoder, and the arbiter 36a functions as a decoder.
[0038]
In the bus system to which the present invention is applied, data coherency is considered. That is, some bus masters are equipped with a cache, and even if a certain bus master changes the contents of the cache equipped with it, the data in the corresponding bus slave is updated. There are times when has not been completed. To deal with this, each arbiter knows all the bus masters equipped with cashiers among the bus masters requesting data read and write to it. When a certain bus master Ma requests to read data in the predetermined address range AW1 in the predetermined bus slave Sa, the address range AW1 and the duplicate address in the cache are sent to the bus master equipped with another cacher. Queries whether the range data has been rewritten. The inquired bus master responds to the inquirer's arbiter. If the answer is No, the arbiter waits for a read request from the bus master that requested the data read, Promptly send to the bus / slave component. If the answer is Yes, that is, if the address range AW1 and the overlapping address range are rewritten, the inquired bus master updates the required address range of the bus slave Sa based on the update data in the cache. Issue a write request. The bus master sends a read request waiting from the bus master Ma to the bus slave Sa after sending the write packet by the write request based on the update of the cache contents.
[0039]
FIG. 10 and FIG. 11 are upstream and downstream timing charts for each signal when each latch means has only one latch in both the upstream and downstream directions in the packet transfer model of FIG. 8 and FIG. is there. The latch means is equipped with a single latch for each of the upward and downward directions. FIG. 11 is a timing chart in the downstream direction. In order to clarify the relationship with the timing in the upstream direction, the timing chart in the upstream direction from the decoder 37 to the bus slave 35a is also shown in the upper part of FIG. ing. In this bus system, the acknowledge issued by each component means that the packet can be accepted. As in the description of FIG. 7, for each latch means, components adjacent to the upstream and downstream sides in the packet transfer direction are represented by symbols Cu and Cd, respectively. Since the latch means (as described above, the latch means is a general term for pipeline elements, arbiters, and decoders) has only one latch, the acknowledge signal from the component Cd in a certain clock cycle. Otherwise, in the next clock cycle, the latch data cannot be passed to the component Cd, so the latch data must be held for the next clock cycle, so the next clock cycle The data from the component Cu cannot be latched into the latch. Therefore, each latch means must issue an acknowledge signal to the component Cu after receiving the acknowledge signal from the component Cd in order to hold the packet from the component Cu in its own latch. 10 and 11, the same column indicates the same clock cycle.
[0040]
For convenience of explanation, in FIG. 10, the clock cycle in which the bus master 34a outputs the request R0 to the arbiter 36a for the first time is represented by T1, and each clock cycle is represented by T2, T3,. I will decide. In FIG. 10, the bus masters 34a and 34b output requests R0 and R1 as the first request signals to the arbiter 36a in the clock cycle T1. The bus master 34a, together with the request signal R0, a packet block a0 indicating a head address in a write destination bus slave, a signal 3 of a size (Size) obtained by converting a write target address range into a predetermined unit, A type Wn, which means that the write request does not require an acknowledge, and a signal M0 indicating its own ID are output to the arbiter 36a. Similarly, the bus master 34b, together with the request signal R1, has a packet block a0 indicating the head address in the read-out bus slave, size 4 obtained by converting the address range to be read into a predetermined unit, and the read request is acknowledged. Is output to the arbiter 36a. The type Ra means that it is necessary and M1 indicating its own ID.
[0041]
The arbiter 36a gives priority to the write request of the bus master 34a over the read request of the bus master 34b, and issues an acknowledge signal A to the bus master 34a in the clock cycle T2. On the other hand, in the clock cycle T3, the bus master 34a sends a data packet block d0 to the arbiter 36a instead of the head address information a0. In FIG. 10, all packet blocks of data are represented by the same symbol d0, but the first and second d0 out of a total of six d0 are the data packet block (1), the third The fourth d0 is the data packet block (2), and the fifth and sixth d0 are the data packet block (3). Since each latch means is equipped with only one latch in both the upward direction and the downward direction, an acknowledge signal cannot be issued to the component Cu in the clock cycle in response to the clock cycle that receives the acknowledge signal from the component Cd. An acknowledge signal can be issued to the component Cu in the next clock cycle. As long as there is no trouble such as an error, the transmission / reception signal pattern between the bus master 34a and the arbiter 36b in which an acknowledge is generated every other clock cycle propagates to the downstream component while being delayed by one clock cycle. Go.
[0042]
When the arbiter 36a receives the acknowledge signal from the arbiter 36b in the clock cycle T9, the arbiter 36a issues the acknowledge signal to the bus master 34b in the clock cycle 10. Based on the acknowledge signal from the arbiter 36a in the clock cycle T10, the bus master 34b detects that the transmission signal to the arbiter 36a in the clock cycle T9 has been accepted by the arbiter 36a. As long as there is no trouble such as an error, the transmission / reception signal pattern between the bus master 34b and the arbiter 36a is propagated between the downstream components while being delayed by one clock cycle. It is clock cycle T12 that the bus slave 35a issues an acknowledge to the decoder 37 with respect to R1.
[0043]
In FIG. 11, when the bus slave 35a receives the read request R1 from the decoder 37, the bus slave 35a sends a request (Slv_Req) R to the decoder 37 through a predetermined access time to the associated memory. For convenience of explanation, in FIG. 11, the clock cycle in which the bus slave 35a first issues R to the decoder 37 is T1, and hereinafter, each clock cycle after T1 is expressed as T2, T3,. To. In the clock cycle T1, the bus slave 35a, together with R, a1 indicating the leading address of the read address range, the signal 4 having a size obtained by converting the address range to be read into a predetermined unit, and the type of request request for the read request. AR indicating that the packet is a packet and M1 indicating which bus master is an acknowledge packet are output. In the downstream direction, the decoder 37 functions as an arbiter, and the arbiters 36b and a function as decoders. As in the case of signal transmission in the upward direction, each latch means receives the acknowledged component Cd (note: components Cd and Cu in the upward direction become components Cu and Cd in the downward direction, respectively). On the other hand, in the clock cycle next to the clock cycle that has received the acknowledge, the latch data is output and an acknowledge signal is issued to the component Cu. Thus, as long as there is no trouble such as an error, the transmission / reception signal pattern between the bus slave 35a and the decoder 37 is propagated between the downstream components while being delayed by one clock cycle. In FIG. 11, the description of Slv_AD, Slv_Size, and Slv_Type is omitted between the decoder 37 and the arbiter 36b and between the arbiter 36b and the arbiter 36a for the sake of simplicity of illustration. The bus master 34b outputs an acknowledge for the input of the last packet block to the arbiter 36a in the clock cycle T12.
[0044]
12 and 13 are timing charts for the upstream and downstream directions for each signal when each latch means is equipped with two latches in both the upstream and downstream directions. The latch means is equipped with two latches exclusively for the upward direction and the downward direction. FIG. 13 is a timing chart in the downstream direction. In order to clarify the relationship with the timing in the upstream direction, the timing chart in the upstream direction from the decoder 37 to the bus slave 35a is also shown in the upper part of FIG. ing. Only differences from FIGS. 10 and 11 will be described. For convenience of explanation, in FIG. 12, the clock cycle in which the bus master 34a outputs the request R0 to the arbiter 36a for the first time is denoted by T1, as in the explanation of FIG. .., And in FIG. 13, similarly to the description of FIG. 11, the clock cycle in which the bus slave 35a first issues R to the decoder 37 is denoted as T1. In the following description, T2, T3,... When the latch means has two latches, each latch means has a clock cycle in which no acknowledge signal is input from the component Cd even though it has issued an acknowledge signal to the component Cu, and the next clock cycle. Then, when the data of the latch must be sent again to the component Cd, the data from the component Cu can be latched in another latch in the next clock cycle. Therefore, each latch means can issue an acknowledge signal to the component Cd while receiving an acknowledge signal from the component Cu in the same clock cycle. In response to the first clock cycle from the component Cu, each latch means Lo issues an acknowledge to the component Cu in the clock cycle T2 next to the input clock cycle T1. The latch means Lo that has issued an acknowledge to the component Cu issues a request to the component Cd in the clock cycle T2. However, if the component Cd is an arbiter such as the arbiter 36b, the request from the latch means Lo Since there is no guarantee that the first component is accepted over the first component, the second acknowledge cannot be issued to the component Cu until the first acknowledge is input from the component Cd. Therefore, each latch means Lo can issue the second acknowledge to the component Cu in the clock cycle next to the clock cycle that received the acknowledge from the component Cd, and is the earliest clock cycle T4. Therefore, in each clock cycle Lo, the acknowledge can be issued to the component Cu continuously after the clock cycle T4. This can be improved by the parking method described later. Thus, in the bus system of FIGS. 12 and 13, the bus slave 35a issues an acknowledge to R1 to the decoder 37 at clock cycle T10. The bus master 34b outputs an acknowledge for the input of the last packet block to the arbiter 36a in the clock cycle T9.
[0045]
In FIG. 12, since the arbiter 36a issues an acknowledge signal to the bus master 34b in the clock cycle T7, the arbiter 36a issues an acknowledge signal in succession to the acknowledge signal to the bus master 34a in the clock cycle T6. However, the decoder 37b suspends issuing an acknowledge signal to the arbiter 36a in the clock cycle T8. This is because the arbiter 36b knows for the first time that the bus master 34b issues a read request in the clock cycle T8, and immediately arbitrates the acknowledge signal from the other bus master because of the need for arbitration with the acknowledge. This is because it cannot be issued to 36a. In the parking method described later, such a hold of the acknowledge signal can be omitted to improve the transmission efficiency.
[0046]
FIGS. 14 and 15 are upstream and downstream timing charts for respective signals in the improved bus system in which the parking technology is applied to the bus systems according to FIGS. Differences from the timing charts of FIGS. 12 and 13 will be described. For convenience of explanation, in FIG. 14, the clock cycle in which the bus master 34a outputs the request R0 to the arbiter 36a for the first time is denoted by T1, as in the explanation of FIG. 11, and each clock cycle is denoted by T1. .., And in FIG. 15, as in the description of FIG. 12, the clock cycle in which the bus slave 35a first issued R to the decoder 37 is denoted as T1. In the following description, T2, T3,... The pipeline element and the decoder are in a parking state that continuously issues an acknowledge signal to the only component Cu. Further, when no request signal is input from anywhere, the arbiter is in a parking state in which an acknowledge signal is continuously issued to one predetermined component Cu. Therefore, a packet from the arbiter 36a to which an acknowledge signal is issued preferentially from the arbiter does not wait for an acknowledge in all clock cycles including the arbiter from the first packet block as long as there is no trouble such as an error. Can progress. In this way, the bus slave 35a issues an acknowledge for R1 to the decoder 37 at clock cycle T7. It is also clock cycle T7 that the bus master 34b outputs an acknowledge for the input of the last packet block to the arbiter 36a.
[0047]
FIG. 16 is an example of a timing chart for a plurality of signals related to the operation of the pipeline element. The meaning of each signal is as follows. Note that the bus system described with reference to FIGS. 16 to 22 is different from the bus system described with reference to FIGS. The signal is different. In FIGS. 6 to 15, the packet size is defined by SIZE, whereas in FIG. 16 and subsequent ones, instead of the packet size, the start and end of the packet are determined by signals CMD and NXT. Is defined.
CLK: Each signal is transferred between adjacent components on the bus at the change point of CLK from 0 to 1.
RST: A signal that each component outputs to the component Cd. When this bit is 1, it indicates that the bus is in the reset state.
REQ: A signal output from each component to the component Cd. 1 indicates that there is an AD described later as a transfer packet.
CMD: A signal that each component outputs to the component Cd. 1 indicates that AD as a transfer packet is a command.
NXT: A signal output from each component to the component Cd. 1 indicates that the transfer packet continues.
AD: A signal that each component outputs to the component Cd. When CMD is 1, the contents of AD are commands, and when it is 0, the contents of AD are data.
ACK: A signal that each component outputs to the component Cu. 1 indicates that the current transfer information has been received.
[0048]
In FIG. 16, the AD packet includes only a command packet and there may be one or more data packets following the command packet. Each of the components described with reference to FIGS. 10 to 15 outputs a request signal to the component Cd from the component Cd to the acknowledge signal that receives the acknowledge signal. In all the acknowledge signals that output the AD signal to the component Cd, the request signal is output to the component Cd.
[0049]
FIG. 17 shows signal input / output in each component of the bus system in the case of packet transfer in the upward direction. Upstream packets from the bus masters 43a and 43b are sent to the bus slave 44a or 44b via the arbiter 46, the pipeline element 47, and the decoder 48. As shown in FIG. 16, each component outputs RST, REQ, CMD, NXT, and AD signals to the component Cu, and sends ACK to the component Cd. Each component also receives a common CLK supply. The logic of the bus masters 43a and 43b and the bus slaves 44a and 44b is entrusted to the user (User Logic).
[0050]
In FIG. 17, the circuit is described in relation to packet transfer from the bus master to the bus slave, but in order to cope with packet transfer from the bus slave to the bus master, the circuit of FIG. Is equipped with a circuit with the opposite signal direction. That is, in the downstream packet transfer circuit, the arbiter 46 and the decoder 48 of the upstream packet transfer circuit in FIG. 17 are replaced with the bus slave and the bus master, respectively, and the component Cu and the component Cd for each latch means. 17 is reversed from that in FIG. 17, and accordingly, RST, REQ, CMD, NXT, AD, and ACK are also reversed between the components in FIG.
[0051]
FIG. 18 is a block diagram of the pipeline element 47. In FIG. 18, a signal having MST at the beginning of the signal name means a signal input from the component Cu adjacent to the upstream side in the packet transfer direction to the pipeline element 47, and SLV is added at the beginning of the signal name. Means that the signal is input from the component Cd adjacent to the downstream side in the packet transfer direction, and the one prefixed with PIP indicates that the pipeline element 47 outputs to the component Cu and the component Cd. means. The pipeline element 47 has a latch A50 and a latch B51. AD, CD, and NXT from the component Cu side are input to D of the latch B51 and A of the selector 53. The controller 52 receives REQ and outputs ACK to the component Cu side, and outputs REQ and ACK to the component Cd side. The controller 52 sends control signals to the ENB terminal of the latch A50, the ENB terminal of the latch B51, and the SEL terminal of the selector 53.
[0052]
FIG. 19 is a truth table of the pipeline element 47 of FIG. The relationship between the current value of each signal (Current Value) and the next value (Next Value) is shown, and what happens to the next value of each signal relative to the current value of each signal in the same column. It is shown. Note that X means “1” or “0”, H means that the latch holds the value, that is, maintains the value in the previous clock cycle, and A means that the selector 53 A indicates that the data at the A terminal is latched in the latch A50, B indicates that the data at the B terminal of the selector 53 is latched in the latch A50, and D indicates that the data at the D terminal of the latch B51 is latched in the latch B51. , Meaning each. The truth table of FIG. 19 is a matrix of 12 rows × 9 columns. FIG. 20 is a state transition diagram of the pipeline element 47 based on the truth table of FIG. The four-digit numerical values in the four boxes are the truth values of PIP_ACK, PIP_REQ, Latch-A_Full, and Latch-B_Full in order from the left, and correspond to the truth values of lines 1 to 4 in FIG.
[0053]
The state transition of the pipeline element 47 will be described with reference to FIGS. 19 and 20. When each packet is transferred to the next component every clock cycle without an error or the like, in the truth table of FIG. 19, the truth value in the sixth column (1, 1 in order from the top) , 1, 0 | 1, 1 | 1, 1, 1, 0 | H, D), and corresponds to S3 in the state transition diagram of FIG. That is, in each clock cycle, the component outputs an acknowledge signal (PIP_ACK) and a request signal (PIP_REQ) to the component Cu and the component Cd, and transfers the packet of the latch A50 to the component Cd, while The process of latching the packet in the latch A50 is continued. The state of S3 is not only when the pipeline element 47 receives the request signal and the acknowledge signal from the component Cu and the component Cd, respectively, in the clock cycle, but also from the component Cu and the component Cd, respectively, in the clock cycle. Continue even if no acknowledge signal is input. When the acknowledge signal from the component Cd stops in the state of S3, the pipeline element 47 shifts to the state of S4. In the state of S4, the component does not output an acknowledge signal (PIP_ACK) to the component Cu and outputs a request signal (PIP_REQ) to the component Cd in each clock cycle. In S4, both the latch A50 and the latch B51 are in a full state, and the packet is held in the latch A50 and the latch B51. In S4, the latch A50 holds the packet latched in the last clock cycle of S3, and the latch B51 receives and latches the packet input from the component Cu in the first clock cycle of S4. Is holding. The state of S4 is maintained regardless of the presence or absence of a request signal from the component Cu (M_REQ = X) unless an acknowledge signal is input from the component Cd (S_ACK = 0). Then, as soon as the acknowledge signal is input from the component Cd, the pipeline element 47 latches the packet of the latch B51 in the latch A50, and returns from S4 to S3.
[0054]
FIG. 21 is a block diagram of the arbiter 46. The arbiter 46 includes pipeline logic 55, and the configuration of the pipeline logic 55 is the same as the configuration of the pipeline element 47 of FIG. Signals from the respective components Cu (in the example of FIG. 17, the bus master 43a and the bus master 43b) are respectively input to A and B of the selector 56. Signals output from the pipeline logic 55 to the respective components Cu are output from OUT0 and OUT1 of the decoder 57, respectively. The REQ and NXT signals from each component Cu are input not only to the selector 56 but also to the controller 58. The acknowledge signal (SLV_ACK) from the component Cd is input to the IN terminal of the decoder 57 and the controller 58 as ARB_ACK through the pipeline logic 55. The controller 58 controls switching between A and B in the selector 56 based on REQ (request signal) and NEXT (continuation signal), and based on REQ (request signal), NEXT (continuation signal), and so on. The switching of OUT0 and OUT1 in the decoder 57 is controlled. When the request signal (MST_REQ0, MST_REQ1) is simultaneously input from a plurality of components Cu, the selector 56 causes the selector 56 to select one component Cu according to a predetermined arbitration rule, and from the selected component Cu The selector 56 maintains the selection until the next NEXT signal is interrupted. Thus, the continuous packets from the component Cu selected by the arbiter 46 continue to be sent to the next component Cd (the pipeline element 47 in the example of FIG. 17) until the continuity is interrupted.
[0055]
FIG. 22 is a block diagram of the decoder 48. The arbiter 46 includes pipeline logic 61, and the configuration of the pipeline logic 61 is the same as that of the pipeline element 47 of FIG. Signals MST_REQ, MST_CMD, MST_NXT, and MST_AD from the component Cu are input as the signals DEC_REQ, DEC_CMD, DEC_NXT, and DEC_AD to the IN of the decoder 63 through the pipeline logic 61. DEC_CMD and DEC_AD are also input to the controller 64. The controller 64 switches IN0 and IN1 in the selector 62 based on the input signals DEC_CMD and DEC_AD, and switches OUT0 and OUT1 of the decoder 63. Thus, the packet from the component Cu side is sent out from OUT0 or OUT1 corresponding to the destination bus slave to the component Cd side, and the acknowledge signal from one component Cd side selected by the selector 62 ( SLV_ACK0, SLV_ACK1) are input to the pipeline logic 61 as SLV_ACK, and further output from the pipeline logic 61 to the component on the component Cu side as DEC_ACK.
[0056]
As a summary, the following matters are disclosed regarding the configuration of the present invention.
(1) At least one bus slave connected to the bus with at least one bus master connected to the bus, the total number of bus masters being three or more. And latch means for latching and outputting the transmission signal in synchronization with the clock by dividing the bus path into a plurality of sections through the bus path between the bus master and the bus slave,
The period of the clock is set longer than the signal transmission time in the first partition and shorter than the total signal transmission time of the first and second partitions for any adjacent first and second partitions on the bus. Bus system.
(2) The bus system according to (1), wherein the lengths of the sections on the bus are set to be approximately equal.
(3) The bus system according to (1), wherein the bus has a tree structure as viewed from each bus master and each bus slave.
(4) The bus system according to (1), comprising at least two bus masters, wherein the at least one latch means is an arbiter for signal transmission from the bus master to the bus slave.
(5) The bus system according to (1), comprising at least two bus slaves, wherein the at least one latch means is a decoder for signal transmission from the bus master to the bus slave.
[0057]
(6) The bus system according to (4) or (5), wherein the arbiter and the latch means as a decoder are a decoder and an arbiter for signal transmission from the bus slave to the bus master, respectively.
(7) The bus path length between a specific bus master and a bus slave with a high degree of demand for high-speed data reading and writing is between other bus masters and bus slaves with a low degree of demand. And the number of latch means interposed between the specific bus master and the bus slave is less than the number interposed between the other bus master and the bus slave. The bus system as set forth in (3).
(8) The bus system according to (1), wherein the data transfer between the bus master and the bus slave is a packet system.
(9) The bus system according to (8), wherein the packet type data transfer is connectionless.
(10) The bus master includes a first bus master and a second bus master equipped with a cache;
When the arbiter receives a read request for a specific address range of the bus slave from the first bus master, the arbiter transfers the second bus master to the cache to the second bus master. If the second bus master holds data, the data is sent to the second bus master at the corresponding address of the bus slave. The bus system according to (4), which is written in the range.
[0058]
(11) The bus master, the bus slave, and the latch means are collectively referred to as components, and the upstream and downstream components in the packet transfer direction with respect to each latch means are first and second components, respectively. And three consecutive clock cycles in order from the front are called the first, second and third clock cycles,
The bus system according to (1), wherein each latch means outputs an acknowledge signal to the first component in the first clock cycle in order to receive a packet from the first component in the second clock cycle.
(12) The latch means has the first and second latches, and outputs the acknowledge signal to the first component and does not input the acknowledge signal from the second component in the first clock cycle. When the first clock cycle holds the packet to the second component in the first latch, and the second clock cycle resends the packet of the first latch to the second component and The bus system according to (11), wherein a packet from one component is latched in a second latch.
(13) The latch means stops outputting the acknowledge signal to the first component in the second clock cycle, and if the acknowledge signal is input from the second component in the second clock cycle, In the third clock cycle, the packet of the second latch is sent to the second component, the packet of the second latch is latched to the first latch, and the acknowledge signal is output to the first component. (12) The bus system as described.
(14) The arbiter defines one of the plurality of first components as a priority component, and issues an acknowledge signal to the priority component in a clock cycle in which no request signal is received from any of the first components. The bus system according to (12), wherein the latching means other than the arbiter is also parked for the only first component.
(15) The bus system according to (1), wherein the bus master, the bus slave, and the latch means are manufactured in one chip.
[0059]
(16) In a signal transmission method for a bus system in which at least one bus master and a bus slave connected via a bus each have a total number of 18 or more,
Interposing at least one latch means in the bus path between the bus master and the bus slave and dividing the bus path into a plurality of partitions;
The transmission signal is latched and output in the latch means in synchronization with the clock,
The period of the clock is set to be longer than the signal transmission time in the first partition and shorter than the total signal transmission time of the first and second partitions for any adjacent first and second partitions on the bus. To
Signal transmission method for bus systems.
(17) The signal transmission method for a bus system according to (16), wherein the lengths of the respective sections on the bus are set almost uniformly.
(18) The signal transmission method for a bus system according to (16), wherein the bus has a tree structure when viewed from each bus master and each bus slave.
(19) The number of bus masters is at least two,
The signal transmission method for a bus system according to (16), wherein at least one latch means is an arbiter for signal transmission from a bus master to a bus slave.
(20) The number of bus slaves shall be at least two,
The signal transmission method for a bus system according to (16), wherein at least one latch means is a decoder for signal transmission from a bus master to a bus slave.
[0060]
(21) The bus system signal transmission method according to (19) or (20), wherein the latch means as the arbiter and the decoder is a decoder and an arbiter for signal transmission from the bus slave to the bus master, respectively.
(22) The bus path length between a specific bus master and a bus slave having a high degree of demand for high-speed data reading and writing is set between another bus master and a bus slave having a low degree of demand. Set the number of latch means between the specific bus master and the bus slave to be less than the number of interposed between the other bus master and the bus slave. (18) The signal transmission method for a bus system according to (18).
(23) The signal transmission method for a bus system according to (16), wherein the data transfer between the bus master and the bus slave is a packet system.
(24) The signal transmission method for a bus system according to (23), wherein packet-type data transfer is connectionless.
(25) The bus master includes a first bus master and a second bus master equipped with a cache.
In operation of the arbiter, when the arbiter receives a read request for a specific address range of the bus slave from the first bus master, the arbiter sends the second bus master to the second bus master. Queries whether the cache holds data related to a specific address range of the bus slave. If the second bus master holds the data, the data is bused to the second bus master. The signal transmission method for a bus system according to (19), wherein the operation for writing in the corresponding address range of the slave is set.
[0061]
(26) The bus master, the bus slave, and the latch means are collectively referred to as components, and the upstream and downstream components adjacent to each latch means in the packet transfer direction are the first and second components, respectively. And the 18 consecutive clock cycles in order from the front are called the first, second and third clock cycles,
As an operation of each latch means, each latch means operates to output an acknowledge signal to the first component in the first clock cycle in order to receive a packet from the first component in the second clock cycle. The signal transmission method for a bus system as set forth in (16).
(27) The latch means is equipped with first and second latches,
In operation of the latch means, the latch means outputs an acknowledge signal to the first component in the first clock cycle, and the first clock cycle when no acknowledge signal is input from the second component. Hold the packet to the second component in the first latch at, and in the second clock cycle, retransmit the packet of the first latch to the second component and send the packet from the first component to the second latch. (2) The signal transmission method for a bus system according to (26), wherein an operation of latching to the latch of 2 is set.
(28) As the operation of the latch means, the latch means stops outputting the acknowledge signal to the first component in the second clock cycle, and the acknowledge signal from the second component in the second clock cycle. In the third clock cycle, the first latch packet is sent to the second component while the second latch packet is latched into the first latch, and the first component (27) The signal transmission method for a bus system according to (27), wherein an operation for outputting an acknowledge signal is set.
(29) As the operation of the arbiter, the arbiter defines one of the plurality of first components as a priority component, and in a clock cycle in which no request signal is received from any of the first components, (27) The signal transmission method for a bus system according to (27), wherein the operation for setting the operation to be set to the parking state for issuing the acknowledge signal and for the latch means other than the arbiter to be set to the parking state for the only first component.
[0062]
【The invention's effect】
According to the present invention, even if the distance between the bus master and the bus slave increases, it is possible to avoid a decrease in the operating frequency of the bus system. Bus masters and bus slaves can be widely distributed and arranged on the bus system equipment.
[Brief description of the drawings]
FIG. 1 is a conceptual configuration diagram of a typical conventional bus system.
FIG. 2 is a conceptual configuration diagram of a bus system embodying the present invention.
FIG. 3 is a diagram illustrating parallel transmission of signals in a bus system embodying the present invention.
FIG. 4 is a diagram illustrating signal suspension in a bus system embodying the present invention.
FIG. 5 is a configuration diagram of a bus system in which a distance between a bus master and a bus slave is set in consideration of overall transmission efficiency.
FIG. 6 is a diagram showing the types of packets issued by each pipeline element and their contents.
FIG. 7 is a diagram showing signals issued by the respective latch means.
FIG. 8 is an explanatory diagram showing packet flows in the bus system in order.
9 is an explanatory diagram showing the flow of packets in the bus system in order, following FIG. 8. FIG.
10 is an upstream timing chart for each signal when each latch means has only one latch in both the upstream and downstream directions in the packet transfer model of FIGS. 8 and 9. FIG.
11 is a downstream timing chart for each signal when each latch means has only one latch in both the upstream and downstream directions in the packet transfer model of FIGS. 8 and 9. FIG.
FIG. 12 is an upstream timing chart for each signal when each latch means is equipped with two latches in both the upstream and downstream directions.
FIG. 13 is a downstream timing chart for each signal when each latch means has two latches in both the upstream and downstream directions.
FIG. 14 is an upstream timing chart for each signal in the improved bus system in which the parking technology is applied to the bus system according to FIGS. 12 and 13;
15 is a downlink timing chart for each signal in the improved bus system in which the parking technology is applied to the bus system according to FIGS. 12 and 13. FIG.
FIG. 16 is an example of a timing chart for a plurality of signals related to the operation of the pipeline element.
FIG. 17 is a diagram illustrating signal input / output in each component of the bus system in the case of uplink packet transfer.
FIG. 18 is a block diagram of a pipeline element.
19 is a truth table of the pipeline element of FIG.
20 is a state transition diagram of a pipeline element based on the truth table of FIG.
FIG. 21 is a block diagram of an arbiter.
FIG. 22 is a block diagram of a decoder.
[Explanation of symbols]
19 Bus system
21a-c Bus master (component)
22a-c Bus slave (component)
23 Pipeline element (latching means)
24a, b Arbiter (latch means, component)
25a, b decoder (latch means, component)
26a, b High-speed bus master (component)
27a-f Low-speed bus master (component)
30a, b High-speed bus slave (component)
31 Low-speed bus slave (component)
32a to f Arbiter (latch means, component)
33a, b decoder (latch means, component)
34a, b Bus master (component)
35a, b Bus slave (component)
36a, b Arbiter (latch means, component)
37 Decoder (latch means, component)
43a, 43b Bus master (component)
44a, 44b Bus slave (component)
46 Arbiter (latch means, component)
47 Pipeline element (latch means)
48 Decoder (latch means, component)

Claims (25)

バスに接続されている少なくとも1個のバス・マスタ、
前記バス・マスタの個数と合わせた総数が3個以上となる個数で存在して前記バスに接続されている少なくとも1個のバス・スレーブ、及び
前記バス・マスタと前記バス・スレーブとの間のバス経路に介在して該バス経路を複数の区画に分割しクロックに同期して伝送信号のラッチ及び出力を行うラッチ手段、
を有し、
クロックの周期は、前記バス上の隣接する任意の第1及び第2の区画に対して、第1の区画における信号伝送時間より長くかつ第1及び第2の区画の合計の信号伝送時間より短く設定されており、
バス・マスタ、バス・スレーブ、及びラッチ手段をコンポーネントと総称することにし、各ラッチ手段に対してパケット転送方向へ上流側及び下流側に隣接するコンポーネントをそれぞれ第1及び第2のコンポーネントと呼び、かつ連続する3個のクロック・サイクルを前から順番に、第1、第2、及び第3のクロック・サイクルと呼ぶことにすると、
各ラッチ手段は、第2のクロック・サイクルにおいて第1のコンポーネントからパケットを受けるために、第1のクロック・サイクルにおいて第1のコンポーネントへアクノリッジ信号を出力し、
前記ラッチ手段は、第1及び第2のラッチを有し、第1のクロック・サイクルにおいて第1のコンポーネントへはアクノリッジ信号を出力しかつ第2のコンポーネントからはアクノリッジ信号を入力しなかったとき、第1のクロック・サイクルにおいて第2のコンポーネントへのパケットを第1のラッチにホールドし、第2のクロック・サイクルでは、第2のコンポーネントへ第1のラッチのパケットを再送するとともに、第1のコンポーネントからのパケットを第2のラッチにラッチすることを特徴とするバス・システム。
At least one bus master connected to the bus;
At least one bus slave connected to the bus in a total number of three or more including the number of the bus masters, and between the bus master and the bus slaves Latch means for latching and outputting a transmission signal in synchronization with a clock by dividing the bus path into a plurality of sections through the bus path;
Have
The period of the clock is longer than the signal transmission time in the first partition and shorter than the total signal transmission time of the first and second partitions for any adjacent first and second partitions on the bus. Is set ,
The bus master, the bus slave, and the latch means are collectively referred to as components, and components adjacent to the upstream and downstream sides in the packet transfer direction with respect to each latch means are referred to as first and second components, And if we call three consecutive clock cycles in order from the first, the first, second, and third clock cycles,
Each latch means outputs an acknowledge signal to the first component in the first clock cycle to receive a packet from the first component in the second clock cycle;
The latch means has first and second latches, and outputs an acknowledge signal to the first component in the first clock cycle and does not input an acknowledge signal from the second component; In the first clock cycle, the packet to the second component is held in the first latch, and in the second clock cycle, the packet of the first latch is retransmitted to the second component, and the first A bus system, wherein a packet from a component is latched in a second latch .
前記バス上の各区画の長さがほぼ均等に設定されていることを特徴とする請求項1記載のバス・システム。  2. The bus system according to claim 1, wherein the length of each section on the bus is set to be substantially equal. 前記バスは、各バス・マスタ及び各バス・スレーブから見てツリー構造となっていることを特徴とする請求項1記載のバス・システム。  2. The bus system according to claim 1, wherein the bus has a tree structure as viewed from each bus master and each bus slave. 少なくとも2個のバス・マスタを有し、
少なくとも1個のラッチ手段は、バス・マスタからバス・スレーブへの信号伝送に対するアービタであることを特徴とする請求項1記載のバス・システム。
Have at least two bus masters,
2. The bus system according to claim 1, wherein the at least one latch means is an arbiter for signal transmission from the bus master to the bus slave.
少なくとも2個のバス・スレーブを有し、少なくとも1個のラッチ手段は、バス・マスタからバス・スレーブへの信号伝送に対するデコーダであることを特徴とする請求項1記載のバス・システム。  2. The bus system according to claim 1, wherein the bus system has at least two bus slaves, and the at least one latch means is a decoder for signal transmission from the bus master to the bus slave. 前記アービタ及び前記デコーダとしてのラッチ手段は、それぞれバス・スレーブからバス・マスタへの信号伝送に対するデコーダ及びアービタとなっていることを特徴とする請求項4又は5記載のバス・システム。  6. The bus system according to claim 4, wherein the arbiter and the latch means as the decoder are a decoder and an arbiter for signal transmission from the bus slave to the bus master, respectively. データの読出し及び書込みの高速性の要求度の高い特定のバス・マスタとバス・スレーブとの間のバス経路長は、要求度の低い他のバス・マスタとバス・スレーブとの間のバス経路長未満に設定されるとともに、該特定のバス・マスタとバス・スレーブとの間におけるラッチ手段の介在個数は、該他のバス・マスタとバス・スレーブとの間の介在個数未満に設定されていることを特徴とする請求項3記載のバス・システム。  The bus path length between a specific bus master and a bus slave with high demands for high-speed data reading and writing is the bus path between other bus masters and bus slaves with low demands. The number of latch means interposed between the specific bus master and the bus slave is set to be less than the number interposed between the other bus master and the bus slave. 4. The bus system according to claim 3, wherein: バス・マスタとバス・スレーブとの間のデータ転送はパケット方式であることを特徴とする請求項1記載のバス・システム。  2. The bus system according to claim 1, wherein the data transfer between the bus master and the bus slave is a packet system. 前記パケット方式のデータ転送はコネクションレスであることを特徴とする請求項8記載のバス・システム。  9. The bus system according to claim 8, wherein the packet-based data transfer is connectionless. 前記バス・マスタは第1のバス・マスタとキャッシュを装備する第2のバス・マスタとを含み、
前記アービタは、前記バス・スレーブの特定のアドレス範囲に対するリード・リクエストを第1のバス・マスタから受け付けたとき、第2のバス・マスタへ、該第2のバス・マスタが自分のキャッシュに前記バス・スレーブの特定のアドレス範囲に係るデータを保持しているか否かを問い合わせ、前記第2のバス・マスタが前記データを保持している場合は、前記第2のバス・マスタに、前記データを前記バス・スレーブの該当アドレス範囲に書込ませることを特徴とする請求項4記載のバス・システム。
The bus master includes a first bus master and a second bus master equipped with a cache;
When the arbiter receives a read request for a specific address range of the bus slave from the first bus master, the arbiter transfers the second bus master to the cache of the second bus master. An inquiry is made as to whether or not data relating to a specific address range of the bus and slave is held, and when the second bus master holds the data, the data is sent to the second bus master. 5. The bus system according to claim 4, wherein the address is written in a corresponding address range of the bus slave.
前記ラッチ手段は、第2のクロック・サイクルでは、第1のコンポーネントへのアクノリッジ信号の出力を中止し、もし第2のクロック・サイクルにおいて第2のコンポーネントからアクノリッジ信号を入力したならば、第3のクロック・サイクルでは、第1のラッチのパケットを第2のコンポーネントへ送出しつつ、第2のラッチのパケットを第1のラッチへラッチし、かつ第1のコンポーネントへアクノリッジ信号を出力することを特徴とする請求項記載のバス・システム。The latch means stops outputting the acknowledge signal to the first component in the second clock cycle, and if the acknowledge signal is input from the second component in the second clock cycle, The first latch packet is sent to the second component, while the second latch packet is latched into the first latch and an acknowledge signal is output to the first component. bus system according to claim 1, wherein. 前記アービタは、複数個の第1のコンポーネントの内の一つを優先コンポーネントと定め、いずれの第1のコンポーネントからもリクエスト信号を受付けていないクロック・サイクルでは、優先コンポーネントへアクノリッジ信号を発行するパーキング状態にされ、また、アービタ以外のラッチ手段も唯一の第1のコンポーネントについてのパーキング状態にされていることを特徴とする請求項記載のバス・システム。The arbiter defines one of a plurality of first components as a priority component, and a parking that issues an acknowledge signal to the priority component in a clock cycle in which a request signal is not received from any of the first components. It is the state, the bus system according to claim 1, characterized in that it is also latched means other than arbiter parking state for only the first component. 前記バス・マスタ、前記バス・スレーブ、及び前記ラッチ手段が1チップ内に製作されていることを特徴とする請求項1記載のバス・システム。  2. The bus system according to claim 1, wherein the bus master, the bus slave, and the latch means are manufactured in one chip. バスを介して接続されるバス・マスタ及びバス・スレーブをそれぞれ少なくとも1個、かつ両者の総数が以上となっているバス・システムの信号伝送方法において、
少なくとも1個のラッチ手段を前記バス・マスタと前記バス・スレーブとの間のバス経路に介在させて、該バス経路を複数の区画に分割し、
クロックに同期して伝送信号をラッチ手段においてラッチ及び出力させ、
クロックの周期を、前記バス上の隣接する任意の第1及び第2の区画に対して、第1の区画における信号伝送時間より長くかつ第1及び第2の区画の合計の信号伝送時間より短く設定し、
バス・マスタ、バス・スレーブ、及びラッチ手段をコンポーネントと総称することにし、各ラッチ手段に対してパケット転送方向へ上流側及び下流側に隣接するコンポーネントをそれぞれ第1及び第2のコンポーネントと呼び、かつ連続する18個のクロック・サイクルを前から順番に、第1、第2、及び第3のクロック・サイクルと呼ぶことにすると、
各ラッチ手段の作動として、各ラッチ手段は、第2のクロック・サイクルにおいて第1のコンポーネントからパケットを受けるために、第1のクロック・サイクルにおいて第1のコンポーネントへアクノリッジ信号を出力させる作動を、設定し、
前記ラッチ手段には、第1及び第2のラッチを装備させ、前記ラッチ手段の作動として、前記ラッチ手段は、第1のクロック・サイクルにおいて第1のコンポーネントへはアクノリッジ信号を出力しかつ第2のコンポーネントからはアクノリッジ信号を入力しなかったとき、第1のクロック・サイクルにおいて第2のコンポーネントへのパケットを第1のラッチにホールドし、第2のクロック・サイクルでは、第2のコンポーネントへ第1のラ ッチのパケットを再送するとともに、第1のコンポーネントからのパケットを第2のラッチにラッチする作動を設定することを特徴とするバス・システム用信号伝送方法。
In a signal transmission method for a bus system in which at least one bus master and a bus slave are connected via a bus, and the total number of both is three or more,
Interposing at least one latch means in a bus path between the bus master and the bus slave, and dividing the bus path into a plurality of partitions;
The transmission signal is latched and output in the latch means in synchronization with the clock,
The period of the clock is longer than the signal transmission time in the first partition and shorter than the total signal transmission time of the first and second partitions, for any adjacent first and second partitions on the bus. set,
The bus master, the bus slave, and the latch means are collectively referred to as components, and components adjacent to the upstream and downstream sides in the packet transfer direction with respect to each latch means are referred to as first and second components, respectively. And if we call the 18 consecutive clock cycles in order from the front, the first, second, and third clock cycles,
As an operation of each latch means, each latch means operates to output an acknowledge signal to the first component in the first clock cycle in order to receive a packet from the first component in the second clock cycle. Set,
The latch means is equipped with first and second latches, and in operation of the latch means, the latch means outputs an acknowledge signal to the first component and a second in a first clock cycle. When no acknowledge signal is input from the first component, the packet to the second component is held in the first latch in the first clock cycle, and the second component is sent to the second component in the second clock cycle. with retransmitting the packet of the first latches, bus system for signal transmission method characterized by setting the operation of latching a packet from a first component to a second latch.
前記バス上の各区画の長さをほぼ均等に設定することを特徴とする請求項14記載のバス・システム用信号伝送方法。15. The signal transmission method for a bus system according to claim 14, wherein the lengths of the respective sections on the bus are set substantially evenly. 前記バスを、各バス・マスタ及び各バス・スレーブから見てツリー構造とすることを特徴とする請求項14記載のバス・システム用信号伝送方法。15. The signal transmission method for a bus system according to claim 14 , wherein the bus has a tree structure as viewed from each bus master and each bus slave. バス・マスタの個数を少なくとも2個とし、少なくとも1個のラッチ手段を、バス・マスタからバス・スレーブへの信号伝送に対するアービタとすることを特徴とする請求項14記載のバス・システム用信号伝送方法。15. The signal transmission for a bus system according to claim 14 , wherein the number of bus masters is at least two and at least one latch means is an arbiter for signal transmission from the bus master to the bus slave. Method. バス・スレーブの個数を少なくとも2個とし、
少なくとも1個のラッチ手段を、バス・マスタからバス・スレーブへの信号伝送に対するデコーダとすることを特徴とする請求項14記載のバス・システム用信号伝送方法。
The number of bus slaves is at least 2,
15. The signal transmission method for a bus system according to claim 14, wherein at least one latch means is a decoder for signal transmission from a bus master to a bus slave.
前記アービタ及び前記デコーダとしてのラッチ手段を、それぞれバス・スレーブからバス・マスタへの信号伝送に対するデコーダ及びアービタとすることを特徴とする請求項17又は18記載のバス・システム用信号伝送方法。19. The bus system signal transmission method according to claim 17, wherein the arbiter and the latch means as the decoder are a decoder and an arbiter for signal transmission from a bus slave to a bus master, respectively. データの読出し及び書込みの高速性の要求度の高い特定のバス・マスタとバス・スレーブとの間のバス経路長を、要求度の低い他のバス・マスタとバス・スレーブとの間のバス経路長未満に設定するとともに、該特定のバス・マスタとバス・スレーブとの間におけるラッチ手段の介在個数を、該他のバス・マスタとバス・スレーブとの間の介在個数未満に設定することを特徴とする請求項16記載のバス・システム用信号伝送方法。The bus path length between a specific bus master and a bus slave with high demands for high-speed data reading and writing, and the bus path between other bus masters and bus slaves with low demands And setting the number of intervening latch means between the specific bus master and the bus slave to be less than the intervening number between the other bus master and the bus slave. 17. A signal transmission method for a bus system according to claim 16, characterized in that: バス・マスタとバス・スレーブとの間のデータ転送をパケット方式とすることを特徴とする請求項14記載のバス・システム用信号伝送方法。15. The signal transmission method for a bus system according to claim 14 , wherein the data transfer between the bus master and the bus slave is a packet system. 前記パケット方式のデータ転送をコネクションレスとすることを特徴とする請求項21記載のバス・システム用信号伝送方法。 22. The signal transmission method for a bus system according to claim 21, wherein the packet-based data transfer is connectionless. 前記バス・マスタには、第1のバス・マスタとキャッシュを装備する第2のバス・マスタとを含ませ、
前記アービタの作動として、前記アービタは、前記バス・スレーブの特定のアドレス範囲に対するリード・リクエストを第1のバス・マスタから受け付けたとき、第2のバス・マスタへ、該第2のバス・マスタが自分のキャッシュに前記バス・スレーブの特定のアドレス範囲に係るデータを保持しているか否かを問い合わせ、前記第2のバス・マスタが前記データを保持している場合は、前記第2のバス・マスタに、前記データを前記バス・スレーブの該当アドレス範囲に書込ませる作動を、設定することを特徴とする請求項17記載のバス・システム用信号伝送方法。
The bus master includes a first bus master and a second bus master equipped with a cache;
As the operation of the arbiter, when the arbiter receives a read request for a specific address range of the bus slave from the first bus master, the arbiter sends the second bus master to the second bus master. Inquires about whether or not the data related to a specific address range of the bus slave is held in its cache, and if the second bus master holds the data, the second bus 18. The bus system signal transmission method according to claim 17 , wherein an operation for causing the master to write the data in a corresponding address range of the bus slave is set.
前記ラッチ手段の作動として、前記ラッチ手段は、第2のクロック・サイクルでは、第1のコンポーネントへのアクノリッジ信号の出力を中止し、もし第2のクロック・サイクルにおいて第2のコンポーネントからアクノリッジ信号を入力したならば、第3のクロック・サイクルでは、第1のラッチのパケットを第2のコンポーネントへ送出しつつ、第2のラッチのパケットを第1のラッチへラッチし、かつ第1のコンポーネントへアクノリッジ信号を出力する作動を、設定することを特徴とする請求項14記載のバス・システム用信号伝送方法。As the operation of the latching means, the latching means stops outputting the acknowledge signal to the first component in the second clock cycle, and receives the acknowledge signal from the second component in the second clock cycle. If entered, in the third clock cycle, the second latch packet is latched into the first latch and the first latch packet is sent to the second component while being sent to the second component. 15. The signal transmission method for a bus system according to claim 14 , wherein an operation for outputting an acknowledge signal is set. 前記アービタの作動として、前記アービタは、複数個の第1のコンポーネントの内の一つを優先コンポーネントと定め、いずれの第1のコンポーネントからもリクエスト信号を受付けていないクロック・サイクルでは、優先コンポーネントへアクノリッジ信号を発行するパーキング状態にされ、また、アービタ以外のラッチ手段も唯一の第1のコンポーネントについてのパーキング状態にされる作動を、設定することを特徴とする請求項14記載のバス・システム用信号伝送方法。As the operation of the arbiter, the arbiter defines one of a plurality of first components as a priority component, and in a clock cycle in which a request signal is not received from any of the first components, 15. The bus system according to claim 14 , wherein the operation is set to a parking state for issuing an acknowledge signal and a latching means other than the arbiter is set to a parking state for only the first component. Signal transmission method.
JP2001348268A 2001-11-14 2001-11-14 Bus system and signal transmission method Expired - Fee Related JP3659345B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001348268A JP3659345B2 (en) 2001-11-14 2001-11-14 Bus system and signal transmission method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001348268A JP3659345B2 (en) 2001-11-14 2001-11-14 Bus system and signal transmission method

Publications (2)

Publication Number Publication Date
JP2003150540A JP2003150540A (en) 2003-05-23
JP3659345B2 true JP3659345B2 (en) 2005-06-15

Family

ID=19161121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001348268A Expired - Fee Related JP3659345B2 (en) 2001-11-14 2001-11-14 Bus system and signal transmission method

Country Status (1)

Country Link
JP (1) JP3659345B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100461145C (en) * 2006-05-08 2009-02-11 中兴通讯股份有限公司 Asynchrous AHB interconnection matrix interface device
JP5041527B2 (en) * 2007-08-03 2012-10-03 株式会社ミマキエンジニアリング Data transfer apparatus, request generation apparatus, and request generation method
CN111435340B (en) * 2020-01-14 2023-07-21 珠海市杰理科技股份有限公司 Internet bus unit, data transmission method, wishbone Internet module and chip

Also Published As

Publication number Publication date
JP2003150540A (en) 2003-05-23

Similar Documents

Publication Publication Date Title
JP4024875B2 (en) Method and apparatus for arbitrating access to shared memory for network ports operating at different data rates
EP0993680B1 (en) Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
US7554355B2 (en) Crossbar switch architecture for multi-processor SoC platform
KR100814904B1 (en) On-Chip Communication architecture
JP4621604B2 (en) Bus device, bus system, and information transfer method
US5896516A (en) Method and apparatus for reducing propagation latency in a high speed crossbar switch
KR20020009823A (en) Bus system and bus arbitration method thereof
JP3578075B2 (en) Disk array control device and disk array control method
JP3659345B2 (en) Bus system and signal transmission method
CN112882986A (en) Many-core processor with super node and super node controller
EP1588276B1 (en) Processor array
JP4104939B2 (en) Multiprocessor system
US6701407B1 (en) Multiprocessor system with system modules each having processors, and a data transfer method therefor
KR100438736B1 (en) Memory control apparatus of performing data writing on address line
US7519848B2 (en) Data transfer apparatus
US20080320193A1 (en) Information processing apparatus
JPH10307787A (en) Buffer memory device
CN116303221B (en) Data transmission method of multi-core processor network-on-chip system
EP1459191B1 (en) Communication bus system
JP2976700B2 (en) Synchronous control method between processors
JP3062441B2 (en) Data communication control device between information processing systems
JP3336623B2 (en) Data transfer method
JPH10289191A (en) Data transfer device and data transfer system
JPS583048A (en) Control system of common memory
JP2004054419A (en) Inter-node transaction processor

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050117

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050302

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20050302

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050308

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090325

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100325

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110325

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees