(57)【要約】      （修正有）【課題】送信機の電力を動的に調整する方法および装置を提供する。【解決手段】送信機は、パターンを受信機に差動電圧で送信する。パターンの長さは、トレーニング段階を過度に長くしないような、妥当な長さのトレーニングパターンになるよう選ばれる。受信機においてパターン中にエラーが検出された場合、受信機においてパターン中にエラーが生じなくなるまで、送信機は差動電圧を段階的に昇降させる。エラーが検出されない場合、差動電圧は、妥当な長さのトレーニングパターンに対応付けられた測定信頼水準に対する目標信頼水準の比率によってスケーリングされる。【効果】送信機と受信機との間のデータ交換における誤り率の信頼水準を落とさずにトレーニング段階は短縮され、電力が節減されうる。【選択図】図１
2010050955.tif 000002
【特許請求の範囲】
【請求項１】
リンクにおいて一の振幅でパターンを送信する送信機を有するインターコネクトエージェントを備え、
前記送信機は、前記パターンに関連付けられた誤り率に基づき、電力消費を動的に調整する、装置。
【請求項２】
前記パターンは、トレーニング段階中に送信されるトレーニングパターンを含み、前記送信機が前記パターンに関連付けられた誤り率に基づき電力消費を動的に調整することは、受信機において前記パターン内にエラーが検出されたことを示すメッセージを受信エージェントから受信したことに応じて、前記送信機が次のトレーニングパターンの振幅を段階的振幅に段階的に昇降させることを含む、請求項１に記載の装置。
【請求項３】
前記送信機が前記パターンに関連付けられた誤り率に基づき電力消費を動的に調整することは、前記受信機において前記次のパターンではエラーメッセージが検出されないことを示すノーエラーメッセージを前記受信機から受信したことに応じて、以降のサイクルが前記段階的振幅の比例倍数で送信されるよう、前記送信機が前記送信機の動作電圧をスケーリングすることを含む、請求項２に記載の装置。
【請求項４】
前記振幅の前記比例倍数は、目標信頼水準と、前記パターンの長さに対応付けられた測定信頼水準との比を含む、請求項３に記載の装置。
【請求項５】
前記送信機が前記パターンに関連付けられた誤り率に基づき電力消費を動的に調整することは、以降のサイクルが振幅の比例倍数で送信されるよう、前記送信機が前記送信機の動作電圧をスケーリングすることを含み、前記振幅の前記比例倍数は、目標信頼水準と、前記パターンの長さに対応付けられた測定信頼水準との比を含む、請求項１に記載の装置。
【請求項６】
前記インターコネクトエージェントは、プロセッサ、コントローラハブ、ＰＣＩ（Peripheral Component Interconnect）デバイス、PCI Expressデバイス、記憶装置、ネットワークデバイス、オーディオデバイス、および、シリアルバスデバイスからなるグループから選ばれる、請求項５に記載の装置。
【請求項７】
リンク上で第１のビット数を第１の差動電圧で送信する送信機ロジックと、
前記第１のビット数に関連したエラーは検出されなかったことを示すノーエラーメッセージを受信する受信機ロジックと、
を備え、
前記第１のビット数は、第１の信頼値に対応付けられ、
前記送信機ロジックは、前記メッセージの受信に応じて、前記第１の信頼値に対する目標信頼値の比率により、前記第１の差動電圧をスケーリングする、
装置。
【請求項８】
前記第１のビット数が前記第１の信頼値に対応付けられることは、前記第１のビット数がガウス分布の第１のシグマ値に対応付けられることを含み、前記目標信頼値は、前記ガウス分布の第２のシグマ値である、請求項７に記載の装置。
【請求項９】
前記受信機ロジックは、さらに、前記第１のビット数に関連するエラーが検出されたことを示すエラーメッセージを受信し、前記送信機ロジックは、さらに、前記エラーメッセージの受信に応じて、昇降電圧だけ前記第１の差動電圧を第２の差動電圧に昇降させる、請求項７に記載の装置。
【請求項１０】
前記送信機ロジックは、さらに、前記第１のビット数を前記第２の差動電圧で再送信し、前記送信機ロジックが前記第１のビット数を再送信した後に前記ノーエラーメッセージを受信したことに応じて、前記第１の信頼値に対する前記目標信頼値の比率で前記第２の差動電圧をスケーリングする、請求項９に記載の装置。
【請求項１１】
前記リンクは、シリアルリンクを含む、請求項７に記載の装置。
【請求項１２】
層状インターコネクトスタックロジックをさらに備え、前記送信機ロジックおよび前記受信機ロジックは、前記層状インターコネクトスタックロジックの物理層ロジックに対応付けられる、請求項１１に記載の装置。
【請求項１３】
トレーニングパターンを第１の差動電圧で送信する送信機ロジックを含む第１のエージェントと、
前記第１のエージェントにリンクを介して結合される第２のエージェントと、
を備え、
前記第２のエージェントは、前記トレーニングパターンを受信する受信ロジック、前記トレーニングパターンにおいてエラーが検出されたかどうかを決定するエラーロジック、および、前記トレーニングパターンでエラーが検出されなかったと前記エラーロジックが決定したことに応じて、テストパターン中にエラーが検出されなかったことを示すノーエラーメッセージを前記第１のエージェントに送信する送信ロジックを有し、
前記第１のエージェントに含まれる前記送信機ロジックは、前記テストパターン中にエラーが検出されなかったことを示す前記ノーエラーメッセージを前記第１のエージェントが受信したことに応じて、スケーリングされた差動電圧まで、１より大きい値だけ前記第１の差動電圧をさらにスケーリングする、
システム。
【請求項１４】
前記トレーニングパターンの長さは、正規曲線分布の第１のシグマ値に対応付けられ、スケーリングされた差動電圧まで１より大きい値だけ前記第１の差動電圧をさらにスケーリングすることは、スケーリングされた差動電圧まで、１より大きい前記第１のシグマ値と前記正規曲線分布の目標シグマ値との比率だけ前記第１の差動電圧をさらにスケーリングすることを含む、請求項１３に記載のシステム。
【請求項１５】
前記送信機ロジックは、正常動作中、前記スケーリングされた差動電圧でデータを送信する、請求項１３に記載のシステム。
【請求項１６】
前記第１のエージェントおよび前記第２のエージェントは、第１のプロセッサと第２のプロセッサとの対、プロセッサとメモリデバイスとの対、プロセッサとコントローラハブとの対、コントローラハブとメモリデバイスとの対、ハブとＩ／Ｏデバイスとの対、ＰＣＩ（Peripheral Component Interconnect）ハブとＰＣＩデバイスとの対、PCI ExpressハブとPCI Expressデバイスとの対、コントローラと記憶装置との対、ハブとネットワークデバイスとの対、ハブとオーディオデバイスとの対、シリアルバスハブとシリアルバスデバイスとの対、からなる対のエージェントのグループから選ばれる、請求項１３に記載のシステム。
【請求項１７】
第１のビット数を送信エージェントから受信エージェントまで第１の振幅レベルで送信する段階と、
前記第１のビット数でエラーが検出されなかったことを前記受信エージェントで決定する段階と、
前記第１のビット数でエラーが検出されなかったことの決定に応じて、前記第１の振幅レベルを前記第１の振幅レベルより大きい第２の振幅レベルにスケーリングする段階と、
を備える方法。
【請求項１８】
前記第１のビット数でエラーが検出されなかったことの決定に応じて、前記第１の振幅レベルを前記第１の振幅レベルより大きい第２の振幅レベルにスケーリングする段階は、
前記第１のビット数においてエラーが検出されなかったことの決定に応じて、
目標信頼水準値を決定する段階と、
前記第１のビット数に対応付けられた測定信頼水準値を決定する段階と、
前記目標信頼水準値を前記測定信頼水準値で除することによりスケーリング値を得る段階と、
前記第１の振幅を前記スケーリング値でスケーリングすることにより前記第２の振幅を得る段階と、
を含む、請求項１７に記載の方法。
【請求項１９】
前記目標信頼水準は、ガウス分布における第１のシグマ値を有し、前記測定信頼水準は、前記ガウス分布における第２のシグマ値を有し、前記第１のシグマ値は、前記第２のシグマ値より大きい、請求項１８に記載の方法。
【請求項２０】
前記第１のビット数でエラーが検出されないことを前記受信エージェントで決定したことに応じて、前記受信エージェントから前記送信エージェントにノーエラーメッセージを送信する段階をさらに備える、請求項１７に記載の方法。
【請求項２１】
前記第１のビット数でエラーが検出されたことを前記受信エージェントで決定する段階と、
前記第１の振幅レベルを段階的振幅レベルに段階的に昇降させる段階と、
前記第１のビット数を前記段階的振幅レベルで前記送信エージェントから前記受信エージェントまで送信する段階と、
前記段階的振幅レベルで送信された前記第１のビット数でエラーが検出されないことを前記受信エージェントで決定する段階と、
前記段階的振幅レベルで送信された前記第１のビット数でエラーが検出されないことの決定に応じて、前記段階的振幅レベルを前記段階的振幅レベルより大きい第３の振幅レベルにスケーリングする段階と、
をさらに備える、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速リンクに関し、より詳しくは、高速リンクに関連する節電に関する。
【背景技術】
【０００２】
コンピュータは、その進化に伴い、単純な演算の領域から多数の媒体および非媒体関連アプリケーションのためのメディアセンターへと活動の場を移している。その結果、多くの場合、コンピュータシステムは、多数の周辺および／または入力／出力デバイスを有している。さらに、半導体処理およびコンピュータ設計の進歩により、コンピュータシステムは、単一の物理的なプロセッサにおいてより多くのトランジスタおよび処理電力を有することができるようになった一方で、単一のシステムの中に多数の物理的プロセッサが存在することも可能になった。
【０００３】
集積回路およびその処理電力の進歩の結果として、デバイス間のインターコネクトも進化し、高性能なコンポーネントに十分な帯域幅を提供できるようになった。特定の例としては、アーキテクチャにおけるコンポーネントは、ポイントツーポイントリンクを利用して結合されてよい。
【０００４】
しかしながら、これらのリンクの送信機は、多くの場合、仕様ガイドラインにおける最高値に適合する電力レベルで動作するよう設計されている。例えば、物理リンク、すなわち、送信機と受信機との間の伝送ラインのための仕様が存在してよく、それは、長さおよび他の属性のどちらも定義する。その結果、送信機は、大抵の場合、たとえ実際のリンク／伝送ラインが指定された最大値より短くても、最大長の伝送ラインに亘り正しいデータ伝送を保証する高電力レベルで動作する。それにより、同じ精度のデータ伝送で用いられる電力に比べ、正確なデータ伝送を確実にするために余分な電力が消費される可能性がある。
【図面の簡単な説明】
【０００５】
添付の図面により本発明を例示するが、限定するつもりはない。
【０００６】
【図１】ポイントツーポイントインターコネクトを利用したチップセットに結合された複数のプロセッサ、および、チップセットに結合された他の可能性のあるインターコネクトを含むシステムの一実施形態を示す。
【０００７】
【図２】層状インターコネクトスタックを利用した双方向インターコネクトアーキテクチャのブロック図の一実施形態を示す。
【０００８】
【図３】誤り率に基づく最適な送信機振幅を決定する方法のフローチャートの一実施形態を示す。
【０００９】
【図４】送信機の動作振幅を決定する一例のトレーニング段階の一実施形態を示す。
【発明を実施するための形態】
【００１０】
以下の説明では、本発明の完全なる理解をもたらすべく、例えば、特定のインターコネクト、特定のシグマ値、特定の信号振幅、およびそのスケーリングファクタ、特定のタイプ、数、および、テストパターンのサイズなどが記載される。しかしながら、本発明を実行するのにこれら特定の詳細が必ずしも必要でないことが当業者であれば理解できよう。他の例では、例えば、特定の送信機および受信機ロジック、チェックサム、および、ビット誤り率検出アルゴリズム、インターコネクトの他の動作の詳細、および、関連するロジックなどのよく知られたコンポーネントまたは方法は、本発明を不要にあいまいにすることを避けるべく、詳しく説明しない。
【００１１】
本願明細書中に記載される方法および装置は、送信機の振幅を調整して消費電力を最適化することを目的とする。特に、送信機の電力を調整することは、ポイントツーポイントコヒーレントインターコネクトアーキテクチャのようなリンクを例に挙げて主に説明する。しかしながら、送信機の電力を調整する方法および装置は、図１に記載されるようなインターコネクトのいずれかのような既知のインターコネクトにより実装されることに限らず、送信機と受信機とを接続するのに利用される他のいかなる既知のインターコネクトによっても実装されてよい。
【００１２】
図１は、複数の異なるインターコネクトを有するシステムの一実施形態を示す。図１のシステムは、いくつかのプロセッサも有し、説明を明確にすべく、そのうちの２つのプロセッサ１０５、１１０のみを示している。図に示すように、プロセッサ１０５、１１０は、それぞれ２つの処理部１０６および１０７、１１１および１１２を有するが、プロセッサ１０５、１１０はいかなる数の処理部を有してもよい。
【００１３】
処理部とは、スレッドユニット、処理ユニット、コンテキスト、論理プロセッサ、ハードウェアスレッド、コア、および／または、他のいかなる部材のことを指し、実行状態または構造的状態のような、プロセッサの状態を保持できる部材である。換言すると、一実施形態における処理部は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、または、他のコードのようなコードに個別に関連することができるいかなるハードウェアのことを指す。例としては、物理的プロセッサは、一般的に、コアまたはハードウェアスレッドのようないかなる数の他の処理部を有しうる集積回路のことを指す。
【００１４】
コアは、多くの場合、独立した構造的状態を維持することができる、集積回路に配置されたロジックのことを指し、それぞれ個別に維持される構造的状態は、少なくともいくつかの専用実行資源に関連付けられる。コアとは対照的に、物理スレッドとも呼ばれることもあるハードウェアスレッドは、一般的に、個別の構造的状態を維持することができる、集積回路に配置されたいかなるロジックのことをも指し、個別に維持される構造的状態は、実行資源へのアクセスを共有する。したがって、上述のごとくに、一実施形態における単一スレッドアプリケーションのマルチレプリカのようなマルチソフトウェアスレッドは、コアまたはハードウェアスレッドのような上記処理部のいかなる組合せも含む、上記複数の処理部と並行して実行されることができる。
【００１５】
図に示すように、プロセッサ１０５、１１０は、一般的に、コードを実行するかまたは他のデバイスとインターフェースするレジスタ、ユニット、ロジック、ファームウェア、メモリおよび他の資源を含む資源１０８、１１３を有する。上述のごとく、資源１０８、１１３のいくつかは、処理部に対し一部または完全に専用であってよく、他の資源は、処理部間で共有されてよい。例えば、命令ポインタおよび名称変更ロジックのような小さな資源は、物理スレッドに対し複製されてよい。リオーダー／リタイヤメント装置におけるバッファ、ＩＬＴＢ（instruction lookaside translation buffer）、ロード／格納バッファ、および、キューのようないくつかの資源は、パーティショニングによって共有されてよい。汎用内部レジスタ、ページテーブルベースレジスタ、低レベルデータキャッシュ、データＴＬＢ、実行ユニット、および、障害ユニットのような他の資源は、スレッド間で完全に共有される場合もある。対照的に、コアは専用の実行資源を有してよく、その一方で第２のレベルキャッシュ（Ｌ２）のような高レベルのキャッシュの少なくとも一部を共有してよい。
【００１６】
一実施形態では、資源１０８、１１３は、いかなる数のパイプラインステージを含みうるプロセッサパイプラインを有する。パイプラインステージの一般的な例は、命令ポインタステージ、フェッチステージ、デコードステージ、ドライブステージ、割り当てステージ、名称変更ステージ、キューステージ、リオーダーステージ、スケジュールステージ、ディスパッチステージ、実行ステージ、メモリアクセスステージ、および、レジスタアクセスステージを含む。ここに列挙したステージは、プロセッサパイプラインステージの典型的なステージであって、網羅的ではなく、いかなる既知のパイプラインステージもプロセッサ１００に含まれてよい。
【００１７】
プロセッサ１０５、１１０は、メモリ１０９、１１４としかるべくインターフェースするメモリコントローラまたはローカルメモリコントローラハブ（ＭＣＨ）も有してよい。メモリ１０９、１１４は、ＲＡＭ（ランダムアクセスメモリ）、キャッシュメモリ、フラッシュメモリ、または、他のメモリデバイスのようないかなるメモリデバイスを含む。一実施形態では、メモリ１１４は、より高レベルなキャッシュメモリを含み、資源１１３は、低レベルのキャッシュメモリを含む。他の実施形態では、メモリ１０９は、プロセッサ１０５に対応付けられたＤＲＡＭ（ダイナミックランダムアクセスメモリ）を含み、プロセッサ１０５は、ＤＲＡＭ１０９からのデータをキャッシュするキャッシュメモリを有する。これは例示的実施形態であって、メモリ１０９、１１４はいかなるスタイルのメモリデバイスを含みうることに留意されたい。
【００１８】
一実施形態では、メモリ１０９、１１４がプロセッサ１０５、１１０のいずれかに含まれるか、または、図のようにプロセッサ１０５、１１０の外側にあるキャッシュメモリを有する場合、プロセッサ１０５、１１０は、ピアキャッシュノードと同様のホームノードであることができる。例えば、トランザクションがメモリ１０９内のメモリ位置を参照する場合、メモリ１０９担当エージェント、すなわちプロセッサ１０５は、トランザクションおよびメモリ位置に関してホームエージェントであると決定されてよい。同様に、トランザクションがメモリ１１４における位置のような他のメモリ位置を参照する場合、プロセッサ１０５は、ピアキャッシュエージェントであると決定されてよい。
【００１９】
以上のように、ポイントツーポイントリンク１２０から１２４は、コンポーネント同士をポイントツーポイント方式で連結する。一実施形態では、物理リンク１２０から１２４は、それぞれ、図２を参照して以下に説明する物理層に対応付けられた物理リンクのような双方向差動シグナリングインターコネクトを有する。その結果、プロセッサ１０５、１１０、および、チップセット１３０は、互いと直接通信することができる。一実施形態における送信機は、以下に説明するような誤り率に基づき、電力を調整することができる。さらに、一実施形態における受信機は、パターンを受信し、パターン内にエラーが生じているかどうかを決定することができる。ここで、受信機は、送信機にフィードバックすることにより、送信機の最適な電力設定を効率よく決定することができる。
【００２０】
チップセット１３０は、多くの場合、入力／出力（Ｉ／Ｏ）ハブに結合されたメモリコントローラハブのような複数の集積回路のことを概して指す。しかしながら、一実施形態では、エージェントがメモリとインターフェースするためのメモリコントローラハブのバージョンをそれぞれ含む場合、チップセット１３０は、Ｉ／Ｏハブまたは他のコントローラハブのことを指す。一実施形態では、上述のごとく、チップセット１３０は、トランザクションに参加するかまたは関わる非キャッシュエージェントである。しかしながら、チップセット１３０は、これに限らず、他の実施形態では、チップセット１３０は、キャッシュメモリを含むキャシュエージェント、および／または、データの初期メモリ位置リポジトリを有するメモリを含むホームエージェントである。
【００２１】
図に示すように、チップセット１３０は、ＰＣＩ（Peripheral Component Interconnect）またはＰＣＩ−Ｅ（PCI Express）デバイス１６１、ＩＤＥ（Integrated Device Electronics）またはＡＴＡ（Advanced Transfer Attachment）デバイス１６２、ＵＳＢ（Universal Serial Bus）デバイス１６３、ＬＡＮ（Local Area Network）またはＷＬＡＮ（無線ＬＡＮ）デバイス１６４、オーディオデバイス１６５、および、他のＩ／Ｏデバイス１６６のような、本願明細書中で説明されるようなＩ／Ｏデバイスを結合するための他のインターコネクトアーキテクチャを含みうる複数のインターコネクトおよびＩ／Ｏデバイスとインターフェースする。上述のごとく、上記インターコネクトのいずれも、以下に説明する誤り率に基づき最適な電力を決定することができる送信機および受信機を有してよい。
【００２２】
図２を参照すると、層状インターコネクトスタックを利用した双方向インターコネクトアーキテクチャのブロック図の一実施形態が示されている。図２の層を参照すると、このような物理層２０２は、物理層２０２ａおよび物理層２０２ｂのような異なるエージェント内に実装されうる一般層のディスカッションを含む。図に示すように、インターコネクトスタックは、５つの層に分割され、それらの１つ以上は、設計の実施態様に基づきオプションであてもよい。例えば、一実施形態では、ルーティング層２０４は、リンク層２０３の機能に組み込まれ、したがって、一実施形態では、ルーティング層は、独立した個別の層ではない。
【００２３】
一実施形態では、物理層２０２は、物理媒体の情報を電気転送する役割を果たす。例えば、リンク層のエンティティ２０３ａと２０３ｂとの間では、物理的ポイントツーポイントリンクが利用される。例としては、物理リンクは、双方向差動シグナリングペア２５１および２５２を含む差動シグナリング方式をとる。ここで、物理層は、情報の電気転送からスタックの残りを隔離し、リンク層２０３と通信するよう、電気サブブロックと論路サブブロックとに論理的に分割されてよい。一実施形態における送信機２５０ａ、２５０ｂは、送信された信号の振幅を調整することが可能であり、それによって、以下に説明するような誤り率に基づきその電力が消費されることに留意されたい。
【００２４】
一実施形態では、リンク層２０３は、スタックの上層から物理層２０２を抽象化し、接続されたエージェント／エンティティ間の信頼できるデータ転送およびフロー制御と、物理チャネル／インターフェースを複数の仮想チャネルおよびメッセージクラスに仮想化するといったリンク関連サービスを提供する。ここでは、仮想チャネルは、スタックの上層で用いられる複数の仮想ネットワークとして見られてよい。例えば、プロトコル層２０６は、リンク層２０３によって行われる抽出に依存してプロトコルメッセージをメッセージクラスにマップしてよく、その結果、１つ以上の仮想チャネルとなる。
【００２５】
一実施形態において、ルーティング層２０４は、送信元から送信先までパケットをルーティングするフレキシブルな方法を提供する。上述のごとく、極めて単純なトポロジでは、ルーティング層２０４は、明確に区分されていなくてよく、むしろ、リンク層２０３の機能に一体化されていてよい。例えば、ルーティング層２０４は、リンク層２０３の抽出に依存して一対の＜スポット、仮想ネットワーク＞を指定することにより、パケットをルーティングしてよい。
【００２６】
一実施形態では、ルーティング層２０４、または、当該ルーティング層２０４とその機能によって関連付けられるロジックは、ルーティングテーブルのようなルーティング情報を保持する。特定の例では、ルーティングテーブルは、インターコネクトアーキテクチャにおけるそれぞれの目標のためのエントリを含んでよい。この場合、エントリは、１つのまたは複数のポートが目標エージェントに関連付けられたパケットをルーティングするといったいかなるタイプの情報を保持してよい。ルーティングテーブルおよび関連する情報については、以下にさらに詳しく説明する。
【００２７】
一実施形態では、トランスポート層２０５は、エンドツーエンドの信頼できる送信サービスを提供する。ルーティング層２０４と同様に、トランスポート層２０５も、設計の実施態様に基づきオプションである。例えば、トランスポート層２０５は、ルーティング層２０４サービスに依存してプロトコル層２０６に信頼できるサポートを提供する。インターコネクトアーキテクチャにおける一実施形態では、コンポーネントのサブセットは、トランスポート層２０５を含む。その結果、このコンポーネントのサブセットは、トランスポート層２０５に関するパケットのサブフィールドを定義し、一方、他のコンポーネントは、それらのサブフィールドを定義しなくてもよい。
【００２８】
一実施形態において、プロトコル層２０６は、キャッシュコヒーレンス、オーダリング、ピアツーピア通信、割り込みデリバリなどのノード／エージェント間のより高水準な通信プロトコルを実装する。換言すると、プロトコル層２０６は、ホームノード、ピアノード、キャッシュノード、および、非キャッシュノードのようなノードまたはエージェントに対して許容できるメッセージ、リクエスト、レスポンス、フェーズ、コヒーレンス状態などをしかるべく規定する。ホームノードメッセージ、スヌープメッセージ、レスポンスメッセージのようなメッセージの例は、以下で説明する。
【００２９】
層のディスカッションおよびそれに関連付けられたロジックは、いかなる方法で結合されてよいことに留意されたい。例えば、プロトコルロジックは、物理層、すなわち、送信または受信ロジックと結合されると言ってよい。ここで、図２にからわかるように、一実施形態では、プロトコルロジックは、物理層ロジックと直接結合されるのではなく、他層のロジックを介し結合されてよい。さらに、一実施形態では、インターコネクトスタックは、キャッシュ制御またはキャッシュメモリロジックのような内部コンポーネントロジックと結合することにより、適切なキャッシュコヒーレンス動作を開始する。また、インターコネクトスタックおよび双方向シリアルリンクの説明は、単なる例示にすぎず、以下に説明する送信機は既知のインターコネクトに実装されてもよいことに留意されたい。
【００３０】
図３を参照すると、振幅を調整することにより、誤り率に基づき送信機の電力を調整する方法のブロック図の一実施形態が示されている。ブロック３０５において、送信機は、リンクにおいて一の振幅でパターンを送信する。一実施形態では、送信機は、ビット、シンボル、および／または、パターンを送信する集積回路に関連付けられたいかなる送信ロジックを有してよい。これらのビット、シンボル、および、パターンは、いくつかの実施形態で互いに代替可能に用いられてよい。多くの場合、シンボルは、ビット数の何らかの表現のことを指すが、単純な実施形態では、シンボルは、信号論理値を指す場合もある。
【００３１】
送信機は、受信エージェントのような他のデバイスとのインターコネクトを介して結合されるインターコネクトエージェント／ノード内のようないかなるデバイスまたはエージェント内に配置されてよい。トランザクション次第で送信エージェントおよび受信エージェントのいずれでもありうる対のインターコネクトエージェントの一般的な例は、プロセッサとメモリコントローラハブ、２つともプロセッサ、ルートインターコネクトハブとインターコネクトデバイス、Ｉ／ＯコントローラハブとＩ／Ｏデバイス、２つともＩ／Ｏデバイス、あるいは、リンクまたはインターコネクトを介して互いに結合されることが知られている他のいかなる対のエージェント／デバイスを含む。
【００３２】
リンクは、集積回路を結合するいかなる既知のインターコネクトを含む。例えば、リンクは、物理的に１つの伝送ラインまたは複数の伝送ラインの組合せのようであってよい。ＦＲ４のような材料における以前のリンクの実施態様は、銅または他の導電材料を含んでいた。全体として、リンクは、パラレルマルチドロップバス、シリアルリンク／インターコネクト、ポイントツーポイントリンク、キャッシュコヒーレントリンク、他の既知のインターコネクト、または、それらの組合せを含んでよい。上述のごとく、リンクまたはインターコネクトは、他のデバイスの複数のＩ／Ｏ回路に結合された１つのデバイスの複数のＩ／Ｏ回路のような、複数の対の送信機から形成されてよいことに留意されたい。一実施形態では、個々の送信機は、電力／電圧を別々に調整してよい。他の実施形態では、送信機を含む複数のＩ／Ｏ回路は、単一のマッチング電圧に調整可能である。
【００３３】
一実施形態では、ビット、パターン、または、値が送信される振幅は、波の振動の大きさを指す。例えば、ビット、すなわち、論理０および１は、論理値を表す異なる電圧レベルを用いて送信される。例示の目的で、閾値を上回る高電圧レベルは、論理１を含み、閾値を下回る低電圧レベルは、論理０を含む。
【００３４】
結果として、一実施形態では、振幅は、差動電圧、すなわち、最大ターゲット電圧と最小ターゲット電圧との差のことを指す。例えば、最大電圧が８００ｍｖ、すなわち、論理１のターゲット電圧である場合、最小電圧は２００ｍｖ、すなわち、論理０のターゲット電圧であり、差動電圧は６００ｍｖである。換言すると、波は、６００ｍｖの振幅を有する。クロスカップリング、インピーダンス不整合、および、他の要因のような伝送路効果によってターゲット電圧からわずかに逸脱し、それは、しばしば、アンダーシュート、オーバーシュート、リンギングなどの用語で呼ばれる。したがって、以上のように、電力は電圧の関数なので、波のパターンを送信するのに電圧が多く利用されるほど、消費電力も多くなる。さらに、差動電圧または振幅の修正は、集積回路の動作電圧を上昇させる／低下させるなどして間接的に行われてよく、生成された波は、修正された振幅を有する。
【００３５】
一実施形態では、送信機により送信されるパターンは、送信機またはＩ／Ｏ回路の正常動作の間に送信される正常なインターコネクト値を含む。あるいは、他の実施形態では、パターンは、初期化、テスト、および／または、システムのトレーニング段階の間、初期化、テスト、および／または、送信機を含む集積回路／エージェントのトレーニング段階の間、または、特に、初期化、テスト、および／または、送信機自体のトレーニング段階の間のテストパターンを含む。ここで、テストパターンは、送信機に圧力を加えるかまたは送信機を初期化する予め決められたパターン、ランダムなパターン、あるいは、ビット、シンボル、または、パターンの他の既知の組合せのようないかなるパターンを含んでよい。例えば、ＵＳＢ（Universal Serial Bus）インターコネクトでは、テストパターンまたはメッセージは、ゼロプラス単独のビットパターンの入力データによる完全なスクランブラ出力を含んでよい。
【００３６】
一実施形態では、以下にさらに詳しく説明するが、パターンの長さが最適化されることにより、正しい振幅／差動電圧レベルを決定する信頼水準と、トレーニング、テスト、または、初期化時間を縮小することとの間のバランスを提供する。例えば、送信機の差動電圧レベルにおいて非常に高い信頼性を獲得するということは、この例では、受信機が１／１０−１２ビットの倍数を受信してビット誤り率（ＢＥＲ）を正確に識別することを含む。この場合、８＊（１／１０−１２）のトレーニングシーケンスは、正規またはガウス分布のような数学的分布における８シグマ信頼水準を提供してよい。しかしながら、例えば、８×１０−１２ビットのような１／１０−１２ビットの倍数は、非常に長いパターンを有し、多くのシステムにおいてデバイスを初期化または訓練するのには長すぎる場合がある。
【００３７】
それとは対照的に、８＊（１／１０−５）のような小さいビットパターンが用いられることにより、トレーニング、テスト、および／または、初期化の長さを短縮してよい。しかしながら、この例のようなパターンの長さは、８シグマ信頼水準ではなく、４シグマ信頼水準を提供する。したがって、一実施形態では、パターンの長さ、すなわち、パターンにおけるビット数は、高いまたは予め決められた信頼水準とは異なる信頼水準に対応付けられるよう選択される。トレーニングは、低い信頼水準に対応付けられたパターンを用いて実行され、電圧／振幅のスケーリングは、以下に説明するような、近似したより高い信頼水準を得るために実行される。
【００３８】
一実施形態では、送信機は、パターンに対応付けられた誤り率に基づき信号を送信する振幅を動的に調整する。このような動的調整の一実施形態がブロック３１０から３２５までに示されている。決定ブロック３１０では、パターンを受信する受信機がエラーを検出したかどうかが決定される。いかなる既知のエラー検出方法／アルゴリズムが用いられてよい。例えば、エラーを検出すべく巡回冗長検査（ＣＲＣ）が用いられてよい。ＣＲＣは、多くの場合、入力データストリームまたはビットパターンを取り込み、特定サイズの値を出力する。この出力値は、受信機に送信され、受信機によって生成されたＣＲＣと比較される。このチェックサムにより、受信機は、送信エラーが発生したかどうかを決定できる。
【００３９】
例えば、振幅または差動電圧が送信された論理１にとって低すぎる場合、受信機は、低い値を正しい論理１の代わりに論理０として解釈してよい。受信機で新しいＣＲＣ値が計算された場合、それはオリジナルのＣＲＣ値とは異なり、送信の間にエラーが生じたことを示す。しかしながら、送信機で生成され、受信機で受信されたパターンにおけるエラーを検出すべく、いかなる既知のチェックサム、エラー検出コード、検証、エラー検出機構、または、それらの組合せが用いられてよい。また、ブロック３１０における「いかなる」エラー検出も、予め決められた数のエラーより少ないエラー数を検出してよい。
【００４０】
エラーが検出された場合、ブロック３１５において、送信機の振幅は、段階的に昇降するか、または、動的に調整され、フローは、ブロック３０５へと戻る。送信機における信号の昇降／調整には、振幅／電圧のいかなるインターバルが用いられてよいのと同様に、いかなる初期振幅が用いられてよいことに留意されたい。一実施形態では、初期振幅は、送信機によって送信されることが可能な最小電圧差動であってよい。他の実施形態では、初期振幅は、計算された最小振幅であってよい。
【００４１】
実例を提供すべく、インターコネクトのための仕様は、リンクの最小伝送路長を提供し、一方で、受信エージェントは、信号が受信機で正確に解釈されるべく、信号の大きさがそれを上回るノイズまたは閾値スペックを規定する。ここで、最小振幅は、電圧プラスチャネル／伝送ラインの最小長で計算された減衰で表されるノイズレベルを含んでよい。換言すると、送信機における最短の特定の伝送ラインの減衰を介した最小電圧レベルは、受信機で解読可能である。数値例を提供すべく、受信機は、波を解釈するために２０ｍｖの差動電圧を必要とし、計算による最短チャネル長は、ほぼ８０ｍｖの減衰となると仮定する。その結果、この例では、最小振幅レベルは、１００ｍｖに設定されてよい。
【００４２】
しかしながら、最短チャネル長および受信機スペックの使用は、単なる例であって、Ｉ／Ｏ回路の設計者は、それが任意であるかまたは多数のインターコネクト関連変数に基づき計算されたものかに関わらず、トレーニングシーケンスを実行するためのいかなる初期電圧を選んでよい。同様に、振幅の昇降または調整も任意であっても、または、計算されてもよい。例えば、設計者は、最小１００ｍｖの差動電圧を１０ｍｖ、２０ｍｖ、５０ｍｖ、１００ｍｖ、２００ｍｖ等に段階的に昇降させ、同様にパーセンテージに基づき段階的に昇降させることを選んでよい。２０％のパーセンテージが用いられる場合、第１のステップは、１００ｍｖから１２０ｍｖに上昇し、第２のステップは、１２０ｍｖから１４４ｍｖに上昇する。
【００４３】
したがって、初期電圧差動としてのその段階的昇降は、設計に依存してよく、さらに一般的に言えば、ブロック３０５、３１０、および、３１５間のフローは、エラーが検出されなくなるまで、または、他の実施形態では、ブロック３１０において予め決められたエラー数より少なくなるまで続けられることが観察されている。一実施形態では、パターン長が高信頼水準のような予め決められた信頼水準より低い信頼水準に対応付けられている場合、決定ブロック３１０でエラーが検出されなければ、ブロック３２０において決定された振幅がスケーリングされて、より高い信頼水準が得られる。換言すると、送信機の最小電圧は、短縮されたトレーニング、すなわち、短縮されたパターン長の間に決定され、その場合、エラーは受信されない。しかしながら、上記短縮されたパターン長に対応付けられた信頼水準をバッファリングすべく差動電圧が高められることにより、当該信頼水準でのバッファを提供する。
【００４４】
一実施形態では、ブロック３２０におけるスケーリングは、パターン長に対応付けられた信頼水準に基づく。ここでは、例えば、短縮されたパターン長に対応付けられた、選択された／低い信頼水準に対する高いまたは予め決められた信頼水準の比または比率がスケーリングのために用いられる。引き続き、単純化した数値例を示すべく、ブロック３０５において初期電圧差動１００ｍＶで開始すると仮定する。しかしながら、ブロック３０５、３１０、および、３１５を通じてフローは継続し、２００ｍＶの振幅でエラーが検出されなくなるまで毎回５０ｍＶ昇降する。短縮されたパターン長がガウス分布における４シグマの信頼水準に対応付けられ、予め決定された高信頼水準が７シグマの信頼水準に対応付けられていると仮定すると、振幅は、７／４でスケーリングされる、すなわち、振幅は約３５０ｍＶである。ここで、送信機で新たにスケーリングされた３５０ｍＶの振幅が７シグマのより高い信頼水準の近似値を提供し、その一方で、より短いトレーニングパターンを利用することによりトレーニング段階の時間を節約する。
【００４５】
図４を参照すると、送信機の電力を最適レベルに調整するトレーニングシーケンスの一実施形態が示されている。図示されるトレーニングパターンは、単なる例であって、非常に単純化されていることに留意されたい。しかしながら、ここで、送信機は、１００ｍＶなどの初期振幅でトレーニングパターンのようなパターンを送信する。受信機は、パターンを受信するとすぐにエラーを検出し、その結果、エラーが検出されたというメッセージを送信機に発する。エラーが検出されたことに応じて、送信機は、生成された信号の振幅を例えば１５０ｍＶなどの第２の振幅にスケーリング／昇降する。
【００４６】
ここで、同じかまたは異なるパターンが第２のスケーリングされた振幅で送信されてよい。同様に、エラーが検出され、送信機は、トレーニングシーケンスの間にエラーが検出されたことを示す他のエラーメッセージを受信機から受け取る。しかしながら、次の昇降、すなわち、２００ｍＶの第３の振幅では、エラーは検出されない。パターン長がガウス分布における４シグマ信頼水準を提供し、目標／予め決められた信頼水準を７シグマと仮定すると、第３の振幅は、信頼水準の比率、すなわち７／４でスケーリングされることにより、３５０ｍＶの振幅を得る。
【００４７】
その結果、図３のブロック３２５、および、図４の例のいずれにおいてもこのスケーリングされた振幅が正常動作の間に用いられる。上述のごとく、同様の送信機振幅、電圧、および／または、電力調整は、トレーニングシーケンスまたはランダムなパターンではなく、正常なトラフィックを用いた正常動作の間に行われてよい。結果として、一実施形態における動作中の送信機は、誤り率に基づきその電力消費を動的に調整する。ここで、受信機があまりにも多くのエラーを検出し始めた場合、受信機により送信機にエラー信号が送られ、送信機は、電圧をしかるべくスケーリングする。
【００４８】
したがって、上述のごとく、送信機は、高電力における動作に代わり、実際の物理的インターコネクト構成に基づき最適な電力設定を決定してよく、それによって、最大インターコネクトスペックの適合が保証される。さらに、短いトレーニングパターン長時間を用いて初期化の時間を節約するが、信頼水準に基づく振幅のスケーリングは、誤り率スペックが適合する適切な高信頼水準を提供する。結果として、初期化時間および電力は、送信精度およびその信頼性を犠牲にすることなく節減される。
【００４９】
本願明細書中で用いられるモジュールは、いかなるハードウェア、ソフトウェア、ファームウェア、または、それらの組合せを指す。切り離されて示されているモジュールの境界は、多くの場合、変化し、重なり合ってよい。例えば、第１および第２のモジュールは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せを共有してよいが、いくつかの独立したハードウェア、ソフトウェア、または、ファームウェアを保持してもよい。一実施形態では、ロジックという用語の使用は、トランジスタ、レジスタなどのハードウェア、または、プログラマブルロジックデバイスのような他のハードウェアを含む。しかしながら、他の実施形態では、ロジックは、ファームウェアまたはマイクロコードのようなハードウェアに一体化されるソフトウェアまたはコードも含む。
【００５０】
本願明細書中で用いられる値は、数、状態、論理状態、または、２値論理状態の既知の表現を含む。論理レベル、論理値の使用は、しばしば"１"および"０"として示され、これらは、単なる２値論理状態を表す。例えば、１は、高論理レベルを示し、０は、低論理レベルを示す。一実施形態では、トランジスタまたはフラッシュセルのような記憶セルは、単一の論理値または複数の論理値を保持することができる。しかしながら、コンピュータシステムにおける他の値の表現も用いられている。例えば、１０進数１０は、１０１０の２進値、および、１６進数文字のＡとして表されてよい。したがって、一の値は、コンピュータシステムで保持されうる情報のいかなる表現も含む。
【００５１】
さらに、状態は、値または値の一部によって表現されてよい。例えば、論理１のような第１の値は、デフォルトまたは初期状態を表してよく、論理０のような第２の値は、非デフォルト状態を表してよい。さらに、一実施形態におけるリセットおよびセットという用語は、デフォルトおよびアップデート状態または値のことをそれぞれ指す。例えば、デフォルト値は、高論理値、すなわち、リセットを含み、アップデート値は、低論理値、すなわちセットを含んでよい。いかなる状態の数を示すためにいかなる値の組合せを用いてよいことに留意されたい。
【００５２】
上記方法、ハードウェア、ソフトウェア、ファームウェアまたはコードの実施形態は、処理部によって実行可能な機械アクセス可能なまたは機械読み取り可能な媒体に格納された命令またはコードによって実装されてよい。機械アクセス可能／読み取り可能媒体は、コンピュータまたは電子システムのような機械によって読み取り可能な形態で情報を提供する（すなわち、格納および／または送信する）いかなる機構をも含む。例えば、機械アクセス可能媒体は、ＳＲＡＭ（スタティックＲＡＭ）またはＤＲＡＭ（ダイナミックＲＡＭ）のようなＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ、磁気または光記憶媒体、フラッシュメモリデバイス、電気記憶装置、光記憶装置、音響記憶装置、または、他の伝播信号の形態（搬送波、赤外線信号、デジタル信号など）の記憶装置などを含む。例えば、機械は、伝播信号を受信することにより、送信されるべき情報を伝播信号で保持することが可能な媒体から記憶装置にアクセスしてよい。
【００５３】
本願明細書を通じて見られる「１つの実施形態」または「一実施形態」とは、実施形態に関連して記載される特定の特徴、構造、または、特性が本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、本願明細書を通じて随所に見られる「１つの実施形態における」または「一実施形態における」というフレーズは、必ずしもすべて同じ実施形態を指すわけではない。さらに、特定の特徴、構造、または、特性は、１つ以上の実施形態においていかなる適切な方法で組み合わされてよい。
【００５４】
上記明細書では、特定の例示的実施形態に関連して詳細を説明してきた。しかしながら、添付の請求項に記載されるような本発明の趣旨および範囲に逸脱せずに、さまざまな修正および変更が成されうることは明らかであろう。したがって、明細書および図面は例示に過ぎず、限定の意味合いはない。さらに、上記実施形態および他の例で使用した言い回しは、必ずしも同じ実施形態および同じ例について言及するものではなく、同じ実施形態の場合もあるが、異なる別個の実施形態について言及してもよい。
【図１】
2010050955.tif 000003
【図２】
2010050955.tif 000004
【図３】
2010050955.tif 000005
【図４】
2010050955.tif 000006
【外国語明細書】
2010050955.tif 000007
2010050955.tif 000008
2010050955.tif 000009
2010050955.tif 000010
2010050955.tif 000011
2010050955.tif 000012
2010050955.tif 000013
2010050955.tif 000014
2010050955.tif 000015
2010050955.tif 000016
2010050955.tif 000017
2010050955.tif 000018
2010050955.tif 000019
2010050955.tif 000020
2010050955.tif 000021
2010050955.tif 000022
2010050955.tif 000023
2010050955.tif 000024
2010050955.tif 000025
2010050955.tif 000026
2010050955.tif 000027
2010050955.tif 000028
2010050955.tif 000029