コンピュータシステムの電力管理の方法および装置
【課題】コンピュータシステムにおける電力管理の方法および装置を提供する。
【解決手段】コンピュータシステムにおける電力管理の方法および装置を開示する。一実施形態に係る方法によると、コンピュータシステムにおいて、チップセットデバイスと周辺機器を接続するインターコネクト上で行われるトランザクションが監視され、トランザクションのやり取りは周辺機器とチップセットデバイスの間で、チップセットデバイスにトランザクションの記録を取らせるフローコントロールプロトコルに従って行われる手順と、チップセットデバイスのバッファで保留にされている複数のコヒーレントトランザクションが第1のしきい値を超えた場合、コンピュータシステムのプロセッサはある電力状態から出る手順を含む。説明および請求の範囲にはこれ以外の実施形態も含まれている。
【解決手段】コンピュータシステムにおける電力管理の方法および装置を開示する。一実施形態に係る方法によると、コンピュータシステムにおいて、チップセットデバイスと周辺機器を接続するインターコネクト上で行われるトランザクションが監視され、トランザクションのやり取りは周辺機器とチップセットデバイスの間で、チップセットデバイスにトランザクションの記録を取らせるフローコントロールプロトコルに従って行われる手順と、チップセットデバイスのバッファで保留にされている複数のコヒーレントトランザクションが第1のしきい値を超えた場合、コンピュータシステムのプロセッサはある電力状態から出る手順を含む。説明および請求の範囲にはこれ以外の実施形態も含まれている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はコンピュータ技術に関する。特に本発明は、コンピュータシステムの電力管理に関する。
【背景技術】
【0002】
普通のコンピュータシステムでは、システムの電力管理を確実に行えるように中央演算処理装置(CPU)の電力状態をさまざまなレベルで設定できる。例えば、CPUの電力をC0、C1、C2、C3、C4という5つの状態に設定するとしてもよい。一例を挙げれば、C0状態はCPUが命令を実行するアクティブ状態で、残りのC1、C2、C3およびC4状態はスリーピング状態である。スリーピング状態にある時、CPUは命令を実行しないため、C0の場合より、消費電力および放出熱が少なくなる。また通常、C4状態に入るとCPU供給電圧が下げられるため、C4状態での消費電力はC3状態の場合より少なくなる。
【0003】
各スリーピング状態では、ある状態から出たりある状態に入ったりする時に遅延時間が発生し、この遅延時間は各状態での節電に影響を及ぼす。通常は、節電効果を高めるべく停止する回路やロジックを増やすと、停止した回路やロジックの再始動にかかる労力が増加し、その電力状態から出る時の遅延時間は長くなる。例を挙げると、C3またはC4状態(C3/C4状態)にある時CPUはスヌープを行わないので、電力削減効果を向上させるため位相ロックループ(PLL)や入出力回路(I/O)を停止することもできる。しかし、CPUがC3/C4状態から出た後でPLLやI/Oを再始動する時に、時間がかかってしまう。
【0004】
例えば、C0状態ではCPUはメモリにアクセスでき、C1またはC2状態ではバスマスタが開始するメモリトラフィックをスヌープできる。バスマスタは、所定の時間においてバスを制御する周辺機器であって、例えば外付けのグラフィックコアである。このため、あるデバイスから別のデバイスへのバスを介したデータの移動をバスマスタイベントと呼ぶ。C3/C4状態では、より深いスリーピング状態を実現するため、CPUはスヌープやメモリアクセスも一時停止する。CPUがC3/C4状態にある場合にバスマスタが開始するメモリトラフィックをスヌープするためには、C3/C4状態から出なければならない。C3/C4状態から出る時の待ち時間が長いので、システムは、C3/C4状態に入る前にCPUのスヌープが必要なバスマスタイベントが周辺機器との間で実行中かどうか確認しなければならない。実行中のバスマスタイベントがあった場合、CPUはC3/C4状態より消費電力は多いが出る時の待ち時間が少ない電力状態(例えばC1もしくはC2)にとどまらなければならない。
【0005】
周辺機器は、PCI Expressインターコネクトなどのシリアル・インターコネクトによって、ルートコンプレックスデバイスを介して、CPUに接続されていてもよい。ルートコンプレックスデバイスはホストブリッジおよび1以上のルートポートを有する。例を挙げると、メモリコントローラやI/Oコントローラなどの機能デバイスがある。インターコネクトはデバイス同士を接続する。PCI Expressは、点同士を結ぶ高速のシリアルインターコネクトの標準規格となっている。初期のPCI Expressインターコネクトでは、1レーン当たり2.5ギガバイト毎秒でのデータ転送が実現される。例えば、グラフィックデバイスとコンピュータシステムのチップセット(例えばメモリコントローラハブ)は、16レーンのPCI Expressインターコネクトによって接続されている。
【0006】
また、PCI Expressインターコネクトは、インターコネクト上で行われるトラフィックの記録を取るべく、クレジットを単位として用いる計算方式を実施できるので、フローコントロールが可能となる。クレジットは、インターコネクト上で行われるさまざまな種類のトランザクションが利用可能なデバイス中のバッファスペースを示す。例えばメモリコントローラは、複数のレジスタに情報を書き込むことで、データを送信するよう、ルートコンプレックスデバイスの機能を実現するソフトウェアに伝える。PCI Expressプロトコルでは、読み出し要求や書き込み要求、完了を始めとするさまざまなトランザクションについて所定の数のクレジットが規定されている。例えば、グラフィックデバイスがトランザクション(例えば読み出し要求)をルートコンプレックスデバイスに対して発行し、このトランザクションが保留にされると、保留トランザクションのバッファリングがメモリコントローラ中に占める量に応じたクレジットが使用される。メモリコントローラがこのトランザクションを扱うか中止した場合、使用されたクレジットは元に戻される。使用クレジットの量で示される保留中のトランザクションの数を見ることで、C3/C4状態に入るのを禁止する理由となり得るバスマスタイベントが発生する可能性が分かる。
【0007】
先行技術では、側波帯信号を使用してバスマスタトラフィックが実行中であることを通知する。例えば、グラフィックデバイスは、コンピュータシステムのルートコンプレックスデバイスに対してAGP_BUSY信号を送信し、コンピュータシステムとの間でバスマスタトラフィックが実行中であることを通知する。ここで、コンピュータシステムとグラフィックデバイスはAGP(Accelerated Graphics Port)で接続される。しかし側波帯信号は、各デバイスに信号用ピンが1対1の割合で必要になるため、高コストとなってしまう。また、コンピュータシステム中に側波帯信号用のコネクタ構造を永久的に設けなければならないが、今後の技術革新によって側波帯信号を使用しなくなるかもしれない。
【0008】
本発明は、以下の詳細な説明および添付した図面により明らかになる。しかし以下の説明および図面は、特許請求の範囲を具体的な実施の形態に限定するものではなく、理解を深めるための説明にすぎない。
【図面の簡単な説明】
【0009】
【図1A】図1Aは、一実施形態に係るコンピュータシステムの電力管理方法を示すフローチャートである。
【0010】
【図1B】図1Bは、一実施形態に係るコンピュータシステムの電力管理方法を示すフローチャートである。
【0011】
【図2A】図2Aは、入しきい値の一実施形態を示す。
【0012】
【図2B】図2Bは、出しきい値の一実施形態を示す。
【0013】
【図3A−3C】図3Aから図3Cは、チップセットのパーティション構成のさまざまな実施形態を示す。
【0014】
【図4】図4は、コンピュータシステムの実施形態の一例を示す。
【発明を実施するための最良の形態】
【0015】
以下で本発明を具体的および詳細に説明する。しかし本発明は、以下で説明した内容以外の実施形態を含むとしてもよい。また公知の回路、構造および技術については、本発明を分かりやすく説明するべく、詳細な説明を避けている。
【0016】
明細書中で「一実施形態」や「ある実施形態」とある場合、その実施形態に関連して説明された特徴や構造、特性が、本発明の少なくとも1つの実施形態に含まれている。明細書中に「一実施形態」と何度か言及されているが、これらは必ずしも同一の実施形態を指す示すものではない。
【0017】
コンピュータシステムの電力管理の方法および装置を開示する。一実施形態に係る方法によると、コンピュータシステムにおいてチップセットデバイスと周辺機器を接続するインターコネクト上で行われるトランザクションを監視する。このトランザクションのやり取りは、周辺機器とチップセットデバイス間で、チップセットデバイスにトランザクションの記録を取らせるフローコントロールプロトコルに従って行われる。本実施形態ではさらに、チップセットデバイスのバッファで保留にされている複数のコヒーレントトランザクションが所定の基準より大きくなった場合、コンピュータシステムのプロセッサがある電力状態から出る。フローコントロールプロトコルの具体例としては、PCI Expressが挙げられる。ほかの特徴は、添付図面および以下の詳細な説明で明らかにする。
【0018】
図1Aは、コンピュータシステムの電力管理の方法の一実施形態を示すフローチャートである。この処理を実行するのは、ハードウェア(例えば回路や専用ロジックなど)、ソフトウェア(例えば汎用コンピュータシステムや専用機器で実行されるもの)、もしくは両方の組み合わせを含む処理ロジックである。上述したが、CPUはC3/C4状態にある場合、メモリへのアクセスやバスマスタが開始するトラフィックのスヌープを開始しないこともある。このため、CPUからC3/C4状態に入る要求を受け取った場合(処理ブロック101)、処理ロジックは一連の処理を実行して、システムの周辺機器がCPUに対してバスマスタのスヌープやスヌープなしのシステムメモリへの直接アクセスを要求する可能性があるかどうか判定する。周辺機器の例は、外付けのグラフィックスコア、イーサネットコントローラなどである。処理ロジックは周辺機器の1つからトランザクション103を受け取るとしてもよい(処理ブロック104)。トランザクション103はコヒーレントでもインコヒーレントであってもよい。ここで、コヒーレントトランザクションとは、CPUのキャッシュにおいて現在もしくはこの後使用または変更されるデータに関連するもので、インコヒーレントトランザクションは逆に、CPUのキャッシュで現在記憶、使用または変更されていない、メモリから読み出されたデータに関連する。
【0019】
図1Aにおいて、処理ロジックは、受信したトランザクション103がコヒーレントかどうかと、コンピュータシステム中のメモリコントローラに保留中のコヒーレントトランザクションがあるかどうかを確認する(処理ブロック110)。どちらか一方に当てはまる場合、処理ロジックはバスマスタインジケータをアサートして、CPUがC3/C4状態に入ることを禁止する(処理ブロック130)。一実施形態では、CPUはその後デフォルト状態に入る。デフォルト状態はC1もしくはC2状態であってもよい。
【0020】
しかし受信したトランザクション103がインコヒーレントで、ルートコンプレックスデバイスに保留状態のコヒーレントトランザクションがない場合、処理ロジックは、インコヒーレントトランザクション130がメモリコントローラのバッファに占める量に対応した数のクレジットを使用し、トランザクション103を保留とする(処理ブロック112)。処理ロジックは、使用されたクレジットの総数が、入しきい値以上であるかどうか判定するとしてもよい(処理ブロック120)。使用されたクレジットの総数が入しきい値以上である場合、保留中のトランザクションがルートコンプレックスデバイスのバッファに占める量が、入しきい値に対応した水準を超えている。つまりメモリコントローラ中でバッファリングに利用できる部分が少なくなっているので、周辺機器がメモリコントローラに対しトランザクションをさらに送る可能性が減る。このため、CPUがスヌープを行うよう要求される可能性も少なくなる。従って、CPUはC3/C4状態に入ってもよく、処理ロジックはバスマスタインジケータをデアサートし、CPUがC3/C4状態に入ることを許可する(処理ブロック129)。
【0021】
また、使用されたクレジットの総数が入しきい値より少なかった場合、処理ロジックはタイマが切れているかどうかを判定する(処理ブロック122)。タイマが切れていれば、処理ロジックはバスマスタインジケータをデアサートし、CPUがC3/C4状態に入ることを許可する(処理ブロック130)。タイマが切れていない場合、処理ロジックは処理ブロック110を繰り返す。また、処理ロジックはタイマを確認せず、使用されたクレジットの総数が入しきい値より小さい場合は単に処理ブロック110を繰り返すとしてもよい。
【0022】
図2Aに、入しきい値の一実施形態を示す。入しきい値210の設定を調整して、保留中のインコヒーレントトランザクションがルートコンプレックスデバイスにある場合でも、CPUがC3/C4状態に入ることを許可するようにバスマスタインジケータを変更する構成としてもよい。つまり、バスマスタインジケータのアサートを遅らせるべく、使用したクレジット数が入しきい値210以上になるまで、トランザクションは、処理を行わずメモリコントローラに故意に保留されるとしてもよい。このため、CPUが消費電力の少ないC3/C4状態に入りやすくなる。また、入しきい値210は、グラフィックアプリケーションのような高い処理能力が要求される場合、0%に設定されてもよい。
【0023】
ここで、ノートパソコンのような携帯可能なシステムはシステム中のバッテリだけで作動することもあるが、その場合バッテリの充電量の残りに応じて入しきい値を変更してもよい。また、CPUの消費電力を削減すると、性能が低くなるという問題が生じる。一実施形態においては、タイマを用いて保留中のトランザクションのうち最初のトランザクションの処理を止めておく時間に上限を設けてもよい。これは、遅延時間が長くなると性能に影響が出るアプリケーションに上記の問題が及ぼす影響を軽減するための処置である。入しきい値210に達する前にタイマが切れた場合、バスマスタインジケータはリセットされ、CPUはC3/C4状態に入れ、トラフィックが少ない状態やアイドル状態となるようにしてもよい。
【0024】
図1Bは、コンピュータシステムの電力管理の方法の一実施形態を示すフローチャートである。この処理を実行するのは、ハードウェア(例えば回路や専用ロジック)、ソフトウェア(例えば汎用コンピュータシステムや専用機器で実行されるもの)、もしくは両方の組み合わせを含む処理ロジックである。CPUがC3/C4状態にあるときに(処理ブロック105)、処理ロジックが周辺機器からコヒーレントトランザクションを受け取るとする(処理ブロック140)。周辺機器の例としては、外付けのグラフィックコア、イーサネットコントローラなどが挙げられる。コヒーレントトランザクションを受信すると、処理ロジックは、受信したコヒーレントトランザクションがバッファに占める量に対応した数のクレジットを使用する(処理ブロック142)。その後処理ロジックは、コヒーレントトランザクションのために使用されたクレジットの総数が、出しきい値以上かどうか調べる(処理ブロック144)。コヒーレントトランザクションのために使用されたクレジットの総数が、出しきい値以上である場合、処理ロジックはCPUをC3/C4状態から出す(処理ブロック150)。処理ロジックは、CPUに信号を送信してC3/C4状態から出るよう指示するとしてもよい。一実施形態では、CPUはC3/C4状態を出た後C0状態に入る。
【0025】
しかし、使用したクレジットの総数が出しきい値より小さい場合、処理ロジックはタイマが切れているかどうか調べる(処理ブロック146)。タイマが切れていれば、処理ロジックはCPUをC3/C4状態から出す(処理ブロック150)。タイマが切れていなければ、処理ブロックはトランザクションを待ち行列に入れ(処理ブロック148)、処理ブロック140を繰り返す。または、処理ロジックはタイマを調べずに、使用したクレジットの総数が出しきい値より小さい場合、トランザクションを待ち行列に入れ(処理ブロック148)、処理ブロック140を繰り返すとしてもよい。
【0026】
図2Bに出しきい値の一実施形態を示す。この出しきい値250によって、CPUがC3/C4状態から出るようにバスマスタインジケータを設定するタイミングが決まる。CPUがC3/C4状態にあるとき、CPUがC3/C4状態に一定期間落ち着くことである程度の省電力効果を達成できるよう、トランザクションは待ち行列に入れられる構成としてもよい。使用されたクレジットの数が出しきい値250より少ない場合、CPUには出るための条件が整ったとは通知されない。一実施形態においては、待ち時間の長さに影響を受けやすいアプリケーションを想定して、保留中のトランザクションのうち最初のトランザクションを処理するまでの時間に上限を設けるためにタイマを使用するとしてもよい。タイマが切れれば、保留中のコヒーレントトランザクションの数に対応する使用したクレジットの総数が出しきい値250より小さくても、CPUに信号を送信してC3/C4状態から出す。同様に、高い処理能力が要求されるアプリケーションの場合、所望の性能を実現できるよう、出しきい値250を0%に設定してもよい。また、システムの電力供給源がバッテリしかない実施形態では、出しきい値250はバッテリの充電量の残りに応じて変更できる。
【0027】
入しきい値および出しきい値の設定をさまざまに変更できることは明らかである。一実施形態では、入しきい値と出しきい値は略同じである。例えば、高い処理能力が要求されるアプリケーションの場合は、入しきい値および出しきい値はどちらも0%に固定されるとしてもよい。
【0028】
また別の実施形態では、出しきい値と入しきい値は異なる値に設定される。例えば、入しきい値が出しきい値より大きく設定されるとしてもよい。また、入しきい値と出しきい値をさまざまに変更することで、CPUはバッテリの充電量の残りに応じて性能を調整することができる。また、しきい値を変更することで、CPUの電力状態の切り替え動作を変更してもよい。出しきい値および入しきい値をこのように変更することで、C3/C4状態に入るタイミングと定期的に発生するトラフィックのタイミングが一致するため起こりうる、CPUが低電力状態から頻繁に抜け出す状況を避けることができる。さらに、入る時と出る時の動作が非対称となるので、CPUがC3/C4状態にある時間を調整したり、長くしたりすることができる。例えば、CPUがC3/C4状態から出るのにかかる時間は数百マイクロ秒だが、この間にCPUの位相ロックループが消費する電力は、立ち上がりのための最初の10マイクロ秒で消費される電力の2倍に等しい。このため、CPUがC3/C4状態にある時間が同状態から出る時の待ち時間より短い場合、消費電力削減の実効果はほとんどないか、無視できる程度のものになってしまい、最悪の場合電力消費が増えてしまうこともある。
【0029】
図3Aから図3Cは、コンピュータシステムにおけるチップセットのパーティション構成のさまざまな実施形態を示している。図3Aに、メモリコントローラ310、入出力コントローラ320、電力管理回路330を示す。電力管理回路330はメモリコントローラ310および入出力コントローラ320に対して外部に設けられている。メモリコントローラ310は、リンク315を介して入出力コントローラ320に接続されている。リンク315は、デジタルメディアインターフェース(DMI)リンクなどである。メモリコントローラ310はまた、クレジットを単位とする計算方式に基づいたフローコントロールプロトコル、例えばPCI Expressを採用したバスまたはインターコネクト(不図示)を1本以上用いることによって、1以上の周辺機器(不図示)に接続されている。
【0030】
一実施形態によると、電力管理回路330は、側波帯信号322および324によって、メモリコントローラ310および/または入出力コントローラ320と通信を行う。側波帯信号332および334は、周辺機器との間でバスマスタイベントが発生しているかどうかを示す。周辺機器は例えば、AGP(Advance Graphic Port)である。側波帯信号332および334は通常、XX_BUSYと表される。例えば、AGPに対応する側波帯信号はAGP_BUSYで表される。側波帯信号に1以上の共有信号が含まれるのは明らかである。
【0031】
一実施形態において、メモリコントローラ310または入出力コントローラ320の一方は、メモリコントローラ310と入出力コントローラ320間で送信される1以上のメッセージパケットを基にバスマスタイベントに関する情報を集めるリーダー役となる。メッセージパケットはDMIメッセージパケット325を含むとしてもよい。ここで、リーダー役の方は、側波帯信号334および332の一方により、電力管理回路330との通信を継続して行う。
【0032】
図3Bに、コンピュータシステムにおけるチップセットのパーティション構成の別の実施形態を示す。同図に示されるチップセットは、メモリコントローラ340および入出力コントローラ350を有し、リンク345で接続されている。リンク345は、DMIリンクであってもよい。また、実施形態によっては、図示していないほかのデバイスを含むとしてもよい。メモリコントローラ340はまた、クレジットを単位とする計算方式に基づくフローコントロールプロトコル、例えばPCI Expressを採用したバスまたはインターコネクト(不図示)を介して、周辺機器(不図示)に接続されている。周辺機器は例えば、外付けのグラフィックコア、イーサネットコントローラなどであってもよい。入出力コントローラ350はインターコネクト上で行われるデータトラフィックを監視するための電力管理回路352を有する。電力管理回路352は入出力コントローラ350の内部にあるため、メモリコントローラ340は、周辺機器との間のインターコネクト上で実行中のトラフィックがあるかどうか判定するためには、入出力コントローラ350と通信しなければならない。一実施形態において、メモリコントローラ340は、リンク345を介して入出力コントローラ350に送信するメッセージパケット347のビットのうち1つ以上を設定する。メッセージパケット347はDMIパケットであってもよい。メッセージパケット347中のビットを設定することを、側波帯信号(例えば、図3Aに示した側波帯信号332および334)とは対照的に、バスマスタインジケータ信号の帯域内仮想化と呼ぶ。このように呼ぶのは、メモリコントローラ340および入出力コントローラ350双方のピンやコネクタといった構成をなくす目的で、バスマスタインジケータ信号が抽象化されているためである。また、電力管理回路352は、ほかのインターコネクト(不図示)を介して入出力コントローラ350と接続された別の周辺機器(不図示)との間のバスマスタイベントを監視するとしてもよい。
【0033】
図3Cに、コンピュータシステムにおけるチップセットのパーティション構成の別の実施形態を示す。同図に示すチップセットは、統合メモリ・入出力コントローラ360を有する。統合メモリ・入出力コントローラ360は内部電力管理回路365を有する。電力管理回路365は統合コントローラ360の一部として構成されているため、コントローラ360に接続された周辺機器に対応するバスマスタ情報はコントローラ360内の論理回路を介して内部に記録されるとしてもよい。
【0034】
図3Aから図3Cに示した、チップセットのパーティション構成のさまざまな実施形態は、本開示技術を説明するためのものにすぎない。本開示技術を応用して、コンピュータに備えられるチップセットのパーティション構成の別の実施形態を実現してもよい。
【0035】
図4にコンピュータシステム400の実施形態を例示する。コンピュータシステム400は、中央演算処理装置(CPU)410、メモリコントローラ(MCH)420、複数のDIMM(dual in−line memory module)425、複数のメモリデバイス427、PCI Expressグラフィックポート(AGP)430、入出力コントローラ(ICH)440、複数のUSB(Universal Serial Bus)ポート445、オーディオコーダ・デコーダ(AUDIO CODEC)460、スーパー入出力(スーパー I/O)450、およびファームウェアハブ(FWH)470を有する。
【0036】
一実施形態において、CPU410、AGP430、DIMM425およびICH440は、MCH420に接続されている。MCH420とICH440間を結ぶリンク435はDMIリンクであってもよい。MCH420は、DIMM425を介して、メモリデバイス427との間でデータのやり取りを行う。メモリデバイス427には、さまざまな種類のメモリを用いてもよい。例えば、ダイナミックRAM(Dynamic Random Access Memory:DRAM)、同期型DRAM(Synchronous Dynamic Random Access Memory:SDRAM)、DDR(Double Data Rate)SDRAM、またはフラッシュメモリなどが挙げられる。一実施形態においては、DIMM425はすべて、MCH420に接続されるよう、DIMMコネクタ(不図示)を介して同じマザーボード(不図示)に実装されている。また、一実施形態において、USBポート445、AUDIO CODEC460およびスーパーI/O450はICH440に接続されている。スーパーI/O450は、FWH470、フロッピーディスクドライブ451、キーボードやマウスなどのデータ入力装置453、複数のシリアルポート455および複数のパラレルポート457と接続されている。
【0037】
一実施形態において、ICH440は電力管理回路442を有する。電力管理回路442は、ICH440およびMCH420と周辺機器を接続するさまざまなインターコネクト上で行われるデータトラフィックを監視する。周辺機器の例としては、AGP430が挙げられる。電力管理回路442はバスマスタインジケータを生成するとしてもよい。バスマスタインジケータは、リンク435を介して、メッセージパケット437内の仮想化信号として、MCH420からICH440に送信される。変形例としては、MCH420とICH440を統合して、電力管理回路を持つ単一のコントローラとし、バスマスタインジケータはロジックを介して内部に記憶するとしてもよい。
【0038】
また別の実施形態においては、MCH420およびICH440は別々の装置のままとして、電力管理回路はMCH420およびICH440の両方に対して外部とする。ここで、MCH420またはICH440の一方が、MCH420とICH440間でやり取りされたメッセージパケットに基づいて、もう一方のコントローラからシステム400中の周辺機器との間のバストラフィックに関する情報を集めるためのリーダー役を果たすとしてもよい。また、リーダー役の方は、1つ以上の側波帯信号を用いて外部にある電力管理回路に集めた情報を送るとしてもよい。
【0039】
コンピュータシステム400のさまざまな実施形態には、図4に示す構成要素もしくは関連するハードウェアの一部またはすべてが含まれるとしてもよい。しかし、コンピュータシステムの構成を変更した場合、図4に示されていないデバイスを1つ以上有するとしてもよい。また本開示技術は、マルチドロップ環境や2地点間環境のようなほかのシステム環境に応用が可能であるのは明らかである。同様に、本開示技術は携帯用およびデスクトップコンピュータシステムのどちらにも応用が可能である。
【0040】
上述の内容は、本発明の実施形態のうちいくつかを例として挙げて説明したものにすぎない。以上の説明、添付の図面および請求の範囲を基に、請求の範囲を超えないさまざまな変更が可能であるのは当業者には明らかである。このため、明細書の説明は、発明を限定するものではなく説明するためのものである。
【符号の説明】
【0041】
210 入しきい値
250 出しきい値
310 メモリコントローラ(MCH)
315 リンク
320 出入力コントローラ(ICH)
325 メッセージパケット
332、334 側波帯信号
330 電力管理回路
340 メモリコントローラ(MCH)
345 リンク
347 メッセージパケット
350 入出力コントローラ(ICH)
352 電力管理回路
360 統合MCH&ICH
365 電力管理回路
410 中央演算処理装置(CPU)
420 メモリコントローラ(MCH)
425 DIMM
427 メモリデバイス
430 PCI Expressグラフィックポート(AGP)
435 デジタルメディアインターフェース(DMI)リンク
437 メッセージパケット
440 入出力管理回路(ICH)
442 電力管理回路
445 USBポート
450 スーパー入出力(スーパーI/O)
451 フロッピーディスクドライブ
453 データ入力装置
455 シリアルポート
457 パラレルポート
460 オーディオコーダ・デコーダ(AUDIO CODEC)
470 ファームウェアハブ(FWH)
【技術分野】
【0001】
本発明はコンピュータ技術に関する。特に本発明は、コンピュータシステムの電力管理に関する。
【背景技術】
【0002】
普通のコンピュータシステムでは、システムの電力管理を確実に行えるように中央演算処理装置(CPU)の電力状態をさまざまなレベルで設定できる。例えば、CPUの電力をC0、C1、C2、C3、C4という5つの状態に設定するとしてもよい。一例を挙げれば、C0状態はCPUが命令を実行するアクティブ状態で、残りのC1、C2、C3およびC4状態はスリーピング状態である。スリーピング状態にある時、CPUは命令を実行しないため、C0の場合より、消費電力および放出熱が少なくなる。また通常、C4状態に入るとCPU供給電圧が下げられるため、C4状態での消費電力はC3状態の場合より少なくなる。
【0003】
各スリーピング状態では、ある状態から出たりある状態に入ったりする時に遅延時間が発生し、この遅延時間は各状態での節電に影響を及ぼす。通常は、節電効果を高めるべく停止する回路やロジックを増やすと、停止した回路やロジックの再始動にかかる労力が増加し、その電力状態から出る時の遅延時間は長くなる。例を挙げると、C3またはC4状態(C3/C4状態)にある時CPUはスヌープを行わないので、電力削減効果を向上させるため位相ロックループ(PLL)や入出力回路(I/O)を停止することもできる。しかし、CPUがC3/C4状態から出た後でPLLやI/Oを再始動する時に、時間がかかってしまう。
【0004】
例えば、C0状態ではCPUはメモリにアクセスでき、C1またはC2状態ではバスマスタが開始するメモリトラフィックをスヌープできる。バスマスタは、所定の時間においてバスを制御する周辺機器であって、例えば外付けのグラフィックコアである。このため、あるデバイスから別のデバイスへのバスを介したデータの移動をバスマスタイベントと呼ぶ。C3/C4状態では、より深いスリーピング状態を実現するため、CPUはスヌープやメモリアクセスも一時停止する。CPUがC3/C4状態にある場合にバスマスタが開始するメモリトラフィックをスヌープするためには、C3/C4状態から出なければならない。C3/C4状態から出る時の待ち時間が長いので、システムは、C3/C4状態に入る前にCPUのスヌープが必要なバスマスタイベントが周辺機器との間で実行中かどうか確認しなければならない。実行中のバスマスタイベントがあった場合、CPUはC3/C4状態より消費電力は多いが出る時の待ち時間が少ない電力状態(例えばC1もしくはC2)にとどまらなければならない。
【0005】
周辺機器は、PCI Expressインターコネクトなどのシリアル・インターコネクトによって、ルートコンプレックスデバイスを介して、CPUに接続されていてもよい。ルートコンプレックスデバイスはホストブリッジおよび1以上のルートポートを有する。例を挙げると、メモリコントローラやI/Oコントローラなどの機能デバイスがある。インターコネクトはデバイス同士を接続する。PCI Expressは、点同士を結ぶ高速のシリアルインターコネクトの標準規格となっている。初期のPCI Expressインターコネクトでは、1レーン当たり2.5ギガバイト毎秒でのデータ転送が実現される。例えば、グラフィックデバイスとコンピュータシステムのチップセット(例えばメモリコントローラハブ)は、16レーンのPCI Expressインターコネクトによって接続されている。
【0006】
また、PCI Expressインターコネクトは、インターコネクト上で行われるトラフィックの記録を取るべく、クレジットを単位として用いる計算方式を実施できるので、フローコントロールが可能となる。クレジットは、インターコネクト上で行われるさまざまな種類のトランザクションが利用可能なデバイス中のバッファスペースを示す。例えばメモリコントローラは、複数のレジスタに情報を書き込むことで、データを送信するよう、ルートコンプレックスデバイスの機能を実現するソフトウェアに伝える。PCI Expressプロトコルでは、読み出し要求や書き込み要求、完了を始めとするさまざまなトランザクションについて所定の数のクレジットが規定されている。例えば、グラフィックデバイスがトランザクション(例えば読み出し要求)をルートコンプレックスデバイスに対して発行し、このトランザクションが保留にされると、保留トランザクションのバッファリングがメモリコントローラ中に占める量に応じたクレジットが使用される。メモリコントローラがこのトランザクションを扱うか中止した場合、使用されたクレジットは元に戻される。使用クレジットの量で示される保留中のトランザクションの数を見ることで、C3/C4状態に入るのを禁止する理由となり得るバスマスタイベントが発生する可能性が分かる。
【0007】
先行技術では、側波帯信号を使用してバスマスタトラフィックが実行中であることを通知する。例えば、グラフィックデバイスは、コンピュータシステムのルートコンプレックスデバイスに対してAGP_BUSY信号を送信し、コンピュータシステムとの間でバスマスタトラフィックが実行中であることを通知する。ここで、コンピュータシステムとグラフィックデバイスはAGP(Accelerated Graphics Port)で接続される。しかし側波帯信号は、各デバイスに信号用ピンが1対1の割合で必要になるため、高コストとなってしまう。また、コンピュータシステム中に側波帯信号用のコネクタ構造を永久的に設けなければならないが、今後の技術革新によって側波帯信号を使用しなくなるかもしれない。
【0008】
本発明は、以下の詳細な説明および添付した図面により明らかになる。しかし以下の説明および図面は、特許請求の範囲を具体的な実施の形態に限定するものではなく、理解を深めるための説明にすぎない。
【図面の簡単な説明】
【0009】
【図1A】図1Aは、一実施形態に係るコンピュータシステムの電力管理方法を示すフローチャートである。
【0010】
【図1B】図1Bは、一実施形態に係るコンピュータシステムの電力管理方法を示すフローチャートである。
【0011】
【図2A】図2Aは、入しきい値の一実施形態を示す。
【0012】
【図2B】図2Bは、出しきい値の一実施形態を示す。
【0013】
【図3A−3C】図3Aから図3Cは、チップセットのパーティション構成のさまざまな実施形態を示す。
【0014】
【図4】図4は、コンピュータシステムの実施形態の一例を示す。
【発明を実施するための最良の形態】
【0015】
以下で本発明を具体的および詳細に説明する。しかし本発明は、以下で説明した内容以外の実施形態を含むとしてもよい。また公知の回路、構造および技術については、本発明を分かりやすく説明するべく、詳細な説明を避けている。
【0016】
明細書中で「一実施形態」や「ある実施形態」とある場合、その実施形態に関連して説明された特徴や構造、特性が、本発明の少なくとも1つの実施形態に含まれている。明細書中に「一実施形態」と何度か言及されているが、これらは必ずしも同一の実施形態を指す示すものではない。
【0017】
コンピュータシステムの電力管理の方法および装置を開示する。一実施形態に係る方法によると、コンピュータシステムにおいてチップセットデバイスと周辺機器を接続するインターコネクト上で行われるトランザクションを監視する。このトランザクションのやり取りは、周辺機器とチップセットデバイス間で、チップセットデバイスにトランザクションの記録を取らせるフローコントロールプロトコルに従って行われる。本実施形態ではさらに、チップセットデバイスのバッファで保留にされている複数のコヒーレントトランザクションが所定の基準より大きくなった場合、コンピュータシステムのプロセッサがある電力状態から出る。フローコントロールプロトコルの具体例としては、PCI Expressが挙げられる。ほかの特徴は、添付図面および以下の詳細な説明で明らかにする。
【0018】
図1Aは、コンピュータシステムの電力管理の方法の一実施形態を示すフローチャートである。この処理を実行するのは、ハードウェア(例えば回路や専用ロジックなど)、ソフトウェア(例えば汎用コンピュータシステムや専用機器で実行されるもの)、もしくは両方の組み合わせを含む処理ロジックである。上述したが、CPUはC3/C4状態にある場合、メモリへのアクセスやバスマスタが開始するトラフィックのスヌープを開始しないこともある。このため、CPUからC3/C4状態に入る要求を受け取った場合(処理ブロック101)、処理ロジックは一連の処理を実行して、システムの周辺機器がCPUに対してバスマスタのスヌープやスヌープなしのシステムメモリへの直接アクセスを要求する可能性があるかどうか判定する。周辺機器の例は、外付けのグラフィックスコア、イーサネットコントローラなどである。処理ロジックは周辺機器の1つからトランザクション103を受け取るとしてもよい(処理ブロック104)。トランザクション103はコヒーレントでもインコヒーレントであってもよい。ここで、コヒーレントトランザクションとは、CPUのキャッシュにおいて現在もしくはこの後使用または変更されるデータに関連するもので、インコヒーレントトランザクションは逆に、CPUのキャッシュで現在記憶、使用または変更されていない、メモリから読み出されたデータに関連する。
【0019】
図1Aにおいて、処理ロジックは、受信したトランザクション103がコヒーレントかどうかと、コンピュータシステム中のメモリコントローラに保留中のコヒーレントトランザクションがあるかどうかを確認する(処理ブロック110)。どちらか一方に当てはまる場合、処理ロジックはバスマスタインジケータをアサートして、CPUがC3/C4状態に入ることを禁止する(処理ブロック130)。一実施形態では、CPUはその後デフォルト状態に入る。デフォルト状態はC1もしくはC2状態であってもよい。
【0020】
しかし受信したトランザクション103がインコヒーレントで、ルートコンプレックスデバイスに保留状態のコヒーレントトランザクションがない場合、処理ロジックは、インコヒーレントトランザクション130がメモリコントローラのバッファに占める量に対応した数のクレジットを使用し、トランザクション103を保留とする(処理ブロック112)。処理ロジックは、使用されたクレジットの総数が、入しきい値以上であるかどうか判定するとしてもよい(処理ブロック120)。使用されたクレジットの総数が入しきい値以上である場合、保留中のトランザクションがルートコンプレックスデバイスのバッファに占める量が、入しきい値に対応した水準を超えている。つまりメモリコントローラ中でバッファリングに利用できる部分が少なくなっているので、周辺機器がメモリコントローラに対しトランザクションをさらに送る可能性が減る。このため、CPUがスヌープを行うよう要求される可能性も少なくなる。従って、CPUはC3/C4状態に入ってもよく、処理ロジックはバスマスタインジケータをデアサートし、CPUがC3/C4状態に入ることを許可する(処理ブロック129)。
【0021】
また、使用されたクレジットの総数が入しきい値より少なかった場合、処理ロジックはタイマが切れているかどうかを判定する(処理ブロック122)。タイマが切れていれば、処理ロジックはバスマスタインジケータをデアサートし、CPUがC3/C4状態に入ることを許可する(処理ブロック130)。タイマが切れていない場合、処理ロジックは処理ブロック110を繰り返す。また、処理ロジックはタイマを確認せず、使用されたクレジットの総数が入しきい値より小さい場合は単に処理ブロック110を繰り返すとしてもよい。
【0022】
図2Aに、入しきい値の一実施形態を示す。入しきい値210の設定を調整して、保留中のインコヒーレントトランザクションがルートコンプレックスデバイスにある場合でも、CPUがC3/C4状態に入ることを許可するようにバスマスタインジケータを変更する構成としてもよい。つまり、バスマスタインジケータのアサートを遅らせるべく、使用したクレジット数が入しきい値210以上になるまで、トランザクションは、処理を行わずメモリコントローラに故意に保留されるとしてもよい。このため、CPUが消費電力の少ないC3/C4状態に入りやすくなる。また、入しきい値210は、グラフィックアプリケーションのような高い処理能力が要求される場合、0%に設定されてもよい。
【0023】
ここで、ノートパソコンのような携帯可能なシステムはシステム中のバッテリだけで作動することもあるが、その場合バッテリの充電量の残りに応じて入しきい値を変更してもよい。また、CPUの消費電力を削減すると、性能が低くなるという問題が生じる。一実施形態においては、タイマを用いて保留中のトランザクションのうち最初のトランザクションの処理を止めておく時間に上限を設けてもよい。これは、遅延時間が長くなると性能に影響が出るアプリケーションに上記の問題が及ぼす影響を軽減するための処置である。入しきい値210に達する前にタイマが切れた場合、バスマスタインジケータはリセットされ、CPUはC3/C4状態に入れ、トラフィックが少ない状態やアイドル状態となるようにしてもよい。
【0024】
図1Bは、コンピュータシステムの電力管理の方法の一実施形態を示すフローチャートである。この処理を実行するのは、ハードウェア(例えば回路や専用ロジック)、ソフトウェア(例えば汎用コンピュータシステムや専用機器で実行されるもの)、もしくは両方の組み合わせを含む処理ロジックである。CPUがC3/C4状態にあるときに(処理ブロック105)、処理ロジックが周辺機器からコヒーレントトランザクションを受け取るとする(処理ブロック140)。周辺機器の例としては、外付けのグラフィックコア、イーサネットコントローラなどが挙げられる。コヒーレントトランザクションを受信すると、処理ロジックは、受信したコヒーレントトランザクションがバッファに占める量に対応した数のクレジットを使用する(処理ブロック142)。その後処理ロジックは、コヒーレントトランザクションのために使用されたクレジットの総数が、出しきい値以上かどうか調べる(処理ブロック144)。コヒーレントトランザクションのために使用されたクレジットの総数が、出しきい値以上である場合、処理ロジックはCPUをC3/C4状態から出す(処理ブロック150)。処理ロジックは、CPUに信号を送信してC3/C4状態から出るよう指示するとしてもよい。一実施形態では、CPUはC3/C4状態を出た後C0状態に入る。
【0025】
しかし、使用したクレジットの総数が出しきい値より小さい場合、処理ロジックはタイマが切れているかどうか調べる(処理ブロック146)。タイマが切れていれば、処理ロジックはCPUをC3/C4状態から出す(処理ブロック150)。タイマが切れていなければ、処理ブロックはトランザクションを待ち行列に入れ(処理ブロック148)、処理ブロック140を繰り返す。または、処理ロジックはタイマを調べずに、使用したクレジットの総数が出しきい値より小さい場合、トランザクションを待ち行列に入れ(処理ブロック148)、処理ブロック140を繰り返すとしてもよい。
【0026】
図2Bに出しきい値の一実施形態を示す。この出しきい値250によって、CPUがC3/C4状態から出るようにバスマスタインジケータを設定するタイミングが決まる。CPUがC3/C4状態にあるとき、CPUがC3/C4状態に一定期間落ち着くことである程度の省電力効果を達成できるよう、トランザクションは待ち行列に入れられる構成としてもよい。使用されたクレジットの数が出しきい値250より少ない場合、CPUには出るための条件が整ったとは通知されない。一実施形態においては、待ち時間の長さに影響を受けやすいアプリケーションを想定して、保留中のトランザクションのうち最初のトランザクションを処理するまでの時間に上限を設けるためにタイマを使用するとしてもよい。タイマが切れれば、保留中のコヒーレントトランザクションの数に対応する使用したクレジットの総数が出しきい値250より小さくても、CPUに信号を送信してC3/C4状態から出す。同様に、高い処理能力が要求されるアプリケーションの場合、所望の性能を実現できるよう、出しきい値250を0%に設定してもよい。また、システムの電力供給源がバッテリしかない実施形態では、出しきい値250はバッテリの充電量の残りに応じて変更できる。
【0027】
入しきい値および出しきい値の設定をさまざまに変更できることは明らかである。一実施形態では、入しきい値と出しきい値は略同じである。例えば、高い処理能力が要求されるアプリケーションの場合は、入しきい値および出しきい値はどちらも0%に固定されるとしてもよい。
【0028】
また別の実施形態では、出しきい値と入しきい値は異なる値に設定される。例えば、入しきい値が出しきい値より大きく設定されるとしてもよい。また、入しきい値と出しきい値をさまざまに変更することで、CPUはバッテリの充電量の残りに応じて性能を調整することができる。また、しきい値を変更することで、CPUの電力状態の切り替え動作を変更してもよい。出しきい値および入しきい値をこのように変更することで、C3/C4状態に入るタイミングと定期的に発生するトラフィックのタイミングが一致するため起こりうる、CPUが低電力状態から頻繁に抜け出す状況を避けることができる。さらに、入る時と出る時の動作が非対称となるので、CPUがC3/C4状態にある時間を調整したり、長くしたりすることができる。例えば、CPUがC3/C4状態から出るのにかかる時間は数百マイクロ秒だが、この間にCPUの位相ロックループが消費する電力は、立ち上がりのための最初の10マイクロ秒で消費される電力の2倍に等しい。このため、CPUがC3/C4状態にある時間が同状態から出る時の待ち時間より短い場合、消費電力削減の実効果はほとんどないか、無視できる程度のものになってしまい、最悪の場合電力消費が増えてしまうこともある。
【0029】
図3Aから図3Cは、コンピュータシステムにおけるチップセットのパーティション構成のさまざまな実施形態を示している。図3Aに、メモリコントローラ310、入出力コントローラ320、電力管理回路330を示す。電力管理回路330はメモリコントローラ310および入出力コントローラ320に対して外部に設けられている。メモリコントローラ310は、リンク315を介して入出力コントローラ320に接続されている。リンク315は、デジタルメディアインターフェース(DMI)リンクなどである。メモリコントローラ310はまた、クレジットを単位とする計算方式に基づいたフローコントロールプロトコル、例えばPCI Expressを採用したバスまたはインターコネクト(不図示)を1本以上用いることによって、1以上の周辺機器(不図示)に接続されている。
【0030】
一実施形態によると、電力管理回路330は、側波帯信号322および324によって、メモリコントローラ310および/または入出力コントローラ320と通信を行う。側波帯信号332および334は、周辺機器との間でバスマスタイベントが発生しているかどうかを示す。周辺機器は例えば、AGP(Advance Graphic Port)である。側波帯信号332および334は通常、XX_BUSYと表される。例えば、AGPに対応する側波帯信号はAGP_BUSYで表される。側波帯信号に1以上の共有信号が含まれるのは明らかである。
【0031】
一実施形態において、メモリコントローラ310または入出力コントローラ320の一方は、メモリコントローラ310と入出力コントローラ320間で送信される1以上のメッセージパケットを基にバスマスタイベントに関する情報を集めるリーダー役となる。メッセージパケットはDMIメッセージパケット325を含むとしてもよい。ここで、リーダー役の方は、側波帯信号334および332の一方により、電力管理回路330との通信を継続して行う。
【0032】
図3Bに、コンピュータシステムにおけるチップセットのパーティション構成の別の実施形態を示す。同図に示されるチップセットは、メモリコントローラ340および入出力コントローラ350を有し、リンク345で接続されている。リンク345は、DMIリンクであってもよい。また、実施形態によっては、図示していないほかのデバイスを含むとしてもよい。メモリコントローラ340はまた、クレジットを単位とする計算方式に基づくフローコントロールプロトコル、例えばPCI Expressを採用したバスまたはインターコネクト(不図示)を介して、周辺機器(不図示)に接続されている。周辺機器は例えば、外付けのグラフィックコア、イーサネットコントローラなどであってもよい。入出力コントローラ350はインターコネクト上で行われるデータトラフィックを監視するための電力管理回路352を有する。電力管理回路352は入出力コントローラ350の内部にあるため、メモリコントローラ340は、周辺機器との間のインターコネクト上で実行中のトラフィックがあるかどうか判定するためには、入出力コントローラ350と通信しなければならない。一実施形態において、メモリコントローラ340は、リンク345を介して入出力コントローラ350に送信するメッセージパケット347のビットのうち1つ以上を設定する。メッセージパケット347はDMIパケットであってもよい。メッセージパケット347中のビットを設定することを、側波帯信号(例えば、図3Aに示した側波帯信号332および334)とは対照的に、バスマスタインジケータ信号の帯域内仮想化と呼ぶ。このように呼ぶのは、メモリコントローラ340および入出力コントローラ350双方のピンやコネクタといった構成をなくす目的で、バスマスタインジケータ信号が抽象化されているためである。また、電力管理回路352は、ほかのインターコネクト(不図示)を介して入出力コントローラ350と接続された別の周辺機器(不図示)との間のバスマスタイベントを監視するとしてもよい。
【0033】
図3Cに、コンピュータシステムにおけるチップセットのパーティション構成の別の実施形態を示す。同図に示すチップセットは、統合メモリ・入出力コントローラ360を有する。統合メモリ・入出力コントローラ360は内部電力管理回路365を有する。電力管理回路365は統合コントローラ360の一部として構成されているため、コントローラ360に接続された周辺機器に対応するバスマスタ情報はコントローラ360内の論理回路を介して内部に記録されるとしてもよい。
【0034】
図3Aから図3Cに示した、チップセットのパーティション構成のさまざまな実施形態は、本開示技術を説明するためのものにすぎない。本開示技術を応用して、コンピュータに備えられるチップセットのパーティション構成の別の実施形態を実現してもよい。
【0035】
図4にコンピュータシステム400の実施形態を例示する。コンピュータシステム400は、中央演算処理装置(CPU)410、メモリコントローラ(MCH)420、複数のDIMM(dual in−line memory module)425、複数のメモリデバイス427、PCI Expressグラフィックポート(AGP)430、入出力コントローラ(ICH)440、複数のUSB(Universal Serial Bus)ポート445、オーディオコーダ・デコーダ(AUDIO CODEC)460、スーパー入出力(スーパー I/O)450、およびファームウェアハブ(FWH)470を有する。
【0036】
一実施形態において、CPU410、AGP430、DIMM425およびICH440は、MCH420に接続されている。MCH420とICH440間を結ぶリンク435はDMIリンクであってもよい。MCH420は、DIMM425を介して、メモリデバイス427との間でデータのやり取りを行う。メモリデバイス427には、さまざまな種類のメモリを用いてもよい。例えば、ダイナミックRAM(Dynamic Random Access Memory:DRAM)、同期型DRAM(Synchronous Dynamic Random Access Memory:SDRAM)、DDR(Double Data Rate)SDRAM、またはフラッシュメモリなどが挙げられる。一実施形態においては、DIMM425はすべて、MCH420に接続されるよう、DIMMコネクタ(不図示)を介して同じマザーボード(不図示)に実装されている。また、一実施形態において、USBポート445、AUDIO CODEC460およびスーパーI/O450はICH440に接続されている。スーパーI/O450は、FWH470、フロッピーディスクドライブ451、キーボードやマウスなどのデータ入力装置453、複数のシリアルポート455および複数のパラレルポート457と接続されている。
【0037】
一実施形態において、ICH440は電力管理回路442を有する。電力管理回路442は、ICH440およびMCH420と周辺機器を接続するさまざまなインターコネクト上で行われるデータトラフィックを監視する。周辺機器の例としては、AGP430が挙げられる。電力管理回路442はバスマスタインジケータを生成するとしてもよい。バスマスタインジケータは、リンク435を介して、メッセージパケット437内の仮想化信号として、MCH420からICH440に送信される。変形例としては、MCH420とICH440を統合して、電力管理回路を持つ単一のコントローラとし、バスマスタインジケータはロジックを介して内部に記憶するとしてもよい。
【0038】
また別の実施形態においては、MCH420およびICH440は別々の装置のままとして、電力管理回路はMCH420およびICH440の両方に対して外部とする。ここで、MCH420またはICH440の一方が、MCH420とICH440間でやり取りされたメッセージパケットに基づいて、もう一方のコントローラからシステム400中の周辺機器との間のバストラフィックに関する情報を集めるためのリーダー役を果たすとしてもよい。また、リーダー役の方は、1つ以上の側波帯信号を用いて外部にある電力管理回路に集めた情報を送るとしてもよい。
【0039】
コンピュータシステム400のさまざまな実施形態には、図4に示す構成要素もしくは関連するハードウェアの一部またはすべてが含まれるとしてもよい。しかし、コンピュータシステムの構成を変更した場合、図4に示されていないデバイスを1つ以上有するとしてもよい。また本開示技術は、マルチドロップ環境や2地点間環境のようなほかのシステム環境に応用が可能であるのは明らかである。同様に、本開示技術は携帯用およびデスクトップコンピュータシステムのどちらにも応用が可能である。
【0040】
上述の内容は、本発明の実施形態のうちいくつかを例として挙げて説明したものにすぎない。以上の説明、添付の図面および請求の範囲を基に、請求の範囲を超えないさまざまな変更が可能であるのは当業者には明らかである。このため、明細書の説明は、発明を限定するものではなく説明するためのものである。
【符号の説明】
【0041】
210 入しきい値
250 出しきい値
310 メモリコントローラ(MCH)
315 リンク
320 出入力コントローラ(ICH)
325 メッセージパケット
332、334 側波帯信号
330 電力管理回路
340 メモリコントローラ(MCH)
345 リンク
347 メッセージパケット
350 入出力コントローラ(ICH)
352 電力管理回路
360 統合MCH&ICH
365 電力管理回路
410 中央演算処理装置(CPU)
420 メモリコントローラ(MCH)
425 DIMM
427 メモリデバイス
430 PCI Expressグラフィックポート(AGP)
435 デジタルメディアインターフェース(DMI)リンク
437 メッセージパケット
440 入出力管理回路(ICH)
442 電力管理回路
445 USBポート
450 スーパー入出力(スーパーI/O)
451 フロッピーディスクドライブ
453 データ入力装置
455 シリアルポート
457 パラレルポート
460 オーディオコーダ・デコーダ(AUDIO CODEC)
470 ファームウェアハブ(FWH)
【特許請求の範囲】
【請求項1】
システムの電力を管理する方法であって、
当該システム中のチップセットデバイスと周辺機器を接続するインターコネクト上で行われる複数のトランザクションを監視する手順であって、前記複数のトランザクションのやり取りは、前記周辺機器と前記チップセットデバイス間において、前記チップセットデバイスに前記複数のトランザクションの記録を取らせるフローコントロールプロトコルに従って行われている手順と、
前記チップセットデバイスのバッファに保留されている複数のコヒーレントトランザクションが第1しきい値を超えている場合、前記システム中に備えられたプロセッサがある電力状態から出る手順と
を備える方法。
【請求項2】
前記バッファに保留されている前記複数のコヒーレントトランザクションが前記第1しきい値を超えていない場合、所定の時間が経過したか確認する手順と、
前記所定の時間が経過している場合、前記プロセッサは前記ある電力状態から出る手順と
をさらに備える請求項1に記載の方法。
【請求項3】
前記プロセッサが前記ある電力状態に入る要求を出した場合、
前記チップセットデバイスの前記バッファに保留中の複数のインコヒーレントトランザクションが第2しきい値を超えていれば、前記プロセッサが前記ある電力状態に入ることを許可するべく、メッセージパケット内のインジケータをデアサートする手順
をさらに備える請求項1に記載の方法。
【請求項4】
前記チップセットデバイスの前記バッファに保留中の前記複数のインコヒーレントトランザクションが前記第2しきい値を超えている場合、前記プロセッサが前記ある電力状態に入ることを禁止するべく、前記メッセージパケット内のインジケータをアサートする手順
をさらに備える請求項3に記載の方法。
【請求項5】
前記チップセットデバイスの前記バッファに保留中の前記複数のインコヒーレントトランザクションが前記第2しきい値を下回る場合、第2の所定時間が経過したか確認する手順と、
前記第2の所定時間が経過していれば、前記プロセッサが前記ある電力状態に入ることを許可するべく、前記メッセージパケット内の前記インジケータをデアサートする手順と
をさらに備える請求項3に記載の方法。
【請求項6】
前記第1しきい値と前記第2しきい値は略等しい
請求項3に記載の方法。
【請求項7】
前記第1しきい値は前記第2しきい値より小さい
請求項3に記載の方法。
【請求項8】
前記第1しきい値は前記第2しきい値より大きい
請求項3に記載の方法。
【請求項9】
前記フローコントロールプロトコルは、PCI(Peripheral Component Interconnect)Expressである
請求項1に記載の方法。
【請求項10】
前記チップセットデバイスはメモリコントローラを含む
請求項1に記載の方法。
【請求項11】
前記チップセットデバイスは入出力コントローラを含む
請求項1に記載の方法。
【請求項12】
コンピュータシステムに備えられた装置であって、
当該コンピュータシステム中のルートコンプレックスデバイスと周辺機器を接続するインターコネクト上で行われる複数のトランザクションを監視する電力管理回路であって、前記複数のトランザクションのやり取りは、前記周辺機器と前記ルートコンプレックスデバイス間において、前記ルートコンプレックスデバイスに前記複数のトランザクションの記録を取らせるフローコントロールプロトコルに従って行われている電力管理回路と、
前記ルートコンプレックスデバイスに接続されたデジタルメディアインターフェースであって、前記ルートコンプレックスデバイスのバッファに保留されている複数のコヒーレントトランザクションが第1しきい値を超えている場合、前記コンピュータシステム中に備えられたプロセッサがある電力状態から出るべく、第1メッセージパケットを前記ルートコンプレックスデバイスに送信するデジタルメディアインターフェースと
を備える装置。
【請求項13】
前記プロセッサが前記ある電力状態に入る要求を出した場合、前記ルートコンプレックスデバイスの前記バッファに保留中の複数のインコヒーレントトランザクションが第2しきい値を超えていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入ることを許可するべく、第2メッセージパケット内のインジケータをデアサートする
請求項12に記載の装置。
【請求項14】
前記プロセッサが前記ある電力状態に入る要求を出した場合、前記ルートコンプレックスデバイスの前記バッファに保留中の前記複数のインコヒーレントトランザクションが前記第2しきい値を下回っていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入ることを禁止するべく、前記第2メッセージパケット内の前記インジケータをアサートする
請求項13に記載の装置。
【請求項15】
タイマであって、当該タイマが切れていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入るのを禁止するべく、前記第2メッセージパケット内の前記インジケータをアサートするタイマ
をさらに含む請求項14に記載の装置。
【請求項16】
前記第1しきい値と前記第2しきい値は略等しい
請求項14に記載の装置。
【請求項17】
前記フローコントロールプロトコルは、PCI(Peripheral Component Interconnect)Expressである
請求項12に記載の装置。
【請求項18】
コンピュータシステムに備えられた半導体チップであって、
前記コンピュータシステム中で周辺機器に接続されたメモリコントローラと、
前記周辺機器と前記メモリコントローラ間のトランザクションを監視するべく、前記メモリコントローラに接続された電力管理回路と、
前記メモリコントローラと同じ基板に配設されている入出力コントローラであって、前記コンピュータシステム中のプロセッサからある電力状態に入る要求を受けた場合、前記メモリコントローラのバッファに保留中の複数のインコヒーレントトランザクションが入しきい値を超えていれば、前記プロセッサが前記ある電力状態に入ることを許可し、前記複数のインコヒーレントトランザクションが前記入しきい値を下回っていれば、前記プロセッサが前記ある電力状態に入ることを禁止する入出力コントローラと
を含む半導体チップ。
【請求項19】
前記メモリコントローラの前記バッファに保留中の複数のコヒーレントトランザクションが出しきい値を超えている場合、前記入出力コントローラは前記プロセッサを前記ある電力状態から出す
請求項18に記載の半導体チップ。
【請求項20】
前記入しきい値と前記出しきい値は略等しい
請求項19に記載の半導体チップ。
【請求項21】
前記入しきい値と前記出しきい値は変更することができる
請求項19に記載の半導体チップ。
【請求項22】
前記周辺機器と前記メモリコントローラは、PCI(Peripheral Component Interconnect)Expressインターコネクトを介して接続されている
請求項18に記載の半導体チップ。
【請求項23】
前記周辺機器と前記メモリコントローラはバスを介して接続されている
請求項18に記載の半導体チップ。
【請求項24】
システムであって、
プロセッサと、
前記プロセッサに接続されたメモリコントローラと、
グラフィックスチップと、
前記グラフィックスチップと前記メモリコントローラを接続するインターコネクトと、
前記メモリコントローラに接続された入出力コントローラと、
を有しており、
前記入出力コントローラは
前記インターコネクト上で行われる複数のトランザクションを監視する電力管理回路であって、前記複数のトランザクションのやり取りは、前記グラフィックスチップと前記メモリコントローラ間において、フローコントロールプロトコルに従って行われている電力管理回路と、
前記メモリコントローラに接続されたデジタルメディアインターフェースであって、前記メモリコントローラのバッファに保留されている複数のコヒーレントトランザクションが第1しきい値を超えている場合、前記プロセッサがある電力状態から出るべく、第1メッセージパケットを前記メモリコントローラに送信するデジタルメディアインターフェースと
を含むシステム。
【請求項25】
前記プロセッサが前記ある電力状態に入る要求を出した場合、前記メモリコントローラの前記バッファに保留中の複数のインコヒーレントトランザクションが第2しきい値を超えていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入ることを許可するべく、第2メッセージパケット内のインジケータをデアサートする
請求項24に記載のシステム。
【請求項26】
前記プロセッサが前記ある電力状態に入る要求を出した場合、前記メモリコントローラの前記バッファに保留中の前記複数のインコヒーレントトランザクションが前記第2しきい値を下回っていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入ることを禁止するべく、前記第2メッセージパケット内の前記インジケータをアサートする
請求項25に記載のシステム。
【請求項27】
前記第1しきい値と前記第2しきい値は略等しい
請求項26に記載のシステム。
【請求項28】
前記フローコントロールプロトコルは、PCI(Peripheral Component Interconnect)Expressである
請求項24に記載のシステム。
【請求項1】
システムの電力を管理する方法であって、
当該システム中のチップセットデバイスと周辺機器を接続するインターコネクト上で行われる複数のトランザクションを監視する手順であって、前記複数のトランザクションのやり取りは、前記周辺機器と前記チップセットデバイス間において、前記チップセットデバイスに前記複数のトランザクションの記録を取らせるフローコントロールプロトコルに従って行われている手順と、
前記チップセットデバイスのバッファに保留されている複数のコヒーレントトランザクションが第1しきい値を超えている場合、前記システム中に備えられたプロセッサがある電力状態から出る手順と
を備える方法。
【請求項2】
前記バッファに保留されている前記複数のコヒーレントトランザクションが前記第1しきい値を超えていない場合、所定の時間が経過したか確認する手順と、
前記所定の時間が経過している場合、前記プロセッサは前記ある電力状態から出る手順と
をさらに備える請求項1に記載の方法。
【請求項3】
前記プロセッサが前記ある電力状態に入る要求を出した場合、
前記チップセットデバイスの前記バッファに保留中の複数のインコヒーレントトランザクションが第2しきい値を超えていれば、前記プロセッサが前記ある電力状態に入ることを許可するべく、メッセージパケット内のインジケータをデアサートする手順
をさらに備える請求項1に記載の方法。
【請求項4】
前記チップセットデバイスの前記バッファに保留中の前記複数のインコヒーレントトランザクションが前記第2しきい値を超えている場合、前記プロセッサが前記ある電力状態に入ることを禁止するべく、前記メッセージパケット内のインジケータをアサートする手順
をさらに備える請求項3に記載の方法。
【請求項5】
前記チップセットデバイスの前記バッファに保留中の前記複数のインコヒーレントトランザクションが前記第2しきい値を下回る場合、第2の所定時間が経過したか確認する手順と、
前記第2の所定時間が経過していれば、前記プロセッサが前記ある電力状態に入ることを許可するべく、前記メッセージパケット内の前記インジケータをデアサートする手順と
をさらに備える請求項3に記載の方法。
【請求項6】
前記第1しきい値と前記第2しきい値は略等しい
請求項3に記載の方法。
【請求項7】
前記第1しきい値は前記第2しきい値より小さい
請求項3に記載の方法。
【請求項8】
前記第1しきい値は前記第2しきい値より大きい
請求項3に記載の方法。
【請求項9】
前記フローコントロールプロトコルは、PCI(Peripheral Component Interconnect)Expressである
請求項1に記載の方法。
【請求項10】
前記チップセットデバイスはメモリコントローラを含む
請求項1に記載の方法。
【請求項11】
前記チップセットデバイスは入出力コントローラを含む
請求項1に記載の方法。
【請求項12】
コンピュータシステムに備えられた装置であって、
当該コンピュータシステム中のルートコンプレックスデバイスと周辺機器を接続するインターコネクト上で行われる複数のトランザクションを監視する電力管理回路であって、前記複数のトランザクションのやり取りは、前記周辺機器と前記ルートコンプレックスデバイス間において、前記ルートコンプレックスデバイスに前記複数のトランザクションの記録を取らせるフローコントロールプロトコルに従って行われている電力管理回路と、
前記ルートコンプレックスデバイスに接続されたデジタルメディアインターフェースであって、前記ルートコンプレックスデバイスのバッファに保留されている複数のコヒーレントトランザクションが第1しきい値を超えている場合、前記コンピュータシステム中に備えられたプロセッサがある電力状態から出るべく、第1メッセージパケットを前記ルートコンプレックスデバイスに送信するデジタルメディアインターフェースと
を備える装置。
【請求項13】
前記プロセッサが前記ある電力状態に入る要求を出した場合、前記ルートコンプレックスデバイスの前記バッファに保留中の複数のインコヒーレントトランザクションが第2しきい値を超えていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入ることを許可するべく、第2メッセージパケット内のインジケータをデアサートする
請求項12に記載の装置。
【請求項14】
前記プロセッサが前記ある電力状態に入る要求を出した場合、前記ルートコンプレックスデバイスの前記バッファに保留中の前記複数のインコヒーレントトランザクションが前記第2しきい値を下回っていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入ることを禁止するべく、前記第2メッセージパケット内の前記インジケータをアサートする
請求項13に記載の装置。
【請求項15】
タイマであって、当該タイマが切れていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入るのを禁止するべく、前記第2メッセージパケット内の前記インジケータをアサートするタイマ
をさらに含む請求項14に記載の装置。
【請求項16】
前記第1しきい値と前記第2しきい値は略等しい
請求項14に記載の装置。
【請求項17】
前記フローコントロールプロトコルは、PCI(Peripheral Component Interconnect)Expressである
請求項12に記載の装置。
【請求項18】
コンピュータシステムに備えられた半導体チップであって、
前記コンピュータシステム中で周辺機器に接続されたメモリコントローラと、
前記周辺機器と前記メモリコントローラ間のトランザクションを監視するべく、前記メモリコントローラに接続された電力管理回路と、
前記メモリコントローラと同じ基板に配設されている入出力コントローラであって、前記コンピュータシステム中のプロセッサからある電力状態に入る要求を受けた場合、前記メモリコントローラのバッファに保留中の複数のインコヒーレントトランザクションが入しきい値を超えていれば、前記プロセッサが前記ある電力状態に入ることを許可し、前記複数のインコヒーレントトランザクションが前記入しきい値を下回っていれば、前記プロセッサが前記ある電力状態に入ることを禁止する入出力コントローラと
を含む半導体チップ。
【請求項19】
前記メモリコントローラの前記バッファに保留中の複数のコヒーレントトランザクションが出しきい値を超えている場合、前記入出力コントローラは前記プロセッサを前記ある電力状態から出す
請求項18に記載の半導体チップ。
【請求項20】
前記入しきい値と前記出しきい値は略等しい
請求項19に記載の半導体チップ。
【請求項21】
前記入しきい値と前記出しきい値は変更することができる
請求項19に記載の半導体チップ。
【請求項22】
前記周辺機器と前記メモリコントローラは、PCI(Peripheral Component Interconnect)Expressインターコネクトを介して接続されている
請求項18に記載の半導体チップ。
【請求項23】
前記周辺機器と前記メモリコントローラはバスを介して接続されている
請求項18に記載の半導体チップ。
【請求項24】
システムであって、
プロセッサと、
前記プロセッサに接続されたメモリコントローラと、
グラフィックスチップと、
前記グラフィックスチップと前記メモリコントローラを接続するインターコネクトと、
前記メモリコントローラに接続された入出力コントローラと、
を有しており、
前記入出力コントローラは
前記インターコネクト上で行われる複数のトランザクションを監視する電力管理回路であって、前記複数のトランザクションのやり取りは、前記グラフィックスチップと前記メモリコントローラ間において、フローコントロールプロトコルに従って行われている電力管理回路と、
前記メモリコントローラに接続されたデジタルメディアインターフェースであって、前記メモリコントローラのバッファに保留されている複数のコヒーレントトランザクションが第1しきい値を超えている場合、前記プロセッサがある電力状態から出るべく、第1メッセージパケットを前記メモリコントローラに送信するデジタルメディアインターフェースと
を含むシステム。
【請求項25】
前記プロセッサが前記ある電力状態に入る要求を出した場合、前記メモリコントローラの前記バッファに保留中の複数のインコヒーレントトランザクションが第2しきい値を超えていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入ることを許可するべく、第2メッセージパケット内のインジケータをデアサートする
請求項24に記載のシステム。
【請求項26】
前記プロセッサが前記ある電力状態に入る要求を出した場合、前記メモリコントローラの前記バッファに保留中の前記複数のインコヒーレントトランザクションが前記第2しきい値を下回っていれば、前記電力管理回路は、前記プロセッサが前記ある電力状態に入ることを禁止するべく、前記第2メッセージパケット内の前記インジケータをアサートする
請求項25に記載のシステム。
【請求項27】
前記第1しきい値と前記第2しきい値は略等しい
請求項26に記載のシステム。
【請求項28】
前記フローコントロールプロトコルは、PCI(Peripheral Component Interconnect)Expressである
請求項24に記載のシステム。
【図1A】
【図1B】
【図2A】
【図2B】
【図3A】
【図3B】
【図3C】
【図4】
【図1B】
【図2A】
【図2B】
【図3A】
【図3B】
【図3C】
【図4】
【公表番号】特表2007−517332(P2007−517332A)
【公表日】平成19年6月28日(2007.6.28)
【国際特許分類】
【出願番号】特願2006−547484(P2006−547484)
【出願日】平成16年12月23日(2004.12.23)
【国際出願番号】PCT/US2004/043675
【国際公開番号】WO2005/066743
【国際公開日】平成17年7月21日(2005.7.21)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.フロッピー
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】
【公表日】平成19年6月28日(2007.6.28)
【国際特許分類】
【出願日】平成16年12月23日(2004.12.23)
【国際出願番号】PCT/US2004/043675
【国際公開番号】WO2005/066743
【国際公開日】平成17年7月21日(2005.7.21)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.フロッピー
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】
[ Back to top ]