(57)【特許請求の範囲】
【請求項１】
少なくとも第１のエージェントと第２のエージェントとの間のインタフェースを管理する方法であって、
少なくとも前記第１のエージェントと前記第２のエージェントとの間でハンドシェークを行い、前記第１のエージェントおよび前記第２のエージェントが一定の種類のパケットを阻止することができると判断する段階と、
リンク低電力状態に入る前に前記一定の種類のリンク層の制御回路へのパケットの阻止をイネーブルする段階と、
前記リンク低電力状態を退出すると前記一定の種類の前記リンク層の制御回路へのパケットの阻止をディセーブルする段階とを備え、
前記リンク層の制御回路に到達しないよう阻止される前記一定の種類のパケットは、オペコードの上位ニブルにより特定される、
方法。
【請求項２】
前記インタフェースは、リンク層と物理層とをサポートしている請求項１に記載の方法。
【請求項３】
前記一定の種類のパケットが前記リンク層の制御回路に到達しないよう阻止することにより、破壊的な、またはハングアップの条件が生じる請求項１又は２に記載の方法。
【請求項４】
前記リンク層の制御回路に到達しないよう阻止される前記一定の種類のパケットは、プロトコル層パケットである請求項１から３のいずれか１項に記載の方法。
【請求項５】
第１のエージェントに対するインタフェースであって、
前記インタフェースの物理層と、
リンク層制御回路と
を備え、
前記物理層は、リンクを介して前記第１のエージェントに連結されている第２のエージェントにイネーブル信号を送信して、一定の種類のパケットがリンク層の制御回路に到達しないようにする動作モードに入らせリンク低電力状態へ入らせ、
前記リンク層制御回路は、一定の条件において前記動作モードをディセーブルして通常動作モードに入らせ、
前記リンク層の制御回路に到達しないようにされる前記一定の種類のパケットは、オペコードの上位ニブルにより特定される、
インタフェース。
【請求項６】
前記一定の条件は、特定のパケットである請求項５に記載のインタフェース。
【請求項７】
前記一定の条件は、リンクの初期化である請求項５又は６に記載のインタフェース。
【請求項８】
前記インタフェースは、リンク層と物理層とをサポートしている請求項５から７のいずれか１項に記載のインタフェース。
【請求項９】
前記一定の種類のパケットが前記リンク層の制御回路に到達しないようにすることにより、破壊的な、またはハングアップの条件が生じる請求項５から８のいずれか１項に記載のインタフェース。
【請求項１０】
前記リンク層の制御回路に到達しないようにされる前記一定の種類のパケットは、プロトコル層パケットである請求項５から９のいずれか１項に記載のインタフェース。
【請求項１１】
少なくとも第１のエージェントと第２のエージェントとの間のインタフェースを管理する方法であって、
少なくとも前記第１のエージェントと前記第２のエージェントとの間でハンドシェークを行い、前記第１のエージェントおよび前記第２のエージェントが、一定の種類のパケットがリンク層の制御回路に到達しないようにする動作モードをサポートすると判断する段階と、
リンク低電力状態に入る前に前記動作モードをイネーブルする段階と、
前記リンク低電力状態に入った後でプラットフォーム低電力状態に入る段階と、
前記リンク低電力状態を退出すると前記動作モードをディセーブルする段階と
を備え、
前記リンク層の制御回路に到達しないようにされる前記一定の種類のパケットは、オペコードの上位ニブルにより特定される、
方法。
【請求項１２】
前記インタフェースは、リンク層と物理層とをサポートしている請求項１１に記載の方法。
【請求項１３】
前記一定の種類のパケットが前記リンク層の制御回路に到達しないようにすることにより、破壊的な、またはハングアップの条件が生じる請求項１１又は１２に記載の方法。
【請求項１４】
前記リンク層の制御回路に到達しないようにされる前記一定の種類のパケットは、プロトコル層パケットである請求項１１から１３のいずれか１項に記載の方法。
【請求項１５】
リンク低電力状態を実現するための第１のエージェントに対するインタフェースであって、
プロトコル層メッセージを送出するのに必要なクレジットを操作してオペコードの上位ニブルにより特定される一定の種類のパケットの送信を阻止するクレジットマネージャ回路と、
リンクを介して前記第１のエージェントに連結されている第２のエージェントにイネーブル信号を送信して、一定の種類のパケットを阻止する動作モードに入らせリンク低電力状態へ入らせる、前記インタフェースの物理層と、
一定の条件において前記動作モードをディセーブルして通常動作モードに入らせるリンク層制御回路と
を備えるインタフェース。
【請求項１６】
前記一定の条件は、リンクの初期化である請求項１５に記載のインタフェース。
【請求項１７】
少なくとも第１のエージェントと第２のエージェントとの間のインタフェースを管理する方法であって、
前記第１のエージェントおよび前記第２のエージェントが、メモリ構造に格納されているオペコードの上位ニブルにより特定される一定の種類のパケットを再生する動作モードをサポートするか判断する段階と、
リンク低電力状態に入る前に前記動作モードをイネーブルする段階と、
前記リンク低電力状態に入った後でプラットフォーム低電力状態に入る段階と、
前記リンク低電力状態を退出すると前記動作モードをディセーブルする段階と
を備える方法。
【請求項１８】
前記インタフェースは、リンク層と物理層とをサポートしている請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は電力管理分野に係り、一実施形態においては、層およびリンク層制御ロジックに関してパケットを管理する方法、装置、およびシステムに係る。
【背景技術】
【０００２】
コンピューティングプラットフォームの電力消費を低減させることの重要性は益々高まってきており、プロセッサアーキテクチャおよび設計の趨勢は、全電力のゲーティングを利用可能とする方向に向かっている。
【０００３】
電力ゲーティングは、利用中ではない回路ブロックを一時的に停止して、チップの全リーク電力を低減させる技術である。この一時的な停止時間も「停止電力モード」または「不活性モード」と称される場合がある。これとは対照的に、再度回路を動作に利用する必要のある場合には、「活性モード」に起動される。これら２つのモードは、適切なときに適切に最大電力性能にスイッチされ、性能に対する影響が最小限に抑えられる。従って電力ゲーティングの目的は、そのモードで不要なブロックに対してのみ選択的に一時的に電力供給を停止することで、リーク電力を最小限に抑えることである。
【０００４】
電子デバイスが活性モード電力状態から低電力状態に移る際に、それぞれのデバイスの状態情報を保存することで、後に低電力状態から退出したときに適切な動作を確実に行うことができるようになる。不幸にして、オンダイメモリが必要な状態情報を格納する量を過剰に維持することはコスト面で不可能である。
【０００５】
通常、高速インタフェースは、情報送信を行うために物理層およびリンク層を利用している。低電力状態からの退出をしやすくさせるための効率的な手段を実現する方法の１つに、高速インタフェースに関する層のリンクをリセットする方法がある。リンクリセットの主たる目的は、失敗したリンクを復元することである。しかしながらこの特徴によって、複数の層をサポートする入出力インタフェースの制御層（例えば、ハンドシェークおよびパラメータの交換の直前に行われるクリーンスレートを行う動作を開始するためのプロトコル、リンク、および物理層）を実現することができる。
【０００６】
しかし場合によって、飛行中（in flight）のパケットおよび情報が抜け落ちるために、リンクリセットはリンク層の制御ロジックを破壊してしまうこともある。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態におけるエージェントのブロック図である。
【図２】本発明の一実施形態で利用されるプロトコルアーキテクチャを示す。
【図３】請求されている主題に則り利用される物理インターコネクトのブロック図である。
【図４】請求されている主題に則り利用される電力状態の管理方法を示す。
【図５】請求されている主題に則り利用されるリンク層のブロック図である。
【図６】請求されている主題に則り利用されるタイミング図である。
【図７】請求されている主題に則り利用されるタイミング図である。
【図８】請求されている主題に則り利用されるタイミング図である。
【図９】請求されている主題に則り利用されるタイミング図である。
【図１０】請求されている主題に則り利用されるタイミング図である。
【発明を実施するための形態】
【０００８】
様々な実施形態において、図面の説明により、複数の層をサポートする入出力インタフェースの異なる層においてパケットを管理することに一部に基づいて効率的に電力状態の管理を促すことができる。１つの具体例は、ハングアップの条件によるパケットおよび情報が失われたり抜け落ちたりすること、および／または、抜け落ちたパケットに起因したリンク層の制御ロジックの破壊を阻止することができる実施形態である。実施形態のまた別の例としては、請求される主題により、一定の種類のパケットがリンク層のコントローラロジックに到達しないようにすることにより、リンクリセット条件の開始時にプラットフォーム電力状態を退出する際のパケットまたはデータの損失を防ぐことで、低電力プラットフォーム状態を促すことができる。
【０００９】
まとめると、様々な実施形態において、エージェントが一定の種類のパケットがリンク層のコントローラロジックに到達しないようにするモードをサポートすることにより低プラットフォーム電力状態にすることができる。先ず、動作モードをイネーブルする。次いで、特定のリンクについてリンク低電力状態に入らせる。最後に、プロセッサコアおよびグルーロジックが低プラットフォーム電力状態に入る。
【００１０】
「Ｃ状態」と称される電力状態がプロセッサコアレベルにおいて電力消費を管理することが公知である。Ｃ状態に加えて、請求されている主題においては、マルチコアデバイス両方と通信して両方のコアに対するグルーとして機能する共通ロジックが利用される。一実施形態では、共通ロジックをアンコア（uncore）と称することがある。しかしこれに限定はされない。システムインタフェースを両方のコアに対する共通ロジックとして利用することもできる。まとめると、コアおよびアンコアの両方が低電力状態を守り、プラットフォーム全体が低プラットフォーム電力状態となる。
【００１１】
図１は、本発明の一実施形態におけるエージェントのブロック図である。本実施形態では、エージェント１０４は、集積入出力ブロックに連結されたプロセッサコアを含む。一実施形態では、エージェントはIntel リンフィールド（Lynnfield）製品（Intel（登録商標）Core（登録商標）i5-750、Core（登録商標）i7-860、およびCore（登録商標）i7-870プロセッサ、および、メモリコントローラハブ（ＭＣＨ）または集積入出力ブロック（ＩＩＯ）を同じパッケージに含むネハレムコアを有するXenon X3400プロセッサシリーズとしても知られている）であってよい。一実施形態では、コアは、Intel QuichPath Interconnect（ＱＰＩ、またＣＳＩとしても知られている）を介してＩＩＯと通信する。
【００１２】
しかし請求されている主題は、同じパッケージにプロセッサコアとしてＭＣＨ／ＩＩＯを含む製品に限定されるわけではない。さらに、プロセッサコアとＩＩＯとの間のＱＰＩインターコネクトに限定されるわけでもない。
【００１３】
本実施形態ではエージェントは、直接媒体インタフェース（ＤＭＩ）インターコネクトを介してプラットフォームコントローラハブ（１０６）に連結されていてよい。しかし請求されている主題は、ＤＭＩインターコネクトを介してＰＣＨに連結されているエージェントに限定されるわけではない。
【００１４】
また別の実施形態では、エージェントは、後述するように図２に関連して示すネットワーク構造で利用されてよい。
【００１５】
図２は、一実施形態で利用されるプロトコルアーキテクチャを示す。アーキテクチャは、ネットワーク構造に連結された複数のエージェントを示している。一実施形態では、エージェントは全て、キャッシュプロセッサ２０２およびキャッシュ認識メモリコントローラ２０４であってよい。これに対してまた別の実施形態では、エージェントの幾つかがキャッシュエージェントである。
【００１６】
例えばネットワーク構造は層構造のプロトコルスキームを遵守していてよく、物理層、リンク層、プロトコル層、ルーティング層、トランスポート層、およびプロトコル層のいずれかまたは全てを含んでよい。別の実施形態では、層構造のプロトコルスキームが、物理層、リンク層、ルーティング層、およびプロトコル層のみを含む。また別の実施形態では、層構造のプロトコルスキームが、物理層、リンク層、およびプロトコル層のみを含む。
【００１７】
構造は、ポイントツーポイントネットワークについて、１つのプロトコル（ホームまたはキャッシュエージェント）から別のプロトコルへのメッセージのトランスポートを促す。一側面では、図面は、基盤となるネットワークのキャッシュコヒーレンスプロトコルの抽象的な視野を示している。
【００１８】
図３は、請求されている主題に則り利用される物理インターコネクト装置のブロック図である。一実施形態では装置は、プロセッサ、チップセット、および／または、ＩＯブリッジコンポーネントのキャッシュコヒーレント、且つ、リンクベースのインターコネクトスキームの物理層を示す。例えば物理インターコネクトは、集積デバイスの各物理層により実行されてよい。特に、物理層は、２つの一方向リンクを含む物理インターコネクトを介した２つのポート間の通信を提供する。具体的には、１つの一方向リンク３０４が、第１の集積デバイスの第１の送信ポート３５０から第２の集積デバイスの第１のレシーバポート３５０へ延びている。同様に、第２の一方向リンク３０６が、第２の集積デバイスの第１の送信ポート３５０から第１の集積デバイスの第１のレシーバポート３５０へ延びている。しかし、請求されている主題は２つの一方向リンクに限定はされない。当業者であれば、請求されている主題が一方向リンク等の任意の公知の信号技術をサポートすることを理解する。
【００１９】
しかし、層構造のプロトコルスキームは例示されている層に限定はされない。これとは対照的な別の実施形態では、層構造のプロトコルスキームは、リンク層、物理層、プロトコル層、およびルーティング層のいずれかまたは全てを含んでよい。また別の実施形態では、層構造のプロトコルスキームは、リンク層、物理層、およびプロトコル層のみを含む。
【００２０】
図４は、請求されている主題に則り利用される電力状態の管理方法を示す。本実施形態のフローチャートは、プラットフォーム電力状態を退出する際のパケットまたはデータの損失を防ぐ、電力状態の管理方法を示す。特定の実施形態では、電力状態の管理方法により、リンクリセット条件が開始されてプラットフォーム電力状態を退出する際のパケットまたはデータの損失が防がれる。また別の実施形態では、電力状態の管理方法により、一定の種類のパケットがリンク層のコントローラロジックに達しないようにすることで、リンクリセット条件が開始されてプラットフォーム電力状態を退出する際のパケットまたはデータの損失が防がれる。
【００２１】
一実施形態では、一定の種類のパケットがリンク層のコントローラロジックに達しないようにすることで、破壊的な、またはハングアップの条件を生じる可能性もある。防止されるパケットの種類の例としては、これらに限定はされないが、損失した場合にプラットフォームを最終的にはハングアップさせる任意のパケットが挙げられる。例えば、送信エージェントまたは回路はそれが送信されたと思っても、それが実現されていなかったり、受信エージェントまたは回路がそれを受信しなかったりすることがある。特にＱＰＩ（QuickPath  interconnect）を利用する一実施形態では、パケットの種類は、ＨＯＭ、ＳＮＰ、ＮＤＲ、ＤＲＳ、ＮＣＢ、ＮＣＳ、ＩＣＳ、およびＩＤＳという８つの仮想チャネルのいずれかに属していてよいプロトコル層パケットである。
【００２２】
ＱＰＩを利用するまた別の実施形態では、一定の種類のパケットが、リンク層の観点から決定されてよく、これらパケットは、それぞれ８ビットのオペコードの上位ニブルにより識別される。従ってこれらパケットは、構造のプロトコル層が、処理を開始する際、または既存の処理に応答する際に利用される。
【００２３】
しかし請求されている主題はＱＰＩ実装および／または仮想チャネルに限定はされない。当業者であれば、データおよびパケットの種類を定義することで、優先度、割り込み、タイミング、レイテンシー、信頼度等の他の要素に基づいてリンク層のコントローラロジックに達しないようにすることができることを理解する。
【００２４】
決定ブロック４０２で、ハンドシェークが少なくとも２つのエージェント間に生じ、これらエージェントが低電力状態の動作モードをサポートしているかを判断し、一定の種類のパケットがリンク層のコントローラロジックに達しないようにすることができる。具体的にはエージェントは、要求された場合に、銘々の利用中の入出力リンクまたは構造の既存のリンクの初期化およびパラメータ交換プロトコルを利用して、自身にこのモードをサポートする機能があることを伝え、且つ、遠隔エージェントに対して、このモードを対応する制御層でサポートしてほしい旨の要求を伝える。このハンドシェークによる方法に基づき、デバイスはプラットフォームが低電力状態に入る能力を有すると判断し、一定の種類のパケットがリンク層のコントローラロジックに到達しないようにするモードのサポートを開始する。
【００２５】
アクションブロック４０４において、エージェントは、低プラットフォーム電力状態に入った際に一定の種類のパケットがリンク層のコントローラロジックに到達しないようにする動作モードをイネーブルしている。一実施形態では、この低プラットフォーム電力状態へのエントリポイントは、バックプレッシャーをアサートするエージェントがプロトコルにおいてイニシエータ（マスタ）または応答者（スレーブ）であるかに応じて、リンク低電力状態へ入らせる要求の開始またはその許諾のいずれかである。
【００２６】
まとめると一実施形態では、一定の種類のパケットがリンク層に到達しないようにする動作モードは、リンク低電力モードの前に生じる。本実施形態では、この動作モードは、バックプレッシャーと称される。さらにリンク低電力モードはプラットフォーム低電力モードの前に生じる。
【００２７】
アクションブロック４０６では、あるエージェントが、リンク低電力状態から退出する際に動作モードをディセーブルしている。
【００２８】
コンポーネント（１または複数）に対する電力復帰が行われた後で、遠隔エージェントに対してバックプレッシャーをイネーブルするよう要求したエージェント（１または複数）は、特定のパケットの送信またはリンクの初期化を開始せねばならない。バックプレッシャーがイネーブルされたエージェントは、リンクの初期化の開始を観測すると、あるいは、上述した特定のパケットを受信すると、解除する責任を負う。電力がこのプロセスで失われると、プラットフォームにおいてこの特定のエージェントにはバックプレッシャーという概念はなくなることが明白であるので、リンクの初期化の前にこれを自動的に解放する。エージェントがイネーブル時にバックプレッシャーを解除する他の場合には、リンク電力状態へのエントリに失敗したケース（マスターが要求を行ったがスレーブが許諾しない場合）、および、重要なパケット（ＱＰＩ用語におけるリトライ可能なパケットを受信した場合等が含まれる。
【００２９】
アクションブロック４０８では、エージェントは、オプションとして、一定のパケットがリンク層のコントローラロジックに到達しないようにする動作モードの例外的なケースに関する条件を管理することができる。例えばあるオプションの実施形態では、リンク低電力エントリが開始されたときの応答者（スレーブ）が、リンク低電力状態へのエントリについて許諾をした後でエラーパケットを受信した場合、バックプレッシャーがイネーブルされていれば、予期していた低電力状態へのエントリをアボートして、バックプレッシャーをそのまま保持し、構造に重要なパケットを送信しないように注意を促すことができる。高速Ｉ／Ｏコントローラの実装例における対応する仕様が示すように通信エラー復帰を処理する必要がある。バックプレッシャーがディセーブルされている場合には、このような問題は通常はスレーブエージェントが予期していたリンク低電力状態へのエントリをそのまま保持することで処理される。
【００３０】
図５は、請求されている主題に則り利用されるリンク層のブロック図である。この図では、トランスミッタ部のブロック図が利用されている。前述したように、一定の種類のパケットがリンク層のコントローラ部に到達しないようにする動作モードが示されている。
【００３１】
一実施形態では、ブロック５０２および５０４は、クレジットマネージャおよびアービターであり、クレジットを操作して送信ブロックのクレジットをゼロとしてパケット送信をさせないようにすることで、一定の種類のパケットがリンク層に到達しないようにする動作モードを促すリンク層のコントローラ回路を示している。一実施形態では、クレジットマネージャおよびアービターは、クレジットが利用可能ではない条件を示している。本実施形態では、プロトコル層メッセージを調停、構築、および送出するのにクレジットが必要である。従って、プロトコル層メッセージを調停、構築、および送出するためのクレジットを設けないことによりバックプレッシャーを実現している。本実施形態では、バックプレッシャーによって、プロトコル層メッセージがパケット構築回路５０６に到達しないようにすることができる。
【００３２】
しかしながら請求されている主題は、クレジットの操作によりパケットの送信を阻止してバックプレッシャーを実現する、という前述した実施形態に限定はされない。他の実施形態では、パケットをプロトコルレベルのパケットに対する要求がきた時点で引き止めたり、ブロックしたりしてもよい。また別の実施形態では、パケットを、パッケージの送信前に引き止めたり、ブロックしたりすることもできる。また別の実施形態では、メモリ構造を利用して、パケット損失の際にはパケットを再生することもできる。例えばＱＰＩに関する特定の実施形態では、リンクレベル・リトライ・キューを利用することができる。
【００３３】
図６は、請求されている主題に則り利用されるタイミング図である。本実施形態では、マスタおよびスレーブエージェントが信号により通信する。まず、マスタが動作モードをサポートしている場合には、マスタが一定の種類のパケットがリンク層のコントローラロジック（ＢＰとして示す）に到達しないようにする動作モードをアサートして、スレーブに対してリンク低電力状態に入るよう要求する。これに応えて、スレーブが動作モードをサポートしている場合には、スレーブが一定の種類のパケットがリンク層のコントローラロジック（ＢＰとして示す）に到達しないようにする動作モードをアサートして、マスタに対してリンク低電力状態に関する許諾を送信する。
【００３４】
図７は、請求されている主題に則り利用されるタイミング図である。図６と比較すると、この図では、スレーブは動作モードをサポートしておらず、スレーブが電力状態を拒絶している様子が示されている。
【００３５】
図８は、請求されている主題に則り利用されるタイミング図である。このタイミング図は、両方のエージェントがリンク低電力状態を退出して、起動してリンクの初期化を開始し、最終的には通常動作を行う様子を示している。
【００３６】
図９は、請求されている主題に則り利用されるタイミング図である。このタイミング図は、エージェント１のみがリンク低電力状態を退出して、起動してリンクの初期化を開始し、最終的には通常動作を行う様子を示している。
【００３７】
図１０は、請求されている主題に則り利用されるタイミング図である。このタイミング図は、どのエージェントも電力を失わない場合に、リンク低電力状態を退出して、起動してリンクの初期化を開始し、最終的には通常動作が行われている様子を示している。
【００３８】
実施形態は、コードによる実装が可能であり、命令を実行させるようシステムをプログラミングするのに利用可能な命令を格納した格納媒体上に格納されてよい。格納媒体には、これらに限定はされないが、フロッピー（登録商標）ディスク、光ディスク、光ディスク、固体ドライブ（ＳＳＤ）、コンパクトディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ）、書き換え可能ＣＤ（ＣＤ−ＲＷ）、および光磁気ディスク、読み取り専用メモリ（ＲＯＭ）、動的ＲＡＭ（ＤＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）を含む半導体デバイス、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、磁気カードまたは光カード、その他の電子命令の格納に適した他の種類の媒体といった任意の種類のディスクが含まれてよい。
【００３９】
本発明を限られた数の実施形態に関して説明してきたが、当業者には、これに基づき数多くの変形例および変更例が明らかである。請求項は、本発明の精神および範囲に含まれるこれらの全ての変形例および変更例をカバーすることを意図している。
【図１】
0005406239.tif 000002
【図２】
0005406239.tif 000003
【図３】
0005406239.tif 000004
【図４】
0005406239.tif 000005
【図５】
0005406239.tif 000006
【図６】
0005406239.tif 000007
【図７】
0005406239.tif 000008
【図８】
0005406239.tif 000009
【図９】
0005406239.tif 000010
【図１０】
0005406239.tif 000011