(57)【要約】高速双方向信号伝送の非対称制御を備えたシステム（１０）は、スレーブデバイス（１１０）と、例えば、複数の双方向データ経路（１１４）を介して前記スレーブデバイスに結合されたマスタデバイス（１０５）とを有する。前記マスタデバイスは、前記マスタデバイスと前記スレーブデバイス間のデータ転送を制御しうる。より詳細には、前記マスタデバイスは、前記スレーブデバイスから１つまたは複数の一方向データ経路（１１２）を介して受信される情報に基づいて受信器特性を適応的に変更した後に、送信特性を適応的に変更しうる。
2009529289.tif 000002
【特許請求の範囲】
【請求項１】
スレーブデバイス（１１０）と、
前記スレーブデバイスに結合されたマスタデバイス（１０５）と、を有し、前記マスタデバイスは、前記マスタデバイスと前記スレーブデバイス間のデータ転送を制御するように構成されており、
前記マスタデバイスは、前記スレーブデバイスから受信される情報に基づいて受信器特性を適応的に変更した後に、送信特性を適応的に変更するように構成されているシステム（１０）。
【請求項２】
前記マスタデバイスは、前記スレーブデバイスから受信される前記情報に応じて、前記マスタデバイスの受信器サンプルクロックの位相アライメントを適応的に変更するように構成され、前記スレーブデバイスから受信される前記情報には、１つ以上の一方向ＣＲＣデータ経路（１１２）を介して送信される巡回冗長符号（ＣＲＣ）情報が含まれ、前記ＣＲＣ情報は、前記マスタデバイスによって複数の双方向データ経路（１１４）を介して送信されるデータに対応している請求項１に記載のシステム。
【請求項３】
前記スレーブデバイスから受信される前記情報には、前記１つ以上の一方向ＣＲＣデータ経路を介して送信されるデータアイ情報が含まれ、前記データアイ情報は、前記スレーブデバイスによって前記複数の双方向データ経路で受信されるデータ信号遷移のエッジ位置に対応している請求項２に記載のシステム。
【請求項４】
前記マスタデバイスは、前記ＣＲＣ情報および前記データアイ情報に応じて、前記マスタデバイスによって前記複数の双方向データ経路を介して送信されるデータの位相アライメントを適応的に変更するように構成されている請求項２に記載のシステム。
【請求項５】
前記マスタデバイスは、前記スレーブデバイスに所定パターンを送信し、前記複数の双方向データ経路の各経路について、前記対応するＣＲＣ情報および前記データアイ情報に基づいて、前記マスタデバイス内のデータ経路等化係数を適応的に変更するように構成されている請求項３に記載のシステム。
【請求項６】
マスタデバイス（１０５）が前記マスタデバイスとスレーブデバイス（１１０）間のデータ転送を制御するステップと、
前記マスタデバイスが、前記スレーブデバイスから受信される情報に基づいて受信器特性を適応的に変更した後に、送信特性を適応的に変更するステップと、を含む方法。
【請求項７】
前記マスタデバイスが、前記スレーブデバイスから受信される前記情報に応じて、前記マスタデバイスの受信器サンプルクロックの位相アライメントを適応的に変更するステップを更に有し、前記スレーブデバイスから受信される前記情報には、１つ以上の一方向ＣＲＣデータ経路（１１２）を介して送信される巡回冗長符号（ＣＲＣ）情報が含まれ、前記ＣＲＣ情報は、前記マスタデバイスによって複数の双方向データ経路（１１４）を介して送信されるデータに対応している請求項６に記載の方法。
【請求項８】
前記スレーブデバイスから受信される前記情報には、前記１つ以上の一方向ＣＲＣデータ経路を介して送信されるデータアイ情報が含まれ、前記データアイ情報は、前記スレーブデバイスによって前記複数の双方向データ経路で受信されるデータ信号遷移のエッジ位置に対応している請求項１７に記載の方法。
【請求項９】
前記マスタデバイスが、前記ＣＲＣ情報および前記データアイ情報に応じて、前記マスタデバイスによって前記複数の双方向データ経路を介して送信されるデータの位相アライメントを適応的に変更するステップをさらに含む請求項１９に記載の方法。
【請求項１０】
前記マスタデバイスが、前記スレーブデバイスに所定パターンを送信するステップと、前記複数の双方向データ経路の各経路について、前記対応するＣＲＣ情報および前記データアイ情報に基づいて、前記マスタデバイス内のデータ経路等化係数を適応的に変更するステップと、をさらに含む請求項２０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信リンクに関し、より詳細には、双方向リンクを介した通信に関する。
【背景技術】
【０００２】
多くのシステムは、従来の高速双方向信号伝送方式を使用しており、この方式では、チャネルを介して送信される信号の振幅および位相を制御する作業が、通信リンクの両端に等しく分けられている。このようなシステムでは、リンクの両端の送信器と受信器が非常に似た機能を有することができるように、リンクの制御が対称的でありうる。
【０００３】
このようなシステムの例としてメモリシステムが挙げられ、このシステムには、複雑なマスタデバイス（メモリコントローラなど）と単純なスレーブデバイス（メモリデバイスなど）が存在する。双方向データ転送は、スレーブへの転送時のデータの書き込みと、スレーブからの転送時のデータの読み出しとに相当する。
【０００４】
高いデータ速度での転送を可能にするために、双方向データバスの両端の受信器に、クロック位相リカバリ機構が実装されうる。大きな高周波損失または反射を示すチャネルでは、シンボル間干渉（ＩＳＩ）の影響からデータアイクロージャを防ぐために、チャネルが等化されうる。また、高いデータ転送速度を有するリンクでは、ビット誤りが発生する可能性が非常に高いことがある。このため、通常は誤り検出手段が実装される。上で説明したように、従来、このような機能はリンクの両端に実装されうる。しかし、双方向に伝搬するデータ波形のアナログ特性の制御を維持すると共に、スレーブデバイスを簡略化することが望ましいと考えられる。
【発明の開示】
【０００５】
高速双方向信号伝送の非対称制御を備えたシステムの各種実施形態が開示される。例えば、一実施形態では、前記システムは、スレーブデバイスと、複数の双方向データ経路を介して前記スレーブデバイスに結合されたマスタデバイスと、を有する。前記マスタデバイスは、前記マスタデバイスと前記スレーブデバイス間のデータ転送を制御しうる。より詳細には、前記マスタデバイスは、前記スレーブデバイスから１つまたは複数の双方向データ経路を介して受信される情報に基づいて受信器特性を適応的に変更した後に、送信特性を適応的に変更しうる。
【０００６】
一実装では、前記情報には、前記マスタデバイスによって前記双方向データ経路を介して送信されるデータに対応するＣＲＣ情報が含まれうる。更に、前記マスタデバイスは、前記ＣＲＣ情報に応じて、前記マスタデバイスの受信器サンプルクロックの位相アライメントを適応的に変更しうる。
【０００７】
別の実装では、前記情報には、前記スレーブデバイスによって前記複数の双方向データ経路で受信されるデータ信号遷移のエッジ位置に対応するデータアイ情報が含まれうる。前記マスタデバイスは、前記ＣＲＣ情報および前記データアイ情報に応じて、前記マスタデバイスによって前記複数の双方向データ経路を介して送信されるデータの位相アライメントを適応的に変更しうる。
【０００８】
更に別の実装では、前記マスタデバイスは、前記スレーブデバイスに所定パターンを送信し、前記複数の双方向データ経路の各経路について、前記対応するＣＲＣ情報および前記データアイ情報に基づいて、前記マスタデバイス内のデータ経路等化係数を適応的に変更しうる。
【０００９】
本発明は、さまざまに変形されたり、代替形態を取りうるが、その特定の実施形態が、例として図面に図示され、かつ本明細書に詳細に記載される。本出願にわたり、「しうる」、「してもよい」との文言は、許容を示す意味（すなわち、可能性がある、可能であること）で用いられており、義務的な意味（すなわち必須）ではない点に留意されたい。
【発明を実施するための最良の形態】
【００１０】
図１を参照すると、双方向データ転送の非対称制御を備えたシステムの一実施形態のブロック図が示される。システム１０は、複数の信号経路およびコネクタ１５０を介してスレーブデバイス１１０Ａ〜１１０ｎに結合されているマスタコントローラ１０５を備える。図に示すように、信号経路には、双方向（ｂｉｄｉｒ）データ経路１１４、コマンド経路１１６および巡回冗長符号（ＣＲＣ）およびアイ統計情報経路１１２が含まれる。「スレーブデバイス１１０ｎ」は、任意の数のスレーブデバイスを例示してもよいことを示す点に留意されたい。また、数字と文字を含む参照符号を付された要素が、数字のみによって参照されることもある点にも留意されたい。例えば、スレーブデバイス１１０Ａは、必要に応じて「スレーブデバイス１１０」と呼ばれることもある。
【００１１】
図中の実施形態では、マスタコントローラ１０５は、送信ユニット１０６、受信ユニット１０７、および送信ユニット１０６と受信ユニット１０７の両方に結合されている制御ユニット１０８を備える。一実装では、システム１０は、メモリサブシステムの例であってもよい。このため、マスタコントローラ１０５はメモリコントローラであり、スレーブデバイス１１０Ａ〜１１０ｎはメモリデバイスなどであり、例えば、メモリデバイスのダイナミックアクセスメモリ（ＤＲＡＭ）の一員であるデバイスなどである。このため、コネクタ１５０は、複数のスレーブデバイス１１０などのメモリデバイスを含むメモリモジュールなどで用いられているコネクタなどである。更に、コマンド経路１１６はアドレスおよび制御の情報を伝達し、双方向データ経路１１４は双方向にデータを伝達しうる。ＣＲＣおよびアイ統計経路１１２は、スレーブ１１０からマスタコントローラ１０５にＣＲＣ情報を伝達しうる。図２の説明に関連して下記に詳述するように、ＣＲＣおよびアイ統計経路１１２は、スレーブデバイス１１０によって生成されるデータ信号位相情報も伝達しうる。なお、一般に、システム１０は、双方向データ経路を使用するシステムであればどのようなタイプのものも例示することができる。
【００１２】
一実施形態では、ＣＲＣおよびアイ統計経路１１２は２つの信号経路を含むが、任意の数の信号経路を使用することができる。双方向データ経路１１４は、多くの８ビット（バイト幅）のデータ経路を含みうる。例えば、データ経路全体は６４ビット幅であるが、データ経路がバイトサイズの部分に分割されている。データ経路全体が任意の数のデータビットを有してもよく、異なるサイズの部分に分割されてもよい。
【００１３】
上で説明したように、多くの従来のシステムは、例えば、クロック位相リカバリ、チャネル等化、誤り検出などの制御機能を両方の通信デバイスに実装することによって、高速の双方向通信を制御している。しかし、下記に詳述するように、スレーブデバイス１１０は簡略化することができる。このため、マスタコントローラ１０５は、送信データの信号特性（例えば位相および等化、電圧オフセットなど）を動的かつ適応的に調整することができる制御機能を備え、スレーブデバイス１１０から受信した情報に基づいて、スレーブデバイス１１０が正確にデータを読み出せるようにすることができる。更に、マスタコントローラ１０５は、マスタコントローラ１０５が、スレーブデバイス１１０が送信したデータを受信することができるように、内部受信器の特性を調整することができる。
【００１４】
詳細には、高いデータ速度では、バス中の異なる信号用の送信経路の遅延が不確実であるために、受信器のサンプルクロックをビット単位で位相調整を行う必要がある。この回路をスレーブデバイス１１０に使用せずに済むように、マスタコントローラ１０５は、スレーブデバイス内部で生成されるサンプルクロックと整合するように自身の伝送信号の位相を調整し、これにより、スレーブでの複雑な移相回路を使用せずに済むようにする。
【００１５】
このため、送信ユニット１０６は、スレーブデバイス１１０から情報を受信し、これを、自身の送信位相の調整に使用しうる。よって、スレーブデバイス１１０は、時に「バン−バン位相検出器」とも呼ばれる位相検出器（図２に示す）を使用して、データ遷移のエッジ位置に関する統計値を蓄積することができるアイ統計およびＣＲＣ生成論理１１８を備えうる。この検出器からの早い信号／遅い信号が蓄積され、一方向ＣＲＣ信号経路１１２を介してマスタコントローラ１０５に送信される。一実装では、スレーブデバイス１１０は、受信されたそれぞれの「ビットレーン」またはデータ経路について、この情報をマスタコントローラ１０５に送信しうる。
【００１６】
更に、高いデータ速度においては、スレーブデバイス１１０またはマスタコントローラ１０５がビット誤りを受信する確率が非常に高くなる。このため、被保護ブロック内の複数のビット誤りを確実に検出する誤り検出コードにより、転送を保護することが必要となりうる。リンクでいずれかの方向に誤りが検出されると、マスタコントローラ１０５はオペレーションを再試行することによって誤りを訂正しうる。
【００１７】
一実施形態では、複数のビット誤り検出を提供するために、ＣＲＣコードが使用されうる。詳細には、図２に示すように、スレーブデバイス内の論理とマスタコントローラ１０５への誤りの報告を簡略化するために、スレーブデバイス１１０は、自身が生成中のデータか自身が受信中のデータに基づいてＣＲＣを計算する。このため、マスタコントローラ１０５にＣＲＣ情報を送り返すために、１つ以上の一方向ＣＲＣ信号経路１２が使用されうる。図２に示すように、ＣＲＣ生成ユニット２３０は、自身の内部データに基づいてＣＲＣを計算し、ＣＲＣデータをマスタコントローラ１０５に送り返す。
【００１８】
一実施形態では、ＣＲＣが、マスタコントローラ１０５に到着したときに、ＣＲＣが保護しているデータブロックと同時にＣＲＣが利用可能となるように、ＣＲＣ情報が、スレーブデバイス１１０からマスタコントローラ１０５に転送中のデータと並列に計算され送信されてもよい。
【００１９】
なお、マスタコントローラ１０５からスレーブデバイス１１０への転送時には、スレーブデバイス１１０が内部にデータを受信し、ＣＲＣを計算して、ＣＲＣをマスタコントローラ１０５に送信するために、固有の遅延が多少発生する。しかし、図５の説明に関連して後で詳述するように、この遅延が、ライトからリードおよびリードからライトのバスの遷移において、データバス上に挿入されるギャップと重複されることがある。
【００２０】
図２を参照すると、図１のスレーブデバイスの一実施形態のより詳細な態様を例示する図が示される。スレーブデバイス１１０は、ｂｉｄｉｒデータ経路１１４の１つの信号経路と、フリップフロップ（ＦＦ）２０８への入力とに結合されたデータ入力バッファ２０９を含む論理１１８を備える。ＦＦ２０８の出力は、スレーブコア論理２５５に結合されている。スレーブコア論理２５５からのデータ出力信号は、ＦＦ２０６の入力にも結合されている。ＦＦ２０６の出力は、データ出力バッファに結合され、これは同じ信号経路に結合されている。ＦＦ２０７の入力も、ｂｉｄｉｒデータ経路１１４の信号経路に結合されている。ＦＦ２０７の出力は、アイ算出ユニット２２５に結合されている。アイ算出ユニット２２５の出力は、マルチプレクサ２５０の入力の一方に結合されている。データ入力信号とデータ出力信号はＣＲＣユニット２３０にも結合されており、その出力はマルチプレクサ２５０の入力のもう一方に結合されている。マルチプレクサ２５０の出力は、ＦＦ２０５の入力に結合されている。ＦＦ２０５の出力はバッファ２１１に結合され、バッファ２１１はＣＲＣおよびアイ統計信号経路１１２の信号経路の１つに結合されている。スレーブサンプルクロック信号は、ＦＦ２０５〜２０８の各クロック入力に結合されている。
【００２１】
図中の実施形態では、ＦＦ２０７とＦＦ２０８は、それぞれ、バッファ２０９の出力でのアナログ電圧信号を、データ信号のエッジおよび中央部でサンプリングする。この２つのサンプルはアイ算出ユニット２２５に入力され、アイ算出ユニットは受け取ったデータアイに関する各種統計値を計算しうる。マスタコントローラ１０５によって送信されるデータの位相を調整するために、すべてのエッジ遷移が、アイ算出ユニット２２５内のカウンタ／レジスタ２２６に蓄積されうる。一実装では、早いエッジおよび遅いエッジにより、レジスタ２２６がそれぞれインクリメント、デクリメントされ、これが、送信データの位相のスケール調整された指標（scaled index）となりうる。以下に詳しく説明するように、送信器の等化と、マスタコントローラ１０５の入力受信器のオフセットを調整するために、追加の統計値が蓄積されてもよい。
【００２２】
一実施形態では、位相情報は、受信された各データビットに対して蓄積される。この位相情報は、データ経路ごとに、１６ビットのバーストで蓄積されうる。レジスタ２２６は４ビットカウンタであり、遷移の早遅に応じて、インクリメントまたはデクリメントされうる。スレーブデバイス１１０は、１６ビットのバースト毎に、４ビットカウンタ値の正負を示すために、データ経路につき１ビットをマスタコントローラ１０５に送信しうる。遷移エラー情報を受信すると、制御ユニット１０８は、送信データの位相を制御するために、この遷移情報を更に蓄積しうる。よって、スレーブデバイス１１０がデータにロックされるまで、送信ユニット１０６は送信データの位相を調整または訂正しうる。
【００２３】
上で説明したように、マスタコントローラ１０５は、スレーブデバイス１１０によって送信されるデータを正確に受信するために、受信器回路を調整しうる。一実施形態では、受信ユニット１０７は、図２に示す位相検出器と類似のバン−バン位相検出器を備えうるサンプルクロック調整論理１０３を備える。よって、マスタコントローラがスレーブユニット１０７からデータを受信中に、受信ユニット１０７は、スレーブデバイス１１０によって送信されるデータをより最適に受信するために、バン−バン位相検出器を使用して、自身のローカルサンプルクロックを調整しうる。この点については、図３の説明に関連して、下で更に詳細に説明する。
【００２４】
送信データの位相調整と、受信ユニット１０７内の受信サンプルクロックの調整に加えて、データ経路チャネルの等化が必要となることもある。詳細には、（図１に示すように）同じチャネルに接続している複数のスレーブデバイス１１０によって引き起こされるチャネルの高周波損失および／または反射により、データ経路の等化が必要となることもある。データ経路の等化により、スレーブデバイス１１０の受信器論理のアイオープニングを最適化することができる。このため、一実施形態では、送信ユニット１０６は位相および等化ユニット１０３を備え、このユニットは、複数の係数を有する有限インパルス応答（ＦＩＲ）フィルタを使用して、自身の出力デジタル−アナログ変換器ステージを駆動する。
【００２５】
一実施形態では、ＦＩＲフィルタの係数は、個々のデータ経路の特性に合わせて、トレーニングまたは適応的に変更されうる。送信ユニット１０６が自身の等化を調整することができるように、マスタコントローラ１０５は、スレーブデバイス１１０の各入力に現れるＩＳＩに対応する誤り情報を、スレーブデバイス１１０から受信する。
【００２６】
スレーブデバイス１１０内の必要な論理を簡略化または削減するために、送信ユニット１０６内の等化器ユニット１０３は、チャネルの等化の程度を決定するためにデータ段階をサンプリングするスレーブデバイス１１０内の論理１１８も使用しうる。スレーブデバイス１１０が、受信されたアイ振幅のエラー値を生成できるようにするために、マスタコントローラ１０５は、スレーブデバイス１１０の入力受信しきい値を、あるオフセットだけ変更させうるコマンドを、スレーブデバイス１１０に送信する。このオフセットは、正確に等化されたチャネルにおいて誤り率が約５０％となるように選択され、この５０％の誤り率からのずれは、マスタコントローラ１０５が送信ユニット１０６内で実行している等化の誤りを、マスタコントローラ１０５に対して知らせうる。別の実施形態では、図２に示すように、マスタコントローラ１０５は、インターフェイス内の他の信号経路を介して、スレーブデバイス１１０に受信しきい値を直接供給することによって、これを提供してもよい。
【００２７】
一実装では、マスタコントローラ１０５は１６ビットのブロックを送信し、スレーブデバイス１１０は、この１６ビットのブロックの１５番目のビットに対してサンプリングした値を報告する。マスタコントローラ１０５は、１５番目のビットを除いたこのブロックの全データビットのランダムなデータを送信し、これは、スレーブデバイス１１０が自身の受信器内で使用しているオフセット値と一致させるように選択された所定値である。マスタコントローラ１０５は、自身が送信しているデータ値を知っているため、係数毎にこれらのデータ値を使用して、スレーブデバイス１１０によって戻される誤りビットの符号に応じて、各係数の値を調整しうる。その後、送信係数が、例えば、符号−符号ＬＭＳ適応アルゴリズムなどのアルゴリズムを使用して、トレーニングされる。トレーニングされる係数の数は、チャネルのパルスレスポンスのテイルの長さの関数となりうる。
【００２８】
一実装では、マスタコントローラ１０５は、４タップの判定帰還型等化器（ＤＦＥ）を使用して、分岐式のデータバスによって生じるスレーブデバイススタブによる反射を含みうるチャネルの送信応答にヌルを含むパルス応答を訂正しうる。しかし、別の実施形態では、別のタップ数を使用して、例えば、チャネルのラウンドトリップによって発生しうる任意の反射をカバーしてもよいことが考察される。
【００２９】
図３は、図１および図２に示した実施形態の動作を示すフローチャートである。詳細には、上で説明したように、マスタコントローラは、スレーブデバイスが正確に受信できるデータを送信し、スレーブデバイスが送信するデータを正確に受信できるように、自身の送信特性と受信特性を適応的に変更するように構成されうる。
【００３０】
図１〜図３と、図３のブロック３００の始点を合わせて参照すると、リセットまたは電源投入の状態後、コントローラ１０５の受信ユニット１０７は、ＣＲＣ経路１１２の少なくとも２つのデータ経路を受信するためにトレーニングされうる。このため、マスタコントローラ１０５は、スレーブデバイス１１０内の所定の位置に、既知の第１のトレーニングパターンを書き込む（ブロック３０５）。この書き込みが行われると、スレーブデバイス１１０は、受信したデータに基づいて、ＣＲＣを生成し、ＣＲＣ経路１１２を介してスレーブデバイスに送信する。マスタコントローラ１０５はＣＲＣを受信し、受信ユニット１０７がＣＲＣデータにロックされているかどうかを判定する（ブロック３１０）。マスタがＣＲＣデータにロックされていない場合、制御ユニット１０８は、受信ユニット１０３の位相および等化を調整させ（ブロック３１１）、再送すべきパターンを書き込む（ブロック３０５）。
【００３１】
マスタコントローラ１０５が、受信ユニット１０７がＣＲＣデータにロックされていると判定した場合（ブロック３１０）、マスタコントローラ１０５は、スレーブデバイス１１０が正確に受信することができるデータを送信するために、送信ユニット１０６をトレーニングしようと試みる。詳細には、マスタコントローラ１０５は、スレーブデバイス１１０に第２のトレーニングパターンを送信する（ブロック３１５）。一実装では、第２のトレーニングパターンは、データ経路の等化が必要ではないパターンであってもよい。例えば、１１００１１００ｂｂなどのパターンが使用されうる。マスタコントローラ１０５は、スレーブデバイス１１０から受信したＣＲＣデータおよびエッジ統計値に基づいて、スレーブデバイス１１０が書き込みデータに正確にロックされているかどうかを判定する（ブロック３２０）。マスタコントローラ１０５が、スレーブがデータにロックされていないと判定した場合、制御ユニット１０８によって、送信データの位相が再調整され、パターンが再送される（ブロック３１５）。
【００３２】
しかし、ＣＲＣおよびアイ統計量情報により、スレーブデバイス１１０が送信データにロックされていることが示された場合（ブロック３２０）、マスタコントローラ１０５は、ｂｉｄｉｒデータ経路１１４のデータ経路を等化しようと試みうる。一実施形態では、マスタコントローラ１０５は、ｂｉｄｉｒデータ経路１１４を介して、スレーブデバイス１１０に第３のトレーニングパターンを送信する（ブロック３２５）。一実装では、第３のパターンはよりランダム化されたパターンであってもよい。この場合も、マスタコントローラ１０５は、受信したＣＲＣデータに基づいて、複数タップフィードフォワードイコライザ（ＦＦＥ）の係数が収束されているかどうかを判定しうる（ブロック３３０）。更に、送信データの位相アライメントが、係数の調整中に移動することもあり、このため、位相が再確認され、トレーニングパターン２を使用して調整されうる（ブロック３３５および３４０）。このため、図に示すように、２つの係数が収束し、送信データの位相が整合されるまで、マスタコントローラ１０５は、反復的に係数を適応させ位相を追跡しうる（ブロック３３０）。
【００３３】
送信データ位相が整合され、送信データ経路が等化されると、ｂｉｄｉｒデータ経路１１４でデータを確実に受信するために、受信ユニット１０７の特性が調整され、トレーニングされる。このため、マスタコントローラ１０５は、第４のパターンを送信し、これが、例えば、スレーブデバイス１１０内の記憶場所（図示せず）に記憶される（ブロック３４５）。マスタコントローラ１０５は、その後、スレーブデバイス１１０から第４のパターンの読み出しを実行する。このパターンは公知であるため、スレーブデバイス１１０から送信されるデータを確実に受信するために、制御ユニット１０８によって、受信ユニット１０６の位相および等化が調整されうる（ブロック３５０）。マスタコントローラ１０５が、受信器がトレーニングされないと判定した場合（ブロック３５５）、マスタコントローラ１０５はパターンデータの追加の読み出しを開始して、追加の調整が行われうる（ブロック３５０）。受信ユニット１０６がトレーニングされると、システム１０は通常動作を開始することができ、通常動作中に、マスタコントローラ１０５はスレーブデバイス１１０に対する読み出しおよび書き込みを実行しうる。
【００３４】
ブロック３６１に進み、システム１０の通常動作中に、位相がドリフトすることがある。読み出しおよび書き込みが発生しており、データ経路でデータが転送されている限り、マスタコントローラ１０５によって位相アライメントが継続的に確認されうる。しかし、バストラフィックで大きなギャップが生ずると、位相が検知不能にドリフトすることがある。よって、所定の時間を超える読み出しおよび書き込みのギャップが存在する場合、マスタコントローラ１０５はダミーの読み出しサイクルおよび書き込みサイクルを開始して、送信ユニット１０６および受信ユニット１０７の位相のトレーニングを続ける。
【００３５】
詳細には、一実施形態では、例えば、制御ユニット１０８は、連続する読み出し間、および連続する書き込み間の経過時間をタイマーを使用して測定しうる（ブロック３６２）。書き込みタイマーが切れた（２つの書き込み間の経過時間が長すぎる）場合（ブロック３６３）、制御ユニット１０８は、１つ以上のダミーの書き込みサイクルを発生させ、その際、第２のトレーニングパターンがスレーブデバイス１１０に書き込まれうる。制御ユニット１０８は、受信したＣＲＣおよびアイ統計値に基づいて、送信ユニット１０６の位相を調整させうる（ブロック３６５）。
【００３６】
同様に、読み出しタイマーが切れた（２つの読み出し間の経過時間が長すぎる）場合（ブロック３６６）、制御ユニット１０８は、１つ以上のダミーの読み出しサイクルを発生させ、その際、スレーブデバイス１１０から第４のトレーニングパターンが読み出されうる。制御ユニット１０８は受信ユニット１０７の位相を調整させうる（ブロック３６７）トレーニングまたは確認が行われると、動作はブロック３６１などのように通常どおり進みうる。なお、別の実施形態では、マスタコントローラ１０５は、経時タイマー以外の要因に依存するダミーの読み出しサイクルおよび書き込みサイクルを開始してもよい。例えば、マスタコントローラ１０５は、受信データまたはＣＲＣビットの誤り率に基づいて、送信ユニット１０６および受信ユニット１０７の再トレーニングを開始してもよい。
【００３７】
スレーブデバイス入力のオフセット訂正
スレーブデバイス１１０の受信器で使用されるオフセットの極性を変えることによって、マスタコントローラ１０５は、１６ビットのバーストの１５番目ビットでサンプリングした、誤り率に論理１または論理０について偏りがあるかどうかを判定することができる。この偏りは、スレーブデバイス１１０の受信器の入力オフセットを示しうる。マスタコントローラ１０５は、自身の送信波形を上下にシフトさせることにより、このオフセットを補償しうる。一実装では、送信ユニット１０６は、スレーブデバイスの受信器の入力オフセットの最大で±５０ｍＶ補正することができる。
【００３８】
データのスクランブル
損失のあるチャネルを介して高いデータ速度でデータを転送する際に、データパターンによっては、他のパターンよりもビット誤りの発生確率が高いものがある。更に、対象のチャネルのほとんどは、複数本のパラレルワイヤから構成されており、これらがバス内のデータ経路間で大きなクロストークを示すことがある。このクロストークは、プリント回路基板上の平行な導体間の結合、アレイ、コネクタ、パッケージ、ソケットを介した結合などで発生しうる。同様に、シングルエンド形スイッチングシステムの場合、クロストークは、複数の出力が同時に切り替わる結果発生することもある。
【００３９】
図４を参照すると、スクランブル論理を備えた図１のシステムの一実施形態を示すブロック図が示される。なお、図４のマスタコントローラ１０５は、以下に説明する機能に加えて、図１のマスタコントローラ１０５のすべての機能を備えうる。同様に、図４のスレーブデバイス１１０は、図１のスレーブデバイス１１０のすべての機能を備えうる。しかし、説明を簡潔にするため、その機能についてここで繰り返し説明することはしない。転送されるデータがランダムであることが保証されないため、有害なデータパターンが、被害を受けるラインと、その重要な攻撃者（significant aggressor）上で転送される可能性がある。これによってリンクのビット誤り率が不適切に上昇するのを防ぐために、各経路でデータがスクランブルされうる。一実装では、データが、排他論理和（ＸＯＲ）関数を使用して、擬似ランダム２進シーケンス（ＰＲＢＳ）の出力と組み合わされうる。
【００４０】
一実施形態では、マスタコントローラ１０５とスレーブデバイス１１０は、同じＰＲＢＳジェネレータを備え、これらがトレーニング中に初期化されうる。データフローの方向に応じて、リンクの一端では既知のＰＲＢＳによってデータがスクランブルされ、他端では自身のローカルＰＲＢＳジェネレータによってこれが逆スクランブルされる。このため、マスタコントローラ１０５は、スクランブラ／逆スクランブラ４０５を備え、これはＸＯＲブロック４１５に結合されたＰＲＢＳジェネレータ４１０を備える。同様に、スレーブデバイス１１０は、スクランブラ／逆スクランブラ４３０を備え、これはＸＯＲブロック４４０に結合されたＰＲＢＳジェネレータ４３５を備える。
【００４１】
データ経路間の相関を回避するために、各経路が、異なるＰＲＢＳによってスクランブルされ、これにより、周波数ドメインにおいて有害なクロストークデータパターンが有効に不明瞭となり（smearing out）、その影響を正規分布によって統計的に評価できるようになる。また、データをスクランブルすることにより、ＬＭＳ適応アルゴリズムが、適応中のタップ係数について偏った統計値を有さないように、生成されるデータパターンは、周波数ドメインにおいてスペクトルがホワイトノイズ様になることが保証されうる。
【００４２】
一実施形態では、実装コストを最小限に押さえるために、ＰＲＢＳジェネレータ４１０および４３５のそれぞれは、複数のタップを有するマスタのＰＲＢＳジェネレータから実装することができる。経路毎に重複しないＰＲＢＳを生成するために、異なるジェネレータタップが、各データ経路からのデータとＸＯＲ演算されうる。タップの選択は、各経路に使用されるシーケンス間の差を最大化するように行われうる。
【００４３】
スレーブデバイス１１０がメモリデバイスである実施形態では、データがスクランブルされた状態で記憶されてもよく、これにより、メモリデバイスにスクランブル機能を実装するためのコストを削減することができる。マスタコントローラ１０５がスクランブルされたデータを確実にデコードできるようにするために、スクランブルシードが、データの記憶アドレスのハッシュから計算されてもよく、これにより、逐次的なメモリアクセスパターンが頻繁に発生する場合であっても、バスを介して転送されるデータを統計的にランダムな状態に維持することができる。
【００４４】
一実装では、スクランブラのＰＲＢＳにアクセス対象のブロックのアドレスを事前に読み込ませ、次にＰＲＢＳジェネレータを、ある固定のステージ数だけシフトさせることによってアドレスのハッシュが生成され、これにより、メモリとの間で転送される各データブロックについて一意的なシードを作成するために、アドレスがランダム化される。なお、ワード順序が重要であるシステムでは、最初のアドレスアクセスがブロック境界で発生しない場合に発生するラッピングについて、逆スクランブルで確実に考慮されるように、更に注意を払う必要がある。このような場合、そのデータブロックに対して適切にラッピングされたスクランブルパターンが計算されうる。
【００４５】
また、スクランブルされたデータをメモリデバイスに記憶する際に、当然、メモリデバイス制御レジスタへのアクセスがスクランブルされない点にも留意されたい。よって、有害なデータパターンの可能性を最小限に押さえるために、メモリデバイス制御レジスタのビット値の意味を適切に定義することにより、制御情報の転送もランダムデータの挙動を示すことを保証することが望ましいこともある。例えば、論理１があるビット位置ではある意味を有し、別の位置では反対の意味を有するように、メモリデバイス制御レジスタビットが変更されうる。このため、同じ論理値を有するビットが、よりランダムになるように分散されうる。
【００４６】
スレーブからマスタへのレーテンシの短縮
バス効率に対する影響を最小限に押さえると共に、ＣＲＣから十分な誤り保護範囲を得るために、ＣＲＣが計算されるブロック全体に、データがグループ化されうる。スレーブデバイス１１０からマスタコントローラ１０５への転送時には、データブロックおよびＣＲＣがすべて受信されるまで、ブロックのデータが正しいことを確認することはできない。しかし、これにより、システムの前方向の進捗（forward progress）において重要なワードである可能性があるブロックの先頭部分のレーテンシが増大してしまう。
【００４７】
図５を参照すると、バイトグループ全体の例示的なエンコード方式を示す図が示される。一実施形態では、この重要なワードとブロックの残りとの間に追加のインラインエラーコードを挿入することによって、重要なワードが更に保護されうる。例えば、図５に示すように、ブロックの先頭で重要なワード（例えばバイト０）を繰り返すことによって、追加の誤り検出情報が実装されうる。重要なワードを２回送信することによって、マスタコントローラ１０５は、２つのコピーの間で各ビットが同じであることを検証することができ、この重要なワードの誤り率が実質的に低下され、このため、ブロックの完全なＣＲＣを受信する前に、重要なワードが正しいとみなせるようになる。換言すると、リードオペレーション中に、スレーブデバイス１１０は、読み出しブロックの最初の２つのビートまたはビットタイミングに重要なワードを送信することができる。
【００４８】
図５の実施形態では、２つのＣＲＣ信号経路が、１６ビットのバーストを使用して８つのデータ経路を保護している。重要なワードの２つのコピーのための空きを作るために、バイト３が、読み出しブロックの最初の４ビートの間にＣＲＣ経路に出力される。これにより、重要なワードの送信後に、読み出しＣＲＣを計算できるようになる。書き込み時には、ＣＲＣ計算には時間を要し、このため計算に１２ビットタイミングが充てられており、ライトからリードへのターンアラウンドの重複が、バスのターンアラウンド遅延で発生する。ＣＲＣは読み出しおよび書き込み間に方向を変えることはない点に留意されたい。図に示すように、このエンコード方式は追加の帯域を提供しており、これが、書き込みデータのアイ統計値を出力するために使用されうる。また、複数のスレーブデバイスが存在する場合、マスタコントローラ１０５の制御装置が、読み出しまたは書き込みを行っているスレーブデバイスを変更する際に、ギャップ（すなわちバブル）を挿入することが必要となりうる点にも留意されたい。
【００４９】
バイトグループ全体のスキュー管理
スレーブデバイス１１０とマスタコントローラ１０５を簡略化するために、スレーブデバイス１１０、マスタコントローラ１０５およびＰＣＢルーティングの設計において、バイトグループ内のデータ経路間のスキューを制御することができる。一実施形態では、バイトグループ内のビット間の最大スキューが、３．２Ｇｂ／ｓで０．１ＵＩ以内に制御されてもよく、これにより、グループ内の異なるデータ経路を等化のために同等に扱うことが可能となる。
【００５０】
このようにスキューを制御することによって、同時スイッチング出力（ＳＳＯ）によって生成されるノイズが、受信データのアイエッジで正確に整合され、これによって、アイクロージャへのその影響が最小限に押さえられる。しかし、これによっても、マスタコントローラが送信中に受信するＣＲＣデータへのＳＳＯの影響は改善されず、このため、得られる小さなデータアイを正確に受信するには、マスタに追加の負荷がかかりうる。しかし、内部的に終端され、ＣＲＣ受信ビットの信号グラウンドに対して参照される入力受信器のための外部の基準電圧を有するマスタコントローラに、よってこれが緩和されうる。これにより、ＳＳＯノイズがコモンモードノイズに変換され、これが、ＣＲＣビットについて入力受信器によって除外されうる。
【００５１】
メモリへのバイトモード書き込み
一部のメモリのアプリケーションでは、バースト指向のトランザクションでのリード／モディファイ／ライトオペレーションを回避するために、メモリコントローラとメモリデバイス間でバイト書き込み機能をサポートすることが望ましいことがある。よって、マスタコントローラ１０５がメモリコントローラであり、スレーブデバイス１１０がメモリデバイスである実施形態では、マスクされた書き込みを使用してバイト書き込みが実装されうる。図６を参照すると、マスクされたライトオペレーションの実施形態を示す図が示される。マスク書き込みのための追加の帯域は、マスク情報を格納している８ビットの短いバーストを、書き込みデータペイロードの先頭に追加することによって得られる。
【００５２】
マスタコントローラ１０５は、通常、変更されないメモリの内容を知らないため、マスク情報中のビット誤りによって、メモリ内のデータが誤って変更されてしまうことがある。この課題を解消するために、マスタコントローラ１０５は４つの連続するビットタイミングに対してマスク情報を送信し、スレーブデバイス１１０はデータをサンプリングするために３番目のビットタイミングを使用する。詳細には、一実施形態では、デバイス仕様により、３番目のビットタイミングが安定であることが保証される。しかし、別の実施形態では、マスク情報が、それ以外の個数の連続するビットタイミングに対して送信されてもよい。このため、他のビットタイミングが安定なことが保証されてもよく、スレーブデバイス１１０はデータのサンプリングにこの安定なビットタイミングを使用しうる。
【００５３】
シングルエンド形スイッチングＩ／Ｏトポロジ
図７は、シングルエンド型スイッチング双方向信号伝送方式を使用するシステムの一実施形態の図である。図１のシステムなどのシングルエンド形スイッチング信号伝送方式の場合には、パッドＩ／Ｏキャパシタンスの最小化と、オンダイＶＤＤの制御は、非常に重要な設計パラメータである。単純な電圧モード送信器受信器ターミネータとオンダイのシャントレギュレータとの組み合わせは、電源消費とＩ／Ｏ構造の簡略化との適切な妥協案となりうる。
【００５４】
このため、システム７００は集積回路（ＩＣ）デバイス７０１を備え、これは複数の双方向信号経路を含むバス１１４を介してＩＣデバイス７１１に結合されている。ＩＣ７０１は、双方向信号経路のそれぞれに対して、その信号経路に結合されたドライバ回路を有する。図７に示すように、例示的なドライバ回路は、デバイスＩ／Ｏ６０１、６０２および６０３として示されているが、説明を簡単にするために、デバイスＩ／Ｏ６０１の詳細な態様のみを説明する。このように、デバイスＩ／Ｏ６０１は、トランジスタＴ１およびＴ２を有する相補型金属酸化膜半導体（ＣＭＯＳ）ドライバ回路を実施している。ｔｘ［０］入力は、ドライバ回路の入力に結合されている。出力は、バス７１４の信号経路と、受信信号経路ｒｘ［０］とに結合されている。なお、ドライバ回路６０２および６０３は、デバイスＩ／Ｏ６０１と実質的に同じ回路を備えうる。
【００５５】
図中の実施形態では、デバイスＩ／Ｏ６０１は、実質的に等価なドライバ（例えばデバイスＩ／Ｏ６１３）によって終端されている送信ライン（例えば７１４の信号経路）への約ＶＤＤ／２の電圧振幅を有する電圧モードドライバであり、これが、ダイパッドをグラウンドに駆動して、受信器をグラウンドに終端させている。なお、図中の実施形態では、２つのＩＣデバイス（チップ）への供給電圧は、例えば１．５Ｖと１．０Ｖなどの異なる電圧であってもよい。
【００５６】
また、ＩＣ７０１は、平均直流電圧を超えるオンダイＶＤＤの遷移を検出する、クランプ６０４として示されるシャントレギュレータ回路も備える。更に、インダクタＬ１、Ｌ２および電圧源Ｖ１を有する電力分配ループが示される。なお、インダクタＬ１およびＬ２はパッケージング、リード長などに起因しうる内在性のインダクタンスのモデルを表し、電圧源Ｖ１は、ＶＤＤ供給のモデルを表しうる。
【００５７】
ダイＶＤＤの遷移が平均直流電圧を超えると、増幅器Ａ１はトランジスタＴ３をオンにし、トランジスタＴ３は、誘導型の電力分配ループ（例えばＬ１、Ｖ１、Ｌ２）を通る電流の流れを維持する。これにより、正電圧のオーバーシュートが効果的にクランプされる。一部の実施形態では、このクランプと、（上で説明した）スクランブルされたデータの送信との組み合わせにより、オンダイＶＤＤのノイズを５０％超、低減することができる。バスのターンアラウンド（例えばライトからリードへ、およびリードからライトへの遷移）中のノイズを最小化するために、クランプトランジスタＴ３が短時間オンにされてから、送信器のスイッチングが有効にされうる。これにより、オンダイＶＤＤデカップリングコンデンサＣ１から電流が引き出され、デカップリングコンデンサＣ１は、電力分配ループを通る電流の流れを増加させうる。クランプトランジスタＴ３がオフにされてから先頭ビットが送信され、これにより、オンダイＶＤＤの誘導型のリングが生じ、この結果、シャントレギュレータ６０４がクランプされて、送信器の起動時のオンダイＶＤＤの低下がごくわずかな値になることが保証される。
【００５８】
図に示すように、ＩＣデバイス７１１は、実質的に同一の回路を有し、このためＩＣデバイス７０１と実質的に同様に動作する。したがって、簡潔を期するために、ＩＣデバイス７１１の動作については記載しない。
【００５９】
なお、スイッチングＩ／Ｏの平均電力は、この手法によって大きく変わることはないが、１または０を駆動するために電源から定電流を引き出すドライバは、平均スイッチング電力の約２倍消費することがある。
【００６０】
なお、図７に示すＩＣ７０１およびＩＣ７１１は、２つのチップ間に双方向信号伝送方式を使用することができる２つのデバイスであれば、どのようなものでも例示することができる。しかし、一実施形態では、ＩＣ７０１およびＩＣ７１１は、図１〜図６の説明に関連して上記の実施形態で説明した、マスタコントローラ１０５とスレーブデバイス１１０を例示することができる。
【００６１】
上の実施形態についてかなり詳細に記載したが、上記の開示を完全に理解できれば、数多くの変形例および変更例が当業者にとって自明でああろう。添付の特許請求の範囲は、このような変形例および変更例を全て包含するものと解釈されることが意図される。
【産業上の利用可能性】
【００６２】
本発明は、一般にマイクロプロセッサに適用可能である。
【図面の簡単な説明】
【００６３】
【図１】双方向データ転送の非対称制御を備えたシステムの一実施形態のブロック図。
【図２】図１のスレーブデバイスの一実施形態のより詳細な態様を示す図。
【図３】図１および図２に示した実施形態の動作を示すフローチャート。
【図４】スクランブルおよび逆スクランブル論理を備えた図１のシステムの実施形態の更に詳細を示すブロック図。
【図５】バイトグループ全体の例示的なエンコード方式の実施形態を示す図。
【図６】マスクされたライトオペレーションのエンコード方式の実施形態を示す図。
【図７】シングルエンド型スイッチング双方向信号伝送方式の一実施形態を示す図。
【図１】
2009529289.tif 000003
【図２】
2009529289.tif 000004
【図３】
2009529289.tif 000005
【図４】
2009529289.tif 000006
【図５】
2009529289.tif 000007
【図６】
2009529289.tif 000008
【図７】
2009529289.tif 000009
【手続補正書】
【提出日】平成20年1月2日(2008.1.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
スレーブデバイス（１１０）と、
前記スレーブデバイスに結合されたマスタデバイス（１０５）とを有し、前記マスタデバイスは、前記マスタデバイスと前記スレーブデバイス間のデータ転送を制御するように構成されており、
前記マスタデバイスは、前記スレーブデバイスから受信される情報に基づいて前記マスタデバイスの受信器特性を適応的に変更した後に、前記マスタデバイスの送信特性を適応的に変更するように構成されており、
前記マスタデバイスは、前記スレーブデバイスから受信される前記情報に応じて、前記マスタデバイスの受信器サンプルクロックの位相アライメントを適応的に変更するように構成され、前記スレーブデバイスから受信される前記情報には、１つ以上の一方向ＣＲＣデータ経路（１１２）を介して送信される巡回冗長符号（ＣＲＣ）情報が含まれ、前記ＣＲＣ情報は、前記マスタデバイスによって複数の双方向データ経路（１１４）を介して送信されるデータに対応しているシステム（１０）。
【請求項２】
前記スレーブデバイスから受信される前記情報には、前記１つ以上の一方向ＣＲＣデータ経路を介して送信されるデータアイ情報が含まれ、前記データアイ情報は、前記スレーブデバイスによって前記複数の双方向データ経路で受信されるデータ信号遷移のエッジ位置に対応している請求項1に記載のシステム。
【請求項３】
前記マスタデバイスは、前記ＣＲＣ情報および前記データアイ情報に応じて、前記マスタデバイスによって前記複数の双方向データ経路を介して送信されるデータの位相アライメントを適応的に変更するように構成されている請求項２に記載のシステム。
【請求項４】
前記マスタデバイスは、前記スレーブデバイスに所定パターンを送信し、前記複数の双方向データ経路の各経路について、前記対応するＣＲＣ情報および前記データアイ情報に基づいて、前記マスタデバイス内のデータ経路等化係数を適応的に変更するように構成されている請求項２に記載のシステム。
【請求項５】
マスタデバイス（１０５）が前記マスタデバイスとスレーブデバイス（１１０）間のデータ転送を制御するステップと、
前記マスタデバイスが、前記スレーブデバイスから受信される情報に基づいて前記マスタデバイスの受信器特性を適応的に変更した後に、前記マスタデバイスの送信特性を適応的に変更するステップと、
前記マスタデバイスが、前記スレーブデバイスから受信される前記情報に応じて、前記マスタデバイスの受信器サンプルクロックの位相アライメントを適応的に変更するステップとを含み、前記スレーブデバイスから受信される前記情報には、１つ以上の一方向ＣＲＣデータ経路（１１２）を介して送信される巡回冗長符号（ＣＲＣ）情報が含まれ、前記ＣＲＣ情報は、前記マスタデバイスによって複数の双方向データ経路（１１４）を介して送信されるデータに対応している方法。
【請求項６】
前記スレーブデバイスから受信される前記情報には、前記１つ以上の一方向ＣＲＣデータ経路を介して送信されるデータアイ情報が含まれ、前記データアイ情報は、前記スレーブデバイスによって前記複数の双方向データ経路で受信されるデータ信号遷移のエッジ位置に対応している請求項５に記載の方法。
【請求項７】
前記マスタデバイスが、前記ＣＲＣ情報および前記データアイ情報に応じて、前記マスタデバイスによって前記複数の双方向データ経路を介して送信されるデータの位相アライメントを適応的に変更するステップをさらに含む請求項６に記載の方法。
【請求項８】
前記マスタデバイスが、前記スレーブデバイスに所定パターンを送信するステップと、前記複数の双方向データ経路の各経路について、前記対応するＣＲＣ情報および前記データアイ情報に基づいて、前記マスタデバイス内のデータ経路等化係数を適応的に変更するステップと、をさらに含む請求項６に記載の方法。
【国際調査報告】
2009529289.tif 000010
2009529289.tif 000011
2009529289.tif 000012