(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサと、
前記マイクロプロセッサに結合されるローカルバスと、
周辺バスと、
前記ローカルバスと前記周辺バスとに結合され、前記ローカルバスと前記周辺バスとの間のデータおよびアドレス信号の転送を調整し、かつ前記周辺バスの統御を調停するためのバスインタフェースおよびアービタユニットと、
前記周辺バスにおいて周辺バスクロック信号を与えるためのクロックジェネレータ回路とを備え、前記クロックジェネレータ回路は前記周辺バスクロック信号を選択的に停止および再始動させるように構成され、
前記周辺バスに結合される代替バスマスタをさらに備え、前記代替バスマスタは、予め定められた状態が生じたことに応じて前記周辺バスクロック信号が停止されている間に、クロックリクエスト信号をアサートするように構成され、かつ前記周辺バスクロック信号が再始動されると前記周辺バスクロック信号と同期的にバスリクエスト信号をアサートするように構成され、前記バスリクエスト信号は、前記周辺バスの統御を要求するために前記バスインタフェースおよびアービタユニットに与えられ、
前記代替バスマスタに結合され、前記クロックリクエスト信号のアサートに応答して前記周辺バスクロック信号を再始動させるように構成されるクロック制御回路をさらに備える、コンピュータシステム。
【請求項２】
前記クロックリクエスト信号を受取るように結合されるラッチング回路をさらに備え、前記ラッチング回路は、周辺バスクロック信号に応答して前記バスインタフェースおよびアービタユニットに前記バスリクエスト信号を与える、請求項１に記載のコンピュータシステム。
【請求項３】
前記代替バスマスタは、前記周辺バスクロック信号が停止されている間に、前記クロックリクエスト信号をアサートし、かつ前記周辺バスクロック信号が再始動された後に前記バスリクエストをアサートするステートマシンを含む、請求項１に記載のコンピュータシステム。
【請求項４】
前記周辺バスは多重アドレス／データバスである、請求項１に記載のコンピュータシステム。
【請求項５】
前記クロック制御回路と前記クロックジェネレータ回路とに結合される電力管理ユニットをさらに備え、前記電力管理ユニットは、前記周辺バスクロック信号を選択的に停止および再始動させるために、制御信号を前記クロックジェネレータに与えるよう構成され、前記クロック制御回路は、前記クロックリクエスト信号に応答して前記電力管理ユニットにコマンド信号を与えるよう構成される、請求項３に記載のコンピュータシステム。
【請求項６】
前記電力管理ユニットは、前記マイクロプロセッサが前記周辺バスの統御を達成した後に予め定められた状態が発生すると前記周辺バスクロック信号を停止させるよう構成される、請求項５に記載のコンピュータシステム。
【請求項７】
前記バスインタフェースおよびアービタユニットは、前記バスリクエスト信号に応答してバス許可信号をアサートするよう構成される、請求項３に記載のコンピュータシステム。
【請求項８】
前記周辺バスは、前記クロックリクエスト信号を前記代替バスマスタから前記クロック制御回路に結合するための制御ラインを含む、請求項３に記載のコンピュータシステム。
【請求項９】
周辺バスクロック信号を再始動させかつ周辺バスの統御を要求するためのシステムであって、
前記周辺バスクロック信号を生成するためのクロックジェネレータと、
前記クロックジェネレータに結合され、予め定められた状態が生じると前記周辺バスクロック信号を停止させるための電力管理ユニットと、
前記周辺バスクロック信号が停止されている間に、代替バスマスタによって生成される非同期クロックリクエスト信号を受取るように結合されるクロック制御回路とを備え、前記クロック制御回路は、前記非同期クロックリクエスト信号に応答して、前記電力管理ユニットに前記周辺バスクロック信号を再始動させるコマンド信号を生成するように構成され、
前記代替バスマスタによって生成されるバスリクエスト信号に応答するバスアービタユニットをさらに備え、前記バスリクエスト信号は前記周辺バスクロック信号と同期であり、前記バスアービタユニットは、前記代替バスマスタに対して前記周辺バスの統御を示すために、前記バスリクエスト信号に応答して許可信号を生成するように構成される、システム。
【請求項１０】
周辺バスクロック信号を再始動させかつ周辺バスの統御を要求するためのシステムであって、
前記代替バスマスタは、前記周辺バスクロック信号が停止されると前記非同期クロックリクエスト信号をアサートし、かつ前記周辺バスクロック信号が再始動された後に前記バスリクエスト信号をアサートするよう構成されるステートマシンを備える、請求項９に記載のシステム。
【請求項１１】
周辺バスクロック信号を再始動させかつ周辺バスの統御を要求するためのシステムであって、
前記クロック制御回路は、前記非同期クロック信号に応答して前記コマンド信号をアサートするよう構成されるステートマシンを含む、請求項９に記載のシステム。
【請求項１２】
周辺バスクロック信号を再始動させかつ周辺バスの統御を要求するためのシステムであって、
前記周辺バスは多重アドレス／データバスである、請求項９に記載のシステム。
【請求項１３】
周辺バスクロック信号を再始動させかつ周辺バスの統御を要求するためのシステムであって、
前記周辺バスに組込まれ、前記非同期クロックリクエスト信号を前記代替バスマスタから前記クロック制御回路に結合するために制御ラインをさらに備える、請求項９に記載のシステム。
【請求項１４】
周辺バスクロック信号を再始動させかつ周辺バスの統御を要求するための方法であって、
予め定められた状態が生じると前記周辺バスクロック信号を停止させるステップと、
前記周辺バスクロック信号が停止されている間に、代替バスマスタ内で非同期クロックリクエスト信号を生成するステップと、
前記非同期クロックリクエスト信号に応答して前記周辺バスクロック信号を再始動させるステップと、
前記周辺バスクロック信号が再始動された後に、前記周辺バスの統御を要求するために前記代替バスマスタ内で同期バスリクエスト信号を生成するステップとを含み、前記同期バスリクエスト信号は前記周辺バスクロック信号と同期である、方法。
【請求項１５】
周辺バスクロック信号を再始動させかつ周辺バスの統御を要求するための方法であって、
前記同期バスリクエスト信号に応答してバス許可信号を生成するステップをさらに含む、請求項１４に記載の方法。
【請求項１６】
周辺バスクロック信号を再始動させかつ周辺バスの統御を要求するための方法であって、
前記周辺バスクロック信号を再始動させるための前記ステップは、前記周辺バスに組込まれる制御ラインを介して非同期クロックリクエスト信号を前記代替バスマスタからクロック制御回路に結合するステップを含む、請求項１４に記載の方法。
【請求項１７】
周辺バスクロック信号を再始動させかつ周辺バスの統御を要求するための方法であって、バス許可信号を生成する前記ステップは、バスアービタユニットによって行なわれる、請求項１５に記載の方法。
【請求項１８】
周辺バスと、
前記周辺バスの統御を調停するためのアービタユニットと、
前記周辺バスにおいて周辺バスクロック信号を与えるためのクロックジェネレータ回路とを備え、前記クロックジェネレータ回路は前記周辺バスクロック信号を選択的に停止および再始動させるように構成され、
前記周辺バスおよび前記バスアービタに結合される代替バスマスタをさらに備え、前記代替バスマスタは、予め定められた状態が生じたことに応じて前記周辺バスクロック信号が停止されている間に、クロックリクエスト信号をアサートするように構成され、かつ前記周辺バスクロック信号が再始動されると前記周辺バスクロック信号と同期的にバスリクエスト信号をアサートするように構成され、前記バスリクエスト信号は、前記周辺バスの統御を要求するために前記アービタユニットに与えられ、
前記代替バスマスタに結合され、前記クロックリクエスト信号のアサートに応答して前記周辺バスクロック信号を再始動させるように構成されるクロック制御回路をさらに備える、コンピュータシステム。
【請求項１９】
前記クロック制御回路と前記クロックジェネレータ回路とに結合される電力管理ユニットをさらに備え、前記電力管理ユニットは、前記周辺バスクロック信号を選択的に停止および再始動させるために、制御信号を前記クロックジェネレータに与えるよう構成され、前記クロック制御回路は、前記クロックリクエスト信号に応答して前記周辺バスクロック信号を再始動させるために前記電力管理ユニットにコマンド信号を与えるよう構成される、請求項１８に記載のコンピュータシステム。
【請求項２０】
前記アービタユニットは、前記バスリクエスト信号に応答してバス許可信号をアサートするよう構成される、請求項１９に記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の背景】
本発明は、コンピュータシステム内の電力管理に関し、より特定的には、周辺バスクロック信号を制御するためのシステムおよびその方法に関する。
【０００２】
【関連技術の説明】
製造業者の現在の開発の目標は、コンピュータシステムの電力消費量を低減することである。電力消費量を低減すれば典型的にはシステムの熱の発生も低減され、それによって信頼性が高まりかつコストが削減される。さらに、電池で電力供給される携帯用コンピュータシステムの動作寿命を最大にするという点で、電力の低減は特に重要である。
【０００３】
コンピュータシステムの電力消費量を低減するための種々の方法が考案されてきた。これらの方法には、回路の集積度を向上させることや、改良された回路および電力管理ユニット（ＰＭＵ）を組込むことがある。１つの特定の電力低減法には、非活性な回路部分を駆動するクロック信号を停止させる能力が必要である。そのような方法を用いるシステムは、典型的には、非活性な回路部分を検出または予測し、それに従ってその非活性な回路部分に関連するクロック信号を停止させる電力管理ユニットを含む。非活性な回路部分を駆動する「使用されていない」クロック信号をＯＦＦにすることによって、システムの総電力消費量が低減される。同様の方法には、時間が決定的でない動作モードの間回路部分を駆動するクロック信号の周波数を低減させる能力が必要である。
【０００４】
「使用されていない」クロック信号を停止させる能力は電力消費量を低減することにおいては一般に成功したが、代替バスマスタがそこに接続される周辺バスを駆動するクロック信号にはこの方法は一般に適用されていない。このように制限される理由は、以下の例から最良に理解される。
【０００５】
図１は、マイクロプロセッサ（ＣＰＵ）１２と、システムメモリ１４と、ブリッジ／メモリコントローラ１６と、バスインタフェースおよびアービタユニット１８とを含むコンピュータシステム１０を示すブロック図である。ＣＰＵローカルバス２０は、マイクロプロセッサ１２をブリッジ／メモリコントローラ１６とバスインタフェースおよびアービタユニット１８とに結合する。システムメモリバス２２は、システムメモリ１４をブリッジ／メモリコントローラ１６に結合する。「マスタ１」として示される代替バスマスタ２６および「マスタ２」として示される第２の代替バスマスタ２８は、周辺バス３０を介してバスインタフェースおよびアービタユニット１８に結合される。同様に、スレーブ装置３１も、周辺バス３０を介してバスインタフェースおよびアービタユニット１８に結合される。
【０００６】
代替バスマスタ２６が周辺バス３０の統御を必要とするとき、ＲＥＱ１として示されるリクエスト信号が代替バスマスタ２６によってアサートされ、バスインタフェースおよびアービタユニット１８によって検出される。内部アービトレーション論理に従ってバスの統御が許可されれば、バスインタフェースおよびアービタユニット１８はＧＮＴ１として示される許可信号をアサートし、それに応じて、代替バスマスタ２６は周辺バス３０を統御することができかつ所望のサイクルを実行し得る。
【０００７】
図１のシステムでは、リクエスト信号ＲＥＱｘ（すなわち、ＲＥＱ１またはＲＥＱ２）は、関連する代替バスマスタによって周辺バスクロック信号ＣＬＫと同期的にアサートされなければならない。この要求は、ＰＣＩバス規格等のいくつかの広く用いられている周辺バス規格によって指定される。この要求の結果、そのような周辺バス規格を用いるシステムは、周辺バスクロック信号ＣＬＫが常にＯＮにされるように設計され、それによって代替バスマスタが同期リクエスト信号を生成できるようになる。しかしながら、そのようなシステムでは、周辺バスが使用されていないときに電力が浪費される。
【０００８】
スレーブ装置が周辺バスサイクルが終わった後にクロック信号を必要とし得るため、周辺バスのためにクロック停止（またはクロック減速）電力低減法を用いることに対して付加的な障害が生じる。たとえば、スレーブ装置３１が内部ＦＩＦＯを空にするために、周辺バスサイクルの完了時に付加的なクロックサイクルが必要とされるかもしれない。もしそのような状況の間にクロック信号が停止されれば、システムの性能およびデータの保全性に悪影響が及ぼされるかもしれない。
【０００９】
電力管理の目的のために周辺バスクロック信号を停止または減速することに関するさらに別の問題点は、もし周辺装置が周辺バスクロック信号を再始動させることができないかまたは所与の時間内にクロックエッジを受取らなければ、外部バスマスタは立ち往生するかまたはデータを失う可能性があるということである。その結果、システムの性能が劣化するかまたはデータの保全性が悪影響を受ける可能性がある。いかなるコンピュータシステムにおいてもデータの保全性は非常に重要であるため、および従来の周辺バスマスタは典型的には関連する周辺バスクロック信号を制御することができないため、そのような従来のバスマスタ装置は、電力管理のために周辺クロック信号が停止または減速されるコンピュータシステムと互換性がない場合がある。したがって、そのようなコンピュータシステムと従来の周辺装置との逆方向の互換性は制限され得る。
【００１０】
【発明の概要】
上述の問題点は、本発明に従った周辺バスクロック信号を制御するためのシステムおよび方法によってその大部分が解決される。このシステムは、たとえば電力管理ユニットに応答して周辺バスクロック信号が停止（または減速）され得る電力節約法を適応させる。周辺バスクロック信号を停止させる前に、クロック制御回路によってクロックリクエストラインにインジケータ信号が生成される。スレーブ装置が周辺バスクロック信号を必要とし続ければ、スレーブ装置はそれに応答してクロックリクエスト信号を発生する。クロック制御回路はクロックリクエスト信号を受取り、それに応じて周辺バスクロック信号が停止しないようにする。周辺バスクロック信号が停止されるときに代替バスマスタが周辺バスの統御を必要とすれば、代替バスマスタは周辺バスクロックを再始動させるためにクロックリクエスト信号をアサートするように構成され得る。クロックリクエスト信号は周辺バス上に送られ、その結果クロック制御回路によって受取られる。クロック制御回路はそれに応答して周辺バスクロック信号を再始動させる。その後、代替バスマスタは周辺バスクロック信号と同期のバスリクエスト信号を発生し、それによってバスアービタユニットから許可信号を得ることができる。
【００１１】
このシステムはさらに、内部でバスリクエスト信号を生成できない従来の代替バスマスタとの逆方向の互換性が得られるように構成され得る。そのような実施例に関しては、システムのリセットの際に、ＢＩＯＳブートコードは各々の代替バスマスタ内の構成レジスタを読取る。ＰＣＩベースのシステムに関しては、この構成レジスタはいわゆるＭＡＸＬＡＴレジスタ（またはフィールド）であってもよい。構成レジスタの内容は、特定のマスタが周辺バスへのアクセスを必要とし得る頻度を示している。各々のマスタのＭＡＸＬＡＴフィールドを読取る際に、システムは、周辺バスへのアクセスを最も頻繁に必要とするマスタに対応するＭＡＸＬＡＴ値に従ってクロック制御タイマを設定する。周辺バスを最も頻繁に必要とするマスタがたとえば２マイクロ秒という最大待ち時間を指定すれば、システムは、１マイクロ秒（すなわち、指定された最大待ち時間の半分）ごとにサイクル動作を行なう（またはトリガする）ようにクロック制御タイマを設定する。その後、もし電力管理ユニットによって周辺バスクロックを停止させる決定がなされれば、クロック制御タイマはサイクル動作を始める。１マイクロ秒が経過するたびに、クロック制御タイマは、クロックジェネレータに少なくとも１つのクロックエッジ（すなわち、ワンショットまたはマルチショット）を与えるようにさせる。これにより、周辺バスに結合されるいかなるバスマスタも、たとえそのバスマスタがクロックリクエスト信号を生成できなくても、周辺バスを統御するために確実に同期バスリクエスト信号を生成することができる。このシステムはさらに、周期的なクロックエッジの各々を与える間にできるだけ長くクロック信号を停止させることによって、電力管理を最適化させる。もし代替的に電力管理ユニットが電力節約モードの間に周辺バスクロック信号を減速させれば、各々のマスタのＭＡＸＬＡＴフィールドから読取られる値は、クロック信号が減速され得る最小の周波数を決定するために用いられ得る。すなわち、クロックジェネレータは、周辺バスを最も頻繁に必要とするマスタのＭＡＸＬＡＴフィールド内で指定された最大待ち時間の値の半分以下の周期で周辺バスクロック信号を生成するように設定されるであろう。本発明に従ったシステムを用いれば、周辺バスクロック信号を電力管理のために停止させるかまたは低減させ、なおかつ周辺バスの統御を得るために同期バスリクエスト信号をアサートしなければならない代替バスマスタを適応させることができる。
【００１２】
本発明の他の目的および利点は、添付の図面を参照して以下の詳細な説明から明らかになるであろう。
【００１３】
本発明は種々の変更例および代替例が可能であるが、特定の実施例を例示的に図面に示しかつ詳細に説明する。しかしながら、これらの図面および詳細な説明は本発明を開示される特定の形に限定するものではなく、本発明は、前掲の特許請求の範囲によって規定されるような本発明の意図および範囲内でいかなる変形例、均等物および代替例も含むものとする。
【００１４】
【好ましい実施例の詳細な説明】
次に図２を参照すると、周辺バス１０２がバスインタフェースおよびアービタユニット１０６を介してＣＰＵローカルバス１０４に結合されるコンピュータシステム１００の一部分がブロック図で示されている。「マスタ１」として示される代替バスマスタ１０８および「マスタ２」として示される第２の代替バスマスタ１１０は周辺バス１０２に結合され、マイクロプロセッサ（ＣＰＵ）１１９はＣＰＵローカルバス１０４に結合される。さらに、電力管理ユニット１１１、フリップフロップ１１２、１１４、および信号ドライバ１１６、１１８はバスインタフェースおよびアービタユニット１０６に結合される。
【００１５】
代替バスマスタ１０８および１１０は、種々の特定の周辺バス装置によって実現することができる。たとえば、代替バスマスタ１０８は、他のコンピュータシステムを周辺バス１０２に接続するローカルエリアネットワーク（ＬＡＮ）装置によって実現することができる。同様に、代替バスマスタ１１０は、周辺バス１０２を他の周辺バスに接続する拡張バスインタフェースによって実現することができる。
【００１６】
周辺バス１０２は予め定められたビット幅を有し、ＣＤ−ＲＯＭ装置等の種々の他の周辺装置に接続され得る。ある実施例では、周辺バス１０２はＰＣＩ規格バス構成を用いて実現されるが、代替的には他の周辺バス規格構成を用いることができる。このＰＣＩ規格バス構成は、ＰＣＩスペシャル・インタレスト・グループ（ＰＣＩ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ）による１９９３年４月３０日発行の出版物ＰＣＩローカルバス仕様（ＰＣＩ  Ｌｏｃａｌ  Ｂｕｓ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ）改訂版２に記載されている。この文献の全体を引用によりここに援用する。
【００１７】
マイクロプロセッサ１１９は、予め定められた命令セットを実現するデータ処理ユニットである。例示的な処理ユニットには、モデル８０３８６およびモデル８０４８６のマイクロプロセッサがある。なお、ＣＰＵローカルバス１０４はマイクロプロセッサ１１９をキャッシュメモリおよびメモリコントローラ等の種々の他の構成要素に結合し得る。
【００１８】
バスインタフェースおよびアービタユニット１０６は、マイクロプロセッサ１１９と周辺バス１０２に結合される装置との間で制御信号、データ信号およびアドレス信号を調整しかつ送るような周知のインタフェース機能を制御する従来の回路を含む。バスインタフェースおよびアービタユニット１０６はさらに、周辺バス１０２の統御を争う装置を調停しかつそれらに優先順位を付ける。図１に関して以前に説明した例と同様に、バスインタフェースおよびアービタユニット１０６内のアービトレーション論理は、代替バスマスタによってアサートされた同期リクエスト信号を検出し、かつ周辺バス１０２の統御を達成することができるときに関連する許可信号を生成するように構成される。バスインタフェースおよびアービタユニット１０６は、ライン１２３および１２４でそれぞれ同期リクエスト信号ＳＲＥＱ１およびＳＲＥＱ２を受取り、かつライン１２５および１２６でそれぞれ許可信号ＧＮＴ１およびＧＮＴ２を生成する。バスインタフェースおよびアービタユニット１０６のこれらの部分が種々の特定の回路構成を用いて実現できること、および例示的な回路構成は既知の先行技術の多数の出版物において記載されていることが当業者によって認識されるであろう。
【００１９】
バスインタフェースおよびアービタユニット１０６は、クロック制御回路１２０およびクロックジェネレータ１２２をさらに含む。クロックジェネレータ１２２は、代替バスマスタ１０８および代替バスマスタ１１０等の周辺装置を駆動するために「ＣＬＫ」として示される周辺バスクロック信号を生成する。以下に詳細に説明するように、クロック制御回路１２０は、電力管理ユニット１１１が周辺バスクロック信号ＣＬＫを停止させた後、代替バスマスタを適応させるためにクロックジェネレータ１２２の再始動を制御する。
【００２０】
次にコンピュータシステム１００の動作を説明する。この議論に関しては、まず、電力管理ユニット１１１がクロックジェネレータ１２２をＯＦＦにし、これにより周辺バスクロック信号ＣＬＫが停止されると仮定する。電力管理ユニット１１１は、たとえば、現在バスインタフェースおよびアービタユニット１０６内にバスリクエスト信号が保留されていないとき、マイクロプロセッサ１１９によって実行される周辺バスサイクルの完了後、クロックジェネレータ１２２をＯＦＦにするように構成され得る。
【００２１】
もし代替バスマスタ１０８または１１０の一方が周辺バス１０２の統御を要求すれば、そのマスタ装置によって対応する非同期バスリクエスト信号がアサートされる。たとえば、代替バスマスタ１０８が周辺バス１０２の統御を要求すれば、ライン１２８において非同期リクエスト信号ＡＲＥＱ１がローにアサートされる。図１の例と同様に、ライン１２３でバスインタフェースおよびアービタユニット１０６によって受取られるリクエスト信号は、周辺バスクロック信号ＣＬＫと同期でなければならない。しかしながら、この時点で、クロックジェネレータ１２２はＯＦＦにされる。したがって、同期リクエスト信号を与えるために、非同期リクエスト信号ＡＲＥＱ１は信号ドライバ１１６を介してバッファされ、これによりライン１２７上の非同期クロックリクエスト信号ＣＬＫＲＥＱがローにアサートされる。クロック制御回路１２０がクロックリクエスト信号ＣＬＫＲＥＱのローへのアサートを検出すると、信号ＩＤＬＥがクロック制御回路１２０によってハイにデアサートされ、これにより電力管理ユニット１１１がクロックジェネレータ１２２をＯＮにし、したがって、（すなわち、信号ＯＮ／ＯＦＦをハイに駆動することによって）周辺バスクロック信号ＣＬＫを再始動させる。
【００２２】
第１の周辺クロック信号ＣＬＫの立上がり端縁で、ライン１２８における論理ロー信号（すなわち、信号ＡＲＥＱ１）はフリップフロップ１１２にラッチされ、かつフリップフロップ１１２の出力で駆動される。したがって、フリップフロップ１１２の出力状態によって左右される同期リクエスト信号ＳＲＥＱ１はローになる。なお、信号ＳＲＥＱ１のローへの遷移はクロック信号ＣＬＫと同期的に起こる。
【００２３】
バスインタフェースおよびアービタユニット１０６が同期リクエスト信号ＳＲＥＱ１のローへのアサートを検出すると、バスインタフェースおよびアービタユニット１０６は、その内部アービトレーション論理に従って許可信号ＧＮＴ１を生成し、その結果、代替バスマスタ１０８に周辺バス１０２の統御を許可する。
【００２４】
好ましい実施例では、代替バスマスタ１０８は、周辺バス１０２の統御が所望であるとき合計２クロックサイクルの間非同期リクエスト信号ＡＲＥＱ１をアサートする。クロック制御回路１２０がライン１２７において結果として得られたローの信号を検出すると、２クロックサイクル後に代替バスマスタ１０８によって非同期リクエスト信号ＡＲＥＱ１がデアサートされていても、クロック制御回路１２０は駆動を引継ぎ、ライン１２７において論理ロー信号を維持する。ＩＤＬＥ信号がハイにデアサートされかつクロックジェネレータ１２２が電力管理ユニット１１１によってＯＮにされると、システムマイクロプロセッサ１１９が周辺バス１０２の統御を回復し、この時点で電力管理ユニット１１１がクロックジェネレータ１２２を停止させることができると決定し得るまで周辺バスクロック信号ＣＬＫを停止させることができない。たとえば、上述のように、電力管理ユニット１１１は、現在バスインタフェースおよびアービタユニット１０６内でバスリクエスト信号が保留されていなければ、マイクロプロセッサ１１９によって実行される周辺バスサイクルが完了すると周辺バスクロック信号ＣＬＫを停止させるように構成され得る。電力管理ユニット１１１がそのような予め定められた状態にしたがって周辺バスクロック信号ＣＬＫを停止させることができると決定すると、クロック制御回路１２０は１クロックサイクルの間クロックリクエスト信号ＣＬＫＲＥＱをハイに駆動する。その後、クロック制御回路１２０はクロックリクエスト信号ＣＬＫＲＥＱおよびトライステートライン１２６の駆動を解放する。その後、電力管理ユニット１１１は信号ＯＮ／ＯＦＦをローに駆動することによってクロックジェネレータ１２２をＯＦＦにし、それによって周辺バスクロック信号ＣＬＫを停止させる。
【００２５】
なお、好ましい実施例では、最後の周辺バスクロック信号ＣＬＫの立上がり端縁の間ライン１２７がハイとしてサンプリングされたときにのみ信号ドライバ１１６および１１８が可能化される。これにより、クロック制御回路１２０がライン１２７をハイに駆動すると同時に非同期リクエスト信号ＡＲＥＱｘ（すなわち、ＡＲＥＱ１またはＡＲＥＱ２）がローにアサートされても、ライン１２７において起こり得る信号の競合が防がれる。この特徴の実現例は図３に示されており、ここでは、周辺クロック信号ＣＬＫの各々のサイクルの間ライン１２７をサンプリングするため、およびライン１２７がハイとしてサンプリングされたときにのみ信号ドライバ１１６および１１８を可能化するためにフリップフロップ１２９が用いられる。
【００２６】
再び図２を参照すると、もし非同期リクエスト信号ＡＲＥＱ１およびＡＲＥＱ２が同時にまたはともにアサートされ、代替バスマスタ１０８および１１０がともに周辺バス１０２の統御を要求していることを示せば、クロックリクエスト信号ＣＬＫＲＥＱは再びローに駆動され、それによって周辺バスクロック信号ＣＬＫを再始動させる。したがって、同期リクエスト信号ＳＲＥＱ１およびＳＲＥＱ２はそれぞれフリップフロップ１１２および１１４の出力において与えられ、かつバスインタフェースおよびアービタユニット１０６において受取られる。その後、内部アービトレーション論理によって確立された予め定められた優先順位に従って許可信号ＧＮＴ１またはＧＮＴ２の一方がアサートされ、他方の許可信号は「優先順位がより高い」代替バスマスタがその対応するバスサイクルを完了するまで遅延される。その後、バスインタフェースおよびアービタユニット１０６は、「優先順位がより低い」代替バスマスタがその対応するバスサイクルを実行できるようにするために他方の許可信号をアサートする。
【００２７】
次にクロック制御回路１２０の内部論理について考える。図４は、クロック制御回路１２０内で実現されるアルゴリズムステートマシン３００を示している。ステートマシン３００は、４つの状態３１０、３２０、３３０および３４０を含む。周辺バスクロック信号ＣＬＫが停止されると、ステートマシン３００はアイドル状態３１０に入る。クロックリクエスト信号ＣＬＫＲＥＱがハイである限り、ステートマシン３００は状態３１０のままである。
【００２８】
クロックリクエスト信号ＣＬＫＲＥＱがローになると、ステートマシン３００は状態３２０に入る。この遷移は、非同期リクエスト信号ＡＲＥＱｘのうちの１つが代替バスマスタのうちの１つによってアサートされると生じる。状態３２０の間に、クロック制御回路１２０はライン１２７をローに駆動し、かつ信号ＩＤＬＥをハイにデアサートする。電力管理ユニット１１１は信号ＩＤＬＥのデアサートを検出し、その結果クロックジェネレータ１２２をＯＮにして周辺バスクロック信号ＣＬＫを再始動させる。
次にステートマシン３００は状態３３０に入り、この状態３３０の間信号ＩＤＬＥはハイにデアサートされ続ける。ステートマシン３００は、同期リクエスト信号ＳＲＥＱｘがローである間はずっと状態３３０のままである。すべての同期リクエスト信号がハイであれば、ステートマシン３００は、内部タイマによって確立された遅延時間に従って予め定められた時間の間状態３３０のままである。この遅延時間は、クロック信号ＣＬＫの再始動の後に、対応する同期リクエスト信号ＳＲＥＱｘが（フリップフロップ１１２または１１４によって）ローに駆動されるのに十分な時間が確実に与えられるように設けられる。一実施例では、状態３３０の内部タイマは、ステートマシン３００が状態３３０から出て行く前に少なくとも４クロックサイクルが確実に生じるように規定される。
【００２９】
同期リクエスト信号ＳＲＥＱｘがハイでありかつタイマが終了すると、ステートマシン３００は状態３４０に入る。状態３４０の間、クロックリクエスト信号ＣＬＫＲＥＱはクロック制御回路１２０によって１クロックサイクルの間ハイに駆動される。ＩＤＬＥ信号はさらにローにアサートされる。
【００３０】
次にステートマシン３００は再びアイドル状態３１０に戻り、クロック制御回路１２０はクロックリクエストライン１２７をトライステートにする。その後、システムマイクロプロセッサ１１９が周辺バス１０２の統御を回復すると、または他のいかなる所望の電力管理機構にも従って、電力管理ユニット１１１はクロックジェネレータ１２２をＯＦＦにし得る。その後、クロックリクエスト信号をローにアサートすることによって、周辺バスクロック信号ＣＬＫは、上述の態様で別の代替バスマスタによって再び再始動され得る。
【００３１】
なお、再び図２を参照して、フリップフロップ１１２および１１４、ならびに信号ドライバ１１６および１１８はそれぞれ代替バスマスタ１０８および１１０の一体の部分として組込まれ得る。さらに、信号ライン１２３〜１２７は簡略化のために周辺バス１０２と別個のものとして示されているが、信号ライン１２３〜１２７は周辺バス１０２の予め規定された制御ラインであってもよい。
【００３２】
図５に示されるような別の実施例では、クロックリクエスト信号ＣＬＫＲＥＱおよび同期リクエスト信号ＳＲＥＱｘを生成するために、ステートマシンが各々の代替バスマスタ内に組込まれる。図２の回路部分に対応する回路部分には、同じ参照番号が付されている。図６は、そのような実施例の各々の代替バスマスタ内に組込まれるアルゴリズムステートマシン５００を示している。ステートマシン５００は、状態５１０、５２０および５３０を含む。
【００３３】
図４および図５とともに図６を参照すると、リセットの後、クロックリクエスト信号がハイになると、ステートマシン５００は状態５１０に遷移する。この時点で電力管理ユニット１１１はクロックを停止させるためにクロックジェネレータ１２２に信号を送り得る。マスタ周辺装置がクロックを必要としていなければ、ステートマシン５００は状態５１０のままである。システムの事象によってクロックリクエスト信号がローになれば、ステートマシン５００は状態５３０に戻る。もし状態５１０の間にマスタがクロックを必要とすれば、ステートマシン５００は状態５２０に遷移し、クロックリクエスト信号ＣＬＫＲＥＱはローに駆動される。その後、クロック制御回路１２０は、もしクロックが停止されていればそれを再始動させるためにクロックジェネレータ１２２に信号を送る。マスタは今、バスを獲得しかつそのトランザクションを行なうために、その同期バスリクエスト信号ＳＲＥＱｘをアサートし得る。マスタがそのバスリクエストを維持している限り、ステートマシンは状態５２０のままである。マスタがそのバスリクエストをデアサートすると、ステートマシンは状態５３０に遷移し、クロックリクエスト信号ＣＬＫＲＥＱをトライステートにさせる。
【００３４】
図２および図５のシステムを用いると、電力管理のために周辺バスクロック信号を停止させ、なおかつ周辺バスの統御を得るために同期バス信号をアサートしなければならない代替バスマスタを適応させることができる。これにより、コンピュータシステムの電力消費量を低減しながら、幅広い互換性を維持することができる。
【００３５】
次に図７を参照すると、スレーブ装置６００が周辺バス１０２に結合される、同様のコンピュータシステムの一部分が示されている。図５に対応する回路ブロックには、同じ参照番号が付されている。
【００３６】
スレーブ装置６００は、周辺クロック信号ＣＬＫを受取るように結合され、かつライン１２７に結合される。以下により詳細に説明するように、図７の実施例によって、もし周辺バスサイクルの後にスレーブ装置６００が周辺バスクロック信号を必要とすれば、スレーブ装置６００が周辺バスクロック信号を停止させないようにすることができる。たとえば、スレーブ装置６００は、内部ＦＩＦＯバッファを空にするために周辺バス転送サイクルの完了後周辺バスクロック信号を必要とし得る。
【００３７】
図７の実施例の動作の間、スレーブ装置６００はライン１２７におけるクロックリクエスト信号ＣＬＫＲＥＱをモニタする。もしスレーブ装置６００がクロックリクエスト信号ＣＬＫＲＥＱのハイへのアサートを検出し、かつスレーブ装置がまだ周辺バスクロック信号ＣＬＫを必要としていれば、スレーブ装置６００は、周辺バスクロック信号ＣＬＫが停止されないようにするために次のクロックサイクルでライン１２７を再びローに駆動する。
【００３８】
図８は、スレーブ装置６００内に実現されるアルゴリズムステートマシン７００を示している。システムをリセットすると、ステートマシン７００は状態７１０に入り、この状態７１０の間ライン１２７はスレーブ６００によってトライステートにされる。ライン１２７のクロックリクエスト信号ＣＬＫＲＥＱがローである限り、ステートマシン７００は、状態７１０のままである。
【００３９】
ライン１２７のクロックリクエスト信号ＣＬＫＲＥＱがハイになると、ステートマシン７００は状態７２０に入る。状態７２０の間、ライン１２７はスレーブ装置６００によってトライステートにされ続ける。クロックリクエスト信号ＣＬＫＲＥＱがハイのままである限り、および周辺バスクロック信号ＣＬＫが必要とされていない間、ステートマシン７００は状態７２０のままである。
【００４０】
ライン１２７のクロックリクエスト信号ＣＬＫＲＥＱがローに戻ると、ステートマシン７００は状態７１０に戻る。他方、スレーブ６００が周辺バスクロック信号ＣＬＫを必要としかつライン１２７のクロックリクエスト信号がハイであれば、ステートマシン７００は状態７３０に入る。状態７３０の間、ライン１２７のクロックリクエスト信号はスレーブ装置６００によって２クロックサイクルの間ローに引き下げられる。その後、ステートマシン７００は再び状態７１０に入り、ライン１２７はスレーブ装置６００によってトライステートにされる。
【００４１】
図９は、図２、図５および図７のクロック制御回路１２０内に実現されるステートマシン８００の代替実施例を示している。ステートマシン８００は、マスタおよびスレーブ装置によってアサートされるクロックリクエスト信号（すなわち、ＣＬＫＲＥＱ）に応答する。この実施例では、周辺バスクロック信号の再始動および停止は、クロック制御回路１２０によって直接制御される。なお、電力管理ユニット１１１は、コンピュータシステムの動作の間、普段はクロックジェネレータ１２２を制御するように構成され得る。
【００４２】
リセットすると、ステートマシン８００は状態８１０に入り、この状態８１０の間ライン１２７のクロックリクエスト信号ＣＬＫＲＥＱはトライステートにされかつクロック制御回路１２０によって受動的にハイに引き上げられ、この間周辺バスクロック信号ＣＬＫはＯＮである。ライン１２７のクロックリクエスト信号が予め定められたクロック数（すなわち、Ｍクロックサイクル）の間ハイとして検出されれば、ステートマシン８００は状態８２０に入る。
【００４３】
状態８２０の間、ライン１２７はトライステートにされ続け、かつクロック制御回路１２０によってハイに引き上げられ、周辺バスクロック信号ＣＬＫは停止される。なお、クロックジェネレータ１２２は、周辺バスクロック信号ＣＬＫを停止させるように、電力管理ユニット１１１を介してクロック制御回路１２０によって直接制御される。ライン１２７のクロックリクエスト信号ＣＬＫＲＥＱがたとえば代替バスマスタ１０８によってローに引き下げられるまで、ステートマシン８００は状態８２０のままである。クロックリクエスト信号ＣＬＫＲＥＱがローにアサートされると、ステートマシン８００は状態８１０に戻り、周辺バスクロック信号ＣＬＫが再始動される。
【００４４】
その次のクロックサイクルで、もしクロックリクエスト信号ＣＬＫＲＥＱがローにアサートされ続ければ、ステートマシン８００は状態８３０に入る。状態８３０の間、クロック制御回路１２０はライン１２７においてローへの駆動を維持し、そのためマスタまたはスレーブ装置は駆動を解放することができる。同期バスリクエスト信号（すなわち、ＳＲＥＱｘ）がアサートされれば、バスリクエスト信号がハイにデアサートされるまで、ステートマシン８００は状態８３０のままである。もしバスリクエスト信号ＳＲＥＱｘがローにアサートされずかつ予め定められたクロックサイクル数（すなわち、Ｎクロック）が生じれば、ステートマシン８００は状態８４０に入る。状態８４０の間、ライン１２７のクロックリクエスト信号ＣＬＫＲＥＱは、クロック制御回路１２０によって１クロックサイクルの間ハイにアサートされる。ステートマシン８００はその後再び状態８１０に戻る。
【００４５】
ライン１２７のクロックリクエスト信号が再びローに引き下げられそれによってステートマシン８００が状態８３０に入るまで、またはＭクロックサイクルが生じ、そのときにステートマシン８００が状態８２０に入りかつ周辺バスクロック信号が停止されるまで、ステートマシン８００は状態８１０のままである。
【００４６】
上述の説明から、もしスレーブ装置６００が周辺クロック信号ＣＬＫがＯＮのままであることを必要とすれば、スレーブ装置６００はクロック制御回路１２０によるライン１２７のクロックリクエスト信号（一般に「インジケータ」信号と呼ばれる）のローへのアサートを検出し（すなわち、図４の状態３４０の間、または図９の状態８４０の間）、かつクロックリクエスト信号をローに駆動してステートマシン３００の状態３３０（図４）またはステートマシン８００の状態８３０（図９）による決定に応じた付加的な定められた時間の間クロックを動かし続ける。
【００４７】
次に図１０を参照すると、バスインタフェースおよびアービタユニット１０６の代替的な構成のブロック図が示されている。簡略化しかつわかりやすくするために、図５に対応する回路部分には同じ参照番号が付されている。
【００４８】
図１０のシステムは、クロックリクエスト信号ＣＬＫＲＥＱを生成できるバスマスタ（すなわち、マスタ１０８等）に関しては、上述の図５の説明に従って動作する。このシステムはまた、クロックリクエスト信号を生成するように設計されていない従来のバスマスタも適応させる。マスタ９０２はそのような従来のバスマスタの１つを表している。
【００４９】
内部でクロックリクエスト信号を生成できない従来の代替バスマスタとの逆方向の互換性を得るために、バスマスタ（すなわち、マスタ９０２）が確実に同期バスリクエスト信号ＳＲＥＱｘを生成できるようにするように、電力節約モードの間クロック信号エッジの周期的な発生を制御するプログラマブルクロック制御回路９０６が設けられる。以下の説明からよりよく理解されるように、電力節約モードの間にクロックエッジが発生される周期速度は、従来のバスマスタの内部構成レジスタから読取られる値に依存する。
【００５０】
コンピュータシステム９００をリセットすると、マイクロプロセッサ１１９はＢＩＯＳブートコードの実行を開始する。ブート手順の間に、マスタ９０２の構成レジスタ９０４の内容を読取るために読取動作が実行される。この構成レジスタ９０４の特定の内容を以下にさらに詳細に議論する。
【００５１】
ＢＩＯＳコードはまた、マスタ９０２がクロックリクエスト信号ＣＬＫＲＥＱを生成できるかどうかを示す状態ビットを含む（マスタ９０２内の）予め定められたレジスタ位置への別の読取リクエストを呼出し得る。（なお、クロックリクエスト信号は同様に「クロックラン」信号ＣＬＫＲＵＮと呼ばれることもある）。マスタ９０２の場合、状態ビットは、マスタ９０２がクロックリクエスト信号ＣＬＫＲＥＱを生成できないことをシステムＢＩＯＳに示す。その後システムＢＩＯＳは、周辺バス１０２に接続され得るマスタ１０８等の他のいかなるバスマスタ内においても同様の状態および構成レジスタを読取るために付加的な読取リクエストを開始し得る。
【００５２】
マスタ９０２の構成レジスタ９０４の内容は、マスタが周辺バス１０２へのアクセスを要求し得る頻度を表している。周辺バス１０２がＰＣＩ規格構成バスである好ましい実施例では、構成レジスタ９０４は、いわゆるＭＡＸＬＡＴ（最大待ち時間）レジスタまたはフィールドを実現し得る。当業者によって容易に認識されるように、ＭＡＸＬＡＴフィールドは、特定の装置に関して必要とされるバンド幅、およびしたがってバスの調停のための優先順位レベルを決定するために、他のフィールドとともに用いられる。ＭＡＸＬＡＴ値はまた、特定のマスタの待ち時間の値の所望の設定を特定するために用いられる。以前に引用したＰＣＩ仕様（ＰＣＩ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ）の中に示されるように、ＭＡＸＬＡＴフィールドは、特定の装置がＰＣＩバスへのアクセスを得ることを必要とする頻度を特定するために用いられる。この値は、ユニットにおける１／４マイクロ秒の時間を特定する。値０は、装置が（特定のマスタ内の）待ち時間タイマの設定をあまり必要としていないことを表わす。
【００５３】
システムをリセットすると、ＢＩＯＳブートコードは、周辺バス１０２に接続される各々の代替バスマスタ内の指定されたＭＡＸＬＡＴ構成レジスタを読取り、かつどのバスマスタがクロックリクエスト信号の生成を支持できるかを決定する。各々のマスタのＭＡＸＬＡＴを読取る際に、システムは、（クロックリクエスト信号ＣＬＫＲＥＱを生成できないマスタのうちで）最も頻繁に周辺バス１０２へのアクセスを要求するマスタに対応するＭＡＸＬＡＴ値に従ってクロック制御タイマ９０８を設定する。最も頻繁に周辺バス１０２を要求するマスタがたとえば２マイクロ秒という最大待ち時間を特定すれば、システムは、１マイクロ秒（すなわち、特定された最大待ち時間の半分）ごとにサイクル動作を行なう（またはトリガする）ようにクロック制御タイマ９０８を設定する。その後、電力管理ユニット１１１によって周辺バスクロックを停止させるという決定がなされれば、クロック制御タイマ９０８はサイクル動作を始める。１マイクロ秒が経過するたびに、クロック制御回路９０６は、クロックジェネレータ１２２に少なくとも１クロックエッジ（すなわち、ワンショットまたはマルチショット）を与えるようにさせる。これにより、周辺バス１０２に結合されるマスタ９０２等のいかなるバスマスタも、たとえそのマスタがクロックリクエスト信号ＣＬＫＲＥＱを生成できなくても、周辺バス１０２の統御を得るために同期バスリクエスト信号（すなわち、ＳＲＥＱ２）を確実に生成することができる。同期バスリクエスト信号ＳＲＥＱｘをリセットすると、プログラマブルクロック制御回路９０６は、電力管理ユニット１１２に、周辺バスクロック信号がその最大の（または通常の）周波数で駆動される通常動作モードに再び入るようにさせる。それにより、リクエストを出しているマスタがサービスされる。
【００５４】
なお、好ましい実施例ではクロック制御タイマ９０８は特定された最大待ち時間の半分の時間で設定されるが、クロック制御タイマ９０８は特定された最大待ち時間に比例する（またはそれに依存する）他の値で設定されてもよい。たとえば、システムに応じて、クロック制御タイマ９０８は最大待ち時間の１／３の時間で設定される場合もある。しかしながら、最大待ち時間の１／２の時間に設定し、なおかつ各々のマスタがデータを損失せずに確実に周辺バスの統御を得ることができるようにすることによって、最適な電力の最適化が行なわれると考えられる。
【００５５】
したがって、図１０のシステムは、周期的なクロックエッジの各々を与える間の時間にできるだけ長くクロック信号を停止させることによって電力管理の最適化を適応する。図１１は、図１０のシステムの動作を示すフロー図である。ステップ９５０の間、システムＢＩＯＳは、スレーブ装置だけが周辺バス１０２に結合されるかどうかを決定する。もしそうであれば、ステップ９５２の間に、プログラマブルクロック制御回路は、クロックリクエスト信号ＣＬＫＲＥＱを生成できないバスマスタを適応させずに図５および図７のシステムに従って動作するように設定される。もし周辺バス１０２に接続されるマスタの各々がクロックリクエスト信号ＣＬＫＲＥＱを生成できれば、ステップ９５４による決定に応じて、同様の動作が設定される。もし周辺バス１０２に接続されるマスタの１つ以上がクロックリクエスト信号の生成を支持できなれば、ステップ９５６の間に、マスタのＭＡＸＬＡＴフィールドが読取られ、かつステップ９５８の間に、クロック制御タイマ９０８は、最も頻繁にアクセスを必要とするマスタ装置によって必要とされる時間の半分の値で設定される。
【００５６】
もし電力節約モードの間電力管理ユニット１１１が（クロックジェネレータ１２２を介して）代替的に周辺バスクロック信号を（完全に停止させるのではなく）減速させるのであれば、各々のマスタのＭＡＸＬＡＴフィールドから読取られる値は、クロック信号が減速され得る最小の周波数を決定するために用いられ得る。そのような実施例は、図１２に示されている。図１２の実施例では、クロックジェネレータ１２２は、プログラマブルクロック制御回路９０６によって、最も頻繁に周辺バスを必要とするマスタのＭＡＸＬＡＴフィールド内で特定される最大待ち時間の値の半分以下の周期で周辺バスクロック信号を生成するように設定される。たとえば、マスタ９０２がレジスタ９０４の値に従って２マイクロ秒ごとに周辺バス１０２へのアクセスを必要とし得ることを示し、かつ（クロックリクエスト信号の生成を支持できないマスタのうちで）最も頻繁に周辺バス１０２へのアクセスを必要とするのがそのマスタであれば、プログラマブルクロック制御回路９０６はライン９０７において周波数制御信号を生成し、この周波数制御信号は電力節約モードの間周辺バスクロック信号を１マイクロ秒（または１マイクロ秒以下）の周期で駆動させる。これにより、マスタ９０２は、少なくとも必要とし得る回数だけ同期バスリクエストを生成することができる。なお、一旦バスリクエスト信号ＳＲＥＱｘが特定のマスタによって生成されると、電力管理ユニット１１１はクロックジェネレータ１２２に周辺バスクロック信号を十分な周波数で駆動させる。
【００５７】
本発明に従ったシステムを用いると、電力管理のために周辺バスクロック信号を停止または減速させ、なおかつ周辺バスの統御を得るために同期バスリクエスト信号をアサートしなけばならない代替バスマスタを適応させることができる。
【００５８】
上述のアルゴリズムステートマシン３００、５００、７００および８００は、種々の周知の回路縮小法を用いることによって順序論理回路に縮小され得る。たとえば、ステートマシン３００、５００、７００および８００を順序論理回路に縮小するために、計算機援用設計ツールを用いてもよい。例示的な計算機援用設計ツールには、ＶＨＳＩＣハードウエア記述言語およびＶＥＲＩＬＯＧ記述言語がある。
【００５９】
図２および図５の電力管理ユニット１１１は、上述の機能の他に種々の付加的な電力管理機能を実現するように構成され得る。たとえば、電力管理ユニット１１１は、１９９２年１１月２４日発行のスミス（Ｓｍｉｔｈ  ）らへの米国特許番号第５，１６７，０２４号に記載される機能と同様の機能を実現するように設計され得る。この特許の全体を引用によりここに援用する。
【００６０】
なお、スレーブ装置６００を、種々の特定の周辺装置によって実現することができる。たとえば、スレーブ装置６００は、ディスクコントローラ装置またはオーディオコントローラ装置であることが可能である。
【００６１】
さらに、上述の実施例ではクロックジェネレータ１２２はバスインタフェースおよびアービタユニット１０６内にあるように示されているが、クロックジェネレータ１２２はコンピュータシステム１００の種々の代替回路ブロック内に組込まれてもよい。
【００６２】
上述の開示を十分に認識すれば、多くの変形例および変更例が当業者に明らかとなるであろう。たとえば、電力節約モードの間周辺バスクロック信号は完全に停止される（０Ｈｚ）のではなくいかなる周波数レベルにも低減されることができる。前掲の特許請求の範囲は、そのような変形例および変更例のすべてを含むものとして解釈されるものである。
【図面の簡単な説明】
【図１】周辺バスとその周辺バスに結合される複数の代替バスマスタとを含むコンピュータシステムのブロック図である。
【図２】周辺バスクロック信号を再始動させるためのクロック制御回路を含むコンピュータシステムの一部分のブロック図である。
【図３】一対の信号ドライバを可能化するためのフリップフロップを含むコンピュータシステムの一部分のブロック図である。
【図４】図２のクロック制御回路内に実現されるアルゴリズムステートマシンの図である。
【図５】周辺バスクロック信号を要求しかつ同期バスリクエスト信号を生成するための内部ステートマシンを有する代替バスマスタを含むコンピュータシステムの一部分のブロック図である。
【図６】代替バスマスタ内に実現されるアルゴリズムステートマシンの図である。
【図７】クロックリクエスト信号をアサートすることができるスレーブ装置を含むコンピュータシステムのブロック図である。
【図８】スレーブ装置内に実現されるアルゴリズムステートマシンの図である。
【図９】クロック制御回路内に実現されるアルゴリズムステートマシンの図である。
【図１０】従来のマスタ装置を含むコンピュータシステムのブロック図である。
【図１１】図１０のコンピュータシステム内のプログラマブルクロック制御回路の動作のフロー図である。
【図１２】従来のマスタ装置を含むコンピュータシステムのブロック図である。
【符号の説明】
１０２  周辺バス
１０４  ローカルバス
１０６  バスインタフェースおよびアービタユニット
１０８  代替バスマスタ
１１０  代替バスマスタ
１１１  電力管理ユニット
１１９  マイクロプロセッサ
１２０  クロック制御回路
１２２  クロックジェネレータ
【図１】
0003568592.tif 000002
【図２】
0003568592.tif 000003
【図３】
0003568592.tif 000004
【図４】
0003568592.tif 000005
【図５】
0003568592.tif 000006
【図６】
0003568592.tif 000007
【図７】
0003568592.tif 000008
【図８】
0003568592.tif 000009
【図９】
0003568592.tif 000010
【図１０】
0003568592.tif 000011
【図１１】
0003568592.tif 000012
【図１２】
0003568592.tif 000013