プラットフォーム電力状態をイネーブルする方法、装置、およびシステム
【課題】ハングアップの条件によるパケットおよび情報が失われたり抜け落ちたりすること、および/または、抜け落ちたパケットに起因したリンク層の制御ロジックの破壊を阻止する。
【解決手段】複数の層をサポートする入出力インタフェースの異なる層においてパケットを管理することに一部に基づいて効率的に電力状態の管理を促すことができる。一定の種類のパケットがリンク層のコントローラロジックに到達しないようにすることにより、リンクリセット条件の開始時にプラットフォーム電力状態を退出する際のパケットまたはデータの損失を防ぐことで、低電力プラットフォーム状態を促すことができる。
【解決手段】複数の層をサポートする入出力インタフェースの異なる層においてパケットを管理することに一部に基づいて効率的に電力状態の管理を促すことができる。一定の種類のパケットがリンク層のコントローラロジックに到達しないようにすることにより、リンクリセット条件の開始時にプラットフォーム電力状態を退出する際のパケットまたはデータの損失を防ぐことで、低電力プラットフォーム状態を促すことができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は電力管理分野に係り、一実施形態においては、層およびリンク層制御ロジックに関してパケットを管理する方法、装置、およびシステムに係る。
【背景技術】
【0002】
コンピューティングプラットフォームの電力消費を低減させることの重要性は益々高まってきており、プロセッサアーキテクチャおよび設計の趨勢は、全電力のゲーティングを利用可能とする方向に向かっている。
【0003】
電力ゲーティングは、利用中ではない回路ブロックを一時的に停止して、チップの全リーク電力を低減させる技術である。この一時的な停止時間も「停止電力モード」または「不活性モード」と称される場合がある。これとは対照的に、再度回路を動作に利用する必要のある場合には、「活性モード」に起動される。これら2つのモードは、適切なときに適切に最大電力性能にスイッチされ、性能に対する影響が最小限に抑えられる。従って電力ゲーティングの目的は、そのモードで不要なブロックに対してのみ選択的に一時的に電力供給を停止することで、リーク電力を最小限に抑えることである。
【0004】
電子デバイスが活性モード電力状態から低電力状態に移る際に、それぞれのデバイスの状態情報を保存することで、後に低電力状態から退出したときに適切な動作を確実に行うことができるようになる。不幸にして、オンダイメモリが必要な状態情報を格納する量を過剰に維持することはコスト面で不可能である。
【0005】
通常、高速インタフェースは、情報送信を行うために物理層およびリンク層を利用している。低電力状態からの退出をしやすくさせるための効率的な手段を実現する方法の1つに、高速インタフェースに関する層のリンクをリセットする方法がある。リンクリセットの主たる目的は、失敗したリンクを復元することである。しかしながらこの特徴によって、複数の層をサポートする入出力インタフェースの制御層(例えば、ハンドシェークおよびパラメータの交換の直前に行われるクリーンスレートを行う動作を開始するためのプロトコル、リンク、および物理層)を実現することができる。
【0006】
しかし場合によって、飛行中(in flight)のパケットおよび情報が抜け落ちるために、リンクリセットはリンク層の制御ロジックを破壊してしまうこともある。
【図面の簡単な説明】
【0007】
【図1】本発明の一実施形態におけるエージェントのブロック図である。
【図2】本発明の一実施形態で利用されるプロトコルアーキテクチャを示す。
【図3】請求されている主題に則り利用される物理インターコネクトのブロック図である。
【図4】請求されている主題に則り利用される電力状態の管理方法を示す。
【図5】請求されている主題に則り利用されるリンク層のブロック図である。
【図6】請求されている主題に則り利用されるタイミング図である。
【図7】請求されている主題に則り利用されるタイミング図である。
【図8】請求されている主題に則り利用されるタイミング図である。
【図9】請求されている主題に則り利用されるタイミング図である。
【図10】請求されている主題に則り利用されるタイミング図である。
【発明を実施するための形態】
【0008】
様々な実施形態において、図面の説明により、複数の層をサポートする入出力インタフェースの異なる層においてパケットを管理することに一部に基づいて効率的に電力状態の管理を促すことができる。1つの具体例は、ハングアップの条件によるパケットおよび情報が失われたり抜け落ちたりすること、および/または、抜け落ちたパケットに起因したリンク層の制御ロジックの破壊を阻止することができる実施形態である。実施形態のまた別の例としては、請求される主題により、一定の種類のパケットがリンク層のコントローラロジックに到達しないようにすることにより、リンクリセット条件の開始時にプラットフォーム電力状態を退出する際のパケットまたはデータの損失を防ぐことで、低電力プラットフォーム状態を促すことができる。
【0009】
まとめると、様々な実施形態において、エージェントが一定の種類のパケットがリンク層のコントローラロジックに到達しないようにするモードをサポートすることにより低プラットフォーム電力状態にすることができる。先ず、動作モードをイネーブルする。次いで、特定のリンクについてリンク低電力状態に入らせる。最後に、プロセッサコアおよびグルーロジックが低プラットフォーム電力状態に入る。
【0010】
「C状態」と称される電力状態がプロセッサコアレベルにおいて電力消費を管理することが公知である。C状態に加えて、請求されている主題においては、マルチコアデバイス両方と通信して両方のコアに対するグルーとして機能する共通ロジックが利用される。一実施形態では、共通ロジックをアンコア(uncore)と称することがある。しかしこれに限定はされない。システムインタフェースを両方のコアに対する共通ロジックとして利用することもできる。まとめると、コアおよびアンコアの両方が低電力状態を守り、プラットフォーム全体が低プラットフォーム電力状態となる。
【0011】
図1は、本発明の一実施形態におけるエージェントのブロック図である。本実施形態では、エージェント104は、集積入出力ブロックに連結されたプロセッサコアを含む。一実施形態では、エージェントはIntel リンフィールド(Lynnfield)製品(Intel(登録商標)Core(登録商標)i5-750、Core(登録商標)i7-860、およびCore(登録商標)i7-870プロセッサ、および、メモリコントローラハブ(MCH)または集積入出力ブロック(IIO)を同じパッケージに含むネハレムコアを有するXenon X3400プロセッサシリーズとしても知られている)であってよい。一実施形態では、コアは、Intel QuichPath Interconnect(QPI、またCSIとしても知られている)を介してIIOと通信する。
【0012】
しかし請求されている主題は、同じパッケージにプロセッサコアとしてMCH/IIOを含む製品に限定されるわけではない。さらに、プロセッサコアとIIOとの間のQPIインターコネクトに限定されるわけでもない。
【0013】
本実施形態ではエージェントは、直接媒体インタフェース(DMI)インターコネクトを介してプラットフォームコントローラハブ(106)に連結されていてよい。しかし請求されている主題は、DMIインターコネクトを介してPCHに連結されているエージェントに限定されるわけではない。
【0014】
また別の実施形態では、エージェントは、後述するように図2に関連して示すネットワーク構造で利用されてよい。
【0015】
図2は、一実施形態で利用されるプロトコルアーキテクチャを示す。アーキテクチャは、ネットワーク構造に連結された複数のエージェントを示している。一実施形態では、エージェントは全て、キャッシュプロセッサ202およびキャッシュ認識メモリコントローラ204であってよい。これに対してまた別の実施形態では、エージェントの幾つかがキャッシュエージェントである。
【0016】
例えばネットワーク構造は層構造のプロトコルスキームを遵守していてよく、物理層、リンク層、プロトコル層、ルーティング層、トランスポート層、およびプロトコル層のいずれかまたは全てを含んでよい。別の実施形態では、層構造のプロトコルスキームが、物理層、リンク層、ルーティング層、およびプロトコル層のみを含む。また別の実施形態では、層構造のプロトコルスキームが、物理層、リンク層、およびプロトコル層のみを含む。
【0017】
構造は、ポイントツーポイントネットワークについて、1つのプロトコル(ホームまたはキャッシュエージェント)から別のプロトコルへのメッセージのトランスポートを促す。一側面では、図面は、基盤となるネットワークのキャッシュコヒーレンスプロトコルの抽象的な視野を示している。
【0018】
図3は、請求されている主題に則り利用される物理インターコネクト装置のブロック図である。一実施形態では装置は、プロセッサ、チップセット、および/または、IOブリッジコンポーネントのキャッシュコヒーレント、且つ、リンクベースのインターコネクトスキームの物理層を示す。例えば物理インターコネクトは、集積デバイスの各物理層により実行されてよい。特に、物理層は、2つの一方向リンクを含む物理インターコネクトを介した2つのポート間の通信を提供する。具体的には、1つの一方向リンク304が、第1の集積デバイスの第1の送信ポート350から第2の集積デバイスの第1のレシーバポート350へ延びている。同様に、第2の一方向リンク306が、第2の集積デバイスの第1の送信ポート350から第1の集積デバイスの第1のレシーバポート350へ延びている。しかし、請求されている主題は2つの一方向リンクに限定はされない。当業者であれば、請求されている主題が一方向リンク等の任意の公知の信号技術をサポートすることを理解する。
【0019】
しかし、層構造のプロトコルスキームは例示されている層に限定はされない。これとは対照的な別の実施形態では、層構造のプロトコルスキームは、リンク層、物理層、プロトコル層、およびルーティング層のいずれかまたは全てを含んでよい。また別の実施形態では、層構造のプロトコルスキームは、リンク層、物理層、およびプロトコル層のみを含む。
【0020】
図4は、請求されている主題に則り利用される電力状態の管理方法を示す。本実施形態のフローチャートは、プラットフォーム電力状態を退出する際のパケットまたはデータの損失を防ぐ、電力状態の管理方法を示す。特定の実施形態では、電力状態の管理方法により、リンクリセット条件が開始されてプラットフォーム電力状態を退出する際のパケットまたはデータの損失が防がれる。また別の実施形態では、電力状態の管理方法により、一定の種類のパケットがリンク層のコントローラロジックに達しないようにすることで、リンクリセット条件が開始されてプラットフォーム電力状態を退出する際のパケットまたはデータの損失が防がれる。
【0021】
一実施形態では、一定の種類のパケットがリンク層のコントローラロジックに達しないようにすることで、破壊的な、またはハングアップの条件を生じる可能性もある。防止されるパケットの種類の例としては、これらに限定はされないが、損失した場合にプラットフォームを最終的にはハングアップさせる任意のパケットが挙げられる。例えば、送信エージェントまたは回路はそれが送信されたと思っても、それが実現されていなかったり、受信エージェントまたは回路がそれを受信しなかったりすることがある。特にQPI(QuickPath interconnect)を利用する一実施形態では、パケットの種類は、HOM、SNP、NDR、DRS、NCB、NCS、ICS、およびIDSという8つの仮想チャネルのいずれかに属していてよいプロトコル層パケットである。
【0022】
QPIを利用するまた別の実施形態では、一定の種類のパケットが、リンク層の観点から決定されてよく、これらパケットは、それぞれ8ビットのオペコードの上位ニブルにより識別される。従ってこれらパケットは、構造のプロトコル層が、処理を開始する際、または既存の処理に応答する際に利用される。
【0023】
しかし請求されている主題はQPI実装および/または仮想チャネルに限定はされない。当業者であれば、データおよびパケットの種類を定義することで、優先度、割り込み、タイミング、レイテンシー、信頼度等の他の要素に基づいてリンク層のコントローラロジックに達しないようにすることができることを理解する。
【0024】
決定ブロック402で、ハンドシェークが少なくとも2つのエージェント間に生じ、これらエージェントが低電力状態の動作モードをサポートしているかを判断し、一定の種類のパケットがリンク層のコントローラロジックに達しないようにすることができる。具体的にはエージェントは、要求された場合に、銘々の利用中の入出力リンクまたは構造の既存のリンクの初期化およびパラメータ交換プロトコルを利用して、自身にこのモードをサポートする機能があることを伝え、且つ、遠隔エージェントに対して、このモードを対応する制御層でサポートしてほしい旨の要求を伝える。このハンドシェークによる方法に基づき、デバイスはプラットフォームが低電力状態に入る能力を有すると判断し、一定の種類のパケットがリンク層のコントローラロジックに到達しないようにするモードのサポートを開始する。
【0025】
アクションブロック404において、エージェントは、低プラットフォーム電力状態に入った際に一定の種類のパケットがリンク層のコントローラロジックに到達しないようにする動作モードをイネーブルしている。一実施形態では、この低プラットフォーム電力状態へのエントリポイントは、バックプレッシャーをアサートするエージェントがプロトコルにおいてイニシエータ(マスタ)または応答者(スレーブ)であるかに応じて、リンク低電力状態へ入らせる要求の開始またはその許諾のいずれかである。
【0026】
まとめると一実施形態では、一定の種類のパケットがリンク層に到達しないようにする動作モードは、リンク低電力モードの前に生じる。本実施形態では、この動作モードは、バックプレッシャーと称される。さらにリンク低電力モードはプラットフォーム低電力モードの前に生じる。
【0027】
アクションブロック406では、あるエージェントが、リンク低電力状態から退出する際に動作モードをディセーブルしている。
【0028】
コンポーネント(1または複数)に対する電力復帰が行われた後で、遠隔エージェントに対してバックプレッシャーをイネーブルするよう要求したエージェント(1または複数)は、特定のパケットの送信またはリンクの初期化を開始せねばならない。バックプレッシャーがイネーブルされたエージェントは、リンクの初期化の開始を観測すると、あるいは、上述した特定のパケットを受信すると、解除する責任を負う。電力がこのプロセスで失われると、プラットフォームにおいてこの特定のエージェントにはバックプレッシャーという概念はなくなることが明白であるので、リンクの初期化の前にこれを自動的に解放する。エージェントがイネーブル時にバックプレッシャーを解除する他の場合には、リンク電力状態へのエントリに失敗したケース(マスターが要求を行ったがスレーブが許諾しない場合)、および、重要なパケット(QPI用語におけるリトライ可能なパケットを受信した場合等が含まれる。
【0029】
アクションブロック408では、エージェントは、オプションとして、一定のパケットがリンク層のコントローラロジックに到達しないようにする動作モードの例外的なケースに関する条件を管理することができる。例えばあるオプションの実施形態では、リンク低電力エントリが開始されたときの応答者(スレーブ)が、リンク低電力状態へのエントリについて許諾をした後でエラーパケットを受信した場合、バックプレッシャーがイネーブルされていれば、予期していた低電力状態へのエントリをアボートして、バックプレッシャーをそのまま保持し、構造に重要なパケットを送信しないように注意を促すことができる。高速I/Oコントローラの実装例における対応する仕様が示すように通信エラー復帰を処理する必要がある。バックプレッシャーがディセーブルされている場合には、このような問題は通常はスレーブエージェントが予期していたリンク低電力状態へのエントリをそのまま保持することで処理される。
【0030】
図5は、請求されている主題に則り利用されるリンク層のブロック図である。この図では、トランスミッタ部のブロック図が利用されている。前述したように、一定の種類のパケットがリンク層のコントローラ部に到達しないようにする動作モードが示されている。
【0031】
一実施形態では、ブロック502および504は、クレジットマネージャおよびアービターであり、クレジットを操作して送信ブロックのクレジットをゼロとしてパケット送信をさせないようにすることで、一定の種類のパケットがリンク層に到達しないようにする動作モードを促すリンク層のコントローラ回路を示している。一実施形態では、クレジットマネージャおよびアービターは、クレジットが利用可能ではない条件を示している。本実施形態では、プロトコル層メッセージを調停、構築、および送出するのにクレジットが必要である。従って、プロトコル層メッセージを調停、構築、および送出するためのクレジットを設けないことによりバックプレッシャーを実現している。本実施形態では、バックプレッシャーによって、プロトコル層メッセージがパケット構築回路506に到達しないようにすることができる。
【0032】
しかしながら請求されている主題は、クレジットの操作によりパケットの送信を阻止してバックプレッシャーを実現する、という前述した実施形態に限定はされない。他の実施形態では、パケットをプロトコルレベルのパケットに対する要求がきた時点で引き止めたり、ブロックしたりしてもよい。また別の実施形態では、パケットを、パッケージの送信前に引き止めたり、ブロックしたりすることもできる。また別の実施形態では、メモリ構造を利用して、パケット損失の際にはパケットを再生することもできる。例えばQPIに関する特定の実施形態では、リンクレベル・リトライ・キューを利用することができる。
【0033】
図6は、請求されている主題に則り利用されるタイミング図である。本実施形態では、マスタおよびスレーブエージェントが信号により通信する。まず、マスタが動作モードをサポートしている場合には、マスタが一定の種類のパケットがリンク層のコントローラロジック(BPとして示す)に到達しないようにする動作モードをアサートして、スレーブに対してリンク低電力状態に入るよう要求する。これに応えて、スレーブが動作モードをサポートしている場合には、スレーブが一定の種類のパケットがリンク層のコントローラロジック(BPとして示す)に到達しないようにする動作モードをアサートして、マスタに対してリンク低電力状態に関する許諾を送信する。
【0034】
図7は、請求されている主題に則り利用されるタイミング図である。図6と比較すると、この図では、スレーブは動作モードをサポートしておらず、スレーブが電力状態を拒絶している様子が示されている。
【0035】
図8は、請求されている主題に則り利用されるタイミング図である。このタイミング図は、両方のエージェントがリンク低電力状態を退出して、起動してリンクの初期化を開始し、最終的には通常動作を行う様子を示している。
【0036】
図9は、請求されている主題に則り利用されるタイミング図である。このタイミング図は、エージェント1のみがリンク低電力状態を退出して、起動してリンクの初期化を開始し、最終的には通常動作を行う様子を示している。
【0037】
図10は、請求されている主題に則り利用されるタイミング図である。このタイミング図は、どのエージェントも電力を失わない場合に、リンク低電力状態を退出して、起動してリンクの初期化を開始し、最終的には通常動作が行われている様子を示している。
【0038】
実施形態は、コードによる実装が可能であり、命令を実行させるようシステムをプログラミングするのに利用可能な命令を格納した格納媒体上に格納されてよい。格納媒体には、これらに限定はされないが、フロッピー(登録商標)ディスク、光ディスク、光ディスク、固体ドライブ(SSD)、コンパクトディスク−読み取り専用メモリ(CD−ROM)、書き換え可能CD(CD−RW)、および光磁気ディスク、読み取り専用メモリ(ROM)、動的RAM(DRAM)、静的RAM(SRAM)等のランダムアクセスメモリ(RAM)を含む半導体デバイス、消去可能PROM(EPROM)、フラッシュメモリ、電気的消去可能ROM(EEPROM)、磁気カードまたは光カード、その他の電子命令の格納に適した他の種類の媒体といった任意の種類のディスクが含まれてよい。
【0039】
本発明を限られた数の実施形態に関して説明してきたが、当業者には、これに基づき数多くの変形例および変更例が明らかである。請求項は、本発明の精神および範囲に含まれるこれらの全ての変形例および変更例をカバーすることを意図している。
【技術分野】
【0001】
本発明の実施形態は電力管理分野に係り、一実施形態においては、層およびリンク層制御ロジックに関してパケットを管理する方法、装置、およびシステムに係る。
【背景技術】
【0002】
コンピューティングプラットフォームの電力消費を低減させることの重要性は益々高まってきており、プロセッサアーキテクチャおよび設計の趨勢は、全電力のゲーティングを利用可能とする方向に向かっている。
【0003】
電力ゲーティングは、利用中ではない回路ブロックを一時的に停止して、チップの全リーク電力を低減させる技術である。この一時的な停止時間も「停止電力モード」または「不活性モード」と称される場合がある。これとは対照的に、再度回路を動作に利用する必要のある場合には、「活性モード」に起動される。これら2つのモードは、適切なときに適切に最大電力性能にスイッチされ、性能に対する影響が最小限に抑えられる。従って電力ゲーティングの目的は、そのモードで不要なブロックに対してのみ選択的に一時的に電力供給を停止することで、リーク電力を最小限に抑えることである。
【0004】
電子デバイスが活性モード電力状態から低電力状態に移る際に、それぞれのデバイスの状態情報を保存することで、後に低電力状態から退出したときに適切な動作を確実に行うことができるようになる。不幸にして、オンダイメモリが必要な状態情報を格納する量を過剰に維持することはコスト面で不可能である。
【0005】
通常、高速インタフェースは、情報送信を行うために物理層およびリンク層を利用している。低電力状態からの退出をしやすくさせるための効率的な手段を実現する方法の1つに、高速インタフェースに関する層のリンクをリセットする方法がある。リンクリセットの主たる目的は、失敗したリンクを復元することである。しかしながらこの特徴によって、複数の層をサポートする入出力インタフェースの制御層(例えば、ハンドシェークおよびパラメータの交換の直前に行われるクリーンスレートを行う動作を開始するためのプロトコル、リンク、および物理層)を実現することができる。
【0006】
しかし場合によって、飛行中(in flight)のパケットおよび情報が抜け落ちるために、リンクリセットはリンク層の制御ロジックを破壊してしまうこともある。
【図面の簡単な説明】
【0007】
【図1】本発明の一実施形態におけるエージェントのブロック図である。
【図2】本発明の一実施形態で利用されるプロトコルアーキテクチャを示す。
【図3】請求されている主題に則り利用される物理インターコネクトのブロック図である。
【図4】請求されている主題に則り利用される電力状態の管理方法を示す。
【図5】請求されている主題に則り利用されるリンク層のブロック図である。
【図6】請求されている主題に則り利用されるタイミング図である。
【図7】請求されている主題に則り利用されるタイミング図である。
【図8】請求されている主題に則り利用されるタイミング図である。
【図9】請求されている主題に則り利用されるタイミング図である。
【図10】請求されている主題に則り利用されるタイミング図である。
【発明を実施するための形態】
【0008】
様々な実施形態において、図面の説明により、複数の層をサポートする入出力インタフェースの異なる層においてパケットを管理することに一部に基づいて効率的に電力状態の管理を促すことができる。1つの具体例は、ハングアップの条件によるパケットおよび情報が失われたり抜け落ちたりすること、および/または、抜け落ちたパケットに起因したリンク層の制御ロジックの破壊を阻止することができる実施形態である。実施形態のまた別の例としては、請求される主題により、一定の種類のパケットがリンク層のコントローラロジックに到達しないようにすることにより、リンクリセット条件の開始時にプラットフォーム電力状態を退出する際のパケットまたはデータの損失を防ぐことで、低電力プラットフォーム状態を促すことができる。
【0009】
まとめると、様々な実施形態において、エージェントが一定の種類のパケットがリンク層のコントローラロジックに到達しないようにするモードをサポートすることにより低プラットフォーム電力状態にすることができる。先ず、動作モードをイネーブルする。次いで、特定のリンクについてリンク低電力状態に入らせる。最後に、プロセッサコアおよびグルーロジックが低プラットフォーム電力状態に入る。
【0010】
「C状態」と称される電力状態がプロセッサコアレベルにおいて電力消費を管理することが公知である。C状態に加えて、請求されている主題においては、マルチコアデバイス両方と通信して両方のコアに対するグルーとして機能する共通ロジックが利用される。一実施形態では、共通ロジックをアンコア(uncore)と称することがある。しかしこれに限定はされない。システムインタフェースを両方のコアに対する共通ロジックとして利用することもできる。まとめると、コアおよびアンコアの両方が低電力状態を守り、プラットフォーム全体が低プラットフォーム電力状態となる。
【0011】
図1は、本発明の一実施形態におけるエージェントのブロック図である。本実施形態では、エージェント104は、集積入出力ブロックに連結されたプロセッサコアを含む。一実施形態では、エージェントはIntel リンフィールド(Lynnfield)製品(Intel(登録商標)Core(登録商標)i5-750、Core(登録商標)i7-860、およびCore(登録商標)i7-870プロセッサ、および、メモリコントローラハブ(MCH)または集積入出力ブロック(IIO)を同じパッケージに含むネハレムコアを有するXenon X3400プロセッサシリーズとしても知られている)であってよい。一実施形態では、コアは、Intel QuichPath Interconnect(QPI、またCSIとしても知られている)を介してIIOと通信する。
【0012】
しかし請求されている主題は、同じパッケージにプロセッサコアとしてMCH/IIOを含む製品に限定されるわけではない。さらに、プロセッサコアとIIOとの間のQPIインターコネクトに限定されるわけでもない。
【0013】
本実施形態ではエージェントは、直接媒体インタフェース(DMI)インターコネクトを介してプラットフォームコントローラハブ(106)に連結されていてよい。しかし請求されている主題は、DMIインターコネクトを介してPCHに連結されているエージェントに限定されるわけではない。
【0014】
また別の実施形態では、エージェントは、後述するように図2に関連して示すネットワーク構造で利用されてよい。
【0015】
図2は、一実施形態で利用されるプロトコルアーキテクチャを示す。アーキテクチャは、ネットワーク構造に連結された複数のエージェントを示している。一実施形態では、エージェントは全て、キャッシュプロセッサ202およびキャッシュ認識メモリコントローラ204であってよい。これに対してまた別の実施形態では、エージェントの幾つかがキャッシュエージェントである。
【0016】
例えばネットワーク構造は層構造のプロトコルスキームを遵守していてよく、物理層、リンク層、プロトコル層、ルーティング層、トランスポート層、およびプロトコル層のいずれかまたは全てを含んでよい。別の実施形態では、層構造のプロトコルスキームが、物理層、リンク層、ルーティング層、およびプロトコル層のみを含む。また別の実施形態では、層構造のプロトコルスキームが、物理層、リンク層、およびプロトコル層のみを含む。
【0017】
構造は、ポイントツーポイントネットワークについて、1つのプロトコル(ホームまたはキャッシュエージェント)から別のプロトコルへのメッセージのトランスポートを促す。一側面では、図面は、基盤となるネットワークのキャッシュコヒーレンスプロトコルの抽象的な視野を示している。
【0018】
図3は、請求されている主題に則り利用される物理インターコネクト装置のブロック図である。一実施形態では装置は、プロセッサ、チップセット、および/または、IOブリッジコンポーネントのキャッシュコヒーレント、且つ、リンクベースのインターコネクトスキームの物理層を示す。例えば物理インターコネクトは、集積デバイスの各物理層により実行されてよい。特に、物理層は、2つの一方向リンクを含む物理インターコネクトを介した2つのポート間の通信を提供する。具体的には、1つの一方向リンク304が、第1の集積デバイスの第1の送信ポート350から第2の集積デバイスの第1のレシーバポート350へ延びている。同様に、第2の一方向リンク306が、第2の集積デバイスの第1の送信ポート350から第1の集積デバイスの第1のレシーバポート350へ延びている。しかし、請求されている主題は2つの一方向リンクに限定はされない。当業者であれば、請求されている主題が一方向リンク等の任意の公知の信号技術をサポートすることを理解する。
【0019】
しかし、層構造のプロトコルスキームは例示されている層に限定はされない。これとは対照的な別の実施形態では、層構造のプロトコルスキームは、リンク層、物理層、プロトコル層、およびルーティング層のいずれかまたは全てを含んでよい。また別の実施形態では、層構造のプロトコルスキームは、リンク層、物理層、およびプロトコル層のみを含む。
【0020】
図4は、請求されている主題に則り利用される電力状態の管理方法を示す。本実施形態のフローチャートは、プラットフォーム電力状態を退出する際のパケットまたはデータの損失を防ぐ、電力状態の管理方法を示す。特定の実施形態では、電力状態の管理方法により、リンクリセット条件が開始されてプラットフォーム電力状態を退出する際のパケットまたはデータの損失が防がれる。また別の実施形態では、電力状態の管理方法により、一定の種類のパケットがリンク層のコントローラロジックに達しないようにすることで、リンクリセット条件が開始されてプラットフォーム電力状態を退出する際のパケットまたはデータの損失が防がれる。
【0021】
一実施形態では、一定の種類のパケットがリンク層のコントローラロジックに達しないようにすることで、破壊的な、またはハングアップの条件を生じる可能性もある。防止されるパケットの種類の例としては、これらに限定はされないが、損失した場合にプラットフォームを最終的にはハングアップさせる任意のパケットが挙げられる。例えば、送信エージェントまたは回路はそれが送信されたと思っても、それが実現されていなかったり、受信エージェントまたは回路がそれを受信しなかったりすることがある。特にQPI(QuickPath interconnect)を利用する一実施形態では、パケットの種類は、HOM、SNP、NDR、DRS、NCB、NCS、ICS、およびIDSという8つの仮想チャネルのいずれかに属していてよいプロトコル層パケットである。
【0022】
QPIを利用するまた別の実施形態では、一定の種類のパケットが、リンク層の観点から決定されてよく、これらパケットは、それぞれ8ビットのオペコードの上位ニブルにより識別される。従ってこれらパケットは、構造のプロトコル層が、処理を開始する際、または既存の処理に応答する際に利用される。
【0023】
しかし請求されている主題はQPI実装および/または仮想チャネルに限定はされない。当業者であれば、データおよびパケットの種類を定義することで、優先度、割り込み、タイミング、レイテンシー、信頼度等の他の要素に基づいてリンク層のコントローラロジックに達しないようにすることができることを理解する。
【0024】
決定ブロック402で、ハンドシェークが少なくとも2つのエージェント間に生じ、これらエージェントが低電力状態の動作モードをサポートしているかを判断し、一定の種類のパケットがリンク層のコントローラロジックに達しないようにすることができる。具体的にはエージェントは、要求された場合に、銘々の利用中の入出力リンクまたは構造の既存のリンクの初期化およびパラメータ交換プロトコルを利用して、自身にこのモードをサポートする機能があることを伝え、且つ、遠隔エージェントに対して、このモードを対応する制御層でサポートしてほしい旨の要求を伝える。このハンドシェークによる方法に基づき、デバイスはプラットフォームが低電力状態に入る能力を有すると判断し、一定の種類のパケットがリンク層のコントローラロジックに到達しないようにするモードのサポートを開始する。
【0025】
アクションブロック404において、エージェントは、低プラットフォーム電力状態に入った際に一定の種類のパケットがリンク層のコントローラロジックに到達しないようにする動作モードをイネーブルしている。一実施形態では、この低プラットフォーム電力状態へのエントリポイントは、バックプレッシャーをアサートするエージェントがプロトコルにおいてイニシエータ(マスタ)または応答者(スレーブ)であるかに応じて、リンク低電力状態へ入らせる要求の開始またはその許諾のいずれかである。
【0026】
まとめると一実施形態では、一定の種類のパケットがリンク層に到達しないようにする動作モードは、リンク低電力モードの前に生じる。本実施形態では、この動作モードは、バックプレッシャーと称される。さらにリンク低電力モードはプラットフォーム低電力モードの前に生じる。
【0027】
アクションブロック406では、あるエージェントが、リンク低電力状態から退出する際に動作モードをディセーブルしている。
【0028】
コンポーネント(1または複数)に対する電力復帰が行われた後で、遠隔エージェントに対してバックプレッシャーをイネーブルするよう要求したエージェント(1または複数)は、特定のパケットの送信またはリンクの初期化を開始せねばならない。バックプレッシャーがイネーブルされたエージェントは、リンクの初期化の開始を観測すると、あるいは、上述した特定のパケットを受信すると、解除する責任を負う。電力がこのプロセスで失われると、プラットフォームにおいてこの特定のエージェントにはバックプレッシャーという概念はなくなることが明白であるので、リンクの初期化の前にこれを自動的に解放する。エージェントがイネーブル時にバックプレッシャーを解除する他の場合には、リンク電力状態へのエントリに失敗したケース(マスターが要求を行ったがスレーブが許諾しない場合)、および、重要なパケット(QPI用語におけるリトライ可能なパケットを受信した場合等が含まれる。
【0029】
アクションブロック408では、エージェントは、オプションとして、一定のパケットがリンク層のコントローラロジックに到達しないようにする動作モードの例外的なケースに関する条件を管理することができる。例えばあるオプションの実施形態では、リンク低電力エントリが開始されたときの応答者(スレーブ)が、リンク低電力状態へのエントリについて許諾をした後でエラーパケットを受信した場合、バックプレッシャーがイネーブルされていれば、予期していた低電力状態へのエントリをアボートして、バックプレッシャーをそのまま保持し、構造に重要なパケットを送信しないように注意を促すことができる。高速I/Oコントローラの実装例における対応する仕様が示すように通信エラー復帰を処理する必要がある。バックプレッシャーがディセーブルされている場合には、このような問題は通常はスレーブエージェントが予期していたリンク低電力状態へのエントリをそのまま保持することで処理される。
【0030】
図5は、請求されている主題に則り利用されるリンク層のブロック図である。この図では、トランスミッタ部のブロック図が利用されている。前述したように、一定の種類のパケットがリンク層のコントローラ部に到達しないようにする動作モードが示されている。
【0031】
一実施形態では、ブロック502および504は、クレジットマネージャおよびアービターであり、クレジットを操作して送信ブロックのクレジットをゼロとしてパケット送信をさせないようにすることで、一定の種類のパケットがリンク層に到達しないようにする動作モードを促すリンク層のコントローラ回路を示している。一実施形態では、クレジットマネージャおよびアービターは、クレジットが利用可能ではない条件を示している。本実施形態では、プロトコル層メッセージを調停、構築、および送出するのにクレジットが必要である。従って、プロトコル層メッセージを調停、構築、および送出するためのクレジットを設けないことによりバックプレッシャーを実現している。本実施形態では、バックプレッシャーによって、プロトコル層メッセージがパケット構築回路506に到達しないようにすることができる。
【0032】
しかしながら請求されている主題は、クレジットの操作によりパケットの送信を阻止してバックプレッシャーを実現する、という前述した実施形態に限定はされない。他の実施形態では、パケットをプロトコルレベルのパケットに対する要求がきた時点で引き止めたり、ブロックしたりしてもよい。また別の実施形態では、パケットを、パッケージの送信前に引き止めたり、ブロックしたりすることもできる。また別の実施形態では、メモリ構造を利用して、パケット損失の際にはパケットを再生することもできる。例えばQPIに関する特定の実施形態では、リンクレベル・リトライ・キューを利用することができる。
【0033】
図6は、請求されている主題に則り利用されるタイミング図である。本実施形態では、マスタおよびスレーブエージェントが信号により通信する。まず、マスタが動作モードをサポートしている場合には、マスタが一定の種類のパケットがリンク層のコントローラロジック(BPとして示す)に到達しないようにする動作モードをアサートして、スレーブに対してリンク低電力状態に入るよう要求する。これに応えて、スレーブが動作モードをサポートしている場合には、スレーブが一定の種類のパケットがリンク層のコントローラロジック(BPとして示す)に到達しないようにする動作モードをアサートして、マスタに対してリンク低電力状態に関する許諾を送信する。
【0034】
図7は、請求されている主題に則り利用されるタイミング図である。図6と比較すると、この図では、スレーブは動作モードをサポートしておらず、スレーブが電力状態を拒絶している様子が示されている。
【0035】
図8は、請求されている主題に則り利用されるタイミング図である。このタイミング図は、両方のエージェントがリンク低電力状態を退出して、起動してリンクの初期化を開始し、最終的には通常動作を行う様子を示している。
【0036】
図9は、請求されている主題に則り利用されるタイミング図である。このタイミング図は、エージェント1のみがリンク低電力状態を退出して、起動してリンクの初期化を開始し、最終的には通常動作を行う様子を示している。
【0037】
図10は、請求されている主題に則り利用されるタイミング図である。このタイミング図は、どのエージェントも電力を失わない場合に、リンク低電力状態を退出して、起動してリンクの初期化を開始し、最終的には通常動作が行われている様子を示している。
【0038】
実施形態は、コードによる実装が可能であり、命令を実行させるようシステムをプログラミングするのに利用可能な命令を格納した格納媒体上に格納されてよい。格納媒体には、これらに限定はされないが、フロッピー(登録商標)ディスク、光ディスク、光ディスク、固体ドライブ(SSD)、コンパクトディスク−読み取り専用メモリ(CD−ROM)、書き換え可能CD(CD−RW)、および光磁気ディスク、読み取り専用メモリ(ROM)、動的RAM(DRAM)、静的RAM(SRAM)等のランダムアクセスメモリ(RAM)を含む半導体デバイス、消去可能PROM(EPROM)、フラッシュメモリ、電気的消去可能ROM(EEPROM)、磁気カードまたは光カード、その他の電子命令の格納に適した他の種類の媒体といった任意の種類のディスクが含まれてよい。
【0039】
本発明を限られた数の実施形態に関して説明してきたが、当業者には、これに基づき数多くの変形例および変更例が明らかである。請求項は、本発明の精神および範囲に含まれるこれらの全ての変形例および変更例をカバーすることを意図している。
【特許請求の範囲】
【請求項1】
少なくとも第1のエージェントと第2のエージェントとの間のインタフェースを管理する方法であって、
少なくとも前記第1のエージェントと前記第2のエージェントとの間でハンドシェークを行い、前記第1のエージェントおよび前記第2のエージェントが一定の種類のパケットを阻止することができるか判断する段階と、
前記判断の結果が肯定的である場合、リンク低電力状態に入る前に前記一定の種類のパケットの阻止をイネーブルする段階と、
前記リンク低電力状態を退出すると前記一定の種類のパケットの阻止をディセーブルする段階と
を備える方法。
【請求項2】
前記インタフェースは、リンク層と物理層とをサポートしている請求項1に記載の方法。
【請求項3】
前記一定の種類のパケットがリンク層の制御回路に到達しないよう阻止することにより、破壊的な、またはハングアップの条件が生じる請求項1に記載の方法。
【請求項4】
リンク層の制御回路に到達しないよう阻止される前記一定の種類のパケットは、プロトコル層パケットである請求項1に記載の方法。
【請求項5】
リンク層の制御回路に到達しないよう阻止される前記一定の種類のパケットは、オペコードの上位ニブルにより特定される請求項1に記載の方法。
【請求項6】
第1のエージェントに対するインタフェースであって、
前記インタフェースの物理層と、
リンク層制御回路と
を備え、
前記物理層は、リンクを介して前記第1のエージェントに連結されている第2のエージェントにイネーブル信号を送信して、一定の種類のパケットがリンク層の制御回路に到達しないようにする動作モードに入らせリンク低電力状態へ入らせ、
前記リンク層制御回路は、一定の条件において前記動作モードをディセーブルして通常動作モードに入らせるインタフェース。
【請求項7】
前記一定の条件は、特定のパケットである請求項6に記載のインタフェース。
【請求項8】
前記一定の条件は、リンクの初期化である請求項6に記載のインタフェース。
【請求項9】
前記インタフェースは、リンク層と物理層とをサポートしている請求項6に記載のインタフェース。
【請求項10】
前記一定の種類のパケットがリンク層の制御回路に到達しないようにすることにより、破壊的な、またはハングアップの条件が生じる請求項6に記載のインタフェース。
【請求項11】
リンク層の制御回路に到達しないようにされる前記一定の種類のパケットは、プロトコル層パケットである請求項6に記載のインタフェース。
【請求項12】
リンク層の制御回路に到達しないようにされる前記一定の種類のパケットは、オペコードの上位ニブルにより特定される請求項6に記載のインタフェース。
【請求項13】
少なくとも第1のエージェントと第2のエージェントとの間のインタフェースを管理する方法であって、
少なくとも前記第1のエージェントと前記第2のエージェントとの間でハンドシェークを行い、前記第1のエージェントおよび前記第2のエージェントが、一定の種類のパケットがリンク層の制御回路に到達しないようにする動作モードをサポートすることができるか判断する段階と、
前記判断の結果が肯定的である場合、リンク低電力状態に入る前に前記動作モードをイネーブルする段階と、
前記リンク低電力状態に入った後でプラットフォーム低電力状態に入る段階と、
前記リンク低電力状態を退出すると前記動作モードをディセーブルする段階と
を備える方法。
【請求項14】
前記インタフェースは、リンク層と物理層とをサポートしている請求項13に記載の方法。
【請求項15】
前記一定の種類のパケットがリンク層の制御回路に到達しないようにすることにより、破壊的な、またはハングアップの条件が生じる請求項13に記載の方法。
【請求項16】
リンク層の制御回路に到達しないようにされる前記一定の種類のパケットは、プロトコル層パケットである請求項13に記載の方法。
【請求項17】
リンク層の制御回路に到達しないようにされる前記一定の種類のパケットは、オペコードの上位ニブルにより特定される請求項13に記載の方法。
【請求項18】
リンク低電力状態を実現するための第1のエージェントに対するインタフェースであって、
クレジットを操作して一定の種類のパケットの送信を阻止するクレジットマネージャ回路と、
リンクを介して前記第1のエージェントに連結されている第2のエージェントにイネーブル信号を送信して、一定の種類のパケットを阻止する動作モードに入らせリンク低電力状態へ入らせる、前記インタフェースの物理層と、
一定の条件において前記動作モードをディセーブルして通常動作モードに入らせるリンク層制御回路と
を備えるインタフェース。
【請求項19】
前記一定の条件は、リンクの初期化である請求項18に記載のインタフェース。
【請求項20】
少なくとも第1のエージェントと第2のエージェントとの間のインタフェースを管理する方法であって、
前記第1のエージェントおよび前記第2のエージェントが、メモリ構造に格納されている一定の種類のパケットを再生する動作モードをサポートすることができるか判断する段階と、
前記判断の結果が肯定的である場合、リンク低電力状態に入る前に前記動作モードをイネーブルする段階と、
前記リンク低電力状態に入った後でプラットフォーム低電力状態に入る段階と、
前記リンク低電力状態を退出すると前記動作モードをディセーブルする段階と
を備える方法。
【請求項21】
前記インタフェースは、リンク層と物理層とをサポートしている請求項20に記載の方法。
【請求項1】
少なくとも第1のエージェントと第2のエージェントとの間のインタフェースを管理する方法であって、
少なくとも前記第1のエージェントと前記第2のエージェントとの間でハンドシェークを行い、前記第1のエージェントおよび前記第2のエージェントが一定の種類のパケットを阻止することができるか判断する段階と、
前記判断の結果が肯定的である場合、リンク低電力状態に入る前に前記一定の種類のパケットの阻止をイネーブルする段階と、
前記リンク低電力状態を退出すると前記一定の種類のパケットの阻止をディセーブルする段階と
を備える方法。
【請求項2】
前記インタフェースは、リンク層と物理層とをサポートしている請求項1に記載の方法。
【請求項3】
前記一定の種類のパケットがリンク層の制御回路に到達しないよう阻止することにより、破壊的な、またはハングアップの条件が生じる請求項1に記載の方法。
【請求項4】
リンク層の制御回路に到達しないよう阻止される前記一定の種類のパケットは、プロトコル層パケットである請求項1に記載の方法。
【請求項5】
リンク層の制御回路に到達しないよう阻止される前記一定の種類のパケットは、オペコードの上位ニブルにより特定される請求項1に記載の方法。
【請求項6】
第1のエージェントに対するインタフェースであって、
前記インタフェースの物理層と、
リンク層制御回路と
を備え、
前記物理層は、リンクを介して前記第1のエージェントに連結されている第2のエージェントにイネーブル信号を送信して、一定の種類のパケットがリンク層の制御回路に到達しないようにする動作モードに入らせリンク低電力状態へ入らせ、
前記リンク層制御回路は、一定の条件において前記動作モードをディセーブルして通常動作モードに入らせるインタフェース。
【請求項7】
前記一定の条件は、特定のパケットである請求項6に記載のインタフェース。
【請求項8】
前記一定の条件は、リンクの初期化である請求項6に記載のインタフェース。
【請求項9】
前記インタフェースは、リンク層と物理層とをサポートしている請求項6に記載のインタフェース。
【請求項10】
前記一定の種類のパケットがリンク層の制御回路に到達しないようにすることにより、破壊的な、またはハングアップの条件が生じる請求項6に記載のインタフェース。
【請求項11】
リンク層の制御回路に到達しないようにされる前記一定の種類のパケットは、プロトコル層パケットである請求項6に記載のインタフェース。
【請求項12】
リンク層の制御回路に到達しないようにされる前記一定の種類のパケットは、オペコードの上位ニブルにより特定される請求項6に記載のインタフェース。
【請求項13】
少なくとも第1のエージェントと第2のエージェントとの間のインタフェースを管理する方法であって、
少なくとも前記第1のエージェントと前記第2のエージェントとの間でハンドシェークを行い、前記第1のエージェントおよび前記第2のエージェントが、一定の種類のパケットがリンク層の制御回路に到達しないようにする動作モードをサポートすることができるか判断する段階と、
前記判断の結果が肯定的である場合、リンク低電力状態に入る前に前記動作モードをイネーブルする段階と、
前記リンク低電力状態に入った後でプラットフォーム低電力状態に入る段階と、
前記リンク低電力状態を退出すると前記動作モードをディセーブルする段階と
を備える方法。
【請求項14】
前記インタフェースは、リンク層と物理層とをサポートしている請求項13に記載の方法。
【請求項15】
前記一定の種類のパケットがリンク層の制御回路に到達しないようにすることにより、破壊的な、またはハングアップの条件が生じる請求項13に記載の方法。
【請求項16】
リンク層の制御回路に到達しないようにされる前記一定の種類のパケットは、プロトコル層パケットである請求項13に記載の方法。
【請求項17】
リンク層の制御回路に到達しないようにされる前記一定の種類のパケットは、オペコードの上位ニブルにより特定される請求項13に記載の方法。
【請求項18】
リンク低電力状態を実現するための第1のエージェントに対するインタフェースであって、
クレジットを操作して一定の種類のパケットの送信を阻止するクレジットマネージャ回路と、
リンクを介して前記第1のエージェントに連結されている第2のエージェントにイネーブル信号を送信して、一定の種類のパケットを阻止する動作モードに入らせリンク低電力状態へ入らせる、前記インタフェースの物理層と、
一定の条件において前記動作モードをディセーブルして通常動作モードに入らせるリンク層制御回路と
を備えるインタフェース。
【請求項19】
前記一定の条件は、リンクの初期化である請求項18に記載のインタフェース。
【請求項20】
少なくとも第1のエージェントと第2のエージェントとの間のインタフェースを管理する方法であって、
前記第1のエージェントおよび前記第2のエージェントが、メモリ構造に格納されている一定の種類のパケットを再生する動作モードをサポートすることができるか判断する段階と、
前記判断の結果が肯定的である場合、リンク低電力状態に入る前に前記動作モードをイネーブルする段階と、
前記リンク低電力状態に入った後でプラットフォーム低電力状態に入る段階と、
前記リンク低電力状態を退出すると前記動作モードをディセーブルする段階と
を備える方法。
【請求項21】
前記インタフェースは、リンク層と物理層とをサポートしている請求項20に記載の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2011−254455(P2011−254455A)
【公開日】平成23年12月15日(2011.12.15)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−82525(P2011−82525)
【出願日】平成23年4月4日(2011.4.4)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】
【公開日】平成23年12月15日(2011.12.15)
【国際特許分類】
【出願番号】特願2011−82525(P2011−82525)
【出願日】平成23年4月4日(2011.4.4)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】
[ Back to top ]