(57)【要約】【課題】  本発明の課題は、分散システムにおける動的な電力管理を実現するためのコア動作検出のための方法、システム及び装置を提供することである。【解決手段】  本発明の一特徴は、複数のプロセッサコアのアーキテクチャイベントカウンターと、前記複数のプロセッサコアの電力状態と、キャッシングエージェントにより使用されるエントリの個数のホームクレジットプールと、ミスアドレスキューの利用と、コアクレジットの利用指標とに関する入力セットを受け付けるプロセッサコア動作検出手段を有する装置であって、前記プロセッサコア動作検出手段は、前記入力セットに少なくとも部分的に基づき、ホームエージェントのアクティブレベルを決定する装置に関する。【選択図】  図１
2009009577.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサコアのアーキテクチャイベントカウンターと、前記複数のプロセッサコアの電力状態と、キャッシングエージェントにより使用されるエントリの個数のホームクレジットプールと、ミスアドレスキューの利用と、コアクレジットの利用指標とに関する入力セットを受け付けるプロセッサコア動作検出手段を有する装置であって、
前記プロセッサコア動作検出手段は、前記入力セットに少なくとも部分的に基づき、ホームエージェントのアクティブレベルを決定する装置。
【請求項２】
前記プロセッサコア動作検出手段は、前記キャッシングエージェントに配置される、請求項１記載の装置。
【請求項３】
前記コアクレジットの利用指標は、あるプロセッサコアがメモリリクエストを生成し、前記コアクレジットの大部分若しくはすべてを利用し、所定の閾値を超えることによって、ホームエージェントが電力アップされる必要があるか判断する、請求項１記載の装置。
【請求項４】
前記アーキテクチャイベントカウンターは、多数の分岐予測ミス又はページミスによりプロセッサコアが多数のメモリリクエストが発生する可能性を示すように、バースト処理の予測をするのに利用される、請求項１記載の装置。
【請求項５】
前記アーキテクチャイベントカウンターは、プリフェッチカウント、ＬＬＣミス、ＴＬＢミス及び分岐ミスである、請求項１記載の装置。
【請求項６】
ホームエージェントと複数のプロセッサコアとに接続されたキャッシングエージェントであって、
前記複数のプロセッサコアの電力状態を制御するプロセッサ電力制御ユニットと、
当該キャッシングエージェントにより使用されるエントリの個数のホームクレジットプールを格納する第１ロジックと、
ミスアドレスキューと、
コアクレジットの利用指標を格納する第２ロジックと、
を有し、
プロセッサコア動作検出手段が、前記プロセッサ電力制御ユニットと、第１ロジックと第２ロジックとから受け付けた入力と、前記複数のプロセッサコアから受け付けたアーキテクチャイベントカウンターと、前記ミスアドレスキューとに部分的に基づき、前記ホームエージェントのアクティブレベルを決定するキャッシングエージェント。
【請求項７】
前記コアクレジットの利用指標は、あるプロセッサコアがメモリリクエストを生成し、前記コアクレジットの大部分若しくはすべてを利用し、所定の閾値を超えることによって、ホームエージェントが電力アップされる必要があるか判断する、請求項６記載のキャッシングエージェント。
【請求項８】
前記アーキテクチャイベントカウンターは、多数の分岐予測ミス又はページミスによりプロセッサコアが多数のメモリリクエストが発生する可能性を示すように、バースト処理の予測をするのに利用される、請求項６記載のキャッシングエージェント。
【請求項９】
前記アーキテクチャイベントカウンターは、プリフェッチカウント、ＬＬＣミス、ＴＬＢミス及び分岐ミスである、請求項６記載のキャッシングエージェント。
【請求項１０】
統合デバイスパッケージの複数のプロセッサコアに接続されるホームエージェントの電力アクティブレベルを決定する方法であって、
前記統合デバイスパッケージの電力状態が電力ダウン状態にあるか判断し、そうでない場合、電力セーブ状態に入ったプロセッサコアの個数が前のタイムインターバルから変化したか判断するステップと、
クレジットプールとミスアドレスキューの利用とを第１閾値と比較するステップと、
複数のアーキテクチャイベントカウンターと第２閾値とを比較するステップと、
前記比較結果に少なくとも部分的に基づき、前記電力アクティブレベルを調整するステップと、
を有する方法。
【請求項１１】
前記ホームエージェントの電力アクティブレベルは、前記電力セーブ状態に入ったプロセッサコアの個数が前のタイムインターバルから減少したとき、増大される、請求項１０記載の方法。
【請求項１２】
前記ホームエージェントの電力アクティブレベルは、前記電力セーブ状態に入ったプロセッサコアの個数が前のタイムインターバルから増加したとき、低減される、請求項１０記載の方法。
【請求項１３】
前記ホームエージェントの電力アクティブレベルは、前記クレジットプールとミスアドレスキューの利用とが前記第１閾値を超えると、増大される、請求項１０記載の方法。
【請求項１４】
前記クレジットプールとミスアドレスキューの利用とが前記第１閾値を超えない場合、前記複数のアーキテクチャイベントカウンターが第２閾値と比較される、請求項１０記載の方法。
【請求項１５】
各プロセッサが少なくとも１つのリソースを有する複数のプロセッサを有したサーバプラットフォームと、
前記複数のプロセッサに係る利用カウンターとアーキテクチャイベントカウンターとに少なくとも部分的に基づき、ホームエージェントの電力アクティブレベルを規定するコア動作検出手段と、
を有するシステム。
【請求項１６】
入出力ハブに接続されるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）装置をさらに有する、請求項１４記載のシステム。
【請求項１７】
各プロセッサは、前記リソースの電力状態を変更することによって、電力管理コマンドに応答する電力コントローラを有する、請求項１４記載のシステム。
【請求項１８】
前記リソースは、前記入出力ハブに専用とされ、
前記リソースは、個別に電力管理可能なセグメントに論理的に構成される、請求項１６記載のシステム。
【請求項１９】
前記コア動作検出手段は、前記リソースの予測される以降の利用の少なくとも部分的な基礎として、出力リクエストキュー、ライトバックキャッシュ及びクレジットプールの少なくとも１つをモニタする、請求項１４記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、電力管理に関する。より詳細には、実施例はソース制御された動的な電力管理に関する。
【背景技術】
【０００２】
マイクロプロセッサは、一般に動的電力管理技術を利用して電力使用を管理している。通常、マイクロプロセッサの動的電力管理は、マイクロプロセッサに設けられ、中央ＦＳＢ（Ｆｒｏｎｔ  Ｓｉｄｅ  Ｂｕｓ）に接続された動作検出回路を介して実現される。動作検出回路は、あるユニットがオン又はオフされるべき状態を検出し、これらのユニットの電力レベルを適切に調節するよう構成される。
【０００３】
従来、動作検出回路は、電力制御ユニットからわずかな距離しか物理的に離れていなかったため、許容可能なパフォーマンスを提供してきた。しかしながら、バスアーキテクチャが、ＦＳＢアーキテクチャから離れてきており、ポイント・ツー・ポイント（ｐＴｐ）アーキテクチャを利用し始めている。しかしながら、ｐＴｐアーキテクチャは、電力管理においていくつかの困難を生じさせる可能性がある。
【０００４】
このような困難を生じさせる１つの理由は、ｐＴｐアーキテクチャが、電力管理回路と電力制御ユニットとが異なる集積回路上に設けられ、ｐＴｐリンクにより接続される実現形態をサポートする分散システムであるためである。この結果、従来の動作検出回路は、電力オン又はオフを行うための上記ユニットの回路に適切なリードタイムを提供することができないため、システムのパフォーマンスの側面からユニットをオン／オフするための遅延を効果的に隠蔽することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、上記問題点に鑑み、分散システムにおける動的な電力管理を実現するためのコア動作検出のための方法、システム及び装置を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明の一特徴は、複数のプロセッサコアのアーキテクチャイベントカウンターと、前記複数のプロセッサコアの電力状態と、キャッシングエージェントにより使用されるエントリの個数のホームクレジットプールと、ミスアドレスキューの利用と、コアクレジットの利用指標とに関する入力セットを受け付けるプロセッサコア動作検出手段を有する装置であって、前記プロセッサコア動作検出手段は、前記入力セットに少なくとも部分的に基づき、ホームエージェントのアクティブレベルを決定する装置に関する。
【０００７】
本発明の他の特徴は、ホームエージェントと複数のプロセッサコアとに接続されたキャッシングエージェントであって、前記複数のプロセッサコアの電力状態を制御するプロセッサ電力制御ユニットと、当該キャッシングエージェントにより使用されるエントリの個数のホームクレジットプールを格納する第１ロジックと、ミスアドレスキューと、コアクレジットの利用指標を格納する第２ロジックとを有し、プロセッサコア動作検出手段が、前記プロセッサ電力制御ユニットと、第１ロジックと第２ロジックとから受け付けた入力と、前記複数のプロセッサコアから受け付けたアーキテクチャイベントカウンターと、前記ミスアドレスキューとに部分的に基づき、前記ホームエージェントのアクティブレベルを決定するキャッシングエージェントに関する。
【０００８】
本発明の他の特徴は、統合デバイスパッケージの複数のプロセッサコアに接続されるホームエージェントの電力アクティブレベルを決定する方法であって、前記統合デバイスパッケージの電力状態が電力ダウン状態にあるか判断し、そうでない場合、電力セーブ状態に入ったプロセッサコアの個数が前のタイムインターバルから変化したか判断するステップと、クレジットプールとミスアドレスキューの利用とを第１閾値と比較するステップと、複数のアーキテクチャイベントカウンターと第２閾値とを比較するステップと、前記比較結果に少なくとも部分的に基づき、前記電力アクティブレベルを調整するステップとを有する方法に関する。
【０００９】
本発明の他の特徴は、各プロセッサが少なくとも１つのリソースを有する複数のプロセッサを有したサーバプラットフォームと、前記複数のプロセッサに係る利用カウンターとアーキテクチャイベントカウンターとに少なくとも部分的に基づき、ホームエージェントの電力アクティブレベルを規定するコア動作検出手段とを有するシステムに関する。
【発明の効果】
【００１０】
本発明によると、分散システムにおける動的な電力管理を実現するためのコア動作検出のための方法、システム及び装置を提供することができる。
【発明を実施するための最良の形態】
【００１１】
本出願は、２つの先願からの実施例に関連し、それを含むかもしれない。何れの先願も同一の発明者により２００６年６月２９日に出願された。第１の出願は、第１１／４７９，４３８号“Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｄｙｎａｍｉｃａｌｌｙ  Ｃｏｎｔｒｏｌｌｉｎｇ  Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  ｉｎ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｙｓｔｅｍ”であり、第２の出願は、第１１／４７９，００９号“Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｔｏ  Ｄｙｎａｍｉｃａｌｌｙ  Ａｄｊｕｓｔ  Ｒｅｓｏｕｒｃｅ  Ｐｏｗｅｒ  Ｕｓａｇｅ  ｉｎ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｙｓｔｅｍ”である。
【００１２】
図１は、本発明の一実施例のデュアルプロセッサシステムのブロック図である。このようなデュアルプロセッサの実施例は、様々なプラットフォームにおいて行われるかもしれない。例えば、本実施例は、デスクトップコンピュータ、モバイルコンピュータ、サーバ、セットトップボックス、携帯情報端末（ＰＤＡ）、英数字ページャ、携帯電話又は他の何れかのタイプの無線通信装置として実現可能である。
【００１３】
本実施例では、２つの宛先（プロセッサ１０２と１０４）がソースに通信接続される。本例では、入出力ハブ（ＩＯＨ）１００がポイント・ツー・ポイントリンク１２４、１２８に接続される。一般に、“リンク”とは、メッセージ、すなわち、所定のフォーマットに従う情報の通信パスを確立する情報搬送媒体として定義される。リンクは、物理的な有線媒体（バス、１以上の電気配線、トレース、ケーブルなど）又は無線媒体（無線信号処理技術と組み合わされた無線など）であるかもしれない。
【００１４】
いくつかの実施例では、限定されるものでないが、ＰＣＩ、ＰＣＩＸ、ＰＣＩｅなどのポイント・ツー・ポイントリンクが利用可能である。プロセッサ１０２と１０４は、実質的に同一であり、それぞれメモリ１０６と１０８と通信するメモリコントローラ１１０と１１２を有するかもしれない。従って、本実施例の残りの記載は、プロセッサ１０２について説明される。しかしながら、この記載は、プロセッサ１０４などのシステムの他の宛先についても同様に適用される。さらに、いくつかのシステムはより多くの又はより少ない宛先をソースにより使用されるかもしれないことが想定される。
【００１５】
メモリコントローラ１１０に加えて、プロセッサ１０２は、ＩＯＨ１００などの特定のソースに割当て可能なリソース１１６と１１８を有する。説明のため、リソース１１６と１１８は共有されておらず、ＩＯＨ１００に一意的に割り当てられることが仮定される。いくつかの実施例では、例えば、リソース１１６はソースに一意的に割り当てられるレイヤリソースの一部を表すかもしれない。リソース１１６と１１８は、例えば、メモリアクセスに必要とされるバッファなどであるかもしれず、又は宛先におけるあるタイプの実行コンポーネントであるかもしれない。リソース１１６と１１８はさらに、セグメント１７２−１〜１７２−４と１７４−１〜１７４〜４（チャンクと呼ばれる）にそれぞれ細分化されるかもしれない。各セグメントは、リソースにより消費される電力がより大きな単位で可変となるように電力オン又はオフされるように、個別に電力管理可能であると規定される。
【００１６】
電力が管理される単位は、ＳＣＤＰＭ（Ｓｏｕｒｃｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｄｙｎａｍｉｃ  Ｐｏｗｅｒ）スキームの効率性と電力の節約に大きな影響を与えうる。多くのケースにおいて、選択肢がリソースを完全にオンするか又は完全にオフするかしかない場合、それはスキームの可能な効果にマイナスの影響を与えるであろう。例えば、リソースが周期的な大きな動作のバーストはあるが、ほぼ継続的に小さな程度で使用される場合、選択肢が完全にオンか完全にオフしかなければ、ほとんど又は全く電力の節約は不可能となる。いくつかの実施例では、すべてのセグメントが同じサイズであるか、又は同じ電力消費を有する必要はない。
【００１７】
実行コンポーネントリソースに関して、セグメント化の概念は物理的なものというよりは論理的なものであるかもしれない。例えば、実行コンポーネントは、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）、実行速度などの変化をもたらす動作可能ないくつかの電力レベルを有するかもしれない。ここでは、各セグメントは可能な異なる電力レベルを表している。
【００１８】
ＳＣＤＰＭの主要な前提条件は、リソース使用のソースが、当該リソースのうちのどの程度がリソースを所有する宛先より必要とされる可能性があるか知るため、より良好に配置されることである。ＩＯＨ１００は、リクエストがされた時点からデータが実際に出現した時点までのより多くの時間を許容するＩＯＨ装置の相対的に高い遅延特性、同時的なデータストリーミングデータ（ＤＭＡなど）の大きなデータ量、ＩＯＨにおける全用途キャッシュの欠落のため、ＳＣＤＰＭにおいて使用することが特に望ましい。
【００１９】
動作検出手段１５０が、図３に関連してさらに説明される。
【００２０】
例えば、動作検出手段１５０は、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）エクスプレスポート１３２−０〜１３２−Ｎ（１３２と総称される）から到来するリクエスト又はイベントをモニタする。ＰＣＩエクスプレスポート１３２から到来するリクエスト及びイベントは、リクエスト又はイベントのタイプと当該リクエスト又はイベントに係る宛先の識別子とに基づく以降の可能性のある利用の指標を動作検出手段に提供する。ＰＣＩエクスプレスポート１３２は、ＰＣＩエクスプレス装置１３０−０〜１３０−Ｎ（１３０と総称される）に接続される。ＰＣＩエクスプレス装置は、ハードディスク又は他の何れかのＰＣＩ装置を含むかもしれない。ここで使用される“装置”という用語は、リンクに接続された何れかの電気コンポーネントを表す。ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ１７０は、ＤＭＡトランザクションを可能にするためＩＯＨ１００に接続され、既存のブリッジ及び他の周辺装置をサポートする。ＤＭＡコントローラ１７０は、ＩＯＨ１００に割り込みを送信し、動作検出手段がこの割り込みをモニタし、ＰＣＩリクエストと同様に、ソースに接続された宛先における予想される以降のリソース利用を知る。
【００２１】
ＩＯＨ１００における出力リクエストバッファ１５２は、ＣＳＩバスを介し発行されたすべてのトランザクションを追跡する内部ロジックである。出力リクエストバッファ１５２をモニタすることによって、動作検出手段１５０は、例えば、大量のデータを読み書きするため、宛先がＩＯＨ１００にアクセスしようとする場合、以降のデータストリームを先行して知ることができる。ライトキャッシュ１５４は、宛先のメインメモリに移ることを待機している各種Ｉ／Ｏ装置から書き込まれたデータを含む。ライトバック（ＷＢ）中、リクエストは、データを宛先に送信するためキューされる。キューをモニタすることによって、動作検出手段１５０は、保留中のライトバックにより各宛先において生じるトラフィックを推測することができる。ライトバックキューのサイズとライトバックのレートは、動作検出手段１５０がライトバックキューをモニタすることから利用を予測することが可能なタイムウィンドウに影響を与える。
【００２２】
最後に、動作検出手段は、クレジットプール１５６をモニタするかもしれない。クレジットプール１５６は、主に宛先による現在の利用の指標を提供する。現在の利用は、必ずしも将来の利用の良好な先行指標とはならないが、現在の利用は使用されるリソースに対する１つの宛先での不適切な電力を示すかもしれない。この場合、動作検出手段は、緊急電力アップメッセージを当該宛先に送信するかもしれない。ＩＯＨ１００の多数のコンポーネントが以降の利用のヒントをモニタし、それを動作検出手段に提供するのに適しているとして説明されたが、他のコンポーネントもまた以降のリソースの利用を予測するのに動作検出手段の有用な情報を提供するかもしれないということは、本発明の実施例の範囲内である。
【００２３】
動作検出手段に大量の情報が利用可能であったとしても、動作検出手段は、利用予測がリソース競合を最小化するのに十分正確な時間となるように設計されるべきである。例えば、ＩＯＨ１００がデータストリームを宛先（プロセッサ１０２など）に書き込む準備をしている場合、動作検出手段１５０は、リクエストを検出し、決定をし、当該宛先が書き込まれたデータストリームの到来前にリソース電力を調整するのに間に合うように、電力アップコマンドを宛先に送信する必要がある。さらに、動作検出手段は、メッセージがポイント・ツー・ポイントリンクの帯域幅を消費するとき、電力管理メッセージによる宛先のフラッディングを回避すべきであり、電力調整を実行するとき宛先ロジックにおける遅延の増大を引き起こすかもしれない。
【００２４】
ここで図２を参照するに、本発明の一実施例によるマルチプロセッサ（ＭＰ）システム２００の一例となるブロック図が示される。同様に、ＭＰシステム２００は、デスクトップコンピュータ、モバイルコンピュータ、サーバ、セットトップボックス、携帯情報端末（ＰＤＡ）、英数字ページャ、携帯電話又は他の何れかのタイプの有線若しくは無線通信装置であるかもしれない。
【００２５】
ここで、本発明の一実施例によると、ＭＰシステム２００は複数のプロセッサ２１０Ａ〜２１０Ｄを有する。プロセッサ２１０Ａ〜２１０Ｄなどの１以上のプロセッサは、メモリコントローラ（ＭＣ）２２０Ａ〜２２０Ｄを有するかもしれない。これらのメモリコントローラ２２０Ａ〜２２０Ｄは、それぞれリンク２４０Ａ〜２４０Ｄを介し関連するメモリ２３０Ａ〜２３０Ｄとの直接的な通信を可能にする。特に図２に示されるように、プロセッサ２１０Ａは、リンク２４０Ａを介しメモリ２３０Ａに接続され、プロセッサ２１０Ｂ〜２１０Ｄは、それぞれリンク２４０Ｂ〜２４０Ｄを介し対応するメモリ２３０Ｂ〜２３０Ｄに接続される。一実施例では、プロセッサとＩＯＨは、図１を参照して上述されたものと実質的に同一である。
【００２６】
さらに、プロセッサ２１０Ａは、ポイント・ツー・ポイントリンク２５０、２５２及び２５４を介しその他のプロセッサ２１０Ｂ〜２１０Ｄのそれぞれに接続される。同様に、プロセッサ２１０Ｂは、ｐＴｐリンク２５０、２５６及び２６０を介しプロセッサ２１０Ａ、２１０Ｃ及び２１０Ｄに接続される。プロセッサＣは、ｐＴｐリンク２５２、２５６及び２６０を介しプロセッサ２１０Ａ、２１０Ｂ及び２１０Ｄに接続される。プロセッサ２１０Ｄは、ｐＴｐリンク２５４、２５８及び２６０を介しプロセッサ２１０Ａ、２１０Ｂ及び２１０Ｃに接続される。プロセッサ２１０Ａと２１０Ｂは、ポイント・ツー・ポイントリンク２７０と２７２を介し第１入出力ハブ（ＩＯＨ）２８０に接続され、プロセッサ２１０Ｃと２１０Ｄは、ポイント・ツーポイントリンク２７４と２７６を介し第２ＩＯＨ２８５に接続される。直接的なポイント・ツー・ポイント接続が存在しない場合には、プロセッサなどの介入する装置には、ＩＯＨ２８０などからプロセッサ２１０Ｃ及び２１０Ｄにコマンドをわたすための転送ロジックが設けられる。これは、ＩＯＨ２８０がＩＯＨ２８０に専用のプロセッサ２１０Ｃと２１０Ｄにおけるリソースの電力管理をすることを可能にする。
【００２７】
図３を参照するに、本発明の実施例による図１〜２のシステムの宛先装置とソース装置のアーキテクチャの実施例が示される。説明のため、プロセッサ２１０Ｄ（又はプロセッサ１５０）は、ホームエージェントなどの宛先装置３００として構成される。プロセッサ２１０Ａ〜２１０Ｃ（又はプロセッサ１１０）は、キャッシングエージェントなどのソース３１０Ａ〜３１０Ｃとして構成可能である。ＩＯＨ２８０又は２８５（又は図１のＩＯＨ１８０）は、キャッシングエージェントとして動作するライトキャッシュ３２０を実現するＩ／Ｏ装置３１０Ｄとして構成されるかもしれない。
【００２８】
後述されるように、各ソース３１０Ａ〜３１０Ｄは、宛先装置３００に維持され、所定数のトラッカーエントリを有するトラッカーに関連付けされる。トラッカーエントリの個数は、宛先３００と複数のソース（ソース３１０Ａ〜３１０Ｄなど）との間のポイント・ツー・ポイント通信をサポートするＣＳＩファブリック３１５の帯域幅を飽和させるソース３１０Ａ〜３１０Ｄにより送信可能なリクエストの個数にサイズが制限される。
【００２９】
図３に示されるように、本発明の当該実施例によると、宛先３００は、ホームロジック３２５と複数のトラッカー３３０１〜３３０Ｍ（Ｍ≧１）とを有するホームエージェントである。トラッカー３３０１〜３３０Ｍに関連して、ホームロジック３２５は、図２のメモリ２３０Ａからの入力される情報とＣＳＩファブリック３１５の出力情報のデータ伝送に供するスケジューラとして機能するよう構成される。さらに、ホームロジック３２５は、これらデータ伝送間のコンフリクトを解決するよう動作する。
【００３０】
ここで、本発明の当該実施例では、４つのキャッシングエージェント３１０Ａ〜３１０Ｄがシステム１００／２００の内部に実現され、４つの（Ｍ＝４）トラッカーが図示され、“ＨＴ−０”３３０Ａ、“ＨＴ−１”３３０Ｂ、“ＨＴ−２”３３０Ｃ及び“ＨＴ−３”３３０Ｄとラベル付けされる。これらのトラッカー３３０Ａ〜３３０Ｄのそれぞれは、Ｎ０、Ｎ１、Ｎ２及びＮ３トラッカーエントリを有する（ただし、Ｎｉ≧１（ｉ＝１，２，３，４）。エントリ（Ｎ０〜Ｎ３）の個数は、トラッカー毎に異なるかもしれない。データバッファ３４０Ａ〜３４０Ｄにより表される対応するデータバッファが、トラッカー３３０Ａ〜３３０Ｄの各エントリに関連付けされる。データバッファ３４０Ａ〜３４０Ｄは、メモリコントローラ２２０Ａから返されたデータの一時的なストレージを提供し、最終的には対象となる宛先への送信のためＣＳＩファブリック３１５上にスケジューリングされる。トラッカー３３０Ａ〜３３０Ｄのエントリのアクティブ化及び非アクティブ化は、後述されるホームロジック３２５により制御される。
【００３１】
キャッシングエージェント３１０Ａ、３１０Ｂ及び３１０Ｃはそれぞれ、ミスアドレスキュー３５０Ａ、３５０Ｂ及び３５０Ｃを有する。例えば、キャッシングエージェント３１０Ａに関して、ミスアドレスキュー３５０Ａは、ホームエージェント３００により処理されるミストランザクションのすべてを格納するよう構成される。
【００３２】
さらに、本発明の当該実施例によると、キャッシングエージェント３１０Ａ、３１０Ｂ及び３１０Ｃはさらに、それぞれクレジットカウンター３６０Ａ、３６０Ｂ及び３６０Ｃを有する。各クレジットカウンター３６０Ａ、３６０Ｂ及び３６０Ｃは、トラッカー３３０Ａ、３３０Ｂ及び３３０Ｃにおける未使用のトラッカーエントリの個数を表すカウント値を維持する。例えば、新たなトランザクションがキャッシングエージェント３１０Ａによりホームエージェント３００に発行されると、クレジットカウンター３６０Ａがデクリメントされる。トランザクションが完了した場合、クレジットカウンター３６０Ａはインクリメントされる。リセット時に、クレジットカウンター３６０Ａは、トラッカー３３０Ａに係るトラッカーエントリの個数に等しいプールサイズに初期化される。同じ構成が、クレジットカウンター３６０Ｂ〜３６０Ｃに適用可能である。
【００３３】
図３において、メモリから情報を読み込み、Ｉ／Ｏインタフェースに情報を書き込むＩ／Ｏエージェントとして動作するキャッシングエージェント３１０Ｄの一例が示される。あるいは、キャッシングエージェント３１０Ｄは、Ｉ／Ｏエージェントにより読み込まれたリターンをメインメモリへの書き込みとしてストリーミングするかもしれない。キャッシングエージェント３１０Ｄは、Ｉ／Ｏ処理に係るデータを格納しながら、高い帯域幅を維持するのに利用されるライトキャッシュ３２０を実現する。
【００３４】
キャッシングエージェント３１０Ａ〜３１０Ｃと同様に、キャッシングエージェント３１０Ｄは、トラッカー３３０Ｄ内の未使用のトラッカーエントリの個数を表すカウント値を維持するクレジットカウンター３６０Ｄを有する。リセット時、クレジットカウンター３６０Ｄは、トラッカー３３０Ｄに係るトラッカーエントリの個数に等しいプールサイズに初期化される。
【００３５】
トラッカーエントリ（Ｎ０、Ｎ１など）の個数は、バースト的なトラフィックシナリオを処理するよう設計され、このため、ピーク帯域幅を維持するためサイズ設定されている。すなわち、潜在的なバースト性と長い遅延は、ホームエージェント３００にキャッシングエージェント３１０Ａ〜３１０Ｄ（要求元エージェント）に悲観的なリソース量しか割り当てさせない。例えば、ホームエージェント３００からキャッシングエージェント３１０Ａにおいて、ピークデータ帯域幅が毎秒ＸＡギガバイト（ＧＢｐｓ）であり、キャッシングエージェント３１０Ａからホームエージェント３００への発行時からキャッシングエージェント３１０Ａへのリターンの完了時までのトランザクションの遅延がＬＡナノ秒（ｎｓ）である場合、各トラッカーエントリが６４バイトのサイズであると仮定すると、トラッカーのサイズ（Ｎ０）は（ＸＡ＊ＬＡ）／６４により与えられる。
【００３６】
典型的には、（Ｉ／Ｏ）キャッシングエージェント３１０Ｄからの遅延は、プロセッサキャッシングエージェント３１０Ａ〜３１０Ｃのものの約１．５倍である。これは、キャッシングエージェント３１０ＤのパイプラインがＩ／Ｏインタフェースロジックのより近くでスタートし、典型的には、Ｉ／Ｏ装置のクロック速度がプロセッサのものより５倍低速であるためである。テーブル１は、ＤＰシステムの潜在的な遅延、ピークデータ帯域幅及びトラッカーエントリの個数を示す。
【００３７】
【表１】
2009009577.tif 000003
【００３８】
典型的には、トラッカーエントリ（Ｎｉ）の個数は、２、４又は８の倍数として選択され、このため、トラッカーについて選択されるサイズはそれぞれ、２０、２８及び３６となるであろう。多数のトラッカーエントリとバッファは、かなりの電力使用量を必要とする可能性があり、このため、このようなアーキテクチャは最適でない。
【００３９】
次に、大部分の動作状態では、システム全体のトラフィックはかなりバースト的なものであり、長い期間にピーク帯域幅に留まることはない。割り当てられたトラッカーエントリがフルに使用されることはまれである。このため、電力利用は、動作状態に基づきアクティブなトラッカーエントリの個数を調整することによって最適化することが可能であり、この場合、キャッシングエージェント（ソース）は、メッセージ処理スキームを利用することによりホームエージェント（宛先）において要求されるリソースを動的に管理するよう駆動される。このメッセージ処理スキームは、後述されるようにＳＣＤＰＭ（Ｓｏｕｒｃｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｄｙｎａｍｉｃ  Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ）と呼ばれる。
【００４０】
図４は、本発明の一実施例のデュアルプロセッサ又はマルチプロセッサシステムにおいて使用されるコア動作検出手段のブロック図である。一実施例では、コア動作検出回路はキャッシングエージェントに常駐する。本実施例では、キャッシングエージェントは、複数のコアと共有キャッシュに接続される。例えば、各プロセッサは、複数のコアと、システムコヒーレンシ及びメモリサブシステムへのリクエストを処理する関連するキャッシングエージェントロジックと共有される大きなキャッシュとから構成される。図４において、ＰＡＤＡ（Ｐｒｏｃｅｓｓｏｒ  Ａｃｔｉｖｉｔｙ  Ｄｅｔｅｃｔｏｒ  Ｕｎｉｔ）は、有用な情報を取得するため、プロセッサにおける複数の機能ユニットと接続される。本例では、ＰＡＤＡブロックは、コア単位アーキテクチャイベントバス（各コアからＰＡＤＡへのトレース）、ミスアドレスキューからの使用指標（ホームエージェントリソースを消費する）、プロセッサの全体的な電力状態を制御するＰＣＵ（Ｐｒｏｃｅｓｓｏｒ  Ｐｏｗｅｒ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）と、ホーム及びコアからのクレジット使用指標とに接続される。これらの入力に基づき、ＰＡＤＡは、適切な電力調整のためホーム（宛先）エージェントと通信するＳＣＤＰＭインタフェースを利用して明示的なメッセージを生成する。一実施例では、ＳＣＤＰＭインタフェースは関連出願において説明されている。
【００４１】
以下のテーブルは、複数のアーキテクチャイベントカウンターを示す。一実施例では、１以上のプロセッサコアの動作はアプリケーションに固有のものである。本実施例では、以下のアーキテクチャイベントカウンターの一部又はすべてが、現在のコア状態を効果的に表し、電力状態を設定及び規定する動作検出手段により利用される。
【００４２】
【表２】
2009009577.tif 000004
【００４３】
一実施例では、アーキテクチャイベントカウンターが、バースト的な動作を予測するのに利用可能である。例えば、１つのコアは多数の分岐予測ミスを有するかもしれず、又は多数のページミスは次のメモリリクエストのストリームの良好な指標となりうる。また、キャプチャ可能なアプリケーション動作を理解するのに供され、アプリケーション動作に対する洞察を動作検出手段に提供すると知られている他のアーキテクチャイベントが存在する。例えば、ＬＬＣミスの大きなカウントは、ホームエージェントにより多くのリソースが必要であることを示唆する。テーブル１では、ホームエージェントリソースレベルは、複数のアーキテクチャイベントカウンターに少なくとも部分的に基づくことが示唆されている。しかしながら、本発明は、同じ個数のカウンターを利用する実施例に限定されない。例えば、これらのカウンターの一部はコア単位であり、パッケージ毎の判断は、累積的な結果を参照することにより可能である。当業者は、パッケージタイプ、コア数などに基づき異なるカウンターサブセットを利用することを想到するであろう。
【００４４】
ＰＡＤＡへの他の入力は、コアクレジット／リクエストキューの利用である。例えば、コアクレジット消費及びそれのリクエストキューの利用は、現在のコア動作を理解するのに利用可能である。例えば、１つの状況は、コアがキャッシングエージェントに少数のリクエストしか発行しないときである。このため、これは効率的な実行を示す。そうでない場合、各コアクレジットの大部分を利用するコアは、メモリリクエストの生成を示す。このため、ホームエージェントは、コアリクエストを維持するため電力アップされる必要がある。
【００４５】
ＰＡＤＡへの他の入力は、ホームクレジットプールである。例えば、ホームクレジットは、各キャッシングエージェントにより現在使用されているエントリの個数を示す。このため、これは、フリークレジットカウントが所定の時間内に一貫して大きなものである場合、宛先トラッカーエントリを電力ダウンする良好な指標となるかもしれない。
【００４６】
ＰＡＤＡへの他の入力は、ミスアドレスキューの利用である。例えば、ミスアドレスキューの利用は、コアが多数のキャッシュミスをしており、ホームエージェントにメモリリクエストを要求しているか否かの他の指標となる。一実施例では、ホームクレジットプールとミスアドレスキューの利用は共に、閾値機構がホームエージェントの適切な電力状態を決定するのに利用可能である。
【００４７】
ＰＡＤＡへの他の入力は、コアの電力状態である。一実施例では、ＰＣＵは、コアの電力状態をＰＡＤＡに送信する。コア毎の電力状態は、動作検出手段にとって有用な情報であるかもしれない。例えば、より高いＰ状態又はＣ状態にいるコアは、キャッシングエージェントに対する少数の又はゼロのリクエストを生成する。このため、ホームトラッカーエントリの利用可能性を決定又は予測することが可能となる。例えば、ターボモードにより選択されたコアは、より多くのリクエストが当該コアから到来することの良好な指標となる。コアがＣ状態にちょうど入った間は、コアがすぐには新たなリクエストを生成しないことを示す。さらに、すべてのコアがＣ状態に入った場合、当該キャッシングエージェントに係るホームトラッカーを電力ダウンするため、メッセージが送信可能であることは明らかである。
【００４８】
図５は、本発明の一実施例のソースロジックの方法のフローチャートである。このフローチャートでは、ＰＡＤＡロジックは、タイマーレベル毎にＮｔ個のレベルのレベルアップ又はダウンを実現する。一実施例では、Ｎｔのレベル数はユーザにより規定される。例えば、Ｎ０は、宛先ホームのすべてのリソースがすべてシャットダウンされた状態を表す。他方、Ｎｍａｘは、すべての宛先ホームリソースが電力アップされることを示唆している。このため、各タイマー間隔でのＰＡＤＡロジックは、Ｎｔレベルのレベルアップ又はダウンを示唆している。このとき、ＳＣＤＰＭは、このような情報を利用して、図５に示される示唆されたフローを用いてホームエージェントリソースを電力アップ／ダウンする。本実施例では、Ａｔは宛先における現在のアクティブなトラッカーレベルを示し、Ｃｔは宛先における現在のトラッカー利用を示す。
【００４９】
図６は、本発明の一実施例によるコア動作検出手段の決定木の方法のフローチャートである。一実施例では、本方法は、ＰＡＤＡアーキテクチャの決定木を示す。例えば、フローチャートは、プロセッサ動作検出手段により受信されるすべての情報のプライオリティスキームを示す。このため、それはホームエージェント（Ｎｔ）の適切なアクティブレベルを決定する。例えば、一実施例では、プロセッサパッケージの電力状態情報は、他のすべての情報に優先する。このため、プロセッサパッケージがＣ状態にある場合、ホームエージェントに向かうトラフィックはなくなるであろう。パッケージがアクティブ状態である場合、ＰＡＤＡは、より多くの又はより少ないコアが電力セーブモードに入ったか確認するため比較する。より多くのコアがＣ状態にあるということは、ホームリソースの利用が低下することを示唆している。最後に、キュー／クレジット利用及びアーキテクチャイベントが、宛先の動作レベルを調節するのに利用されることを示唆している。
【００５０】
本明細書を通じて、“一実施例”又は“実施例”という表現は、当該実施例に関連して説明された特定の機能、構成又は特徴が本発明の少なくとも１つの実施例に含まれていることが理解されるべきである。このため、本明細書の各部分における“実施例”、“一実施例”又は“他の実施例”という２以上の表現は、そのすべてが必ずしも同一の実施例を参照しているとは限らないことが強調及び認識されるべきである。さらに、特定の機能、構成又は特徴は、本発明の１以上の実施例において適切なものとして組み合わせられてもよい。
【００５１】
上記明細書では、本発明は特定の実施例を参照して説明された。しかしながら、添付された請求項に与えられる本発明の広範な趣旨及び範囲から逸脱することなく、それに対する各種改良及び変更が可能であることは明らかである。従って、明細書及び図面は限定的なものでなく例示的なものとみなれるべきである。
【図面の簡単な説明】
【００５２】
【図１】図１は、本発明の一実施例のデュアルプロセッサシステムのブロック図である。
【図２】図２は、本発明の一実施例のマルチプロセッサシステムのブロック図である。
【図３】図３は、本発明の実施例による図１〜２のシステムのホーム及びキャッシングエージェントのアーキテクチャの実施例である。
【図４】図４は、本発明の一実施例のデュアルプロセッサ又はマルチプロセッサシステムにおいて使用されるコア動作検出手段のブロック図である。
【図５】図５は、本発明の一実施例によるソースロジックの方法のフローチャートである。
【図６】図６は、本発明の一実施例によるコア動作検出手段の決定木の方法のフローチャートである。
【符号の説明】
【００５３】
１００  入出力ハブ（ＩＯＨ）
１０２，１０４  プロセッサ
１０６，１０８  メモリ
１１０，１１２  メモリコントローラ
１１６，１１８  リソース
１２４，１２８  ポイント・ツー・ポイントリンク
【図１】
2009009577.tif 000005
【図２】
2009009577.tif 000006
【図３】
2009009577.tif 000007
【図４】
2009009577.tif 000008
【図５】
2009009577.tif 000009
【図６】
2009009577.tif 000010