(57)【特許請求の範囲】
【請求項１】
コンピュータシステムのための電力管理ユニットであって、
前記電力管理ユニットの動作のモードを設定するための構成情報を記憶するよう構成された複数個の構成レジスタと、
前記複数個の構成レジスタの各々に結合され、前記複数個の構成レジスタの選択された１つを能動化するよう構成されたインデックスデコーダと、
前記インデックスデコーダに結合され、かつ前記複数個の構成レジスタのどれが前記インデックスデコーダにより能動化されるかを制御するインデックス値を記憶するよう構成されたインデックスレジスタと、
前記インデックスレジスタのアドレス位置を設定する値を記憶するよう構成されたプログラムレジスタと、
前記プログラムレジスタおよび前記インデックスレジスタに結合される制御ユニットとを含み、前記制御ユニットは、前記インデックスレジスタの前記アドレス位置に対する書込サイクルに応答して、前記インデックス値が前記インデックスレジスタ内にラッチされるのを引起こすよう構成された、電力管理ユニット。
【請求項２】
前記プログラムレジスタは、前記コンピュータシステムの構成空間内にマッピングされる、請求項１に記載の電力管理ユニット。
【請求項３】
前記インデックスレジスタは、前記コンピュータシステムのＩ／Ｏ空間内にマッピングされる、請求項１に記載の電力管理ユニット。
【請求項４】
前記制御ユニットは、構成データレジスタの位置に対する書込サイクルに応答して、構成データが前記複数個の構成レジスタの前記１つにラッチされるのをさらに引起こすことができる、請求項１に記載の電力管理ユニット。
【請求項５】
前記複数個の構成レジスタに結合される電力管理制御ユニットをさらに含み、前記電力管理制御ユニットは、システムクロック信号およびＣＰＵクロック信号の周波数を制御するための複数個のクロック制御ラインを含む、請求項１に記載の電力管理ユニット。
【請求項６】
前記電力管理制御ユニットに結合されるシステムモニタをさらに含み、前記システムモニタは、選択されたシステムアクティビティの発生を検出するよう構成された、請求項５に記載の電力管理ユニット。
【請求項７】
前記制御ユニットは、前記プログラムレジスタにラッチングイネーブル信号をアサートすることがさらに可能である、請求項１に記載の電力管理ユニット。
【請求項８】
コンピュータシステムであって、
処理ユニットと、
前記処理ユニットに結合されるシステムバスと、
前記システムバスに結合される電力管理ユニットとを含み、
前記電力管理ユニットは、
前記電力管理ユニットの動作のモードを設定するための構成情報を記憶するよう構成された複数個の構成レジスタと、
前記複数個の構成レジスタの各々に結合され、前記複数個の構成レジスタの選択された１つを能動化するよう構成されたインデックスデコーダと、
前記インデックスデコーダに結合され、かつ前記複数個の構成レジスタのどれが前記インデックスデコーダにより能動化されるかを制御するインデックス値を記憶するよう構成されたインデックスレジスタと、
前記インデックスレジスタのアドレス位置を設定する値を記憶するよう構成されたプログラムレジスタと、
前記プログラムレジスタおよび前記インデックスレジスタに結合される制御ユニットとを含み、前記制御ユニットは、前記インデックスレジスタの前記アドレス位置に対する書込サイクルに応答して、インデックス値が前記インデックスレジスタ内にラッチされるのを引起こすよう構成された、コンピュータシステム。
【請求項９】
前記プログラムレジスタは、前記コンピュータシステムの構成空間内にマッピングされる、請求項８に記載のコンピュータシステム。
【請求項１０】
前記インデックスレジスタは、前記コンピュータシステムのＩ／Ｏ空間内にマッピングされる、請求項８に記載のコンピュータシステム。
【請求項１１】
前記制御ユニットは、構成データレジスタの位置に対する書込サイクルに応答して、構成データが前記複数個の構成レジスタの前記１つにラッチされるのをさらに引起こすことができる、請求項８に記載のコンピュータシステム。
【請求項１２】
前記電力管理ユニットは、前記複数個の構成レジスタに結合される電力管理制御ユニットをさらに含み、前記電力管理制御ユニットは、システムクロック信号およびＣＰＵクロック信号の周波数を制御する複数個のクロック制御ラインを含む、請求項８に記載のコンピュータシステム。
【請求項１３】
前記電力管理ユニットは、前記電力管理制御ユニットに結合されるシステムモニタをさらに含み、前記システムモニタは、選択されたシステムアクティビティの発生を検出するよう構成された、請求項１２に記載のコンピュータシステム。
【請求項１４】
前記制御ユニットは、前記プログラムレジスタにラッチングイネーブル信号をアサートすることがさらに可能である、請求項８に記載のコンピュータシステム。
【請求項１５】
コンピュータシステムの電力管理ユニット内の複数個の構成レジスタをアクセスする方法であって、
インデックスレジスタのアドレス位置を設定する値をプログラムレジスタ内に記憶するステップと、
前記インデックスレジスタの前記アドレス位置に対して書込サイクルを実行することにより、前記インデックスレジスタ内にインデックス値を記憶するステップと、
前記インデックス値に従って前記複数個の構成レジスタの選択された１つを能動化するステップと、
前記複数個の構成レジスタの前記選択された１つに構成データを書込むステップとを含む、方法。
【請求項１６】
前記プログラムレジスタ内に値を記憶する前記ステップは、前記コンピュータシステムの構成アドレス空間内で書込サイクルを実行するステップを含む、請求項１５に記載の方法。
【請求項１７】
前記インデックスレジスタ内にインデックス値を記憶する前記ステップは、前記コンピュータシステムのＩ／Ｏアドレス空間内で書込サイクルを実行するステップを含む、請求項１６に記載の方法。
【請求項１８】
前記インデックス値が前記複数個の構成レジスタを所与の時間の間ソフトウェアによってアクセス可能となるよう選択し、かつ前記複数個の構成レジスタの残りが上記所与の時間の間ソフトウェアによってアクセス可能でない、請求項１に記載の電力管理ユニット。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明は、コンピュータシステムに関し、より特定的には、内部構成レジスタを含む電力管理ユニットに関する。
【０００２】
【関連技術の説明】
コンピュータシステム内の周辺デバイスは、典型的には複数個のいわゆる「構成」レジスタを含む。特定の周辺デバイス内の構成レジスタは、デバイスのユーザプログラマブルオペレーティングパラメータを制御する構成データを記憶するために与えられる。たとえば構成レジスタは、継続中のデータ転送の方向（すなわち、メモリからＩ／ＯまたはＩ／Ｏからメモリ）、転送されるべきバイト数などを制御するためにＤＭＡ（直接メモリアクセス）コントローラ内で用いられ得る。同様に構成レジスタは、とりわけ、プログラマブル期間を設定するためにタイマ内で、かつ様々な割込ソースの優先順位および／またはマスキングを設定するために割込コントローラ内で用いられ得る。
【０００３】
特定の周辺デバイスの構成レジスタは典型的には、Ｉ／Ｏ空間内に予め定められたアドレスを有するインデックスレジスタにオフセット値を最初に書込むことによって、ホストプロセッサによりアクセスされる。オフセット値は、特定の構成レジスタが書込まれているまたは読出されていることを示す。たとえば、８ビットからなるオフセット値は、２５６個までの異なる構成レジスタのいずれかを選択するために用いられ得る。指定された構成レジスタ（インデックスレジスタのオフセット値によって示される）に構成データを実際に書込むために、Ｉ／Ｏ書込サイクルが、典型的にはインデックスレジスタのワード位置より１ワード位置先である「構成データレジスタ」位置と呼ばれるアドレス位置に対して実行される。これにより、インデックスレジスタのオフセット値によって示される物理的な構成レジスタが書込まれる。指定された構成レジスタに対する読出動作は、同様の態様で達成される。そのようなインデックス技術を用いることにより、周辺デバイス内の複数個の構成レジスタが、たとえばコンピュータシステムのＩ／Ｏアドレス指定可能な空間内の２ワード位置のみを占める間に、選択的に書込まれまたは読出され得る。
【０００４】
電力管理ユニットは典型的には、複数個の構成レジスタを用いて、電力管理モード、タイムアウト値などを制御する。典型的なシステムでは、電力管理ユニットの構成レジスタは、上述のものと同様のインデックス機構を用いることによりアクセスされる。しかしながら、インデックスレジスタアドレスおよび対応する構成データレジスタアドレスが、コンピュータシステム内で用いるために必要な他の周辺デバイスのＩ／Ｏマッピングと競合するＩ／Ｏアドレス値を有する場合に、問題が生じる。そのような状況が生じると、電力管理ユニットまたは競合する周辺デバイスがシステムから除去されなければならない。これは、コンピュータシステムの全体の柔軟性を制限してしまう。
【０００５】
【発明の概要】
上記で概略を述べた問題は、この発明に従う構成レジスタをアクセスするプログラマブルインデックスレジスタを含む電力管理ユニットによって、大部分は解決される。１つの実施例では、電力管理ユニットは、電力管理ユニットの様々なオペレーショナルパラメータ、たとえばクロック制御および電力制御パラメータを設定するための構成情報を記憶する複数個の構成レジスタを含む。プログラムレジスタは、コンピュータシステムの構成空間内でマッピングされ、かつインデックスレジスタのＩ／Ｏアドレスを設定する値を記憶するために用いられる。プログラムレジスタは、電力管理ユニットの初期設定の間に書込まれ、かつ予め定められたデフォルト値と関連し得る。一旦プログラムレジスタがインデックスレジスタのＩ／Ｏアドレスを表わす値で設定されると、構成レジスタへのアクセスは、インデックスレジスタにオフセット値を最初に書込むことによって達成される。その後、構成データは、インデックスレジスタのワード位置より１ワード位置先にマッピングされ得る、構成データレジスタのアドレスに対して適切なサイクルを実行することによって、指定された構成レジスタに書込まれまたはそれから読出され得る。プログラマブルインデックスレジスタの結果として、コンピュータシステムのＩ／Ｏ空間内の構成データレジスタおよびインデックスレジスタのアドレスは、ソフトウェアによって特定されることができ、こうして、システム設計者に、コンピュータシステム内に組入れられる他の周辺デバイスの選択に関して、より大きい柔軟性を可能にする。
【０００６】
概して、この発明は、電力管理ユニットの動作のモードを設定するための構成情報を記憶することができる複数個の構成レジスタを含む、コンピュータシステムのための電力管理ユニットを企図する。電力管理ユニットは、構成レジスタの各々に結合され、構成レジスタの一つを能動化するインデックスデコーダと、インデックスデコーダに結合され、かつどの構成レジスタがインデックスデコーダにより能動化されるかを制御するインデックス値を記憶することができるインデックスレジスタとをさらに含む。電力管理ユニットは、インデックスレジスタのアドレス位置を設定する値を記憶することができるプログラムレジスタと、プログラムレジスタおよびインデックスレジスタに結合される制御ユニットとを最終的には含む。制御ユニットは、インデックスレジスタのアドレス位置に対する書込サイクルに応答して、インデックス値がインデックスレジスタ内にラッチされることを引起こすことができる。
【０００７】
この発明は、処理ユニットと、処理ユニットに結合されるシステムバスと、システムバスに結合される電力管理ユニットとを含むコンピュータシステムをさらに企図する。電力管理ユニットは、電力管理ユニットの動作のモードを設定するための構成情報を記憶することができる複数個の構成レジスタと、構成レジスタの各々に結合され、一つの構成レジスタを能動化するインデックスデコーダと、インデックスデコーダに結合され、かつどの構成レジスタがインデックスデコーダにより能動化されるかを制御するインデックス値を記憶することができるインデックスレジスタとを含む。電力管理ユニットは、インデックスレジスタのアドレス位置を設定する値を記憶することができるプログラムレジスタと、プログラムレジスタおよびインデックスレジスタに結合される制御ユニットとをさらに含む。制御ユニットは、インデックスレジスタのアドレス位置に対する書込サイクルに応答して、インデックス値がインデックスレジスタ内にラッチされることを引起こすことができる。
【０００８】
この発明は、コンピュータシステムの電力管理ユニット内の複数個の構成レジスタをアクセスする方法を最終的には企図しており、この方法は、インデックスレジスタのアドレス位置を設定する値をプログラムレジスタ内に記憶するステップと、インデックスレジスタのアドレス位置に対して書込サイクルを実行することによりインデックスレジスタ内にインデックス値を記憶するステップと、インデックス値に従って複数個の構成レジスタの１つを能動化するステップとを含む。この方法は、複数個の構成レジスタの１つに構成データを書込む最後のステップを含む。
【０００９】
この発明の他の目的および利点は、次の詳細な説明を読みかつ添付の図面を参照すると明らかになるであろう。
【００１０】
この発明には、様々な変形例および代替の形態が可能であるが、その特定の実施例を例として図面に示し、かつここに詳細に説明する。しかしながら、その図面および詳細な説明は、この発明を開示される特定の形態に限定することを意図せず、それどころかその意図は、前掲の特許請求の範囲により規定されるこの発明の精神および範囲内にあるすべての変形例、均等物および代替例をカバーすることである。
【００１１】
【詳細な説明】
さて図面を参照すると、図１は、システムバス１０６を介して電力管理ユニット１０４に結合されるマイクロプロセッサ（ＣＰＵ）１０２を含むコンピュータシステム１００のブロック図である。マイクロプロセッサ１０２は、予め定められた命令セットを実現するデータ処理ユニットである。例示的な処理ユニットは、とりわけモデル８０３８６および８０４８６マイクロプロセッサを含む。システムバス１０６は、たとえばＰＣＩローカルバスを例示する。しかしながら、ＩＳＡまたはＥＩＳＡバス標準などの他のバス標準が、代替として用いられ得ることが理解される。
【００１２】
概して、電力管理ユニット１０４は、コンピュータシステム１００内の電力を管理するために与えられる。電力管理ユニット１０４は、キーボードアクティビティ、バスアクティビティ、および割込アクティビティなどの様々なシステムアクティビティをモニタすることができるシステムモニタ１０７を含む。電力管理制御ユニット１０８は、システムモニタ１０７に結合され、かつライン１１０および１１１に１組の電力制御およびクロック制御信号を発生する。クロック制御信号は、たとえばＣＰＵクロック信号およびシステムクロック信号の発生および周波数を制御する。電力制御信号は、様々な周辺デバイス（図示せず）への電力の印加を制御するために用いられる。システムモニタ１０７および電力管理制御ユニット１０８の例示的な実現例は、たとえば、スミス（Ｓｍｉｔｈ  ）他の米国特許第５，１６７，０２４号と、同日出願のゲファート（Ｇｅｐｈａｒｄｔ）他による「コンピュータシステムおよびコンピュータシステム内の電力を管理するための方法」（“Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｏｐｔｉｍａｌ  Ｆｌｅｘｉｂｉｌｉｔｙ  ”）と題されかつ同一の譲受人に譲渡された同時係属中の特許出願とに記載される。これらの文献は、全体を引用によりここに援用する。
【００１３】
電力管理ユニット１０４は、電力管理制御ユニット１０８に結合される構成レジスタユニット１２０と、システムバス１０６に結合される制御ユニット１２２とをさらに含む。プログラムレジスタ１２４およびインデックスレジスタ１２６は、システムバス１０６にさらに結合される。インデックスデコーダ１２８は、構成レジスタユニット１２０に結合されて最終的に示される。
【００１４】
構成レジスタユニット１２０は、電力管理制御ユニット１０８の動作を制御する構成情報を記憶するために複数個の構成レジスタ１２０Ａ−１２０Ｈを含む。構成レジスタ１２０Ａ−１２０Ｈの幾つかのものが、電力管理制御ユニット１０８の状態を表わす情報を記憶するためにさらに用いられ得ることが注目される。たとえば、構成レジスタ１２０Ａ−１２０Ｈは、システムモニタ１０７によって検出される選択されたシステムアクティビティに対する電力管理制御ユニット１０８の応答を制御する構成情報で書込まれ得る。構成情報は、特定の電力管理モードの間にどの周辺デバイス（図示せず）をパワーダウンするかをさらに制御することができ、かつ特定の管理モードの間に選択されたクロック信号の周波数を制御することができる。構成情報はまた、電力管理制御ユニット１０８と関連する幾つかのタイムアウト値、たとえばシステムアクティビティが検出されないときに電力減少モードに入ることを制御するタイムアウト値などを制御し得る。構成レジスタは最終的には、状態情報、たとえば電力管理制御ユニット１０８の現在のモードなどを記憶し得る。
【００１５】
プログラムレジスタ１２４は、コンピュータシステム１００の構成空間内の予め定められた位置にマッピングされ、かつコンピュータシステム１００のＩ／Ｏ空間内のインデックスレジスタ１２６のアドレス値を設定するパラメータを記憶するために与えられる。コンピュータシステム１００の初期設定の間に、システムプログラマは、インデックスレジスタ１２６のための所望のアドレス値をプログラムレジスタ１２４に書込み得る。これは、プログラムレジスタ１２４がマッピングされる構成空間の予め定められたアドレスに対して書込サイクルを実行することにより達成される。そのようなサイクルの結果として、電力管理ユニット１０４へのＩＤＳＥＬ信号は、対応するアドレスおよび制御信号とともにシステムバス１０６で駆動される。制御ユニット１２２は、応答してプログラムレジスタ１２４にラッチングイネーブル信号を与え、システムバス１０６のデータラインのインデックスアドレス値がプログラムレジスタ１２４内にラッチされることを引き起こす。
【００１６】
インデックスレジスタ１２６は、インデックスデコーダ１２８が示す特定の構成レジスタ１２０Ａ−１２０Ｈを制御するインデックス値を記憶するために与えられる。インデックスレジスタ１２６は、プログラムレジスタ１２４内の値により特定されるアドレス位置に対してＩ／Ｏ書込サイクルを実行することによって、インデックス値で書込まれ得る。そのようなＩ／Ｏ書込サイクルに応答して、制御ユニット１２２は、ラッチングイネーブル信号をインデックスレジスタ１２６に与え、これは、システムバス１０６のデータラインで駆動されるインデックス値がインデックスレジスタ１２６内にラッチされることを引き起こす。インデックスデコーダ１２８は、インデックスレジスタ１２６のインデックス値をデコードするデコーディング回路であり、したがって構成レジスタ１２０Ａ−１２０Ｈの別個のイネーブル入力に結合されるライン１４０Ａ−１４０Ｈの１つにイネーブル信号をアサートする。一旦所望のインデックス値がインデックスレジスタ１２６内に記憶されると、インデックスデコーダ１２８により示される特定の構成レジスタ１２０Ａ−１２０Ｈ（すなわち能動化される構成レジスタ）は、インデックスレジスタ１２６のアドレスより１ワード先のアドレス位置に対してＩ／Ｏ書込サイクルを実行することによって、構成データで書込まれ得る。そのようなＩ／Ｏ書込サイクルに応答して、制御ユニット１２２は、ライン１４２にライトイネーブル信号をアサートし、これは、システムバス１０６からの構成データが指定された構成レジスタ１２０Ａ−１２０Ｈ内に記憶されることを引き起こす。同様のＩ／Ｏ読出サイクルが実行されることができ、制御ユニット１２２は（ライン１４４を介して）、指定された構成レジスタユニット１２０Ａ−１２０Ｈの出力を能動化し、それにより構成レジスタの状態を読出す。
【００１７】
図２は、コンピュータシステム１００の構成空間２０２およびＩ／Ｏ空間２０４の部分を図示する図である。図に図示されるように、プログラムレジスタ１２４は、コンピュータシステム１００の構成空間内の予め定められた位置にマッピングされる。図示される例では、４０ヘキサデシマルの値がプログラムレジスタ１２４内に記憶される。こうして、これは、インデックスレジスタ１２６のＩ／Ｏアドレスと、構成データレジスタの対応するアドレスとを設定する。すなわち、インデックスレジスタ１２６へのアクセスは、４０ｈのＩ／Ｏアドレスに対して行なわれなければならず、一方構成データレジスタへのアクセスは、４２ｈのＩ／Ｏアドレスに対して行なわれなければならない。一旦値４０ｈがプログラムレジスタ１２４内に記憶されると、４０ｈのＩ／Ｏ位置に対するＩ／Ｏ書込サイクルは、インデックスレジスタ１２６内にインデックス値を記憶する。アドレス位置４２ｈに対するその後のＩ／Ｏ書込サイクルは、次に実行され、インデックス値により示される特定の構成レジスタ１２０Ａ−１２０Ｈに構成データを書込む。状態情報は、同様の態様で構成レジスタ１２０Ａ−１２０Ｈから読出され得る。プログラムレジスタ１２４を与えることにより、インデックスレジスタ１２６のアドレスと、対応する構成データレジスタのアドレス（この実施例では、インデックスレジスタの特定のアドレスより常に１ワード位置先である）とは、ユーザによりプログラムされることができ、こうしてシステムプログラマが、予め定められたＩ／Ｏアドレス位置を占める他のＩ／Ｏ周辺デバイスとの競合を避けるのを可能にする。
【００１８】
コンピュータシステム１００内にマッピングされる「構成データレジスタ」アドレスが、インデックスレジスタ１２６のプログラムされたアドレスより１ワード位置先に位置決めされるが、構成データレジスタの位置は、インデックスレジスタに関するいかなるオフセットでも与えられ得ることが注目される。さらに、プログラムレジスタ１２４は、コンピュータシステム１００の構成空間内にマッピングされるが、プログラムレジスタ１２４をコンピュータシステム１００のメモリまたはＩ／Ｏ空間内にマッピングすることが可能である。
【００１９】
計算機援用設計ツールが、制御ユニット１２２を順序論理回路に縮小するために用いられ得ることがさらに注目される。例示的な計算機援用設計ツールは、動作言語ベリログ（Ｖｅｒｉｌｏｇ  ）とＶＨＳＩＣハードウェア記述言語とを含む。
【００２０】
多数の変更例および変形例は、上述の開示が十分に評価されると、当業者には明らかになるであろう。たとえば、いかなる数の構成レジスタも電力管理ユニット内に与えられ得ることが理解される。前掲の特許請求の範囲は、そのような変更例および変形例をすべて含むように解釈されることが意図される。
【図面の簡単な説明】
【図１】この発明に従う構成レジスタをアクセスするためにプログラマブルインデックスレジスタを含む電力管理ユニットを用いるコンピュータシステムのブロック図である。
【図２】この発明に従う電力管理ユニットを用いるコンピュータシステムの構成およびＩ／Ｏ空間を図示する図である。
【符号の説明】
１００  コンピュータシステム
１０４  電力管理ユニット
１２０Ａ−１２０Ｈ  構成レジスタ
１２２  制御ユニット
１２４  プログラムレジスタ
１２６  インデックスレジスタ
１２８  インデックスデコーダ
【図１】
0003628373.tif 000002
【図２】
0003628373.tif 000003