(57)【特許請求の範囲】
【請求項１】
テストパターン及びエラー報告シーケンスを含むべきテストモード信号を生成するコントロールロジックと、
１又は複数の拡張デバイス、及び２又はより多くのサブリンクを有するリンク上で前記テストモード信号を送信する送信機ロジックとを備え、前記テストモード信号は複数の前記サブリンクのうちの特定の１つの上で送信されるべきであり、前記テストパターンは、特定の前記サブリンク上のエラーを識別すべく受信デバイスにより使用されるべきであり、複数の前記サブリンクにおいて、複数のサブリンクのエラーステータスを記述すべく、前記エラー報告シーケンスは、エラー情報と共にエンコードされ、
前記エラー報告シーケンスは、複数のセグメントを有し、各セグメントは、前記複数のサブリンクのそれぞれ１つのエラーステータスを記述し、
各セグメントは、１又は複数のオーダードセットを備え、前記複数のオーダードセットの各々の少なくとも一部は、前記複数のサブリンクの少なくとも１つのエラーステータスを識別するためにエンコードされるべく提供される、装置。
【請求項２】
テストパターン及びエラー報告シーケンスを含むべきテストモード信号を生成するコントロールロジックと、
１又は複数の拡張デバイス、及び２又はより多くのサブリンクを有するリンク上で前記テストモード信号を送信する送信機ロジックとを備え、前記テストモード信号は複数の前記サブリンクのうちの特定の１つの上で送信されるべきであり、前記テストパターンは、特定の前記サブリンク上のエラーを識別すべく受信デバイスにより使用されるべきであり、複数の前記サブリンクにおいて、複数のサブリンクのエラーステータスを記述すべく、前記エラー報告シーケンスは、エラー情報と共にエンコードされ、
前記テストパターンは、テストの間に各サブリンクにおいて再生成される、予め規定されたパターンを有する、装置。
【請求項３】
前記エラー報告シーケンスは、複数のセグメントを有し、各セグメントは、前記複数のサブリンクのそれぞれ１つのエラーステータスを記述する、請求項２に記載の装置。
【請求項４】
各セグメントは、１又は複数のオーダードセットを備え、前記複数のオーダードセットの各々の少なくとも一部は、前記複数のサブリンクの少なくとも１つのエラーステータスを識別するためにエンコードされるべく提供される、請求項３に記載の装置。
【請求項５】
前記テストモード信号はループバックテストモード内で送信され、前記テストモード信号の複数のインスタンスは、前記リンク上の第１のデバイスから、前記１又は複数の拡張デバイスを介して第２のデバイスへ送信されるべきであり、前記第２のデバイスから、前記１又は複数の拡張デバイスの少なくとも１つを介して前記第１のデバイスに戻るように、更に、送信されるべきである、請求項１から４のいずれか一項に記載の装置。
【請求項６】
前記リンクの前記複数のサブリンクのうちの別のサブリンクに接続された別のデバイスからの前記テストモード信号の前記複数のインスタンスの少なくとも１つを受信するための受信機ロジックを更に備え、前記テストモード信号の各インスタンスは、前記テストパターンのインスタンス及び前記エラー報告シーケンスのインスタンスを含む、請求項５に記載の装置。
【請求項７】
前記テストパターンの前記インスタンスに基づいて、前記別のサブリンク上の１又は複数のエラーを判断するエラー検出ロジックを更に備え、
複数のエラーは、サブリンクを介して受信されるテストモード信号に含まれるような前記テストパターンのインスタンスが、前記テストパターンの予測値から外れるとの識別に基づいて前記サブリンクに対して判断される、請求項６に記載の装置。
【請求項８】
前記１又は複数の拡張デバイスは、リタイマを有する、請求項１から７のいずれか１項に記載の装置。
【請求項９】
前記装置は、前記リタイマを備える、請求項８に記載の装置。
【請求項１０】
各セグメントは、それぞれのサブリンクの下流チャネル及び上流チャネルのうちの１つを記述する、請求項１または３に記載の装置。
【請求項１１】
各オーダードセットはそれぞれのＳＫＰオーダードセットを含む、請求項１または４に記載の装置。
【請求項１２】
前記１又は複数の拡張デバイスは、少なくとも２つの拡張デバイスを有し、前記２又はより多くのサブリンクは、３つのサブリンクを有し、前記複数のセグメントは、少なくとも５つのセグメントを有する、請求項１または３に記載の装置。
【請求項１３】
前記コントロールロジックは、前記エラー報告シーケンスにおいて先行するサブリンクに対して検出されたエラー情報をエンコードし、前記２又はより多くのサブリンクにおいて、他の複数のサブリンクの既に検出されたエラーステータスについてのエラー情報を前記エラー報告シーケンスにおいて維持する、請求項１から１２のいずれか１項に記載の装置。
【請求項１４】
前記エラー情報は、サブリンクについて検出されたエラーの数、出現したリンクのレーン、及び、受信されたテストパターンにおいて検出された複数のエラーの位置のうちの１又は複数を有する、請求項１３に記載の装置。
【請求項１５】
前記テストパターンは、１又は複数のオーダードセットを有する、請求項２に記載の装置。
【請求項１６】
前記コントロールロジックは、前記リンクがテストモードにあること、及び、前記テストモード信号が前記テストモードに従って送信されたことを識別する、請求項１から１５のいずれか１項に記載の装置。
【請求項１７】
リンクがテストモードに入るべきことを識別する段階であって、前記リンクは１又は複数の拡張デバイス及び２又はより多くのサブリンクを有する、段階と、
テストモード信号を生成する段階であって、前記テストモード信号はテストパターン及びエラー報告シーケンスを有し、複数の前記サブリンクにおいて、複数のサブリンクのエラーステータスを記述すべく、エラー情報と共に、前記エラー報告シーケンスは、エンコードされるべきである、段階と、
前記複数のサブリンクのうちの特定の１つ上で、前記テストモード内で前記テストモード信号を送信する段階とを備え、
前記エラー報告シーケンスは、複数のセグメントを有し、各セグメントは、前記複数のサブリンクのそれぞれ１つのエラーステータスを記述し、
各セグメントは、１又は複数のオーダードセットを備え、前記複数のオーダードセットの各々の少なくとも一部は、前記複数のサブリンクの少なくとも１つのエラーステータスを識別するためにエンコードされるべく提供される、方法。
【請求項１８】
リンクがテストモードに入るべきことを識別する段階であって、前記リンクは１又は複数の拡張デバイス及び２又はより多くのサブリンクを有する、段階と、
テストモード信号を生成する段階であって、前記テストモード信号はテストパターン及びエラー報告シーケンスを有し、複数の前記サブリンクにおいて、複数のサブリンクのエラーステータスを記述すべく、エラー情報と共に、前記エラー報告シーケンスは、エンコードされるべきである、段階と、
前記複数のサブリンクのうちの特定の１つ上で、前記テストモード内で前記テストモード信号を送信する段階とを備え、
前記テストパターンは、テストの間に各サブリンクにおいて再生成される、予め規定されたパターンを有する、方法。
【請求項１９】
前記エラー報告シーケンスは複数のセグメントを有し、各セグメントは、前記複数のサブリンクのそれぞれ１つのエラーステータスを記述する、請求項１８に記載の方法。
【請求項２０】
前記テストモード信号を生成する段階は、
前記リンクにおける先行するサブリンクについて決定されるエラーステータスを識別する段階と、
前記先行するサブリンクの前記エラーステータスがエンコードされるべき前記複数のセグメントのうちの特定の１つを識別する段階と、
前記特定のセグメントにおいて前記エラーステータスをエンコードする段階とを有する、請求項１７または１９に記載の方法。
【請求項２１】
テストモードにおけるリンク上でテストモード信号を受信する受信機ロジックであって、前記リンクは、少なくとも１つの拡張デバイス、及び２又はより多くのサブリンクを有し、前記テストモード信号は、テストパターン及びエラー報告シーケンスを有し、前記テストモード信号は、複数の前記サブリンクのうちの特定の１つの上で送信され、前記エラー報告シーケンスは、複数の前記サブリンクにおいて複数のサブリンクのエラーステータスを記述すべく、エラー情報と共にエンコードされる、受信機ロジックと、
前記特定のサブリンクのエラーステータスを識別すべく、前記テストモード信号において、前記テストパターンを評価するコントロールロジックとを備え、
前記テストパターンは、前記テストパターンが予測されるテストパターンから外れるか否かを判断するべく評価され、
前記テストパターンがテストモードについて規定され、前記テストモードは、前記リンクの各サブリンクのテストを含み、前記テストパターンのそれぞれのインスタンスは、それぞれの前記サブリンクの端部において受信された前記テストパターンのそれぞれの前記インスタンスが、前記規定されたテストパターンから外れているか否かを判断すべく、前記複数のサブリンクの複数の前記テストの各々において、生成及び送信される、装置。
【請求項２２】
テストモードにおけるリンク上でテストモード信号を受信する受信機ロジックであって、前記リンクは、少なくとも１つの拡張デバイス、及び２又はより多くのサブリンクを有し、前記テストモード信号は、テストパターン及びエラー報告シーケンスを有し、前記テストモード信号は、複数の前記サブリンクのうちの特定の１つの上で送信され、前記エラー報告シーケンスは、複数の前記サブリンクにおいて複数のサブリンクのエラーステータスを記述すべく、エラー情報と共にエンコードされる、受信機ロジックと、
前記特定のサブリンクのエラーステータスを識別すべく、前記テストモード信号において、前記テストパターンを評価するコントロールロジックとを備え、
前記エラー報告シーケンスは、複数のセグメントを有し、各セグメントは、前記複数のサブリンクのそれぞれ１つのエラーステータスを記述し、
各セグメントは、１又は複数のオーダードセットを備え、前記複数のオーダードセットの各々の少なくとも一部は、前記複数のサブリンクの少なくとも１つのエラーステータスを識別するためにエンコードされるべく提供される、装置。
【請求項２３】
前記テストパターンは、前記テストパターンが予測されるテストパターンから外れるか否かを判断するべく評価される、請求項２２に記載の装置。
【請求項２４】
前記テストパターンがテストモードについて規定され、前記テストモードは、前記リンクの各サブリンクのテストを含み、前記テストパターンのそれぞれのインスタンスは、それぞれの前記サブリンクの端部において受信された前記テストパターンのそれぞれの前記インスタンスが、前記規定されたテストパターンから外れているか否かを判断すべく、複数のサブリンクの複数の前記テストの各々において、生成及び送信される、請求項２３に記載の装置。
【請求項２５】
前記コントロールロジックは、前記テストモード信号の別のインスタンスを生成し、前記テストモード信号の前記別のインスタンスは、前記特定のサブリンクの前記エラーステータスを識別すべくエンコードされたエラー報告シーケンスを含み、
前記装置は、前記複数のサブリンクの別の１つの上で前記テストモード信号の前記別のインスタンスを送信する送信機ロジックを更に備える、請求項２１から２４のいずれか１項に記載の装置。
【請求項２６】
前記テストモード信号の前記別のインスタンスにおける前記エラー報告シーケンスは、前記リンクの他の複数のサブリンクの既に判断されたエラーステータスについてのエラーステータス情報を保持する、請求項２５に記載の装置。
【請求項２７】
前記エラー報告シーケンスは、複数のセグメントを有し、各セグメントは、前記複数のサブリンクのそれぞれ１つのエラーステータスを記述する、請求項２５又は２６に記載の装置。
【請求項２８】
前記コントロールロジックは、前記特定のサブリンクの前記エラーステータスを内部にエンコードするための前記複数のセグメントのうちの特定の１つを識別する、請求項２７に記載の装置。
【請求項２９】
テストモードにおけるリンク上でテストモード信号を受信する段階であって、前記リンクは、少なくとも１つの拡張デバイス及び２又はより多くのサブリンクを有し、前記テストモード信号は、テストパターン及びエラー報告シーケンスを有し、複数の前記サブリンクにおいて複数のサブリンクのエラーステータスを記述すべく、前記エラー報告シーケンスは、エラー情報と共にエンコードされるべきであり、前記テストモード信号は前記複数のサブリンクのうちの特定の１つの上で送信される、段階と、
前記テストパターンが予測されるテストパターンと実質的に適合するか否かを識別すべく、前記テストモード信号における前記テストパターンを評価する段階と、
前記テストパターンの前記評価に基づいて、前記特定のサブリンクのエラーステータスを判断する段階とを備え、
前記テストパターンは、前記テストパターンが予測されるテストパターンから外れるか否かを判断するべく評価され、
前記テストパターンがテストモードについて規定され、前記テストモードは、前記リンクの各サブリンクのテストを含み、前記テストパターンのそれぞれのインスタンスは、それぞれの前記サブリンクの端部において受信された前記テストパターンのそれぞれの前記インスタンスが、前記規定されたテストパターンから外れているか否かを判断すべく、前記複数のサブリンクの複数の前記テストの各々において、生成及び送信される、方法。
【請求項３０】
テストモードにおけるリンク上でテストモード信号を受信する段階であって、前記リンクは、少なくとも１つの拡張デバイス及び２又はより多くのサブリンクを有し、前記テストモード信号は、テストパターン及びエラー報告シーケンスを有し、複数の前記サブリンクにおいて複数のサブリンクのエラーステータスを記述すべく、前記エラー報告シーケンスは、エラー情報と共にエンコードされるべきであり、前記テストモード信号は前記複数のサブリンクのうちの特定の１つの上で送信される、段階と、
前記テストパターンが予測されるテストパターンと実質的に適合するか否かを識別すべく、前記テストモード信号における前記テストパターンを評価する段階と、
前記テストパターンの前記評価に基づいて、前記特定のサブリンクのエラーステータスを判断する段階とを備え、
前記エラー報告シーケンスは、複数のセグメントを有し、各セグメントは、前記複数のサブリンクのそれぞれ１つのエラーステータスを記述し、
各セグメントは、１又は複数のオーダードセットを備え、前記複数のオーダードセットの各々の少なくとも一部は、前記複数のサブリンクの少なくとも１つのエラーステータスを識別するためにエンコードされるべく提供される、方法。
【請求項３１】
前記テストモード信号が第１のテストモード信号を有し、
前記方法は、第２のテストモード信号を生成する段階であって、前記第２のテストモード信号は、前記予測されるテストパターンに従う前記テストパターンのインスタンス、及び、前記特定のサブリンクについて判断された前記エラーステータスを追加する前記エラー報告シーケンスのインスタンスを含む、段階と、
前記２又はより多くのサブリンクの別の１つの上で前記第２のテストモード信号を送信する段階とを更に備える、請求項２９または３０に記載の方法。
【請求項３２】
第１のデバイスと、
リンクを使用して、前記第１のデバイスと通信可能に結合された、第２のデバイスと、
前記リンクに含まれる１又は複数の拡張デバイスと、
前記リンクのテストモード内で複数のテストモード信号を送信するテストモードロジックとを備え、
データは、前記１又は複数の拡張デバイスを介して、前記第１のデバイスと前記第２のデバイスとの間で送信され、
前記リンクは複数のサブリンクを有し、
前記複数のテストモード信号の各インスタンスは、前記複数のサブリンクのそれぞれ１つのテストに対応し、かつ、テストパターン及びエラー報告シーケンスを有し、前記対応するサブリンク上で複数のエラーを識別すべく、前記テストパターンは、テストモード信号を受信するデバイスによって使用され、前記複数のサブリンクについて判断されたエラーステータスを記述すべく、前記エラー報告シーケンスは、エラー情報と共にエンコードされ、
前記テストモード信号に対応する前記サブリンクのエラーステータスを識別すべく、前記テストモードロジックは、更に、複数のテストモード信号を受信し、前記テストモード信号中の前記テストパターンを評価し、
前記テストパターンは、前記テストパターンが予測されるテストパターンから外れるか否かを判断するべく評価され、
前記テストパターンがテストモードについて規定され、前記テストモードは、前記リンクの各サブリンクのテストを含み、前記テストパターンのそれぞれのインスタンスは、それぞれの前記サブリンクの端部において受信された前記テストパターンのそれぞれの前記インスタンスが、前記規定されたテストパターンから外れているか否かを判断すべく、前記複数のサブリンクの複数の前記テストの各々において、生成及び送信される、システム。
【請求項３３】
第１のデバイスと、
リンクを使用して、前記第１のデバイスと通信可能に結合された、第２のデバイスと、
前記リンクに含まれる１又は複数の拡張デバイスと、
前記リンクのテストモード内で複数のテストモード信号を送信するテストモードロジックとを備え、
データは、前記１又は複数の拡張デバイスを介して、前記第１のデバイスと前記第２のデバイスとの間で送信され、
前記リンクは複数のサブリンクを有し、
前記複数のテストモード信号の各インスタンスは、前記複数のサブリンクのそれぞれ１つのテストに対応し、かつ、テストパターン及びエラー報告シーケンスを有し、前記対応するサブリンク上で複数のエラーを識別すべく、前記テストパターンは、テストモード信号を受信するデバイスによって使用され、前記複数のサブリンクについて判断されたエラーステータスを記述すべく、前記エラー報告シーケンスは、エラー情報と共にエンコードされ、
前記エラー報告シーケンスは、複数のセグメントを有し、各セグメントは、前記複数のサブリンクのそれぞれ１つのエラーステータスを記述し、
各セグメントは、１又は複数のオーダードセットを備え、前記複数のオーダードセットの各々の少なくとも一部は、前記複数のサブリンクの少なくとも１つのエラーステータスを識別するためにエンコードされるべく提供される、システム。
【請求項３４】
前記テストモード信号に対応する前記サブリンクのエラーステータスを識別すべく、前記テストモードロジックは、更に、複数のテストモード信号を受信し、前記テストモード信号中の前記テストパターンを評価する、請求項３３に記載のシステム。
【請求項３５】
前記複数の拡張デバイス及び前記第１のデバイスの各々は、前記テストモードロジックのそれぞれのインスタンスを含む、請求項３２または３４に記載のシステム。
【請求項３６】
前記第２のデバイスもまた、前記テストモードロジックのインスタンスを含む、請求項３５に記載のシステム。
【請求項３７】
１又は複数のレジスタと、
前記複数のテストモード信号から判断され、前記リンクに対応する前記１又は複数のレジスタにおける前記エラー報告シーケンス内に含まれる、前記複数のサブリンクについてのエラーステータス情報を記録する報告ロジックとを更に備える請求項３２から３６のいずれか１項に記載のシステム。
【請求項３８】
前記第１のデバイスが、ルートポートデバイスを備える、請求項３２から３７のいずれか１項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピューティングシステムに関し、特に（排他的ではないが）ポイントツーポイントインターコネクトに関する。
【背景技術】
【０００２】
半導体処理及びロジックの設計の進歩は、集積回路のデバイスに存在し得る、ロジックの量の増加を許している。その当然の結果として、コンピュータシステムの構成は、システムの単一又は複数の集積回路から、個々の集積回路に存在するマルチコア、複数のハードウェアスレッド、及び複数の論理プロセッサへ、並びに、そのようなプロセッサ内に統合された他のインタフェースへと進化している。プロセッサ又は集積回路は、典型的には単一の物理プロセッサダイを備え、プロセッサダイは、任意の数のコア、ハードウェアスレッド、論理プロセッサインタフェース、メモリ、コントローラハブ等を含んでよい。
【０００３】
より小さなパッケージで、より大きな処理能力に適合できる、より高い能力の結果として、より小さなコンピューティングデバイスが人気を高めている。スマートフォン、タブレット、超薄型ノートブック、及び他のユーザ機器は、指数関数的に成長している。しかしながら、より小型のこれらのデバイスは、データストレージ及びフォームファクタを超える複雑な処理という両方の目的で、サーバに依存している。結果的に、高性能コンピュータ市場（即ち、サーバスペース）の需要もまた、増加している。例えば、最新のサーバには、典型的には、マルチコアを有するシングルプロセッサだけでなく、演算能力を高めるためのマルチ物理プロセッサ（マルチソケットとも称される）が、搭載されている。しかし、コンピューティングシステムのデバイスの数ととともに処理能力が増加するにつれて、ソケットと他のデバイスとの間の通信が、より重要になっている。
【０００４】
実際に、複数のインターコネクトは、電気通信を主に処理してきたより従来型のマルチドロップバスから、高速通信を容易にする本格的なインターコネクトアーキテクチャへと成長している。残念ながら、将来のプロセッサに対する要求がより一層高レートでの消費となるにつれて、対応する要求が、既存のインターコネクトアーキテクチャの機能へ置かれている。
【図面の簡単な説明】
【０００５】
【図１】インターコネクトアーキテクチャを含む、コンピューティングシステムの実施形態を示す。
【０００６】
【図２】層状スタックを含む、インターコネクトアーキテクチャの実施形態を示す。
【０００７】
【図３】インターコネクトアーキテクチャ内で生成又は受信されるリクエスト又はパケットの実施形態を示す。
【０００８】
【図４】インターコネクトアーキテクチャについての送信機及び受信機ペアの実施形態を示す。
【０００９】
【図５Ａ】１又は複数の拡張デバイスを含む例示のリンクの簡略化されたブロックダイアグラムを示す。
【図５Ｂ】１又は複数の拡張デバイスを含む例示のリンクの簡略化されたブロックダイアグラムを示す。
【００１０】
【図６Ａ】リンクの１又は複数のサブリンクにおいて、エラーを判断するためのテストモードの例示の実装の簡略化されたブロックダイアグラムである。
【図６Ｂ】リンクの１又は複数のサブリンクにおいて、エラーを判断するためのテストモードの例示の実装の簡略化されたブロックダイアグラムである。
【図６Ｃ】リンクの１又は複数のサブリンクにおいて、エラーを判断するためのテストモードの例示の実装の簡略化されたブロックダイアグラムである。
【図６Ｄ】リンクの１又は複数のサブリンクにおいて、エラーを判断するためのテストモードの例示の実装の簡略化されたブロックダイアグラムである。
【図６Ｅ】リンクの１又は複数のサブリンクにおいて、エラーを判断するためのテストモードの例示の実装の簡略化されたブロックダイアグラムである。
【００１１】
【図７】例示のオーダードセットの表現を示す。
【００１２】
【図８】リンクの例示の切断及び再接続を表す簡略化されたブロックダイアグラムを示す。
【００１３】
【図９】マルチモードリタイマを提供するための例示の技術を示すフローチャートである。
【００１４】
【図１０】リタイマの例示の物理層ロジックの簡略化されたブロックダイアグラムを示す。
【００１５】
【図１１Ａ】拡張デバイスを使用して実装されるリンクに関連する例示の技術を示すフローチャートである。
【図１１Ｂ】拡張デバイスを使用して実装されるリンクに関連する例示の技術を示すフローチャートである。
【図１１Ｃ】拡張デバイスを使用して実装されるリンクに関連する例示の技術を示すフローチャートである。
【図１１Ｄ】拡張デバイスを使用して実装されるリンクに関連する例示の技術を示すフローチャートである。
【図１１Ｅ】拡張デバイスを使用して実装されるリンクに関連する例示の技術を示すフローチャートである。
【００１６】
【図１２】マルチコアプロセッサを含むコンピューティングシステムについてのブロックダイアグラムの実施形態を示す。
【００１７】
【図１３】マルチコアプロセッサを含むコンピューティングシステムについてのブロックダイアグラムの別の実施形態を示す。
【００１８】
【図１４】プロセッサについてのブロックダイアグラムの実施形態を示す。
【００１９】
【図１５】プロセッサを含むコンピューティングシステムについてのブロックダイアグラムの別の実施形態を示す。
【００２０】
【図１６】複数のプロセッサを含むコンピューティングシステムについてのブロックの実施形態を示す。
【００２１】
【図１７】システムオンチップ（ＳｏＣ）として実装される例示のシステムを示す。
【発明を実施するための形態】
【００２２】
以下の説明において、本発明の深い理解を与えるべく、多数の具体的な詳細が説明されている。例えば、複数の特定のタイプのプロセッサ及びシステム構成、特定のハードウェア構造、特定のアーキテクチャ上及びマイクロアーキテクチャ上の細部、特定のレジスタ構成、特定の命令タイプ、特定のシステムコンポーネント、特定の寸法／高さ、特定のプロセッサパイプライン段階、及び動作等の複数の例である。しかしながら、本発明を実施するのにこれら特定の詳細を採用する必要がないことは、当業者にとって明らかであろう。他の複数の例において、特定の代替的なプロセッサアーキテクチャ、説明されるアルゴリズムのための特定の論理回路／コード、特定のファームウェアコード、特定のインターコネクトオペレーション、特定の論理構成、特定の製造技術及び材料、特定のコンパイラ実装、特定のアルゴリズムのコード表現、特定のパワーダウン及びゲーティング技術／論理、並びにコンピュータシステムのその他の特定の動作の詳細等の周知のコンポーネント又は方法は、不必要に本発明を不明瞭にすることを避けるべく、詳細に記載されていない。
【００２３】
以下の複数の実施形態は、複数のコンピューティングプラットフォーム又は複数のマイクロプロセッサ等の複数の特定の集積回路におけるエネルギー管理及びエネルギー効率に関連して説明され得るが、他の複数の実施形態は、他の複数のタイプの複数の集積回路及び複数のロジックデバイスに適用可能である。本明細書に説明される複数の実施形態の複数の技術及び複数の教示と類似するものが、より良好なエネルギー効率及びエネルギー管理からもまた、利益を受け得る他のタイプの回路又は半導体デバイスに適用されてもよい。例えば、開示される複数の実施形態は、デスクトップコンピュータシステム又は複数のウルトラブック（登録商標）に限定されない。また、複数のハンドヘルドデバイス、複数のタブレット、他の複数の薄型ノートブック、複数のシステムオンチップ（ＳＯＣ）デバイス、及び複数のエンベデッドアプリケーションのような、他の複数のデバイスにおいても使用され得る。ハンドヘルドデバイスの幾つかの例としては、複数の携帯電話、複数のインターネットプロトコルデバイス、複数のデジタルカメラ、複数の携帯情報端末（ＰＤＡ）、及び複数のハンドヘルドＰＣが挙げられる。典型的には、エンベデッドアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、システムオンチップ、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークハブ、広域ネットワーク（ＷＡＮ）スイッチ、又は、以下で教示される機能及び処理を実行し得る任意のその他のシステムを含む。更に、本明細書で記載される複数の装置、複数の方法及び複数のシステムは、物理コンピューティングデバイスには限定されずに、また、エネルギー管理及び効率性のためのソフトウェア最適化に関連してよい。以下の説明から容易に明らかになるとおり、本明細書に記載される複数の方法、複数の装置及び複数のシステムの実施形態（ハードウェア、ファームウェア、ソフトウェアに関するものであろうと、又はそれらの組み合わせに関するものであろうと）における複数の実施形態は、性能への配慮と将来のバランスが取れた「グリーンテクノロジー」に不可欠である。
【００２４】
コンピューティングシステムが進歩するにしたがい、それらのコンポーネントもより複雑化している。その結果、最適なコンポーネントの動作のための帯域幅の要求に確実に合致するために、複数のコンポーネント間の結合及び通信を行うためのインターコネクトアーキテクチャも複雑性が増加している。更に、異なる市場セグメントが、その市場の必要性に合致したインターコネクトアーキテクチャの異なる態様を要求する。例えば、複数のサーバはより高い性能を必要とするが、その一方で、モバイルエコシステムは、場合によっては、省電力化のために全体的な性能を犠牲にすることがあり得る。しかし、ほとんどのファブリックの唯一の目的は、最大限の省電力化を行いながら、可能な限り高い性能を提供することである。以下では、本明細書により説明される発明の態様から利益を得る可能性のある多数のインターコネクトが説明される。
【００２５】
インターコネクトファブリックアーキテクチャの１つは、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）Ｅｘｐｒｅｓｓ（ＰＣＩｅ）アーキテクチャを含む。ＰＣＩｅの基本的な目的は、異なる複数のベンダがからの複数のコンポーネント及び複数のデバイスにオープンアーキテクチャで相互運用を可能とすることであり、それは多数の市場セグメント、複数のクライアント（デスクトップ及びモバイル）、複数のサーバ（規格及び企業向け）及び複数の組込み通信デバイスに及ぶ。ＰＣＩ  Ｅｘｐｒｅｓｓは、多種多様な次世代のコンピューティング及び通信プラットフォームのために規定された高性能汎用Ｉ／Ｏインターコネクトである。その利用モデル、ロード／ストアアーキテクチャ、ソフトウェアインタフェースのような幾つかのＰＣＩ属性が、その複数の改訂版を通じて維持されてきたが、これに対し、以前の複数のパラレルバス実装は、高度に拡張可能な完全シリアルインタフェースによって置き換えられてきた。ＰＣＩ  Ｅｘｐｒｅｓｓのより最近のバージョンでは、性能と複数の機能とに係る複数の新レベルを供給すべく、ポイントツーポイントインターコネクト、スイッチベースの技術、及びパケット化されたプロトコルにおける複数の進歩を利用している。電力管理、サービス品質（ＱｏＳ）、ホットプラグ／ホットスワップサポート、データ整合性、及びエラー処理は、ＰＣＩ  Ｅｘｐｒｅｓｓによってサポートされる高度な複数の機能のうちの幾つかである。
【００２６】
図１を参照すると、コンポーネントのセットをインターコネクトするポイントツーポイントリンクから構成されるファブリックの実施形態が示されている。システム１００は、プロセッサ１０５、及び、コントローラハブ１１５に結合されたシステムメモリ１１０を有する。プロセッサ１０５は、マイクロプロセッサ、ホストプロセッサ、組込みプロセッサ、コプロセッサ、又はその他のプロセッサ等の任意の処理要素を含む。プロセッサ１０５は、フロントサイドバス（ＦＳＢ）１０６を通じてコントローラハブ１１５へ結合される。一実施形態において、後述されるように、ＦＳＢ１０６は、シリアルポイントツーポイントインターコネクトである。別の実施形態において、リンク１０６は、シリアルの差動インターコネクトアーキテクチャを有し、これは異なるインターコネクト規格に準拠する。
【００２７】
システムメモリ１１０は、ランダムアクセスメモリ（ＲＡＭ）、不揮発性（ＮＶ）メモリ、又はシステム１００における複数のデバイスによってアクセス可能な他のメモリのような、任意のメモリデバイスを含む。システムメモリ１１０は、メモリインタフェース１１６を通じてコントローラハブ１１５へ結合される。メモリインタフェースの例として、ダブルデータレート（ＤＤＲ）メモリインタフェース、デュアルチャネルＤＤＲメモリインタフェース、及びダイナミックＲＡＭ（ＤＲＡＭ）メモリインタフェースを含む。
【００２８】
一実施形態において、コントローラハブ１１５は、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ又はＰＣＩＥ）インターコネクト階層内のルートハブ、ルートコンプレックス、又はルートコントローラである。コントローラハブ１１５の例としては、チップセット、メモリコントローラハブ（ＭＣＨ）、ノースブリッジ、インターコネクトコントローラハブ（ＩＣＨ）、サウスブリッジ、及びルートコントロ―ラ／ハブを含む。しばしば、チップセットという用語は、２つの物理的に別個のコントローラハブ、即ち、インターコネクトコントローラハブ（ＩＣＨ）に結合されたメモリコントローラハブ（ＭＣＨ）を指す。現在のシステムは、しばしばプロセッサ１０５と一体化されたＭＣＨを含み、その一方で、コントローラ１１５は、後述されるのと同様の態様でＩ／Ｏデバイスと通信することに留意されたい。幾つかの実施形態において、ピアツーピアルーティングは、ルートコンプレックス１１５を通じて任意選択的にサポートされる。
【００２９】
ここで、コントローラハブ１１５は、シリアルリンク１１９を通じてスイッチ／ブリッジ１２０に結合される。インタフェース／ポート１１７及び１２１とも称される入出力モジュール１１７及び１２１は、層状プロトコルスタックを含み／実装し、コントローラハブ１１５とスイッチ１２０との間で通信を提供する。一実施形態において、複数のデバイスがスイッチ１２０に結合されることが可能である。
【００３０】
スイッチ／ブリッジ１２０は、複数のパケット／メッセージを上流デバイス１２５、即ち、ルートコンプレックスに向かう階層の情報から、コントローラハブ１１５及び下流、即ちルートコントローラから離れて階層の下方へ、プロセッサ１０５又はシステムメモリ１１０からデバイス１２５へとルーティングする。一実施形態において、スイッチ１２０は、複数の仮想的なＰＣＩ−ＰＣＩ間のブリッジデバイスの論理的アセンブリとして称される。  デバイス１２５は、Ｉ／Ｏデバイス、ネットワークインタフェースコントローラ（ＮＩＣ）、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、ストレージデバイス、ＣＤ／ＤＶＤ  ＲＯＭ、モニタ、プリンタ、マウス、キーボード、ルータ、ポータブルストレージデバイス、ファイヤワイヤデバイス、ユニバーサルシリアルバス（ＵＳＢ）デバイス、スキャナ、及び、その他の入出力デバイスのような、電子システムに結合されるべき任意の、内部若しくは外部デバイス又はコンポーネントを含む。しばしば、ＰＣＩｅ専門用語では、デバイスのようなものは、エンドポイントとして称される。具体的には示されないが、レガシ、又は他のバージョンのＰＣＩデバイスをサポートすべく、デバイス１２５は、ＰＣＩｅからＰＣＩ／ＰＣＩ−Ｘブリッジを含んでよい。ＰＣＩｅにおけるエンドポイントデバイスは、レガシ、ＰＣＩｅ、又はルートコンプレックス統合エンドポイントとして、しばしば分類される。
【００３１】
グラフィックスアクセラレータ１３０もまた、シリアルリンク１３２を通じてコントローラハブ１１５に結合される。一実施形態において、グラフィックスアクセラレータ１３０は、ＭＣＨに結合され、ＭＣＨはＩＣＨに結合される。スイッチ１２０、従って、Ｉ／Ｏデバイス１２５は、次に、ＩＣＨに結合される。Ｉ／Ｏモジュール１３１及び１１８もまた、グラフィックスアクセラレータ１３０と、コントローラハブ１１５との間で通信すべく、層状プロトコルスタックを実装するためのものである。上のＭＣＨの検討と同様に、グラフィクスコントローラ又はグラフィックスアクセラレータ１３０それ自身は、プロセッサ１０５内に一体化されてよい。更に、システムの１又は複数のリンク（例えば、１２３）は、リタイマ、リピータ等のような１又は複数の拡張デバイス（例えば、１５０）を含むことが可能である。
【００３２】
図２を参照すると、層状プロトコルスタックの実施形態が示されている。  層状プロトコルスタック２００は、クイックパスインターコネクト（ＱＰＩ）スタック、ＰＣＩｅスタック、次世代高性能コンピューティングインターコネクトスタック、又はその他の層状スタックのような、任意の形態の層状の通信スタックを含む。図１から図４を参照したすぐ下の検討は、ＰＣＩｅスタックに関するが、他のインターコネクトスタックに同一の概念が適用されてもよい。一実施形態において、プロトコルスタック２００は、トランザクション層２０５と、リンク層２１０と、物理層２２０とを含むＰＣＩｅプロトコルスタックである。図１におけるインタフェース１１７、１１８、１２１、１２２、１２６及び１３１のような、インタフェースは、通信プロトコルスタック２００として表されてもよい。通信プロトコルスタックとしての表現もまた、プロトコルスタックを実装している／含んでいるモジュール又はインタフェースとして称されてよい。
【００３３】
ＰＣＩ  Ｅｘｐｒｅｓｓは、複数のコンポーネントの間で情報を通信すべく、複数のパケットを使用する。送信コンポーネントから受信コンポーネントへ情報を搬送するよう、複数のパケットは、トランザクション層２０５及びデータリンク層２１０で形成される。送信される複数のパケットが他の複数の層を通じて流れるにつれて、それらの複数の層でパケットを処理するために必要な追加情報によって、複数のパケットは拡張される。受信側で、逆の処理が生じ、複数のパケットは、それらの物理層２２０表現からデータリンク層２１０表現へ、そして最終的には（トランザクション層パケットの場合は）受信デバイスのトランザクション層２０５によって処理されることが可能な形態へと変換される。
【００３４】
［トランザクション層］
【００３５】
一実施形態において、トランザクション層２０５は、データリンク層２１０及び物理層２２０のような、インターコネクトアーキテクチャと、デバイスの処理コアとの間のインタフェースを提供するためのものである。これに関して、トランザクション層２０５の一次的な責務は、複数のパケット（即ち、トランザクション層パケット即ちＴＬＰ）の組み立て及び分解である。トランザクション層２０５は、典型的には、ＴＬＰに対するクレジットベースのフローコントロールを管理する。ＰＣＩｅは複数の分割トランザクション、即ち、時間によって別々の要求及び応答を有する複数のトランザクションを実装し、ターゲットデバイスが応答のためにデータを集めている間に、リンクが他のトラフィックを搬送することを可能とする。
【００３６】
更に、ＰＣＩｅは、クレジットベースのフローコントロールを利用する。このスキームにおいて、デバイスは、トランザクション層２０５内の複数の受信バッファの各々のために、クレジットの初期量を通知する。図１のコントローラハブ１１５のような、リンクの反対側における外部デバイスは、各ＴＬＰによって消費されるクレジットの数をカウントする。トランザクションは、そのトランザクションがクレジット限界を超過しない場合に、送信されてよい。応答が受信されると、クレジット量が回復される。クレジットスキームの利点は、クレジット限界に遭遇しないという条件で、クレジットリターンのレイテンシが、性能に影響しないことである。
【００３７】
一実施形態において、４つのトランザクションアドレス空間は、構成アドレス空間、メモリアドレス空間、入出力アドレス空間、及びメッセージアドレス空間を含む。メモリマッピング位置へ／からデータを転送すべく、メモリ空間トランザクションは、複数の読み取り要求及び複数の書き込み要求のうちの１又は複数を有する。一実施形態において、メモリ空間トランザクションは、２つの異なるアドレスフォーマット、例えば、３２ビットアドレスのようなショートアドレスフォーマット、又は６４ビットアドレスのようなロングアドレスフォーマットを使用することが可能である。構成空間トランザクションは、複数のＰＣＩｅデバイスの構成空間にアクセスするために使用される。構成空間へのトランザクションは、読み込みリクエスト及び書き込みリクエストを含む。メッセージ空間トランザクション（又は、単にメッセージ）は、ＰＣＩｅエージェントの間の帯域内通信をサポートするために規定される。
【００３８】
従って、一実施形態において、トランザクション層２０５は、パケットヘッダ／ペイロード２０６を組み立てる。現行のパケットヘッダ／ペイロードに対するフォーマットは、ＰＣＩｅ仕様ウェブサイトのＰＣＩｅ仕様に見出され得る。
【００３９】
図３を素早く参照すると、ＰＣＩｅトランザクション記述子の実施形態が示される。一実施形態において、トランザクション記述子３００は、トランザクション情報を搬送するためのメカニズムである。これに関して、トランザクション記述子３００は、システムにおけるトランザクションの識別をサポートする。他の潜在的な使用としては、デフォルトトランザクション順序の変更及び複数チャネルとトランザクションとの関連を追跡することを含む。
【００４０】
トランザクション記述子３００は、グローバル識別子フィールド３０２、属性フィールド３０４、及びチャネル識別子フィールド３０６を含む。図示される例において、グローバル識別子フィールド３０２は、ローカルトランザクション識別子フィールド３０８及びソース識別子フィールド３１０を備えるように示される。一実施形態において、グローバルトランザクション識別子３０２は、全ての未処理の要求に対して固有である。
【００４１】
一実装によれば、ローカルトランザクション識別子フィールド３０８は、要求エージェントによって生成されるフィールドであり、このフィールドは、その要求エージェントに対する完了を必要とする、全ての未処理の要求に対して固有である。更に、この例において、ソース識別子３１０は、ＰＣＩｅ階層内のリクエストエージェントを一意に識別する。従って、ソースＩＤ３１０と併せて、ローカルトランザクション識別子３０８フィールドは、階層ドメイン内のトランザクションのグローバルな識別を提供する。
【００４２】
属性フィールド３０４は、トランザクションの複数の特性及び関係を指定する。これに関して、属性フィールド３０４は、トランザクションのデフォルト処理の変更を可能とする追加情報を提供するために潜在的に使用される。一実施形態において、属性フィールド３０４は、優先度フィールド３１２、予約フィールド３１４、順序フィールド３１６、及びスヌープ無しフィールド３１８を含む。ここで、優先度サブフィールド３１２は、トランザクションに優先度を割り当てるために、開始プログラムによって変更されてよい。予約属性フィールド３１４は、将来のため、又はベンダ定義の利用のために、予約されたままとされる。優先度及びセキュリティ属性を使用する可能な利用モデルは、予約属性フィールドを使用して実装されてよい。
【００４３】
この例において、複数のデフォルトの順序ルールを変更し得る順序タイプを伝達する任意情報を供給すべく、順序属性フィールド３１６が使用される。一例の実装によれば、順序属性「０」は、デフォルトの順序規則が適用されることを示し、ここで、順序属性「１」は緩和された順序を示し、書き込みでは同一の方向に書き込みをわたすことが出来、読み取り完了では、同一の方向に書き込みをわたすことが出来る。スヌープ属性フィールド３１８は、トランザクションがスヌープされるかを判断すべく利用される。示されるように、チャネルＩＤフィールド３０６は、トランザクションが関連付けられるチャネルを識別する。
【００４４】
［リンク層］
【００４５】
リンク層２１０は、データリンク層２１０としてもまた称されるが、トランザクション層２０５と、物理層２２０との間の中間段階として動作する。一実施形態において、データリンク層２１０の責務は、リンク上の２つのコンポーネント間でトランザクション層パケット（ＴＬＰ）を交換するための信頼性のあるメカニズムを提供することである。データリンク層２１０の一方側は、トランザクション層２０５によって組み立てられた複数のＴＬＰを受け入れ、パケットシーケンス識別子２１１、即ち識別番号又はパケット番号を適用し、エラー検出コード、即ち、ＣＲＣ２１２を計算及び適用し、物理デバイスから外部デバイスにわたる送信のため、変更された複数のＴＬＰを物理層２２０に送信する。
【００４６】
［物理層］
【００４７】
一実施形態において、外部デバイスにパケットを物理的に送信すべく、物理層２２０は論理サブブロック２２１、及び電気サブブロック２２２を含む。ここで、論理サブブロック２２１は、物理層２２１の「デジタル」機能を担う。これに関して、論理サブブロックは、物理サブブロック２２２による送信のための出力情報を準備するための送信セクションと、受信した情報をリンク層２１０にわたす前に識別して準備する受信セクションとを含む。
【００４８】
物理ブロック２２２は、送信機及び受信機を含む。送信機は、複数のシンボルを有する論理サブブロック２２１によって供給され、送信機は複数のシンボルをシリアライズし、外部デバイスへと送信する。受信機は、外部デバイスからシリアライズされた複数のシンボルが供給され、受信された複数の信号をビットストリームへ変換する。ビットストリームは、非シリアル化され、論理サブブロック２２１に供給される。一実施形態において、８ｂ／１０ｂ送信コードが採用され、ここでは１０ビットシンボルが送受信される。ここで、複数のフレーム２２３を有するパケットをフレーム化するために特別なシンボルが使用される。更に、一例において、受信機は、また、到着するシリアルストリームから回復されるシンボルクロックを提供する。
【００４９】
上述のように、トランザクション層２０５、リンク層２１０、及び物理層２２０は、ＰＣＩｅプロトコルスタックの特定の実施形態を参照して説明されているが、層状プロトコルスタックはこれに限定されない。実際に、任意の層状プロトコルは、含まれ／実装されてよい。一例として、層状プロトコルとして表されるポート／インタフェースは、（１）複数のパケットを組み立てるための第１の層、即ちトランザクション層；複数のパケットを配列するための第２の層、即ち、リンク層；及び、複数のパケットを送信する第３の層、即ち物理層を有する。特定の例として、共通規格インタフェース（ＣＳＩ）層状プロトコルが利用される。
【００５０】
次に図４を参照すると、ＰＣＩｅシリアルポイントツーポイントファブリックの実施形態が図示される。ＰＣＩｅシリアルポイントツーポイントリンクの実施形態が示されるが、シリアルポイントツーポイントリンクは、シリアルデータを送信するための任意の送信パスを含み、これに限定されない。示される実施形態において、基本ＰＣＩｅリンクは、２つの、低電圧の差分的に駆動される複数の信号ペアを含む。即ち、送信ペア４０６／４１１及び受信ペア４１２／４０７である。従って、デバイス４０５は、デバイス４１０にデータを送信するための送信ロジック４０６と、デバイス４１０からデータを受信するための受信ロジック４０７とを有する。言い換えると、２つの送信パス、即ち、パス４１６及び４１７と、２つの受信パス、即ち、パス４１８及び４１９とは、ＰＣＩｅリンクに含まれる。
【００５１】
送信パスは、送信ライン、銅のライン、光学ライン、無線通信チャネル、赤外通信リンク、又は他の通信パスのような、データを送信するための任意のパスを指す。デバイス４０５及びデバイス４１０のような、２つのデバイスの間の接続は、リンク４１５のような、リンクとして称される。リンクは、１つのレーンをサポートしてよい。各レーンは、差分信号ペアのセット（送信のための１つのペア、受信のための１つのペア）を表す。帯域幅を拡張するため、リンクは、ｘＮにより示される複数のレーンを集約してよい。ここで、Ｎは、１、２、４、８、１２、１６、３２、６４のような、又はそれより広い、任意のサポートされたリンク幅である。
【００５２】
差分ペアは、差分信号を送信するための、ライン４１６及び４１７のような、２つの送信パスを指す。一例として、ライン４１６が、低電圧レベルから高電圧レベルへと切り替わる、即ち、立ち上がりエッジであるとき、ライン４１７は、高ロジックレベルから低ロジックレベルへと、即ち、立下りエッジで駆動する。差分信号は、より良好な電気的な特性、例えば、より良好な信号整合性、即ち、クロスカップリング、電圧オーバシュート／アンダーシュート、リンギング等を潜在的に示す。これは、より良好なタイミングウィンドウを可能とし、それにより、より速い送信周波数を可能とする。
【００５３】
幾つかの実装において、ＰＣＩｅ準拠のリンクのようなリンクは、１又は複数のリタイマ、又は、リピータのような他の拡張デバイスを含むことが可能である。リタイマデバイス（又は単純に「リタイマ」）は、デジタルＩ／Ｏ信号を受信及び再送信（リタイマ）する複数のアクティブな電子デバイスを含むことが可能である。複数のリタイマは、デジタルＩ／Ｏバスによって使用されることが可能なチャネルの長さを拡張するために使用されることが可能である。リタイマは、プロトコルアウェア、ソフトウェアトランスペアレントであり、ＰＣＩｅのリンク等化処理のようなリンク等化処理を実行可能であり得る。同様のプロトコルを採用するがリタイマを有さない複数のリンクによって実現される、データレートに相当するデータレートにおいて、１又は複数のリタイマを組み込むリンクは、２又はより多くの別個の電気的サブリンクを形成することが可能である。例えば、単一のリタイマを含むリンクは、各々が、８．０ＧＴ／ｓ又はそれより高いデータレートで動作をする２つの別個のサブリンクを有するリンクを形成可能である。
【００５４】
複数の他の拡張デバイスは存在するが、しかしながら、これらの幾つかは、幾つかの通信プロトコルに伴う相互運用性の問題を有する。一例として、幾つかのリピータは、ＰＣＩｅ３．０のリンク等化プロトコルをサポートしないことがある。更に、幾つかのアプリケーションは、より長い物理的な長さの複数のチャネルを利用する傾向にある。これらのチャネルは、そのようなチャネル長を実現すべく、複数の拡張デバイスの使用をする。これら及び他の複数のトレンドは、多くのシステムにおいて、リタイマをますます重要なデバイスにしている。
【００５５】
図５Ａから図５Ｂは、１又は複数のリタイマを含む例示のリンクの簡略化されたブロックダイアグラム５００ａから５００ｂである。例えば、図５Ａにおいて、第１コンポーネント５０５（例えば、上流コンポーネント）を第２コンポーネント５１０（例えば、下流コンポーネント）に接続するリンクは単一のリタイマ５１５ａを含むことが可能である。第１のサブリンク５２０ａは、第１コンポーネント５０５をリタイマ５１５ａに接続可能であり、第２サブリンク５２０ｂは、リタイマ５１５ａを第２コンポーネントに接続可能である。図５Ｂに示されるように、複数のリタイマ５１５ａ、５１５ｂは、リンクを拡張するために利用されることが可能である。３つのサブリンク５２０ａから５２０ｃは、２つのリタイマ５１５ａ、５１５ｂを通じて規定されることが出来る。ここで、第１サブリンク５１５ａは第１コンポーネントを第１リタイマ５１５ａに接続し、第２サブリンクは第１リタイマ５１５ａを第２リタイマ５１５ｂに接続し、第３サブリンク５１５ｃは第２リタイマ５１５ｂを第２コンポーネントに接続する。
【００５６】
図５Ａから図５Ｂの例に示されるように、リタイマは、２つの疑似ポートを含むことが可能である。疑似ポートは、これらのそれぞれ下流／上流方向を動的に判断することが可能である。各リタイマ５１５ａ、５１５ｂは、上流パス及び下流パスを有することが出来る。更に、リタイマ５１５ａ、５１５ｂは、転送モード及び実行モードを含む、動作モードをサポート出来る。幾つかの場合におけるリタイマ５１５ａ、５１５ｂは、サブリンク上で受信されたデータをデコード可能であり、その他のサブリンク上で下流に転送すべきデータを再エンコード可能である。場合によって、例えば、オーダードセットのデータを処理及び転送する場合、リタイマは、それが受信するデータにおける幾つかの値を変更可能である。また、リタイマは、ＰＣＩｅのような仕様によって規定された幅の選択肢のセットのような、任意の幅の選択肢をその最大幅として潜在的にサポート可能である。
【００５７】
幾つかの場合において、チャネル上でフォールトが出現し得る。１又は複数のリタイマを利用する場合、リンクは、複数のサブリンクを含み、サブリンクのうちの任意の１つの上のフォールトは、全リンクに対して検出されるフォールトをもたらし得る。特定のサブリンクフォールトが１又は複数のリタイマを含むリンクにおいて識別されるように、テストモードは、システム内フォールトの位置がサブリンクレベルで決定されることを可能とするように提供されることが可能である。影響されるサブリンクの識別は、リンクに対して実行されるデバッグ処理において使用されることが可能である。
【００５８】
図６Ａから図６Ｅは、チャネルにおけるどの電気的サブリンクが、チャネルにおいて複数のエラーを生成しているかを判断するためのテストモードの例示的実装を示す、例示のブロックダイアグラム６００ａから６００ｅを図示する。図６Ａの例において、テストモードに入られることが可能で、テストモードは、（例えば、第１エンドポイントの）下流ポート６０５と、（例えば、別のエンドポイントの）上流ポート６１０との間のチャネルにわたって、リタイマ６１５を介して送信されるべき、規格化された信号を定義することが可能である。（ルートポートのような）第１エンドポイント（例えば、６０５）は、エラー報告シーケンス６２５ａがその後に続く、データの規定されたシーケンス６２０ａを含む信号を送信することが可能である。リタイマ６１５は、信号６３０を受信し、シーケンス６２０ａが予測されるシーケンスに適合するか否かを判断する。シーケンス６２５ａが、テストモードに対して規定されたシーケンスに適合しない場合、リタイマ６１５は偏差をエラーとして識別するべきである。
【００５９】
信号６３０の受信後、リタイマ６１５は、テストモードに関連した更なる信号６３５を次に生成することが可能である。一実装において、信号６３５で、リタイマ６１５は、同一の規定されたシーケンスを（６２０ｂにおいて）再現すべきである。リタイマ６１５は、信号６３０において受信されたようなシーケンス６２０ａを再現せず、テストモードに対して規定されるように、新たにシーケンスを（例えば、６２０ｂ）再生成する。複数のエラーを含むシーケンスがチャネルにわたって伝搬されると、どこ（例えば、どのサブリンクか）がエラーのソースであるかを識別することを困難にするため、そうならないように、これは、複数のサブリンクフォールトを分離させるように機能可能である。エラー報告シーケンス（例えば、６２５ａ、６２５ｂ）においてエンコードされた情報は、しかしながら、テストモードで送信された各信号において維持されるべきである。その結果、エラー検出結果は、テストモード内でデバイスからデバイスへわたされる。更に、各エラー報告シーケンス（例えば６２５ａ、６２５ｂ）においてエンコードされるエラー検出情報は、更なる複数のエラーがチャネルの複数のサブリンク内で検出されるように更新されるべきである。例えば、エラーについてのシーケンス６２０ａの受信及び分析に応じて、リタイマ６１５は、エンドポイント６０５及びリタイマ６１５を接続するサブリンクに対してリタイマ６１５において、１又は複数のエラーが検出されたか否かを識別すべく、エラー報告シーケンス６２５ｂの少なくとも一部をエンコード可能である。この情報は、以前に受信されたエラー報告シーケンス６２５ａにおいて説明された他の情報に加えられることが出来る。
【００６０】
図６Ａの例を続行すると、リタイマ６１５は、更新されたエラー報告シーケンス６２５ｂ及び新たに生成されたシーケンス６２０ｂを含む信号６３５を送信可能である。第２のエンドポイント６１０は、信号６３５を受信することが出来、不一致（例えば、テストモードに対して規定されたシーケンスから逸脱する１又は複数の不正確なビット）についてシーケンス６２０ｂを分析することが出来、任意の識別された不一致に基づいて、リタイマ６１５と、エンドポイント６１０との間のサブリンク上でエラー又はフォールトの状態を識別する。チャネルにおいて（存在する場合には）複数のサブリンクのどれが、テストの間、エラーを生成したかを識別すべく、第２のエンドポイントは、エラー報告シーケンス６２５ｂを更にデコード可能である。複数のエラーは、場合によって、他の複数の例の中でも、リンク試験及び管理ツールによって、後の処理及び分析のため、１又は複数のレジスタにおいて記録されることが可能である。
【００６１】
図６Ｂの例を参照すると、幾つかの実装において、ループバック状態は、テストモードを実装すべく活用されることが可能である。幾つかの場合において、ループバックテストモードを使用することは、潜在的な後の互換性の問題を克服するのに役立ち得る。多くの場合において、チャネル上のエンドポイント及び／又はリタイマは、異なる製造業者、ベンダ等によって提供されてもよい。エンドポイントデバイスのうちの１又は複数は、テストモードをサポートする（例えば、テストシーケンスにおける複数のエラーを検出し、エラー報告シーケンスデータを更新し、サブリンクエラーレジスタを更新する、等）ためのロジックを有さなくてもよい。一方、それにも関わらず、チャネルにおけるデバイスにより利用されるインターコネクトプロトコル（例えば、ＰＣＩｅ）により規定されるループバックモードのような、ループバックモードをサポートし得る。テストモードをサポートしない特定のエンドポイントは、複数の上流コンポーネント（例えば、他のエンドポイント及びリタイマ）により生成され、そこから受信されるエラー報告シーケンスデータをわたし返すことが出来る。他の例示的な実装の中では、特定のエンドポイントが、テストモードを完全にサポートしないにも関わらず、これらのコンポーネントのうちの１又は複数にテストモードの結果を観測及び処理することを可能とする。
【００６２】
図６Ｂにおいて、信号６３０及び信号６３５は、例えば、図６Ａの例に示すように、第１のエンドポイント６０５からリタイマ６１５へ、リタイマ６１５から第２のエンドポイント６１０へ、それぞれ送信される。信号６３５が第２エンドポイント６１０に到達する場合、信号が、第２エンドポイント６１０からリタイマ６１５へ送信される信号６４０を通じてループバックされるように、テストモードは、ループバック状態で実装されることが可能である。信号６４０は、信号におけるシーケンス６２０ａ及び６２０ｂの分析からのエラー検出情報を含むエラー報告シーケンス６２５ｃと、シーケンス６２０ｃとの再生成を有することが可能である。リタイマ６１５は、複数のエラーについてシーケンス６２０ｃを分析することが出来る。受信されるシーケンス６２０ｃからリタイマ６１５によって検出されるように、エンドポイント６１０と、リタイマ６１５との間のサブリンクのエラーステータスは、リタイマ６１５によってエンドポイント６０５に生成及び送信されるように、シーケンス６２０ｄの別のインスタンスを更に含む信号６４５内に含まれる更新されたエラー報告シーケンス６２５ｄ内で伝達されることが出来る。
【００６３】
図６Ｂの例において、エンドポイント６０５は、テストモード信号６４５において受信されるシーケンス６２０ｄを分析することにより、テストループバックにおいて、最終エラー分析を実行出来る。更に、エンドポイント６０５は、ループバックの間に、シーケンス６２０ａ、６２０ｂ、６２０ｃ、６２０ｄの分析の結果を識別すべく、エラー報告シーケンス６２５ｄを解釈することが出来る。エンドポイント６０５と、エンドポイント６１０と、リタイマ６１５との間の特定の複数のサブリンクにおける複数のエラー状態は、エラー報告シーケンス６２５ｄにおいて含まれる情報から識別されることが出来る。エンドポイント６０５における（及び、エンドポイント６１０又はリタイマ６１５において潜在的（又は代替的）でもある）追加的なロジックは、他の複数の例の中でも、リンク解析及びデバッグで使用するための（例えば、チャネルに対応する）レジスタ、又は別のデータ構造、又は、ロジックにサブリンクエラーステータスを報告可能である。
【００６４】
図６Ｃを参照すると、幾つかの実装において、エラー報告シーケンス（例えば、６２５ａから６２５ｄ）は、一連のエラー報告データセット（又は複数の「セグメント」）を含むことが可能である。ここで、各エラー報告セグメントは、１又は複数のリタイマ（例えば、６１５）を含み、２つのエンドポイント６０５、６１０を接続する、チャネルにおける少なくとも１つのサブリンクに対応する。例えば、図６Ｂの例において、エラー状態は、（例えば、シーケンス６２０ａ、６２０ｂ、６２０ｃの分析を要約する６２５ｂ、６２５ｃ、６２５ｄにおいて）３回報告される。従って、少なくとも３つのセグメントが、エラー報告シーケンス６２５ａから６２５ｂの各々において提供されることが可能である。例えば、図６Ｃの例に図示されるように、シーケンスの６２０ａの分析の結果は、エラー報告シーケンス６２５ｂにおいて含まれるセグメント「Ｅｒｒ１」における結果をエンコーディングにより反映されることが可能である。エラー報告セグメントＥｒｒ１のエンコーディング（リタイマ６１５による）、及びエンコーディングを通じて説明されるエラーステータス情報は、エラー報告シーケンス６２５ｃにおいてエンドポイント６１０によって効果的にわたされることが出来る。例えば、エンドポイント６１０は、エラー報告シーケンス６２５ｂのＥｒｒ１において含まれるものと同一のエンコーディングによって、エラー報告シーケンスの６２５ｃのＥｒｒ１を再エンコードすることが出来る。更に、エラー報告シーケンス６２５ｃにおけるこの例「Ｅｒｒ２」において、エンドポイント６１０は、（例えば、受信されたシーケンス６２０ｂの）その分析の結果が、エラー報告シーケンスのセグメントの別の部分でエンコードされるべきであると識別することが出来る。同様に、リタイマ６１５によって実行され、他の複数の例の中でも、対応するエラー報告セグメント「Ｅｒｒ３」のリタイマのエンコーディングにおいて説明されるシーケンス６２０ｃの解析の複数の結果と共に、エンドポイント６０５に報告される複数の解析結果を伝搬すべく、次のエラー報告シーケンス６２５ｄ（例えば、リタイマ６１５によって生成される）は、エラー報告シーケンス６２５ｃと同一のＥｒｒ１及びＥｒｒ２のエンコーディングを含むことが出来る。
【００６５】
テストモードの間、チャネルの複数のサブリンクのエラーステータスを累進的にドキュメンティングすべく、エラー報告シーケンス又は他のエラー報告データは、様々な態様でフォーマット及びエンコードされることが可能である。図６Ｃの例において導入されるように、幾つかの実装において、各セグメントがチャネルの特定のサブリンクのエラーステータス情報を説明するように指定されるように、エラー報告データは、セグメント化されることが出来る。幾つかの実装において、エラー報告シーケンスは、それらが説明しようとする複数のリンクの構造に基づいて、事前設定されることが出来る。例えば、ループバックテストモードが２つのリタイマ（従って、それぞれの方向で３つのサブリンク）を採用するリンクに対して提供されるべき場合、少なくとも５つのエラー報告セグメントが規定されることが可能である。その一方で、単一のリタイマ（及び２つのサブリンク）を採用するリンクに対して、エラー報告シーケンスは、リンクの試験等のために、少なくとも３つのセグメントを含むよう規定されることが可能である。場合によって、共通エラー報告シーケンスは、テストモードのためにサポートされるサブリンクの最大数に対応する、多数のセグメントを含むよう規定されることが出来る。更に他の複数の例において、エラー報告シーケンスのセグメンテーション及び構造は、例えば、他の複数の例の中でも、多数の拡張デバイス及び複数のサブリンクのためのリンクを分析することにより、動的に判断されることが出来る。
【００６６】
複数の前例の幾つかに示されるように、エラー報告シーケンスは、場合によっては、一連のセグメントとして実装されることが可能である。複数のセグメントの各々は、チャネルにおけるそれぞれのサブリンクのためのエラー検出に対応している。更に、別個のセグメントは、サブリンクに関連付けられたチャネルの上流部分、及び、同一のサブリンクに関連付けられたチャネルの下流部分に静的に割り当てられることが出来る。他の複数の例において、エラー報告シーケンスセグメントは、サブリンクエラー報告結果に動的にマッピングされ、又は割り当てられることが可能である。例えば、複数のセグメントは、先着順で割り当てられることが可能である。第１の評価のエラー報告結果は、第１セグメントを占有し、第２の評価の結果は、第２セグメントを占有する、等のようになる。幾つかの実装において、テストモードは、リンクの両方方向で使用されることが可能である。その結果、場合によって、テストモードシーケンス（例えば、６２０）は、リンクの上流にまず送信され、他の場合、同一のリンクの下流にまず送信される。そのような場合において、第１のサブリンクのエラー評価は、幾つかのテストにおいて報告される（例えば、更にＥｒｒ１セグメントにおいて報告される）第１のものであってよく、他の場合には、他の潜在的な例の中でも、別のサブリンクの評価が、代わりに、第１に（例えば、Ｅｒｒ１セグメントにおいて）報告されてよい。
【００６７】
幾つかの実装において、ＰＣＩｅ、ＰＣＩ、ＱＰＩ等のような既存のプロトコルのオーダードセット、トレーニングシーケンス、又は他の規定されたデータシーケンスは、テストモードで使用するために利用されることが出来る。例えば、各サブリンクにわたって伝達される固定されたテストモードシーケンス（例えば、６２０）は、インターコネクトプロトコルの規定されたシーケンスを含むように、規定されることが出来る。例えば、幾つかの実装において、ＰＣＩｅ  ｅｌｅｃｔｒｉｃａｌ  ｉｄｌｅ  ｏｒｄｅｒｅｄ  ｓｅｔ（ＥＩＯＳ）、ｅｌｅｃｔｒｉｃａｌ  ｉｄｌｅ  ｅｘｉｔ  ｏｒｄｅｒｅｄ  ｓｅｔ（ＥＩＥＯＳ）、修正コンプライアンスパターン、又は他のパターン若しくはオーダードセットは、固定されたテストモードシーケンスとして使用され、又はそれに含まれることが出来る。幾つかの場合において、エラー報告データ（例えば、６２５）で使用する、又はエラー報告データとして使用するために、規定されたオーダードセット又は他のシーケンスは、変更され又は強化されることが出来る。エラー報告のための、規定され、既存のオーダードセット、又は他のシーケンスを利用することは、高い相互運用性を実現する助けとなることが出来、幾つかの場合において、レガシデバイスが、確立されたオーダードセットの中に含まれる特定のエラーエンコーディングを正確に解釈するためのロジックを欠く場合でさえも、当該デバイスが、信号を許容及び検証することを可能とする。例えば、一実装において、ＰＣＩｅ  ＳＫＰオーダードセット（複数のＳＫＰ  ＯＳ）又は別のオーダードセットは使用されることが可能である。例えば、図６Ｄ及び図６Ｅの例に示されるように、一連のオーダードセット（例えば、ＯＳ１からＯＳ６）は、例示のエラー報告シーケンス（例えば、６２５）においてセグメントとして利用されることが出来る。各オーダードセットは、その中にエラー評価結果がエンコードされることが可能である、１又は複数のフィールド、シンボル、バイト等を提供出来る。
【００６８】
図６Ｄの例において、例示のリンクは、ルートポート６５０を特定のエンドポイント６５５に接続し、２つのリタイマ６６０、６６５を含む。３つのサブリンク６７５ａ、６７５ｂ、６７５ｃは、ルートポート６５０を第１のリタイマ６６０に、第１のリタイマ６６０を第２のリタイマ６６５に、第２のリタイマ６６５をエンドポイントデバイス６５５に接続することが可能である。図６Ｄ及び図６Ｅの例において、レジスタは、どのオーダードセット（例えば、ＯＳ１からＯＳ６）がテストモード内のどのサブリンクチャネルに対応するかを規定するデータを含むことが可能である。各テストモード信号（例えば、６７０ａから６７０ｆ）に含まれるべきである固定されたテストモードシーケンス／パターン（例えば、６２０）も、予め割り当てられる。その結果、テストモードに入られる場合、リンク上の各デバイス（例えば、６５０、６５５、６６０、６６５）は、各サブリンクチャネルを介してパターン６２０が成功裏に送信されているか否かを評価するよう構成される。複数の前例においてのように、受信されるパターンが、予測されるパターンから外れる場合、受信／評価デバイスは、エラーを説明する情報を有するそのサブリンクに対応するエラー報告セグメント（例えば、ＯＳ１からＯＳ６）をエンコードすることが可能である。そのような情報は、他の複数の例の中でも、例えば、サブリンクを介して受信されるパターンにおいて検出される複数のエラーの数、複数のエラーの最初のものが検出されたブロック及び／又はビット、エラーが検出されたサブリンクのレーンを含むことが可能である。エラー報告を含むこのオーダードセットは、特定のサブリンクの受信端のデバイスによって提供される際に、特定のサブリンクのエラー評価結果を保存すべく、リンク上の後続の複数のデバイスによって、転送されることが可能である。
【００６９】
図示のように、図６Ｄの例において、第１の信号６７０ａは、システムのループバック状態を使用して実装されるテストモードに関連した、テストモードパターン６２０及びエラー報告シーケンス６２５のセグメントを含んで送信される。任意のエラーが評価される前に初期信号６７０ａが送信される際に、エラー結果によってエンコードされるべき、エラー報告シーケンス６２５の複数のセグメント（例えば、ＯＳ１からＯＳ６）の複数の部分は、空で送信される（又は、各サブリンクチャネルのエラー報告がまだ完了していないことを示すようエンコードされる）ことが可能である。第１のリタイマ６６０は、信号６７０ａを受信し、テストモードパターンが、予測されるものから外れるか否かを評価することが可能である。この例において、テストモードパターン６２０は、第１のサブリンク６７５ａの下流チャネルを介して、エラーフリーで送信される。リタイマ６６０は、第１のオーダードセットＯＳ１が、第１サブリンク６７５ａの下流チャネル上でエラーが検出されていないことを示すべく、第１のサブリンク６７５ａの下流チャネルに対する複数のエラーをドキュメンティングし、従って、エラー報告シーケンスセグメントＯＳ１をエンコードすべく使用されるべきであることを識別可能である。ループバックテストモードは、リタイマ６６０が、テストモードパターンを再生成すること、及び、ＯＳ１における第１のサブリンク６７５ａの（例えば、エラーが「ないこと」を示す）評価のエンコードされた結果を含むエラー報告シーケンスデータと共に、信号６７０ｂに、テストモードパターンを含めることで、続行することが可能である。
【００７０】
図６Ｄの例に示されるように、信号６７０ｂの場合、第２のリタイマ６６５によって受信されるようなパターンは、エラーを含む。エラーは、パターンの予測値から逸脱する受信パターンの１又は複数のビットによって、明らかにされることが可能である。そのような複数のエラーは、送信デバイス（例えば、６６０）、受信デバイス（例えば、６６５）、又は、サブリンク自身の複数のレーン（例えば、６７５ｂ）を含むサブリンク上の様々な潜在的なフォールトによって引き起こされ得る。従って、この例において、以下のテストモード信号６７０ｃを生成及び送信する場合、第２のサブリンク６７５ｂの下流チャネルのための複数のエラー結果が、信号６７０ｃに含まれるエラー報告シーケンスのオーダードセットＯＳ２にエンコードされるべきであることを、第２のリタイマ６６５は識別可能である。従って、第２のサブリンク６７５ｂの下流チャネルに対して検出された複数のエラーを記述すべく、第２のリタイマ６６５は、信号６７０ｃにおいて、ＯＳ２をエンコードすることが出来る。更に、リタイマ６６５は、テストモード信号６７０ｂのオーダードセットＯＳ１において受信されるものと同一のエンコーディングを含むように、ＯＳ１が信号６７０ｃのエラー報告シーケンスにおいて再エンコードされ／繰り返されることを確実にすることが出来る。サブリンク６７５ｃの下流チャネルを介して、パターンがエラーフリーで受信されることを識別すべく、テストモード信号６７０ｃは、次に、サブリンク６７５ｃの下流チャネルを介してエンドポイント６５５に送信されることが出来、エンドポイント６５５は、信号６７０ｃに含まれる固定されたテストモードパターンを評価出来る。
【００７１】
前例を続けて、後続のテストモード信号（例えば、６７０ｄから６７０ｅ）は、サブリンク６７５ｃ、６７５ｂ、６７５ａの上流チャネルを介して、テストモード信号シーケンスのループバックに従って送信されることが可能である。この例において、識別される他の複数のエラーは、サブリンク６７５ｃの上流チャネル上で送信されるテストモード信号６７０ｄのパターンの中にあるものだけである。従って、後続のテストモード信号（例えば、６７０ｅ、６７０ｆ）は、第３のサブリンク６７５ｃの下流チャネルに対応するエラー報告セグメント（例えばＯＳ４）におけるこのエラーのより早期の検出を反映可能である。
【００７２】
（信号６７０ｆにおける）ループバックテストモードシーケンスの受信に際して、サブリンク毎のベースで、どこで、どのようなエラーが生じたかを識別すべく、ルートポート、又は別のコンポーネントは、エラー報告シーケンスセグメントＯＳ１からＯＳ６においてドキュメンティングされたエラー情報を識別することが可能である。１つの例示の実装において、１又は複数のコントロールステータスレジスタは、複数のデバイス（例えば、６５０、６５５、６６０、６６５）、複数のサブリンク（例えば、６７５ａから６７５ｃ）、及び／又は複数のサブリンクチャネルに対して、並びに（又は代替的に）全体としてのリンクに対して維持されることが可能である。エラー報告シーケンスセグメントＯＳ１からＯＳ６において含まれるエラー情報は、レジスタにエラー情報を追加するために使用されることが可能である。リンク上のフォールト状態又は他の問題を識別すべく、これらレジスタにおけるエラー情報は、各サブリンクに取り付けられた複数のデバイス及び複数のサブリンクの評価を実行するために、追跡されることが可能である。
【００７３】
１つの例示の実装において、１又は複数のコントロールステータスレジスタが規定されることが出来る。サブリンクチャネル（又はサブリンク上のデバイス）に対しループバックテストモードがサポートされるか否かを識別すべく、リンク機能レジスタは、１又は複数のビットを含むように提供されることが出来る。１又は複数のビットは、複数のチャネルにおけるどのレベルのエラー検出機能が利用可能か（例えば、ブロックレベル、ビットレベル、レーンレベルのエラー検出機能、等）を更に識別することが可能である。いつテストモードに入られたか、及びテストモードの間、どのように特定のデバイスが機能するか（例えば、その後に特定の数のエラー報告セグメントが続く、特定の固定されたテストモードシーケンスを再生成する、等）を示すように設定されたフィールドを含むように、リンク制御レジスタは、提供されることが出来る。エラーログレジスタもまた、テストの間に生成されたエラー報告シーケンスデータに関連して使用されるように、提供されることが出来る。エラーログレジスタは、一例において、表１のようなフィールドを含むことが可能である。
【表１】
0006339198.tif 000002
【００７４】
幾つかの実装において、ループバックテストモード（又はテストモード）は、１又は複数のリタイマ（又は他の拡張デバイス）を含むリンクの両方の方向でサポートされることが出来る。例えば、図６Ｅの例に示されるように、ループバックテストモードは、エンドポイント６５５で代替的に開始出来、ルートポート６５０においてエンドポイント６５５にループバックされることが出来る。例えば、エンドポイント６５５は、テストモードパターン６２０を含み、第１の信号６８０ａ、かつ、６つのオーダードセットセグメント（例えば、ＯＳ１からＯＳ６）を含むエラー報告シーケンスをテストにおいて送信することが出来る。この例において、図６Ｄの例に示すように、エラー報告セグメントＯＳ１からＯＳ６は、同一のサブリンクチャネルの割り当てを維持出来る。例えば、サブリンク６７５ｃの上流チャネルに割り当てられたエラー報告セグメント（例えば、ＯＳ４）をエンコードすること、及び、エンコードされたセグメントを含む信号６８０ｂを送信することにより、ループバックにおける第１の信号６８０ａのパターンで実行されるエラー評価を、リタイマ６６５は、報告出来る。次に、リタイマ６６０は、信号６８０ｂを受信し、パターンがエラーを含むか否かを評価する。リタイマ６６０は、サブリンク６７５ｂの上流チャネルに割り当てられたエラー報告セグメント（例えば、ＯＳ５）において、そのテスト結果をエンコードし、エンコードされたエラー報告セグメントを、テストモード信号６８０ｃにおいて含まれるエラー報告シーケンスに加える。図６Ｄの例に示すように、このテストシーケンスは、信号６８０ｄから６８０ｆを使用して、残りの複数のサブリンクチャネルの試験（及び、それに対する結果の報告）を継続する。テストの複数の結果は、信号６８０ｆを通じて、エンドポイント６５５に、最終的にわたされることが出来る。更に、図６Ｄの例に示すように、最終サブリンクテストは、最終テストモード信号（例えば、６７０ｆ、６８０ｆ）を受信するデバイスで実行されることが可能である。しかし、このテストの複数の結果は、テストモード信号のいずれにおいても含まれなくてよい。従って、場合によっては、テストされるべき最後のサブリンクチャネルに割り当てられたエラー報告セグメントは、（最終テストモード信号（例えば、６７０ｆ、６８０ｆ）でテストを実行するデバイス（例えば、６５０、６５５）によって、複数の結果は、直接的に得られるので）テストモードシーケンスにおいて空の状態を保ってもよい。場合によっては、使用されていないエラー報告セグメントは、他の複数の例示的な使用の中でも、一連のエラー報告セグメントにわたって、ＤＣバランスを維持することのような、エラー報告以外の目的のためにエンコードされることが可能である。
【００７５】
図６Ｄ及び図６Ｅの例に見られるように、幾つかの実装において、テストされるべき複数のサブリンク（例えば、６７５ａから６７５ｃ）の各上流及び下流チャネルは、それぞれエラー報告シーケンスセグメント（例えば、ＯＳ１からＯＳ６）を割り当てられることが可能であり、（図６Ｄ及び６Ｅにおいて図示される場合における）６つのセグメントを含むエラー報告シーケンスをもたらす。幾つかの実装において、各サブリンクは、複数のエラー報告シーケンスセグメントを割り当てられ、テストモード信号の長さを更に拡張する。例えば、各サブリンクチャネルは、（例えば、各サブリンクチャネルのテストに関連する、より詳細にわたるエラーステータス情報のエンコーディングを収容すべく）２又はより多いエラー報告セグメントを各々割り当てられることが可能である。
【００７６】
サブリンクチャネルをエラー報告シーケンスにおける特定のオーダードセットに静的に割り当てるのではない、代替的な実施形態は、テストのパラメータによって、テストモードの呼出しにおいて割り当てられ、又は、使用されることが出来る複数のセグメントのセットを代わりに提供することが出来る。例えば、一例において、複数のテストモード信号において提供される複数のエラー報告セグメントは、サブリンクチャネルがテストされる順序に従って使用されることが可能である。例えば、ループバックテストモードの間に、どのようなサブリンクが第１にテストされるべきであっても、その結果は、第１に実行されるテスト結果に対して指定されるセグメント（例えば、ＯＳ１）においてエンコードされるであろう。例えば、図６Ｅの例におけるもののようなアプローチを使用して、信号６８０ａにおける第１のテストモードパターンに対する複数のエラー評価結果は、ＯＳ１においてエンコードされ、信号６８０ｂの第２のエラー評価は、ＯＳ２にエンコードされる等のようになるであろう。しかしながら、サブリンク６７５ａのテストから始めて、ループバックテストモードが実行される場合、図６Ｄの例に示すように、シーケンス６７０ａにおけるパターンに対する複数のテスト結果は、ＯＳ１にエンコードされ、シーケンス６７０ｂにおけるパターンに対するテスト結果は、ＯＳ２にエンコードされる等のようになるであろう。そのような代替的な実装において、各サブリンクチャネルに対して専用のエラー報告セグメントを提供するのではなく、エラー報告シーケンスは、他の潜在的な例の中でも、（例えば、２つの拡張デバイスを有するリンクをサポートするために、６つのセグメントの代わりに５つのセグメントを使用して）生成されるべき報告された複数のテスト結果の数に従って、複数のエラー報告セグメントを提供してもよい。
【００７７】
１つの説明に役立つ例において、テストモードは、ＰＣＩｅ準拠のシステムで提供されることが出来、ＰＣＩｅループバックへのエントリを実行することにより入られることが出来る。幾つかの実装において、（１又は複数の拡張デバイスを含む）リンクをループバックの状態に至らせ、ループバックがテストモードループバックであることを更に示すために、制御信号は、送信されることが可能である。他の複数の例において、トレーニングシーケンスの１又は複数のビット及び／又は複数のフレーミングトークンは、テストモードループバック状態へのエントリのネゴシエーションをするよう使用されることが可能である。場合によっては、ループバック状態への遷移に使用されるトレーニングシーケンスの１又は複数のビットは、ループバック状態が本明細書に説明される複数の例示のテストモードの原理を実装するもののような、テストモードループバック状態であることを示すようエンコードされる、１又は複数のビットを含むことが出来る。更に、一例において、テストモードループバックシグナリングは、ループバックアクティブ状態であることを示す、その後にデータストリームの開始（ＳＤＳ）オーダードセットが続く、ＥＩＥＯＳの送信から始めることが出来る。ＥＩＥＯＳ−ＳＤＳシーケンスは、一例において、各サブリンクに対して評価されるべき固定されたテストモードパターンとして機能することが出来る。データブロックにおいて許容される唯一のパターンは、０に等しく（例えば、標準ＬＦＳＲ出力）、サブリンクからサブリンクへ送信される各テストモード信号において含まれるべき、エラー報告シーケンスの複数のセグメントを実施する一連のＳＫＰ  ＯＳにおけるデータであるように、テストモードは、規定されることが出来る。一連の６つの連続的なＳＫＰ  ＯＳを規定する実施形態において、一連のＳＫＰ  ＯＳは、正確に３７０ブロック間隔で送信されることが可能である。（複数のテストモード信号において使用されるＳＫＰ  ＯＳの複数のバリアント内にエンコードされたエラー報告情報をデコードするためのロジックを備え付けられていない幾つかのデバイスを除いて）リンク上の各デバイスは、それに応じて進むように複数のテストモード信号を認識可能及び予測可能である。複数のアーキテクチャは、異なるクロッキングアーキテクチャをサポートすることが可能であり、それらの幾つかは、ＳＫＰ  ＯＳが異なる公称レートで送信されることを必要とする。例えば、独立したスペクトラム拡散クロック（ＳＳＣ）を伴う個別参照クロック（ＳＲＩＳ）アーキテクチャの場合、６つのＳＫＰ  ＯＳが、３７個のデータブロックの後にスケジューリングされてよい。
【００７８】
図７は、上に説明されたループバックテストモードをサポートすべく強化された、例示のＰＣＩｅ  ＳＫＰオーダードセット７００の表現を示す。例えば、シンボル０から（４＊Ｎ−１）は、標準ＳＫＰシンボルに対応することが可能である。シンボル４＊Ｎは、存在するＳＫＰ  ＯＳ内に３つのより多いシンボルのみが含まれることを警告する標準ＳＫＰエンドシンボルであることが可能である。最後の３つのシンボル７０５、７１０、７１５は、ＳＫＰ  ＯＳの特定のユースケースに対応する情報によってエンコードされるように予約されることが可能である。場合によって、ＳＫＰシンボル７０５、７１０、７１５に先行する複数の標準ＳＫＰシンボルもまた、複数のエラーに対して（テストモードパターンと共に）テストされることが出来る。これらの標準ＳＫＰシンボルは、そのような複数の場合において、テストモードパターンの部分とみなされることが可能である。場合によって、シンボル７０５、７１０、７１５の適切なフォーマット（例えば、４＊Ｎ＋１、４＊Ｎ＋２、４＊Ｎ＋３）は、リンクのリンクトレーニング状態（ＬＴＳＳＭ）に基づくことが出来る。一例において、リンク状態がループバックである場合、ＳＫＰシンボル７０５、７１０、７１５は、サブリンクの複数のテスト結果を報告するためにエンコードされるよう規定されることが出来る。一例において、ＳＫＰシンボル７０５、７１０、７１５に含まれるデータの２４ビットは、サブリンクについてのエラー報告セグメントを実装可能であり、以下のフォーマットに従って、エラー報告結果をエンコードするために適合されることが可能である。
【表２】
0006339198.tif 000003
【００７９】
上に説明される複数の実装は、本明細書に開示される幾つかの機能を単に簡便に示すために示される、非限定的な例として提供されるものと理解されるべきである。例えば、テストモードは、ＰＣＩｅ以外のインターコネクトプロトコル（例えば、ＱＰＩ、ＩＤＩ、ＰＣＩ等）に準拠し、そのプロトコルに規定される幾つかの機能（例えば、オーダードセット、トレーニングシーケンス、リンク状態等）を利用するように提供されることが可能である。更に、上の例において、リタイマがしばしば指定される一方で、本明細書に説明される幾つかの原理及び機能は、他のタイプの拡張デバイスを採用するシステムに同様に適用可能であるものと理解されるべきである。また、他の複数の例示的な代替形態の中でも、他のテストモード信号、固定テストモードパターン、及び、エラー報告シーケンスは、本明細書に開示される概念の範囲から逸脱することなく、本明細書に指定された複数の特定の例を超えて実装されることが出来る。
【００８０】
［インバンドの切断検出］
【００８１】
複数のリタイマ及び他の複数の拡張デバイスは、様々な異なる機能及びフォームファクタを採用する様々な異なるシステムにおいて使用されることが可能である。例えば、幾つかのシステムは、１又は複数のリタイマを含むリンク上のデバイスのホットプラグ接続を提供することが可能である。場合によっては、リタイマは、ケーブル内で使用されることが可能であり、そのようなケーブルは、ホットプラグ接続及び他の複数の使用をサポートすることを目的としてよい。場合によって、サイドバンド信号、及び／又は、帯域外の接続／切断のシグナリングを提供する他のサポートロジックを提供しない幾つかの用途で、複数のリタイマは、実装されることが可能である。更に、リタイマは、その一部であるリンクにおいて切断／再接続を処理するには能力が不十分に又は全く備え付けられず、かかる複数のリタイマの使用を限定してもよい。従って、よりロバストでない拡張デバイス（例えば、不意の切断／再接続により耐性のある）は、より良好にインターコネクトプロトコルの機能及び要件に準拠する可能性があり、さもなければより最適な拡張ソリューションとなる可能性がある、複数のリタイマ及び他の複数の拡張デバイスによってしばしば代用される。
【００８２】
幾つかの実装において、インバンドの切断／再接続の検出は、例示のリタイマによってサポートされることが可能である。そのようなソリューションは、他の複数の例示的な利点の中でも、上に導入された、少なくとも幾つかの問題を処理することが可能である。インバンドの切断／再接続検出ロジックが備え付けられたリタイマは、他の複数の機能及び使用の中でも、（ホットプラグにおいてのような）不意の切断及び再接続を動的に検出し、サポートすることが可能である。切断（及び／又は再接続）の検出は、リタイマのポート上で受信される信号の分析を通じたそのようなロジックを通じて促進されることが可能である。従って、リタイマは、インバンドデータから、及び、対応するサイドバンドシグナリングなしで、リンク上の切断／再接続シーケンスを推定することが可能である。実際、幾つかの実装において、リタイマは、完全にインバンドの切断／再接続の検出に依存して、そのようなサイドバンドシグナリングのサポートを割愛することが出来る。更に、そのようなインバンドの切断／再接続検出ロジックの実装は、ＰＣＩｅのような、特定のインターコネクトプロトコル内のそのような複数のリタイマの使用を拡張することを含む、リタイマについての様々な新たなユースケースを可能とすることが出来る。
【００８３】
図８の例を参照すると、少なくとも１つのリタイマ８０５を含むリンク上の、例示の不意の切断及び再接続を図示する一連の簡略化されたブロックダイアグラム８００ａから８００ｄが示される。表現８００ａにおいて、リンクは、（例えば、第１のエンドポイントの）下流ポート８１０及び（例えば、第２のエンドポイントの）第１の上流ポート８１５を接続可能である。第２のエンドポイント８１５の不意の切断が生じた場合、表現８００ｂに図示されるように、リタイマは、第２のエンドポイント８１５がもはや接続されないことを警告されていなかったことがあり得、又は、即座に認識しない可能性がある。クロストーク及び他の周辺信号は、リタイマ８０５がポート上のどのデバイスにも接続されていないにも関わらず、リタイマの下流ポートに現れることが可能である。リタイマ８０５は、それにも関わらず、アイドル状態がリタイマ８０５の下流ポート上に存在することを推定及び検出する前に、他のエンドポイント８１０上にこれらの無意味な信号の幾つかを転送することが可能である。更に、エンドポイント８１０は、（例えば、他のエンドポイント８１５の切断に従って、リタイマによりエンドポイント８１０に転送される不要な信号に基づいて）リンク上の問題を同様に検出し得て、問題を修正すべく、リンクトレーニングを開始し得る。ダイアグラム８００ｃに示されるように、複数のトレーニングセット、（例えば、複数のオーダードセット、及び他の同様データを含む）予め規定された複数のトレーニングシーケンス、及び他のデータのようなリンクトレーニングデータ８２０は、接続されたエンドポイント６１０によってリタイマ８０５に送信されることが可能である。場合によって、リンクトレーニングデータ８２０は、（例えば、エンドポイント８１０によって開始される）リンクを回復する試みに関連して送信されることが可能である。下流ポート上のアイドル状態（例えば、８２５）と、リタイマの上流ポート上のリンクトレーニングデータ８２０とを合わせた、両方の検出に基づいて、リタイマのインバンドの切断／再接続検出ロジックは、切断が起こっていることを推定することが出来る。更に、それに応じて、リタイマロジックが、（ホットプラグ接続デバイスのような、別のエンドポイントの）別の上流ポート８３５との、新たな接続が完了しているか否か、及び、いつ完了したかを検出することを試みる検出状態８３０を、リタイマは、トリガすることが可能である。例えば、切断の識別に際して、例えば、ダイアグラム８００ｄに示されるように、リタイマのインバンドの切断／再接続検出ロジックは、その接続（例えば、５０Ω接続）を除去することが出来、新たな終端（例えば、５０Ωの終端）を検出しようと試みることが出来る。
【００８４】
［マルチモードリタイマ］
【００８５】
複数のリタイマのような、拡張デバイスの使用は、特定の複数のタイプのアプリケーション及びシステムに、場合によっては制限される。例えば、多くのシステム及びアプリケーションは、複数のリタイマ及び同様の拡張デバイスのような複数のコンポーネントを通じて導入されるＩ／Ｏバスレイテンシを許容出来ない。しかしながら、幾つかのシステムにおいて、複数のシステムによって利用される複数のプロトコルの全ての態様をサポートすべく、複数のリタイマは、リタイマを通じて送信される信号をデコード及び再エンコードするよう構成されてよい。例えば、幾つかの信号は、トレーニングシーケンス、オーダードセット、及び他の例のような幾つかのタイプの信号におけるフィールドを変更すべくリタイマを必要とし得る。従って、複数の従来型のリタイマは、リンク上のリタイマを介して送信される全ての信号をデコード及び再エンコードする。例えば、ＰＣＩｅにおいて、リタイマは、他の複数の例の中でも、８ｂ／１０ｂ又は１２８ｂ／１３０ｂエンコードスキームに従って、データをデコード及び再エンコードする。そのようなデコード及び再エンコードは、複数の従来型のリタイマを通じて導入される少なくとも幾つかのレイテンシのソースになることが出来る。
【００８６】
幾つかの実装において、改善されたリタイマは、他の複数の潜在的な利点の中でも、リタイマレイテンシを最小化することを含む、上に導入される問題のうち少なくとも幾つか処理するように提供されることが出来る。例えば、リタイマは、リンク上のデータの従来型のデコード及び再エンコードを割愛し、データがサブリンク上で受信されたまま、データを代わりに単に転送するよう選択的に採用されることが出来る、１又は複数の低レイテンシモードを含む、複数のモードを実装するための機能を有するように提供されることが出来る。  １又は複数の追加のモードもまた、リンクに沿ってデータをわたす前に、データをエンコード／再エンコードするリタイマを通じて、提供されることが出来る。
【００８７】
図９は、複数のモードのリタイマを提供するための例示の技術及びアルゴリズムを示す、例示のフローチャート９００を示す。複数の信号は、９０５において、リタイマのポート（例えば、上流ポート）で受信されることが可能であり、９０５において、リタイマ内のロジックは、信号タイプ、及び／又は、受信された複数の信号に適用するリンク状態を決定することが出来る。状態は、リタイマの複数の動作モードのどれか１つを利用するために予め規定されることが可能である。複数のモードは、リタイマの送信ポート（例えば、下流ポート）上の送信のために、上流ポート上で受信されるデータを直接転送する、低レイテンシモードを含むことが出来る。少なくとも１つの他のモードは、リタイマの下流ポートで信号を送信する前に、上流で受信される信号を少なくとも部分的にデコード及び／又は再エンコードし、又は受信された複数の信号のエンコードを変更するよう提供されることが出来る。幾つかの実装において、リンクトレーニング（又はリンクトレーニングデータ）がリタイマによって識別される場合、リタイマを通じて送信されるトレーニングセットにおいて、リタイマが幾つかのフィールドを変更することを可能とする、より高いタッチ（及びより高いレイテンシ）モードがリタイマによって採用されることが判断される（または予め構成される）ことが出来る。幾つかのリンク状態は、リタイマにおいてデコード及び／又は再エンコードすることに依存していると（例えば、リタイマのレジスタにおいて）識別されることが出来、リンクがこれらの状態のうちの１つであることを識別することは、リタイマにおける信号エンコード／デコードモードの（例えば、９２０において）使用を（例えば、９１５において）トリガすることが出来る。別の例において、上に図５Ａから図７の複数の例に説明されるように、リンクがテストモードにあることをリタイマが識別する場合、リタイマは、リタイマがデコードすること（例えば、エラー検出）、フィールド変更をすること（例えば、エラー報告データのエンコーディング）、及び、規定されたテストモードと同等の他の複数のタスクを実行することを可能とするモードを使用することが出来る。他のリンク状態及びデータタイプは、デコード／再エンコードなしでリタイマによって適切に転送されることが出来る。例えば、アクティブリンク状態（例えば、Ｌ０状態）において送信されるデータは、リタイマを通じて単に転送するのに適切であるとして規定されることが出来る。従って、リタイマによるデータの更なる一切の処理なし（又は最大でも、最小の処理）で、単純にリタイマを通じてデータをわたすべく、（例えば、９１０、９１５における）そのようなリンク状態（又は、データタイプ）の識別に際して、リタイマは、低レイテンシモードを（例えば、９２５において）使用することが出来る。リタイマは、複数のモードのうちの１又は複数がそれに対応する、検出された信号タイプ、リンク状態、及び他の状態に応じて、それが提供する、複数のモードの間を簡便に、動的に、及び自動的に、切り替えることが出来る。
【００８８】
［ＰＨＹ層速度検出］
【００８９】
最新のインターコネクトファブリックは、複数の異なる接続速度をサポートすることが出来、場合によって、動作の間の２又はより多くの接続速度の間の変更をサポートすることが出来る。リタイマは、それが一部であるリンク上に存在するどんな接続速度もサポートすべきである。リンク状態遷移を検出又は推定し、それにより、検出されるリンク状態内で利用される取りうる接続速度もまた、検出又は推定するため、複雑で、信頼性のないリンク状態検出ロジックを場合によっては含む、論理的物理層ロジックを、複数の従来型のリタイマは、利用する。現在のリンク状態を判断すべく、リンク状態検出ロジックは、情報を処理するので、正しい送信速度が実現され、リタイマが、適切な接続速度において受信されたデータで転送を開始することが可能となるまで、リタイマの送信速度が調整される（及び、再調整される）前に、大幅な遅延が生じ得る。更に、リンク状態検出ロジックが不正確なリンク速度を場合によっては推定し得るので、不正確な接続速度が、リンク状態検出ロジックによって推定され得て、他の複数の問題の中でも、リンク上に複数のエラー、及び、更なる送信遅延を引き起こし得る。
【００９０】
幾つかの実装において、リンク上のデータを着信する実際の速度を正確に検出するため、電気的物理層（又はＰＨＹ）レベルでハードウェアを少なくとも部分的に使用して実装される速度検出ロジックを、リタイマは含むように提供されることが出来る。リンク接続速度を「推定」すべく論理的物理層ロジックを利用するのではなく、ＰＨＹレベル速度検出ロジックを利用して、実際の送信速度は、検出されることが出来る。実際に、幾つかの実装において、リンク送信速度の判断で用いる論理的物理層状態検出ロジックは、簡易化されることが出来、又は、割愛されることさえ出来る。リタイマが迅速、及び正確に検出速度をサポートすることを許容すべく、ＰＨＹレベル速度検出モジュールは、検出速度を論理的物理層に伝えることが出来る。
【００９１】
図１０は、例示のリタイマの例示の物理層ロジックを示すように示される簡略化されたブロックダイアグラム１０００である。幾つかの実装において、リタイマは、電気的ＰＨＹサブレイヤ１００５及び論理的物理サブレイヤ１０１０を含む物理層を有することが出来る。場合によって、論理的物理サブレイヤ１０１０は、他の機能の中でも、メディアアクセスコントロール（ＭＡＣ）及び複数の物理的コーディング（ＰＣＳ）サブレイヤを更に有することが出来る。インタフェース１０１５は、ＰＨＹ１００５と、論理的物理サブレイヤ１０１０との間に提供されることが出来る。ＰＣＩｅ準拠のリタイマの実装におけるような幾つかの実施形態において、インタフェース１０１５は、他の複数の例の中でも、ＰＨＹ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＩＰＥ）として実現されることが出来る。ＰＨＹサブレイヤ１００５は、リンク上のデータ送信速度を検出することが出来る、速度検出モジュール１０２０を更に含むことが出来る。ＰＨＹサブレイヤ１００５は、インタフェース１０１５を使用して、検出速度を論理的物理サブレイヤ１０１０に伝えることが出来る。幾つかの実装において、インタフェース１０１５（例えば、ＰＩＰＥベースのインタフェース）は、（速度検出モジュール１０２０で検出された）速度の論理的物理層１０１０への通信をサポートするために拡張されることが出来る。幾つかの実装において、速度検出モジュール１０２０は、アナログの速度検出モジュールであり得る。
【００９２】
幾つかの実装において、速度検出モジュール１０２０は、バスが電気的アイドルを終了するときにはいつでも、自動的に速度検出を実行することが可能である。例えば、リンク上のデータのために使用されるべき送信速度を検出するため、リンク又は遷移リンク状態をアイドルから回復すべく送信されるリンクトレーニング信号は、速度検出モジュール１０２０によって使用されることが可能である。場合によっては、インターコネクトは、複数の接続速度のうちの１つをサポートすることが出来る。例えば、着信信号は、一実装において、２．５、５．０、８．０、又は、１６．０ＧＴ／ｓのレートのうちの１つであることが出来、速度検出モジュールは、サポートレートのどれが現在リンク上で採用されているかを検出することが出来る。そのような速度検出回路（例えば、１０２０）を使用して、幾つかの実装において、リタイマがリンクの送信速度を検出及びそれに適応する、正確性及び速度を向上することが出来る。
【００９３】
図１１Ａから図１１Ｅは、リタイマのような、拡張デバイスを使用して実装されるリンクに関連した例示の複数の技術を示すフローチャート１１００ａから１１００ｅである。例えば、図１１Ａにおいて、１１０５で、テストモードへのエントリは、１又は複数のリタイマ（又は他の複数の拡張デバイス）を含むことに基づいて、２又はより多いサブリンクを有するリンクに対して識別される。テストモード信号は、１１１０で、テストモードに関連して生成され、テストモード信号は、テストパターン、及び、エラー報告シーケンスを含む。テストモード信号は、１１１５で、特定のサブリンクを介して送信される。複数のエラーについて特定のサブリンクをテストするため、テストモード信号に含まれるテストパターンは、（例えば、信号の受信機によって）使用されることが可能である。エラー報告シーケンスは、テストモードの間にテストされている各サブリンクのエラーステータスを徐々に報告するべきである。先行するサブリンク上で識別される複数のエラーは、１１１０で、生成されたテストモード信号に含まれるエラー報告シーケンスに追加され、及び、そこで識別されることが出来る。
【００９４】
図１１Ｂを参照すると、１１２０で、テストモード信号は、リンク上のテストモードの間に、１又は複数の拡張デバイス、及び、２又はより多くのサブリンクを含むリンク内の特定のサブリンクを介して受信されることが出来る。受信されるテストモード信号は、テストパターン及びエラー報告シーケンスを含んでよい。１１３０で、特定のサブリンクのエラーステータスを判断すべく、テストパターンは、評価される。（例えば、一連のテストモード信号の間、リンクを介してエラーが伝搬されないことを保証すべく再生成された）テストパターンの新たに生成されたインスタンスと、特定のサブリンクの（１１３０において）判断されたエラーステータス、及び、テストモードの間に以前にテストされた複数のサブリンクのエラーステータス情報を維持するエラー報告シーケンスとを含む、別のテストモード信号は、１１３５でテストモードで送信されるべく生成される。図１１Ａ及び図１１Ｂの例の両方において、テストモードは、他の複数の例の中でも、ループバックモードを使用して、実装されることが出来る。
【００９５】
図１１Ｃの例において、１１４０で、リタイマを使用して、データはリンク上で転送される。リタイマロジックは、１１４５で、リタイマの（例えば、下流又は上流の）第１のポート上のアイドル状態を検出することが出来る。場合によって、アイドル状態は、推定されることが出来る。アイドル状態が、検出される間、リンクトレーニングデータは、１１５０で、リタイマの（例えば、上流又は下流の）第２のポート上で受信されることが出来、又は、さもなければ検出されることが出来る。第２のポート上の（１１５０で）リンクトレーニングデータと合わせて第１のポート上で、１１４５で検出されるアイドル状態に基づいて、リタイマは、第１のポートを使用してリタイマに以前まで接続された、デバイスが切断されているかを判断することが出来る。リタイマは、次に、他の複数の例の中でも、別のデバイスがリンク上の切断されたデバイスをいつ置き換えるかを識別すべく、検出状態に入ることが出来る。
【００９６】
図１１Ｄの例を参照すると、複数のモードのリタイマのような、複数のモードの拡張デバイスが提供されることが出来る。１１６０で、拡張デバイスが含まれるリンクの状態は、判断されることが出来る。例えば、リンク状態又はデータタイプは、リンク上で受信されるデータに基づいて判断されることが出来る。１１６５で、拡張デバイスの複数の動作モードのうちのそれぞれ１つは、状態に基づいて、選択されることが出来る。複数のモードは、他の複数の例の中でも、拡張デバイスを介して転送されるデータのデコード／エンコード／変更を許容するモード、及び、より低いレイテンシ処理のためにデコード／エンコードを割愛する別のモードを少なくとも許容することが出来る。１１７０で、その状態が適用可能である間、リンクを介してデータを送信するため、選択された動作モードは適用される（例えば、他の複数の例の中でも、リンク状態遷移が識別された場合、再度複数のモードを切り替える）。
【００９７】
図１１Ｅの例において、１１４０で、リタイマのような拡張デバイスにおいてデータが受信され、１１４５で、拡張デバイスのハードウェア速度検出回路は受信されたデータに対応する送信速度を検出するよう使用される。拡張デバイスは、論理的物理サブレイヤ及び電気的物理サブレイヤを有することが出来、速度検出モジュールは、電気的物理サブレイヤを使用して実装されることが出来る。１１５０で、検出される送信速度の結果は、電気的物理サブレイヤから論理的物理サブレイヤへ伝えられることが出来る。１１５５で、拡張デバイスは、検出速度に従ってデータを処理及び送信するよう自身を構成することが出来る。
【００９８】
上記の装置、方法、及びシステムは、前述の任意の電子デバイス又はシステムに実装されてよいことに留意されたい。複数の具体例として、以下の図面は、本明細書に説明された本発明を利用するための複数の例示的なシステムを提供する。複数の以下のシステムが、より詳細に説明されるように、多数の異なるインターコネクトが開示され、説明され、上の説明から再検討される。更に容易に明らかなように、上に説明された複数の進歩は、それらの複数のインターコネクト、複数のファブリック、又はアーキテクチャのいずれかに適用され得る。
【００９９】
図１２を参照すると、マルチコアプロセッサを含むコンピューティングシステムについてのブロックダイアグラムの実施形態が示される。プロセッサ１２００は、マイクロプロセッサ、組込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システムオンチップ（ＳＯＣ）、又はコードを実行する他のデバイスのような任意のプロセッサ又は処理デバイスを有する。プロセッサ１２００は、一実施形態において、少なくとも、２つのコア、コア１２０１及び１２０２を有し、これらは、非対称コア又は対称コアを含んでよい（図示された実施形態）。しかしながら、プロセッサ１２００は、任意の数の対称又は非対称たり得る処理要素を含んでよい。
【０１００】
一実施形態において、処理要素は、ソフトウェアスレッドをサポートするためのハードウェア又はロジックを指す。ハードウェア処理要素の例は、スレッドユニット、スレッドスロット、スレッド、処理ユニット、コンテクスト、コンテクストユニット、論理プロセッサ、ハードウェアスレッド、コア、及び／又は、実行状態又はアーキテクチャ状態のような、プロセッサについての状態を保持可能な他の任意の要素を有する。言い換えると、一実施形態において、処理要素は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、又は他のコードのような、コードに別々に関連付けられることが可能な任意のハードウェアを指す。物理プロセッサ（又はプロセッサソケット）は、典型的には集積回路を指し、複数のコア又は複数のハードウェアスレッドのような任意の数の他の処理要素を潜在的に有する。
【０１０１】
コアは、しばしば、独立のアーキテクチャ状態を維持可能な集積回路上に配置されたロジックを指し、この場合に、独立に維持される各アーキテクチャ状態は、少なくとも幾つかの専用実行リソースと関連付けられる。複数のコアとは対照的に、ハードウェアスレッドは、典型的には独立のアーキテクチャ状態を維持することが可能な集積回路に配置された任意のロジックを指し、この場合に、独立に維持されるアーキテクチャ状態は、複数の実行リソースへのアクセスを共有する。以上のように、特定のリソースが共有され、他の複数のリソースがあるアーキテクチャ状態に専用化される場合、コアと、ハードウェアスレッドの用語体系との間のラインが重なり合う。それでもしばしば、コア及びハードウェアスレッドは、オペレーティングシステムによって独立の論理プロセッサとしてみなされ、オペレーティングシステムは、各論理プロセッサ上で独立にスケジューリング動作をすることが可能である。
【０１０２】
物理プロセッサ１２００は、図１２に図示されるように、２つのコア、コア１２０１及び１２０２を含む。ここで、コア１２０１及び１２０２は、対称コア、即ち、同一の構成、機能ユニット、及び／又は、ロジックを有するコアだとみなされる。別の実施形態において、コア１２０１は、アウトオブオーダプロセッサコアを含む一方、コア１２０２は、インオーダプロセッサコアを含む。しかしながら、コア１２０１及び１２０２は、ネイティブコア、ソフトウェア管理コア、ネイティブ命令セットアーキテクチャ（ＩＳＡ）を実行するよう適合されたコア、変換された命令セットアーキテクチャ（ＩＳＡ）を実行するように適合されたコア、協調設計コア、又は他の公知のコアのような任意のタイプのコアから独立に選択されてよい。ヘテロジニアスなコア環境（即ち、非対称コア）において、バイナリ変換のような、幾つかの変換の形態は、一方又は両方のコアでコードをスケジューリング又は実行するよう利用されてよい。更なる検討はまだされていないが、コア１２０２におけるユニットは、図示された実施形態において同様の態様で動作するので、コア１２０１において図示される機能ユニットは、以下に更に詳細に説明される。
【０１０３】
図示されるように、コア１２０１は、２つのハードウェアスレッド１２０１ａ及び１２０１ｂを含み、それらはまた、ハードウェアスレッドスロット１２０１ａ及び１２０１ｂとも称され得る。従って、一実施形態において、オペレーティングシステムのような、ソフトウェアエンティティは、プロセッサ１２００を、４つの別個のプロセッサ、即ち、４つのソフトウェアスレッドを同時に実行可能な４つの論理プロセッサ又は処理要素であると潜在的にみなす。上記で示唆されるように、第１のスレッドはアーキテクチャ状態レジスタ１２０１ａに関連付けられ、第２のスレッドは、アーキテクチャ状態レジスタ１２０１ｂに関連付けられ、第３のスレッドは、アーキテクチャ状態レジスタ１２０２ａに関連付けられてよく、第４のスレッドは、アーキテクチャ状態レジスタ１２０２ｂに関連付けられてよい。ここで、上述のように、アーキテクチャ状態レジスタ（１２０１ａ、１２０１ｂ、１２０２ａ、及び１２０２ｂ）の各々は、処理要素、スレッドスロット、又はスレッドユニットとして称されてもよい。示されるように、アーキテクチャ状態レジスタ１２０１ａは、アーキテクチャ状態レジスタ１２０１ｂにおいて複製され、個々のアーキテクチャ状態／コンテクストは、論理プロセッサ１２０１ａ及び論理プロセッサ１２０１ｂに対してストアされることが可能である。コア１２０１において、アロケータ内の命令ポインタ及びリネームロジック、及びリネーマブロック１２３０のような、他のより小さなリソースもまた、スレッド１２０１ａ及び１２０１ｂに対して複製されてよい。リオーダ／リタイヤユニット１２３５における再順序バッファ、ＩＴＬＢ１２２０、ロード／ストアバッファ、及びキューのような幾つかのリソースは、パーティショニングを通じて共有されてよい。複数の汎用内部レジスタ、ページテーブルベースレジスタ、低レベルデータキャッシュ及びデータＴＬＢ１２１５、実行ユニット１２４０、アウトオブオーダユニット１２３５の複数の部分のようなその他のリソースは、潜在的に完全に共有される。
【０１０４】
プロセッサ１２００は、完全に共有、パーティショニングを通じて共有、又は処理要素により／対して専用であってよい、他のリソースをしばしば含む。図１２において、プロセッサの例示の論理ユニット／リソースを有する、純粋に例示的なプロセッサの実施形態が図示される。プロセッサは、図示されていない任意の他の公知の機能ユニット、ロジック又はファームウェアを有してよいのと同様に、これらの機能ユニットのいずれかを有し又は省略してよいことに留意されたい。図示されるように、コア１２０１は、簡易で、代表的なアウトオブオーダ（ＯＯＯ）プロセッサコアを含む。しかし、異なる複数の実施形態において、インオーダプロセッサが利用されてもよい。ＯＯＯコアは、実行され／取り出されるべき複数の分岐を予測する分岐ターゲットバッファ１２２０と、命令に対するアドレス変換エントリをストアするための命令変換バッファ（Ｉ−ＴＬＢ）１２２０と、を有する。
【０１０５】
コア１２０１は、フェッチされた複数の要素をデコードすべく、フェッチユニット１２２０に結合されたデコードモジュール１２２５を更に含む。フェッチロジックは、一実施形態において、スレッドスロット１２０１ａ、１２０１ｂにそれぞれ関連付けられた独立のシーケンサを含む。通常、コア１２０１は、プロセッサ１２００で実行可能な命令を規定／特定する第１のＩＳＡに関連付けられる。しばしば、第１のＩＳＡの一部である機械コードの命令は、命令の一部を有し（オペコードとして称される）、これは実行されるべき命令又は動作を参照／特定する。デコードロジック１２２５は、これらの命令をそれらのオペコードから認識し、第１のＩＳＡによって規定されるようにパイプラインで処理するためにデコードされた命令をパスする回路を有する。例えば、以下でより詳細に説明されるように、一実施形態において、デコーダ１２２５は、トランザクション命令のような特定の命令を認識するよう設計され、又は、適合されたロジックを含む。デコーダ１２２５による認識の結果として、アーキテクチャ又はコア１２０１は、適切な命令に関連したタスクを実行するために、特定の予め規定された複数の動作を取る。本明細書に説明される、任意のタスク、ブロック、動作、及び方法は、単一又は複数の命令に応じて実行されてよいことに留意することは重要であり、幾つかの命令は、新たな又は古い命令であってよい。一実施形態において、複数のデコーダ１２２６は、同一のＩＳＡ（又はそれらのサブセット）を認識することを留意されたい。この代わりに、ヘテロジニアスなコア環境において、複数のデコーダ１２２６は、第２のＩＳＡ（第１のＩＳＡのサブセットか、別個のＩＳＡのいずれか）を認識する。
【０１０６】
一例において、アロケータ及びリネーマブロック１２３０は、複数の命令処理結果をストアする複数のレジスタファイルのような、複数のリソースを予約するアロケータを含む。しかしながら、スレッド１２０１ａ及び１２０１ｂは、潜在的にアウトオブオーダ実行が可能であり、そこではアロケータ及びリネーマブロック１２３０も、複数の命令結果を追跡する複数のリオーダバッファのような複数の他のリソースを更に予約する。ユニット１２３０もまた、プロセッサ１２００の内部の他のレジスタに対し、プログラム／命令参照レジスタをリネームするレジスタリネーマを含んでよい。リオーダ／リタイヤユニット１２３５は、上述のリオーダバッファ、ロードバッファ、及びストアバッファのような複数のコンポーネントを含み、アウトオブオーダ実行と、その後、アウトオブオーダで実行された命令のインオーダリタイヤとをサポートする。
【０１０７】
一実施形態において、スケジューラ及び実行ユニットブロック１２４０は、複数の実行ユニットに対して命令／動作をスケジューリングするスケジューラユニットを含む。例えば、浮動小数点命令は、利用可能な浮動小数点実行ユニットを有する実行ユニットのポート上でスケジューリングされる。複数の実行ユニットに関連する複数のレジスタファイルもまた、複数の情報命令処理結果をストアするために含まれる。例示的な複数の実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、ストア実行ユニット、及び他の公知な複数の実行ユニットを有する。
【０１０８】
より低いレベルのデータキャッシュ及びデータ変換バッファ（Ｄ−ＴＬＢ）１２５０は、実行ユニット１２４０に結合される。データキャッシュは、データオペランドのような要素における最近の使用／動作をストアすべきであり、それらは潜在的にメモリコヒーレンシ状態で保持される。Ｄ−ＴＬＢは、物理アドレス変換への最近の仮想／線形をストアすべきである。特定の例のように、プロセッサは、物理メモリを複数の仮想ページへとブレークするために、ページテーブル構造体を含んでよい。
【０１０９】
ここで、コア１２０１及び１２０２は、オンチップインタフェース１２１０に関連した第２レベルキャッシュのような、より高レベル又は更に離れたキャッシュへのアクセスを共有する。より高レベル又は更に離れたということは、実行ユニットからより高い、又は、更に離れたキャッシュレベルを指すことを留意されたい。一実施形態において、より高レベルのキャッシュは、ラストレベルデータキャッシュ、つまり第２又は第３レベルデータキャッシュのような、プロセッサ１２００のメモリ階層における最後のキャッシュである。しかしながら、より高レベルのキャッシュは、そのように限定されず、命令キャッシュと関連付けられてもよく、又は、命令キャッシュを有してもよい。トレースキャッシュ、つまり、命令キャッシュの１つのタイプが、最近のデコードされたトレースをストアすべく、デコーダ１２２５の後に代わりに結合されてよい。ここで、命令は、マクロ命令（即ち、デコーダによって認識される一般的な命令）を潜在的に指し、これは、多数のマイクロ命令（マイクロオペレーション）へとデコードしてよい。
【０１１０】
図示される構成において、プロセッサ１２００は、オンチップインタフェースモジュール１２１０をさらに含む。歴史的には、メモリコントローラは、以下でより詳細に説明されるが、プロセッサ１２００の外部のコンピューティングシステムに含まれてきた。本シナリオでは、オンチップインタフェース１２１０は、システムメモリ１２７５、チップセット（しばしば、メモリ１２７５に接続するメモリコントローラハブ、及び、周辺機器に接続するＩ／Ｏコントローラハブを含む）、メモリコントローラハブ、ノースブリッジ、又は他の集積回路のような、プロセッサ１２００の外部のデバイスと通信するものとなる。更に、本シナリオにおいて、バス１２０５は、マルチドロップバス、ポイントツーポイントインターコネクト、シリアルインターコネクト、パラレルバス、コヒーレント（例えば、キャッシュコヒーレント）バス、層状プロトコルアーキテクチャ、差分バス、及びＧＴＬバスのような、任意の公知のインターコネクトを含んでよい。
【０１１１】
メモリ１２７５は、システムにおいて、プロセッサ１２００の専用であってよく、又は、他の複数のデバイスと共有されてもよい。複数のタイプのメモリ１２７５の共通例は、ＤＲＡＭ、ＳＲＡＭ、不揮発性メモリ（ＮＶメモリ）、及び他の公知の複数のストレージデバイスを含む。デバイス１２８０は、グラフィックアクセラレータ、メモリコントローラハブに結合されたプロセッサ若しくはカード、Ｉ／Ｏコントローラハブに結合されたデータストレージ、無線送受信器、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ、又は他の公知の複数のデバイスを含んでよいことを留意されたい。
【０１１２】
しかしながら、最近、より多くのロジック及びデバイスが、ＳＯＣのような単一ダイ上に統合されるにつれ、これらのデバイスの各々は、プロセッサ１２００上に組み込まれてよい。例えば、一実施形態において、メモリコントローラハブは、プロセッサ１２００と共に同一のパッケージ及び／又はダイ上にある。ここで、コアの部分（オンコア部分）１２１０は、メモリ１２７５又はグラフィックスデバイス１２８０ような他の複数のデバイスとインタフェースするために、１又は複数のコントローラを有する。そのような複数のデバイスとインタフェースするためのインターコネクト及びコントローラを含む構成は、しばしばオンコア（又はアンコア構成）として称される。一例として、オンチップインタフェース１２１０は、オンチップ通信のためのリングインターコネクトと、オフチップ通信のための高速度シリアルポイントツーポイントリンク１２０５とを有する。しかし、ＳＯＣ環境においては、ネットワークインタフェース、複数のコプロセッサ、メモリ１２７５、グラフィックスプロセッサ１２８０、及び任意の他の公知のコンピュータデバイス／インタフェースのような、更により多くのデバイスが単一ダイ又は集積回路上に統合されてよく、高機能及び低電力消費を有する小さなフォームファクタを提供してもよい。
【０１１３】
一実施形態において、プロセッサ１２００は、本明細書に説明される装置及び方法をサポートし、又はそれらとインタフェースを取るべく、アプリケーションコード１２７６をコンパイル、変換、及び／又は、最適化すべく、コンパイラ、最適化、及び／又は変換コード１２７７を実行可能である。コンパイラは、ソーステキスト／コードをターゲットテキスト／コードへと変換するためのプログラム又は複数のプログラムのセットをしばしば含む。通常、コンパイラによるプログラム／アプリケーションコードのコンパイルは、多重フェーズで行われ、高レベルプログラミング言語コードを、低レベルの機械又はアセンブリ言語コードへと変換すべくパスする。しかし、単一パスコンパイラは、簡易なコンパイルのためになおも利用されてよい。コンパイラは、任意の公知のコンパイル技術を利用してよく、字句解析、前処理、構文解析、セマンティック解析、コード生成、コード変換、及びコード最適化のような、任意の公知のコンパイラの動作を実行してよい。
【０１１４】
より大きなコンパイラは、多重フェーズをしばしば含む。しかし、非常に頻繁に、これらのフェーズは、次の２つの一般フェーズ内に含まれる。（１）即ち、概して構文処理、セマンティック処理、及び幾つかの変換／最適化が発生し得るフロントエンド、及び（２）即ち、概して解析、変換、最適化、及びコード生成が発生する、バックエンドである。幾つかのコンパイラは、中間的なものを指し、これは、コンパイラのフロントエンドと、バックエンドとの間の描写がぼやけたものを示す。結果として、挿入、関連付け、生成、又は他のコンパイラの動作への参照は、任意の前述のフェーズ又はパスにおいて、並びに、コンパイラの任意の他の公知のフェーズ又はパスにおいて、行われてよい。例示的な事例として、コンパイルのフロントエンドフェーズにおける複数の呼び出し／複数の動作の挿入、及び、次に、変換フェーズの間に、低レベルのコードへの複数の呼び出し／複数の動作の変換のように、コンパイルの１又は複数のフェーズにおいて、複数の動作、複数の呼び出し、複数の機能等を、コンパイラは、潜在的に挿入する。動的コンパイルの間に、コンパイラコード又は動的最適化コードは、そのような複数の動作／複数の呼び出しを挿入してよく、同様に、ランタイムの間に実行のためのコードを最適化してよいことを留意されたい。特定の例示的な事例として、バイナリコード（既にコンパイルされたコード）は、ランタイムの間に動的に最適化されてよい。ここで、プログラムコードは、動的最適化コード、バイナリコード、又はそれらの組み合わせを含んでよい。
【０１１５】
コンパイラと同様に、バイナリトランスレータのようなトランスレータは、コードを最適化及び／又は変換すべく、静的又は動的のいずれかでコードを変換する。従って、コード、アプリケーションコード、プログラムコード、又は他のソフトウェア環境の実行への参照は、（１）プログラムコードをコンパイルし、ソフトウェア構造を維持し、他の動作を実行し、コードを最適化し、又は、コードを変換するために、コンパイラプログラム、最適化コード最適化器、又はトランスレータの動的又は静的のいずれかでの実行、（２）最適化され／コンパイルされているアプリケーションコードのような、複数の動作／複数の呼び出しを有するメインプログラムコードの実行、（３）ソフトウェア構造を維持し、他のソフトウェアに関連した動作を実行し、又はコードを最適化するため、メインプログラムコードに関連したライブラリのような、他のプログラムコードの実行、又は、（４）それらの組み合わせを指してよい。
【０１１６】
ここで図１３を参照すると、マルチコアプロセッサの実施形態のブロックダイアグラムが示される。図１３の実施形態に示されるように、プロセッサ１３００は、複数のドメインを有する。具体的には、コアドメイン１３３０は、複数のコア１３３０Ａから１３３０Ｎを含み、グラフィクスドメイン１３６０はメディアエンジン１３６５を含む１又は複数のグラフィクスエンジンを有し、及びシステムエージェントドメイン１３１０を備える。
【０１１７】
様々な実施形態において、システムエージェントドメイン１３１０は、電力制御イベント及び電力管理を処理する。その結果、ドメイン１３３０及び１３６０の個々の複数のユニット（例えば、コア及び／又はグラフィクスエンジン）は、所与のユニット内で発生するアクティビティ（又は非アクティビティ）の観点から、適切な電力モード／レベル（例えば、アクティブ、ターボ、スリープ、休止状態、ディープスリープ、又は他のＡｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅのような状態）において動的に動作するように独立的に制御可能である。ドメイン１３３０及び１３６０の各々は、異なる電圧及び／又は電力で動作してよい。更に複数のドメイン内の個々のユニットは、独立した周波数及び電圧でそれぞれ潜在的に動作する。３つのドメインを有するもののみが示されている一方で、本発明の範囲は、この点に限定されず、他の実施形態においては、追加のドメインが存在してよいことが理解されるべき点に留意されたい。
【０１１８】
示されるように、各コア１３３０は、様々な実行ユニット及び追加の処理要素に加えて低レベルキャッシュを更に含む。ここで、様々なコアは、互いに、及び、ラストレベルキャッシュ（ＬＬＣ）１３４０Ａから１３４０Ｎの複数のユニット又はスライスから形成される共有キャッシュメモリに結合され、これらのＬＬＣは、ストレージ及びキャッシュ制御機能をしばしば有し、複数のコアの間だけでなく、潜在的にはグラフィクスエンジンの間においてもまた、共有される。
【０１１９】
見ての通り、リングインターコネクト１３５０は、複数のコアを一緒に連結し、複数のリングストップ１３５２Ａから１３５２Ｎを介して、コアドメイン１３３０と、グラフィクスドメイン１３６０と、システムエージェント回路１３１０との間にインターコネクトを提供する。当該リンクストップの各々は、コアとＬＬＣスライスとの間の結合部にある。図１３に見られるように、インターコネクト１３５０は、アドレス情報、データ情報、受信確認情報、及びスヌープ／無効情報を含む、様々な情報を搬送するよう使用される。リングインターコネクトが図示されるが、任意の公知の、オンダイインターコネクト、又はファブリックが利用されてよい。例示的な事例として、上述したような幾つかのファブリック（例えば、別のオンダイインターコネクト、オンチップシステムファブリック（ＯＳＦ）、アドバンストマイクロコントローラバスアーキテクチャ（ＡＭＢＡ）インターコネクト、多次元メッシュファブリック、又は他の公知なインターコネクトアーキテクチャ）は、同様の態様で利用されてよい。
【０１２０】
更に図示されるように、システムエージェントドメイン１３１０は、関連付けられたディスプレイの制御及び当該ディスプレイへのインタフェースを提供するためのディスプレイエンジン１３１２を含む。システムエージェントドメイン１３１０は、システムメモリ（例えば、複数のＤＩＭＭと共に実装されるＤＲＡＭ）へのインタフェースを提供する統合型メモリコントローラ１３２０、メモリコヒーレンシ動作を実行するコヒーレンシロジック１３２２のような、他の複数のユニットを含んでよい。プロセッサと他の回路との間のインターコネクトを可能にすべく、複数のインタフェースが存在してよい。例えば、一実施形態において、少なくとも１つのダイレクトメディアインタフェース（ＤＭＩ）１３１６インタフェース及び１又は複数のＰＣＩｅ（商標）インタフェース１３１４が提供される。ディスプレイエンジン及びこれらのインタフェースは、典型的には、ＰＣＩｅ（商標）ブリッジ１３１８を介してメモリに結合する。更には、追加のプロセッサ又は他の回路のような他の複数のエージェントの間の通信を提供すべく、１又は複数の他のインタフェースが提供されてよい。
【０１２１】
ここで図１４を参照すると、代表的なコアのブロックダイアグラムが、具体的には、図１３のコア１３３０のような、コアのバックエンドの複数の論理ブロックが、示される。概して、図１４に示される構造は、アウトオブオーダプロセッサを有しており、このプロセッサは、複数の入力命令をフェッチし、様々な処理（例えば、キャッシュ、デコード、分岐予測等）を実行し、複数の命令／複数の動作をアウトオブオーダ（ＯＯＯ）エンジン１４８０へとパスすることを実行するために使用されるフロントエンドユニット１４７０を有する。ＯＯＯエンジン１４８０は、デコードされた命令に対しての更なる処理を実行する。
【０１２２】
具体的には図１４の実施形態において、アウトオブオーダエンジン１４８０は、デコードされた命令を受信する割り当てユニット１４８２を有し、これらの命令は、フロントエンドユニット１４７０からの、１又は複数のマイクロ命令又はｕｏｐの形態であってよく、割り当てユニットは、それらを複数のレジスタなどのような適切な複数のリソースへと割り当てる。次に、複数の命令は、予約ステーション１４８４へ提供され、このステーションは、複数の実行ユニット１４８６Ａから１４８６Ｎのうちの１つで実行するために、複数のリソースを予約し、スケジューリングする。様々なタイプの実行ユニットが存在し得る。当該実行ユニットとして、例えば、とりわけ、複数の演算ロジックユニット（ＡＬＵ）、複数のロード及びストアユニット、複数のベクトル処理ユニット（VPU）、浮動小数点実行ユニットを含む。これらの異なる実行ユニットからの結果は、リオーダバッファ（ＲＯＢ）１４８８へと提供され、リオーダバッファは、複数の順序付けされていない結果を取得し、それらを正しいプログラム順序へリターンする。
【０１２３】
図１４をなおも参照すると、フロントエンドユニット１４７０とアウトオブオーダエンジン１４８０との両方が、メモリ階層の異なるレベルに結合されることに留意されたい。具体的には、命令レベルキャッシュ１４７２が図示され、当該キャッシュはその次には中間レベルキャッシュ１４７６へ結合し、中間レベルキャッシュは、その次にはラストレベルキャッシュ１４９５へ結合する。一実施形態において、ラストレベルキャッシュ１４９５は、オンチップ（場合によっては、アンコアとして称される）ユニット１４９０で実装される。一例として、ユニット１４９０は、図１３のシステムエージェント１３１０に類似する。上述したように、アンコア１４９０は、例示された実施形態においては、ＥＤ  ＲＡＭを介して実装されるシステムメモリ１４９９と通信する。アウトオブオーダエンジン１４８０内の様々な実行ユニット１４８６は、第１レベルキャッシュ１４７４と通信し、当キャッシュはまた、中間レベルキャッシュ１４７６と通信することもまた留意されたい。複数の追加のコア１４３０Ｎ−２から１４３０Ｎは、ＬＬＣ１４９５に結合し得ることもまた留意されたい。図１４の実施形態において、このような高いレベルで示されたが、様々な変更形態及び追加的なコンポーネントが存在してよいことを理解すべきである。
【０１２４】
図１５を参照すると、命令を実行する実行ユニットを有するプロセッサとともに形成される例示的なコンピュータシステムのブロックダイアグラムが図示されており、そこでは、インターコネクトのうちの１又は複数は、本発明の一実施形態に係る１又は複数の機能を実装する。本明細書に説明される実施形態におけるもののような、本発明に係る、データ処理のためのアルゴリズムを実行するロジックを含む実行ユニットを使用する、プロセッサ１５０２のようなコンポーネントを、システム１５００は有する。システム１５００は、ＰＥＮＴＩＵＭ（登録商標）  ＩＩＩ、ＰＥＮＴＩＵＭ（登録商標）  ４、Ｘｅｏｎ（登録商標）、Ｉｔａｎｉｕｍ、ＸＳｃａｌｅ（登録商標）、及び／又はＳｔｒｏｎｇＡＲＭ（登録商標）マイクロプロセッサに基づく代表的な処理システムであるが、（他のマイクロプロセッサ、エンジニアリングワークステーション、セットトップボックス等を含む複数のＰＣを有する）他のシステムもまた、使用されてよい。一実施形態において、サンプルシステム１５００は、ワシントン州レドモンド市のマイクロソフト社から利用可能なＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムのバージョンを実行するが、他のオペレーティングシステム（例えば、ＵＮＩＸ（登録商標）及びリナックス（登録商標））、組込みソフトウェア、及び／又はグラフィカルユーザインタフェースもまた、使用されてよい。このように、本発明の実施形態は、ハードウェア回路及びソフトウェアのいかなる具体的な組み合わせにも限定されない。
【０１２５】
複数の実施形態は、コンピュータシステムに限定されない。本発明の複数の代替的な実施形態は、ハンドヘルドデバイス及びエンベデッドアプリケーションのような他の複数のデバイスにおいて使用されることが可能である。ハンドヘルドデバイスの幾つかの例としては、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末（ＰＤＡ）及びハンドヘルドＰＣを含む。エンベデッドアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、システムオンチップ、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークハブ、広域ネットワーク（ＷＡＮ）スイッチ、又は少なくとも１つの実施形態に係る１又は複数の命令を実行することが可能な任意の他のシステムを含むことが可能である。
【０１２６】
この例示された実施形態において、プロセッサ１５０２は、少なくとも１つの命令を実行するアルゴリズムを実装する１又は複数の実行ユニット１５０８を含む。１つの実施形態は、シングルプロセッサのデスクトップ又はサーバシステムのコンテクストで説明されてよいが、複数の代替的な実施形態は、マルチプロセッサシステムに含まれてよい。システム１５００は、「ハブ」システムアーキテクチャの例である。コンピュータシステム１５００は、複数のデータ信号を処理するプロセッサ１５０２を含む。１つの例示的な事例として、プロセッサ１５０２は、例えば、複合命令セットコンピュータ（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、命令セットの組み合わせを実装するプロセッサ、又は、デジタル信号プロセッサのような他の任意のプロセッサデバイスを含む。プロセッサ１５０２は、システム１５００において、プロセッサ１５０２と、他のコンポーネントとの間でデータ信号を送信するプロセッサバス１５１０に結合される。システム１５００の複数の要素（例えば、グラフィックスアクセラレータ１５１２、メモリコントローラハブ１５１６、メモリ１５２０、Ｉ／Ｏコントローラハブ１５２４、無線送受信器１５２６、フラッシュＢＩＯＳ１５２８、ネットワークコントローラ１５３４、オーディオコントローラ１５３６、シリアル拡張ポート１５３８、Ｉ／Ｏコントローラ１５４０等）は、当業者に周知のこれらの従来の機能を実行する。
【０１２７】
一実施形態において、プロセッサ１５０２は、レベル１（Ｌ１）内部キャッシュメモリ１５０４を有する。アーキテクチャに応じて、プロセッサ１５０２は、単一の内部キャッシュ又は複数のレベルの内部キャッシュを有してよい。複数の他の実施形態は、特定の実装及び必要に応じて、内部及び外部キャッシュの両方の組み合わせを含む。レジスタファイル１５０６は、複数の異なるタイプのデータを、整数レジスタ、浮動小数点レジスタ、ベクトルレジスタ、バンクレジスタ、シャドウレジスタ、チェックポイントレジスタ、ステータスレジスタ、及び命令ポインタレジスタを含む様々なレジスタにストアすべきである。
【０１２８】
整数及び浮動小数点演算を実行するロジックを含む実行ユニット１５０８もまた、プロセッサ１５０２に存在する。一実施形態において、プロセッサ１５０２は、マイクロコードをストアするためのマイクロコード（ｕｃｏｄｅ）ＲＯＭを有し、マイクロコードは、実行された場合、特定の複数のマクロ命令のためのアルゴリズムを実行するか、又は複雑なシナリオを処理する。ここで、マイクロコードは、プロセッサ１５０２のための論理バグ／修正を処理するべく、潜在的にアップデート可能である。一実施形態に対して、実行ユニット１５０８は、パックド命令セット１５０９を処理するためのロジックを含む。汎用プロセッサ１５０２の命令セットにパックド命令セット１５０９を含ませることによって、それらの命令を実行するために関連する回路と共に、多くのマルチメディアアプリケーションによって使用される複数の動作が、汎用プロセッサ１５０２でパックドデータを使用して実行されてよい。このように、パックドデータで動作を実行するためにプロセッサのデータバスの全幅を使用することにより、多くのマルチメディアアプリケーションは、より効率的に加速及び実行される。このことは、１又は複数の動作及び１つのデータ要素を一度に実行すべく、プロセッサのデータバスにわたって、より小さいユニットのデータを転送する必要性を潜在的に除去する。
【０１２９】
実行ユニット１５０８の代替的な実施形態もまた、マイクロコントローラ、組込みプロセッサ、グラフィックスデバイス、ＤＳＰ、及び他のタイプのロジック回路で使用されてよい。システム１５００は、メモリ１５２０を含む。メモリ１５２０は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、スタティックランダムアクセスメモリ（ＳＲＡＭ）デバイス、フラッシュメモリデバイス、又は他のメモリデバイスを含む。メモリ１５２０は、プロセッサ１５０２によって実行されるべき、複数のデータ信号によって表される複数の命令及び／又はデータをストアする。
【０１３０】
本発明の任意の前述の機能又は態様は、図１５に図示される１又は複数のインターコネクト上で利用されてよいことを留意されたい。例えば、プロセッサ１５０２の内部ユニットを連結するための不図示のオンダイインターコネクト（ＯＤＩ）は、上に説明された１又は複数の本発明の態様を実装する。または、本発明は、プロセッサバス１５１０（例えば、他の公知の高性能計算インターコネクト）、メモリ１５２０への高帯域幅メモリパス１５１８、グラフィックスアクセラレータ１５１２へのポイントツーポイントリンク（例えば、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）準拠のファブリック）、コントローラハブインターコネクト１５２２、他の図示された複数のコンポーネントを連結するためのＩ／Ｏ、又は、他のインターコネクト（例えば、ＵＳＢ、ＰＣＩ、ＰＣＩｅ）に関連する。そのような複数のコンポーネントの幾つかの例としては、オーディオコントローラ１５３６、ファームウェアハブ（フラッシュＢＩＯＳ）１５２８、無線送受信器１５２６、データストレージ１５２４、ユーザ入力並びにキーボードインタフェース１５４２を備えるレガシＩ／Ｏコントローラ１５１０、ユニバーサルシリアルバス（ＵＳＢ）のようなシリアル拡張ポート１５３８、及びネットワークコントローラ１５３４を含む。データストレージデバイス１５２４は、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ―ＲＯＭデバイス、フラッシュメモリデバイス、又は、他の大容量ストレージデバイスを備えることが出来る。
【０１３１】
ここで図１６を参照すると、本発明の実施形態に係る第２のシステム１６００のブロックダイアグラムが示される。図１６に示されるように、マルチプロセッサシステム１６００は、ポイントツーポイントインターコネクトシステムであり、ポイントツーポイントインターコネクト１６５０を介して結合される第１のプロセッサ１６７０と、第２のプロセッサ１６８０とを備える。プロセッサ１６７０及び１６８０の各々は、何らかのバージョンのプロセッサであってよい。一実施形態において、１６５２及び１６５４は、高性能アーキテクチャのような、シリアルポイントツーポイントコヒーレントインターコネクトファブリックの一部である。結果として、本発明は、ＱＰＩアーキテクチャ内に実装されてよい。
【０１３２】
２つのプロセッサ１６７０、１６８０のみによって示される一方、本発明の範囲は、そのように限定されないことを理解されるべきである。他の実施形態において、１又は複数の追加のプロセッサは、所与のプロセッサにおいて存在してよい。
【０１３３】
プロセッサ１６７０及び１６８０は、統合型メモリコントローラユニット１６７２及び１６８２をそれぞれ含むように示される。プロセッサ１６７０は、その複数のバスコントローラユニットの一部として、ポイントツーポイント（Ｐ−Ｐ）インタフェース１６７６及び１６７８をさらに含み、同様に、第２のプロセッサ１６８０は、Ｐ−Ｐインタフェース１６８６及び１６８８を含む。プロセッサ１６７０、１６８０は、Ｐ−Ｐインタフェース回路１６７８、１６８８を使用して、ポイントツーポイント（Ｐ−Ｐ）インタフェース１６５０を介して情報を交換してよい。図１６に示されるように、ＩＭＣ１６７２及び１６８２は、複数のプロセッサをそれぞれメモリ、即ち、メモリ１６３２及びメモリ１６３４に結合し、これらのメモリは、それぞれのプロセッサにローカルに取り付けられるメインメモリの複数の部分であってよい。
【０１３４】
ポイントツーポイントインタフェース回路１６７６、１６９４、１６８６、１６９８を使用して、プロセッサ１６７０、１６８０は、独立のＰ−Ｐインタフェース１６５２、１６５４を介してチップセット１６９０と各々情報を交換する。チップセット１６９０もまた、高性能グラフィックインターコネクト１６３９に沿って、インタフェース回路１６９２を介して高性能グラフィック回路１６３８と情報を交換する。
【０１３５】
共有キャッシュ（不図示）は、いずれかのプロセッサに含まれてよく、又は両方のプロセッサの外部にあってよく、更には、プロセッサが低電力モードへと置かれた場合、いずれか又は両方のプロセッサのローカルキャッシュ情報が共有キャッシュにストアされ得るように、Ｐ−Ｐインターコネクトを介してプロセッサと接続されてもよい。
【０１３６】
チップセット１６９０は、インタフェース１６９６を介して、第１のバス１６１６に結合されてよい。一実施形態において、第１のバス１６１６は、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バス、又は、ＰＣＩ  Ｅｘｐｒｅｓｓバス若しくは別の第３世代Ｉ／Ｏインターコネクトバスのようなバスであってよいが、本発明の範囲はそのように限定されない。
【０１３７】
図１６に示されるように、様々なＩ／Ｏデバイス１６１４は、バスブリッジ１６１８と共に第１のバス１６１６に結合され、このバスブリッジは、第１のバス１６１６を第２のバス１６２０に結合する。一実施形態において、第２のバス１６２０は、Ｌｏｗ  Ｐｉｎ  Ｃｏｕｎｔ（ＬＰＣ）バスを有する。一実施形態において、例えば、キーボード及び／又はマウス１６２２、通信デバイス１６２７、及び、複数の命令／コード及びデータ１６３０をしばしば含むディスクドライブ若しくは他の大容量ストレージデバイスのようなストレージユニット１６２８を含む、様々なデバイスが、第２のバス１６２０に結合される。更に、オーディオＩ／Ｏ１６２４は、第２のバス１６２０に結合されて、示される。含まれるコンポーネント及びインターコネクトアーキテクチャが変更される、他のアーキテクチャが可能であることを留意されたい。例えば、図１６のポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバス、又は、他のそのようなアーキテクチャを実装してよい。
【０１３８】
次に図１７を参照すると、本発明に係るシステムオンチップ（ＳＯＣ）設計の実施形態が図示される。特定の例示的な事例として、ＳＯＣ１７００は、ユーザ機器（ＵＥ）に含まれる。一実施形態において、ＵＥは、携帯電話、スマートフォン、タブレット、超薄型ノートブック、ブロードバンドアダプタを有するノートブック、又は、他の任意の類似の通信デバイスのような、通信目的でエンドユーザによって使用される任意のデバイスを指す。しばしば、ＵＥは、基地局又はノードに接続し、これらは、事実上、ＧＳＭ（登録商標）ネットワークにおける移動局（ＭＳ）に、潜在的に対応する。
【０１３９】
ここで、ＳＯＣ１７００は、２つのコア１７０６と１７０７とを有する。上の検討と同様に、コア１７０６及び１７０７は、インテル（登録商標）アーキテクチャコア（登録商標）ベースのプロセッサ、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｉｎｃ．（ＡＭＤ）のプロセッサ、ＭＩＰＳベースのプロセッサ、ＡＲＭベースのプロセッサ設計、又は、それらの顧客、並びに、それらの複数のライセンシー若しくは複数の利用者のもののような命令セットアーキテクチャに適合し得る。コア１７０６及び１７０７は、システム１７００の他の複数の部分と通信すべくバスインタフェースユニット１７０９及びＬ２キャッシュ１７１１に関連する、キャッシュ制御１７０８に結合される。インターコネクト１７１０は、ＩＯＳＦ、ＡＭＢＡ、又は、上述した他のインターコネクトのようなオンチップインターコネクトを含み、本明細書で説明された１又は複数の態様を潜在的に実装する。
【０１４０】
ＳＩＭカードとインタフェースする加入者アイデンティティモジュール（ＳＩＭ）１７３０、ＳＯＣ１７００を初期化しブートすべく、コア１７０６及び１７０７によって実行するためのブートコードを保持するブートＲＯＭ１７３５、外部メモリ（例えば、ＤＲＡＭ１７６０）とインタフェースするＳＤＲＡＭコントローラ１７４０、不揮発性メモリ（例えば、フラッシュ１７６５）とインタフェースするフラッシュコントローラ１７４５、周辺機器とインタフェースする周辺機器制御１７５０（例えば、シリアル周辺機器インタフェース）、入力（例えば、タッチ可能な入力）を表示し受信するビデオコーデック１７２０及びビデオインタフェース１７２５、グラフィックに関連した計算を実行するＧＰＵ１７１５等のような他のコンポーネントへの通信チャネルを、インタフェース１７１０は、提供する。任意のこれらのインタフェースは、本明細書で説明される本発明の態様を組み込んでよい。
【０１４１】
更に、システムは、ブルートゥース（登録商標）モジュール１７７０、３Ｇモデム１７７５、ＧＰＳ１７８５、及び、ＷｉＦｉ１７８５のような、通信のための周辺機器を例示する。上述されたように、ＵＥは、通信用無線を含むことに留意されたい。結果として、これらの周辺機器通信モジュールは、全てが必要とされるわけではない。しかしながら、あるＵＥの形態において、外部通信用無線は含まれるべきである。
【０１４２】
本発明は限られた数の実施形態に関して説明されたが、当業者はそこから多数の修正形態及び変形形態を理解するであろう。添付の特許請求の範囲が、本発明の真の趣旨及び範囲に含まれるそのような全ての修正形態及び変形形態を包含することが意図される。
【０１４３】
設計は、作成からシミュレーション、製造に至る様々な段階を経得る。設計を表すデータは、多数の態様における設計を表し得る。まず、シミュレーションで有用なように、ハードウェアは、ハードウェア記述言語、又は別の機能記述言語を使用して表され得る。また、ロジック及び／又はトランジスタゲートを有する回路レベルモデルは、設計処理の幾つかの段階において生成され得る。更に、幾つかの段階では、大部分の設計が、ハードウェアモデルにおける様々なデバイスの物理的配置を表すデータのレベルに到達する。従来の半導体製造技術が使用される場合において、ハードウェアモデルを表すデータとは、集積回路を生産するために使用されるマスクのための異なるマスク層に、様々な機能が存在するか、又は存在しないかを指定するデータであってよい。設計の任意の表現において、データは、任意の形態の機械可読媒体にストアされてよい。メモリ又は、ディスクのような磁気若しくは光ストレージは、そのような情報を送信するために変調又は、別の方法で生成された光若しくは電気の波を介して送信される情報をストアするための、機械可読媒体であってよい。コード若しくは設計を示し、又は搬送する電気の搬送波が送信される場合、その電気信号のコピー、バッファ処理、又は再送が実行される程度において、新たなコピーが作成される。このように、通信プロバイダ又はネットワークプロバイダは、搬送波にエンコードされた情報のような項目を、有形の機械可読媒体に少なくとも一時的にストアし、本発明の実施形態の技術を実施してよい。
【０１４４】
本明細書で使用されるようにモジュールとは、ハードウェア、ソフトウェア、及び／又はファームウェアの任意の組み合わせを指す。一例として、モジュールは、マイクロコントローラによって実行されるように適合されたコードをストアする非一時的媒体に関連した、マイクロコントローラのようなハードウェアを含む。従って、一実施形態において、モジュールの参照は、ハードウェアを指し、このハードウェアは、非一時的媒体に保持されるべきコードを認識及び／又は実行するよう具体的に構成されている。更に、別の実施形態において、モジュールの使用は、コードを含む非一時的媒体を指し、このコードは、予め定められた処理を実行すべく、マイクロコントローラによって実行されるよう具体的に適合される。そして、更に別の実施形態において、推定されることが可能であるように、（本例における）モジュールという用語は、マイクロコントローラ及び非一時的媒体の組み合わせを指してよい。多くの場合、別個に図示されるモジュールの境界線は、一般に異なり、潜在的には重複する。例えば、第１のモジュール及び第２のモジュールは、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせを共有してよく、その一方で、幾つかの独立したハードウェア、ソフトウェア又はファームウェアを潜在的に維持してよい。一実施形態において、ロジックという用語の使用は、トランジスタ、レジスタ、又は、プログラマブルロジックデバイス等の他のハードウェアのような、ハードウェアを含む。
【０１４５】
一実施形態において、「よう構成され」たという用語の使用は、指定又は決定されたタスクを実行すべく、装置、ハードウェア、ロジック、又は要素を、配置し、組み立て、製造し、販売の申出をし、輸入し、及び／又は設計することを指す。この例において、動作していない装置又はそれらの要素は、それが上記の指定されたタスクを実行するよう設計され、結合され、及び／又はインターコネクトされている場合には、依然として指定されたタスクを実行する「よう構成され」ている。純粋に例示的な事例として、ロジックゲートは、動作の間、０又は１を提供し得る。しかし、クロックへイネーブル信号を提供する「よう構成され」るロジックゲートは、１又は０を提供し得る全ての潜在的なロジックゲートを含むわけではない。代わりに、ロジックゲートは、動作の間に、１又は０の出力がクロックをイネーブルにするように、なんらかの態様で結合されるものである。「よう構成され」という用語の使用は、動作を必要とせず、その代わりに、装置、ハードウェア及び／又は要素の隠れた状態に焦点を当てるものであって、ここで、その隠れた状態において、装置、ハードウェア、及び／又は要素は、装置、ハードウェア、及び／又は要素が動作しているときに、特定のタスクを実行するよう設計されていることに再度留意されたい。
【０１４６】
更に、「すべく」、「することが可能」、及び／又は、「するよう動作可能」という用語の使用は、一実施形態において、特定されたやり方で、その装置、ロジック、ハードウェア、及び／又は要素の使用を可能とするような態様において、装置、ロジック、ハードウェア、及び／又は、要素が設計されていることを指す。上記したように、一実施形態において、すべく、することが出来る、又は、するよう動作可能の使用は、装置、ロジック、ハードウェア、及び／又は要素の隠れた状態を指し、この場合、装置、ロジック、ハードウェア、及び／又は要素は、動作しているのではなく、特定されたやり方で装置の使用を可能とするような態様で、設計されていることに留意されたい。
【０１４７】
本明細書に使用されるように、値は、数、状態、論理状態、又はバイナリ論理状態の任意の公知の表現を含む。しばしば、ロジックレベル、ロジック値、又は論理値の使用もまた、１及び０と称され、これらは単純にバイナリロジック状態を表す。例えば、１は高ロジックレベルを指し、０は低ロジックレベルを指す。一実施形態において、トランジスタ又はフラッシュセルのようなストレージセルは、単一の論理値又は複数の論理値を保持することが可能であり得る。しかしながら、コンピュータシステムにおいて、値の他の表現も使用されている。例えば、１０進数の１０は、１０１０のバイナリ値、及び１６進数の文字Ａとして表されてもよい。従って、値は、コンピュータシステムにおいて保持されることが可能な情報の任意の表現を含む。
【０１４８】
更に、複数の状態は、複数の値、又は複数の値の複数の部分によって表されてよい。一例として、論理１のような第１の値が、デフォルト又は初期状態を表してよく、その一方で、論理０のような第２の値が、非デフォルト状態を表してよい。更に、一実施形態において、リセット及びセットという用語は、デフォルト及び更新された値又は状態を、それぞれ指す。例えば、デフォルト値は、高論理値、即ち、リセットを潜在的に有し、その一方で、更新された値は、低論理値、即ち、セットを潜在的に有する。値の任意の組み合わせが、任意の数の状態を表すべく利用されてよいことに留意されたい。
【０１４９】
上に説明された複数の方法、ハードウェア、ソフトウェア、ファームウェア又はコードの複数の実施形態は、機械アクセス可能、機械可読、コンピュータアクセス可能、又はコンピュータ可読媒体であって、処理要素によって実行可能な媒体にストアされた複数の命令又はコードを介して実装され得る。非一時的な機械アクセス可能な／可読媒体は、コンピュータ又は電子システムのような、機械によって可読な形式で情報を提供する（即ち、ストア及び／又は送信する）任意のメカニズムを含む。例えば、非一時的な機械アクセス可能な媒体は、スタティックＲＡＭ（ＳＲＡＭ）又はダイナミックＲＡＭ（ＤＲＡＭ）のようなランダムアクセスメモリ（ＲＡＭ）、ＲＯＭ、磁気又は光ストレージ媒体、フラッシュメモリデバイス、電気ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、一時的な（伝搬された）信号（例えば、搬送波、赤外線信号、デジタル信号）から受信した情報を保持するための他の形態のストレージデバイス等を含み、これらの媒体は、情報をそれ自身から受信し得る、非一時的媒体から区別されるべきである。
【０１５０】
本発明の実施形態を実行するようロジックをプログラムすべく使用される複数の命令は、ＤＲＡＭ、キャッシュ、フラッシュメモリ、又は他のストレージのような、システムにおけるメモリ内にストアされてよい。更に、複数の命令は、ネットワークを介して、又は、他のコンピュータ可読媒体を用いて配信され得る。このように、機械可読媒体は、機械（例えば、コンピュータ）によって、可読な形式で情報をストア又は送信するための任意のメカニズムを含んでよい。そのようなものとして、限定はされないが、フロッピー（登録商標）ディスク、光ディスク、コンパクトディスク、リードオンリメモリ（ＣＤ−ＲＯＭ）、及び光磁気ディスク、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、磁気若しくは光カード、フラッシュメモリ、又は、電気、光、音響、若しくは、他の形態の伝搬信号（例えば、搬送波、赤外線信号、デジタル信号等）を介したインターネット経由での情報の送信に使用される有形の機械可読ストレージが挙げられる。従って、コンピュータ可読媒体は、機械（例えば、コンピュータ）によって可読な形式で、複数の電子命令又は情報をストア又は送信するために好適な任意のタイプの有形の機械可読媒体を含む。
【０１５１】
以下の例は、本明細書に係る複数の実施形態に関する。１又は複数の実施形態は、テストパターン及びエラー報告シーケンスを有するテストモード信号を生成し、１又は複数の拡張デバイス及び２以上のサブリンクを有するリンク上のテストモード信号を送信する、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースのロジック及び／又はソフトウェアベースのロジック、並びに、方法を提供し得る。ここで、テストモード信号は、サブリンクのうちの特定の１つの上で送信されるべきであり、テストパターンは、特定のサブリンク上のエラーを識別する受信デバイスによって使用されるべきであり、複数のサブリンクにおけるサブリンクのエラーステータスを説明すべく、エラー報告シーケンスは、エラー情報と共にエンコードされるべきである。
【０１５２】
少なくとも一例において、テストモード信号は、ループバックテストモード内で、送信される。テストモード信号の複数のインスタンスは、リンク上の第１のデバイスから、１又は複数の拡張デバイスを介して第２のデバイスへ送信されるべきであり、第２のデバイスから、１又は複数の拡張デバイスの少なくとも１つを介して、第１のデバイスへ戻るように、更に、送信されるべきである。
【０１５３】
少なくとも一例において、テストモード信号の複数のインスタンスの少なくとも１つが、リンクのサブリンクの別の１つの上の別のデバイスから受信される。ここで、テストモード信号の各インスタンスは、テストパターンのインスタンス及びエラー報告シーケンスのインスタンスを含む。
【０１５４】
少なくとも一例において、エラー検出ロジックは、テストパターンのインスタンスに基づいて、他のサブリンク上の１又は複数のエラーを判断すべく提供される。
【０１５５】
少なくとも一例において、複数のエラーは、サブリンクを介して受信テストモード信号に含まれるものとしてのテストパターンのインスタンスは、テストパターンの予測値から外れるとの識別に基づいてサブリンクに対して判断される。
【０１５６】
少なくとも一例において、拡張デバイスは、リタイマを有する。
【０１５７】
少なくとも一例において、装置は、リタイマを備える。
【０１５８】
少なくとも一例において、エラー報告シーケンスは、複数のセグメントを有し、各セグメントは、サブリンクのそれぞれ１つのエラーステータスを説明する。
【０１５９】
少なくとも一例において、各セグメントは、それぞれのサブリンクの下流チャネル及び上流チャネルのうちの１つを記述する。
【０１６０】
少なくとも一例において、各セグメントは、１又は複数のオーダードセットを備え、複数のオーダードセットの各々の少なくとも一部は、複数のサブリンクの少なくとも１つのエラーステータスを識別するためにエンコードされるべく提供される。
【０１６１】
少なくとも一例において、各オーダードセットは、それぞれのＳＫＰオーダードセットを有する。
【０１６２】
少なくとも一例において、１又は複数の拡張デバイスは、少なくとも２つの拡張デバイスを有し、２又はより多くのサブリンクは、３つのサブリンクを有し、複数のセグメントは、少なくとも５つのセグメントを有する。
【０１６３】
少なくとも一例において、先行するサブリンクに対して検出されたエラー情報は、エラー報告シーケンスにおいてエンコードされ、エラー情報は、２又はより多くのサブリンクにおいて、他の複数のサブリンクの既に検出されたエラーステータスのために、エラー報告シーケンスにおいて維持される。
【０１６４】
少なくとも一例において、エラー情報は、サブリンクについて検出されたエラーの数、出現したリンクのレーン、及び、受信されたテストパターンにおいて検出された複数のエラーの位置のうちの１又は複数を有する。
【０１６５】
少なくとも一例において、テストパターンは、テストの間に各サブリンクで再生成されるべき、予め規定されたパターンを有する。
【０１６６】
少なくとも一例において、テストパターンは、１又は複数のオーダードセットを有する。
【０１６７】
少なくとも一例において、１又は複数のオーダードセットは、ｅｌｅｃｔｒｉｃａｌ  ｉｄｌｅ  ｅｘｉｔ  ｏｒｄｅｒｅｄ  ｓｅｔ（ＥＩＥＯＳ）を含む。
【０１６８】
少なくとも一例において、コントロールロジックは、リンクがテストモードにあること、及び、テストモード信号がテストモードに従って送信されたことを識別する。
【０１６９】
少なくとも一例において、テストパターンは、テストモードのために規定された固定されたテストパターンである。
【０１７０】
１又は複数の実施形態は、テストモードにおいて、リンク上のテストモード信号を受信する、装置、システム機械可読ストレージ、機械可読媒体、ハードウェアベースのロジック、及び／又はソフトウェアベースのロジック、並びに、方法を提供し得る。ここで、リンクは、少なくとも１つの拡張デバイス、及び２又はより多くのサブリンクを有し、テストモード信号は、テストパターン及びエラー報告シーケンスを有し、テストモード信号は、複数のサブリンクのうちの特定の１つの上で送信され、エラー報告シーケンスは、複数のサブリンクにおいて複数のサブリンクのエラーステータスを説明すべく、エラー情報によってエンコードされるべきであり、特定のサブリンクのエラーステータスを識別すべく、テストモード信号において、テストパターンを評価する。
【０１７１】
少なくとも一例において、テストパターンは、テストパターンが予測されるテストパターンから外れるか否かを判断するよう評価される。
【０１７２】
少なくとも一例において、テストパターンは、テストモードについて規定され、テストモードは、リンクの各サブリンクのテストを含み、テストパターンのそれぞれのインスタンスは、それぞれのサブリンクの端部において受信されたテストパターンのそれぞれのインスタンスが、規定されたテストパターンから外れているか否かを判断すべく、複数のサブリンクのテストの各々において、生成及び送信される。
【０１７３】
少なくとも一例において、各サブリンクは、それぞれ上流チャネル及び下流チャネルを有し、テストパターンのインスタンスは、複数のサブリンクの各々の上流及び下流チャネルの各々に送信されるべきである。
【０１７４】
少なくとも一例において、エラーステータスは、テストパターンに基づいて、特定サブリンク上で検出される１又は複数のエラーを識別する。
【０１７５】
少なくとも一例において、エラーステータスは特定のサブリンク上で検出される多数のエラーを識別する。
【０１７６】
少なくとも一例において、エラーステータスは、１又は複数のエラーが現れるリンクのレーンを識別する。
【０１７７】
少なくとも一例において、エラーステータスは、１又は複数のエラーが検出されるテストパターン内の位置を識別する。
【０１７８】
少なくとも一例において、コントロールロジックは、テストモード信号の別のインスタンスを生成すべきであり、テストモード信号の他のインスタンスは、特定のサブリンクのエラーステータスを識別すべく、エンコードされたエラー報告シーケンスを含み、装置は、サブリンクの別の１つ上でテストモード信号を他のインスタンスに送信する送信機ロジックを更に備える。
【０１７９】
少なくとも一例において、テストモード信号の他のインスタンスにおけるエラー報告シーケンスは、リンクの他のサブリンクの既に判断されたエラーステータスのために、エラーステータス情報を保持する。
【０１８０】
少なくとも一例において、エラー報告シーケンスは、複数のセグメントを有し、各セグメントは、複数のサブリンクのそれぞれ１つのエラーステータスを説明する。
【０１８１】
少なくとも一例において、コントロールロジックは、特定のサブリンクのエラーステータスを内部にエンコードする複数のセグメントのうちの特定の１つを識別する。
【０１８２】
少なくとも一例において、特定のセグメントは、特定のサブリンクに予め割り当てられたものとして識別される。
【０１８３】
少なくとも一例において、特定のセグメントは、複数のセグメントのうちの次のエンコードされていないものとして、識別される。
【０１８４】
少なくとも一例において、テストモード信号の他のインスタンスは、テストパターンのインスタンスを含む。
【０１８５】
少なくとも一例において、受信されるテストモード信号において含まれるテストパターンは、１又は複数のエラーを含み、テストモード信号の他のインスタンスにおいて含まれるテストパターンのインスタンスは、１又は複数のエラーなしで送信される。
【０１８６】
少なくとも一例において、拡張デバイスの複数の動作モードの第１のものは、テスト信号を処理するよう使用されるべきであり、複数の動作モードは、別の低レイテンシモードを含み、第１のモードは、テスト信号のデコードをすることを可能とすべきである。
【０１８７】
少なくとも一例において、拡張デバイスは、リタイマを備える。
【０１８８】
少なくとも一例において、エラー報告シーケンスは、リンクの２又はより多くのサブリンクの各々のエラーステータスを記述し、装置は、エラー報告シーケンスを解釈し、少なくとも１つのデータ構造において、リンクに対してエラー結果を記録するロジックを更に備える。
【０１８９】
少なくとも一例において、データ構造は、リンクに対応する１又は複数のレジスタを有する。
【０１９０】
少なくとも一例において、拡張デバイスは、少なくとも２つのリタイマを有する。
【０１９１】
少なくとも一例において、ルートポートデバイスは、リンクに接続される。
【０１９２】
１又は複数の実施形態は、拡張デバイスの第１のポート上のエンドポイントデバイスからリンクトレーニングデータを受信し、拡張デバイスの第２のポート上のアイドルリンク状態を識別する、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースのロジック及び／又はソフトウェアベースのロジック、並びに方法を提供し得る。ここで、拡張デバイスは、リンク上に含まれ、アイドルリンク状態及びリンクトレーニングデータに基づいて、別のデバイスが切断されているかを判断する。ここで、他の複数のデバイスは、リンクに以前に接続された。
【０１９３】
少なくとも一例において、リンクは、エンドポイントデバイスを他の複数のデバイスに接続し、拡張デバイスは、リンク上のエンドポイントと、他の複数のデバイスとの間に配置される。
【０１９４】
少なくとも一例において、第１ポートは、リンクの第１のサブリンクを介して、エンドポイントデバイスに接続され、第２のポートは、リンクの第２のサブリンクに接続され、他の複数のデバイスは、第２のサブリンクによって、第２のポートに以前に接続されていた。
【０１９５】
少なくとも一例において、拡張デバイスはリタイマを有する。
【０１９６】
少なくとも一例において、リタイマは、リンク状の切断を判断するためのサイドバンドロジックを欠く。
【０１９７】
少なくとも一例において、他の複数のデバイスの切断は、不意の切断を含む。
【０１９８】
少なくとも一例において、切断は、リンク上のデバイスのホットプラグ接続に対応する。
【０１９９】
少なくとも一例において、検出モードは、別のデバイスが切断されているという判断に基づいて、入られる。
【０２００】
少なくとも一例において、第２のポートの複数のコネクタは、検出モードにおける第２のサブリンク上の（例えば、第３のデバイスへの）新たな接続に対してスキャンし、それを確立すべく、取り除かれるべきである。
【０２０１】
少なくとも一例において、リンクトレーニングデータは、１又は複数のトレーニングシーケンスを有する。
【０２０２】
少なくとも一例において、リンクトレーニングデータは、リンクを回復する試行に対応する。
【０２０３】
少なくとも一例において、アイドルリンク状態は、第２のポート上で検出されるアクティビティのレベルに基づいて推定される。
【０２０４】
少なくとも一例において、リンクトレーニングデータが受信され、その一方で、アイドルリンク状態が検出される。
【０２０５】
少なくとも一例において、第１ポートは、上流ポートを有し、第２ポートは下流ポートを有する。
【０２０６】
少なくとも一例において、リンクは接続ケーブルを有する。
【０２０７】
１又は複数の実施形態は、少なくとも２つの動作モードをサポートし、リンク上の複数の状態に基づいて、選択的に複数のモードを使用するために、リタイマを提供すべく、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースのロジック、及び／又は、ソフトウェアベースのロジック、並びに、方法を提供し得る。ここで複数の動作モードは、少なくとも低レイテンシモード及び特定のモードを有するべきであり、低レイテンシモードにおいて、データは受信されたように転送され、特定のモードにおいて、データはデコードされ、再エンコードされる。
【０２０８】
少なくとも一例において、低レイテンシモードにおいてリタイマによって受信されたデータは、受信されたようにデコードされず、転送されない。
【０２０９】
少なくとも一例において、特定のモードは、リンク上でリタイマによって受信されるデータの変更を許容する。
【０２１０】
少なくとも一例において、複数の状態は、リンク上で送信されるデータのタイプ及びリンクのリンク状態の少なくとも１つを有する。
【０２１１】
少なくとも一例において、リタイマは、複数の状態のうちの特定の１つを検出し、検出された特定の状態に基づいて、複数の動作モードのうちの１つを使用すべきである。
【０２１２】
少なくとも一例において、低レイテンシモードは、リンクがアクティブリンク状態にあるべきであると検出される場合に採用されるべきである。
【０２１３】
少なくとも一例において、アクティブリンク状態は、Ｌ０状態を有する。
【０２１４】
少なくとも一例において、特定のモードは、トレーニングシーケンス及びオーダードセットデータに対して使用されるべきである。
【０２１５】
少なくとも一例において、特定のモードは、リンク状態をトレーニングするリンクにおいて使用されるべきである。
【０２１６】
少なくとも一例において、特定のモードは、テストモードにおいて使用されるべきである。
【０２１７】
少なくとも一例において、テストモードは、リンクの複数のサブリンクの各々のエラーステータスを判断するよう使用される。
【０２１８】
少なくとも一例において、リンクは、ＰＣＩｅベースのプロトコルを使用する。
【０２１９】
１又は複数の実施形態は、物理層ロジックを含む拡張デバイスを提供すべく、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースのロジック、及び／又は、ソフトウェアベースのロジック、並びに、方法を提供し得る。ここで物理ロジックは、論理的物理サブレイヤ及び電気的物理サブレイヤを有し、拡張デバイスは、リンク上に含まれ、電気的物理サブレイヤは、リンク上のデータの送信速度を検出すべく、速度検出モジュールを含み、電気的物理サブレイヤは、リンクの検出された送信速度を論理的物理サブレイヤに伝えるべきである。
【０２２０】
少なくとも一例において、拡張デバイスはリタイマデバイスを備える。
【０２２１】
少なくとも一例において、送信速度は、リンクに対して予め規定された速度のセットのうちの１つであるように検出されるべきである。
【０２２２】
少なくとも一例において、速度のセットは、２．５ＧＴ／ｓの速度、５ＧＴ／ｓの速度、及び、８ＧＴ／ｓの速度を有する。
【０２２３】
少なくとも一例において、速度検出モジュールは、アナログの速度検出モジュールを備える。
【０２２４】
少なくとも一例において、速度検出モジュールは、少なくとも部分的にハードウェアにおいて実装される。
【０２２５】
少なくとも一例において、リンクは、ＰＣＩｅ準拠のリンクを備える。
【０２２６】
１又は複数の実施形態は、第１のエンドポイントを第２のエンドポイントに接続するリンク上の拡張デバイスにおいてデータを受信し、拡張デバイスのハードウェアにおいて実装される速度検出回路を使用して、データの送信速度を検出し、検出された送信速度を拡張デバイスの物理層ロジックに伝え、第１のデバイスから第２のデバイスへのリンクを介してその送信速度において、データを伝えるよう拡張デバイスを使用する、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースのロジック、及び／又は、ソフトウェアベースのロジック、並びに、方法を提供し得る。ここで、上記拡張デバイスは、リンク上の第１のエンドポイントと、第２のエンドポイントとの間に配置される。
【０２２７】
少なくとも一例において、検出される送信速度は、拡張デバイスの電気的物理サブレイヤと、論理的物理サブレイヤとの間の物理層インタフェースを使用して、物理層ロジックに伝えられる。
【０２２８】
少なくとも一例において、物理層インタフェースは、ＰＨＹ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＩＰＥ）インタフェースを備える。
【０２２９】
少なくとも一例において、送信速度の検出は、送信速度が、リンクに対してサポートされる予め規定された速度のセットのうちの１つであることを検出することを備える。
【０２３０】
少なくとも一例において、アイドル状態は、リンク上で識別され、送信速度は、アイドル状態に従って検出されるべきである。
【０２３１】
少なくとも一例において、データは、リンクトレーニングデータを有し、送信速度は、リンクトレーニングデータから検出されるべきである。
【０２３２】
本明細書全体を通じて参照した「一実施形態」又は「実施形態」は、その実施形態に関連して説明された特定の機能、構造、又は特性が、本発明の少なくとも１つの実施形態に含まれることを意味する。このように、本明細書全体を通じて様々な箇所において「一実施形態において」又は「実施形態において」という用語が現れても、必ずしも全てが同一の実施形態を指しているわけではない。更に、複数の特定の機能、複数の構造、又は複数の特性は、１又は複数の実施形態において、任意の適切なやり方で、組み合わされてよい。
【０２３３】
上記の明細書において、詳細な説明は、複数の特定の例示的な実施形態に関して提供されている。しかしながら、添付の特許請求の範囲で説明される本発明のより広い趣旨及び範囲を逸脱することなく、それらに様々な変更及び変化がなされ得ることは明らかであろう。従って、本明細書及び複数の図面は、限定的な意味ではなく、例示的な意味のものとみなされるべきである。更に、実施形態及び他の例示的な言語の上記の使用は、同一の実施形態又は同一の例を必ずしも指すわけでなく、異なる別個の実施形態、並びに、潜在的に同一の実施形態を指すことがある。
【図１】
0006339198.tif 000004
【図２】
0006339198.tif 000005
【図３】
0006339198.tif 000006
【図４】
0006339198.tif 000007
【図５Ａ】
0006339198.tif 000008
【図５Ｂ】
0006339198.tif 000009
【図６Ａ】
0006339198.tif 000010
【図６Ｂ】
0006339198.tif 000011
【図６Ｃ】
0006339198.tif 000012
【図６Ｄ】
0006339198.tif 000013
【図６Ｅ】
0006339198.tif 000014
【図７】
0006339198.tif 000015
【図８】
0006339198.tif 000016
【図９】
0006339198.tif 000017
【図１０】
0006339198.tif 000018
【図１１Ａ】
0006339198.tif 000019
【図１１Ｂ】
0006339198.tif 000020
【図１１Ｃ】
0006339198.tif 000021
【図１１Ｄ】
0006339198.tif 000022
【図１１Ｅ】
0006339198.tif 000023
【図１２】
0006339198.tif 000024
【図１３】
0006339198.tif 000025
【図１４】
0006339198.tif 000026
【図１５】
0006339198.tif 000027
【図１６】
0006339198.tif 000028
【図１７】
0006339198.tif 000029