(57)【要約】【課題】コンピュータシステムにおける電力管理の方法および装置を提供する。【解決手段】コンピュータシステムにおける電力管理の方法および装置を開示する。一実施形態に係る方法によると、コンピュータシステムにおいて、チップセットデバイスと周辺機器を接続するインターコネクト上で行われるトランザクションが監視され、トランザクションのやり取りは周辺機器とチップセットデバイスの間で、チップセットデバイスにトランザクションの記録を取らせるフローコントロールプロトコルに従って行われる手順と、チップセットデバイスのバッファで保留にされている複数のコヒーレントトランザクションが第１のしきい値を超えた場合、コンピュータシステムのプロセッサはある電力状態から出る手順を含む。説明および請求の範囲にはこれ以外の実施形態も含まれている。
2007517332.tif 000002
【特許請求の範囲】
【請求項１】
システムの電力を管理する方法であって、
当該システム中のチップセットデバイスと周辺機器を接続するインターコネクト上で行われる複数のトランザクションを監視する手順であって、前記複数のトランザクションのやり取りは、前記周辺機器と前記チップセットデバイス間において、前記チップセットデバイスに前記複数のトランザクションの記録を取らせるフローコントロールプロトコルに従って行われている手順と、
前記チップセットデバイスのバッファに保留されている複数のコヒーレントトランザクションが第１しきい値を超えている場合、前記システム中に備えられたプロセッサがある電力状態から出る手順と
を備える方法。
【請求項２】
前記バッファに保留されている前記複数のコヒーレントトランザクションが前記第１しきい値を超えていない場合、所定の時間が経過したか確認する手順と、
前記所定の時間が経過している場合、前記プロセッサは前記ある電力状態から出る手順と
をさらに備える請求項１に記載の方法。
【請求項３】
前記プロセッサが前記ある電力状態に入る要求を出した場合、
前記チップセットデバイスの前記バッファに保留中の複数のインコヒーレントトランザクションが第２しきい値を超えていれば、前記プロセッサが前記ある電力状態に入ることを許可するべく、メッセージパケット内のインジケータをデアサートする手順
をさらに備える請求項１に記載の方法。
【請求項４】
前記チップセットデバイスの前記バッファに保留中の前記複数のインコヒーレントトランザクションが前記第２しきい値を超えている場合、前記プロセッサが前記ある電力状態に入ることを禁止するべく、前記メッセージパケット内のインジケータをアサートする手順
をさらに備える請求項３に記載の方法。
【請求項５】
前記チップセットデバイスの前記バッファに保留中の前記複数のインコヒーレントトランザクションが前記第２しきい値を下回る場合、第２の所定時間が経過したか確認する手順と、
前記第２の所定時間が経過していれば、前記プロセッサが前記ある電力状態に入ることを許可するべく、前記メッセージパケット内の前記インジケータをデアサートする手順と
をさらに備える請求項３に記載の方法。
【請求項６】
前記第１しきい値と前記第２しきい値は略等しい
請求項３に記載の方法。
【請求項７】
前記第１しきい値は前記第２しきい値より小さい
請求項３に記載の方法。
【請求項８】
前記第１しきい値は前記第２しきい値より大きい
請求項３に記載の方法。
【請求項９】
前記フローコントロールプロトコルは、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）Ｅｘｐｒｅｓｓである
請求項１に記載の方法。
【請求項１０】
前記チップセットデバイスはメモリコントローラを含む
請求項１に記載の方法。
【請求項１１】
前記チップセットデバイスは入出力コントローラを含む
請求項１に記載の方法。
【請求項１２】
コンピュータシステムに備えられた装置であって、
当該コンピュータシステム中のルートコンプレックスデバイスと周辺機器を接続するインターコネクト上で行われる複数のトランザクションを監視する電力管理回路であって、前記複数のトランザクションのやり取りは、前記周辺機器と前記ルートコンプレックスデバイス間において、前記ルートコンプレックスデバイスに前記複数のトランザクションの記録を取らせるフローコントロールプロトコルに従って行われている電力管理回路と、
前記ルートコンプレックスデバイスに接続されたデジタルメディアインターフェースであって、前記ルートコンプレックスデバイスのバッファに保留されている複数のコヒーレントトランザクションが第１しきい値を超えている場合、前記コンピュータシステム中に備えられたプロセッサがある電力状態から出るべく、第１メッセージパケットを前記ルートコンプレックスデバイスに送信するデジタルメディアインターフェースと
を備える装置。
【請求項１３】
前記プロセッサが前記ある電力状態に入る要求を出した場合、前記ルートコンプレックスデバイスの前記バッファに保留中の複数のインコヒーレントトランザクションが第２しきい値を超えていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入ることを許可するべく、第２メッセージパケット内のインジケータをデアサートする
請求項１２に記載の装置。
【請求項１４】
前記プロセッサが前記ある電力状態に入る要求を出した場合、前記ルートコンプレックスデバイスの前記バッファに保留中の前記複数のインコヒーレントトランザクションが前記第２しきい値を下回っていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入ることを禁止するべく、前記第２メッセージパケット内の前記インジケータをアサートする
請求項１３に記載の装置。
【請求項１５】
タイマであって、当該タイマが切れていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入るのを禁止するべく、前記第２メッセージパケット内の前記インジケータをアサートするタイマ
をさらに含む請求項１４に記載の装置。
【請求項１６】
前記第１しきい値と前記第２しきい値は略等しい
請求項１４に記載の装置。
【請求項１７】
前記フローコントロールプロトコルは、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）Ｅｘｐｒｅｓｓである
請求項１２に記載の装置。
【請求項１８】
コンピュータシステムに備えられた半導体チップであって、
前記コンピュータシステム中で周辺機器に接続されたメモリコントローラと、
前記周辺機器と前記メモリコントローラ間のトランザクションを監視するべく、前記メモリコントローラに接続された電力管理回路と、
前記メモリコントローラと同じ基板に配設されている入出力コントローラであって、前記コンピュータシステム中のプロセッサからある電力状態に入る要求を受けた場合、前記メモリコントローラのバッファに保留中の複数のインコヒーレントトランザクションが入しきい値を超えていれば、前記プロセッサが前記ある電力状態に入ることを許可し、前記複数のインコヒーレントトランザクションが前記入しきい値を下回っていれば、前記プロセッサが前記ある電力状態に入ることを禁止する入出力コントローラと
を含む半導体チップ。
【請求項１９】
前記メモリコントローラの前記バッファに保留中の複数のコヒーレントトランザクションが出しきい値を超えている場合、前記入出力コントローラは前記プロセッサを前記ある電力状態から出す
請求項１８に記載の半導体チップ。
【請求項２０】
前記入しきい値と前記出しきい値は略等しい
請求項１９に記載の半導体チップ。
【請求項２１】
前記入しきい値と前記出しきい値は変更することができる
請求項１９に記載の半導体チップ。
【請求項２２】
前記周辺機器と前記メモリコントローラは、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）Ｅｘｐｒｅｓｓインターコネクトを介して接続されている
請求項１８に記載の半導体チップ。
【請求項２３】
前記周辺機器と前記メモリコントローラはバスを介して接続されている
請求項１８に記載の半導体チップ。
【請求項２４】
システムであって、
プロセッサと、
前記プロセッサに接続されたメモリコントローラと、
グラフィックスチップと、
前記グラフィックスチップと前記メモリコントローラを接続するインターコネクトと、
前記メモリコントローラに接続された入出力コントローラと、
を有しており、
前記入出力コントローラは
前記インターコネクト上で行われる複数のトランザクションを監視する電力管理回路であって、前記複数のトランザクションのやり取りは、前記グラフィックスチップと前記メモリコントローラ間において、フローコントロールプロトコルに従って行われている電力管理回路と、
前記メモリコントローラに接続されたデジタルメディアインターフェースであって、前記メモリコントローラのバッファに保留されている複数のコヒーレントトランザクションが第１しきい値を超えている場合、前記プロセッサがある電力状態から出るべく、第１メッセージパケットを前記メモリコントローラに送信するデジタルメディアインターフェースと
を含むシステム。
【請求項２５】
前記プロセッサが前記ある電力状態に入る要求を出した場合、前記メモリコントローラの前記バッファに保留中の複数のインコヒーレントトランザクションが第２しきい値を超えていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入ることを許可するべく、第２メッセージパケット内のインジケータをデアサートする
請求項２４に記載のシステム。
【請求項２６】
前記プロセッサが前記ある電力状態に入る要求を出した場合、前記メモリコントローラの前記バッファに保留中の前記複数のインコヒーレントトランザクションが前記第２しきい値を下回っていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入ることを禁止するべく、前記第２メッセージパケット内の前記インジケータをアサートする
請求項２５に記載のシステム。
【請求項２７】
前記第１しきい値と前記第２しきい値は略等しい
請求項２６に記載のシステム。
【請求項２８】
前記フローコントロールプロトコルは、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）Ｅｘｐｒｅｓｓである
請求項２４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ技術に関する。特に本発明は、コンピュータシステムの電力管理に関する。
【背景技術】
【０００２】
普通のコンピュータシステムでは、システムの電力管理を確実に行えるように中央演算処理装置（ＣＰＵ）の電力状態をさまざまなレベルで設定できる。例えば、ＣＰＵの電力をＣ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４という５つの状態に設定するとしてもよい。一例を挙げれば、Ｃ０状態はＣＰＵが命令を実行するアクティブ状態で、残りのＣ１、Ｃ２、Ｃ３およびＣ４状態はスリーピング状態である。スリーピング状態にある時、ＣＰＵは命令を実行しないため、Ｃ０の場合より、消費電力および放出熱が少なくなる。また通常、Ｃ４状態に入るとＣＰＵ供給電圧が下げられるため、Ｃ４状態での消費電力はＣ３状態の場合より少なくなる。
【０００３】
各スリーピング状態では、ある状態から出たりある状態に入ったりする時に遅延時間が発生し、この遅延時間は各状態での節電に影響を及ぼす。通常は、節電効果を高めるべく停止する回路やロジックを増やすと、停止した回路やロジックの再始動にかかる労力が増加し、その電力状態から出る時の遅延時間は長くなる。例を挙げると、Ｃ３またはＣ４状態（Ｃ３／Ｃ４状態）にある時ＣＰＵはスヌープを行わないので、電力削減効果を向上させるため位相ロックループ（ＰＬＬ）や入出力回路（Ｉ／Ｏ）を停止することもできる。しかし、ＣＰＵがＣ３／Ｃ４状態から出た後でＰＬＬやＩ／Ｏを再始動する時に、時間がかかってしまう。
【０００４】
例えば、Ｃ０状態ではＣＰＵはメモリにアクセスでき、Ｃ１またはＣ２状態ではバスマスタが開始するメモリトラフィックをスヌープできる。バスマスタは、所定の時間においてバスを制御する周辺機器であって、例えば外付けのグラフィックコアである。このため、あるデバイスから別のデバイスへのバスを介したデータの移動をバスマスタイベントと呼ぶ。Ｃ３／Ｃ４状態では、より深いスリーピング状態を実現するため、ＣＰＵはスヌープやメモリアクセスも一時停止する。ＣＰＵがＣ３／Ｃ４状態にある場合にバスマスタが開始するメモリトラフィックをスヌープするためには、Ｃ３／Ｃ４状態から出なければならない。Ｃ３／Ｃ４状態から出る時の待ち時間が長いので、システムは、Ｃ３／Ｃ４状態に入る前にＣＰＵのスヌープが必要なバスマスタイベントが周辺機器との間で実行中かどうか確認しなければならない。実行中のバスマスタイベントがあった場合、ＣＰＵはＣ３／Ｃ４状態より消費電力は多いが出る時の待ち時間が少ない電力状態（例えばＣ１もしくはＣ２）にとどまらなければならない。
【０００５】
周辺機器は、ＰＣＩ  Ｅｘｐｒｅｓｓインターコネクトなどのシリアル・インターコネクトによって、ルートコンプレックスデバイスを介して、ＣＰＵに接続されていてもよい。ルートコンプレックスデバイスはホストブリッジおよび１以上のルートポートを有する。例を挙げると、メモリコントローラやＩ／Ｏコントローラなどの機能デバイスがある。インターコネクトはデバイス同士を接続する。ＰＣＩ  Ｅｘｐｒｅｓｓは、点同士を結ぶ高速のシリアルインターコネクトの標準規格となっている。初期のＰＣＩ  Ｅｘｐｒｅｓｓインターコネクトでは、１レーン当たり２．５ギガバイト毎秒でのデータ転送が実現される。例えば、グラフィックデバイスとコンピュータシステムのチップセット（例えばメモリコントローラハブ）は、１６レーンのＰＣＩ  Ｅｘｐｒｅｓｓインターコネクトによって接続されている。
【０００６】
また、ＰＣＩ  Ｅｘｐｒｅｓｓインターコネクトは、インターコネクト上で行われるトラフィックの記録を取るべく、クレジットを単位として用いる計算方式を実施できるので、フローコントロールが可能となる。クレジットは、インターコネクト上で行われるさまざまな種類のトランザクションが利用可能なデバイス中のバッファスペースを示す。例えばメモリコントローラは、複数のレジスタに情報を書き込むことで、データを送信するよう、ルートコンプレックスデバイスの機能を実現するソフトウェアに伝える。ＰＣＩ  Ｅｘｐｒｅｓｓプロトコルでは、読み出し要求や書き込み要求、完了を始めとするさまざまなトランザクションについて所定の数のクレジットが規定されている。例えば、グラフィックデバイスがトランザクション（例えば読み出し要求）をルートコンプレックスデバイスに対して発行し、このトランザクションが保留にされると、保留トランザクションのバッファリングがメモリコントローラ中に占める量に応じたクレジットが使用される。メモリコントローラがこのトランザクションを扱うか中止した場合、使用されたクレジットは元に戻される。使用クレジットの量で示される保留中のトランザクションの数を見ることで、Ｃ３／Ｃ４状態に入るのを禁止する理由となり得るバスマスタイベントが発生する可能性が分かる。
【０００７】
先行技術では、側波帯信号を使用してバスマスタトラフィックが実行中であることを通知する。例えば、グラフィックデバイスは、コンピュータシステムのルートコンプレックスデバイスに対してＡＧＰ＿ＢＵＳＹ信号を送信し、コンピュータシステムとの間でバスマスタトラフィックが実行中であることを通知する。ここで、コンピュータシステムとグラフィックデバイスはＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）で接続される。しかし側波帯信号は、各デバイスに信号用ピンが１対１の割合で必要になるため、高コストとなってしまう。また、コンピュータシステム中に側波帯信号用のコネクタ構造を永久的に設けなければならないが、今後の技術革新によって側波帯信号を使用しなくなるかもしれない。
【０００８】
本発明は、以下の詳細な説明および添付した図面により明らかになる。しかし以下の説明および図面は、特許請求の範囲を具体的な実施の形態に限定するものではなく、理解を深めるための説明にすぎない。
【図面の簡単な説明】
【０００９】
【図１Ａ】図１Ａは、一実施形態に係るコンピュータシステムの電力管理方法を示すフローチャートである。
【００１０】
【図１Ｂ】図１Ｂは、一実施形態に係るコンピュータシステムの電力管理方法を示すフローチャートである。
【００１１】
【図２Ａ】図２Ａは、入しきい値の一実施形態を示す。
【００１２】
【図２Ｂ】図２Ｂは、出しきい値の一実施形態を示す。
【００１３】
【図３Ａ−３Ｃ】図３Ａから図３Ｃは、チップセットのパーティション構成のさまざまな実施形態を示す。
【００１４】
【図４】図４は、コンピュータシステムの実施形態の一例を示す。
【発明を実施するための最良の形態】
【００１５】
以下で本発明を具体的および詳細に説明する。しかし本発明は、以下で説明した内容以外の実施形態を含むとしてもよい。また公知の回路、構造および技術については、本発明を分かりやすく説明するべく、詳細な説明を避けている。
【００１６】
明細書中で「一実施形態」や「ある実施形態」とある場合、その実施形態に関連して説明された特徴や構造、特性が、本発明の少なくとも１つの実施形態に含まれている。明細書中に「一実施形態」と何度か言及されているが、これらは必ずしも同一の実施形態を指す示すものではない。
【００１７】
コンピュータシステムの電力管理の方法および装置を開示する。一実施形態に係る方法によると、コンピュータシステムにおいてチップセットデバイスと周辺機器を接続するインターコネクト上で行われるトランザクションを監視する。このトランザクションのやり取りは、周辺機器とチップセットデバイス間で、チップセットデバイスにトランザクションの記録を取らせるフローコントロールプロトコルに従って行われる。本実施形態ではさらに、チップセットデバイスのバッファで保留にされている複数のコヒーレントトランザクションが所定の基準より大きくなった場合、コンピュータシステムのプロセッサがある電力状態から出る。フローコントロールプロトコルの具体例としては、ＰＣＩ  Ｅｘｐｒｅｓｓが挙げられる。ほかの特徴は、添付図面および以下の詳細な説明で明らかにする。
【００１８】
図１Ａは、コンピュータシステムの電力管理の方法の一実施形態を示すフローチャートである。この処理を実行するのは、ハードウェア（例えば回路や専用ロジックなど）、ソフトウェア（例えば汎用コンピュータシステムや専用機器で実行されるもの）、もしくは両方の組み合わせを含む処理ロジックである。上述したが、ＣＰＵはＣ３／Ｃ４状態にある場合、メモリへのアクセスやバスマスタが開始するトラフィックのスヌープを開始しないこともある。このため、ＣＰＵからＣ３／Ｃ４状態に入る要求を受け取った場合（処理ブロック１０１）、処理ロジックは一連の処理を実行して、システムの周辺機器がＣＰＵに対してバスマスタのスヌープやスヌープなしのシステムメモリへの直接アクセスを要求する可能性があるかどうか判定する。周辺機器の例は、外付けのグラフィックスコア、イーサネットコントローラなどである。処理ロジックは周辺機器の１つからトランザクション１０３を受け取るとしてもよい（処理ブロック１０４）。トランザクション１０３はコヒーレントでもインコヒーレントであってもよい。ここで、コヒーレントトランザクションとは、ＣＰＵのキャッシュにおいて現在もしくはこの後使用または変更されるデータに関連するもので、インコヒーレントトランザクションは逆に、ＣＰＵのキャッシュで現在記憶、使用または変更されていない、メモリから読み出されたデータに関連する。
【００１９】
図１Ａにおいて、処理ロジックは、受信したトランザクション１０３がコヒーレントかどうかと、コンピュータシステム中のメモリコントローラに保留中のコヒーレントトランザクションがあるかどうかを確認する（処理ブロック１１０）。どちらか一方に当てはまる場合、処理ロジックはバスマスタインジケータをアサートして、ＣＰＵがＣ３／Ｃ４状態に入ることを禁止する（処理ブロック１３０）。一実施形態では、ＣＰＵはその後デフォルト状態に入る。デフォルト状態はＣ１もしくはＣ２状態であってもよい。
【００２０】
しかし受信したトランザクション１０３がインコヒーレントで、ルートコンプレックスデバイスに保留状態のコヒーレントトランザクションがない場合、処理ロジックは、インコヒーレントトランザクション１３０がメモリコントローラのバッファに占める量に対応した数のクレジットを使用し、トランザクション１０３を保留とする（処理ブロック１１２）。処理ロジックは、使用されたクレジットの総数が、入しきい値以上であるかどうか判定するとしてもよい（処理ブロック１２０）。使用されたクレジットの総数が入しきい値以上である場合、保留中のトランザクションがルートコンプレックスデバイスのバッファに占める量が、入しきい値に対応した水準を超えている。つまりメモリコントローラ中でバッファリングに利用できる部分が少なくなっているので、周辺機器がメモリコントローラに対しトランザクションをさらに送る可能性が減る。このため、ＣＰＵがスヌープを行うよう要求される可能性も少なくなる。従って、ＣＰＵはＣ３／Ｃ４状態に入ってもよく、処理ロジックはバスマスタインジケータをデアサートし、ＣＰＵがＣ３／Ｃ４状態に入ることを許可する（処理ブロック１２９）。
【００２１】
また、使用されたクレジットの総数が入しきい値より少なかった場合、処理ロジックはタイマが切れているかどうかを判定する（処理ブロック１２２）。タイマが切れていれば、処理ロジックはバスマスタインジケータをデアサートし、ＣＰＵがＣ３／Ｃ４状態に入ることを許可する（処理ブロック１３０）。タイマが切れていない場合、処理ロジックは処理ブロック１１０を繰り返す。また、処理ロジックはタイマを確認せず、使用されたクレジットの総数が入しきい値より小さい場合は単に処理ブロック１１０を繰り返すとしてもよい。
【００２２】
図２Ａに、入しきい値の一実施形態を示す。入しきい値２１０の設定を調整して、保留中のインコヒーレントトランザクションがルートコンプレックスデバイスにある場合でも、ＣＰＵがＣ３／Ｃ４状態に入ることを許可するようにバスマスタインジケータを変更する構成としてもよい。つまり、バスマスタインジケータのアサートを遅らせるべく、使用したクレジット数が入しきい値２１０以上になるまで、トランザクションは、処理を行わずメモリコントローラに故意に保留されるとしてもよい。このため、ＣＰＵが消費電力の少ないＣ３／Ｃ４状態に入りやすくなる。また、入しきい値２１０は、グラフィックアプリケーションのような高い処理能力が要求される場合、０％に設定されてもよい。
【００２３】
ここで、ノートパソコンのような携帯可能なシステムはシステム中のバッテリだけで作動することもあるが、その場合バッテリの充電量の残りに応じて入しきい値を変更してもよい。また、ＣＰＵの消費電力を削減すると、性能が低くなるという問題が生じる。一実施形態においては、タイマを用いて保留中のトランザクションのうち最初のトランザクションの処理を止めておく時間に上限を設けてもよい。これは、遅延時間が長くなると性能に影響が出るアプリケーションに上記の問題が及ぼす影響を軽減するための処置である。入しきい値２１０に達する前にタイマが切れた場合、バスマスタインジケータはリセットされ、ＣＰＵはＣ３／Ｃ４状態に入れ、トラフィックが少ない状態やアイドル状態となるようにしてもよい。
【００２４】
図１Ｂは、コンピュータシステムの電力管理の方法の一実施形態を示すフローチャートである。この処理を実行するのは、ハードウェア（例えば回路や専用ロジック）、ソフトウェア（例えば汎用コンピュータシステムや専用機器で実行されるもの）、もしくは両方の組み合わせを含む処理ロジックである。ＣＰＵがＣ３／Ｃ４状態にあるときに（処理ブロック１０５）、処理ロジックが周辺機器からコヒーレントトランザクションを受け取るとする（処理ブロック１４０）。周辺機器の例としては、外付けのグラフィックコア、イーサネットコントローラなどが挙げられる。コヒーレントトランザクションを受信すると、処理ロジックは、受信したコヒーレントトランザクションがバッファに占める量に対応した数のクレジットを使用する（処理ブロック１４２）。その後処理ロジックは、コヒーレントトランザクションのために使用されたクレジットの総数が、出しきい値以上かどうか調べる（処理ブロック１４４）。コヒーレントトランザクションのために使用されたクレジットの総数が、出しきい値以上である場合、処理ロジックはＣＰＵをＣ３／Ｃ４状態から出す（処理ブロック１５０）。処理ロジックは、ＣＰＵに信号を送信してＣ３／Ｃ４状態から出るよう指示するとしてもよい。一実施形態では、ＣＰＵはＣ３／Ｃ４状態を出た後Ｃ０状態に入る。
【００２５】
しかし、使用したクレジットの総数が出しきい値より小さい場合、処理ロジックはタイマが切れているかどうか調べる（処理ブロック１４６）。タイマが切れていれば、処理ロジックはＣＰＵをＣ３／Ｃ４状態から出す（処理ブロック１５０）。タイマが切れていなければ、処理ブロックはトランザクションを待ち行列に入れ（処理ブロック１４８）、処理ブロック１４０を繰り返す。または、処理ロジックはタイマを調べずに、使用したクレジットの総数が出しきい値より小さい場合、トランザクションを待ち行列に入れ（処理ブロック１４８）、処理ブロック１４０を繰り返すとしてもよい。
【００２６】
図２Ｂに出しきい値の一実施形態を示す。この出しきい値２５０によって、ＣＰＵがＣ３／Ｃ４状態から出るようにバスマスタインジケータを設定するタイミングが決まる。ＣＰＵがＣ３／Ｃ４状態にあるとき、ＣＰＵがＣ３／Ｃ４状態に一定期間落ち着くことである程度の省電力効果を達成できるよう、トランザクションは待ち行列に入れられる構成としてもよい。使用されたクレジットの数が出しきい値２５０より少ない場合、ＣＰＵには出るための条件が整ったとは通知されない。一実施形態においては、待ち時間の長さに影響を受けやすいアプリケーションを想定して、保留中のトランザクションのうち最初のトランザクションを処理するまでの時間に上限を設けるためにタイマを使用するとしてもよい。タイマが切れれば、保留中のコヒーレントトランザクションの数に対応する使用したクレジットの総数が出しきい値２５０より小さくても、ＣＰＵに信号を送信してＣ３／Ｃ４状態から出す。同様に、高い処理能力が要求されるアプリケーションの場合、所望の性能を実現できるよう、出しきい値２５０を０％に設定してもよい。また、システムの電力供給源がバッテリしかない実施形態では、出しきい値２５０はバッテリの充電量の残りに応じて変更できる。
【００２７】
入しきい値および出しきい値の設定をさまざまに変更できることは明らかである。一実施形態では、入しきい値と出しきい値は略同じである。例えば、高い処理能力が要求されるアプリケーションの場合は、入しきい値および出しきい値はどちらも０％に固定されるとしてもよい。
【００２８】
また別の実施形態では、出しきい値と入しきい値は異なる値に設定される。例えば、入しきい値が出しきい値より大きく設定されるとしてもよい。また、入しきい値と出しきい値をさまざまに変更することで、ＣＰＵはバッテリの充電量の残りに応じて性能を調整することができる。また、しきい値を変更することで、ＣＰＵの電力状態の切り替え動作を変更してもよい。出しきい値および入しきい値をこのように変更することで、Ｃ３／Ｃ４状態に入るタイミングと定期的に発生するトラフィックのタイミングが一致するため起こりうる、ＣＰＵが低電力状態から頻繁に抜け出す状況を避けることができる。さらに、入る時と出る時の動作が非対称となるので、ＣＰＵがＣ３／Ｃ４状態にある時間を調整したり、長くしたりすることができる。例えば、ＣＰＵがＣ３／Ｃ４状態から出るのにかかる時間は数百マイクロ秒だが、この間にＣＰＵの位相ロックループが消費する電力は、立ち上がりのための最初の１０マイクロ秒で消費される電力の２倍に等しい。このため、ＣＰＵがＣ３／Ｃ４状態にある時間が同状態から出る時の待ち時間より短い場合、消費電力削減の実効果はほとんどないか、無視できる程度のものになってしまい、最悪の場合電力消費が増えてしまうこともある。
【００２９】
図３Ａから図３Ｃは、コンピュータシステムにおけるチップセットのパーティション構成のさまざまな実施形態を示している。図３Ａに、メモリコントローラ３１０、入出力コントローラ３２０、電力管理回路３３０を示す。電力管理回路３３０はメモリコントローラ３１０および入出力コントローラ３２０に対して外部に設けられている。メモリコントローラ３１０は、リンク３１５を介して入出力コントローラ３２０に接続されている。リンク３１５は、デジタルメディアインターフェース（ＤＭＩ）リンクなどである。メモリコントローラ３１０はまた、クレジットを単位とする計算方式に基づいたフローコントロールプロトコル、例えばＰＣＩ  Ｅｘｐｒｅｓｓを採用したバスまたはインターコネクト（不図示）を１本以上用いることによって、１以上の周辺機器（不図示）に接続されている。
【００３０】
一実施形態によると、電力管理回路３３０は、側波帯信号３２２および３２４によって、メモリコントローラ３１０および／または入出力コントローラ３２０と通信を行う。側波帯信号３３２および３３４は、周辺機器との間でバスマスタイベントが発生しているかどうかを示す。周辺機器は例えば、ＡＧＰ（Ａｄｖａｎｃｅ  Ｇｒａｐｈｉｃ  Ｐｏｒｔ）である。側波帯信号３３２および３３４は通常、ＸＸ＿ＢＵＳＹと表される。例えば、ＡＧＰに対応する側波帯信号はＡＧＰ＿ＢＵＳＹで表される。側波帯信号に１以上の共有信号が含まれるのは明らかである。
【００３１】
一実施形態において、メモリコントローラ３１０または入出力コントローラ３２０の一方は、メモリコントローラ３１０と入出力コントローラ３２０間で送信される１以上のメッセージパケットを基にバスマスタイベントに関する情報を集めるリーダー役となる。メッセージパケットはＤＭＩメッセージパケット３２５を含むとしてもよい。ここで、リーダー役の方は、側波帯信号３３４および３３２の一方により、電力管理回路３３０との通信を継続して行う。
【００３２】
図３Ｂに、コンピュータシステムにおけるチップセットのパーティション構成の別の実施形態を示す。同図に示されるチップセットは、メモリコントローラ３４０および入出力コントローラ３５０を有し、リンク３４５で接続されている。リンク３４５は、ＤＭＩリンクであってもよい。また、実施形態によっては、図示していないほかのデバイスを含むとしてもよい。メモリコントローラ３４０はまた、クレジットを単位とする計算方式に基づくフローコントロールプロトコル、例えばＰＣＩ  Ｅｘｐｒｅｓｓを採用したバスまたはインターコネクト（不図示）を介して、周辺機器（不図示）に接続されている。周辺機器は例えば、外付けのグラフィックコア、イーサネットコントローラなどであってもよい。入出力コントローラ３５０はインターコネクト上で行われるデータトラフィックを監視するための電力管理回路３５２を有する。電力管理回路３５２は入出力コントローラ３５０の内部にあるため、メモリコントローラ３４０は、周辺機器との間のインターコネクト上で実行中のトラフィックがあるかどうか判定するためには、入出力コントローラ３５０と通信しなければならない。一実施形態において、メモリコントローラ３４０は、リンク３４５を介して入出力コントローラ３５０に送信するメッセージパケット３４７のビットのうち１つ以上を設定する。メッセージパケット３４７はＤＭＩパケットであってもよい。メッセージパケット３４７中のビットを設定することを、側波帯信号（例えば、図３Ａに示した側波帯信号３３２および３３４）とは対照的に、バスマスタインジケータ信号の帯域内仮想化と呼ぶ。このように呼ぶのは、メモリコントローラ３４０および入出力コントローラ３５０双方のピンやコネクタといった構成をなくす目的で、バスマスタインジケータ信号が抽象化されているためである。また、電力管理回路３５２は、ほかのインターコネクト（不図示）を介して入出力コントローラ３５０と接続された別の周辺機器（不図示）との間のバスマスタイベントを監視するとしてもよい。
【００３３】
図３Ｃに、コンピュータシステムにおけるチップセットのパーティション構成の別の実施形態を示す。同図に示すチップセットは、統合メモリ・入出力コントローラ３６０を有する。統合メモリ・入出力コントローラ３６０は内部電力管理回路３６５を有する。電力管理回路３６５は統合コントローラ３６０の一部として構成されているため、コントローラ３６０に接続された周辺機器に対応するバスマスタ情報はコントローラ３６０内の論理回路を介して内部に記録されるとしてもよい。
【００３４】
図３Ａから図３Ｃに示した、チップセットのパーティション構成のさまざまな実施形態は、本開示技術を説明するためのものにすぎない。本開示技術を応用して、コンピュータに備えられるチップセットのパーティション構成の別の実施形態を実現してもよい。
【００３５】
図４にコンピュータシステム４００の実施形態を例示する。コンピュータシステム４００は、中央演算処理装置（ＣＰＵ）４１０、メモリコントローラ（ＭＣＨ）４２０、複数のＤＩＭＭ（ｄｕａｌ  ｉｎ−ｌｉｎｅ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ）４２５、複数のメモリデバイス４２７、ＰＣＩ  Ｅｘｐｒｅｓｓグラフィックポート（ＡＧＰ）４３０、入出力コントローラ（ＩＣＨ）４４０、複数のＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート４４５、オーディオコーダ・デコーダ（ＡＵＤＩＯ  ＣＯＤＥＣ）４６０、スーパー入出力（スーパー  Ｉ／Ｏ）４５０、およびファームウェアハブ（ＦＷＨ）４７０を有する。
【００３６】
一実施形態において、ＣＰＵ４１０、ＡＧＰ４３０、ＤＩＭＭ４２５およびＩＣＨ４４０は、ＭＣＨ４２０に接続されている。ＭＣＨ４２０とＩＣＨ４４０間を結ぶリンク４３５はＤＭＩリンクであってもよい。ＭＣＨ４２０は、ＤＩＭＭ４２５を介して、メモリデバイス４２７との間でデータのやり取りを行う。メモリデバイス４２７には、さまざまな種類のメモリを用いてもよい。例えば、ダイナミックＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＤＲＡＭ）、同期型ＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＳＤＲＡＭ）、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）ＳＤＲＡＭ、またはフラッシュメモリなどが挙げられる。一実施形態においては、ＤＩＭＭ４２５はすべて、ＭＣＨ４２０に接続されるよう、ＤＩＭＭコネクタ（不図示）を介して同じマザーボード（不図示）に実装されている。また、一実施形態において、ＵＳＢポート４４５、ＡＵＤＩＯ  ＣＯＤＥＣ４６０およびスーパーＩ／Ｏ４５０はＩＣＨ４４０に接続されている。スーパーＩ／Ｏ４５０は、ＦＷＨ４７０、フロッピーディスクドライブ４５１、キーボードやマウスなどのデータ入力装置４５３、複数のシリアルポート４５５および複数のパラレルポート４５７と接続されている。
【００３７】
一実施形態において、ＩＣＨ４４０は電力管理回路４４２を有する。電力管理回路４４２は、ＩＣＨ４４０およびＭＣＨ４２０と周辺機器を接続するさまざまなインターコネクト上で行われるデータトラフィックを監視する。周辺機器の例としては、ＡＧＰ４３０が挙げられる。電力管理回路４４２はバスマスタインジケータを生成するとしてもよい。バスマスタインジケータは、リンク４３５を介して、メッセージパケット４３７内の仮想化信号として、ＭＣＨ４２０からＩＣＨ４４０に送信される。変形例としては、ＭＣＨ４２０とＩＣＨ４４０を統合して、電力管理回路を持つ単一のコントローラとし、バスマスタインジケータはロジックを介して内部に記憶するとしてもよい。
【００３８】
また別の実施形態においては、ＭＣＨ４２０およびＩＣＨ４４０は別々の装置のままとして、電力管理回路はＭＣＨ４２０およびＩＣＨ４４０の両方に対して外部とする。ここで、ＭＣＨ４２０またはＩＣＨ４４０の一方が、ＭＣＨ４２０とＩＣＨ４４０間でやり取りされたメッセージパケットに基づいて、もう一方のコントローラからシステム４００中の周辺機器との間のバストラフィックに関する情報を集めるためのリーダー役を果たすとしてもよい。また、リーダー役の方は、１つ以上の側波帯信号を用いて外部にある電力管理回路に集めた情報を送るとしてもよい。
【００３９】
コンピュータシステム４００のさまざまな実施形態には、図４に示す構成要素もしくは関連するハードウェアの一部またはすべてが含まれるとしてもよい。しかし、コンピュータシステムの構成を変更した場合、図４に示されていないデバイスを１つ以上有するとしてもよい。また本開示技術は、マルチドロップ環境や２地点間環境のようなほかのシステム環境に応用が可能であるのは明らかである。同様に、本開示技術は携帯用およびデスクトップコンピュータシステムのどちらにも応用が可能である。
【００４０】
上述の内容は、本発明の実施形態のうちいくつかを例として挙げて説明したものにすぎない。以上の説明、添付の図面および請求の範囲を基に、請求の範囲を超えないさまざまな変更が可能であるのは当業者には明らかである。このため、明細書の説明は、発明を限定するものではなく説明するためのものである。
【符号の説明】
【００４１】
２１０  入しきい値
２５０  出しきい値
３１０  メモリコントローラ（ＭＣＨ）
３１５  リンク
３２０  出入力コントローラ（ＩＣＨ）
３２５  メッセージパケット
３３２、３３４  側波帯信号
３３０  電力管理回路
３４０  メモリコントローラ（ＭＣＨ）
３４５  リンク
３４７  メッセージパケット
３５０  入出力コントローラ（ＩＣＨ）
３５２  電力管理回路
３６０  統合ＭＣＨ＆ＩＣＨ
３６５  電力管理回路
４１０  中央演算処理装置（ＣＰＵ）
４２０  メモリコントローラ（ＭＣＨ）
４２５  ＤＩＭＭ
４２７  メモリデバイス
４３０  ＰＣＩ  Ｅｘｐｒｅｓｓグラフィックポート（ＡＧＰ）
４３５  デジタルメディアインターフェース（ＤＭＩ）リンク
４３７  メッセージパケット
４４０  入出力管理回路（ＩＣＨ）
４４２  電力管理回路
４４５  ＵＳＢポート
４５０  スーパー入出力（スーパーＩ／Ｏ）
４５１  フロッピーディスクドライブ
４５３  データ入力装置
４５５  シリアルポート
４５７  パラレルポート
４６０  オーディオコーダ・デコーダ（ＡＵＤＩＯ  ＣＯＤＥＣ）
４７０  ファームウェアハブ（ＦＷＨ）
【図１Ａ】
2007517332.tif 000003
【図１Ｂ】
2007517332.tif 000004
【図２Ａ】
2007517332.tif 000005
【図２Ｂ】
2007517332.tif 000006
【図３Ａ】
2007517332.tif 000007
【図３Ｂ】
2007517332.tif 000008
【図３Ｃ】
2007517332.tif 000009
【図４】
2007517332.tif 000010
【国際調査報告】
2007517332.tif 000011
2007517332.tif 000012