(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2017-538367(P2017-538367A)
(43)【公表日】2017年12月21日
(54)【発明の名称】受信器回路のランタイムの間のビットエラーレートの測定
(51)【国際特許分類】
H04L 1/00 20060101AFI20171124BHJP
H04B 3/04 20060101ALI20171124BHJP
【FI】
H04L1/00 C
H04B3/04
【審査請求】有
【予備審査請求】未請求
【全頁数】32
(21)【出願番号】特願2017-534520(P2017-534520)
(86)(22)【出願日】2015年8月26日
(85)【翻訳文提出日】2017年3月15日
(86)【国際出願番号】US2015046861
(87)【国際公開番号】WO2016057127
(87)【国際公開日】20160414
(31)【優先権主張番号】14/510,572
(32)【優先日】2014年10月9日
(33)【優先権主張国】US
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FIREWIRE
(71)【出願人】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ヘルナンデス ソーサ,ガウデンシオ
(72)【発明者】
【氏名】コーリア,ヴァルヴァーラ
【テーマコード(参考)】
5K014
5K046
【Fターム(参考)】
5K014EA08
5K014GA02
5K046EE10
5K046EE59
(57)【要約】
一実施形態において、受信器は、入来アナログ信号を受信してサンプリングし、入来アナログ信号のビットレベルを決定し、ビット決定を消費ロジックへ供給する第1スライサを含むデータ経路と、入来アナログ信号を受信してサンプリングし、入来アナログ信号の第2ビットレベルを決定する第2スライサを含む解析経路と、第1スライサの出力及び第2スライサの出力を受け取るよう結合され、それらの出力に基づきデータ経路のビットエラーレートを決定するコントローラとを含む。他の実施形態は記載及び請求される。
【特許請求の範囲】
【請求項1】
入来アナログ信号を受信してサンプリングし、該入来アナログ信号のビットレベルを決定し、ビット決定を消費ロジックへ供給する第1スライサを含むデータ経路と、
前記入来アナログ信号を受信してサンプリングし、該入来アナログ信号の第2ビットレベルを決定する第2スライサを含む解析経路と、
前記第1スライサの出力及び前記第2スライサの出力を受け取るよう結合され、前記第1スライサの出力及び前記第2スライサの出力に基づき前記データ経路のビットエラーレートを決定するコントローラと
を有する装置。
【請求項2】
前記コントローラは、前記入来アナログ信号に関する先験的情報なしで前記ビットエラーレートを決定する、
請求項1に記載の装置。
【請求項3】
前記コントローラは、前記第2スライサの基準電圧レベルを動的にスイープし、前記第1スライサの基準電圧レベルは静的であり、
前記コントローラは更に、前記第2スライサの基準位相を動的にスイープし、前記第1スライサの基準クロックは静的である、
請求項1に記載の装置。
【請求項4】
前記コントローラは、
評価インターバルの間に前記入来アナログ信号の入来ビットの数の第1カウントを保持する第1カウンタと、
前記評価インターバルの間に前記入来アナログ信号の前記入来ビットにおけるエラーの数の第2カウントを保持する第2カウンタと、
前記第1カウント及び前記第2カウントに少なくとも部分的に基づき前記ビットエラーレートを決定するロジックと
を有する、請求項1に記載の装置。
【請求項5】
前記コントローラは、
前記第2スライサの位相を複数の位相へと繰り返し調整し、
前記複数の位相について、前記ビットエラーレートに関する線形傾向が決定されるまで、繰り返し、前記第2スライサの基準電圧レベルを調整し、該基準電圧レベルに従って前記ビットエラーレートを推定し、その後に、前記線形傾向を外挿し、対応する位相についての前記ビットエラーレートを決定する
制御ユニットを含む、請求項1に記載の装置。
【請求項6】
前記コントローラは、当該装置へ結合されて前記入来アナログ信号を当該装置へ送信する送信器へ前記ビットエラーレートを送る、
請求項1に記載の装置。
【請求項7】
当該装置は、前記ビットエラーレートを送った後に、振幅が低減された前記入来アナログ信号を受信し、
前記送信器は、該送信器の電力消費を減らすよう前記入来アナログ信号の振幅を低減する、
請求項6に記載の装置。
【請求項8】
当該装置は、回路基板上に構成される第1集積回路を有し、
前記送信器は、前記回路基板上に構成され、該回路基板のインターコネクトを介して当該装置へ結合される第2集積回路を有する、
請求項6に記載の装置。
【請求項9】
前記データ経路は、
前記入来アナログ信号を受信して増幅する1つ以上のゲイン制御回路と、
前記1つ以上のゲイン制御回路へ結合され、前記増幅された入来アナログ信号をイコライズし、該イコライズされた増幅された入来アナログ信号を前記第1スライサ及び前記第2スライサへ供給するイコライザと
を更に有する、請求項1に記載の装置。
【請求項10】
前記ビットエラーレートに少なくとも部分的に基づき前記1つ以上のゲイン制御回路及び前記イコライザのうちの少なくとも1つを制御する制御ロジック
を更に有する請求項9に記載の装置。
【請求項11】
前記制御ロジックは、前記ビットエラーレートが閾レベルに満たない場合に、前記イコライザの少なくとも一部分を無効にする、
請求項10に記載の装置。
【請求項12】
前記解析経路は、第3スライサを更に含み、該第3スライサは、前記入来アナログ信号を受信してサンプリングし、該入来アナログ信号の第3ビットレートを決定し、
前記コントローラは、前記第3スライサの出力に更に基づき前記データ経路の前記ビットエラーレートを決定する、
請求項1に記載の装置。
【請求項13】
受信器の並列経路の第2スライサが入来アナログ信号を受信し、前記第2スライサの複数の基準電圧レベルで前記入来アナログ信号から第2ビットストリームを生成することを可能にし、前記受信器は、前記入来アナログ信号を受信して第1ビットストリームを生成する第1スライサを有するデータ経路を更に含み、
コントローラで、前記第1ビットストリーム及び前記第2ビットストリームのうちの1つにおいて前記複数の基準電圧レベルでのエラーの数を決定するよう前記第2ビットストリームを前記第1ビットストリームの対応する部分と比較することに少なくとも部分的に基づき前記複数の基準電圧レベルでビットエラーレートを推定し、
前記コントローラによって、前記複数の基準電圧レベルのうちの1つ以上で推定された前記ビットエラーレートに応答して前記データ経路の少なくとも1つのコンポーネントを制御する
ことを有する方法。
【請求項14】
前記入来アナログ信号に関する先験的情報なしで前記ビットエラーレートを推定する
ことを更に有する請求項13に記載の方法。
【請求項15】
前記第2スライサの複数の位相で前記複数の基準電圧レベルのうちの少なくともいくつかを動的にスイープすることを更に有し、
前記第1スライサの基準電圧レベル及び基準クロックは静的である、
請求項13に記載の方法。
【請求項16】
前記第2スライサの位相を複数の位相へと繰り返し調整し、
前記複数の位相について、前記ビットエラーレートに関する線形傾向が決定されるまで、繰り返し、前記第2スライサの基準電圧レベルを前記複数の基準電圧レベルのうちの1つへ調整し、該基準電圧レベルに従って前記ビットエラーレートを推定し、その後に、前記線形傾向を外挿し、対応する位相についての前記ビットエラーレートを決定する
ことを更に有する請求項13に記載の方法。
【請求項17】
マシンによって実行される場合に、該マシンに、請求項13乃至16のうちいずれか一項に記載の方法を実施させるプログラム。
【請求項18】
請求項17に記載のプログラムを記憶しているマシン読み出し可能な記憶媒体。
【請求項19】
請求項13乃至16のうちいずれか一項に記載の方法を実施する手段を有する装置。
【請求項20】
アナログ信号を送信する送信器と、
インターコネクトによって前記送信器へ結合され、前記アナログ信号を受信し、該アナログ信号のデータパターンの先験的知識なしで、システムのランタイムの間に前記アナログ信号から回復されるビットストリームのビットエラーレートを決定する受信器と
を有するシステム。
【請求項21】
前記受信器は、
第1基準レベルに従って前記アナログ信号の第1ビット決定を生成するよう前記アナログ信号をサンプリングする第1コンパレータと、
第2基準レベルに従って前記アナログ信号の第2ビット決定を生成するよう前記アナログ信号をサンプリングする第2コンパレータと、
前記第1ビット決定及び前記第2ビット決定を受け取り、それらに少なくとも部分的に基づき前記ビットエラーレートを決定するコントローラと
を有する、請求項20に記載のシステム。
【請求項22】
前記コントローラは、
評価インターバルの間に前記ビットストリームのビットの数の第1カウントを保持する第1カウンタと、
前記評価インターバルの間に前記ビットストリームにおけるエラーの数の第2カウントを保持する第2カウンタと、
前記第1カウント及び前記第2カウントに少なくとも部分的に基づき前記ビットエラーレートを決定するロジックと
を有する、請求項21に記載のシステム。
【請求項23】
前記コントローラは、
前記第2コンパレータの位相を複数の位相へと繰り返し調整し、
前記複数の位相について、前記ビットエラーレートに関する線形傾向が決定されるまで、繰り返し、前記第2基準レベルを調整し、該第2基準レベルに従って前記ビットエラーレートを推定し、その後に、前記線形傾向を外挿し、対応する位相についての前記ビットエラーレートを決定する
制御ユニットを含む、請求項21に記載のシステム。
【請求項24】
前記受信器は、前記ビットエラーレートを前記送信器へ送り、
前記送信器は、前記ビットエラーレートと閾値との比較に基づき前記アナログ信号の振幅を低減し、該低減された振幅は、前記送信器の電力消費を減らす、
請求項20に記載のシステム。
【請求項25】
前記受信器は、
前記アナログ信号を受信して増幅する1つ以上のゲイン制御回路と、
前記1つ以上のゲイン制御回路へ結合され、前記増幅されたアナログ信号をイコライズし、該イコライズされた増幅されたアナログ信号を前記第1コンパレータ及び前記第2コンパレータへ供給するイコライザと
を有する、請求項21に記載のシステム。
【請求項26】
前記ビットエラーレートに少なくとも部分的に基づき前記1つ以上のゲイン制御回路又は前記イコライザのうちの少なくとも1つを制御する制御ロジック
を更に有する請求項25に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
回路におけるビットエラーレート測定
【背景技術】
【0002】
コンピューティングデバイスにおけるデータレートが増大し且つ電力量が低減するにつれて、様々な設計目標は反対の立場にある。例えば、1つ以上のシステムの集積回路及び他のコンポーネント内及びそれらの間でデータをやり取りするために使用される高速インターコネクトの設計及び実装において、電圧及びタイミングアイのマージンはより厳しくなる。従って、結果として現れるインターコネクトは、より繊細であり、製造工程におけるばらつき又は動作条件におけるばらつき(温度勾配、電磁雑音、経年劣化、など)のいずれかに起因したデータ破損に苦しむことがある。
【0003】
このために、ビットエラーレート(BER;Bit Error Rate)測定は、インターコネクトが十分に運転可能であることを確かめるよう、且つ、優れたエラー性能を保証するために送信器/受信器設定を最終的に合わせるよう、設計、開発、及び試験の間に実施される。しかし、オンラインのBER測定(製品の通常動作の間)は、通常、特に、高速インターコネクトにおいて、現在は利用可能でない。これは、そのようなオンライン技術が、高い電力消費、計算複雑性、又は送信器と受信器との間のループバック経路を必要とするからであり、それらの全てがインターコネクトの効率的運転を妨げる。
【図面の簡単な説明】
【0004】
【図1】マルチコアプロセッサを含むコンピューティングシステムについてのブロック図の実施形態である。
【0005】
【図2】コンポーネントの組を相互接続するポイント・ツー・ポイントリンクから成る構造の実施形態である。
【0006】
【図3】階層プロトコルスタックの実施形態である。
【0007】
【図4】PCIeトランザクション記述子の実施形態である。
【0008】
【図5】PCIeシリアル・ポイント・ツー・ポイント・ファブリックの実施形態である。
【0009】
【図6】実施形態に従うSoC設計のブロック図である。
【0010】
【図7A】本発明の実施形態に従う確率密度関数のグラフ表示である。
【0011】
【図7B】本発明の実施形態に従うBER推定器回路の部分のブロック図である。
【0012】
【図8A】本発明の実施形態に従う受信器の部分のブロック図である。
【0013】
【図8B】本発明の他の実施形態に従う受信器の部分のブロック図である。
【0014】
【図9】実施形態に従うBER推定器コントローラのブロック図である。
【0015】
【図10】本発明の実施形態に従う方法のフロー図である。
【0016】
【図11】他の実施形態に従うBER推定回路の部分のブロック図である。
【0017】
【図12】本発明の実施形態に従う高速インターフェイス回路のブロック図である。
【発明を実施するための形態】
【0018】
以下の記載で、本発明の完全な理解を提供するために、多数の具体的な詳細、例えば、特定のタイプのプロセッサ及びシステム構成、特定のハードウェア構造、特定のアーキテクチャ及びミクロアーキテクチャ詳細、特定のレジスタ構成、特定の命令タイプ、特定のシステムコンポーネント、特定の測定/高さ、特定のプロセッサパイプライン段及び動作、などが示される。なお、当業者に明らかなように、それらの具体的な詳細は、本発明を実施するために用いられる必要はない。他の事例では、よく知られているコンポーネント及び方法、例えば、特定の代替的なプロセッサアーキテクチャ、記載されているアルゴリズムのための特定のロジック回路/コード、特定のファームウェアコード、特定のインターコネクト動作、特定のロジック構成、特定の製造技術及び材料、特定のコンパイラ実装、コード内のアルゴリズムの特定の表現、特定のパワーダウン及びゲーティング技術/ロジック、並びにコンピュータシステムの他の特定の動作詳細は、本発明を不必要に不明りょうすることを回避するために、詳細には記載されていない。
【0019】
以下の特定の集積回路における、例えば、コンピューティングプラットフォーム又はマイクロプロセッサにおけるエネルギ節約及びエネルギ効率を参照して記載されることがあるが、他の実施形態は他のタイプの集積回路及びロジックデバイスに適用可能である。本願で記載されている実施形態の同様の技術及び教示は、より良いエネルギ効率及びエネルギ節約からやはり恩恵を受けうる他のタイプの回路又は半導体デバイスに適用されてよい。例えば、開示されているデスクトップコンピュータシステム又はUltrabook(登録商標)に制限されない。そして、ハンドヘルドのデバイス、タブレット、他の薄型ノートブック、システム・オン・チップ(System on a Chip)デバイス、及び組み込みアプリケーションのような、他のデバイスでも使用されてよい。ハンドヘルドのデバイスのいくつかの例は、携帯電話機、インターネットプロトコルデバイス、デジタルカメラ、パーソナルデジタルアシスタント(PDA;Personal Digital Assistant)、及びハンドヘルドPCを含む。組み込みアプリケーションは、通常、マイクロコントローラ、デジタル信号プロセッサ(DSP;Digital Signal Processor)、システム・オン・チップ、ネットワークコンピュータ(NetPC)、セットトップボックス、ネットワークハブ、ワイドエリアネットワーク(WAN;Wide Area Network)スイッチ、又は以下で教示される機能及び動作を実施することができるあらゆる他のシステムを含む。更には、本願で記載される装置、方法、及びシステムは、物理的なコンピューティングデバイスに制限されず、エネルギ節約及び効率のためのソフトウェア最適化にも関係してよい。以下の記載において容易に明らかになるように、本願で記載される方法、装置、及びシステムの実施形態(ハードウェア、ファームウェア、ソフトウェア、又はそれらの組み合わせのいずれを参照しようとも)は、パフォーマンスの考慮点と釣り合いを取られた‘グリーンテクノロジ’の未来に不可欠である。
【0020】
コンピューティングシステムが進歩するにつれて、その中のコンポーネントはより複雑に成りつつある。結果として、コンポーネント間の結合及び通信のためのインターコネクトアーキテクチャも、バンド幅要件が最適なコンポーネント動作のために満足されることを確かにするよう、複雑さが増している。更には、異なる市場区分は、市場のニーズに適するよう異なる態様のインターコネクトアーキテクチャを要求する。例えば、サーバはより高い性能を必要とし、一方、モバイルエコシステム(ecosystem)は、時々、電力節約のために全体の性能を犠牲にすることができる。けれども、最大限の電力節約とともに可能な限り高い性能を提供することは、ほとんどの組織の唯一の目的である。以下で、多数のインターコネクトが論じられる。これらは、本願で記載される発明の態様から潜在的に恩恵を受けうる。
【0021】
図1を参照すると、マルチコアプロセッサを含むコンピューティングシステムについてのブロック図の実施形態が表されている。プロセッサ100は、マイクロプロセッサ、組み込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システム・オン・チップ(SoC)、又はコードを実行するための他のデバイスのような、如何なるプロセッサ又はプロセッシングデバイスも含む。プロセッサ100は、一実施形態において、少なくとも2つのコア、コア101及び102を含む。それらは、非対称コア又は対称コア(表されている実施形態)を含んでよい。なお、プロセッサ100は、対称又は非対称であってよいプロセッシング要素をいくつでも含んでよい。
【0022】
一実施形態において、プロセッシング要素は、ソフトウェアスレッドをサポートするハードウェア又はロジックを指す。ハードウェアプロセッシング要素の例は、スレッドユニット、スレッドスロット、スレッド、プロセスユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、及び/又は実行状態若しくはアーキテクチャ状態のようなプロセッサの状態を保持することができるあらゆる他の要素を含む。すなわち、プロセッシング要素は、一実施形態において、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、又は他のコードのようなコードと独立して関連することができる如何なるハードウェアも指す。物理プロセッサ(又はプロセッサソケット)は、通常、コア又はハードウェアスレッドのような他のプロセッシング要素をいくつでも含むことができる集積回路を指す。
【0023】
コアは、しばしば、独立したアーキテクチャ状態を維持することができる集積回路上に位置するロジックを指し、夫々の、独立して維持されるアーキテクチャ状態は、少なくともいくつかの専用の実行リソースに関連する。コアと対照的に、ハードウェアスレッドは、通常、独立したアーキテクチャ状態を維持することができる集積回路上に位置する如何なるロジックも指し、独立して維持されるアーキテクチャ状態は、実行リソースへのアクセスを共有する。明らかなように、特定のリソースが共有され、他がアーキテクチャ状態に専用である場合に、ハードウェアスレッド及びコアの用語間の境界線は重なり合う。それでもしばしば、コア及びハードウェアスレッドは、個別の論理プロセッサとしてオペレーティングシステムによって見なされ、オペレーティングシステムは、夫々の論理プロセッサにおいて動作を個々にスケジューリングすることができる。
【0024】
図1に表される物理プロセッサ100は、2つのコア、すなわち、コア101及び102を含む。ここで、コア101及び102は、対称コア、すなわち、同じ構成、機能ユニット、及び/又はロジックを備えたコア、と見なされる。他の実施形態では、コア101は、アウト・オブ・オーダー(out-of-order)プロセッサコアを含み、一方、コア102は、イン・オーダー(in-order)プロセッサコアを含む。なお、コア101及び102は、ネイティブコア(native core)、ソフトウェアにより管理されるコア(software managed core)、ネイティブな命令セットアーキテクチャ(ISA;Instruction Set Architecture)を実行するよう適応されたコア、変換された命令セットアーキテクチャ(ISA)を実行するよう適応されたコア、協調設計されたコア(co-designed core)、又は他の既知のコアのような、あらゆるタイプのコアから個々に選択されてよい。異種コア環境(すなわち、非対称コア)において、バイナリ変換のような何らかの形の変換は、一方又は両方のコアでコードをスケジューリング又は実行するために利用されてよい。けれども、議論を進めるよう、コア101に表されている機能ユニットは、コア102におけるユニットが表されている実施形態で同じように動作するとして、以下で更に詳細に記載される。
【0025】
表されているように、コア101は、2つのハードウェアスレッド101a及び101bを含む。それらは、ハードウェアスレッドスロット101a及び101bとも呼ばれてよい。従って、オペレーティングシステムのようなソフトウェアエンティティは、一実施形態において、プロセッサ100を4つの別個のプロセッサ、すなわち、4つのソフトウェアスレッドを同時に実行することができる4つの論理プロセッサ又はプロセッシング要素、と潜在的に見なす。先に暗に示されたように、第1スレッドは、アーキテクチャ状態レジスタ101aに関連し、第2スレッドは、アーキテクチャ状態レジスタ101bに関連し、第3スレッドは、アーキテクチャ状態レジスタ102aに関連し、第4スレッドは、アーキテクチャ状態レジスタ102bに関連する。ここで、アーキテクチャ状態レジスタ(101a、101b、102a及び102b)の夫々は、上述されたように、プロセッシング要素、スレッドスロット、又はスレッドユニットと呼ばれてよい。表されているように、アーキテクチャ状態レジスタ101aは、アーキテクチャ状態レジスタ101bにおいて複製されるので、個々のアーキテクチャ状態/コンテキストは、論理プロセッサ101a及び論理プロセッサ101bのために記憶されることが可能である。コア101において、アロケータ(allocator)及びリネーマ(renamer)ブロック130における命令ポインタ及び残りのロジックのような、他の同様のリソースも、スレッド101a及び101bのために複製されてよい。リオーダー(reorder)/リタイアメント(retirement)ユニット135におけるリオーダーバッファ、ILTB120、ロード/ストアバッファ、及びキューのような、いくつかのリソースは、パーティショニングを通じて共有されてよい。汎用内部レジスタ、ページ−テーブル・ベース・レジスタ(page-table base register(s))、低レベルデータキャッシュ及びデータTLB150、実行ユニット140、並びにアウト・オブ・オーダーユニット135の部分のような、他のリソースは、潜在的に完全に共有される。
【0026】
プロセッサ100は、しばしば、他のリソースを含み、それらの他のリソースは、完全に共有されるか、パーティショニングを通じて共有されるか、又はプロセッシング要素に専用であってよい。図1には、プロセッサの実例となる論理ユニット/リソースを伴う純粋に例となるプロセッサの実施形態が表されている。プロセッサは、それらの機能ユニットのいずれも含んで、又は省略してよく、更には、表されていない如何なる他の既知の機能ユニット、ロジック、又はユニットも含んでよい点に留意されたい。表されているように、コア101は、簡略化された、代表的なアウト・オブ・オーダー(OOO;Out-Of-Order)プロセッサコアを含む。しかし、イン・オーダープロセッサが別の実施形態では利用されてよい。OOOコアは、実行される/取られるブランチを予測するブランチターゲットバッファ(branch target buffer)120と、命令のためのアドレス変換エントリを記憶する命令−変換バッファ(I−TLB;InstructionTransLation Buffer)120とを含む。
【0027】
コア101は、フェッチユニット120へ結合され、フェッチされた要素を復号する復号化モジュール125を更に含む。フェッチロジックは、一実施形態において、スレッドスロット101a、101bに夫々関連する個別的なシーケンサを含む。通常、コア101は、プロセッサ100で実行可能な命令を定義/指定する第1ISAに関連する。しばしば、第1ISAの部分であるマシンコード命令は、実行される命令又は操作を参照/指定する命令の部分(オペコード(opcode)と呼ばれる。)を含む。復号化ロジック125は、それらのオペコードからそれらの命令を認識し、第1ISAによって定義されている処理のためのパイプラインにおいて、復号された命令を伝える回路構成を含む。例えば、以下で更に詳細に論じられるように、復号器125は、一実施形態において、トランザクション命令のような、特定の命令を認識するよう設計又は適応されたロジックを含む。復号器125による認識の結果として、アーキテクチャ又はコア101は、適切な命令に関連するタスクを実行するよう、特定の、予め定義された操作を行う。本願で記載されるタスク、ブロック、操作、及び方法のいずれも、単一の又は複数の命令(それらのうちのいくつかは、新しい又は古い命令であってよい。)に応答して実施されてよいことを留意することは重要である。復号器126は、一実施形態において、同じISA(又はそのサブセット)を認識する点に留意されたい。代替的に、異種コア環境では、復号器126は、第2ISA(第1ISAのサブセット、又は相異なるISA)を認識する。
【0028】
一例において、アロケータ及びリネーマブロック130は、命令処理結果を記憶するレジスタファイルのようなリソースをリザーブするアロケータを含む。なお、スレッド101a及び101bは、アウト・オブ・オーダー実行が潜在的に可能であり、アロケータ及びリネーマブロック130は、命令結果を追跡するリオーダーバッファのような他のリソースもリザーブする。ユニット130は、プログラム/命令参照レジスタをプロセッサ100内部の他のレジスタへリネーミングするレジスタリネーマを更に含んでよい。リオーダー/リタイアメントユニット135は、のリオーダーバッファ、ロードバッファ、及びストアバッファのような、アウト・オブ・オーダー実行及びアウト・オブ・オーダー実行された命令のその後のイン・オーダーリタイアメントをサポートするコンポーネントを含む。
【0029】
スケジューラ及び実行ユニットブロック140は、一実施形態において、実行ユニットにおいて命令/操作をスケジューリングするスケジューラユニットを含む。例えば、浮動小数点命令は、利用可能な浮動小数点実行ユニットを有している実行ユニットのポートにおいてスケジューリングされる。実行ユニットに関連するレジスタファイルも、情報命令処理結果を記憶するために含まれる。例となる実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、ストア実行ユニット、及び他の既知の実行ユニットを含む。
【0030】
下位レベルデータキャッシュ及びデータ変換バッファ(D−TLB;Data-TransLation Buffer)150は、実行ユニット140へ結合されている。データキャッシュは、メモリコヒーレンシ状態に潜在的に保たれる、データオペランド(operand(s))のような、最近使用/演算された要素を記憶する。D−TLBは、最近の、仮想/線形アドレスから物理アドレスへの変換を記憶する。具体例として、プロセッサは、物理メモリを複数の仮想ページに分けるページテーブル構造を含んでよい。
【0031】
ここで、コア101及び102は、オンチップ・インターフェイス110に関連する第2レベルキャッシュのような、上位レベルの又は更なるキャッシュへのアクセスを共有する。更なる(further-out)又は上位レベル(higher-level)は、実行ユニットから更に遠ざかる又は大きくなるキャッシュレベルを指す点に留意されたい。一実施形態において、上位レベルキャッシュは、第2又は第3レベルデータキャッシュのような、ラストレベル(last-level)データキャッシュ、すなわち、プロセッサ100上のメモリ階層における最後のキャッシュである。なお、上位レベルキャッシュは、それが命令キャッシュに関連するか又は命令キャッシュを含んでよいとして、そのように制限されない。トレースキャッシュ、すなわち、命令キャッシュの一種は、代わりに、最近復号されたトレースを記憶するために復号器125の後に結合されてよい。ここで、命令は、潜在的に、多数のマイクロ命令(マイクロオペレーション)に復号してよいマクロ命令(すなわち、復号器によって認識される一般的な命令)を指す。
【0032】
表されている構成において、プロセッサ100は、オンチップ・インターフェイスモジュール110を更に含む。これまで、メモリコントローラ(以下で更に詳細に記載される。)は、プロセッサ100の外でコンピューティングシステムにおいて含まれてきた。このシナリオでは、オンチップ・インターフェイス110は、システムメモリ175、チップセット(メモリ175へ接続するメモリコントローラハブと、周辺機器を接続するI/Oコントローラハブとをしばしば含む。)、メモリコントローラハブ、ノースブリッジ、又は他の集積回路のような、プロセッサ100の外にあるデバイスと通信する。そして、このシナリオでは、バス105は、マルチドロップバス、ポイント・ツー・ポイントインターコネクト、シリアルインターコネクト、パラレルバス、コヒーレント(例えば、キャッシュコヒーレント)バス、階層プロトコルアーキテクチャ、差動バス、及びGTLバスのような、あらゆる既知のインターコネクトも含んでよい。
【0033】
メモリ175は、プロセッサ100に専用であるか、又はシステム内の他のデバイスと共有されてよい。メモリ175のタイプの一般的な例は、DRAM、SRAM、不揮発性(Non-Volatile)メモリ(NVメモリ)、及び他の既知の記憶デバイスを含む。デバイス180は、メモリコントローラハブへ結合されるグラフィックアクセラレータ、プロセッサ又はカード、I/Oコントローラハブへ結合されるデータストレージ、無線トランシーバ、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ、又は他の既知のデバイスを含んでよい。
【0034】
なお、近年、より多くのロジック及びデバイスが単一のダイ上に集積されるにつれて(例えば、SoC)、それらのデバイスの夫々は、プロセッサ100において組み込まれてよい。例えば、一実施形態において、メモリコントローラハブは、プロセッサ100と同じパッケージ及び/又はダイにある。ここで、コア110の部分(オンコア部分)は、メモリ175又はグラフィクスデバイス180のような他のデバイスとインターフェイス接続するための1つ以上のコントローラを含む。そのようなデバイスとインターフェイス接続するためのインターコネクト及びコントローラを含む構成は、オンコア(on-core)(又はアンコア(un-core)構成)としばしば呼ばれる。一例として、オンチップ・インターフェイス110は、オンチップ通信のためのリングインターコネクトと、オフチップ通信のための高速シリアル・ポイント・ツー・ポイントリンクとを含む。その上、SoC環境では、ネットワークインターフェイス、コプロセッサ、メモリ175、グラフィクスプロセッサ180、及びあらゆる他の既知のコンピュータデバイス/インターフェイスのような、更に多くのデバイスが、高機能且つ低電力消費を有しながら小さなフォームファクタを提供するよう単一のダイ又は集積回路上に集積されてよい。
【0035】
一実施形態において、プロセッサ100は、本願で記載される装置及び方法をサポートするよう、あるいは、それらとインターフェイス接続するよう、アプリケーションコード176をコンパイルし、変換し、及び/又は最適化するコンパイラ、最適化、及び/又は変換コード177を実行可能である。コンパイラは、ソーステキスト/コードを目標のテキスト/コードへと変換するプログラム又はプログラムの組をしばしば含む。通常、コンパイラによるプログラム/アプリケーションコードのコンパイルは、高度なプログラミング言語コードを低水準のマシン又はアセンブリ言語コード変換するよう多数のフェーズ及びパスにおいて行われる。けれども、単一パスコンパイラが、簡単なコンパイルのために依然として利用されてよい。コンパイラは、如何なる既知のコンパイル技術も利用し、字句解析、前処理、パーシング、意味解析、コード生成、コード変換、及びコード最適化のような、如何なる既知のコンパイラ演算も実施してよい。
【0036】
より大規模なコンパイラは、多数のフェーズをしばしば含むが、ほとんどの場合に、それらのフェーズは2つの一般的なフェーズ内に含まれる:(1)フロントエンド、すなわち、一般的に、統語処理、意味処理、及び何らかの変換/最適化が行われてよい、及び(2)バックエンド、すなわち、一般的に、解析、変換、最適化、及びコード生成が行われる。いくつかのコンパイラは、コンパイラのフロントエンド及びバックエンドの間の線引きのあいまいさを表すミドルを指す。結果として、コンパイラの挿入、関連付け、生成、又は他の操作への言及は、のフェーズ又はパスに加えて、コンパイラのあらゆる他の既知のフェーズ又はパスのいずれにおいても行われてよい。実例となる例として、コンパイラは、コンパイルのフロントエンドフェーズにおける呼び出し/演算の挿入、及び次いで、変換フェーズの間の下位レベルのコードへの呼び出し/演算の変換のように、潜在的に、演算、呼び出し、関数などをコンパイルの1つ以上のフェーズに挿入する。動的コンパイルの間、コンパイラコード又は動的最適化コードは、そのような演算/呼び出しを挿入するとともに、ランタイムの間に実行のためにコードを最適化してよい点に留意されたい。具体的な、実例となる例として、バイナリコード(既にコンパイルされたコード)がランタイムの間に動的に最適化されてよい。ここで、プログラムコードは、動的最適化コード、バイナリコード、又はそれらの組み合わせを含んでよい。
【0037】
コンパイラと同様に、バイナリ変換器のような変換器は、コードを最適化及び/又は変換するよう静的又は動的いずれかにおいてコードを変換する。従って、コード、アプリケーションコード、プログラムコード、又は他のソフトウェア環境の実行への言及は、(1)プログラムコードをコンパイルするための、ソフトウェア構造を保つための、他の操作を実行するための、コードを最適化するための、又はコードを変換するための、動的又は静的な、コンパイラプログラム、最適化コードオプティマイザ、又は変換器の実行、(2)最適化/コンパイルされたアプリケーションコードのような演算/呼び出しを含むメインプログラムコードの実行、(3)ソフトウェア構造を保つための、他のソフトウェア関連操作を実行するための、又はコードを最適化するための、メインプログラムコードに関連した、ライブラリのような他のプログラムコードの実行、又は(4)それらの組み合わせを指してよい。
【0038】
1つのインターコネクトファブリックアーキテクチャは、PCIeアーキテクチャを含む。PCIeの主たる目標は、異なるベンダーからのコンポーネント及びデバイスが、複数の市場区分(クライアント(デスクトップ及びモバイル)、サーバ(標準及び企業)、及び組み込み通信デバイス)にわたるオープンアーキテクチャにおいて相互運用することを可能にすることである。PCIエクスプレスは、多種多様な将来のコンピューティング及び通信プラットフォームのために定義された高性能の汎用I/Oインターコネクトである。いくつかのPCI属性、例えば、その利用モデル、ロード/ストアアーキテクチャ、及びソフトウェアインターフェイスは、その改訂を通じて保たれてきた一方で、従前のパラレルバス実装は、高度にスケーラブルな完全シリアルインターフェイスによって置換されている。PCTエクスプレスの新しいバージョンは、新しい性能レベル及び機能を実現させるために、ポイント・ツー・ポイントインターコネクト、スイッチベースのテクノロジ、及びパケット化されたプロトコルにおける進歩を利用する。パワーマネージメント、クオリティ・オブ・サービス(QoS;Quality of Service)、ホットプラグ/ホットスワップサポート、データインテグリティ、及びエラーハンドリングは、PCTエクスプレスによってサポートされる拡張機能の一部である。
【0039】
図2を参照すると、コンポーネントの組を相互接続するポイント・ツー・ポイントリンクから成る構造の実施形態が表されている。システム200は、コントローラハブ215へ結合されているプロセッサ205及びシステムメモリ210を含む。プロセッサ205は、マイクロプロセッサ、ホストプロセッサ、組み込みプロセッサ、コプロセッサ、又は他のプロセッサのような、如何なるプロセッシング要素も含む。プロセッサ205は、フロントサイドバス(FSB;Front-Side Bus)206を通じてコントローラハブ215へ結合されている。一実施形態において、FSB206は、後述されるようにシリアル・ポイント・ツー・ポイントインターコネクトである。他の実施形態では、リンク206は、異なるインターコネクト標準に従うシリアル差動インターコネクトアーキテクチャを含む。
【0040】
システムメモリ210は、システム200内のデバイスによってアクセス可能なランダムアクセスメモリ(RAM;Random Access Memory)、不揮発性(NV)メモリ、又は他のメモリのような、如何なるメモリデバイスも含む。システムメモリ210は、メモリインターフェイス216を通じてコントローラハブ215へ結合されている。メモリインターフェイスの例は、ダブルデータレート(DDR;Double-Data Rate)メモリインターフェイス、デュアルチャネルDDRメモリインターフェイス、及び動的(Dynamic)RAM(DRAM)メモリインターフェイスを含む。
【0041】
一実施形態において、コントローラハブ215は、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe又はPCIE;Peripheral Component Interconnect Express)相互接続ヒエラルキにおけるルートハブ、ルートコンプレックス、又はルートコントローラである。コントローラハブ215の例は、チップセット、メモリコントローラハブ(MCH;Memory Controller Hub)、ノースブリッジ、インターコネクトコントローラハブ(ICH;Interconnect Controller Hub)、サウスブリッジ、及びルートコントローラ/ハブを含む。しばしば、語「チップセット」は、2つの、物理的に別々のコントローラハブ、すなわち、インターコネクトコントローラハブ(ICH)へ結合されているメモリコントローラハブ(MCH)、を指す。現在のシステムは、プロセッサ205とともに集積されたMCHをしばしば含み、一方、コントローラハブ215は、後述されるように、同様にして、I/Oデバイスと通信する点に留意されたい。いくつかの実施形態において、ピア・ツー・ピアルーティングは、任意に、ルートコンプレックス215を通じてサポートされる。
【0042】
ここで、コントローラハブ215は、シリアルリンク219を通じてスイッチ/ブリッジ220へ結合されている。入出力(I/O)モジュール217及び221は、インターフェイスポート217及び221とも呼ばれてよく、コントローラハブ215とスイッチ220との間の通信を提供する階層プロトコルスタックを含む/実装する。一実施形態において、複数のデバイスがスイッチ220へ結合されることが可能である。
【0043】
スイッチ/ブリッジ220は、デバイス225からコントローラハブ215に対して上流へ、すなわち、ルートコンプレックスの方へヒエラルキの上へ、そして、プロセッサ205又はシステムメモリ210からデバイス225へ対して下流へ、すなわち、ルートコントローラから離れてヒエラルキの下へ、パケット/メッセージを送る。スイッチ220は、一実施形態において、複数の仮想PCI−to−PCIブリッジデバイスの論理アセンブリと呼ばれる。デバイス225は、I/Oデバイス、ネットワークインターフェイスコントローラ(NIC;Network Interface Controller)、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、記憶デバイス、CD/DVD ROM、モニタ、プリンタ、マウス、キーボード、ルータ、ポータブル記憶デバイス、ファイヤワイヤ(Firewire)デバイス、ユニバーサルシリアルバス(USB;Universal Serial Bus)デバイス、スキャナ、及び他の入出力デバイスのような、電子システムへ結合されるあらゆる内部又は外部のデバイス又はコンポーネントも含む。しばしば、PCIe専門用語において、そのようなデバイスはエンドポイントと呼ばれる。具体的に図示されていないが、デバイス225は、レガシー又は他のバージョンのPCIデバイスをサポートするPCIe−to−PCI/PCI−Xデバイスを含んでよい。PCIeにおけるエンドポイントデバイスは、レガシー、PCIe、又はルートコンプレックス統合エンドポイントとしてしばしば分類される。
【0044】
グラフィクスアクセラレータ230も、シリアルリンク232を通じてコントローラハブ215へ結合されている。一実施形態において、グラフィクスアクセラレータ230は、ICHへ結合されているMCHへ結合されている。スイッチ220、及び然るにI/Oデバイス225は、次いで、ICHへ結合されている。I/Oモジュール231及び218も、グラフィクスアクセラレータ230とコントローラハブ215との間の通信のために階層プロトコルスタックを実装する。先のMCHの説明と同様に、グラフィクスコントローラ又はグラフィクスアクセラレータ230自体がプロセッサ205に組み込まれてよい。
【0045】
図3を参照すると、階層プロトコルスタックの実施形態が表されている。階層プロトコルスタック300は、クイック・パス・インターコネクト(QPI;Quick Path Interconnect)スタック、PCIeスタック、次世代高性能コンピューティングインターコネクトスタック、又は他の階層スタックのような、如何なる形の階層通信スタックも含む。図2乃至5を参照して直ぐ後に述べられる議論は、PCIeスタックに関するものであるが、同じ概念は、他のインターコネクトスタックに適用されてよい。一実施形態において、プロトコルスタック300は、トランザクションレイヤ305、リンクレイヤ310、及び物理レイヤ320を含むPCIeプロトコルスタックである。インターフェイスは、通信プロトコルスタック300として表されてよい。通信プロトコルスタックとしての表現は、プロトコルスタックを実装する/含むモジュール又はインターフェイスとも呼ばれてよい。
【0046】
PCIエクスプレスは、コンポーネント間で情報をやり取りするためにパケットを使用する。パケットは、送信コンポーネントから受信コンポーネントへ情報を運ぶようトランザクションレイヤ305及びデータリンクレイヤ310において形成される。送信されるパケットが他のレイヤを通る場合に、それらは、それらのレイヤでパケットを扱うために必要な追加情報により拡張される。受信側では、逆行プロセスが起こり、パケットは、それらの物理レイヤ320の表現からデータリンクレイヤ310の表現へ、そして、最終的に(トランザクションレイヤパケットのために)、受信デバイスのトランザクションレイヤ305によって処置され得る形へ変換される。
【0047】
一実施形態において、トランザクションレイヤ305は、デバイスのプロセッシングコアとインターコネクトアーキテクチャ(例えば、データリンクレイヤ310及び物理レイヤ320)との間のインターフェイスを提供する。これに関して、トランザクションレイヤ305の主たる責務は、パケット(すなわち、トランザクションレイヤパケット、すなわち、TLP(Transaction Layer Packet(s)))のアセンブリ及びディスアセンブリである。トランザクションレイヤ305は、通常、TLPのためのクレジットベースのフロー制御を管理する。PCIeは、分割トランザクション(split transactions)、すなわち、時間によって分けられた要求及び応答を有するトランザクションを実装して、対象のデバイスが応答のためにデータを集める間にリンクが他のトラフィックを運ぶことを可能にする。
【0048】
加えて、PCIeは、クレジットベースのフロー制御を利用する。このスキームでは、デバイスは、トランザクションレイヤ305における受信バッファの夫々についてのクレジットの最初の量をアドバタイズする。コントローラハブのような、リンクの反対側にある外部デバイスは、夫々のTLPによって消費されるクレジットの数をカウントする。トランザクションは、トランザクションがクレジット制限を超えない場合に送信されてよい。応答を受信すると、クレジットの量はリストアされる。クレジットスキームの利点は、クレジット制限に直面しないという条件で、クレジットのリターンのレイテンシーが性能に影響を及ぼさないことである。
【0049】
一実施形態において、4つのトランザクションアドレス空間は、構成アドレス空間、メモリアドレス空間、入出力アドレス空間、及びメッセージアドレス空間を含む。メモリ空間トランザクションは、メモリをマッピングされた位置へ/からデータを転送するためのリード要求及びライト要求のうちの1つ以上を含む。一実施形態において、メモリ空間トランザクションは、2つの異なるアドレスフォーマット、例えば、32ビットアドレスのようなショートアドレスフォーマット、又は64ビットアドレスのようなロングアドレスフォーマット、を使用することが可能である。構成空間トランザクションは、PCIeデバイスの構成空間(configuration space)にアクセスするために使用される。構成空間へのトランザクションは、リード要求及びライト要求を含む。メッセージ空間トランザクション(又は、単に、メッセージ)は、PCIeエージェント間のインバンド通信をサポートするよう定義される。
【0050】
従って、一実施形態において、トランザクションレイヤ305は、パケットヘッダ/ペイロード306をアセンブルする。現在のパケットヘッダ/ペイロードのためのフォーマットは、PCIe規格ウェブサイトにあるPCIe規格において見つけられ得る。
【0051】
直ちに図4を参照すると、PCIeトランザクション記述子の実施形態が表されている。一実施形態において、トランザクション記述子400は、トランザクション情報を運ぶメカニズムである。これに関して、トランザクション記述子400は、システムにおけるトランザクションの識別をサポートする。他の見込まれる使用は、デフォルトのトランザクションの順序付けの変更及びトランザクションとチャネルとの関連付けを追跡することを含む。
【0052】
トランザクション記述子400は、グローバル識別子フィールド402、属性フィールド404、及びチャネル識別子フィールド406を含む。表されている例では、グローバル識別子フィールド402は、ローカルトランザクション識別子フィールド408及びソース識別子フィールド410を有するように表されている。一実施形態において、グローバル識別子フィールド402は、全ての未解決の要求にとって一意である。
【0053】
1つの実施に従って、ローカルトランザクション識別子フィールド408は、要求元のエージェントによって生成されるフィールドであり、それは、その要求元のエージェントのために完了を求める全ての未解決の要求にとって一意である。更には、この例では、ソース識別子フィールド410は、PCIeヒエラルキ内で要求元のエージェントを一意に識別する。然るに、ソース識別子フィールドとともに、ローカルトランザクション識別子フィールド408は、ヒエラルキ領域内のトランザクションのグローバル識別を提供する。
【0054】
属性フィールド404は、トランザクションの特性及び関係を特定する。これに関連して、属性フィールド404は、潜在的に、トランザクションのデフォルトのハンドリングを変更することを可能にする追加情報を提供するために使用される。一実施形態において、属性フィールド404は、プライオリティ(priority)フィールド412、予備(reserved)フィールド414、順序付け(ordering)フィールド416、及びスヌープなし(no-snoop)フィールド418を含む。ここで、プライオリティサブフィールド412は、プライオリティをトランザクションに割り当てるようイニシエータによって変更されてよい。予備属性フィールド414は、将来、又はベンダーにより定義される使用のために、使わずに残しておかれる。プライオリティ又はセキュリティ属性を使用する見込まれる使用モデルは、予備属性フィールドを用いて実装されてよい。
【0055】
この例では、順序付け属性フィールド416は、デフォルトの順序付け規則を変更し得る順序付けのタイプを運ぶ任意情報を供給するために使用される。一例となる実施に従って、“0”の順序付け属性は、デフォルトの順序付け規則が適用されることを表し、“1”の順序付け属性は、緩和された順序付け(relaxed ordering)を表し、このとき、ライトは同じ方向でライトを渡すことができ、リード完了は同じ方向でライトを渡すことができる。スヌープ属性フィールド418は、トランザクションがスヌープされるかどうかを決定するために利用される。図示されるように、チャネル識別子フィールド406は、トランザクションが関連付けられているチャネルを識別する。
【0056】
リンクレイヤ310は、データリンクレイヤ310とも呼ばれ、トランザクションレイヤ305と物理レイヤ320との間の中間段として働く。一実施形態において、データリンクレイヤ310の責務は、2つのコンポーネント間でトランザクションレイヤパケット(TLP)をやり取りする信頼できるメカニズムを提供することである。データリンクレイヤ310の一方の側は、トランザクションレイヤ305によってアセンブルされたTLPを受け入れ、パケットシーケンス識別子311、すなわち、識別番号又はパケット番号を適用し、エラー検出コード、すなわち、CRC312を計算及び適用し、そして、物理レイヤ320を介した外部デバイスへの送信のために、変更されたTLPを物理レイヤ320へ渡す。
【0057】
一実施形態において、物理レイヤ320は、論理サブブロック321及び電気サブブロック322を含み、パケットを外部デバイスへ物理的に送信する。ここで、論理サブブロック321は、物理レイヤ320の“デジタル”機能に関与する。これに関して、論理サブブロックは、物理サブブロック322による送信のために発信情報を準備する送信セクションと、受信された情報をリンクレイヤ310へ渡す前に識別して準備する受信セクションとを含む。
【0058】
物理ブロック322は、送信器及び受信器を含む。送信器は、論理サブブロック321によってシンボルを供給され、それを送信器は順番に並べて外部デバイスへ送信する。受信器は、順番に並べられたシンボルを外部デバイスから供給され、受信された信号をビットストリームに変換する。ビットストリームは、非直列化され、論理サブブロック321へ供給される。一実施形態において、8b/10b送信コードが用いられ、10ビットシンボルが送信/受信される。ここで、特別なシンボルは、フレーム323を用いてパケットを組み立てるために使用される。加えて、一例において、受信器はまた、入来する直列ストリームから回復されたシンボルクロックを供給する。
【0059】
上述されたように、トランザクションレイヤ305、リンクレイヤ310、及び物理レイヤ320は、PCIeプロトコルスタックの具体的な実施形態を参照して説明されているが、階層プロトコルスタックはそのように制限されない。実際に、如何なる階層プロトコルも含まれてよい/実装されてよい。一例として、階層プロトコルとして表されるポート/インターフェイスは:(1)パケットをアセンブルする第1レイヤ、すなわち、トランザクションレイヤ;(2)パケットを順序付ける第2レイヤ、すなわち、リンクレイヤ;及び(3)パケットを送信する第3レイヤ、すなわち、物理レイヤを含む。具体例として、QPI階層プロトコルが利用される。
【0060】
次に図5を参照すると、PCIeシリアル・ポイント・ツー・ポイント・ファブリックの実施形態である。PCIeシリアル・ポイント・ツー・ポイントリンクの実施形態が表されているが、シリアル・ポイント・ツー・ポイントリンクはそのように制限されず、それは、シリアルデータを送信する如何なる伝送経路も含む。図示されている実施形態では、基本PCIeリンクは、2つの、低電圧の、差動駆動される信号対、すなわち、送信対506/511及び受信対512/507を含む。然るに、デバイス505は、データをデバイス510へ送信する送信ロジック506と、データをデバイス510から受信する受信ロジック507とを含む。言い換えれば、2つの送信経路、すなわち、経路516及び517、並びに2つの受信経路、すなわち、経路518及び519がPCIeリンクに含まれている。
【0061】
伝送経路は、電送線路、銅線、光線、無線通信チャネル、赤外線通信リンク、又は他の通信経路のような、データを伝送する如何なる経路も指す。2つのデバイス、例えば、デバイス505及びデバイス510、の間の接続は、リンク(例えば、リンク515)と呼ばれる。リンクは1つのレーンをサポートしてよく、各レーンは差動信号対の組(一対は送信用、もう一対は受信用。)を表す。バンド幅を調整するよう、リンクは、×Nによって表される複数のレーンを統合する。Nは、如何なるサポートされるリンク幅(例えば、1、2、4、8、12、16、32、64又はより広い)でもある。
【0062】
差動対は、差動信号を送信するための2つの伝送経路、例えば、ライン516及び517を指す。一例として、ライン516が低電圧レベルから高電圧レベルへ切り替わるとき(すなわち、立ち上がり)、ライン517は、高論理レベルから低論理レベルへ駆動する(すなわち、立ち下がり)。差動信号は、潜在的に、より良い電気特性、例えば、より良い信号インテグリティ、すなわち、交差結合(cross-coupling)、電圧オーバーシュート/アンダーシュート、リンギング、など、を示す。これは、より高速な伝送周波数を可能にする、より良いタイミング窓を可能にする。
【0063】
次に図6を参照すると、実施形態に従うSoC設計の実施形態が表されている。具体的な、実例となる例として、SoC2000はユーザ機器(UE;User Equipment)に含まれている。一実施形態において、UEは、携帯電話機、スマートフォン、タブレット、超薄型ノートブック、広帯域アダプタを備えたノートブック、又はあらゆる他の同様の通信デバイスのような、通信するためにエンドユーザによって使用される如何なるデバイスも指す。しばしば、UEは、GSM(登録商標)ネットワークにおける移動局(MS;Mobile Station)に事実上対応しうる基地局又はノードへ接続する。
【0064】
ここで、SoC2000は、2つのコア2006及び2007を含む。先の議論と同様に、コア2006及び2007は、インテル社のアーキテクチャコアに基づくプロセッサ、アドバンスド・マイクロ・デバイス(AMD)社のプロセッサ、MIPSに基づくプロセッサ、ARMに基づくプロセッサ設計、又はそれら及びそれらのライセンシー又は採用者のカスタマのような、命令セットアーキテクチャに従ってよい。コア2006及び2007は、キャッシュコントロール2008へ結合され、キャッシュコントロール2008は、システム200の他の部分と通信するようバスインターフェイスユニット2009及びL2キャッシュ2010に関連する。インターコネクト2012は、IOSF、AMBA、又はの他のインターコネクトのような、オンチップ・インターコネクトを含み、潜在的に、ここで記載されている1つ以上の態様を実装する。
【0065】
インターコネクト2012は、加入者識別モジュール(SIM;Subscriber Identity Module)カードとインターフェイス接続するSIM2030、SoC2000を初期化しブートするコア2006及び2007による実行のためのブートコードを保持するブートROM2035、外部メモリ(例えば、DRAM2060)とインターフェイス接続するSDRAMコントローラ2040、不揮発性メモリ(例えば、フラッシュ2065)とインターフェイス接続するフラッシュコントローラ2045、周辺機器とインターフェイス接続するペリフェラルコントローラ2050(例えば、シリアルペリフェラルインターフェイス)、入力(例えば、タッチ対応入力)を表示及び受信するビデオコーデック2020及びビデオインターフェイス2025、グラフィクスに関連した計算を実行するGPU2015などのような、他のコンポーネントへの通信チャネルを提供する。それらのインターフェイスのいずれも、本願で記載される態様を組み込んでよい。
【0066】
加えて、システムは、Bluetooth(登録商標)モジュール2070、3Gモデム2075、GPS2080、及びWi−Fi(登録商標)2085のような、通信のための周辺機器を表す。システムには、電力コントローラ2055も含まれる。上述されたように、UEは通信のためのラジオを含む点に留意されたい。結果として、それらの周辺通信モジュールは、全てが必要とされるわけではない。しかし、UEでは、外部通信のための何らかの形のラジオが含まれるべきである。
【0067】
様々な実施形態において、ハードウェアに基づくビットエラーレート(BER)推定器は、受信器回路内、例えば、受信器のフロントエンド回路内に設けられる。より具体的には、この推定器は、BERを推定するために使用されるエラーが、送信(及び受信)されるデータの知識なしで決定される点で、ブラインド推定器である。別の言い方をすれば、BERは、送信器と受信器との間のループバック経路を使用することなしに、且つ、解析下のデータパターンの先験的知識なしで、盲目的に推定され得る。このBER推定器を用いると、BER測定は、高速インターコネクトが使用可能であるときに実施可能であり、本願で記載されるように、受信器及び/又は送信器の1つ以上のコンポーネントのエラー性能監視及び適応制御を可能にする
【0068】
実施形態において、複数の並列コンパレータ又は硬判定ユニット(本願ではスライサとも呼ばれる。)は夫々、ビットストリームを受信及び生成するために使用されてよい。いくつかの実施形態は2つの並列スライサの使用を考えているが、本発明の適用範囲はこれに関して制限されず、他の場合には、2つよりも多い並列スライサが存在してよいことを理解されたい。
【0069】
これより図7Aを参照すると、確率密度関数のグラフ表示が示されている。影を付けられた領域は、2つのスライサ又は1つのスライサのための特定の基準電圧レベルとともに使用される場合の誤りビットインジケーションの位置を示す。第2のスライサを使用する目的は、第1のスライサに対応するBERを盲目的に推定することである。ブラインドBER推定のための基本原理を理解するよう、電圧信号Vinは、スライサ入力でのサンプリングされた電圧に相当し、この信号は、2つの個別的な確率密度関数(PDF;Probability Density Function)から成る条件付きPDFを有していると考える。なお、2つの個別的なPDFのうちの1つはビット0に対応し、もう1つはビット1に対応する。すなわち、夫々、V0及びV1である(図7Aを参照)。図7Aにおいて影を付けられた領域は、論理1と誤って識別される送信ロジック0と、論理0と誤って識別される送信ロジック1とを示す。BERを測定するよう、論理0と誤って識別される送信ロジック1の数は、そのように誤って分類された論理1に加えられる。この解析において、回復されたビットストリームを生成するスライサのための閾電圧(入来信号が論理0又は1のいずれであるかを判定するために入来電圧と比較される電圧である。)は、Vref1/Vref2と示されている。よって、スライサが基準電圧Vref1/Vref2を夫々有しているとすると、出力部での回復されたビットストリームにおけるBERは、スライサ出力の誤りビット及び誤りなしビットに基づき計算される。
【0070】
図7Bは、2つの並列コンパレータ又はスライサ710及び720を有するBER推定器回路の部分のブロック図である。図示されるように、両方のスライサは、入来アナログ信号(Vin)と、信号から回復されたビットが論理0又は論理1のいずれかであるかを判定するよう入来アナログ信号と比較される異なった基準電圧レベル(Vref1/Vref2)とを受信するよう構成される。スライサ710及び720による、結果として現れる決定は、論理ユニット730へ供給される。論理ユニット730は、排他的ORゲートとして構成されてよい。よって、2つのユニットの決定が一致する場合に、エラーの発生はなく、論理ユニット730の出力はゼロ値(任意)を有し、代わりに、出力が異なっている場合には、これはエラーが発生したこと示し、論理1である。
【0071】
このように、図7A及び7Bから明らかなように、並列スライサから得られるビットストリームは、人工的な誤りを生成するために使用され、誤りビット(論理ユニット730の出力から取られる。)と誤りなしビット(スライサ710、720の出力から取られる。)との間の比を計算することによって、BERは特定の基準電圧レベルVref2について測定される。
【0072】
基準電圧は、基準電圧Vref2がアイの上半分から下半分へ向かうにつれて異なったBER測定を得るよう、第2スライサにおいて適応(例えば、スイープ)されてよい点に留意されたい。図7Aに示される基準電圧Vref1によれば、第1スライサは、Vref2の閾電圧で動作する第2スライサに関連するストリームよりも低いBERを生じさせる。これより、Vref2を用いてBER測定を実施した後に(基準電圧Vref1がVref2よりも低いBERを与える場合)、基準電圧Vref1がVref2に変更されると考える。その場合に、Vref1がより低いBERを生じさせるよう選択されていた場合に第2スライサによって生成された人工的な誤りは実際の誤りとなり、従って、第2スライサを用いて測定されたBERは、Vref2で動作する第1スライサに対応する実際のBERである。別の言い方をすれば、Vref1がVref2よりも低いBERを生じさせる場合に実施されるBER測定は、如何なる種類の教師あり(supervised)技術(ループバック、パターンの先験的知識、など)も用いて実施される第1スライサに対応するBER測定と同じである。なお、Vref2がVref1に近づくにつれて、測定されるBERは0に近くなる。それでも、この領域におけるBERは、Vref2<Vref1(アイの上半分)及びVref2>Vref1(アイの下半分)の場合に、測定データを外挿することによって推定され得る。ガウス雑音が低BER領域に関与する点に留意するならば、BERは、測定されたデータ点をQスケールに変換し、測定されたデータにおいて線形傾向(linear trend)を見つけ、線形な点を外挿し、次いで、外挿されたデータをBERスケールに変換することによって、推定され得る。Qスケール変換は、ガウスPDFの累積分布関数(CDF;Cumulative Density Function)を線形関数として表す方法である点に留意されたい。特に、標準偏差は傾きの逆数であり、ガウス関数の平均は、Q=0であるインターセプト・ポイントで推定される。このようにして、第1スライサに関連するBERは、可変な基準電圧を有する第2スライサを使用することによって、盲目的に推定され得る。完全なアイスキャンは、上述されたのと同じ原理が異なるサンプリング位相について適用される場合に実施され得る。
【0073】
本発明の実施形態を使用すれば、BER推定器は、完全なアイスキャンを実施するために、エラー性能を監視するために、及び/又は許容可能なエラー性能を保ちながら電力消費を管理するために、如何なる高速インターコネクトの物理レイヤでも使用され得る。更には、BER推定器は、電圧及び時間マージンを定量化するために外部デバイス(例えば、ジョイント・テスト・アクション・グループ(JTAG;Joint Test Action Group)インターフェイスを介して結合される。)を用いてBERデータにアクセスする検証ツールとしても使用され得る。更には、高速リンクにおけるコンポーネントの最適化及び設計(例えば、イコライザタップ)のために使用され得る。
【0074】
インターコネクトで使用されるシグナリングスキームに応じて、スライサはシングルエンド又は差動であることができる。シングルエンドの場合に、スライサは、判定閾値としてVrefを使用し、差動スライサは、暗黙的なゼロ判定閾値を補償するためにVoffsetを使用する。
【0075】
ビットストリームd
kにおいて誤りビットを受信する確率は、送信及び受信器の設定/ノイズ、並びにインターコネクトチャネル特性の関数である。全てのそれらの設定及びノイズは、電圧及び時間アイマージンを決定する。
【0076】
これより図8Aを参照すると、本発明の実施形態に従う受信器の部分のブロック図が示されている。実施形態において、受信器800は、高速受信器であり、例えば、所与の入出力(I/O)インターコネクトのような高速リンクに関連する。
【0077】
一般に、受信器800は、自動ゲイン制御(AGC;Automatic Gain Control)回路810を有するデータ経路を含む。AGC回路810は、入来アナログ信号Rxを受信し、信号を適切に整え、それをイコライザ820へ供給する1つ以上の増幅器として構成され得る。別の実施では、イコライザ820は、決定フィードバックイコライザであってよい。結果として現れるイコライズされた信号は、第1スライサ830へ供給される。第1スライサ830は、メインデータ経路スライサであってよい。図示されるように、イコライズされた信号を受信することに加えて、スライサ830は、基準電圧信号(Vref/Voffset)及びクロック信号を更に受信し、それにより、そのサンプリング決定は、クロック信号に従い且つ基準電圧レベルに基づく。図8Aの実施形態では、受信器800は組み込みクロック(embedded clock)アーキテクチャとして構成され、それにより、クロック回復回路835は、イコライザ820から受信されたイコライズされたデータからサンプリングクロックを回復し、このクロック信号をスライサ830へ供給する点に留意されたい。
【0078】
このように、スライサ830は、入来信号のサンプリングされた部分が論理0又は論理1のいずれであるかを判定するよう動作し、この出力を消費ロジック、例えば、プロセッサ又はSoCの1つ以上のインテレクチュアル・プロパティ(IP;Intellectual Property)ロジックブロック(図8Aに図示せず。)へ回復されたビットストリームd
k(clk,Vref/Voffset)として供給する。
【0079】
図8で更に表されるように、その上、スライサ830は、そのビット決定をBER推定器コントローラ850へ供給する。コントローラ850は、イコライザ出力を受信するようやはり構成されている第2又は補助スライサ840へ更に結合されている。加えて、コントローラ850は、異なるスイーピング基準電圧レベル(Vref/Voffset)をスライサ840へ供給する。加えて、本願で記載されるように、スライサ840は、異なるクロック信号、すなわち、コントローラ850から受信される位相信号(スイープされたクロック信号であってよい。)に応答して、そのサンプリングを実施する。次いで、その決定ビットは、BER推定器コントローラ850へ供給される。2つのスライサからの決定ビットに基づき、コントローラ850は、対応するBERを決定する。図8Aの実施形態ではこのような高レベルで示されているが、本発明の適用範囲はこれに関して制限されない点を理解されたい。
【0080】
例えば、受信器は、転送クロック(forwarded clock)アーキテクチャにおいて同様に適応されてよい。そのような実施形態では、追加のクロック経路が受信器内に設けられる点に留意されたい。これは、図8Bに示されている。図8Bは、本発明の他の実施形態に従う受信器のブロック図である。図8Bから分かるように、受信器800′は、受信器800と同じように概して構成されてよい。しかし、入来クロック信号を受信するよう構成される第2AGC回路860と、第2イコライザ870と、スライサ830及びコントローラ850のための適切なクロック信号を生成する遅延ロックループ(Delay Locked Loop)/位相ロックループ(Phase Locked Loop)(DLL/PLL)875とを含む並列クロック経路の存在に留意されたい。
【0081】
図8A及び図8Bの両方のアーキテクチャにおいて、スライサ840は、ビットストリームd
k(φ
i,Vref1/Voffset1)を生成するために使用される。このビットストリームは、クロック位相φ
iで入来アナログ波形Rxをサンプリングし、それを決定閾値Vref1/Voffset1と比較することによって生成される。クロック位相φ
iは、完全アイスキャン動作モードがBER推定器コントローラ850で実施される場合にサンプリング時間をスイープするために位相補間器(図8A及び8Bには図示せず。)を用いてコントローラ850によって生成される。他方で、ビットストリームd
k(clk,Vref/Voffset)は、静的な基準電圧レベル及びクロック位相にあるVref/Voffset及びクロック(回復又は転送)を用いてインターコネクトから回復されたデータである。
【0082】
これより図9を参照すると、実施形態に従うBER推定器コントローラの更なる詳細のブロック図が示されている。図9において、コントローラ850は、図8A及び8Bのコントローラ850に対応する。図9から分かるように、コントローラ850は、2つのスライサからビット決定を受け取って、生成されたエラーを検出するよう構成されるXORロジック852を含む。次いで、第1スライサからの回復されたビット及びXORロジック852の出力は、複数のカウンタを含むカウンタ回路854へ供給される。カウンタ回路854は、制御ユニット855によって制御される。制御ユニット855は、本願で更に記載されるように、位相補間器856を制御し、且つ、エラー閾検出器858から情報を受信するよう更に構成される。
【0083】
clk及びVref/Voffsetは、非常に低いBER(大部分の受信器において今日実装されている時間/電圧アイマージング法によって達成される。)を有するビットストリームを生成するよう選択されると考えると、コントローラ850は、Vref1/Voffset1(アイの下半分についてはVref/Voffsetよりも大きく、アイの上半分についてVref/Voffsetよりも小さい。)及び初期クロック位相φ
iを生成する。カウンタ回路854は、XORロジック852から生成されたエラー及び誤りなしビットの数(図9では、夫々、Errors及びNb)をカウントする複数のリセット可能なカウンタを含む。エラーが所定数Neに達したことがエラー閾検出器858によって決定されるとき、コントローラ850はBERをNe/Nbとして測定し、この測定をQスケールに変換し、そして、それは、前の測定点とともに集められる。次いで、信号は、カウンタ回路854のカウンタをゼロにリセットするよう、カウンタ回路854へ送られる。これと同時に、基準電圧は、新しいBER点を測定するようVref1/Voffset1へ更新(スイープ)される。
【0084】
このプロセスは、コントローラ850がQ測定データにおいて(アイの上半分及び下半分の両方について)線形傾向を検出するまで実施される。次いで、コントローラ850は、所与のクロック位相φ
iでBER測定を完了するよう、Qスケールにおいて線形外挿を実施する。外挿後、コントローラ850は、位相補間器856が新しいクロック位相φ
i+1を生成するための制御信号を生成し、そして、Vref1/Voffset1値は、完全アイスキャン動作モードが有効にされる場合且つBER推定が終了されない場合に再度選択される。完全アイスキャン動作モードのために、のプロセスは、全ての起こり得るサンプリング位相が使用されるまで繰り返される。32から128個の異なった位相の中の一例は、位相補間器回路のアーキテクチャ/技術に応じて使用されてよい。完全アイスキャンが実施された後、Tx/Rxフロントエンドは、BER性能を最適化するよう再調整され得る。なお、BERが非常に低い場合には、異なる動作点が、特定のアイスキャン結果に基づき、電力を低減するため、エラー性能を最適化するため、速度を上げるため、などの目的で選択され得る。このようにして、アイの上半分及び下半分は測定可能であり、BERは、インターコネクトサービスを中断することなしに、電圧及びサンプリング時間に応じて決定され得る。
【0085】
これより図10参照すると、本発明の実施形態に従う方法のフロー図が示されている。図10に示されるように、方法900は、受信器のBER推定器コントローラ又は他のコントローラによって実施されてよい。それは、様々な実施形態において、1つ以上のハードウェア、ソフトウェア、及び/又はファームウェアの適切な組み合わせによって実装されてよい。他の例として、そのようなロジックは、1つ以上のマイクロコントローラとして構成されてよい。
【0086】
図10に表されているように、方法900は、補助スライサのための基準電圧レベル及び初期クロック位相clkを選択することによって開始する(ブロック910)。次に、評価時間に入来アナログ信号を解析した後に、エラーの数がエラー閾値を超えるかどうかが判定される(ダイヤモンド920)。そうでない場合は、現在の基準電圧レベルのサンプリングを継続することがブロック925で起こる。
【0087】
代わりに、エラー閾値を超える場合には、制御はブロック930に渡り、BERが測定され、Qスケールへ変換される。その後に、Qスケール測定点の線形傾向が決定され得るかどうかが判定される。そうでない場合は、基準電圧レベルは調整され(ブロック945)、制御は再びダイヤモンド920へ渡る。
【0088】
代わりに、線形傾向が決定され得る場合には、制御はブロック950に渡り、線形外挿プロセスが実施され、その後に、補助サンプラが動作する位相は、完全アイスキャン動作モードが有効にされる場合(ダイヤモンド960)に調整されてよく、それにより、同じ動作は、全てのそのような所望のサンプリング位相が使用されるまでアイの残り半分について行われ、方法は完了する。基準電圧Vref1に対応するBER推定は、品質Q=Slope×Vref1+Interceptの逆Qスケール変換を行うことによって実施される。このとき、Slope(傾き)及びIntercept(インターセプト)は、Q測定点に対して実施された線形外挿により生じる量である。図10の実施形態ではこのような高レベルで示されているが、本発明の適用範囲はこれに関して制限されない。
【0089】
BER測定はランダムな変数であるから、測定、及び従って、推定、の信頼区間(confidence interval)は、推定において使用されるエラーの数によって決定される。より多くのエラーが、BERをより正確に推定するために観測可能であり、一方で、推定時間はより長くなる。実施形態において、更なる補助スライサを追加することによって、アイ全体をスイープするのにかかる時間を削減することが可能である。これより図11を参照すると、他の実施形態に従うBER推定回路の部分のブロック図が示されている。図11に示されるように、回路801は、コントローラ850(上述されたように構成されてよい。)及び複数の補助スライサ840及び845を含む。メインデータ経路は、説明の簡単のために図11では示されていない点に留意されたい。しかし、メインスライサからの回復されたビットストリームは、クロック信号(どんなふうにでも取得される。)とともに、コントローラ850へ供給されている点に留意されたい。更には、入来アナログ信号Vinは、2つのスライサへ、それらの異なる基準電圧レベルとともに、コントローラ850から受信される同じ位相信号とともに供給される。例えば、図11に示されるように2つの補助スライサを有しているBER推定器は、単一の補助スライサを使用することと比べて、完全スイープを実施するのにかかる時間が2分の1である。図11の実施形態では、VUpは、アイの上半分をスイープするためにスライサ840のための基準電圧として使用され、一方、VLoは、下半分をスライスするためにスライサ845のための基準電圧として使用される。
【0090】
これより図12を参照すると、送信器1010と受信器1020との間の高速I/Oインターフェイス回路1000のブロック図が示されている。図示されるように、送信器1010は、データリンク1015を解して受信器1020へ結合されている。本発明の適用範囲はこれに関して制限されないが、回路1000は、シリアルベースのシリアル・デシリアライザ(SERDES;SERial DESerializer)のような如何なるタイプの高速インターフェイス回路であってもよい。
【0091】
図12に表されるように、受信器1020は、上述されたように、(例えば、複数のスライサ経路の)情報をBER推定器1030へ供給する。このBER推定情報は、受信器制御ロジック1040へ、そしてコマンドリンク1055(実施形態において、異なるインターコネクトであってよい。)を介して送信器制御ロジック1050へ供給されてよい。そのような情報に基づき、送信器1010及び受信器1020のうちの1つ以上は、例えば、電力消費を低減するために及び/又は性能を改善するために、そのコンポーネント設定のうちの1つ以上を適切に制御され得る。特に、イコライザ設定の再調整(いくつかのタップを無効にするか若しくは決定フィードバックイコライザ(DFE;Decision Feedback Equalizer)を無効にすること、連続時間線形イコライザ(CTLE;Continuous Time Linear Equalizer)特性を変更すること、など)又は送信器設定の再調整(振幅の低減、送信器線形イコライザ(TXLE;Transmitter Linear Equalizer)タップの無効化)は、電力を低減するために行われ得る。代替的に、イコライザスキーム/送信器特性の再調整は、オンラインの測定が受け入れられない誤り率を示す場合に、より良いBER性能を達成するために実施され得る。図示されていないが、BER推定器1030で決定されたBER推定情報は、例えば、JTAGインターフェイスを介して、外部ソースへ供給されることが更に可能である点を理解されたい。図12の図ではこのような高レベルで示されているが、多くの変形及び代案が可能である点を理解されたい。
【0092】
このように、本発明の実施形態に従うBER推定器は、インターコネクトのエラー性能における送信器/受信器の設定の影響を探求するために使用され得る。そのようなものとして、BER推定器は、DFEにおけるタップ、TXLE、CTLEにおけるバンド幅、送信器の強さ、などのような設定を最適化するための適応解として使用され得る。
【0093】
本発明の実施形態はそれに関して制限されないが、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)、ユニバーサルシリアルバス(USB)、及びダブルデータレート(DDR)インターコネクトを含みがそれらに制限されない様々な高速インターコネクトの性能を測定するために使用されてよい。そのようなものとして、製品ライフサイクル及び/又はバッテリ電力消費において保証エラー性能内のインターコネクトを確かにする。更に、本発明の実施形態に従うBER推定器は、高速デバイスの検証努力を低減し、更には、そのようなインターコネクトのための適応エンジンを提供して、静かなデータ破損の問題を回避するために許容可能なエラー性能を確保し、そして更には、モバイルデバイスにおける電力消費を削減するのを助けることができる。これは、送信器/受信器設定の適応チューニングが、製造工程におけるばらつき又は動作条件におけるばらつきに起因して失われたマージンを回復するために実施され得るからである。
【0094】
例えば、検証又はデバッグを目的としたループバックに基づくBER試験と対照的に、インターコネクトが運転可能であるときにエラー性能を監視するために使用され得る。これは、ループバックが確立されている間、受信器でのデータは送信器へ返送されるべきであるので、リンクは非テスト情報を転送するために使用され得ないからである。実施形態はまた、外部設備の必要なしに、オンラインBER測定を提供する。外部設備を必要とすることは、非常に複雑であり、高価であり、更には、削除又は定量化することが難しい擾乱を導入し得る。
【0096】
一例において、装置は、入来アナログ信号を受信してサンプリングし、該入来アナログ信号のビットレベルを決定し、ビット決定を消費ロジックへ供給する第1スライサを含むデータ経路と、前記入来アナログ信号を受信してサンプリングし、該入来アナログ信号の第2ビットレベルを決定する第2スライサを含む解析経路と、前記第1スライサの出力及び前記第2スライサの出力を受け取るよう結合され、前記第1スライサの出力及び前記第2スライサの出力に基づき前記データ経路のビットエラーレートを決定するコントローラとを有する。
【0097】
例において、前記コントローラは、前記入来アナログ信号に関する先験的情報なしで前記ビットエラーレートを決定する。
【0098】
例において、前記コントローラは、前記第2スライサの基準電圧レベルを動的にスイープし、前記第1スライサの基準電圧レベルは静的であり、前記コントローラは更に、前記第2スライサの基準位相を動的にスイープし、前記第1スライサの基準クロックは静的である。
【0099】
例において、前記コントローラは、評価インターバルの間に前記入来アナログ信号の入来ビットの数の第1カウントを保持する第1カウンタと、前記評価インターバルの間に前記入来アナログ信号の前記入来ビットにおけるエラーの数の第2カウントを保持する第2カウンタと、前記第1カウント及び前記第2カウントに少なくとも部分的に基づき前記ビットエラーレートを決定するロジックとを有する。
【0100】
例において、前記コントローラは、前記第2スライサの位相を複数の位相へと繰り返し調整し、前記複数の位相について、前記ビットエラーレートに関する線形傾向が決定されるまで、繰り返し、前記第2スライサの基準電圧レベルを調整し、該基準電圧レベルに従って前記ビットエラーレートを推定し、その後に、前記線形傾向を外挿し、対応する位相についての前記ビットエラーレートを決定する制御ユニットを含む。
【0101】
例において、前記コントローラは、当該装置へ結合されて前記入来アナログ信号を当該装置へ送信する送信器へ前記ビットエラーレートを送る。
【0102】
例において、当該装置は、前記ビットエラーレートを送った後に、振幅が低減された前記入来アナログ信号を受信し、前記送信器は、該送信器の電力消費を減らすよう前記入来アナログ信号の振幅を低減する。
【0103】
例において、当該装置は、回路基板上に構成される第1集積回路(IC)を有し、前記送信器は、前記回路基板上に構成され、該回路基板のインターコネクトを介して当該装置へ結合される第2集積回路を有する。
【0104】
例において、前記データ経路は、前記入来アナログ信号を受信して増幅する1つ以上のゲイン制御回路と、前記1つ以上のゲイン制御回路へ結合され、前記増幅された入来アナログ信号をイコライズし、該イコライズされた増幅された入来アナログ信号を前記第1スライサ及び前記第2スライサへ供給するイコライザとを更に有する。
【0105】
例において、制御ロジックは、前記ビットエラーレートに少なくとも部分的に基づき前記1つ以上のゲイン制御回路及び前記イコライザのうちの少なくとも1つを制御する。
【0106】
例において、前記制御ロジックは、前記ビットエラーレートが閾レベルに満たない場合に、前記イコライザの少なくとも一部分を無効にする。
【0107】
例において、前記解析経路は、第3スライサを更に含み、該第3スライサは、前記入来アナログ信号を受信してサンプリングし、該入来アナログ信号の第3ビットレートを決定し、前記コントローラは、前記第3スライサの出力に更に基づき前記データ経路の前記ビットエラーレートを決定する。
【0108】
の装置は、様々な手段を用いて実装されるプロセッサの部分であってよい転移留意されたい。
【0109】
例において、当該装置は、ユーザ機器のタッチ対応デバイスに組み込まれたシステム・オン・チップの部分であってよい。
【0110】
他の例において、システムは、ディスプレイ及びメモリを有し、の例のうちの1つ以上の装置を有している前記プロセッサを含む。
【0111】
更なる他の例において、ビットエラーレートを推定する方法は、受信器の並列経路の第2スライサが入来アナログ信号を受信し、前記第2スライサの複数の基準電圧レベルで前記入来アナログ信号から第2ビットストリームを生成することを可能にし、前記受信器は、前記入来アナログ信号を受信して第1ビットストリームを生成する第1スライサを有するデータ経路を更に含み、コントローラで、前記第1ビットストリーム及び前記第2ビットストリームのうちの1つにおいて前記複数の基準電圧レベルでのエラーの数を決定するよう前記第2ビットストリームを前記第1ビットストリームの対応する部分と比較することに少なくとも部分的に基づき前記複数の基準電圧レベルでビットエラーレートを推定し、前記コントローラによって、前記複数の基準電圧レベルのうちの1つ以上で推定された前記ビットエラーレートに応答して前記データ経路の少なくとも1つのコンポーネントを制御することを有する。
【0112】
例において、当該方法は、前記入来アナログ信号に関する先験的情報なしで前記ビットエラーレートを推定することを更に有する。
【0113】
例において、当該方法は、前記第2スライサの複数の位相で前記複数の基準電圧レベルのうちの少なくともいくつかを動的にスイープすることを更に有し、前記第1スライサの基準電圧レベル及び基準クロックは静的である。
【0114】
例において、当該方法は、前記第2スライサの位相を複数の位相へと繰り返し調整し、前記複数の位相について、前記ビットエラーレートに関する線形傾向が決定されるまで、繰り返し、前記第2スライサの基準電圧レベルを前記複数の基準電圧レベルのうちの1つへ調整し、該基準電圧レベルに従って前記ビットエラーレートを推定し、その後に、前記線形傾向を外挿し、対応する位相についての前記ビットエラーレートを決定することを更に有する。
【0115】
例において、マシン読み出し可能な記憶媒体は、実行される場合に、の例のうちのいずれかの方法を実施するマシン読み出し可能な命令を含む。
【0116】
他の例において、装置は、の例のうちいずれか1つの方法を実施する手段を有する。
【0117】
他の例において、システムは、アナログ信号を送信する送信器と、インターコネクトによって前記送信器へ結合され、前記アナログ信号を受信し、該アナログ信号のデータパターンの先験的知識なしで、システムのランタイムの間に前記アナログ信号から回復されるビットストリームのビットエラーレートを決定する受信器とを有する。
【0118】
例において、前記受信器は、第1基準レベルに従って前記アナログ信号の第1ビット決定を生成するよう前記アナログ信号をサンプリングする第1コンパレータと、第2基準レベルに従って前記アナログ信号の第2ビット決定を生成するよう前記アナログ信号をサンプリングする第2コンパレータと、前記第1ビット決定及び前記第2ビット決定を受け取り、それらに少なくとも部分的に基づき前記ビットエラーレートを決定するコントローラとを有する。
【0119】
例において、前記コントローラは、評価インターバルの間に前記ビットストリームのビットの数の第1カウントを保持する第1カウンタと、前記評価インターバルの間に前記ビットストリームにおけるエラーの数の第2カウントを保持する第2カウンタと、前記第1カウント及び前記第2カウントに少なくとも部分的に基づき前記ビットエラーレートを決定するロジックとを有する。
【0120】
例において、前記コントローラは、前記第2コンパレータの位相を複数の位相へと繰り返し調整し、前記複数の位相について、前記ビットエラーレートに関する線形傾向が決定されるまで、繰り返し、前記第2基準レベルを調整し、該第2基準レベルに従って前記ビットエラーレートを推定し、その後に、前記線形傾向を外挿し、対応する位相についての前記ビットエラーレートを決定する制御ユニットを含む。
【0121】
例において、前記受信器は、前記ビットエラーレートを前記送信器へ送り、前記送信器は、前記ビットエラーレートと閾値との比較に基づき前記アナログ信号の振幅を低減し、該低減された振幅は、前記送信器の電力消費を減らす。
【0122】
例において、前記受信器は、前記アナログ信号を受信して増幅する1つ以上のゲイン制御回路と、前記1つ以上のゲイン制御回路へ結合され、前記増幅されたアナログ信号をイコライズし、該イコライズされた増幅されたアナログ信号を前記第1コンパレータ及び前記第2コンパレータへ供給するイコライザとを有する。
【0123】
例において、制御ロジックは、前記ビットエラーレートに少なくとも部分的に基づき前記1つ以上のゲイン制御回路又は前記イコライザのうちの少なくとも1つを制御する。
【0124】
の例の様々な組み合わせが可能である点を理解されたい。
【0125】
多種多様なタイプのシステムにおいて使用されてよい。例えば、一実施形態において、通信デバイスは、本願で記載される様々な方法及び技術を実施するよう配置され得る。当然、本発明の適用範囲は、通信デバイスに制限されず、代わりに、他の命令を処理する他のタイプの装置、又はコンピューティングデバイスで実行されることに応答して、デバイスに、本願で記載される方法及び技術のうちの1つ以上を実施させる命令を含む1つ以上のマシン読み出し可能な媒体を対象とすることができる。
【0126】
コードにおいて実装されてよく、且つ、命令を実行するようシステムをプログラムするために使用され得る命令を記憶している非一時的な記憶媒体に記憶されてよい。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、ソリッドステートドライバ(SSD;Solid State Driver(s))、コンパクトディスク・リードオンリーメモリ(CD−ROM;Compact Disc Read-Only Memory)、コンパクトディスク・リライタブル(CD−RW;Compact Disc Rewritable)、及び光学磁気ディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM;Random Access Memory)、例えば、動的(Dynamic)ランダムアクセスメモリ(DRAM)、静的(static)ランダムアクセスメモリ(SRAM)、消去可能なプログラム可能(Erasable Programmable)リードオンリーメモリ(EPROM)、フラッシュメモリ、電気的(electrically)消去可能なプログラム可能リードオンリーメモリ(EEPROM)、磁気若しくは光学式カード、又は電子命令を記憶するのに適したあらゆる他のタイプの媒体を含んでよいが、それらに制限されない。
【0127】
本発明は、有限な数の実施形態に関して記載されてきたが、当業者であれば、それらから多数の変更及び変形を認識するだろう。添付の特許請求の範囲は、全てのそのような変更及び変形を、本発明の主旨及び適用範囲内にあるものとしてカバーする。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図8A】
【図8B】
【図9】
【図10】
【図11】
【図12】
【国際調査報告】