(57)【要約】一実施形態において、受信器は、入来アナログ信号を受信してサンプリングし、入来アナログ信号のビットレベルを決定し、ビット決定を消費ロジックへ供給する第１スライサを含むデータ経路と、入来アナログ信号を受信してサンプリングし、入来アナログ信号の第２ビットレベルを決定する第２スライサを含む解析経路と、第１スライサの出力及び第２スライサの出力を受け取るよう結合され、それらの出力に基づきデータ経路のビットエラーレートを決定するコントローラとを含む。他の実施形態は記載及び請求される。
2017538367.tif 000002
【特許請求の範囲】
【請求項１】
入来アナログ信号を受信してサンプリングし、該入来アナログ信号のビットレベルを決定し、ビット決定を消費ロジックへ供給する第１スライサを含むデータ経路と、
前記入来アナログ信号を受信してサンプリングし、該入来アナログ信号の第２ビットレベルを決定する第２スライサを含む解析経路と、
前記第１スライサの出力及び前記第２スライサの出力を受け取るよう結合され、前記第１スライサの出力及び前記第２スライサの出力に基づき前記データ経路のビットエラーレートを決定するコントローラと
を有する装置。
【請求項２】
前記コントローラは、前記入来アナログ信号に関する先験的情報なしで前記ビットエラーレートを決定する、
請求項１に記載の装置。
【請求項３】
前記コントローラは、前記第２スライサの基準電圧レベルを動的にスイープし、前記第１スライサの基準電圧レベルは静的であり、
前記コントローラは更に、前記第２スライサの基準位相を動的にスイープし、前記第１スライサの基準クロックは静的である、
請求項１に記載の装置。
【請求項４】
前記コントローラは、
評価インターバルの間に前記入来アナログ信号の入来ビットの数の第１カウントを保持する第１カウンタと、
前記評価インターバルの間に前記入来アナログ信号の前記入来ビットにおけるエラーの数の第２カウントを保持する第２カウンタと、
前記第１カウント及び前記第２カウントに少なくとも部分的に基づき前記ビットエラーレートを決定するロジックと
を有する、請求項１に記載の装置。
【請求項５】
前記コントローラは、
前記第２スライサの位相を複数の位相へと繰り返し調整し、
前記複数の位相について、前記ビットエラーレートに関する線形傾向が決定されるまで、繰り返し、前記第２スライサの基準電圧レベルを調整し、該基準電圧レベルに従って前記ビットエラーレートを推定し、その後に、前記線形傾向を外挿し、対応する位相についての前記ビットエラーレートを決定する
制御ユニットを含む、請求項１に記載の装置。
【請求項６】
前記コントローラは、当該装置へ結合されて前記入来アナログ信号を当該装置へ送信する送信器へ前記ビットエラーレートを送る、
請求項１に記載の装置。
【請求項７】
当該装置は、前記ビットエラーレートを送った後に、振幅が低減された前記入来アナログ信号を受信し、
前記送信器は、該送信器の電力消費を減らすよう前記入来アナログ信号の振幅を低減する、
請求項６に記載の装置。
【請求項８】
当該装置は、回路基板上に構成される第１集積回路を有し、
前記送信器は、前記回路基板上に構成され、該回路基板のインターコネクトを介して当該装置へ結合される第２集積回路を有する、
請求項６に記載の装置。
【請求項９】
前記データ経路は、
前記入来アナログ信号を受信して増幅する１つ以上のゲイン制御回路と、
前記１つ以上のゲイン制御回路へ結合され、前記増幅された入来アナログ信号をイコライズし、該イコライズされた増幅された入来アナログ信号を前記第１スライサ及び前記第２スライサへ供給するイコライザと
を更に有する、請求項１に記載の装置。
【請求項１０】
前記ビットエラーレートに少なくとも部分的に基づき前記１つ以上のゲイン制御回路及び前記イコライザのうちの少なくとも１つを制御する制御ロジック
を更に有する請求項９に記載の装置。
【請求項１１】
前記制御ロジックは、前記ビットエラーレートが閾レベルに満たない場合に、前記イコライザの少なくとも一部分を無効にする、
請求項１０に記載の装置。
【請求項１２】
前記解析経路は、第３スライサを更に含み、該第３スライサは、前記入来アナログ信号を受信してサンプリングし、該入来アナログ信号の第３ビットレートを決定し、
前記コントローラは、前記第３スライサの出力に更に基づき前記データ経路の前記ビットエラーレートを決定する、
請求項１に記載の装置。
【請求項１３】
受信器の並列経路の第２スライサが入来アナログ信号を受信し、前記第２スライサの複数の基準電圧レベルで前記入来アナログ信号から第２ビットストリームを生成することを可能にし、前記受信器は、前記入来アナログ信号を受信して第１ビットストリームを生成する第１スライサを有するデータ経路を更に含み、
コントローラで、前記第１ビットストリーム及び前記第２ビットストリームのうちの１つにおいて前記複数の基準電圧レベルでのエラーの数を決定するよう前記第２ビットストリームを前記第１ビットストリームの対応する部分と比較することに少なくとも部分的に基づき前記複数の基準電圧レベルでビットエラーレートを推定し、
前記コントローラによって、前記複数の基準電圧レベルのうちの１つ以上で推定された前記ビットエラーレートに応答して前記データ経路の少なくとも１つのコンポーネントを制御する
ことを有する方法。
【請求項１４】
前記入来アナログ信号に関する先験的情報なしで前記ビットエラーレートを推定する
ことを更に有する請求項１３に記載の方法。
【請求項１５】
前記第２スライサの複数の位相で前記複数の基準電圧レベルのうちの少なくともいくつかを動的にスイープすることを更に有し、
前記第１スライサの基準電圧レベル及び基準クロックは静的である、
請求項１３に記載の方法。
【請求項１６】
前記第２スライサの位相を複数の位相へと繰り返し調整し、
前記複数の位相について、前記ビットエラーレートに関する線形傾向が決定されるまで、繰り返し、前記第２スライサの基準電圧レベルを前記複数の基準電圧レベルのうちの１つへ調整し、該基準電圧レベルに従って前記ビットエラーレートを推定し、その後に、前記線形傾向を外挿し、対応する位相についての前記ビットエラーレートを決定する
ことを更に有する請求項１３に記載の方法。
【請求項１７】
マシンによって実行される場合に、該マシンに、請求項１３乃至１６のうちいずれか一項に記載の方法を実施させるプログラム。
【請求項１８】
請求項１７に記載のプログラムを記憶しているマシン読み出し可能な記憶媒体。
【請求項１９】
請求項１３乃至１６のうちいずれか一項に記載の方法を実施する手段を有する装置。
【請求項２０】
アナログ信号を送信する送信器と、
インターコネクトによって前記送信器へ結合され、前記アナログ信号を受信し、該アナログ信号のデータパターンの先験的知識なしで、システムのランタイムの間に前記アナログ信号から回復されるビットストリームのビットエラーレートを決定する受信器と
を有するシステム。
【請求項２１】
前記受信器は、
第１基準レベルに従って前記アナログ信号の第１ビット決定を生成するよう前記アナログ信号をサンプリングする第１コンパレータと、
第２基準レベルに従って前記アナログ信号の第２ビット決定を生成するよう前記アナログ信号をサンプリングする第２コンパレータと、
前記第１ビット決定及び前記第２ビット決定を受け取り、それらに少なくとも部分的に基づき前記ビットエラーレートを決定するコントローラと
を有する、請求項２０に記載のシステム。
【請求項２２】
前記コントローラは、
評価インターバルの間に前記ビットストリームのビットの数の第１カウントを保持する第１カウンタと、
前記評価インターバルの間に前記ビットストリームにおけるエラーの数の第２カウントを保持する第２カウンタと、
前記第１カウント及び前記第２カウントに少なくとも部分的に基づき前記ビットエラーレートを決定するロジックと
を有する、請求項２１に記載のシステム。
【請求項２３】
前記コントローラは、
前記第２コンパレータの位相を複数の位相へと繰り返し調整し、
前記複数の位相について、前記ビットエラーレートに関する線形傾向が決定されるまで、繰り返し、前記第２基準レベルを調整し、該第２基準レベルに従って前記ビットエラーレートを推定し、その後に、前記線形傾向を外挿し、対応する位相についての前記ビットエラーレートを決定する
制御ユニットを含む、請求項２１に記載のシステム。
【請求項２４】
前記受信器は、前記ビットエラーレートを前記送信器へ送り、
前記送信器は、前記ビットエラーレートと閾値との比較に基づき前記アナログ信号の振幅を低減し、該低減された振幅は、前記送信器の電力消費を減らす、
請求項２０に記載のシステム。
【請求項２５】
前記受信器は、
前記アナログ信号を受信して増幅する１つ以上のゲイン制御回路と、
前記１つ以上のゲイン制御回路へ結合され、前記増幅されたアナログ信号をイコライズし、該イコライズされた増幅されたアナログ信号を前記第１コンパレータ及び前記第２コンパレータへ供給するイコライザと
を有する、請求項２１に記載のシステム。
【請求項２６】
前記ビットエラーレートに少なくとも部分的に基づき前記１つ以上のゲイン制御回路又は前記イコライザのうちの少なくとも１つを制御する制御ロジック
を更に有する請求項２５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、回路におけるビットエラーレート測定に関する。
【背景技術】
【０００２】
コンピューティングデバイスにおけるデータレートが増大し且つ電力量が低減するにつれて、様々な設計目標は反対の立場にある。例えば、１つ以上のシステムの集積回路及び他のコンポーネント内及びそれらの間でデータをやり取りするために使用される高速インターコネクトの設計及び実装において、電圧及びタイミングアイのマージンはより厳しくなる。従って、結果として現れるインターコネクトは、より繊細であり、製造工程におけるばらつき又は動作条件におけるばらつき（温度勾配、電磁雑音、経年劣化、など）のいずれかに起因したデータ破損に苦しむことがある。
【０００３】
このために、ビットエラーレート（ＢＥＲ；Bit  Error  Rate）測定は、インターコネクトが十分に運転可能であることを確かめるよう、且つ、優れたエラー性能を保証するために送信器／受信器設定を最終的に合わせるよう、設計、開発、及び試験の間に実施される。しかし、オンラインのＢＥＲ測定（製品の通常動作の間）は、通常、特に、高速インターコネクトにおいて、現在は利用可能でない。これは、そのようなオンライン技術が、高い電力消費、計算複雑性、又は送信器と受信器との間のループバック経路を必要とするからであり、それらの全てがインターコネクトの効率的運転を妨げる。
【図面の簡単な説明】
【０００４】
【図１】マルチコアプロセッサを含むコンピューティングシステムについてのブロック図の実施形態である。
【０００５】
【図２】コンポーネントの組を相互接続するポイント・ツー・ポイントリンクから成る構造の実施形態である。
【０００６】
【図３】階層プロトコルスタックの実施形態である。
【０００７】
【図４】ＰＣＩｅトランザクション記述子の実施形態である。
【０００８】
【図５】ＰＣＩｅシリアル・ポイント・ツー・ポイント・ファブリックの実施形態である。
【０００９】
【図６】実施形態に従うＳｏＣ設計のブロック図である。
【００１０】
【図７Ａ】本発明の実施形態に従う確率密度関数のグラフ表示である。
【００１１】
【図７Ｂ】本発明の実施形態に従うＢＥＲ推定器回路の部分のブロック図である。
【００１２】
【図８Ａ】本発明の実施形態に従う受信器の部分のブロック図である。
【００１３】
【図８Ｂ】本発明の他の実施形態に従う受信器の部分のブロック図である。
【００１４】
【図９】実施形態に従うＢＥＲ推定器コントローラのブロック図である。
【００１５】
【図１０】本発明の実施形態に従う方法のフロー図である。
【００１６】
【図１１】他の実施形態に従うＢＥＲ推定回路の部分のブロック図である。
【００１７】
【図１２】本発明の実施形態に従う高速インターフェイス回路のブロック図である。
【発明を実施するための形態】
【００１８】
以下の記載で、本発明の完全な理解を提供するために、多数の具体的な詳細、例えば、特定のタイプのプロセッサ及びシステム構成、特定のハードウェア構造、特定のアーキテクチャ及びミクロアーキテクチャ詳細、特定のレジスタ構成、特定の命令タイプ、特定のシステムコンポーネント、特定の測定／高さ、特定のプロセッサパイプライン段及び動作、などが示される。なお、当業者に明らかなように、それらの具体的な詳細は、本発明を実施するために用いられる必要はない。他の事例では、よく知られているコンポーネント及び方法、例えば、特定の代替的なプロセッサアーキテクチャ、記載されているアルゴリズムのための特定のロジック回路／コード、特定のファームウェアコード、特定のインターコネクト動作、特定のロジック構成、特定の製造技術及び材料、特定のコンパイラ実装、コード内のアルゴリズムの特定の表現、特定のパワーダウン及びゲーティング技術／ロジック、並びにコンピュータシステムの他の特定の動作詳細は、本発明を不必要に不明りょうすることを回避するために、詳細には記載されていない。
【００１９】
以下の実施形態は、特定の集積回路における、例えば、コンピューティングプラットフォーム又はマイクロプロセッサにおけるエネルギ節約及びエネルギ効率を参照して記載されることがあるが、他の実施形態は他のタイプの集積回路及びロジックデバイスに適用可能である。本願で記載されている実施形態の同様の技術及び教示は、より良いエネルギ効率及びエネルギ節約からやはり恩恵を受けうる他のタイプの回路又は半導体デバイスに適用されてよい。例えば、開示されている実施形態は、デスクトップコンピュータシステム又はＵｌｔｒａｂｏｏｋ（登録商標）に制限されない。そして、ハンドヘルドのデバイス、タブレット、他の薄型ノートブック、システム・オン・チップ（System  on  a  Chip）デバイス、及び組み込みアプリケーションのような、他のデバイスでも使用されてよい。ハンドヘルドのデバイスのいくつかの例は、携帯電話機、インターネットプロトコルデバイス、デジタルカメラ、パーソナルデジタルアシスタント（ＰＤＡ；Personal  Digital  Assistant）、及びハンドヘルドＰＣを含む。組み込みアプリケーションは、通常、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ；Digital  Signal  Processor）、システム・オン・チップ、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークハブ、ワイドエリアネットワーク（ＷＡＮ；Wide  Area  Network）スイッチ、又は以下で教示される機能及び動作を実施することができるあらゆる他のシステムを含む。更には、本願で記載される装置、方法、及びシステムは、物理的なコンピューティングデバイスに制限されず、エネルギ節約及び効率のためのソフトウェア最適化にも関係してよい。以下の記載において容易に明らかになるように、本願で記載される方法、装置、及びシステムの実施形態（ハードウェア、ファームウェア、ソフトウェア、又はそれらの組み合わせのいずれを参照しようとも）は、パフォーマンスの考慮点と釣り合いを取られた‘グリーンテクノロジ’の未来に不可欠である。
【００２０】
コンピューティングシステムが進歩するにつれて、その中のコンポーネントはより複雑に成りつつある。結果として、コンポーネント間の結合及び通信のためのインターコネクトアーキテクチャも、バンド幅要件が最適なコンポーネント動作のために満足されることを確かにするよう、複雑さが増している。更には、異なる市場区分は、市場のニーズに適するよう異なる態様のインターコネクトアーキテクチャを要求する。例えば、サーバはより高い性能を必要とし、一方、モバイルエコシステム（ecosystem）は、時々、電力節約のために全体の性能を犠牲にすることができる。けれども、最大限の電力節約とともに可能な限り高い性能を提供することは、ほとんどの組織の唯一の目的である。以下で、多数のインターコネクトが論じられる。これらは、本願で記載される発明の態様から潜在的に恩恵を受けうる。
【００２１】
図１を参照すると、マルチコアプロセッサを含むコンピューティングシステムについてのブロック図の実施形態が表されている。プロセッサ１００は、マイクロプロセッサ、組み込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システム・オン・チップ（ＳｏＣ）、又はコードを実行するための他のデバイスのような、如何なるプロセッサ又はプロセッシングデバイスも含む。プロセッサ１００は、一実施形態において、少なくとも２つのコア、コア１０１及び１０２を含む。それらは、非対称コア又は対称コア（表されている実施形態）を含んでよい。なお、プロセッサ１００は、対称又は非対称であってよいプロセッシング要素をいくつでも含んでよい。
【００２２】
一実施形態において、プロセッシング要素は、ソフトウェアスレッドをサポートするハードウェア又はロジックを指す。ハードウェアプロセッシング要素の例は、スレッドユニット、スレッドスロット、スレッド、プロセスユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、及び／又は実行状態若しくはアーキテクチャ状態のようなプロセッサの状態を保持することができるあらゆる他の要素を含む。すなわち、プロセッシング要素は、一実施形態において、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、又は他のコードのようなコードと独立して関連することができる如何なるハードウェアも指す。物理プロセッサ（又はプロセッサソケット）は、通常、コア又はハードウェアスレッドのような他のプロセッシング要素をいくつでも含むことができる集積回路を指す。
【００２３】
コアは、しばしば、独立したアーキテクチャ状態を維持することができる集積回路上に位置するロジックを指し、夫々の、独立して維持されるアーキテクチャ状態は、少なくともいくつかの専用の実行リソースに関連する。コアと対照的に、ハードウェアスレッドは、通常、独立したアーキテクチャ状態を維持することができる集積回路上に位置する如何なるロジックも指し、独立して維持されるアーキテクチャ状態は、実行リソースへのアクセスを共有する。明らかなように、特定のリソースが共有され、他がアーキテクチャ状態に専用である場合に、ハードウェアスレッド及びコアの用語間の境界線は重なり合う。それでもしばしば、コア及びハードウェアスレッドは、個別の論理プロセッサとしてオペレーティングシステムによって見なされ、オペレーティングシステムは、夫々の論理プロセッサにおいて動作を個々にスケジューリングすることができる。
【００２４】
図１に表される物理プロセッサ１００は、２つのコア、すなわち、コア１０１及び１０２を含む。ここで、コア１０１及び１０２は、対称コア、すなわち、同じ構成、機能ユニット、及び／又はロジックを備えたコア、と見なされる。他の実施形態では、コア１０１は、アウト・オブ・オーダー（out-of-order）プロセッサコアを含み、一方、コア１０２は、イン・オーダー（in-order）プロセッサコアを含む。なお、コア１０１及び１０２は、ネイティブコア（native  core）、ソフトウェアにより管理されるコア（software  managed  core）、ネイティブな命令セットアーキテクチャ（ＩＳＡ；Instruction  Set  Architecture）を実行するよう適応されたコア、変換された命令セットアーキテクチャ（ＩＳＡ）を実行するよう適応されたコア、協調設計されたコア（co-designed  core）、又は他の既知のコアのような、あらゆるタイプのコアから個々に選択されてよい。異種コア環境（すなわち、非対称コア）において、バイナリ変換のような何らかの形の変換は、一方又は両方のコアでコードをスケジューリング又は実行するために利用されてよい。けれども、議論を進めるよう、コア１０１に表されている機能ユニットは、コア１０２におけるユニットが表されている実施形態で同じように動作するとして、以下で更に詳細に記載される。
【００２５】
表されているように、コア１０１は、２つのハードウェアスレッド１０１ａ及び１０１ｂを含む。それらは、ハードウェアスレッドスロット１０１ａ及び１０１ｂとも呼ばれてよい。従って、オペレーティングシステムのようなソフトウェアエンティティは、一実施形態において、プロセッサ１００を４つの別個のプロセッサ、すなわち、４つのソフトウェアスレッドを同時に実行することができる４つの論理プロセッサ又はプロセッシング要素、と潜在的に見なす。先に暗に示されたように、第１スレッドは、アーキテクチャ状態レジスタ１０１ａに関連し、第２スレッドは、アーキテクチャ状態レジスタ１０１ｂに関連し、第３スレッドは、アーキテクチャ状態レジスタ１０２ａに関連し、第４スレッドは、アーキテクチャ状態レジスタ１０２ｂに関連する。ここで、アーキテクチャ状態レジスタ（１０１ａ、１０１ｂ、１０２ａ及び１０２ｂ）の夫々は、上述されたように、プロセッシング要素、スレッドスロット、又はスレッドユニットと呼ばれてよい。表されているように、アーキテクチャ状態レジスタ１０１ａは、アーキテクチャ状態レジスタ１０１ｂにおいて複製されるので、個々のアーキテクチャ状態／コンテキストは、論理プロセッサ１０１ａ及び論理プロセッサ１０１ｂのために記憶されることが可能である。コア１０１において、アロケータ（allocator）及びリネーマ（renamer）ブロック１３０における命令ポインタ及び残りのロジックのような、他の同様のリソースも、スレッド１０１ａ及び１０１ｂのために複製されてよい。リオーダー（reorder）／リタイアメント（retirement）ユニット１３５におけるリオーダーバッファ、ＩＬＴＢ１２０、ロード／ストアバッファ、及びキューのような、いくつかのリソースは、パーティショニングを通じて共有されてよい。汎用内部レジスタ、ページ−テーブル・ベース・レジスタ（page-table  base  register(s)）、低レベルデータキャッシュ及びデータＴＬＢ１５０、実行ユニット１４０、並びにアウト・オブ・オーダーユニット１３５の部分のような、他のリソースは、潜在的に完全に共有される。
【００２６】
プロセッサ１００は、しばしば、他のリソースを含み、それらの他のリソースは、完全に共有されるか、パーティショニングを通じて共有されるか、又はプロセッシング要素に専用であってよい。図１には、プロセッサの実例となる論理ユニット／リソースを伴う純粋に例となるプロセッサの実施形態が表されている。プロセッサは、それらの機能ユニットのいずれも含んで、又は省略してよく、更には、表されていない如何なる他の既知の機能ユニット、ロジック、又はユニットも含んでよい点に留意されたい。表されているように、コア１０１は、簡略化された、代表的なアウト・オブ・オーダー（ＯＯＯ；Out-Of-Order）プロセッサコアを含む。しかし、イン・オーダープロセッサが別の実施形態では利用されてよい。ＯＯＯコアは、実行される／取られるブランチを予測するブランチターゲットバッファ（branch  target  buffer）１２０と、命令のためのアドレス変換エントリを記憶する命令−変換バッファ（Ｉ−ＴＬＢ；InstructionTransLation  Buffer）１２０とを含む。
【００２７】
コア１０１は、フェッチユニット１２０へ結合され、フェッチされた要素を復号する復号化モジュール１２５を更に含む。フェッチロジックは、一実施形態において、スレッドスロット１０１ａ、１０１ｂに夫々関連する個別的なシーケンサを含む。通常、コア１０１は、プロセッサ１００で実行可能な命令を定義／指定する第１ＩＳＡに関連する。しばしば、第１ＩＳＡの部分であるマシンコード命令は、実行される命令又は操作を参照／指定する命令の部分（オペコード（opcode）と呼ばれる。）を含む。復号化ロジック１２５は、それらのオペコードからそれらの命令を認識し、第１ＩＳＡによって定義されている処理のためのパイプラインにおいて、復号された命令を伝える回路構成を含む。例えば、以下で更に詳細に論じられるように、復号器１２５は、一実施形態において、トランザクション命令のような、特定の命令を認識するよう設計又は適応されたロジックを含む。復号器１２５による認識の結果として、アーキテクチャ又はコア１０１は、適切な命令に関連するタスクを実行するよう、特定の、予め定義された操作を行う。本願で記載されるタスク、ブロック、操作、及び方法のいずれも、単一の又は複数の命令（それらのうちのいくつかは、新しい又は古い命令であってよい。）に応答して実施されてよいことを留意することは重要である。復号器１２６は、一実施形態において、同じＩＳＡ（又はそのサブセット）を認識する点に留意されたい。代替的に、異種コア環境では、復号器１２６は、第２ＩＳＡ（第１ＩＳＡのサブセット、又は相異なるＩＳＡ）を認識する。
【００２８】
一例において、アロケータ及びリネーマブロック１３０は、命令処理結果を記憶するレジスタファイルのようなリソースをリザーブするアロケータを含む。なお、スレッド１０１ａ及び１０１ｂは、アウト・オブ・オーダー実行が潜在的に可能であり、アロケータ及びリネーマブロック１３０は、命令結果を追跡するリオーダーバッファのような他のリソースもリザーブする。ユニット１３０は、プログラム／命令参照レジスタをプロセッサ１００内部の他のレジスタへリネーミングするレジスタリネーマを更に含んでよい。リオーダー／リタイアメントユニット１３５は、上記のリオーダーバッファ、ロードバッファ、及びストアバッファのような、アウト・オブ・オーダー実行及びアウト・オブ・オーダー実行された命令のその後のイン・オーダーリタイアメントをサポートするコンポーネントを含む。
【００２９】
スケジューラ及び実行ユニットブロック１４０は、一実施形態において、実行ユニットにおいて命令／操作をスケジューリングするスケジューラユニットを含む。例えば、浮動小数点命令は、利用可能な浮動小数点実行ユニットを有している実行ユニットのポートにおいてスケジューリングされる。実行ユニットに関連するレジスタファイルも、情報命令処理結果を記憶するために含まれる。例となる実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、ストア実行ユニット、及び他の既知の実行ユニットを含む。
【００３０】
下位レベルデータキャッシュ及びデータ変換バッファ（Ｄ−ＴＬＢ；Data-TransLation  Buffer）１５０は、実行ユニット１４０へ結合されている。データキャッシュは、メモリコヒーレンシ状態に潜在的に保たれる、データオペランド（operand(s)）のような、最近使用／演算された要素を記憶する。Ｄ−ＴＬＢは、最近の、仮想／線形アドレスから物理アドレスへの変換を記憶する。具体例として、プロセッサは、物理メモリを複数の仮想ページに分けるページテーブル構造を含んでよい。
【００３１】
ここで、コア１０１及び１０２は、オンチップ・インターフェイス１１０に関連する第２レベルキャッシュのような、上位レベルの又は更なるキャッシュへのアクセスを共有する。更なる（further-out）又は上位レベル（higher-level）は、実行ユニットから更に遠ざかる又は大きくなるキャッシュレベルを指す点に留意されたい。一実施形態において、上位レベルキャッシュは、第２又は第３レベルデータキャッシュのような、ラストレベル（last-level）データキャッシュ、すなわち、プロセッサ１００上のメモリ階層における最後のキャッシュである。なお、上位レベルキャッシュは、それが命令キャッシュに関連するか又は命令キャッシュを含んでよいとして、そのように制限されない。トレースキャッシュ、すなわち、命令キャッシュの一種は、代わりに、最近復号されたトレースを記憶するために復号器１２５の後に結合されてよい。ここで、命令は、潜在的に、多数のマイクロ命令（マイクロオペレーション）に復号してよいマクロ命令（すなわち、復号器によって認識される一般的な命令）を指す。
【００３２】
表されている構成において、プロセッサ１００は、オンチップ・インターフェイスモジュール１１０を更に含む。これまで、メモリコントローラ（以下で更に詳細に記載される。）は、プロセッサ１００の外でコンピューティングシステムにおいて含まれてきた。このシナリオでは、オンチップ・インターフェイス１１０は、システムメモリ１７５、チップセット（メモリ１７５へ接続するメモリコントローラハブと、周辺機器を接続するＩ／Ｏコントローラハブとをしばしば含む。）、メモリコントローラハブ、ノースブリッジ、又は他の集積回路のような、プロセッサ１００の外にあるデバイスと通信する。そして、このシナリオでは、バス１０５は、マルチドロップバス、ポイント・ツー・ポイントインターコネクト、シリアルインターコネクト、パラレルバス、コヒーレント（例えば、キャッシュコヒーレント）バス、階層プロトコルアーキテクチャ、差動バス、及びＧＴＬバスのような、あらゆる既知のインターコネクトも含んでよい。
【００３３】
メモリ１７５は、プロセッサ１００に専用であるか、又はシステム内の他のデバイスと共有されてよい。メモリ１７５のタイプの一般的な例は、ＤＲＡＭ、ＳＲＡＭ、不揮発性（Non-Volatile）メモリ（ＮＶメモリ）、及び他の既知の記憶デバイスを含む。デバイス１８０は、メモリコントローラハブへ結合されるグラフィックアクセラレータ、プロセッサ又はカード、Ｉ／Ｏコントローラハブへ結合されるデータストレージ、無線トランシーバ、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ、又は他の既知のデバイスを含んでよい。
【００３４】
なお、近年、より多くのロジック及びデバイスが単一のダイ上に集積されるにつれて（例えば、ＳｏＣ）、それらのデバイスの夫々は、プロセッサ１００において組み込まれてよい。例えば、一実施形態において、メモリコントローラハブは、プロセッサ１００と同じパッケージ及び／又はダイにある。ここで、コア１１０の部分（オンコア部分）は、メモリ１７５又はグラフィクスデバイス１８０のような他のデバイスとインターフェイス接続するための１つ以上のコントローラを含む。そのようなデバイスとインターフェイス接続するためのインターコネクト及びコントローラを含む構成は、オンコア（on-core）（又はアンコア（un-core）構成）としばしば呼ばれる。一例として、オンチップ・インターフェイス１１０は、オンチップ通信のためのリングインターコネクトと、オフチップ通信のための高速シリアル・ポイント・ツー・ポイントリンクとを含む。その上、ＳｏＣ環境では、ネットワークインターフェイス、コプロセッサ、メモリ１７５、グラフィクスプロセッサ１８０、及びあらゆる他の既知のコンピュータデバイス／インターフェイスのような、更に多くのデバイスが、高機能且つ低電力消費を有しながら小さなフォームファクタを提供するよう単一のダイ又は集積回路上に集積されてよい。
【００３５】
一実施形態において、プロセッサ１００は、本願で記載される装置及び方法をサポートするよう、あるいは、それらとインターフェイス接続するよう、アプリケーションコード１７６をコンパイルし、変換し、及び／又は最適化するコンパイラ、最適化、及び／又は変換コード１７７を実行可能である。コンパイラは、ソーステキスト／コードを目標のテキスト／コードへと変換するプログラム又はプログラムの組をしばしば含む。通常、コンパイラによるプログラム／アプリケーションコードのコンパイルは、高度なプログラミング言語コードを低水準のマシン又はアセンブリ言語コード変換するよう多数のフェーズ及びパスにおいて行われる。けれども、単一パスコンパイラが、簡単なコンパイルのために依然として利用されてよい。コンパイラは、如何なる既知のコンパイル技術も利用し、字句解析、前処理、パーシング、意味解析、コード生成、コード変換、及びコード最適化のような、如何なる既知のコンパイラ演算も実施してよい。
【００３６】
より大規模なコンパイラは、多数のフェーズをしばしば含むが、ほとんどの場合に、それらのフェーズは２つの一般的なフェーズ内に含まれる：（１）フロントエンド、すなわち、一般的に、統語処理、意味処理、及び何らかの変換／最適化が行われてよい、及び（２）バックエンド、すなわち、一般的に、解析、変換、最適化、及びコード生成が行われる。いくつかのコンパイラは、コンパイラのフロントエンド及びバックエンドの間の線引きのあいまいさを表すミドルを指す。結果として、コンパイラの挿入、関連付け、生成、又は他の操作への言及は、上記のフェーズ又はパスに加えて、コンパイラのあらゆる他の既知のフェーズ又はパスのいずれにおいても行われてよい。実例となる例として、コンパイラは、コンパイルのフロントエンドフェーズにおける呼び出し／演算の挿入、及び次いで、変換フェーズの間の下位レベルのコードへの呼び出し／演算の変換のように、潜在的に、演算、呼び出し、関数などをコンパイルの１つ以上のフェーズに挿入する。動的コンパイルの間、コンパイラコード又は動的最適化コードは、そのような演算／呼び出しを挿入するとともに、ランタイムの間に実行のためにコードを最適化してよい点に留意されたい。具体的な、実例となる例として、バイナリコード（既にコンパイルされたコード）がランタイムの間に動的に最適化されてよい。ここで、プログラムコードは、動的最適化コード、バイナリコード、又はそれらの組み合わせを含んでよい。
【００３７】
コンパイラと同様に、バイナリ変換器のような変換器は、コードを最適化及び／又は変換するよう静的又は動的いずれかにおいてコードを変換する。従って、コード、アプリケーションコード、プログラムコード、又は他のソフトウェア環境の実行への言及は、（１）プログラムコードをコンパイルするための、ソフトウェア構造を保つための、他の操作を実行するための、コードを最適化するための、又はコードを変換するための、動的又は静的な、コンパイラプログラム、最適化コードオプティマイザ、又は変換器の実行、（２）最適化／コンパイルされたアプリケーションコードのような演算／呼び出しを含むメインプログラムコードの実行、（３）ソフトウェア構造を保つための、他のソフトウェア関連操作を実行するための、又はコードを最適化するための、メインプログラムコードに関連した、ライブラリのような他のプログラムコードの実行、又は（４）それらの組み合わせを指してよい。
【００３８】
１つのインターコネクトファブリックアーキテクチャは、ＰＣＩｅアーキテクチャを含む。ＰＣＩｅの主たる目標は、異なるベンダーからのコンポーネント及びデバイスが、複数の市場区分（クライアント（デスクトップ及びモバイル）、サーバ（標準及び企業）、及び組み込み通信デバイス）にわたるオープンアーキテクチャにおいて相互運用することを可能にすることである。ＰＣＩエクスプレスは、多種多様な将来のコンピューティング及び通信プラットフォームのために定義された高性能の汎用Ｉ／Ｏインターコネクトである。いくつかのＰＣＩ属性、例えば、その利用モデル、ロード／ストアアーキテクチャ、及びソフトウェアインターフェイスは、その改訂を通じて保たれてきた一方で、従前のパラレルバス実装は、高度にスケーラブルな完全シリアルインターフェイスによって置換されている。ＰＣＴエクスプレスの新しいバージョンは、新しい性能レベル及び機能を実現させるために、ポイント・ツー・ポイントインターコネクト、スイッチベースのテクノロジ、及びパケット化されたプロトコルにおける進歩を利用する。パワーマネージメント、クオリティ・オブ・サービス（ＱｏＳ；Quality  of  Service）、ホットプラグ／ホットスワップサポート、データインテグリティ、及びエラーハンドリングは、ＰＣＴエクスプレスによってサポートされる拡張機能の一部である。
【００３９】
図２を参照すると、コンポーネントの組を相互接続するポイント・ツー・ポイントリンクから成る構造の実施形態が表されている。システム２００は、コントローラハブ２１５へ結合されているプロセッサ２０５及びシステムメモリ２１０を含む。プロセッサ２０５は、マイクロプロセッサ、ホストプロセッサ、組み込みプロセッサ、コプロセッサ、又は他のプロセッサのような、如何なるプロセッシング要素も含む。プロセッサ２０５は、フロントサイドバス（ＦＳＢ；Front-Side  Bus）２０６を通じてコントローラハブ２１５へ結合されている。一実施形態において、ＦＳＢ２０６は、後述されるようにシリアル・ポイント・ツー・ポイントインターコネクトである。他の実施形態では、リンク２０６は、異なるインターコネクト標準に従うシリアル差動インターコネクトアーキテクチャを含む。
【００４０】
システムメモリ２１０は、システム２００内のデバイスによってアクセス可能なランダムアクセスメモリ（ＲＡＭ；Random  Access  Memory）、不揮発性（ＮＶ）メモリ、又は他のメモリのような、如何なるメモリデバイスも含む。システムメモリ２１０は、メモリインターフェイス２１６を通じてコントローラハブ２１５へ結合されている。メモリインターフェイスの例は、ダブルデータレート（ＤＤＲ；Double-Data  Rate）メモリインターフェイス、デュアルチャネルＤＤＲメモリインターフェイス、及び動的（Dynamic）ＲＡＭ（ＤＲＡＭ）メモリインターフェイスを含む。
【００４１】
一実施形態において、コントローラハブ２１５は、ペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ又はＰＣＩＥ；Peripheral  Component  Interconnect  Express）相互接続ヒエラルキにおけるルートハブ、ルートコンプレックス、又はルートコントローラである。コントローラハブ２１５の例は、チップセット、メモリコントローラハブ（ＭＣＨ；Memory  Controller  Hub）、ノースブリッジ、インターコネクトコントローラハブ（ＩＣＨ；Interconnect  Controller  Hub）、サウスブリッジ、及びルートコントローラ／ハブを含む。しばしば、語「チップセット」は、２つの、物理的に別々のコントローラハブ、すなわち、インターコネクトコントローラハブ（ＩＣＨ）へ結合されているメモリコントローラハブ（ＭＣＨ）、を指す。現在のシステムは、プロセッサ２０５とともに集積されたＭＣＨをしばしば含み、一方、コントローラハブ２１５は、後述されるように、同様にして、Ｉ／Ｏデバイスと通信する点に留意されたい。いくつかの実施形態において、ピア・ツー・ピアルーティングは、任意に、ルートコンプレックス２１５を通じてサポートされる。
【００４２】
ここで、コントローラハブ２１５は、シリアルリンク２１９を通じてスイッチ／ブリッジ２２０へ結合されている。入出力（Ｉ／Ｏ）モジュール２１７及び２２１は、インターフェイスポート２１７及び２２１とも呼ばれてよく、コントローラハブ２１５とスイッチ２２０との間の通信を提供する階層プロトコルスタックを含む／実装する。一実施形態において、複数のデバイスがスイッチ２２０へ結合されることが可能である。
【００４３】
スイッチ／ブリッジ２２０は、デバイス２２５からコントローラハブ２１５に対して上流へ、すなわち、ルートコンプレックスの方へヒエラルキの上へ、そして、プロセッサ２０５又はシステムメモリ２１０からデバイス２２５へ対して下流へ、すなわち、ルートコントローラから離れてヒエラルキの下へ、パケット／メッセージを送る。スイッチ２２０は、一実施形態において、複数の仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジデバイスの論理アセンブリと呼ばれる。デバイス２２５は、Ｉ／Ｏデバイス、ネットワークインターフェイスコントローラ（ＮＩＣ；Network  Interface  Controller）、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、記憶デバイス、ＣＤ／ＤＶＤ  ＲＯＭ、モニタ、プリンタ、マウス、キーボード、ルータ、ポータブル記憶デバイス、ファイヤワイヤ（Firewire）デバイス、ユニバーサルシリアルバス（ＵＳＢ；Universal  Serial  Bus）デバイス、スキャナ、及び他の入出力デバイスのような、電子システムへ結合されるあらゆる内部又は外部のデバイス又はコンポーネントも含む。しばしば、ＰＣＩｅ専門用語において、そのようなデバイスはエンドポイントと呼ばれる。具体的に図示されていないが、デバイス２２５は、レガシー又は他のバージョンのＰＣＩデバイスをサポートするＰＣＩｅ−ｔｏ−ＰＣＩ／ＰＣＩ−Ｘデバイスを含んでよい。ＰＣＩｅにおけるエンドポイントデバイスは、レガシー、ＰＣＩｅ、又はルートコンプレックス統合エンドポイントとしてしばしば分類される。
【００４４】
グラフィクスアクセラレータ２３０も、シリアルリンク２３２を通じてコントローラハブ２１５へ結合されている。一実施形態において、グラフィクスアクセラレータ２３０は、ＩＣＨへ結合されているＭＣＨへ結合されている。スイッチ２２０、及び然るにＩ／Ｏデバイス２２５は、次いで、ＩＣＨへ結合されている。Ｉ／Ｏモジュール２３１及び２１８も、グラフィクスアクセラレータ２３０とコントローラハブ２１５との間の通信のために階層プロトコルスタックを実装する。先のＭＣＨの説明と同様に、グラフィクスコントローラ又はグラフィクスアクセラレータ２３０自体がプロセッサ２０５に組み込まれてよい。
【００４５】
図３を参照すると、階層プロトコルスタックの実施形態が表されている。階層プロトコルスタック３００は、クイック・パス・インターコネクト（ＱＰＩ；Quick  Path  Interconnect）スタック、ＰＣＩｅスタック、次世代高性能コンピューティングインターコネクトスタック、又は他の階層スタックのような、如何なる形の階層通信スタックも含む。図２乃至５を参照して直ぐ後に述べられる議論は、ＰＣＩｅスタックに関するものであるが、同じ概念は、他のインターコネクトスタックに適用されてよい。一実施形態において、プロトコルスタック３００は、トランザクションレイヤ３０５、リンクレイヤ３１０、及び物理レイヤ３２０を含むＰＣＩｅプロトコルスタックである。インターフェイスは、通信プロトコルスタック３００として表されてよい。通信プロトコルスタックとしての表現は、プロトコルスタックを実装する／含むモジュール又はインターフェイスとも呼ばれてよい。
【００４６】
ＰＣＩエクスプレスは、コンポーネント間で情報をやり取りするためにパケットを使用する。パケットは、送信コンポーネントから受信コンポーネントへ情報を運ぶようトランザクションレイヤ３０５及びデータリンクレイヤ３１０において形成される。送信されるパケットが他のレイヤを通る場合に、それらは、それらのレイヤでパケットを扱うために必要な追加情報により拡張される。受信側では、逆行プロセスが起こり、パケットは、それらの物理レイヤ３２０の表現からデータリンクレイヤ３１０の表現へ、そして、最終的に（トランザクションレイヤパケットのために）、受信デバイスのトランザクションレイヤ３０５によって処置され得る形へ変換される。
【００４７】
一実施形態において、トランザクションレイヤ３０５は、デバイスのプロセッシングコアとインターコネクトアーキテクチャ（例えば、データリンクレイヤ３１０及び物理レイヤ３２０）との間のインターフェイスを提供する。これに関して、トランザクションレイヤ３０５の主たる責務は、パケット（すなわち、トランザクションレイヤパケット、すなわち、ＴＬＰ（Transaction  Layer  Packet(s)））のアセンブリ及びディスアセンブリである。トランザクションレイヤ３０５は、通常、ＴＬＰのためのクレジットベースのフロー制御を管理する。ＰＣＩｅは、分割トランザクション（split  transactions）、すなわち、時間によって分けられた要求及び応答を有するトランザクションを実装して、対象のデバイスが応答のためにデータを集める間にリンクが他のトラフィックを運ぶことを可能にする。
【００４８】
加えて、ＰＣＩｅは、クレジットベースのフロー制御を利用する。このスキームでは、デバイスは、トランザクションレイヤ３０５における受信バッファの夫々についてのクレジットの最初の量をアドバタイズする。コントローラハブのような、リンクの反対側にある外部デバイスは、夫々のＴＬＰによって消費されるクレジットの数をカウントする。トランザクションは、トランザクションがクレジット制限を超えない場合に送信されてよい。応答を受信すると、クレジットの量はリストアされる。クレジットスキームの利点は、クレジット制限に直面しないという条件で、クレジットのリターンのレイテンシーが性能に影響を及ぼさないことである。
【００４９】
一実施形態において、４つのトランザクションアドレス空間は、構成アドレス空間、メモリアドレス空間、入出力アドレス空間、及びメッセージアドレス空間を含む。メモリ空間トランザクションは、メモリをマッピングされた位置へ／からデータを転送するためのリード要求及びライト要求のうちの１つ以上を含む。一実施形態において、メモリ空間トランザクションは、２つの異なるアドレスフォーマット、例えば、３２ビットアドレスのようなショートアドレスフォーマット、又は６４ビットアドレスのようなロングアドレスフォーマット、を使用することが可能である。構成空間トランザクションは、ＰＣＩｅデバイスの構成空間（configuration  space）にアクセスするために使用される。構成空間へのトランザクションは、リード要求及びライト要求を含む。メッセージ空間トランザクション（又は、単に、メッセージ）は、ＰＣＩｅエージェント間のインバンド通信をサポートするよう定義される。
【００５０】
従って、一実施形態において、トランザクションレイヤ３０５は、パケットヘッダ／ペイロード３０６をアセンブルする。現在のパケットヘッダ／ペイロードのためのフォーマットは、ＰＣＩｅ規格ウェブサイトにあるＰＣＩｅ規格において見つけられ得る。
【００５１】
直ちに図４を参照すると、ＰＣＩｅトランザクション記述子の実施形態が表されている。一実施形態において、トランザクション記述子４００は、トランザクション情報を運ぶメカニズムである。これに関して、トランザクション記述子４００は、システムにおけるトランザクションの識別をサポートする。他の見込まれる使用は、デフォルトのトランザクションの順序付けの変更及びトランザクションとチャネルとの関連付けを追跡することを含む。
【００５２】
トランザクション記述子４００は、グローバル識別子フィールド４０２、属性フィールド４０４、及びチャネル識別子フィールド４０６を含む。表されている例では、グローバル識別子フィールド４０２は、ローカルトランザクション識別子フィールド４０８及びソース識別子フィールド４１０を有するように表されている。一実施形態において、グローバル識別子フィールド４０２は、全ての未解決の要求にとって一意である。
【００５３】
１つの実施に従って、ローカルトランザクション識別子フィールド４０８は、要求元のエージェントによって生成されるフィールドであり、それは、その要求元のエージェントのために完了を求める全ての未解決の要求にとって一意である。更には、この例では、ソース識別子フィールド４１０は、ＰＣＩｅヒエラルキ内で要求元のエージェントを一意に識別する。然るに、ソース識別子フィールドとともに、ローカルトランザクション識別子フィールド４０８は、ヒエラルキ領域内のトランザクションのグローバル識別を提供する。
【００５４】
属性フィールド４０４は、トランザクションの特性及び関係を特定する。これに関連して、属性フィールド４０４は、潜在的に、トランザクションのデフォルトのハンドリングを変更することを可能にする追加情報を提供するために使用される。一実施形態において、属性フィールド４０４は、プライオリティ（priority）フィールド４１２、予備（reserved）フィールド４１４、順序付け（ordering）フィールド４１６、及びスヌープなし（no-snoop）フィールド４１８を含む。ここで、プライオリティサブフィールド４１２は、プライオリティをトランザクションに割り当てるようイニシエータによって変更されてよい。予備属性フィールド４１４は、将来、又はベンダーにより定義される使用のために、使わずに残しておかれる。プライオリティ又はセキュリティ属性を使用する見込まれる使用モデルは、予備属性フィールドを用いて実装されてよい。
【００５５】
この例では、順序付け属性フィールド４１６は、デフォルトの順序付け規則を変更し得る順序付けのタイプを運ぶ任意情報を供給するために使用される。一例となる実施に従って、“０”の順序付け属性は、デフォルトの順序付け規則が適用されることを表し、“１”の順序付け属性は、緩和された順序付け（relaxed  ordering）を表し、このとき、ライトは同じ方向でライトを渡すことができ、リード完了は同じ方向でライトを渡すことができる。スヌープ属性フィールド４１８は、トランザクションがスヌープされるかどうかを決定するために利用される。図示されるように、チャネル識別子フィールド４０６は、トランザクションが関連付けられているチャネルを識別する。
【００５６】
リンクレイヤ３１０は、データリンクレイヤ３１０とも呼ばれ、トランザクションレイヤ３０５と物理レイヤ３２０との間の中間段として働く。一実施形態において、データリンクレイヤ３１０の責務は、２つのコンポーネント間でトランザクションレイヤパケット（ＴＬＰ）をやり取りする信頼できるメカニズムを提供することである。データリンクレイヤ３１０の一方の側は、トランザクションレイヤ３０５によってアセンブルされたＴＬＰを受け入れ、パケットシーケンス識別子３１１、すなわち、識別番号又はパケット番号を適用し、エラー検出コード、すなわち、ＣＲＣ３１２を計算及び適用し、そして、物理レイヤ３２０を介した外部デバイスへの送信のために、変更されたＴＬＰを物理レイヤ３２０へ渡す。
【００５７】
一実施形態において、物理レイヤ３２０は、論理サブブロック３２１及び電気サブブロック３２２を含み、パケットを外部デバイスへ物理的に送信する。ここで、論理サブブロック３２１は、物理レイヤ３２０の“デジタル”機能に関与する。これに関して、論理サブブロックは、物理サブブロック３２２による送信のために発信情報を準備する送信セクションと、受信された情報をリンクレイヤ３１０へ渡す前に識別して準備する受信セクションとを含む。
【００５８】
物理ブロック３２２は、送信器及び受信器を含む。送信器は、論理サブブロック３２１によってシンボルを供給され、それを送信器は順番に並べて外部デバイスへ送信する。受信器は、順番に並べられたシンボルを外部デバイスから供給され、受信された信号をビットストリームに変換する。ビットストリームは、非直列化され、論理サブブロック３２１へ供給される。一実施形態において、８ｂ／１０ｂ送信コードが用いられ、１０ビットシンボルが送信／受信される。ここで、特別なシンボルは、フレーム３２３を用いてパケットを組み立てるために使用される。加えて、一例において、受信器はまた、入来する直列ストリームから回復されたシンボルクロックを供給する。
【００５９】
上述されたように、トランザクションレイヤ３０５、リンクレイヤ３１０、及び物理レイヤ３２０は、ＰＣＩｅプロトコルスタックの具体的な実施形態を参照して説明されているが、階層プロトコルスタックはそのように制限されない。実際に、如何なる階層プロトコルも含まれてよい／実装されてよい。一例として、階層プロトコルとして表されるポート／インターフェイスは：（１）パケットをアセンブルする第１レイヤ、すなわち、トランザクションレイヤ；（２）パケットを順序付ける第２レイヤ、すなわち、リンクレイヤ；及び（３）パケットを送信する第３レイヤ、すなわち、物理レイヤを含む。具体例として、ＱＰＩ階層プロトコルが利用される。
【００６０】
次に図５を参照すると、ＰＣＩｅシリアル・ポイント・ツー・ポイント・ファブリックの実施形態である。ＰＣＩｅシリアル・ポイント・ツー・ポイントリンクの実施形態が表されているが、シリアル・ポイント・ツー・ポイントリンクはそのように制限されず、それは、シリアルデータを送信する如何なる伝送経路も含む。図示されている実施形態では、基本ＰＣＩｅリンクは、２つの、低電圧の、差動駆動される信号対、すなわち、送信対５０６／５１１及び受信対５１２／５０７を含む。然るに、デバイス５０５は、データをデバイス５１０へ送信する送信ロジック５０６と、データをデバイス５１０から受信する受信ロジック５０７とを含む。言い換えれば、２つの送信経路、すなわち、経路５１６及び５１７、並びに２つの受信経路、すなわち、経路５１８及び５１９がＰＣＩｅリンクに含まれている。
【００６１】
伝送経路は、電送線路、銅線、光線、無線通信チャネル、赤外線通信リンク、又は他の通信経路のような、データを伝送する如何なる経路も指す。２つのデバイス、例えば、デバイス５０５及びデバイス５１０、の間の接続は、リンク（例えば、リンク５１５）と呼ばれる。リンクは１つのレーンをサポートしてよく、各レーンは差動信号対の組（一対は送信用、もう一対は受信用。）を表す。バンド幅を調整するよう、リンクは、×Ｎによって表される複数のレーンを統合する。Ｎは、如何なるサポートされるリンク幅（例えば、１、２、４、８、１２、１６、３２、６４又はより広い）でもある。
【００６２】
差動対は、差動信号を送信するための２つの伝送経路、例えば、ライン５１６及び５１７を指す。一例として、ライン５１６が低電圧レベルから高電圧レベルへ切り替わるとき（すなわち、立ち上がり）、ライン５１７は、高論理レベルから低論理レベルへ駆動する（すなわち、立ち下がり）。差動信号は、潜在的に、より良い電気特性、例えば、より良い信号インテグリティ、すなわち、交差結合（cross-coupling）、電圧オーバーシュート／アンダーシュート、リンギング、など、を示す。これは、より高速な伝送周波数を可能にする、より良いタイミング窓を可能にする。
【００６３】
次に図６を参照すると、実施形態に従うＳｏＣ設計の実施形態が表されている。具体的な、実例となる例として、ＳｏＣ２０００はユーザ機器（ＵＥ；User  Equipment）に含まれている。一実施形態において、ＵＥは、携帯電話機、スマートフォン、タブレット、超薄型ノートブック、広帯域アダプタを備えたノートブック、又はあらゆる他の同様の通信デバイスのような、通信するためにエンドユーザによって使用される如何なるデバイスも指す。しばしば、ＵＥは、ＧＳＭ（登録商標）ネットワークにおける移動局（ＭＳ；Mobile  Station）に事実上対応しうる基地局又はノードへ接続する。
【００６４】
ここで、ＳｏＣ２０００は、２つのコア２００６及び２００７を含む。先の議論と同様に、コア２００６及び２００７は、インテル社のアーキテクチャコアに基づくプロセッサ、アドバンスド・マイクロ・デバイス（ＡＭＤ）社のプロセッサ、ＭＩＰＳに基づくプロセッサ、ＡＲＭに基づくプロセッサ設計、又はそれら及びそれらのライセンシー又は採用者のカスタマのような、命令セットアーキテクチャに従ってよい。コア２００６及び２００７は、キャッシュコントロール２００８へ結合され、キャッシュコントロール２００８は、システム２００の他の部分と通信するようバスインターフェイスユニット２００９及びＬ２キャッシュ２０１０に関連する。インターコネクト２０１２は、ＩＯＳＦ、ＡＭＢＡ、又は上記の他のインターコネクトのような、オンチップ・インターコネクトを含み、潜在的に、ここで記載されている１つ以上の態様を実装する。
【００６５】
インターコネクト２０１２は、加入者識別モジュール（ＳＩＭ；Subscriber  Identity  Module）カードとインターフェイス接続するＳＩＭ２０３０、ＳｏＣ２０００を初期化しブートするコア２００６及び２００７による実行のためのブートコードを保持するブートＲＯＭ２０３５、外部メモリ（例えば、ＤＲＡＭ２０６０）とインターフェイス接続するＳＤＲＡＭコントローラ２０４０、不揮発性メモリ（例えば、フラッシュ２０６５）とインターフェイス接続するフラッシュコントローラ２０４５、周辺機器とインターフェイス接続するペリフェラルコントローラ２０５０（例えば、シリアルペリフェラルインターフェイス）、入力（例えば、タッチ対応入力）を表示及び受信するビデオコーデック２０２０及びビデオインターフェイス２０２５、グラフィクスに関連した計算を実行するＧＰＵ２０１５などのような、他のコンポーネントへの通信チャネルを提供する。それらのインターフェイスのいずれも、本願で記載される態様を組み込んでよい。
【００６６】
加えて、システムは、Ｂｌｕｅｔｏｏｔｈ（登録商標）モジュール２０７０、３Ｇモデム２０７５、ＧＰＳ２０８０、及びＷｉ−Ｆｉ（登録商標）２０８５のような、通信のための周辺機器を表す。システムには、電力コントローラ２０５５も含まれる。上述されたように、ＵＥは通信のためのラジオを含む点に留意されたい。結果として、それらの周辺通信モジュールは、全てが必要とされるわけではない。しかし、ＵＥでは、外部通信のための何らかの形のラジオが含まれるべきである。
【００６７】
様々な実施形態において、ハードウェアに基づくビットエラーレート（ＢＥＲ）推定器は、受信器回路内、例えば、受信器のフロントエンド回路内に設けられる。より具体的には、この推定器は、ＢＥＲを推定するために使用されるエラーが、送信（及び受信）されるデータの知識なしで決定される点で、ブラインド推定器である。別の言い方をすれば、ＢＥＲは、送信器と受信器との間のループバック経路を使用することなしに、且つ、解析下のデータパターンの先験的知識なしで、盲目的に推定され得る。このＢＥＲ推定器を用いると、ＢＥＲ測定は、高速インターコネクトが使用可能であるときに実施可能であり、本願で記載されるように、受信器及び／又は送信器の１つ以上のコンポーネントのエラー性能監視及び適応制御を可能にする
【００６８】
実施形態において、複数の並列コンパレータ又は硬判定ユニット（本願ではスライサとも呼ばれる。）は夫々、ビットストリームを受信及び生成するために使用されてよい。いくつかの実施形態は２つの並列スライサの使用を考えているが、本発明の適用範囲はこれに関して制限されず、他の場合には、２つよりも多い並列スライサが存在してよいことを理解されたい。
【００６９】
これより図７Ａを参照すると、確率密度関数のグラフ表示が示されている。影を付けられた領域は、２つのスライサ又は１つのスライサのための特定の基準電圧レベルとともに使用される場合の誤りビットインジケーションの位置を示す。第２のスライサを使用する目的は、第１のスライサに対応するＢＥＲを盲目的に推定することである。ブラインドＢＥＲ推定のための基本原理を理解するよう、電圧信号Ｖｉｎは、スライサ入力でのサンプリングされた電圧に相当し、この信号は、２つの個別的な確率密度関数（ＰＤＦ；Probability  Density  Function）から成る条件付きＰＤＦを有していると考える。なお、２つの個別的なＰＤＦのうちの１つはビット０に対応し、もう１つはビット１に対応する。すなわち、夫々、Ｖ０及びＶ１である（図７Ａを参照）。図７Ａにおいて影を付けられた領域は、論理１と誤って識別される送信ロジック０と、論理０と誤って識別される送信ロジック１とを示す。ＢＥＲを測定するよう、論理０と誤って識別される送信ロジック１の数は、そのように誤って分類された論理１に加えられる。この解析において、回復されたビットストリームを生成するスライサのための閾電圧（入来信号が論理０又は１のいずれであるかを判定するために入来電圧と比較される電圧である。）は、Ｖｒｅｆ１／Ｖｒｅｆ２と示されている。よって、スライサが基準電圧Ｖｒｅｆ１／Ｖｒｅｆ２を夫々有しているとすると、出力部での回復されたビットストリームにおけるＢＥＲは、スライサ出力の誤りビット及び誤りなしビットに基づき計算される。
【００７０】
図７Ｂは、２つの並列コンパレータ又はスライサ７１０及び７２０を有するＢＥＲ推定器回路の部分のブロック図である。図示されるように、両方のスライサは、入来アナログ信号（Ｖｉｎ）と、信号から回復されたビットが論理０又は論理１のいずれかであるかを判定するよう入来アナログ信号と比較される異なった基準電圧レベル（Ｖｒｅｆ１／Ｖｒｅｆ２）とを受信するよう構成される。スライサ７１０及び７２０による、結果として現れる決定は、論理ユニット７３０へ供給される。論理ユニット７３０は、排他的ＯＲゲートとして構成されてよい。よって、２つのユニットの決定が一致する場合に、エラーの発生はなく、論理ユニット７３０の出力はゼロ値（任意）を有し、代わりに、出力が異なっている場合には、これはエラーが発生したこと示し、論理１である。
【００７１】
このように、図７Ａ及び７Ｂから明らかなように、並列スライサから得られるビットストリームは、人工的な誤りを生成するために使用され、誤りビット（論理ユニット７３０の出力から取られる。）と誤りなしビット（スライサ７１０、７２０の出力から取られる。）との間の比を計算することによって、ＢＥＲは特定の基準電圧レベルＶｒｅｆ２について測定される。
【００７２】
基準電圧は、基準電圧Ｖｒｅｆ２がアイの上半分から下半分へ向かうにつれて異なったＢＥＲ測定を得るよう、第２スライサにおいて適応（例えば、スイープ）されてよい点に留意されたい。図７Ａに示される基準電圧Ｖｒｅｆ１によれば、第１スライサは、Ｖｒｅｆ２の閾電圧で動作する第２スライサに関連するストリームよりも低いＢＥＲを生じさせる。これより、Ｖｒｅｆ２を用いてＢＥＲ測定を実施した後に（基準電圧Ｖｒｅｆ１がＶｒｅｆ２よりも低いＢＥＲを与える場合）、基準電圧Ｖｒｅｆ１がＶｒｅｆ２に変更されると考える。その場合に、Ｖｒｅｆ１がより低いＢＥＲを生じさせるよう選択されていた場合に第２スライサによって生成された人工的な誤りは実際の誤りとなり、従って、第２スライサを用いて測定されたＢＥＲは、Ｖｒｅｆ２で動作する第１スライサに対応する実際のＢＥＲである。別の言い方をすれば、Ｖｒｅｆ１がＶｒｅｆ２よりも低いＢＥＲを生じさせる場合に実施されるＢＥＲ測定は、如何なる種類の教師あり（supervised）技術（ループバック、パターンの先験的知識、など）も用いて実施される第１スライサに対応するＢＥＲ測定と同じである。なお、Ｖｒｅｆ２がＶｒｅｆ１に近づくにつれて、測定されるＢＥＲは０に近くなる。それでも、この領域におけるＢＥＲは、Ｖｒｅｆ２＜Ｖｒｅｆ１（アイの上半分）及びＶｒｅｆ２＞Ｖｒｅｆ１（アイの下半分）の場合に、測定データを外挿することによって推定され得る。ガウス雑音が低ＢＥＲ領域に関与する点に留意するならば、ＢＥＲは、測定されたデータ点をＱスケールに変換し、測定されたデータにおいて線形傾向（linear  trend）を見つけ、線形な点を外挿し、次いで、外挿されたデータをＢＥＲスケールに変換することによって、推定され得る。Ｑスケール変換は、ガウスＰＤＦの累積分布関数（ＣＤＦ；Cumulative  Density  Function）を線形関数として表す方法である点に留意されたい。特に、標準偏差は傾きの逆数であり、ガウス関数の平均は、Ｑ＝０であるインターセプト・ポイントで推定される。このようにして、第１スライサに関連するＢＥＲは、可変な基準電圧を有する第２スライサを使用することによって、盲目的に推定され得る。完全なアイスキャンは、上述されたのと同じ原理が異なるサンプリング位相について適用される場合に実施され得る。
【００７３】
本発明の実施形態を使用すれば、ＢＥＲ推定器は、完全なアイスキャンを実施するために、エラー性能を監視するために、及び／又は許容可能なエラー性能を保ちながら電力消費を管理するために、如何なる高速インターコネクトの物理レイヤでも使用され得る。更には、ＢＥＲ推定器は、電圧及び時間マージンを定量化するために外部デバイス（例えば、ジョイント・テスト・アクション・グループ（ＪＴＡＧ；Joint  Test  Action  Group）インターフェイスを介して結合される。）を用いてＢＥＲデータにアクセスする検証ツールとしても使用され得る。更には、実施形態は、高速リンクにおけるコンポーネントの最適化及び設計（例えば、イコライザタップ）のために使用され得る。
【００７４】
インターコネクトで使用されるシグナリングスキームに応じて、スライサはシングルエンド又は差動であることができる。シングルエンドの場合に、スライサは、判定閾値としてＶｒｅｆを使用し、差動スライサは、暗黙的なゼロ判定閾値を補償するためにＶｏｆｆｓｅｔを使用する。
【００７５】
ビットストリームｄｋにおいて誤りビットを受信する確率は、送信及び受信器の設定／ノイズ、並びにインターコネクトチャネル特性の関数である。全てのそれらの設定及びノイズは、電圧及び時間アイマージンを決定する。
【００７６】
これより図８Ａを参照すると、本発明の実施形態に従う受信器の部分のブロック図が示されている。実施形態において、受信器８００は、高速受信器であり、例えば、所与の入出力（Ｉ／Ｏ）インターコネクトのような高速リンクに関連する。
【００７７】
一般に、受信器８００は、自動ゲイン制御（ＡＧＣ；Automatic  Gain  Control）回路８１０を有するデータ経路を含む。ＡＧＣ回路８１０は、入来アナログ信号Ｒｘを受信し、信号を適切に整え、それをイコライザ８２０へ供給する１つ以上の増幅器として構成され得る。別の実施では、イコライザ８２０は、決定フィードバックイコライザであってよい。結果として現れるイコライズされた信号は、第１スライサ８３０へ供給される。第１スライサ８３０は、メインデータ経路スライサであってよい。図示されるように、イコライズされた信号を受信することに加えて、スライサ８３０は、基準電圧信号（Ｖｒｅｆ／Ｖｏｆｆｓｅｔ）及びクロック信号を更に受信し、それにより、そのサンプリング決定は、クロック信号に従い且つ基準電圧レベルに基づく。図８Ａの実施形態では、受信器８００は組み込みクロック（embedded  clock）アーキテクチャとして構成され、それにより、クロック回復回路８３５は、イコライザ８２０から受信されたイコライズされたデータからサンプリングクロックを回復し、このクロック信号をスライサ８３０へ供給する点に留意されたい。
【００７８】
このように、スライサ８３０は、入来信号のサンプリングされた部分が論理０又は論理１のいずれであるかを判定するよう動作し、この出力を消費ロジック、例えば、プロセッサ又はＳｏＣの１つ以上のインテレクチュアル・プロパティ（ＩＰ；Intellectual  Property）ロジックブロック（図８Ａに図示せず。）へ回復されたビットストリームｄｋ（ｃｌｋ，Ｖｒｅｆ／Ｖｏｆｆｓｅｔ）として供給する。
【００７９】
図８で更に表されるように、その上、スライサ８３０は、そのビット決定をＢＥＲ推定器コントローラ８５０へ供給する。コントローラ８５０は、イコライザ出力を受信するようやはり構成されている第２又は補助スライサ８４０へ更に結合されている。加えて、コントローラ８５０は、異なるスイーピング基準電圧レベル（Ｖｒｅｆ／Ｖｏｆｆｓｅｔ）をスライサ８４０へ供給する。加えて、本願で記載されるように、スライサ８４０は、異なるクロック信号、すなわち、コントローラ８５０から受信される位相信号（スイープされたクロック信号であってよい。）に応答して、そのサンプリングを実施する。次いで、その決定ビットは、ＢＥＲ推定器コントローラ８５０へ供給される。２つのスライサからの決定ビットに基づき、コントローラ８５０は、対応するＢＥＲを決定する。図８Ａの実施形態ではこのような高レベルで示されているが、本発明の適用範囲はこれに関して制限されない点を理解されたい。
【００８０】
例えば、受信器は、転送クロック（forwarded  clock）アーキテクチャにおいて同様に適応されてよい。そのような実施形態では、追加のクロック経路が受信器内に設けられる点に留意されたい。これは、図８Ｂに示されている。図８Ｂは、本発明の他の実施形態に従う受信器のブロック図である。図８Ｂから分かるように、受信器８００′は、受信器８００と同じように概して構成されてよい。しかし、入来クロック信号を受信するよう構成される第２ＡＧＣ回路８６０と、第２イコライザ８７０と、スライサ８３０及びコントローラ８５０のための適切なクロック信号を生成する遅延ロックループ（Delay  Locked  Loop）／位相ロックループ（Phase  Locked  Loop）（ＤＬＬ／ＰＬＬ）８７５とを含む並列クロック経路の存在に留意されたい。
【００８１】
図８Ａ及び図８Ｂの両方のアーキテクチャにおいて、スライサ８４０は、ビットストリームｄｋ（φｉ，Ｖｒｅｆ１／Ｖｏｆｆｓｅｔ１）を生成するために使用される。このビットストリームは、クロック位相φｉで入来アナログ波形Ｒｘをサンプリングし、それを決定閾値Ｖｒｅｆ１／Ｖｏｆｆｓｅｔ１と比較することによって生成される。クロック位相φｉは、完全アイスキャン動作モードがＢＥＲ推定器コントローラ８５０で実施される場合にサンプリング時間をスイープするために位相補間器（図８Ａ及び８Ｂには図示せず。）を用いてコントローラ８５０によって生成される。他方で、ビットストリームｄｋ（ｃｌｋ，Ｖｒｅｆ／Ｖｏｆｆｓｅｔ）は、静的な基準電圧レベル及びクロック位相にあるＶｒｅｆ／Ｖｏｆｆｓｅｔ及びクロック（回復又は転送）を用いてインターコネクトから回復されたデータである。
【００８２】
これより図９を参照すると、実施形態に従うＢＥＲ推定器コントローラの更なる詳細のブロック図が示されている。図９において、コントローラ８５０は、図８Ａ及び８Ｂのコントローラ８５０に対応する。図９から分かるように、コントローラ８５０は、２つのスライサからビット決定を受け取って、生成されたエラーを検出するよう構成されるＸＯＲロジック８５２を含む。次いで、第１スライサからの回復されたビット及びＸＯＲロジック８５２の出力は、複数のカウンタを含むカウンタ回路８５４へ供給される。カウンタ回路８５４は、制御ユニット８５５によって制御される。制御ユニット８５５は、本願で更に記載されるように、位相補間器８５６を制御し、且つ、エラー閾検出器８５８から情報を受信するよう更に構成される。
【００８３】
ｃｌｋ及びＶｒｅｆ／Ｖｏｆｆｓｅｔは、非常に低いＢＥＲ（大部分の受信器において今日実装されている時間／電圧アイマージング法によって達成される。）を有するビットストリームを生成するよう選択されると考えると、コントローラ８５０は、Ｖｒｅｆ１／Ｖｏｆｆｓｅｔ１（アイの下半分についてはＶｒｅｆ／Ｖｏｆｆｓｅｔよりも大きく、アイの上半分についてＶｒｅｆ／Ｖｏｆｆｓｅｔよりも小さい。）及び初期クロック位相φｉを生成する。カウンタ回路８５４は、ＸＯＲロジック８５２から生成されたエラー及び誤りなしビットの数（図９では、夫々、Ｅｒｒｏｒｓ及びＮｂ）をカウントする複数のリセット可能なカウンタを含む。エラーが所定数Ｎｅに達したことがエラー閾検出器８５８によって決定されるとき、コントローラ８５０はＢＥＲをＮｅ／Ｎｂとして測定し、この測定をＱスケールに変換し、そして、それは、前の測定点とともに集められる。次いで、信号は、カウンタ回路８５４のカウンタをゼロにリセットするよう、カウンタ回路８５４へ送られる。これと同時に、基準電圧は、新しいＢＥＲ点を測定するようＶｒｅｆ１／Ｖｏｆｆｓｅｔ１へ更新（スイープ）される。
【００８４】
このプロセスは、コントローラ８５０がＱ測定データにおいて（アイの上半分及び下半分の両方について）線形傾向を検出するまで実施される。次いで、コントローラ８５０は、所与のクロック位相φｉでＢＥＲ測定を完了するよう、Ｑスケールにおいて線形外挿を実施する。外挿後、コントローラ８５０は、位相補間器８５６が新しいクロック位相φｉ＋１を生成するための制御信号を生成し、そして、Ｖｒｅｆ１／Ｖｏｆｆｓｅｔ１値は、完全アイスキャン動作モードが有効にされる場合且つＢＥＲ推定が終了されない場合に再度選択される。完全アイスキャン動作モードのために、上記のプロセスは、全ての起こり得るサンプリング位相が使用されるまで繰り返される。３２から１２８個の異なった位相の中の一例は、位相補間器回路のアーキテクチャ／技術に応じて使用されてよい。完全アイスキャンが実施された後、Ｔｘ／Ｒｘフロントエンドは、ＢＥＲ性能を最適化するよう再調整され得る。なお、ＢＥＲが非常に低い場合には、異なる動作点が、特定のアイスキャン結果に基づき、電力を低減するため、エラー性能を最適化するため、速度を上げるため、などの目的で選択され得る。このようにして、アイの上半分及び下半分は測定可能であり、ＢＥＲは、インターコネクトサービスを中断することなしに、電圧及びサンプリング時間に応じて決定され得る。
【００８５】
これより図１０参照すると、本発明の実施形態に従う方法のフロー図が示されている。図１０に示されるように、方法９００は、受信器のＢＥＲ推定器コントローラ又は他のコントローラによって実施されてよい。それは、様々な実施形態において、１つ以上のハードウェア、ソフトウェア、及び／又はファームウェアの適切な組み合わせによって実装されてよい。他の例として、そのようなロジックは、１つ以上のマイクロコントローラとして構成されてよい。
【００８６】
図１０に表されているように、方法９００は、補助スライサのための基準電圧レベル及び初期クロック位相ｃｌｋを選択することによって開始する（ブロック９１０）。次に、評価時間に入来アナログ信号を解析した後に、エラーの数がエラー閾値を超えるかどうかが判定される（ダイヤモンド９２０）。そうでない場合は、現在の基準電圧レベルのサンプリングを継続することがブロック９２５で起こる。
【００８７】
代わりに、エラー閾値を超える場合には、制御はブロック９３０に渡り、ＢＥＲが測定され、Ｑスケールへ変換される。その後に、Ｑスケール測定点の線形傾向が決定され得るかどうかが判定される。そうでない場合は、基準電圧レベルは調整され（ブロック９４５）、制御は再びダイヤモンド９２０へ渡る。
【００８８】
代わりに、線形傾向が決定され得る場合には、制御はブロック９５０に渡り、線形外挿プロセスが実施され、その後に、補助サンプラが動作する位相は、完全アイスキャン動作モードが有効にされる場合（ダイヤモンド９６０）に調整されてよく、それにより、同じ動作は、全てのそのような所望のサンプリング位相が使用されるまでアイの残り半分について行われ、方法は完了する。基準電圧Ｖｒｅｆ１に対応するＢＥＲ推定は、品質Ｑ＝Ｓｌｏｐｅ×Ｖｒｅｆ１＋Ｉｎｔｅｒｃｅｐｔの逆Ｑスケール変換を行うことによって実施される。このとき、Ｓｌｏｐｅ（傾き）及びＩｎｔｅｒｃｅｐｔ（インターセプト）は、Ｑ測定点に対して実施された線形外挿により生じる量である。図１０の実施形態ではこのような高レベルで示されているが、本発明の適用範囲はこれに関して制限されない。
【００８９】
ＢＥＲ測定はランダムな変数であるから、測定、及び従って、推定、の信頼区間（confidence  interval）は、推定において使用されるエラーの数によって決定される。より多くのエラーが、ＢＥＲをより正確に推定するために観測可能であり、一方で、推定時間はより長くなる。実施形態において、更なる補助スライサを追加することによって、アイ全体をスイープするのにかかる時間を削減することが可能である。これより図１１を参照すると、他の実施形態に従うＢＥＲ推定回路の部分のブロック図が示されている。図１１に示されるように、回路８０１は、コントローラ８５０（上述されたように構成されてよい。）及び複数の補助スライサ８４０及び８４５を含む。メインデータ経路は、説明の簡単のために図１１では示されていない点に留意されたい。しかし、メインスライサからの回復されたビットストリームは、クロック信号（どんなふうにでも取得される。）とともに、コントローラ８５０へ供給されている点に留意されたい。更には、入来アナログ信号Ｖｉｎは、２つのスライサへ、それらの異なる基準電圧レベルとともに、コントローラ８５０から受信される同じ位相信号とともに供給される。例えば、図１１に示されるように２つの補助スライサを有しているＢＥＲ推定器は、単一の補助スライサを使用することと比べて、完全スイープを実施するのにかかる時間が２分の１である。図１１の実施形態では、ＶＵｐは、アイの上半分をスイープするためにスライサ８４０のための基準電圧として使用され、一方、ＶＬｏは、下半分をスライスするためにスライサ８４５のための基準電圧として使用される。
【００９０】
これより図１２を参照すると、送信器１０１０と受信器１０２０との間の高速Ｉ／Ｏインターフェイス回路１０００のブロック図が示されている。図示されるように、送信器１０１０は、データリンク１０１５を解して受信器１０２０へ結合されている。本発明の適用範囲はこれに関して制限されないが、回路１０００は、シリアルベースのシリアル・デシリアライザ（ＳＥＲＤＥＳ；SERial  DESerializer）のような如何なるタイプの高速インターフェイス回路であってもよい。
【００９１】
図１２に表されるように、受信器１０２０は、上述されたように、（例えば、複数のスライサ経路の）情報をＢＥＲ推定器１０３０へ供給する。このＢＥＲ推定情報は、受信器制御ロジック１０４０へ、そしてコマンドリンク１０５５（実施形態において、異なるインターコネクトであってよい。）を介して送信器制御ロジック１０５０へ供給されてよい。そのような情報に基づき、送信器１０１０及び受信器１０２０のうちの１つ以上は、例えば、電力消費を低減するために及び／又は性能を改善するために、そのコンポーネント設定のうちの１つ以上を適切に制御され得る。特に、イコライザ設定の再調整（いくつかのタップを無効にするか若しくは決定フィードバックイコライザ（ＤＦＥ；Decision  Feedback  Equalizer）を無効にすること、連続時間線形イコライザ（ＣＴＬＥ；Continuous  Time  Linear  Equalizer）特性を変更すること、など）又は送信器設定の再調整（振幅の低減、送信器線形イコライザ（ＴＸＬＥ；Transmitter  Linear  Equalizer）タップの無効化）は、電力を低減するために行われ得る。代替的に、イコライザスキーム／送信器特性の再調整は、オンラインの測定が受け入れられない誤り率を示す場合に、より良いＢＥＲ性能を達成するために実施され得る。図示されていないが、ＢＥＲ推定器１０３０で決定されたＢＥＲ推定情報は、例えば、ＪＴＡＧインターフェイスを介して、外部ソースへ供給されることが更に可能である点を理解されたい。図１２の図ではこのような高レベルで示されているが、多くの変形及び代案が可能である点を理解されたい。
【００９２】
このように、本発明の実施形態に従うＢＥＲ推定器は、インターコネクトのエラー性能における送信器／受信器の設定の影響を探求するために使用され得る。そのようなものとして、ＢＥＲ推定器は、ＤＦＥにおけるタップ、ＴＸＬＥ、ＣＴＬＥにおけるバンド幅、送信器の強さ、などのような設定を最適化するための適応解として使用され得る。
【００９３】
本発明の実施形態はそれに関して制限されないが、実施形態は、ペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）、ユニバーサルシリアルバス（ＵＳＢ）、及びダブルデータレート（ＤＤＲ）インターコネクトを含みがそれらに制限されない様々な高速インターコネクトの性能を測定するために使用されてよい。そのようなものとして、実施形態は、製品ライフサイクル及び／又はバッテリ電力消費において保証エラー性能内のインターコネクトを確かにする。更に、本発明の実施形態に従うＢＥＲ推定器は、高速デバイスの検証努力を低減し、更には、そのようなインターコネクトのための適応エンジンを提供して、静かなデータ破損の問題を回避するために許容可能なエラー性能を確保し、そして更には、モバイルデバイスにおける電力消費を削減するのを助けることができる。これは、送信器／受信器設定の適応チューニングが、製造工程におけるばらつき又は動作条件におけるばらつきに起因して失われたマージンを回復するために実施され得るからである。
【００９４】
実施形態は、例えば、検証又はデバッグを目的としたループバックに基づくＢＥＲ試験と対照的に、インターコネクトが運転可能であるときにエラー性能を監視するために使用され得る。これは、ループバックが確立されている間、受信器でのデータは送信器へ返送されるべきであるので、リンクは非テスト情報を転送するために使用され得ないからである。実施形態はまた、外部設備の必要なしに、オンラインＢＥＲ測定を提供する。外部設備を必要とすることは、非常に複雑であり、高価であり、更には、削除又は定量化することが難しい擾乱を導入し得る。
【００９５】
以下の例は、更なる実施形態に関する。
【００９６】
一例において、装置は、入来アナログ信号を受信してサンプリングし、該入来アナログ信号のビットレベルを決定し、ビット決定を消費ロジックへ供給する第１スライサを含むデータ経路と、前記入来アナログ信号を受信してサンプリングし、該入来アナログ信号の第２ビットレベルを決定する第２スライサを含む解析経路と、前記第１スライサの出力及び前記第２スライサの出力を受け取るよう結合され、前記第１スライサの出力及び前記第２スライサの出力に基づき前記データ経路のビットエラーレートを決定するコントローラとを有する。
【００９７】
例において、前記コントローラは、前記入来アナログ信号に関する先験的情報なしで前記ビットエラーレートを決定する。
【００９８】
例において、前記コントローラは、前記第２スライサの基準電圧レベルを動的にスイープし、前記第１スライサの基準電圧レベルは静的であり、前記コントローラは更に、前記第２スライサの基準位相を動的にスイープし、前記第１スライサの基準クロックは静的である。
【００９９】
例において、前記コントローラは、評価インターバルの間に前記入来アナログ信号の入来ビットの数の第１カウントを保持する第１カウンタと、前記評価インターバルの間に前記入来アナログ信号の前記入来ビットにおけるエラーの数の第２カウントを保持する第２カウンタと、前記第１カウント及び前記第２カウントに少なくとも部分的に基づき前記ビットエラーレートを決定するロジックとを有する。
【０１００】
例において、前記コントローラは、前記第２スライサの位相を複数の位相へと繰り返し調整し、前記複数の位相について、前記ビットエラーレートに関する線形傾向が決定されるまで、繰り返し、前記第２スライサの基準電圧レベルを調整し、該基準電圧レベルに従って前記ビットエラーレートを推定し、その後に、前記線形傾向を外挿し、対応する位相についての前記ビットエラーレートを決定する制御ユニットを含む。
【０１０１】
例において、前記コントローラは、当該装置へ結合されて前記入来アナログ信号を当該装置へ送信する送信器へ前記ビットエラーレートを送る。
【０１０２】
例において、当該装置は、前記ビットエラーレートを送った後に、振幅が低減された前記入来アナログ信号を受信し、前記送信器は、該送信器の電力消費を減らすよう前記入来アナログ信号の振幅を低減する。
【０１０３】
例において、当該装置は、回路基板上に構成される第１集積回路（ＩＣ）を有し、前記送信器は、前記回路基板上に構成され、該回路基板のインターコネクトを介して当該装置へ結合される第２集積回路を有する。
【０１０４】
例において、前記データ経路は、前記入来アナログ信号を受信して増幅する１つ以上のゲイン制御回路と、前記１つ以上のゲイン制御回路へ結合され、前記増幅された入来アナログ信号をイコライズし、該イコライズされた増幅された入来アナログ信号を前記第１スライサ及び前記第２スライサへ供給するイコライザとを更に有する。
【０１０５】
例において、制御ロジックは、前記ビットエラーレートに少なくとも部分的に基づき前記１つ以上のゲイン制御回路及び前記イコライザのうちの少なくとも１つを制御する。
【０１０６】
例において、前記制御ロジックは、前記ビットエラーレートが閾レベルに満たない場合に、前記イコライザの少なくとも一部分を無効にする。
【０１０７】
例において、前記解析経路は、第３スライサを更に含み、該第３スライサは、前記入来アナログ信号を受信してサンプリングし、該入来アナログ信号の第３ビットレートを決定し、前記コントローラは、前記第３スライサの出力に更に基づき前記データ経路の前記ビットエラーレートを決定する。
【０１０８】
上記の装置は、様々な手段を用いて実装されるプロセッサの部分であってよい転移留意されたい。
【０１０９】
例において、当該装置は、ユーザ機器のタッチ対応デバイスに組み込まれたシステム・オン・チップの部分であってよい。
【０１１０】
他の例において、システムは、ディスプレイ及びメモリを有し、上記の例のうちの１つ以上の装置を有している前記プロセッサを含む。
【０１１１】
更なる他の例において、ビットエラーレートを推定する方法は、受信器の並列経路の第２スライサが入来アナログ信号を受信し、前記第２スライサの複数の基準電圧レベルで前記入来アナログ信号から第２ビットストリームを生成することを可能にし、前記受信器は、前記入来アナログ信号を受信して第１ビットストリームを生成する第１スライサを有するデータ経路を更に含み、コントローラで、前記第１ビットストリーム及び前記第２ビットストリームのうちの１つにおいて前記複数の基準電圧レベルでのエラーの数を決定するよう前記第２ビットストリームを前記第１ビットストリームの対応する部分と比較することに少なくとも部分的に基づき前記複数の基準電圧レベルでビットエラーレートを推定し、前記コントローラによって、前記複数の基準電圧レベルのうちの１つ以上で推定された前記ビットエラーレートに応答して前記データ経路の少なくとも１つのコンポーネントを制御することを有する。
【０１１２】
例において、当該方法は、前記入来アナログ信号に関する先験的情報なしで前記ビットエラーレートを推定することを更に有する。
【０１１３】
例において、当該方法は、前記第２スライサの複数の位相で前記複数の基準電圧レベルのうちの少なくともいくつかを動的にスイープすることを更に有し、前記第１スライサの基準電圧レベル及び基準クロックは静的である。
【０１１４】
例において、当該方法は、前記第２スライサの位相を複数の位相へと繰り返し調整し、前記複数の位相について、前記ビットエラーレートに関する線形傾向が決定されるまで、繰り返し、前記第２スライサの基準電圧レベルを前記複数の基準電圧レベルのうちの１つへ調整し、該基準電圧レベルに従って前記ビットエラーレートを推定し、その後に、前記線形傾向を外挿し、対応する位相についての前記ビットエラーレートを決定することを更に有する。
【０１１５】
例において、マシン読み出し可能な記憶媒体は、実行される場合に、上記の例のうちのいずれかの方法を実施するマシン読み出し可能な命令を含む。
【０１１６】
他の例において、装置は、上記の例のうちいずれか１つの方法を実施する手段を有する。
【０１１７】
他の例において、システムは、アナログ信号を送信する送信器と、インターコネクトによって前記送信器へ結合され、前記アナログ信号を受信し、該アナログ信号のデータパターンの先験的知識なしで、システムのランタイムの間に前記アナログ信号から回復されるビットストリームのビットエラーレートを決定する受信器とを有する。
【０１１８】
例において、前記受信器は、第１基準レベルに従って前記アナログ信号の第１ビット決定を生成するよう前記アナログ信号をサンプリングする第１コンパレータと、第２基準レベルに従って前記アナログ信号の第２ビット決定を生成するよう前記アナログ信号をサンプリングする第２コンパレータと、前記第１ビット決定及び前記第２ビット決定を受け取り、それらに少なくとも部分的に基づき前記ビットエラーレートを決定するコントローラとを有する。
【０１１９】
例において、前記コントローラは、評価インターバルの間に前記ビットストリームのビットの数の第１カウントを保持する第１カウンタと、前記評価インターバルの間に前記ビットストリームにおけるエラーの数の第２カウントを保持する第２カウンタと、前記第１カウント及び前記第２カウントに少なくとも部分的に基づき前記ビットエラーレートを決定するロジックとを有する。
【０１２０】
例において、前記コントローラは、前記第２コンパレータの位相を複数の位相へと繰り返し調整し、前記複数の位相について、前記ビットエラーレートに関する線形傾向が決定されるまで、繰り返し、前記第２基準レベルを調整し、該第２基準レベルに従って前記ビットエラーレートを推定し、その後に、前記線形傾向を外挿し、対応する位相についての前記ビットエラーレートを決定する制御ユニットを含む。
【０１２１】
例において、前記受信器は、前記ビットエラーレートを前記送信器へ送り、前記送信器は、前記ビットエラーレートと閾値との比較に基づき前記アナログ信号の振幅を低減し、該低減された振幅は、前記送信器の電力消費を減らす。
【０１２２】
例において、前記受信器は、前記アナログ信号を受信して増幅する１つ以上のゲイン制御回路と、前記１つ以上のゲイン制御回路へ結合され、前記増幅されたアナログ信号をイコライズし、該イコライズされた増幅されたアナログ信号を前記第１コンパレータ及び前記第２コンパレータへ供給するイコライザとを有する。
【０１２３】
例において、制御ロジックは、前記ビットエラーレートに少なくとも部分的に基づき前記１つ以上のゲイン制御回路又は前記イコライザのうちの少なくとも１つを制御する。
【０１２４】
上記の例の様々な組み合わせが可能である点を理解されたい。
【０１２５】
実施形態は、多種多様なタイプのシステムにおいて使用されてよい。例えば、一実施形態において、通信デバイスは、本願で記載される様々な方法及び技術を実施するよう配置され得る。当然、本発明の適用範囲は、通信デバイスに制限されず、代わりに、他の実施形態は、命令を処理する他のタイプの装置、又はコンピューティングデバイスで実行されることに応答して、デバイスに、本願で記載される方法及び技術のうちの１つ以上を実施させる命令を含む１つ以上のマシン読み出し可能な媒体を対象とすることができる。
【０１２６】
実施形態は、コードにおいて実装されてよく、且つ、命令を実行するようシステムをプログラムするために使用され得る命令を記憶している非一時的な記憶媒体に記憶されてよい。記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ソリッドステートドライバ（ＳＳＤ；Solid  State  Driver(s)）、コンパクトディスク・リードオンリーメモリ（ＣＤ−ＲＯＭ；Compact  Disc  Read-Only  Memory）、コンパクトディスク・リライタブル（ＣＤ−ＲＷ；Compact  Disc  Rewritable）、及び光学磁気ディスク、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ；Random  Access  Memory）、例えば、動的（Dynamic）ランダムアクセスメモリ（ＤＲＡＭ）、静的（static）ランダムアクセスメモリ（ＳＲＡＭ）、消去可能なプログラム可能（Erasable  Programmable）リードオンリーメモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的（electrically）消去可能なプログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）、磁気若しくは光学式カード、又は電子命令を記憶するのに適したあらゆる他のタイプの媒体を含んでよいが、それらに制限されない。
【０１２７】
本発明は、有限な数の実施形態に関して記載されてきたが、当業者であれば、それらから多数の変更及び変形を認識するだろう。添付の特許請求の範囲は、全てのそのような変更及び変形を、本発明の主旨及び適用範囲内にあるものとしてカバーする。
【図１】
2017538367.tif 000003
【図２】
2017538367.tif 000004
【図３】
2017538367.tif 000005
【図４】
2017538367.tif 000006
【図５】
2017538367.tif 000007
【図６】
2017538367.tif 000008
【図７Ａ】
2017538367.tif 000009
【図７Ｂ】
2017538367.tif 000010
【図８Ａ】
2017538367.tif 000011
【図８Ｂ】
2017538367.tif 000012
【図９】
2017538367.tif 000013
【図１０】
2017538367.tif 000014
【図１１】
2017538367.tif 000015
【図１２】
2017538367.tif 000016
【国際調査報告】
2017538367.tif 000017
2017538367.tif 000018