(57)【要約】【課題】同期バスの動作周波数の柔軟性を改善すること。【解決手段】一態様において、集積回路チップ上のコンピュータ・システムのバスに結合されたサブシステム間で通信するための方法は、サブシステムが互いにバスを介して通信していない場合に、サブシステムを独立したクロック周波数で動作させるステップを含んでいる。サブシステムの選択された対を、そのサブシステムに供給されるクロック信号の周波数を選択的に変化させることによって、共有クロック周波数で動作させ、選択されたサブシステム同士がバスを介して、その共有クロック周波数（ただし、サブシステムの対が異なるごとにクロック周波数は異なる）で通信できるようにし、また、他のサブシステムと通信していない場合は、サブシステムが独立したクロック周波数で動作できるようにする。サブシステム間の通信は、バスベースのプロトコルによって行われ、そのため、あるサブシステムがバスに対するアクセスを許可された場合、そのサブシステムは排他的にバスを使用できるようになる。【選択図】図２
2004199664.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・システムのバスに結合されたサブシステム間で通信するための方法であって、前記サブシステム間の通信が、前記バスに対するアクセスを許可されたサブシステムが前記バスを排他的に使用できるバスベースのプロトコルによって行われ、
ａ）前記サブシステムが互いに通信していないときは、サブシステムを独立したクロック周波数で動作させるステップと、
ｂ）通信を行うために前記サブシステムのうちの第１および第２のサブシステムを選択するステップと、
ｃ）前記サブシステムのうちの前記選択されたサブシステムを、通信期間中、前記選択されたサブシステムに応じて選択されたクロック周波数で動作させて、前記サブシステムのうちの前記選択されたサブシステム間の通信を、前記サブシステムの異なる対ごとに異なる共有クロック周波数となる、共有クロック周波数で行えるようにするステップとを含む方法。
【請求項２】
前記サブシステムが、それぞれのクロック周波数範囲で動作し、また、ステップａ）が、前記サブシステムにそれぞれのクロック信号をクロック分配器によって供給するステップを含み、前記クロック信号が、前記サブシステムそれぞれに固有な範囲内にある所定の独立したクロック周波数で、それぞれのサブシステムに供給される、請求項１に記載の方法。
【請求項３】
ステップｂ）が、
前記サブシステムのうちの前記選択された第１および第２のサブシステムが共有するクロック周波数範囲を、前記通信期間用にクロック分配器によって識別するステップと、
前記サブシステムのうちの前記第１および第２のサブシステム間のトランザクションのためにクロック分配器によって単一の共有クロック周波数を選択するステップとを含む、請求項２に記載の方法。
【請求項４】
ステップｃ）が、
クロック信号が、クロック分配器によって、前記第１および第２のサブシステムには、通信期間用の前記選択された単一のクロック周波数で供給され、同時に、前記サブシステムのうちのその他のサブシステムには、それぞれのクロック信号がそれぞれ所定の独立した周波数で供給されるステップを含む、請求項３に記載の方法。
【請求項５】
ステップｃ）が、通信期間中の一定の間、前記第１および第２のサブシステム間の通信を、前記選択された単一のクロック周波数で行うステップを含み、前記方法が、通信の完了に応答して、前記第１および第２のサブシステムを、それぞれ独立のクロック周波数での動作に復帰させるステップを含む、請求項４に記載の方法。
【請求項６】
アドレス・サイクルをオーバラップさせるステップを含み、前記バスが、スレーブ・サブシステムによって共用されるアドレスおよびデータ・バス部を有し、前記オーバラップ・ステップが、第１のマスタと第１のスレーブとが前記データ・バス部を介して通信している同じ時に、第２のマスタが第２のスレーブに前記アドレス・バス部を介してアドレスするステップを含み、前記オーバラップが、前記第１および第２のマスタが同一のマスタ・サブシステムであり、かつ前記第１および第２のスレーブが同一のスレーブ・サブシステムである場合にのみ許可される、請求項１に記載の方法。
【請求項７】
コンピュータ・システムのバスに結合されたサブシステム間で通信するための方法であって、前記サブシステム間の通信がバスベースのプロトコルによって行われ、そのため、あるサブシステムが前記バスに対するアクセスを許可された場合、そのサブシステムは前記バスを排他的に使用でき、
ａ）前記サブシステムのための第１のモードで動作するステップであって、前記サブシステムがそれぞれ異なるクロック周波数範囲で動作でき、前記第１のモードでの動作が、
それぞれ異なるサブシステム・クロック信号をクロック分配器によってサブシステムに供給するステップであって、前記サブシステム・クロック信号が前記サブシステムそれぞれに固有な範囲内にある所定の独立したクロック周波数でそれぞれのサブシステムに供給されるステップを含むステップと、
ｂ）前記サブシステムのうちの第１のサブシステムが、前記サブシステムのうちの第２のサブシステムと通信するために、前記バスに対するアクセスを要求するステップと、
ｃ）前記要求に応答して、前記サブシステムのうちの調停サブシステムが、前記サブシステムのうちの前記第１のサブシステムに、前記アクセスを許可するステップと、
ｄ）前記許可に応答して、前記サブシステムのうちの前記第１のサブシステムが、選択信号をアサートし、前記サブシステムのうちの前記第２のサブシステムのアドレスを出力するステップと、
ｅ）前記サブシステムのうちの前記第１のサブシステムのための前記選択信号と前記サブシステムのうちの前記第２のサブシステムのアドレスとを受信したことに応答して、前記クロック分配器が、前記サブシステムのうちの前記第１および第２のサブシステムに供給される前記サブシステム・クロック信号のための共有クロック周波数範囲を識別するステップと、
ｆ）前記クロック分配器が、前記サブシステムのうちの前記第１および第２のサブシステムに供給される前記サブシステム・クロック信号のための単一のクロック周波数を選択するステップであって、前記選択されたクロック周波数が前記共有クロック周波数範囲内に収まるステップとを含む方法。
【請求項８】
ｇ）前記第１、第２、および調停サブシステムのための第２のモードで動作するステップであって、前記第２のモードで動作するステップが、
前記サブシステム・クロック信号のそれぞれのクロック信号が、前記クロック分配器によって、前記選択された共有クロック周波数で前記第１、第２、および調停サブシステムに供給されるステップと、
前記サブシステム・クロック信号のそれぞれのクロック信号が、それぞれ所定の独立した周波数で前記システム内にある前記サブシステムのうちのその他のサブシステムに供給されるステップとを含む、請求項７に記載の方法。
【請求項９】
ｈ）前記選択された共有クロック周波数で、前記第１および第２のサブシステム間の通信を行うステップと、
ｉ）前記通信の完了に応答して、前記第１のサブシステムによる前記選択信号をデアサートするステップと、
ｊ）前記デアサートに応答して、前記第１のモードでの動作に復帰するステップとを含む、請求項８に記載の方法。
【請求項１０】
前記クロック分配器のそれぞれのクロック分割器が、システム・クロック信号とそれぞれの除数値とを受信し、前記第１、第２、および調停サブシステムに供給するためにそれぞれのサブシステム・クロック信号を生成する、請求項８に記載の方法。
【請求項１１】
前記クロック分配器のそれぞれのマルチプレクサが、固定周波数のサブシステム・クロック信号を受信し、前記第１、第２、および調停サブシステムに供給するために前記サブシステム・クロック信号の１つを選択する、請求項８に記載の方法。
【請求項１２】
システム・クロック信号の周波数よりも低い周波数で、サブシステム・クロック信号を供給し、
前記サブシステム・クロック信号のためにサンプル・サイクル信号をアサートして、第１のモードでの動作から第２のモードでの動作へのグリッチなしの切替えのための調整を行うステップであって、前記サンプル・サイクル信号が、対応するサブシステム・クロック信号のために、前記サブシステム・クロック信号が高になるより１システム・クロック・サイクル前にアサートされるステップを含む、請求項８に記載の方法。
【請求項１３】
前記第１、第２および調停サブシステムに供給される特定の前記サブシステム・クロック信号のためのリセット信号をアサートするステップであって、前記特定のサブシステム・クロック信号のためのそれぞれのサンプル・サイクル信号に応答して、前記リセット信号がアサートされるステップを含む、請求項１２に記載の方法。
【請求項１４】
前記特定のサブシステム・クロック信号のための前記サンプル・サイクル信号のうちの最後のサンプル・サイクル信号がアサートされたことに応答して、前記特定のサブシステム・クロック信号のためのリセット信号をデアサートするステップを含む、請求項１３に記載の方法。
【請求項１５】
前記特定のサブシステム・クロック信号のためのリセット信号がデアサートされたことに応答して、前記第２のモードでの動作に切り替えるステップを含む、請求項１４に記載の方法。
【請求項１６】
バスに結合されたサブシステムであって、サブシステム間の通信が、前記バスに対するアクセスを許可されたサブシステムの１つが前記バスを排他的に使用できるバスベースのプロトコルによって行われ、前記サブシステムがそれぞれのクロック周波数範囲で動作できるサブシステムと、
第１の動作モードにおいて、前記サブシステムに、前記サブシステムそれぞれに固有な範囲内にある所定の独立した周波数で、それぞれのサブシステム・クロック信号を供給するように動作可能なクロック分配器と、
前記サブシステムのいくつかによる前記バスに対するアクセス要求を調停するための調停器とを含み、前記サブシステムのうちの第１のサブシステムが、前記サブシステムのうちの第２のサブシステムと通信するために、前記調停器によって前記バスに対するアクセスを許可されたと判断したことに応答して、前記クロック分配器が、前記サブシステムのうちの前記第１および第２のサブシステムのための共有クロック周波数範囲を識別し、かつ前記通信のための単一のクロック周波数を選択するように動作可能であり、前記選択されたクロック周波数が前記共有クロック周波数範囲内にある、コンピュータ・システム。
【請求項１７】
アドレス・サイクルをオーバラップさせることができるように、前記バスのアドレス部と読取りデータ部と書込みデータ部とを互いに分離するための論理回路を含み、スレーブ・サブシステムによって共用されるアドレスおよびデータ・バス部のうちの、データ・バス部上で、第１のマスタ・サブシステムが第１のスレーブ・サブシステムとデータを送受信でき、それと同時に、アドレス・バス上で、第２のマスタ・サブシステムが第２のスレーブ・サブシステムをアドレスでき、前記論理回路が、前記第１および第２のマスタが同一のマスタ・サブシステムであり、かつ前記第１および第２のスレーブが同一のスレーブ・サブシステムである場合にのみ、アドレスのオーバラップを許可するように動作可能である、請求項１６に記載のコンピュータ・システム。
【請求項１８】
前記クロック分配器が、前記第１、第２、および調停サブシステムに対しては第２のモードで動作するように動作可能であり、このモードで前記クロック分配器が、前記第１、第２、および調停サブシステムにそれぞれのサブシステム・クロック信号を前記選択された共有クロック周波数で供給し、また前記システム内のその他のサブシステムにはそれぞれのサブシステム・クロック信号をそれぞれ前記所定の独立した周波数で供給する、請求項１６に記載のコンピュータ・システム。
【請求項１９】
前記調停器から前記許可指示を受信したことに応答して、前記第１のサブシステムが、選択信号をアサートし、かつ前記サブシステムのうちの前記第２のサブシステムのアドレスをアドレス・バス上にアサートし、また、前記クロック分配器が、前記第１のサブシステムが前記第２のサブシステムと通信するため前記調停器によって前記バスに対するアクセスを許可されたことを確認するため、前記選択信号を受信し、かつ前記アドレスを前記アドレス・バスから読み取る、請求項１６に記載のコンピュータ・システム。
【請求項２０】
前記クロック分配器が、前記第１、第２、および調停サブシステムに対しては第２のモードで動作するように動作可能であり、このモードで前記クロック分配器が、前記第１、第２、および調停サブシステムにはそれぞれのサブシステム・クロック信号を前記選択された共有クロック周波数で供給し、また前記システム内のその他のサブシステムにはそれぞれのサブシステム・クロック信号をそれぞれ前記所定の独立した周波数で供給する、請求項１９に記載のコンピュータ・システム。
【請求項２１】
前記第１および第２のサブシステムが、前記選択された共有クロック周波数で通信し、前記通信の完了に応答して、前記選択信号が、前記第１のサブシステムによってデアサートされ、前記第１および第２のサブシステムが、前記第１のモードでの動作に復帰する、請求項２０に記載のコンピュータ・システム。
【請求項２２】
前記クロック分配器が、クロック分割器を含み、前記クロック分割器の各々が、システム・クロック信号とそれぞれの除数値とを受信し、前記第１、第２、および調停サブシステムに供給するためにそれぞれのサブシステム・クロック信号を生成するように動作可能である、請求項２１に記載のコンピュータ・システム。
【請求項２３】
前記クロック分配器が、マルチプレクサを含み、前記マルチプレクサの各々が、固定周波数のサブシステム・クロック信号を受信し、前記第１、第２、および調停サブシステムに供給するために前記サブシステム・クロック信号のいくつかを選択するように動作可能である、請求項２１に記載のコンピュータ・システム。
【請求項２４】
前記サブシステム・クロック信号が、システム・クロック信号の周波数よりも低い周波数で供給され、前記クロック分配器が、前記サブシステム・クロック信号のためのサンプル・サイクル信号をアサートして、第１のモードでの動作から第２のモードでの動作へのグリッチなしの切替えのための調整を行い、前記サンプル・サイクル信号が、対応するサブシステム・クロック信号のために、前記サブシステム・クロック信号が高になるよりも１システム・クロック・サイクル前にアサートされる、請求項２１に記載のコンピュータ・システム。
【請求項２５】
前記クロック分配器が、前記第１、第２、および調停サブシステムに供給される特定の前記サブシステム・クロック信号のためのリセット信号をアサートし、前記リセット信号が、前記特定のサブシステム・クロック信号のためのそれぞれの前記サンプル・サイクル信号に応答してアサートされる、請求項２４に記載のコンピュータ・システム。
【請求項２６】
前記クロック分配器が、前記特定のサブシステム・クロック信号のための前記サンプル・サイクル信号のうちの最後のサンプル・サイクル信号がアサートされたことに応答して、前記特定のサブシステム・クロック信号のためのリセット信号をデアサートする、請求項２５に記載のコンピュータ・システム。
【請求項２７】
前記クロック分配器が、前記特定のサブシステム・クロック信号のためのリセット信号がデアサートされたことに応答して、前記第２のモードでの動作に切り替わる、請求項２６に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサなどのシステムのための同期バスの動作に関し、より詳細には、同期バスを介してサブシステムを選択的に相互接続するための動的に変化可能なクロック・ドメイン（dynamically scalable clock domain）に関する。
【背景技術】
【０００２】
本発明が扱う問題は、集積回路のエネルギー消費に関する。ある状況では、エネルギー消費の上で多大な影響があるので、集積回路の動作電圧を下げることが望ましい。一般に、集積回路のエネルギー消費は、動作電圧の２乗に比例する。エネルギー消費は、組込みプロセッサの回路にとって、ますます重要になっているが、それは、これらのプロセッサが、パーソナル・デジタル・アシスタントなどのポータブル装置でよく使用され、これらの装置が、より大きな処理能力を必要とする適用例に、ますます使用されるようになっているからである。これらの適用例には、インターネットのブラウジング用などの、音声再生や画像表示が含まれる。しかし、動作電圧を下げることの副次的な影響は、消費エネルギーほどではないにしても、動作周波数も下がることである。例えば、動作電圧を半分にカットすると一般に、消費エネルギーは４分の１低下するが、動作周波数はほぼ２分の１低下するだけである。
【０００３】
一つには、比較的小さな電力を消費するポータブル装置で用いられる組込みコントローラの性能をより高める必要性から、最近、集積回路の動作電圧を素早く下げるための機能が改善された。そのため、動作周波数により大きな柔軟性をもたせることが必要になった。
【０００４】
本発明が扱う別の問題は、新しいシステムの設計と既存システム設計の再利用とのトレードオフに関する。すなわち、組込みコントローラを設計する過程では一般に、プロセッサの動作周波数を上げて、全体的なシステム性能を改善するための多くの機会が生じる。しかし通常は、サブシステムの動作周波数を上げるために、多大な設計上の努力が必要となる。したがって、システム設計の中ではある種のダイナミクスが働いており、そのダイナミクスによれば、いくつかのサブシステム、特にプロセッサを、動作周波数が上げるように再設計しながら、それと同時に、少なくともいくつかの古いサブシステムの設計を、その動作周波数を上げることなく再利用することが望ましい。しかし、これは特に同期バスの場合に問題が生じる。
【０００５】
ＩＢＭの「CoreConnect」バス・アーキテクチャに見られるように、組込みプロセッサに同期バスを使用することが常法となっている（「CoreConnect」はＩＢＭ社の商標）。このバス・アーキテクチャの態様は、ここに参照として本明細書に組み込む白書「TheCoreConnect Bus Architecture」、http://www-3.ibm.com/chips/products/coreconnect、に記載されている。このアーキテクチャでは、組込みコントローラ上のプロセッサ・ローカル・バス（「ＰＬＢ」）およびオンチップ周辺バス（「ＯＰＢ」）が共に同期バスであり、そのため、一方または他方のバスに接続される装置はバス上に送出されるクロック信号と同期して動作する。
【０００６】
ここで図１を参照すると、従来技術による、従来のＯＰＢ１１０に接続された諸装置がハイレベル図で示されている。ｃｌｋ１２０信号は、外部ソースから、図示されている諸装置、すなわち、ＯＰＢ調停器１３０、第１のＯＰＢマスタ１４０．１、第２のＯＰＢマスタ１４０．２、およびＯＰＢスレーブ１５０．１を含めてＯＰＢ１１０につながる諸装置に提供され、装置１３０、１４０．１などは、ｃｌｋ１２０によって調整された同じ周波数で動作する。
【０００７】
同期バスを用いるシステムの設計において、サブシステムをより高い周波数で動作させるように再設計することには難しい問題がある。というのは、当技術分野の現状によれば、システム内の同期バスは、最も高い周波数で動作するサブシステムに適合するのに十分な高さの周波数で動作する必要があり、そのため、１つのサブシステムを再設計するには、より高い周波数で動作する同期バスに接続されたすべてのサブシステムをアップグレードさせる必要があるからである。
【非特許文献１】「The CoreConnect Bus Architecture」、http://www-3.ibm.com/chips/products/coreconnect
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述の理由から、同期バスの動作周波数の柔軟性を改善する必要がある。
【課題を解決するための手段】
【０００９】
本発明は、上述した必要性に対処するものであり、サブシステムに供給されるクロック信号の動作周波数を選択的に変化させることにより、バスを共用するサブシステムの動作周波数を操作する。この方法では、選択されたサブシステム同士は共有するクロック周波数で通信を行うことができ、別の組合せのサブシステム同士は別のクロック周波数で通信を行うことができ、サブシステムがバスを介して互いに通信を行わない場合は、それらのサブシステムは独立したクロック周波数で動作することができる。
【００１０】
本発明の一態様においては、通信要求および既存のバス・ハンドシェイク機構やバス・プロトコル機構に応答して、動的に変化可能なクロック分割器が、サブシステムの一時的な同期動作を生じさせる。それらの一時的な同期動作によってサブシステム間の通信が可能となり、通信が終了すると、各システムは、それぞれの独立したクロック周波数での動作に戻る。これにより、より速いサブシステムは、同期通信を行っている間は、より遅いサブシステムに適合するより遅い周波数で動作可能であり、同期通信を行っていない場合は、より速い周波数で動作可能であり、それ故、すべてのサブシステムをアップグレードさせてより高い周波数で動作可能にしなくても、同期バス・プロトコルを用いながら、より高いパフォーマンスを実現することができる。
【００１１】
本発明のその他の目的、利点、態様、および形態は、添付の図面を参照しながら、以下に記載の詳細な説明を読めばより明らかとなるであろう。
【発明を実施するための最良の形態】
【００１２】
本明細書に添付する特許請求の範囲には、本出願者らが本発明の特徴であると考える新規な機能が記載されている。本発明、およびその好ましい使用形態、さらなる目的および利点は、以下に記載の例示的な実施形態の詳細な説明を添付の図面と併せて読むことにより最もよく理解されるであろう。
【００１３】
本発明の一実施形態においては、マイクロコントローラとも称される組込みプロセッサは、システム・オン・チップ（「ＳＯＣ」）の一部をなす。ここで図２を参照すると、システム２００の諸態様が示されている。ＳＯＣ組込みプロセッサは一般に、デスクトップ、ワークステーション、またはサーバ用のプロセッサほど複雑な機能はもたないが、それでも、本実施形態のシステム２００は、ＰＬＢ（図示せず）およびＯＰＢ２１０が存在するバス階層をもつ。
【００１４】
この実施形態におけるバスは、同期共有バスベース（synchronousshared-bus-based）のプロトコルで動作する。このプロトコルは、少なくともいくつかの点で、スイッチベース（switch-based）のプロトコルよりも単純であり、また拡張性もある。バスベースのプロトコルの場合、バスに対するアクセスを許可された装置は、バスを排他的に使用できるようになる。これはブロードキャスト・トランザクションに適している。バスベースのプロトコルを用いる同期バスの利点は、伝送待ち時間が管理しやすいことである。すなわち、例えば、装置の１つがあるクロック・サイクルでバス上にデータを送出した場合、受信側がそのデータを所定の数だけ遅れたサイクルで受信するであろうことが、ある確実性をもってわかる。そのため、送信側は、データが伝送されている間は、調整された方式の下で、別のタスクを処理することができる（バスベースのプロトコルとは対照的に、スイッチベースのプロトコルでは、バス上の装置間で複数の同時接続を許可するには、無閉塞スイッチが必要となる）。
【００１５】
図２では特に、システム２００のための、ＯＰＢ２１０と、第１のマスタ装置２４０．１、第２のマスタ装置２４０．２、スレーブ装置２５０．１を含めてＯＰＢ２１０に結合された周辺装置とに焦点を当てている。他の実施形態においては、システム２００は、マスタおよびスレーブ装置を含めて、例として示されているよりも多くの周辺装置を備えてもよいことを理解されたい。第１のマスタ装置２４０．１は、ＯＰＢ２１０に接続された（ported to）固有のアドレス・バス１＿ａｂｕｓおよび固有のデータ・バス１＿ｄｂｕｓを有する。同様に、第２のマスタ装置２４０．２は、ＯＰＢ２１０に接続された固有のアドレス・バス２＿ａｂｕｓおよび固有のデータ・バス２＿ｄｂｕｓを有する。マスタ装置２４０．１、２４０．２は、それぞれ要求線１＿ｒｅｑ、２＿ｒｅｑおよび許可線１＿ｇｒａｎｔ、２＿ｇｒａｎｔによってＯＰＢ調停器２３０に結合され、マスタ装置２４０．１、２４０．２は、ＯＰＢ調停器２３０からバス２１０に対する排他的なアクセス許可を得るために、それぞれの要求線上に要求を出すことができる。許可を与える場合、調停器２３０は、マスタそれぞれの許可線１＿ｇｒａｎｔまたは２＿ｇｒａｎｔを介して、要求が認められたことを示す信号をマスタ２４０．１または２４０．２に送る。
【００１６】
スレーブ装置２５０．１は、固有のデータ・バス３＿ｄｂｕｓをもつが、固有のアドレス・バス３＿ａｂｕｓはもたない。その代わりに、スレーブ装置２５０．１は、システム２００内の他のスレーブ装置（図示せず）と共通アドレス・バスａｂｕｓを共用する。明示的に示してはいないが、マスタ装置２４０．１、２４０．２もまたアドレス・バスａｂｕｓに結合され、相互に通信するために、一方のマスタが他方のマスタをアドレスできることを理解されたい。
【００１７】
システム２００はさらに、ＯＰＢクロック分配器２１５を含み、この分配器は、クロック線ｃｌｋ２２０から（本明細書では「システム」クロック信号と呼ぶこともある）外部クロック信号を受信し、それに応答して、システム２００の個々の装置、すなわち調停器２３０、マスタ２４０．１、マスタ２４０．２、スレーブ２５０．１に接続された図示のクロック線ｃｌｋ＿ａｒｂ、ｃｌｋ＿１、ｃｌｋ＿２、ｃｌｋ＿３上にそれぞれのサブシステム用のクロック信号を生成する。図示の実施形態によれば、生成されるクロック信号ｃｌｋ＿１、ｃｌｋ＿２、ｃｌｋ＿３、およびｃｌｋ＿ａｒｂは、生成されるクロック信号よりも少なくとも２倍速い受信クロック信号ｃｌｋ２２０とエッジ整合（edge aligned）である（便宜上、本明細書では、信号をその信号を伝送する線と同じ名前で呼ぶ）。
【００１８】
ＯＰＢクロック分配器２１５は、調停器２３０の周囲の「ラッパ（wrapper）」として本質的に振舞う他の数々の受信信号に応答して、サブシステム用のクロック信号ｃｌｋ＿１、ｃｌｋ＿２、ｃｌｋ＿３、およびｃｌｋ＿ａｒｂを生成し、選択的かつグリッチなし（glitchlessly）にそれらを同期させる。具体的には、クロック分配器２１５は、マスタ２４０．１、２４０．２から、それぞれ選択線ｍ１＿ｓｅｌｅｃｔ、ｍ２＿ｓｅｌｅｃｔを介して信号を受信し、またスレーブ・アドレス・バスａｂｕｓ上に出力された（assert）アドレスを受信する。ＯＰＢクロック分配器２１５はまた、図示のリセット線からリセット信号を受信する。
【００１９】
ＯＰＢバスがアイドル状態にある場合、いずれのマスタ２４０．１、２４０．２も、それぞれの線ｍ１＿ｓｅｌｅｃｔ、ｍ２＿ｓｅｌｅｃｔ上の選択信号をアサートしておらず、ＯＰＢクロック分配器２１５は、装置２４０．１などのために、それぞれ装置２４０．１など各装置ごとに事前定義された独立したクロック周波数で動作クロック信号ｃｌｋ＿１、ｃｌｋ＿２、ｃｌｋ＿３、およびｃｌｋ＿ａｒｂを生成する。
【００２０】
マスタ２４０．１または２４０．２が他の装置と通信しようとする場合、マスタは、それぞれの要求線１＿ｒｅｑまたは２＿ｒｅｑ上で要求信号をアサートし、調停器２３０からの許可を待つ。調停器２３０は、すべての保留中の要求を調整し、要求側の１つにバス２１０に対するアクセス許可を与える。
【００２１】
例えば、調停器２３０は、要求のなかでもとりわけ、１＿ｒｅｑ上のマスタ２４０．１からの要求に応答して、マスタ２４０．１に１＿ｇｒａｎｔをアサートする。マスタ２４０．１は、許可信号に応答してｍ１＿ｓｅｌｅｃｔをアサートし、マスタ２４０．１がバス２１０に対する排他的アクセス権をもつ（「バス２１０を所有する」）ことをクロック分配器２１５に通知する。マスタ２４０．１はまた、そのアドレス・バス１＿ａｄｄｒ上に、スレーブ２５０．１など、マスタ２４０．１が通信しようとする装置（「ターゲット」装置または単に「ターゲット」）のアドレスを出力し、書込み動作の場合は、ターゲットへのデータをデータ・バス１＿ｄｂｕｓへ出力する。マスタ２４０．１によりアサートされた選択信号ｍ１＿ｓｅｌｅｃｔと共通アドレス・バスａｂｕｓ上に出力されたスレーブ２５０．１のためのアドレスとを見出すと、クロック分配器２１５は、以下、本明細書で詳しく説明するように、マスタ２４０．１、スレーブ２５０．１、および調停器２３０それぞれのために同期クロック信号ｃｌｋ＿１、ｃｌｋ＿３、およびｃｌｋ＿ａｒｂを生成し、マスタ２４０．１とスレーブ２５０．１がバス２１０を介して通信することを許可する（本明細書で用いる「同期クロック信号」の用語は、同じ周波数をもち、かつ位相整合でもあるクロック信号に対して用いる）。クロック分配器２１５は、選択信号ｍ１＿ｓｅｌｅｃｔがアサートされている間、これらのクロック信号ｃｌｋ＿１、ｃｌｋ＿３、およびｃｌｋ＿ａｒｂのこの同期を維持する。選択信号ｍ１＿ｓｅｌｅｃｔがデアサートされると、クロック分配器２１５は再び、装置２４０．１などのために、事前定義された独立したクロック周波数で動作クロック信号ｃｌｋ＿１、ｃｌｋ＿３、およびｃｌｋ＿ａｒｂを生成する。
【００２２】
次に図５を参照すると、クロック分配器２１５の一般化された論理図が示されている。マスタ選択信号ｍ１＿ｓｅｌｅｃｔ、ｍ２＿ｓｅｌｅｃｔ（図５では一括して「ｍｘ＿ｓｅｌｅｃｔ」で示す）がどちらもアサートされていないバス２１０のアイドル状態に応答して、クロック分配器２１５は、独立クロック動作状態４１０をとり、すべての装置２４０．１などに、装置属性レジスタ（図示せず）に記憶させた所定の独立したクロック周波数に従ったクロック信号ｃｌｋ＿１などを供給する。マスタ選択信号がアサートされないかぎり、分配器２１５は、独立クロック動作状態４１０でループ４１２を反復する。マスタ２４０．１などの一方が許可を得た場合、それに応答して、そのマスタは選択線ｍ１＿ｓｅｌｅｃｔなどをアサートし、ターゲット装置２４０．２、２５０．１などのアドレスをアドレス・バスａｂｕｓ上にロードする。それに応答して、クロック分配器２１５は、遷移４１４でクロック変化モード４２０に移り、そのとき、選択線ｍｘ＿ｓｅｌｅｃｔとアドレス・バスａｂｕｓ上の信号をデコードして、他の装置からとりわけマスタおよびスレーブを識別する。次に、クロック分配器２１５は、遷移４２２でモード４３０に移り、マスタ、ターゲット、および調停器２３０のためのクロック信号をグリッチなしに変化させる。状態４３０は、マスタ選択信号がアサートされているかぎり、すなわち、マスタとスレーブとが通信している期間中、ループ４３２を反復する。選択信号がデアサートされると、クロック分配器２１５はそれに応答して、遷移４３４でクロック復元モード４４０に移り、その後、クロック信号は遷移４４２で独立クロック動作状態４１０に戻り、再び、独立した所定の周波数をもつクロック信号が供給されるようになる。
【００２３】
通信セッションに関与しないマスタとスレーブは、図５に示すサイクル全体の間、それぞれ所定の独立した周波数で動作することを、上記の説明から理解されたい。調停器と、（同期）通信セッションに関与する特定のマスタおよびスレーブのクロックのみが、図５で説明した、動的なクロックの変化、同期通信、およびクロックの復元に関わる。
【００２４】
次に図６を参照すると、本発明の一実施形態による、マスタとスレーブの一時的な同期動作のための共通周波数範囲５３０が示されている。各マスタは、最高周波数ｍａｓｔｅｒ＿ｍａｘを上限とし最低周波数ｍａｓｔｅｒ＿ｍｉｎを下限とする、その範囲内でマスタが動作可能である、固有のクロック周波数範囲５１０を有している。同様に、各ターゲット装置（マスタであってもよい）も、最高周波数ｔａｒｇｅｔ＿ｍａｘを上限とし最低周波数ｔａｒｇｅｔ＿ｍｉｎを下限とする、固有のクロック周波数範囲５２０を有している。
【００２５】
システム２００（図２）は、互いに通信を許可された装置の各対が共通周波数範囲５３０を有するように設計しなければならない。すなわち、互いに通信できる装置同士のマスタ側周波数範囲５１０とターゲット側周波数範囲５２０は、図６に示すように互いに一部が重なり合う。本明細書で共通周波数範囲５３０と呼ぶ重複する範囲は、２つの周波数ｍａｓｔｅｒ＿ｍａｘとｔａｒｇｅｔ＿ｍａｘの低い方によって定められる最高周波数ｃｏｍｍ＿ｍａｘと、２つの周波数ｍａｓｔｅｒ＿ｍｉｎとｔａｒｇｅｔ＿ｍｉｎの高い方によって定められる最低周波数ｃｏｍｍ＿ｍｉｎとを有する。
【００２６】
（図５の）動作状態４２０において、（図２の）クロック分配器２１５は、特定の通信を行うマスタとターゲットを識別したことに関連して、直前に説明したように、一時的な各通信セッションのための共通周波数範囲５３０を決定し、次に、共通周波数範囲５３０内で単一の動作周波数を選択する。一実施形態において、この選択は、一定の方針を示す、クロック分配器２１５内のレジスタ（図示せず）に記憶させた所定のパラメータに応答して行われる。この方針により、電力消費、クロックの変化に要する待ち時間、および帯域幅を含むトレードオフの均衡を図る。すなわち、例えば、帯域幅を最も重視し、電力消費をあまり重視しない方針の場合、パラメータは、最高共通周波数ｃｏｍｍ＿ｍａｘを選択するよう指示する。電力消費を最も重視し、帯域幅をあまり重視しない方針の場合、パラメータは、最低共通周波数ｃｏｍｍ＿ｍｉｎを選択するよう指示する。
【００２７】
次に図３を参照すると、本発明の一実施形態による、（図２の）ＯＰＢ２１０に結合された装置２４０．１、２４０．２、２５０．１、２３０それぞれのための動的に変化可能な分割器３２０、３３０，３４０、３５０を含む、図２のＯＰＢクロック分配器２１５がより詳細に示されている。分割器３２０などは、先に言及したサブシステムのクロック信号ｃｌｋ＿１などと、さらに、本明細書で以下に説明する、各サンプル・サイクル信号ｓａｍｐｌｅ＿ｃｙｃｌｅ＿１、ｓａｍｐｌｅ＿ｃｙｃｌｅ＿２、ｓａｍｐｌｅ＿ｃｙｃｌｅ＿３、ｓａｍｐｌｅ＿ｃｙｃｌｅ＿ａｒｂ、および各リセット信号ｒｅｓｅｔ＿１、ｒｅｓｅｔ＿２、ｒｅｓｅｔ＿３、ｒｅｓｅｔ＿ａｒｂを生成する。クロック分配器２１５は、各分割器３２０などのためのレジスタ（図示せず）をもち、これらのレジスタには各分割器用の除数値が格納されている。クロック分配器２１５はまた、クロック信号ｃｌｋ２２０、マスタ選択信号ｍ１＿ｓｅｌｅｃｔとｍ２＿ｓｅｌｅｃｔ、アドレス・バス、およびリセット信号を受信し、それに応答して、除数値を生成および更新するように動作可能な論理回路３１０を含んでいる。各分割器３２０などは、それぞれのデータ線１＿ｄｉｖ、２＿ｄｉｖ、３＿ｄｉｖ、ａｒｂ＿ｄｉｖを介して、その除数値を読み込む。
【００２８】
図４は、本発明の一実施形態による、サンプル・サイクル信号の１つ、クロック信号ｃｌｋ２２０に応答して（図３の）分割器３２０が出力するｓａｍｐｌｅ＿ｃｙｃｌｅ＿１のタイミングを示す（この図は、すべてのサンプル・サイクル信号とそれに対応するサブシステムのクロック信号の典型的なタイミングを示している）。この図では、分割器３２０は、（図５の）独立の動作状態４１０の間、クロック信号２２０を除数４で除算し、それにより、図示のクロック信号ｃｌｋ＿１を生成している。さらに、クロック信号ｃｌｋ＿１のサイクルの各正フェーズの直前の、図４の３６０がその一例である、クロック信号２２０のサイクルの開始に応答して、分割器３２０は、クロック信号ｃｌｋ＿１の１サイクルのためのサンプル・サイクル信号ｓａｍｐｌｅ＿ｃｙｃｌｅ＿１をアサートする。このサンプル・サイクル信号は、次に詳細に説明するように、マスタとターゲットの間の通信セッションのための同期動作へのグリッチなしの切替えを調整するために使用される。グリッチなしの切替えとは、意図せぬクロック・サイクルまたはクロック・フェーズがなく、すべてのパルスが刻時のための最小パルス幅の要件を満たすような仕方での切替えをいう。
【００２９】
次に図７を参照すると、本発明の実施形態による、（図２の）マスタ２４０．１とスレーブのターゲット装置２５０．１との間の（図２の）ＯＰＢ２１０の「トランザクション」、すなわち「通信セッション」に関わる、様々な信号のタイミングおよび論理インタラクションが示されている。図７の最上段に示される「リセット」信号は、システム・リセット２００である。このリセットは、システムを電源投入時の状態にリセットし、先に説明した除数用のレジスタなどを正しく初期化する。最初、（図２の）クロック分配器２１５が出力するすべてのクロックｃｌｋ＿１などが独立に動作している（図５の）モード４１０の間、分割器３２０は１＿ｄｉｖから値９を読み込み、受信システム・クロック信号ｃｌｋ２２０を９で除算し、（図２の）マスタ２４０．１の動作周波数を制御するサブシステム・クロック信号ｃｌｋ＿１を生成する。同時に、分配器２１５は、分割器３４０用の除数レジスタに値４をもっており、したがって、（図３の）分割器３４０が、受信システム・クロック信号ｃｌｋ２２０を４で除算して（図２の）スレーブ２５０．１の動作周波数を制御するサブシステム・クロック信号ｃｌｋ＿３を生成するようにする値を３＿ｄｉｖ上に出力し、同様に、（図３の）分割器３５０が、受信システム・クロック信号ｃｌｋ２２０を１４で除算して（図２の）調停器２３０の動作周波数を制御するサブシステム・クロック信号ｃｌｋ＿ａｒｂを生成するようにする値をａｒｂ＿ｄｉｖ上に出力する。
【００３０】
６１０でｍ１＿ｓｅｌｅｃｔがアサートされたことに応答して、クロック分配器２１５はクロック変化モード４２０に遷移する。このモードでは、（図３の）論理回路３１０が、マスタ装置およびターゲット装置を識別し、先に説明したように、これらの装置用の単一の共通動作周波数を選択する。また、論理回路３１０内の第１の論理回路セクション３１２は、これから行う通信セッションのために識別された、マスタ２４０．１（ｓａｍｐｌｅ＿ｃｙｃｌｅ＿１）、スレーブ２５０．１（ｓａｍｐｌｅ＿ｃｙｃｌｅ＿３）、調停器２３０（ｓａｍｐｌｅ＿ｃｙｃｌｅ＿ａｒｂ）それぞれのためのリセット信号をアサートする。図示した例では、これは、サンプル・サイクル信号ｓａｍｐｌｅ＿ｃｙｃｌｅ＿１、ｓａｍｐｌｅ＿ｃｙｃｌｅ＿３、ｓａｍｐｌｅ＿ｃｙｃｌｅ＿ａｒｂの受信に応答して、それぞれｒｅｓｅｔ＿１、ｒｅｓｅｔ＿３、ｒｅｓｅｔ＿ａｒｂ（図７には図示せず）をアサートすることに相当する（サンプル・サイクル信号の例については図４を参照のこと）。論理回路３１２は、（最後に到着したサンプル・サイクル信号に応答して）リセット信号のうち最後の１つがアサートされるまで、６２０で示すように、各リセット信号を高に保つ。図示した例では、ｓａｍｐｌｅ＿ｃｙｃｌｅ＿３（図示せず）が最初に到着したため、ｒｅｓｅｔ＿３が最初にアサートされたリセット信号である。次に到着したのがｓａｍｐｌｅ＿ｃｙｃｌｅ＿ａｒｂ（図示せず）であるため、ｒｅｓｅｔ＿ａｒｂが次にアサートされたリセット信号である。最後に、ｓａｍｐｌｅ＿ｃｙｃｌｅ＿１が到着したため、ｒｅｓｅｔ＿１が最後にアサートされたリセット信号である。最後のリセット信号がアサートされると、リセット信号はすべて論理回路３１２によりデアサートされる。
【００３１】
リセット信号の立下りを検出したことに応答して、論理回路３１０の第２の論理回路セクション３１４は同時に、３つの装置用の（図３の）分割器３２０、３４０、３５０それぞれの制御線、すなわち、制御線１＿ｄｉｖ、３＿ｄｉｖ、ａｒｂ＿ｄｉｖ上に、新しい共通の除数値を出力する。新しい除数値と、（図３の）受信クロック信号２２０と、１サイクル遅れた新しい共通周波数クロックとに応答して、クロック分配器２１５は、（図５の）４２２で同期クロック動作モード４３０に遷移し、分割器３２０などは６３０で、新しいクロック信号ｃｌｋ＿１、ｃｌｋ＿３、ｃｌｋ＿ａｒｂをそれぞれ出力し始める。このモード４３０において、マスタ、ターゲット、および調停器は、（「通信セッション」または「トランザクション」のために）一時的に選択された共通の周波数で通信できる。３つの分割器３２０などは同じクロック信号２２０からクロック信号出力を生成しているので、クロック信号ｃｌｋ＿１、ｃｌｋ＿３、ｃｌｋ＿ａｒｂは、同じ周波数で動作しているばかりでなく、同期していることにも留意されたい。
【００３２】
マスタ選択信号ｍ１＿ｓｅｌｅｃｔがデアサートされたのに応答して、クロック分配器２１５は、クロック復元モード４４０に遷移する。これには、共通クロック周波数信号ｃｌｋ＿１などの１クロック・サイクル分の、論理回路３１０の待機が含まれる。次に、クロック分配器２１５は、独立クロック動作モードに復帰し、独立の周波数値が、制御線１＿ｄｉｖ、３＿ｄｉｖ、ａｒｂ＿ｄｉｖそれぞれの上に出力される。
【００３３】
本実施形態の説明は、例示のために提示したものであって、網羅的であること、または開示した態様に本発明を限定することを意図したものではない。別の実施形態では、グリッチなしのクロックの変化は、多重化（multiplexing）により実現される。この実施形態によれば、システムには、様々な固定周波数をもつ多くの通信クロックが含まれる。図６に示し、また上記で説明したように、マスタとターゲットの間で共用される周波数範囲が決定されると、次に、その範囲内の最高周波数をもつ通信クロックが選択される。トランザクションの間、マスタ、ターゲット、および調停器の動作周波数は、この通信周波数になるように変化し、すなわち、３つのサブシステムすべてが選択された通信クロックで動作する。これを実現するために、サブシステムは、通信クロックが供給されるマルチプレクサを備え、各サブシステムがクロックを選択できるようになっている。マルチプレクサを採用する実装におけるクロック変化のコストは、クロック分割器を採用する実装に比べ、いく分高い。
【００３４】
説明した実施形態は主としてＯＰＢに関するものであったが、別の実施形態においては、説明した方法および構造がプロセッサ・ローカル・バス（「ＰＬＢ」）に適用される。一実施形態においては、ＰＬＢは、プロセッサ・コアと、ＯＰＢおよびその周辺装置を含む他の周辺装置との間のインタフェースを提供する、高性能６４ビット・アドレス、１２８ビット・データ・バスである。ＰＬＢ上のマスタは、ＰＬＢに対するデータ・インタフェースとアドレス・インタフェースとをそれぞれ有する。スレーブはＰＬＢを介し、共有バスを用いて通信する。ＰＬＢ上の装置は、ＯＰＢ上の装置と同様に、異なる周波数で動作する。上述した方法および構造の態様を適用することは可能であるが、（「アドレス・パイプラン処理」とも呼ぶ）オーバラップする転送をサポートするＰＬＢの場合、ＰＬＢの実施形態には、本明細書で説明した以上の追加的な機能や変形が必要になることも理解されたい。
【００３５】
ＰＬＢプロトコルによる通信には、以下のフェーズが含まれる。
【００３６】
１．マスタは、データ転送のための要求信号をアサートし、さらにアドレス・バス上にターゲット・アドレスとその他の修飾子とを出力する。
【００３７】
２．アドレス肯定フェーズ。調停器は、マスタの１つに許可を与え、それぞれのスレーブからのアドレス肯定応答を待つ。
【００３８】
３．データ転送フェーズ。スレーブからアドレス肯定応答を受信したマスタ、すなわち、「主」スレーブからアドレス肯定応答を受信した「主」マスタは、スレーブからの／へのデータ転送（読取り／書込み）を開始することができる。この時点では、トランザクション（「主」トランザクション）実行中の主マスタおよび主スレーブのためのアドレス肯定フェーズは終了しているので、別のマスタ（「２次」マスタ）は、主マスタがデータ転送に携わっている間に、アドレス肯定フェーズを開始することができ、他のいくつかのスレーブ（「２次」スレーブ）は２次マスタにアドレス肯定応答を返すことができる。
【００３９】
４．データ肯定フェーズ。主スレーブは、ｒｄ＿ｃｏｍｐ（読取りの場合）またはｗｒ＿ｃｏｍｐ（書込みの場合）をアサートして、データ転送フェーズが終了したことを通知する。
【００４０】
５．この時点で、２次マスタは主マスタになることができ、データ転送フェーズを開始することができる。
【００４１】
オーバラップするトランザクションをサポートするため、システムのＰＬＢ部には、バスのアドレス部、読取りデータ部、書込みデータ部を互いに分離して、アドレス・サイクルがオーバラップできるようにする、すなわち、スレーブが共有するアドレスおよびデータ・バス上で、１つのマスタがデータ・バス部を用いて１つのスレーブとの間でデータを送受信しているとき、同時に別のマスタがアドレス・バス部を用いて別のスレーブをアドレスできるようにするための論理回路が含まれている。
【００４２】
ＰＬＢの実施形態では、クロック分配器２１５は、追加の論理回路を含み、少なくとも１つの追加の入力を受信し、少なくとも１つの追加の出力を生成する。具体的には、一実施形態においては、クロック分配器は、スレーブ装置が共有するアドレス・バス上にマスタが出力したアドレスが有効であることを示す、「アドレス有効」信号を調停器から受信し、それを選択的に再分配する。サブシステム間の同期転送を可能にし、またはサブシステムが独立した周波数で動作できるようにする本発明の特徴を適用するためには、パイプライン処理に制約が課せられる。すなわち、２次マスタおよびターゲットが、主マスタおよびターゲットと同じである場合、そのマスタおよびスレーブはアドレス・パイプライン処理を利用することができる。そうでない場合は、アドレス・パイプライン処理は許可されない。
【００４３】
アドレス有効信号は、アドレス・バス上のアドレスが有効であり、ターゲットはそのアドレスをデコード（して、マスタに返答）できることをターゲットに通知する。このアドレス有効信号は、調停が実施され、許可が与えられたあと、調停器によって生成される。ある実施形態では、許可が与えられたあと、同期通信に関わるすべての周波数が変化するまでに数サイクルを要し、この期間中、マスタ、ターゲット、およびバス・クロックは正常に動作できないが、残りの装置は通常のクロックで動作している。この状態のとき、アドレス有効信号が高になっていると、いくつかの遅いスレーブがそのアドレスに応答を開始できてしまうので、問題が生じる場合があり、望ましくない。この問題に対処するには、周波数が変化し終わるまで、アドレス有効信号を低に維持しておく。周波数が変化し終わったら、アドレス有効信号を高にして、動作を通常に続行する。
【００４４】
様々な変更および変形が当業者には明らかであろう。繰り返すと、説明した実施形態は、本発明の原理、実際的な適用例を最もよく説明し、他の当業者が本発明を理解できるようにするために、選択し説明したものである。様々な変更が施された様々な他の実施形態が、企図された特定の用途に適していることがあり得るが、それらは本発明の範囲内に含まれるものである。さらに、添付の特許請求の範囲に記載された動作は、必ずしも提示された通りの一定の順序で実行されなくてもよいことを理解されたい。
【００４５】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４６】
（１）コンピュータ・システムのバスに結合されたサブシステム間で通信するための方法であって、前記サブシステム間の通信が、前記バスに対するアクセスを許可されたサブシステムが前記バスを排他的に使用できるバスベースのプロトコルによって行われ、
ａ）前記サブシステムが互いに通信していないときは、サブシステムを独立したクロック周波数で動作させるステップと、
ｂ）通信を行うために前記サブシステムのうちの第１および第２のサブシステムを選択するステップと、
ｃ）前記サブシステムのうちの前記選択されたサブシステムを、通信期間中、前記選択されたサブシステムに応じて選択されたクロック周波数で動作させて、前記サブシステムのうちの前記選択されたサブシステム間の通信を、前記サブシステムの異なる対ごとに異なる共有クロック周波数となる、共有クロック周波数で行えるようにするステップとを含む方法。
（２）前記サブシステムが、それぞれのクロック周波数範囲で動作し、また、ステップａ）が、前記サブシステムにそれぞれのクロック信号をクロック分配器によって供給するステップを含み、前記クロック信号が、前記サブシステムそれぞれに固有な範囲内にある所定の独立したクロック周波数で、それぞれのサブシステムに供給される、上記（１）に記載の方法。
（３）ステップｂ）が、
前記サブシステムのうちの前記選択された第１および第２のサブシステムが共有するクロック周波数範囲を、前記通信期間用にクロック分配器によって識別するステップと、
前記サブシステムのうちの前記第１および第２のサブシステム間のトランザクションのためにクロック分配器によって単一の共有クロック周波数を選択するステップとを含む、上記（２）に記載の方法。
（４）ステップｃ）が、
クロック信号が、クロック分配器によって、前記第１および第２のサブシステムには、通信期間用の前記選択された単一のクロック周波数で供給され、同時に、前記サブシステムのうちのその他のサブシステムには、それぞれのクロック信号がそれぞれ所定の独立した周波数で供給されるステップを含む、上記（３）に記載の方法。
（５）ステップｃ）が、通信期間中の一定の間、前記第１および第２のサブシステム間の通信を、前記選択された単一のクロック周波数で行うステップを含み、前記方法が、通信の完了に応答して、前記第１および第２のサブシステムを、それぞれ独立のクロック周波数での動作に復帰させるステップを含む、上記（４）に記載の方法。
（６）アドレス・サイクルをオーバラップさせるステップを含み、前記バスが、スレーブ・サブシステムによって共用されるアドレスおよびデータ・バス部を有し、前記オーバラップ・ステップが、第１のマスタと第１のスレーブとが前記データ・バス部を介して通信している同じ時に、第２のマスタが第２のスレーブに前記アドレス・バス部を介してアドレスするステップを含み、前記オーバラップが、前記第１および第２のマスタが同一のマスタ・サブシステムであり、かつ前記第１および第２のスレーブが同一のスレーブ・サブシステムである場合にのみ許可される、上記（１）に記載の方法。
（７）コンピュータ・システムのバスに結合されたサブシステム間で通信するための方法であって、前記サブシステム間の通信がバスベースのプロトコルによって行われ、そのため、あるサブシステムが前記バスに対するアクセスを許可された場合、そのサブシステムは前記バスを排他的に使用でき、
ａ）前記サブシステムのための第１のモードで動作するステップであって、前記サブシステムがそれぞれ異なるクロック周波数範囲で動作でき、前記第１のモードでの動作が、
それぞれ異なるサブシステム・クロック信号をクロック分配器によってサブシステムに供給するステップであって、前記サブシステム・クロック信号が前記サブシステムそれぞれに固有な範囲内にある所定の独立したクロック周波数でそれぞれのサブシステムに供給されるステップを含むステップと、
ｂ）前記サブシステムのうちの第１のサブシステムが、前記サブシステムのうちの第２のサブシステムと通信するために、前記バスに対するアクセスを要求するステップと、
ｃ）前記要求に応答して、前記サブシステムのうちの調停サブシステムが、前記サブシステムのうちの前記第１のサブシステムに、前記アクセスを許可するステップと、
ｄ）前記許可に応答して、前記サブシステムのうちの前記第１のサブシステムが、選択信号をアサートし、前記サブシステムのうちの前記第２のサブシステムのアドレスを出力するステップと、
ｅ）前記サブシステムのうちの前記第１のサブシステムのための前記選択信号と前記サブシステムのうちの前記第２のサブシステムのアドレスとを受信したことに応答して、前記クロック分配器が、前記サブシステムのうちの前記第１および第２のサブシステムに供給される前記サブシステム・クロック信号のための共有クロック周波数範囲を識別するステップと、
ｆ）前記クロック分配器が、前記サブシステムのうちの前記第１および第２のサブシステムに供給される前記サブシステム・クロック信号のための単一のクロック周波数を選択するステップであって、前記選択されたクロック周波数が前記共有クロック周波数範囲内に収まるステップとを含む方法。
（８）ｇ）前記第１、第２、および調停サブシステムのための第２のモードで動作するステップであって、前記第２のモードで動作するステップが、
前記サブシステム・クロック信号のそれぞれのクロック信号が、前記クロック分配器によって、前記選択された共有クロック周波数で前記第１、第２、および調停サブシステムに供給されるステップと、
前記サブシステム・クロック信号のそれぞれのクロック信号が、それぞれ所定の独立した周波数で前記システム内にある前記サブシステムのうちのその他のサブシステムに供給されるステップとを含む、上記（７）に記載の方法。
（９）ｈ）前記選択された共有クロック周波数で、前記第１および第２のサブシステム間の通信を行うステップと、
ｉ）前記通信の完了に応答して、前記第１のサブシステムによる前記選択信号をデアサートするステップと、
ｊ）前記デアサートに応答して、前記第１のモードでの動作に復帰するステップとを含む、上記（８）に記載の方法。
（１０）前記クロック分配器のそれぞれのクロック分割器が、システム・クロック信号とそれぞれの除数値とを受信し、前記第１、第２、および調停サブシステムに供給するためにそれぞれのサブシステム・クロック信号を生成する、上記（８）に記載の方法。
（１１）前記クロック分配器のそれぞれのマルチプレクサが、固定周波数のサブシステム・クロック信号を受信し、前記第１、第２、および調停サブシステムに供給するために前記サブシステム・クロック信号の１つを選択する、上記（８）に記載の方法。
（１２）システム・クロック信号の周波数よりも低い周波数で、サブシステム・クロック信号を供給し、
前記サブシステム・クロック信号のためにサンプル・サイクル信号をアサートして、第１のモードでの動作から第２のモードでの動作へのグリッチなしの切替えのための調整を行うステップであって、前記サンプル・サイクル信号が、対応するサブシステム・クロック信号のために、前記サブシステム・クロック信号が高になるより１システム・クロック・サイクル前にアサートされるステップを含む、上記（８）に記載の方法。
（１３）前記第１、第２および調停サブシステムに供給される特定の前記サブシステム・クロック信号のためのリセット信号をアサートするステップであって、前記特定のサブシステム・クロック信号のためのそれぞれのサンプル・サイクル信号に応答して、前記リセット信号がアサートされるステップを含む、上記（１２）に記載の方法。
（１４）前記特定のサブシステム・クロック信号のための前記サンプル・サイクル信号のうちの最後のサンプル・サイクル信号がアサートされたことに応答して、前記特定のサブシステム・クロック信号のためのリセット信号をデアサートするステップを含む、上記（１３）に記載の方法。
（１５）前記特定のサブシステム・クロック信号のためのリセット信号がデアサートされたことに応答して、前記第２のモードでの動作に切り替えるステップを含む、上記（１４）に記載の方法。
（１６）バスに結合されたサブシステムであって、サブシステム間の通信が、前記バスに対するアクセスを許可されたサブシステムの１つが前記バスを排他的に使用できるバスベースのプロトコルによって行われ、前記サブシステムがそれぞれのクロック周波数範囲で動作できるサブシステムと、
第１の動作モードにおいて、前記サブシステムに、前記サブシステムそれぞれに固有な範囲内にある所定の独立した周波数で、それぞれのサブシステム・クロック信号を供給するように動作可能なクロック分配器と、
前記サブシステムのいくつかによる前記バスに対するアクセス要求を調停するための調停器とを含み、前記サブシステムのうちの第１のサブシステムが、前記サブシステムのうちの第２のサブシステムと通信するために、前記調停器によって前記バスに対するアクセスを許可されたと判断したことに応答して、前記クロック分配器が、前記サブシステムのうちの前記第１および第２のサブシステムのための共有クロック周波数範囲を識別し、かつ前記通信のための単一のクロック周波数を選択するように動作可能であり、前記選択されたクロック周波数が前記共有クロック周波数範囲内にある、コンピュータ・システム。
（１７）アドレス・サイクルをオーバラップさせることができるように、前記バスのアドレス部と読取りデータ部と書込みデータ部とを互いに分離するための論理回路を含み、スレーブ・サブシステムによって共用されるアドレスおよびデータ・バス部のうちの、データ・バス部上で、第１のマスタ・サブシステムが第１のスレーブ・サブシステムとデータを送受信でき、それと同時に、アドレス・バス上で、第２のマスタ・サブシステムが第２のスレーブ・サブシステムをアドレスでき、前記論理回路が、前記第１および第２のマスタが同一のマスタ・サブシステムであり、かつ前記第１および第２のスレーブが同一のスレーブ・サブシステムである場合にのみ、アドレスのオーバラップを許可するように動作可能である、上記（１６）に記載のコンピュータ・システム。
（１８）前記クロック分配器が、前記第１、第２、および調停サブシステムに対しては第２のモードで動作するように動作可能であり、このモードで前記クロック分配器が、前記第１、第２、および調停サブシステムにそれぞれのサブシステム・クロック信号を前記選択された共有クロック周波数で供給し、また前記システム内のその他のサブシステムにはそれぞれのサブシステム・クロック信号をそれぞれ前記所定の独立した周波数で供給する、上記（１６）に記載のコンピュータ・システム。
（１９）前記調停器から前記許可指示を受信したことに応答して、前記第１のサブシステムが、選択信号をアサートし、かつ前記サブシステムのうちの前記第２のサブシステムのアドレスをアドレス・バス上にアサートし、また、前記クロック分配器が、前記第１のサブシステムが前記第２のサブシステムと通信するため前記調停器によって前記バスに対するアクセスを許可されたことを確認するため、前記選択信号を受信し、かつ前記アドレスを前記アドレス・バスから読み取る、上記（１６）に記載のコンピュータ・システム。
（２０）前記クロック分配器が、前記第１、第２、および調停サブシステムに対しては第２のモードで動作するように動作可能であり、このモードで前記クロック分配器が、前記第１、第２、および調停サブシステムにはそれぞれのサブシステム・クロック信号を前記選択された共有クロック周波数で供給し、また前記システム内のその他のサブシステムにはそれぞれのサブシステム・クロック信号をそれぞれ前記所定の独立した周波数で供給する、上記（１９）に記載のコンピュータ・システム。
（２１）前記第１および第２のサブシステムが、前記選択された共有クロック周波数で通信し、前記通信の完了に応答して、前記選択信号が、前記第１のサブシステムによってデアサートされ、前記第１および第２のサブシステムが、前記第１のモードでの動作に復帰する、上記（２０）に記載のコンピュータ・システム。
（２２）前記クロック分配器が、クロック分割器を含み、前記クロック分割器の各々が、システム・クロック信号とそれぞれの除数値とを受信し、前記第１、第２、および調停サブシステムに供給するためにそれぞれのサブシステム・クロック信号を生成するように動作可能である、上記（２１）に記載のコンピュータ・システム。
（２３）前記クロック分配器が、マルチプレクサを含み、前記マルチプレクサの各々が、固定周波数のサブシステム・クロック信号を受信し、前記第１、第２、および調停サブシステムに供給するために前記サブシステム・クロック信号のいくつかを選択するように動作可能である、上記（２１）に記載のコンピュータ・システム。
（２４）前記サブシステム・クロック信号が、システム・クロック信号の周波数よりも低い周波数で供給され、前記クロック分配器が、前記サブシステム・クロック信号のためのサンプル・サイクル信号をアサートして、第１のモードでの動作から第２のモードでの動作へのグリッチなしの切替えのための調整を行い、前記サンプル・サイクル信号が、対応するサブシステム・クロック信号のために、前記サブシステム・クロック信号が高になるよりも１システム・クロック・サイクル前にアサートされる、上記（２１）に記載のコンピュータ・システム。
（２５）前記クロック分配器が、前記第１、第２、および調停サブシステムに供給される特定の前記サブシステム・クロック信号のためのリセット信号をアサートし、前記リセット信号が、前記特定のサブシステム・クロック信号のためのそれぞれの前記サンプル・サイクル信号に応答してアサートされる、上記（２４）に記載のコンピュータ・システム。
（２６）前記クロック分配器が、前記特定のサブシステム・クロック信号のための前記サンプル・サイクル信号のうちの最後のサンプル・サイクル信号がアサートされたことに応答して、前記特定のサブシステム・クロック信号のためのリセット信号をデアサートする、上記（２５）に記載のコンピュータ・システム。
（２７）前記クロック分配器が、前記特定のサブシステム・クロック信号のためのリセット信号がデアサートされたことに応答して、前記第２のモードでの動作に切り替わる、上記（２６）に記載のコンピュータ・システム。
【図面の簡単な説明】
【００４７】
【図１】従来技術による、一律の周波数を有するＯＰＢの実施を示した図である。
【図２】本発明の実施形態による、「周波数アイランド」ベースのＯＰＢの実施を示した図である。
【図３】本発明の実施形態による、動的に変化可能な分割器を含む、ＯＰＢクロック分配器をより詳細に示した図である。
【図４】本発明の実施形態による、図３の分割器の１つへの入力クロック信号とそれによる出力クロック信号とに関するサンプル・サイクル信号のタイミングを示した図である。
【図５】本発明の実施形態による、ＯＰＢクロック分配器の動作を示すハイレベル図である。
【図６】本発明の実施形態による、マスタおよびターゲットの一時的な同期動作のための共通周波数範囲を示した図である。
【図７】本発明の実施形態による、マスタおよびターゲット装置間のＯＰＢトランザクションに関わる様々な信号のタイミングを示した図である。
【符号の説明】
【００４８】
１１０  オンチップ周辺バス（ＯＰＢ）
１２０  クロック信号
１３０  ＯＰＢ調停器
１４０．１  ＯＰＢマスタ１
１４０．２  ＯＰＢマスタ２
１５０．１  ＯＰＢスレーブ３
２００  システム
２１０  オンチップ周辺バス（ＯＰＢ）
２１５  ＯＰＢクロック分配器
２２０  外部クロック信号
２３０  ＯＰＢ調停器
２４０．１  ＯＰＢマスタ１
２４０．２  ＯＰＢマスタ２
２５０．１  ＯＰＢスレーブ３
３１０  論理回路
３１２  論理回路セクション
３１４  論理回路セクション
３２０  クロック分割器
３３０  クロック分割器
３４０  クロック分割器
３５０  クロック分割器
４１０  独立クロック動作モード
４１２  ループ
４１４  遷移
４２０  クロック変化モード
４２２  遷移
４３０  同期クロック動作モード
４３２  ループ
４３４  遷移
４４０  クロック復元モード
４４２  遷移
５１０  マスタ周波数範囲
５２０  ターゲット周波数範囲
５３０  共通周波数範囲
【図１】
2004199664.tif 000003
【図２】
2004199664.tif 000004
【図３】
2004199664.tif 000005
【図４】
2004199664.tif 000006
【図５】
2004199664.tif 000007
【図６】
2004199664.tif 000008
【図７】
2004199664.tif 000009