(57)【要約】デバイス間のポイントツーポイント・リンクが利用可能な最低速度で立ち上げられ、動作状態に達したのちにより速いリンク速度がネゴシエーションされる。
2008547362.tif 000002
【特許請求の範囲】
【請求項１】
二つのデバイスの間に、利用可能な最低リンク速度を使ってポイントツーポイント・リンクを構成する段階と；
前記二つのデバイスの間のより高速なリンク速度を、前記リンクを中断することなく動的にネゴシエーションする段階とを有する方法。
【請求項２】
より高速なリンク速度を動的にネゴシエーションする前記段階が、エラー回復に関連する状態にはいることを含む、請求項１記載の方法。
【請求項３】
エラー回復に関連する状態にはいることが、ソフトウェアによって開始される、請求項２記載の方法。
【請求項４】
エラー回復に関連する状態にはいることが、ハードウェアによって開始される、請求項２記載の方法。
【請求項５】
異なるリンク幅を動的にネゴシエーションすることをさらに含む、請求項１記載の方法。
【請求項６】
電力消費を低減させるために、より低速のリンク速度を動的にネゴシエーションすることをさらに含む、請求項１記載の方法。
【請求項７】
第二のデバイスとのポイントツーポイント・リンクを構成する状態機械を有するデバイスであって、前記状態機械は、当該デバイスの速度機能を広告する第一の状態と、前記第二のデバイスの速度機能を記録する第二の状態と、利用可能な最低速度で動作するよう前記ポイントツーポイント・リンクを構成する第三の状態とを有する、デバイス。
【請求項８】
前記ポイントツーポイント・リンクが少なくとも部分的に、周辺コンポーネント相互接続（PCI）規格に準拠している、請求項７記載のデバイス。
【請求項９】
前記状態機械が、前記第二のデバイスと異なるリンク速度を動的にネゴシエーションする少なくとも一つの状態を含む、請求項７記載のデバイス。
【請求項１０】
前記状態機械が、現在のリンク・パフォーマンスに応じて動的にリンク速度の上げ下げをネゴシエーションすることができる少なくとも一つの状態を含む、請求項７記載のデバイス。
【請求項１１】
前記状態機械が、ソフトウェア制御のもとでコマンドに反応して動的にリンク速度の上げ下げをネゴシエーションすることができる少なくとも一つの状態を含む、請求項７記載のデバイス。
【請求項１２】
前記状態機械が、ソフトウェア制御のもとでコマンドに反応して動的にリンク幅の上げ下げをネゴシエーションすることができる少なくとも一つの状態を含む、請求項７記載のデバイス。
【請求項１３】
少なくとも一つの他の集積回路とのポイントツーポイント・リンクを形成する相互接続を複数もつ集積回路であって、個々のリンクを構成する少なくとも一つの状態および当該集積回路をリセットすることなくリンク・エラーから回復するための少なくとも一つの状態をもつ状態機械を含んでおり、リンク・エラーから回復するための前記少なくとも一つの状態がリンク速度ネゴシエーション機能を含む、集積回路。
【請求項１４】
前記リンク速度ネゴシエーション機能がソフトウェア制御のもとで呼び出せる、請求項１３記載の集積回路。
【請求項１５】
リンク・エラーから回復するための前記少なくとも一つの状態がさらに、前記複数の相互接続のうちのいくつが他の集積回路と通信するために使われるかを修正するリンク幅ネゴシエーション機能をさらに含む、請求項１３記載の集積回路。
【請求項１６】
前記リンク幅ネゴシエーション機能がソフトウェア制御のもとで呼び出せる、請求項１５記載の集積回路。
【請求項１７】
前記集積回路が少なくとも部分的に、周辺コンポーネント相互接続（PCI）規格に準拠している、請求項１３記載の集積回路。
【請求項１８】
プロセッサ；
ポイントツーポイント・リンクをサポートできる回路と通信する回路相互接続；
前記プロセッサおよび前記回路相互接続に結合された入出力（I/O）コントローラであって、前記回路相互接続に結合された別個の回路とのポイントツーポイント・リンクを構成するための状態機械を含んでおり、前記状態機械は、前記I/Oコントローラの速度機能を広告する第一の状態と、前記別個の回路の速度機能を記録する第二の状態と、利用可能な最低速度で動作するよう前記ポイントツーポイント・リンクを構成する第三の状態とを有する、コントローラ；ならびに
当該電子システムのためのネットワーキング機能を提供するイーサネット（登録商標）・インターフェースを有する電子システム。
【請求項１９】
前記ポイントツーポイント・リンクが少なくとも部分的に、周辺コンポーネント相互接続（PCI）規格に準拠している、請求項１８記載の電子システム。
【請求項２０】
前記状態機械が、前記回路相互接続に結合された前記別個の回路と、異なるリンク速度を動的にネゴシエーションする少なくとも一つの状態を含む、請求項１８記載の電子システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概括的にはポイントツーポイント・リンクに、より特定的にはポイントツーポイント・リンクにおけるエージェント間のネゴシエーションに関する。
【背景技術】
【０００２】
リンク・ベースのシステムは、デバイス間で通信するためにポイントツーポイント・リンクを使う。リンク・ベースのシステムは典型的には、リンクの両端のデバイスの機能を認識するための精巧なトレーニング・プロセスを経ていく。デバイスがより高速になり、より多くの機能をもつにつれ、リンク・トレーニング・プロセスはより複雑になる。
【発明の開示】
【０００３】
［発明を実施するための最良の形態］
以下の詳細な記述では、例示として、本発明が実施されうる個別的な実施形態を示す付属の図面が参照される。これらの実施形態は、当業者が本発明を実施できるようにするのに十分な詳細さで記述される。本発明のさまざまな実施形態は、異なっていても、必ずしも相互に排他的ではないことは理解されるものとする。たとえば、ある実施形態との関連でここに記載される特定の特徴、構造または特性は、本発明の精神および範囲から外れることなく他の実施形態において実装されてもよい。さらに、開示される各実施形態内での個々の要素の位置または配置は、本発明の精神および範囲から外れることなく修正されうることは理解されるものとする。したがって、以下の詳細な記述は限定的な意味に解するべきではなく、本発明の範囲は、適切に解釈された付属の請求項およびそれとともに該請求項が資格を有する範囲いっぱいの等価物によってのみ定義される。図面において、同様の符号は、いくつかの図を通じて、同じまたは似通った機能を指す。
【０００４】
図１は、ポイントツーポイント・リンクによって結合された複数のデバイスの図を示している。デバイス１１０（デバイスＡとも称される）はデバイス１２０（デバイスＢ）、デバイス１３０（デバイスＣ）およびデバイス１４０（デバイスＤ）とポイントツーポイント・リンクで通信しているところが示されている。たとえば、デバイスＡはポイントツーポイント・リンク１２４を使ってデバイスＢと通信しているところが示されており、デバイスＡはポイントツーポイント・リンク１３４を使ってデバイスＣと通信しているところが示されており、デバイスＡはポイントツーポイント・リンク１４４を使ってデバイスＤと通信しているところが示されている。
【０００５】
実施形態によっては、図１に示されたデバイスおよびそれらをつなぐポイントツーポイント・リンクは、周辺コンポーネント相互接続エクスプレス（PCI  Express）規格のような相互接続規格に準拠して、あるいは部分的に準拠して動作する。ただし、これは本発明の限定ではない。たとえば、本発明のさまざまな実施形態は、インフィニバンド（Infiniband）およびCSIに準拠して、あるいは部分的に準拠してポイントツーポイント・リンクを動作させる。ここでの用法では、用語「PCI」は過去、現在もしくは将来の任意のPCI規格またはこれに限られないがPCIエクスプレスを含むその拡張を指す。
【０００６】
デバイス１１０、１２０、１３０および１４０は、ポイントツーポイント・リンク上でエージェントとして動作することのできるいかなる型のデバイスであってもよい。たとえば、デバイスは集積回路、集積回路を含む回路カードまたは複数の回路カードを含みうるモジュールでありうる。さらに、デバイス１１０、１２０、１３０および１４０のそれぞれはデバイスの階層構造を含みうる。
【０００７】
さまざまなデバイスの間のポイントツーポイント・リンクはいかなる幅であってもよい。たとえば、リンク１２４は８「レーン」の幅をもつよう示されており、リンク１３４および１４４はそれぞれ４レーン幅をもつよう示されている。各レーンは送受信対を含み、信号はシングルエンドでも差動でもよい。
【０００８】
諸デバイスは異なるリンク速度機能を有していてもよい。たとえば、より古いデバイスまたは前の世代からのデバイスは、より新しいデバイスまたはより最近の世代からのデバイスよりも遅いリンク速度機能を有することがある。図１のデバイスは、速度Xおよび速度Yと表される、一つまたは複数のリンク速度機能を有するよう示されている。ここで、XはYより遅い。たとえば、デバイスＡ、ＢおよびＤはXおよびY両方のリンク速度機能をもつのに対し、デバイスＣはリンク速度機能Xのみをもつ。
【０００９】
本発明のさまざまな実施形態において、ポイントツーポイント・リンクの速度がデバイス間でネゴシエーションされるのは、両デバイスが利用可能な最低速度で動作する動作状態に達したあとである。たとえば、動作を開始するとき、デバイスＡ、Ｂ、ＣおよびＤは互いにそのリンク速度機能を広告し、次いで利用可能な最低速度で動作するリンクを形成しうる。この例では、リンク１２４、１３４および１４４はみな速度Xで動作する動作状態に達する。速度Xで動作する状態に達したのち、デバイスは別の速度で動作するよう互いとネゴシエーションしうる。動作状態に達したのち、ポイントツーポイント・リンクの速度をネゴシエーションすることに加えて、リンクの幅もネゴシエーションされてもよい。たとえば、リンク１２４の幅は、ネゴシエーションを通じて、８レーンから４レーンまたはそれ以下に下げられることがありうる。
【００１０】
デバイス１１０、１２０、１３０および１４０のそれぞれは、上記したリンク・ネゴシエーション機能を提供する状態機械（SM:  state  machines）を含む。たとえば、デバイス１１０は状態機械１１２を含み、デバイス１２０は状態機械１２２を含み、デバイス１３０は状態機械１３２を含み、デバイス１４０は状態機械１４２を含む。図１に示されているさまざまな状態機械は他のデバイス内の状態機械とネゴシエーションしてもよく、またそれが位置するデバイス内の回路についての構成を与えてもよい。たとえば、状態機械１１２は、デバイス１４０内の状態機械１４２とネゴシエーションしてもよく、リンク１４４で通信するデバイス１１０内の回路の構成を与えてもよい。
【００１１】
実施形態によっては、各デバイスは複数の状態機械を含みうる。たとえば、状態機械１１２は、状態機械１２２、１３２および１４４のそれぞれとネゴシエーションするために一つずつで、三つの別個の状態機械を含みうる。さらに、実施形態によっては、状態機械動作はハードウェアまたはソフトウェアのいずれによって影響されてもよい。たとえば、デバイス１１０内のハードウェアが状態機械１１２に、信頼性を上げるためにより低いリンク速度をネゴシエーションするよう指示してもよい。たとえばまた、デバイス１１０によって実行されるソフトウェアまたは他所で実行されるソフトウェアが状態機械１１２に、電力節約のためにより低いリンク速度またはリンク幅縮小をネゴシエーションするよう指示してもよい。
【００１２】
図２は、ポイントツーポイント・リンク状態機械の動作を記述する状態機械図を示している。本発明のいくつかの実施形態では、状態機械１１２、１２２、１３２および１４２（図１）の一つまたは複数は、状態機械図２００に示されたものに従って動作しうる。
【００１３】
状態２１０はリセット状態である。リセット状態に達するのは、電力の中断後、あるいはハードウェア・リセットまたはソフトウェア・リセットが発生したあとでありうる。リセット状態を出るとき、状態機械２１０は、リンク相互接続に他のデバイスが結合されているかどうかに関してほとんどまたは全く情報をもたない。たとえば、リセット状態を出るとき、状態機械２００は、相互接続上にデバイスが存在しているかどうか（またはいくつ存在しているか）、その速度機能がどうであるか、あるいはそのリンクの幅を知らない。
【００１４】
リセット状態を出ると、状態機械２００は状態２２０に遷移する。ここではポイントツーポイント・リンクが可能な最低リンク速度で構成される。たとえば、先の図１を参照すると、状態機械１１２は、デバイスＡおよびＤが両方とも速度Yでの通信ができるにもかかわらず、デバイスＡを、ポイントツーポイント・リンク１４４でスピードXで通信するよう構成する。状態２２０の間に、状態機械２００はローカル・デバイスの速度機能を広告し、リンク相互接続に結合された他のデバイスの速度機能を記録する。状態２２０の間に、状態機械２００は他のデバイスの存在を検知し、リンク幅を決定し、識別子をさまざまなリンクに割り当て、複数リンクの制御を他の状態機械にハンドオフしてもよい。
【００１５】
ポイントツーポイント・リンクが利用可能な最低速度で動作するよう構成されたのち、状態機械２００が動作状態２３０に遷移する。動作状態２３０は、ポイントツーポイント・リンクを通じて通常の通信が起こりうる状態である。たとえば、動作状態における通常の通信は、グラフィック、メモリ・データまたは他の任意のデータを通信することを含みうる。
【００１６】
動作状態２３０はハードウェアまたはソフトウェアからの制御情報を受信しうる。たとえば、２３２に示されるように、動作状態２３０はハードウェア制御によって影響されてもよく、２３４に示されるように、動作状態２３０はソフトウェア制御によって影響されてもよい。実施形態によっては、ソフトウェア制御はレジスタを通じて実施される。たとえば、状態機械２００は、ソフトウェアにとってアクセス可能であるレジスタ内に保持されているデジタル情報に反応しうる。状態機械２００は、リンク速度、リンク幅およびポイントツーポイント・リンクのその他の属性のソフトウェア制御を許容するレジスタ・セットを含みうる。
【００１７】
ハードウェア制御が状態機械２００の動作に影響するのはさまざまなシナリオのもとでありうる。たとえば、最初に動作状態２３０に達したのち、状態機械２２０はハードウェア制御のもとですぐ、より高いリンク速度での動作をネゴシエーションしてもよい。こうしたことが起こるのは、状態機械２００がより高いリンク速度機能をもつデバイスにあり、やはりより高いリンク速度機能をもつデバイスと通信している場合でありうる。またたとえば、リンクがエラーを被っている場合、状態機械２００は、ハードウェア制御のもとで、リンク・パフォーマンスを改善しようとしてより遅いリンク速度をネゴシエーションすることもありうる。
【００１８】
ハードウェアまたはソフトウェア制御のいずれかのもとで、状態機械２００は状態２４０でリンク速度の変更をネゴシエーションしうる。動作状態２３０から状態２４０にはいり、動作状態２３０に戻る。このようにしてリンク速度の変更をネゴシエーションすることによって、状態機械２００は、リンク速度を修正するために、リセット状態２１０や構成状態２２０を通過しない。そうすることにおいて、リンク速度の変更は、リンクを中断することなくネゴシエーションされうる。
【００１９】
リンク速度は状態２４０において上下されうる。たとえば、パフォーマンスを改善するためにリンク速度を上げてもよいし、電力消費を減らすためにリンク速度を下げてもよい。実施形態によっては、状態２４０においてリンク幅の増減がネゴシエーションされることもできる。
【００２０】
図３は、リンク・トレーニングおよびステータス状態機械（LTSSM:  link  training  and  status  state  machine）の動作を記述する状態機械図を示している。図３のLTSSMはPCIエクスプレス・システムのコンテキストで記載されているが、これは本発明の限定ではない。上記したように、本発明のさまざまな実施形態は、ポイントツーポイント・リンクを含むいかなるリンク・ベースのシステムにおいても利用されうる。
【００２１】
状態機械３００は、「検出」（Detect）状態３１０、「ポーリング」（Polling）状態、「構成」（Configuration）状態、L0状態３４０および「回復」（Recovery）状態を含む。「ポーリング」状態は、「ポーリング．アクティブ」（Polling.Active）下位状態３２２および「ポーリング．構成」（Polling.Config）下位状態３２４を含む。「構成」状態は「構成．リンク幅」（Config.Linkwid）下位状態３３２、「構成．レーン数」（Config.Lanenum）下位状態３３４および「構成．完了」（Config.Complete）下位状態３３６を含む。「回復」（Recovery）状態は、「回復．速度」（Recovery.Speed）下位状態３５２、「回復．回復ロック」（Recovery.Rcvrlock）下位状態３５４、「回復．回復構成」（Recovery.Rcvrcfg）下位状態３５６および「回復．アイドル」（Recovery.Idle）下位状態３５８を含む。可能な状態および下位状態は示されているものに限定されない。たとえば、検出状態３１０が複数の下位状態を含んでいてもよく、下位状態があるように図示されている状態が単一の状態にたたまれてもよい。
【００２２】
PCIエクスプレスに基づくもののようなリンク・ベースのシステムは、リンクを動作状態にもっていくまでに複数の状態を含む精巧なトレーニング・プロセスを経ていく。たとえば、リンク・トレーニング・アルゴリズムは、「検出」状態の間にレーン上の受信者を検出し、「ポーリング」状態の間にトレーニング・シーケンスの交換を通じてシンボル・ロックを達成してリンク幅、機能的なレーンへのレーン番号割り当てを確立しようとし、それに続いて「構成」状態の間にレーン間ずれ補正（lane-to-lane  deskew）があり、その後にL0動作状態に行く。L0の間、トランザクションが交換される。リンク・レベルの再試行によって対処できないリンク・レベルのエラー（シンボル・ロックの喪失など）が「回復」状態を通じて対処される。「回復」状態は、リンクを有効（up）に保ちながら、シンボル・ロックを再確立し、どのレーンが機能的かを判別し、該機能レーン上でレーン間ずれ補正を実行することによって、L0にはいる前に回復しようとする。
【００２３】
リンク・ベースのリンク・トレーニング・プロトコルにおける主要な課題の一つは、リンクの状態または構成を通信するためのインバンド機構が全くないことである。リンク・ベースのシステムの主要な利点の一つは、少ないピンカウントで高い帯域幅を出すことであるので、これらのシステムは、接続されたコンポーネントにおけるリンクの状態ならびにその構成および機能を決定するリンク・トレーニング・プロトコルに多大な複雑さを入れる。たとえば、上流デバイスは16本のPCI-Eレーンを有してもよく、それは、1本のx16リンクまたは2本のx8リンクまたは4本のx4リンクまたは1本のx8リンクと2本のx4リンクの組み合わせとして構成されることができる。上流デバイスは、それが何個の下流デバイスに接続されているか、接続の型（レーン逆転［lane  reversed］、極性反転［polarity  inverted］）および個々のレーンの健全性を両方向において見きわめるために、レーン番号の割り当てに進み、個々のリンクを使う前に、リンク・トレーニング・プロセスを経ていく。これは複雑なプロセスである。というのも、リンク・トレーニング状態機械は、リンク・トレーニング・プロセスの異なる状態にあるかもしれないさまざまな下流デバイスを考慮しなければならず、レーン間ずれ補正や長い一連の回復すべき一過性エラーの可能性を考えれば、あるリンク内の個々のレーンどうしは同期していないかもしれないのである。
【００２４】
図３に示されるように、LTSSMは分離（split）でき、ある独立したリンクを形成することになるレーンの部分集合を一つまたは複数の二次LTSSMが引き受けられるようにする。図３は、リンク・トレーニング状態機械が分離できる場所の二つを示している。一つは「検出」状態から出る際である。複数のデバイスが検出される場合、いくつかのデバイスはリセットを出ていることがありえ、他のデバイスはまだリセットにあることがありうる。その結果、いくつかのレーンは受信者を検出し、他のレーンは受信者を検出しないことになる。受信者を検出するレーンは一つ（または複数）のLTSSMのもとで先に進むのに対し、受信者を検出しなかったレーンは一つ（または複数）の別個のLTSSMの制御下に残されることになる。次の分離は、「構成」状態の間に起こる。ここでは、独立した諸リンクの素性が確立される。
【００２５】
「ポーリング」状態の間に、トレーニング・シーケンス（TS）順序セット（ordered  sets）がGen1速度で送信され、ローカル・デバイスの速度機能が広告される。いくつかの実施形態では、「ポーリング」とL0との間で送信されるすべてのTS順序セットは、速度機能（または「データ・レート識別子」）を含む。
【００２６】
図３によって表されるような本発明のさまざまな実施形態において、リンクは常にGen1速度（利用可能な最低速度）でL0状態に来る。「構成」状態にある間およびGen1速度でのリンク・トレーニングの間、かつリンク幅が確立され、レーン番号が割り当てられたあと、各デバイスは、自分が接続されているデバイスの速度機能を、レーン間ずれ補正を確立するときの間に受信したデータ・レート識別子を通じて記録する。データレート識別子はレーン番号が割り当てられたあとに記録されるので、「構成」状態の間のLTSSM分離はレーン番号割り当てのあとに起こるので、LTSSMが扱っている接続されたデバイスは一つしかないことを注意しておくべきであろう。よって、速度の変更は、LTSSMを分離させる複雑さは含まない。ひとたびリンクがL0にあれば、L0から「回復」へ、そしてL0に戻る遷移ルートを取ることによって、ソフトウェアまたはハードウェアのいずれかを通じて速度変更を開始できる。
【００２７】
「回復．速度」下位状態は、新しいリンク速度への変更が実行される状態である。速度を変更するソフトウェア機構は所望の速度を構成レジスタに書き込むことによってもたらすことができる。ハードウェア機構は、最初により高い速度に変更するといったプロトコルのより高い層によって、あるいは速度変更が望ましいことがありうるエラーまたは電力管理といったイベントに応じてもたらすことができる。
【００２８】
本発明のさまざまな実施形態において、リンクの速度変更は、初期のフロー制御動作が完了したあとに任意的にL0状態においてのみ開始されることが許容される。開始側（initiator）が速度を変更することに決めると「回復」状態にはいり（「回復．回復ロック」下位状態）、「回復」の間に送られるトレーニング・シーケンスを送る。意図が速度を変えることであれば、開始側は、トレーニング・シーケンス中で速度変更を望むことを示すあるビットをセットし、該開始側が動作したい速度までの（その速度を含む）速度のみを広告する。開始側から最低限の数のそのような速度変更指標がセットされたトレーニング・シーケンスを受領すると、受領側（recipient）も、「回復．速度」にはいる前に最低限の数のトレーニング・シーケンスにおいて同じ速度変更ビットをセットする。開始側は速度変化の指標を受け取り、「回復．速度」にはいる。両側とも、両者が交換した速度変更ビットがセットされたトレーニング・シーケンスにおいて両側ともによって広告されていた最大速度を選ぶ。両側とも、「回復．速度」においては電気的なアイドルにあり、一方、両側とも、新しい速度に変更してから、新しい速度で「回復．回復ロック」に再入する。
【００２９】
どちらかの側が新しい速度で動作しそこなう場合には、新しい速度で受信しそこなう側は「回復．速度」に抜け、相手側を「回復．回復構成」から「回復．速度」に引き込む。二度目に「回復．速度」にはいった際、速度はL0速度に戻され、通常の回復作用によって、リンクが元の速度に戻ることが保証される。これは、受領側が、時間切れ期間待ったあとになっても「回復．回復ロック」の間にシンボル・ロックを達成しそこなうときに起こりうる。次いで、シンボル・ロックを達成しそこなった側のLTSSMが「回復．速度」にはいり、そこで古い速度に戻る。相手側は「回復．回復構成」にあってもよいが、L0速度と異なる速度で動作する場合、電気的アイドルを見たのちに「回復．速度」に戻ることになる。
【００３０】
リンクはまずGen1速度でL0に来るので、速度はすでに複雑なリンク・トレーニング・プロトコルをさらに複雑にしはしない。さらに、常に利用可能な最低速度で来ることによって、図３のLTSSMは既存のより古い世代のデバイスとの相互運用性を与える。というのも、より古い世代のデバイスへのレーンが、該より古いデバイスが扱えるよりも大きな速度で駆動されることがないからである。また、L0に先立ってリンク速度をネゴシエーションしないことによって、リンク・トレーニング時間を低く保つことができる。
【００３１】
本発明のさまざまな実施形態は、リンク速度が通常動作の間に変更されることを許容する。よりよい電力管理のために、リンク速度を、そのリンクのランタイムの帯域幅に依存して動的に変更することを選ぶことができる。たとえば、あるリンクがGen2速度で動作している場合、帯域幅需要が一時的に低ければ、電力節約のためにGen1速度に低下させることを選ぶことができる。これは、リンクをこわすことなく動的に行える。さもなければ、そのリンクの下にある階層構造全体を再構成するためのソフトウェア介入がからんでくるところである。
【００３２】
リンク速度の変更は、よりよい信頼性および可用性のために使われることができる。たとえば、特定の周波数で動作していてある時間にわたってリンクがぎりぎりになった場合、該当するなら再び周波数を変更することを決める前に、リンク速度および監視されるエラーレートを変更できる。したがって、速度変更プロセスの間、リンクは有効（up）に留まるので、リンク速度は、信頼性および可用性の所望のレベルを得るために修正できる変数である。
【００３３】
図４は、本発明のさまざまな実施形態に基づくフローチャートを示している。実施形態によっては、方法４００は、ポイントツーポイント・リンクで通信するデバイス内のリンク状態機械によって使われてもよい。実施形態によっては、方法４００またはその諸部分は、集積回路、プロセッサまたは電子システムによって実行され、その実施形態はさまざまな図に示されている。方法４００は、該方法を実行する装置、ソフトウェア要素またはシステムの特定の型によって限定されない。方法４００におけるさまざまな作用は、呈示された順に実行されてもよいし、あるいは異なる順序で実行されてもよい。さらに、実施形態によっては、図４に挙げられたいくつかの作用は方法４００から省略される。
【００３４】
方法４００は、デバイスがサポートされているリンク速度を広告するブロック４１０で始まるよう示されている。PCIエクスプレス・システムのコンテキストでは、リンク速度は世代番号（たとえばGen1、Gen2など）に対応しうる。他のコンテキストでは、リンク速度は数値的なデータ・レートに対応することもある。サポートされるリンク速度は、リンク・トレーニング・シーケンスの間に他のデバイスに広告されうる。たとえば、リンク速度は、状態２２０（図２）または状態３３２、３３４および３３６（図３）のような構成状態の間に、状態３２２または３２４（図３）のようなポーリング状態の間に、あるいは他の状態で広告されうる。
【００３５】
４２０では、他のデバイスによってサポートされるリンク速度が記録される。リンク速度は、状態２２０（図２）または状態３３２、３３４および３３６（図３）のような構成状態において記録されてもよい。実施形態によっては、リンク速度が記録される時点までには、リンク速度は多くのTS順序セットにおいて受信されている。さらに、実施形態によっては、リンク速度は、最低限の数のTS順序セットにおいて受信されるまで記録されない。４３０では、利用可能な最低速度を使ってポイントツーポイント・リンクが確立される。PCIエクスプレス・システムのコンテキストでは、ポイントツーポイント・リンクは常にまずGen1速度で確立される。他のシステムのコンテキストでは、ポイントツーポイント・リンクは常に、両方のデバイスと互換な最低速度で確立される。
【００３６】
４４０では、リンクのための動作状態にはいる。PCIエクスプレス・システムのコンテキストでは、動作状態はL0である。他のシステムのコンテキストでは、動作状態は、そのリンクを通じてトランザクションが実行されることを許容するいかなる状態でもよい。実施形態によっては、動作状態に達する時点までには、状態機械分離のため、複数の状態機械が複数のリンクに関わっていることがありうる。状態機械のそれぞれはまずそのそれぞれのリンクを利用可能な最低速度での動作状態にもってくる。
【００３７】
４５０では、より高い速度が、リンクを中断することなくネゴシエーションされる。実施形態によっては、これはPCI準拠デバイス（「開始側」）内の状態機械が、通常はリンク・エラーからの回復に関する回復状態にはいることに対応する。たとえば、図３に示されるように、リンクを中断することなくより高いリンク速度を動的にネゴシエーションするために「回復」状態にはいってもよい。
【００３８】
実施形態によっては、ブロック４５０は、ソフトウェア介入なしに実行される。たとえば、リンク・トレーニング・シーケンスの間、両デバイスが、可能な最低速度よりも高いサポートされているリンク速度を広告する場合、利用可能な最低速度で動作状態にはいったのち、両デバイスはより高い速度をネゴシエーションするために自動的に回復状態にはいってもよい。他の実施形態では、ブロック４５０はソフトウェア介入の結果として実行されてもよい。たとえば、ソフトウェアは、状態機械により高いリンク速度をネゴシエーションするよう試みさせる構成レジスタに書き込みをしてもよい。
【００３９】
４６０では、リンク速度またはリンク幅は、ハードウェアまたはソフトウェア制御のいずれかのもとで、動的に上げ下げをネゴシエーションされてもよい。リンク速度もしくはリンク幅またはその両方は、電力を低減するために、あるいは信頼性を増すために下げるようネゴシエーションされてもよいし、リンク速度もしくはリンク幅またはその両方は、通信帯域幅を増大させるために、上げるようネゴシエーションされてもよい。
【００４０】
図５は、本発明のさまざまな実施形態に基づくシステム図を示している。電子システム５００は、プロセッサ５１０、入出力（I/O）コントローラ５３０、回路相互接続５２０およびイーサネット（登録商標）・インターフェース５４０を含む。実施形態によっては、電子システム５００は、ポイントツーポイント・リンクをもつコンピュータであってもよい。実施形態によっては、電子システム５００は、ポイントツーポイント・リンクを用いて通信するデバイスを含み、イーサーネット・インターフェースをも含むシステムを表していてもよい。例には、無線ネットワークにおけるアクセス・ポイントもしくは移動局、コンピュータまたはイーサネット（登録商標）・インターフェースをもつデジタルカメラが含まれる。
【００４１】
プロセッサ５１０は任意の型のプロセッサを表しており、これに限られないが、マイクロプロセッサ、デジタル信号プロセッサ、マイクロコントローラなどが含まれる。実施形態によっては、プロセッサ５１０はポイントツーポイント・リンク５１２を使ってI/Oコントローラ５３０と通信する。たとえば、実施形態によっては、リンク５１２は、上記のような動的な速度ネゴシエーション機能をもつリンクであってもよい。
【００４２】
イーサネット（登録商標）・インターフェース５４０は、電子システム５００と他のシステムとの間の通信を提供しうる。たとえば、実施形態によっては、電子システム５００は、イーサネット（登録商標）・インターフェース５４０を利用して有線ネットワークと通信する、あるいは他のアクセス・ポイントと通信するアクセス・ポイントであってもよい。本発明のいくつかの実施形態は、イーサーネット・インターフェース５４０を含まない。たとえば、実施形態によっては、電子システム５００は、バスまたは他の型のポートを使ってコンピュータまたはネットワークと通信するネットワーク・インターフェース・カード（NIC）であってもよい。
【００４３】
I/Oコントローラ５３０は、ポイントツーポイント・リンクを使って電子システム５００内のさまざまな他のブロックとの間の通信を提供する。たとえば、PCIエクスプレス・システムのコンテキストでは、I/Oコントローラ５３０はルート複合体（RC:  root  complex）であってもよい。回路相互接続５２０は、別個の回路をポイントツーポイント・リンクを使ってI/Oコントローラ５３０に結合させるのに有用な任意の型の相互接続を表す。実施形態によっては、回路相互接続５２０は回路ボード上のトレースを含み、実施形態によっては回路相互接続５２０はケーブルまたはワイヤを含む。さらに実施形態によっては、回路相互接続５２０は回路ボード上の集積回路フットプリントまたは回路カードを受け入れることのできる一つもしくは複数のスロットを含む。回路相互接続５２０は、ポイントツーポイント・リンクを使ってI/Oコントローラ５３０と通信できるいかなる型の回路を受け容れてもよい。たとえば、回路相互接続５２０に結合された回路は、PCIエクスプレス互換システムにおけるエンドポイント（Endpoint）として動作しうる。エンドポイントの例は、これに限られないが、PCIエクスプレス取り付けされたグラフィック・コントローラまたはPCIエクスプレスUSBホスト・コントローラが含まれる。
【００４４】
本発明についてある実施形態との関連で述べてきたが、本発明の精神および範囲から外れることなく修正および変更をなしうることは当業者はすぐ理解するであろう。そのような修正および変更は、本発明の範囲および付属の請求項の範囲内であると考えられる。
【図面の簡単な説明】
【００４５】
【図１】ポイントツーポイントによって結合された複数のデバイスを示す図である。
【図２】ポイントツーポイント・リンクの状態機械の動作を記述する状態機械図である。
【図３】ポイントツーポイント・リンクの状態機械の動作を記述する状態機械図である。
【図４】本発明のさまざまな実施形態に基づくフローチャートを示す図である。
【図５】本発明のさまざまな実施形態に基づくシステム図である。
【図１】
2008547362.tif 000003
【図２】
2008547362.tif 000004
【図３】
2008547362.tif 000005
【図４】
2008547362.tif 000006
【図５】
2008547362.tif 000007
【国際調査報告】
2008547362.tif 000008
2008547362.tif 000009
2008547362.tif 000010