JP2010503359A - 高速双方向通信を制御するためのシステム - Google Patents

高速双方向通信を制御するためのシステム Download PDF

Info

Publication number
JP2010503359A
JP2010503359A JP2009528250A JP2009528250A JP2010503359A JP 2010503359 A JP2010503359 A JP 2010503359A JP 2009528250 A JP2009528250 A JP 2009528250A JP 2009528250 A JP2009528250 A JP 2009528250A JP 2010503359 A JP2010503359 A JP 2010503359A
Authority
JP
Japan
Prior art keywords
data
master device
slave device
slave
master
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009528250A
Other languages
English (en)
Inventor
アール. タルボット ジェラルド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2010503359A publication Critical patent/JP2010503359A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/4906Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

高速双方向通信を制御するためのシステム(10)は、例えばメモリコントローラなどのマスタデバイス(100)に結合された、例えばメモリデバイス(410)などのスレーブデバイス(110)を有する。前記マスタデバイスは、前記マスタデバイスと前記スレーブデバイス間のデータ転送を制御するように構成されうる。前記マスタデバイスは、前記スレーブデバイスに1つ以上のクロック信号(118)を供給するように構成され、初期化モード中に前記マスタデバイスは前記1つ以上のクロック信号の位相アライメントを変更しうる。更に、前記マスタデバイスは、その後、前記スレーブデバイスから受信される情報に基づいて、前記マスタデバイスから送信するデータの位相アライメントを変更しうる。

Description

本発明は通信リンクに関し、より詳細には、双方向リンクを介するマスタデバイスとスレーブデバイス間の通信の制御に関する。
多くのシステムは、従来の高速双方向信号伝送方式を使用しており、この方式では、チャネルを介して送信される信号の振幅および位相を制御する作業が、通信リンクの両端で等しく分けられている。このようなシステムでは、リンクの両端の送信器と受信器が非常に似た機能を有することができるように、リンクの制御が対称的でありうる。
このようなシステムの例としてメモリシステムが挙げられ、このシステムには、複雑なマスタデバイス(メモリコントローラなど)と単純なスレーブデバイス(メモリデバイスなど)が存在する。双方向データ転送は、スレーブへの転送時のデータの書き込みと、スレーブからの転送時のデータの読み出しとに相当する。
高いデータ速度での転送を可能にするために、双方向データバスの両端の受信器に、クロック位相リカバリ機構が実装されうる。大きな高周波損失または反射を示すチャネルでは、シンボル間干渉(ISI)の影響からデータアイクロージャ(data eye closure)を防ぐために、チャネルが等化されうる。また、高いデータ転送速度を有するリンクでは、ビット誤りが発生する可能性が非常に高いことがある。このため、通常は誤り検出手段が実装される。上で説明したように、従来、このような機能はリンクの両端に実装されうる。しかし、双方向に伝搬するデータ波形のアナログ特性の制御を維持すると共に、スレーブデバイスを簡略化することが望ましいと考えられる。
マスタデバイスとスレーブデバイス間の高速双方向通信を制御するためのシステムおよび方法の各種実施形態が開示される。一実施形態では、システムは、例えばメモリコントローラなどのマスタデバイスに結合された、例えばメモリデバイスなどのスレーブデバイスを有する。前記マスタデバイスは、前記マスタデバイスと前記スレーブデバイス間のデータ転送を制御するように構成されうる。前記マスタデバイスは、前記スレーブデバイスに1つ以上のクロック信号を供給するように構成され、初期化モード中に前記マスタデバイスは前記1つ以上のクロック信号の位相アライメントを変更しうる。更に、前記マスタデバイスは、その後、前記スレーブデバイスから受信される情報に基づいて、前記マスタデバイスから送信するデータの位相アライメントを変更しうる。
特定の一実装では、前記マスタデバイスは、前記マスタデバイスによって実行される各リードオペレーション中に、前記スレーブデバイスから受信されるデータに応じて、前記マスタデバイスの受信器サンプルクロックの位相アライメントを適応的に変更しうる受信器位相調整回路を有する。
別の特定の実装では、通常動作中に、前記マスタデバイスは、前記スレーブデバイスから受信されるデータの計算で求めた誤り率に応じて、前記マスタデバイスが複数の双方向データパスを介して送信する前記データの前記位相アライメントを適応的に変更しうる。例えば、前記マスタデバイスは、前記スレーブデバイスに所定のパターンを送信し、計算で求めた遷移誤り率が実質的に50%になるまで、一方向における前記送信データの前記位相アライメントを調整する。また、前記マスタデバイスは、その後、もう一方の方向における前記送信データの前記位相アライメントを、データビット期間の半分と実質的に同じ量調整し、これが各データビットの中央に対応しうる。
双方向データ転送の非対称制御を備えたシステムの一実施形態のブロック図。 図1のスレーブデバイスの一実施形態のより詳細な態様を示す図。 図1および図2に示した実施形態の動作を示すフローチャート。 図1のシステムの特定の実施形態のブロック図。 図4に示したメモリモジュールの例示的なピン出力図。
本発明は、さまざまに変形されたり、代替形態を取りうるが、その特定の実施形態が、例として図面に図示され、かつ本明細書に詳細に記載される。しかし、図面およびその詳細な説明は、開示の形態に本発明を限定することを意図するものではなく、逆に、本発明が、添付の特許請求の範囲によって規定される本発明の趣旨ならびに範囲に含まれるすべての変形例、均等物および代替例を含むことを意図することが理解されるべきである。本願にわたり、「しうる」、「してもよい」との文言は、許容を示す意味(すなわち、可能性がある、可能であること)で用いられており、義務的な意味(すなわち必須)ではない点に留意されたい。
図1を参照すると、双方向データ転送の非対称制御を備えたシステムの一実施形態のブロック図が示される。システム10は、複数の信号パスおよびコネクタ150を介してスレーブデバイス110A〜110nに結合されているマスタコントローラ100を備える。図に示すように、信号パスには、双方向(bidir)データパス114、コマンドパス116および巡回冗長符号(CRC)情報パスおよびクロック118が含まれる。「スレーブデバイス110n」は、任意の数のスレーブデバイスを例示してもよいことを示す点に留意されたい。また、数字と文字を含む参照符号を付された要素が、数字のみによって参照されることもある点にも留意されたい。例えば、スレーブデバイス110Aは、必要に応じて「スレーブデバイス110」と呼ばれることもある。
図中の実施形態では、マスタコントローラ100は、制御ユニット101を備え、制御ユニット101は送信ユニット101、受信ユニット102およびクロックユニット106に結合されている。一実装では、システム10は、メモリサブシステムの例であってもよい。このため、マスタコントローラ100はメモリコントローラであり、スレーブデバイス110A〜110nはメモリデバイスなどであり、例えば、メモリデバイスのダイナミックアクセスメモリ(DRAM)の一員であるデバイスなどである。このため、コネクタ150は、複数のスレーブデバイス110などのメモリデバイスを含むメモリモジュールなどで用いられている「フィンガー」コネクタなどである。しかし、一般に、システム10は、双方向データパスを使用するシステムであればどのようなタイプのものも例示することができる点に留意されたい。
一実施形態では、コマンドパス116は、シングルエンド信号パスを介してアドレスおよび制御の情報を伝達しうる。双方向(bidir)データパス114は、双方向のシングルエンド信号パスを介してデータを双方向に伝達しうる。双方向データパス114は、多くの8ビット(バイト幅)のデータパスを含みうる。例えば、データパス全体は64ビット幅であるが、データパス全体がバイトサイズの部分に分割されてもよい。データパス全体が任意の数のデータビットを有してもよく、異なるサイズの部分に分割されてもよい点に留意されたい。CRCパス112は、一方向のシングルエンド信号パスを介してスレーブ110からマスタコントローラ100にCRC情報を伝達しうる。一実施形態では、CRCパス112には2つのCRCビットを伝達するために2つの信号パスが含まれるが、信号パスの数やビット数は任意に設定することができる。また、クロックパス118は、各スレーブデバイス110にクロック信号0、1、2および3を伝達しうる。一実装では、各クロック信号0〜3は、差動信号の対として伝達されうる。
高いデータ速度では、スレーブデバイス110またはマスタコントローラ100がビット誤りを受信する確率が非常に高くなる。このため、被保護ブロック内の複数のビット誤りを確実に検出する誤り検出コードにより、転送を保護することが必要となりうる。一実施形態では、このような複数のビット誤り検出を提供するために、CRCコードが使用されうる。より詳細には、図2に示すように、スレーブデバイス内のロジックとマスタコントローラ100への誤りの報告を簡略化するために、スレーブデバイス110は、自身が生成中のデータか自身が受信中のデータに基づいてCRCを計算する。このため、マスタコントローラ100にCRC情報を送り返すために、1つ以上の一方向CRC信号パス112が使用されうる。図2に示すように、CRC生成ユニット119Aは、自身の内部データに基づいてCRCを計算し、CRCデータをマスタコントローラ100に送り返す。リンクのいずれかの方向で誤りが検出されると、マスタコントローラ100は動作を再試行することによって誤りを訂正しうる。
一実施形態では、CRCが、マスタコントローラ100に到着したときに、CRCが保護しているデータブロックと同時にCRCが利用可能となるように、CRC情報が、スレーブデバイス110からマスタコントローラ100に転送中のデータと並列に計算され送信されてもよい。一実施形態では、CRCの計算に伴う遅延は、ライトからリードへの遷移およびリードからライトへの遷移の間にデータパスで発生する遅延によって緩和されうる。
上で説明したように、多くの従来のシステムは、例えば、クロック位相のリカバリ、チャネル等化、誤り検出などの制御機能を両方の通信デバイスに実装することによって、高速の双方向通信を制御している。しかし、下記に詳細に説明するように、スレーブデバイス110は簡略化することができる。このため、マスタコントローラ100は、スレーブデバイス110から受信された情報に基づいて、送信する書き込みデータの信号特性(例えば位相など)を動的かつ適応的に調整することができる制御機能を備え、スレーブデバイス110が正確にデータを読み出せるようにすることができる。また、マスタコントローラ100は、マスタコントローラ100が、スレーブデバイス110によって送信されるデータを受信することができるように、自身の内部受信器の特性を調整することができる。更に、マスタコントローラ100は、アドレスおよびコマンドの情報が正しくサンプリングされるように、スレーブデバイス110に供給するクロック信号118の位相を調整しうる。
より詳細には、高いデータ速度では、バス中の異なる信号用の送信パスにおける遅延が不確実であるため、これらの信号の受信器のサンプルクロックをビット単位で位相調整する必要がある。この回路をスレーブデバイス110に使用せずに済むように、マスタコントローラ100は、自身の送信クロックおよびデータ信号の位相を調整し、これにより、スレーブに複雑な移送シフト回路を使用せずに済むようにする。このため、制御ユニット101は、スレーブデバイス110から受信されるデータに基づいて位相情報を計算し、これが、マスタコントローラ100内でさまざまなクロックエッジの位相を調整するために使用されうる。例えば、制御ユニット101は、このような情報を、CRCデータおよび読み出しデータとして受け取ると、送信ユニット102、受信ユニット104およびクロックユニット106内のそれぞれの位相トラッキングおよび調整回路103、105および107を制御しうる。
図2を参照すると、図1のスレーブデバイスの一実施形態のより詳細な態様を例示する図が示される。スレーブデバイス110Aは、図1に示したどのスレーブデバイスを例示してもよい点に留意されたい。図3のスレーブデバイス110Aは、アドレスおよびコマンド信号116を受信するように結合されたコアロジック255を有する。また、スレーブデバイス110Aは、bidirデータパス114の1つの信号パスとVRef信号とを受信するために結合されたデータ入力バッファ209も備える。バッファ209の書き込みデータ出力は、フリップフロップ(FF)208の入力に結合されている。FF208の出力は、CRCユニット119Aの入力と、記憶域120Aとに結合されている。記憶域120Aからの読み出しデータ出力信号は、FF206の入力に結合されている。FF206の出力は、データ出力バッファ210に結合され、これはbidirデータパス114の同じ信号パスに結合されている。また、読み出しデータ出力信号は、CRCユニット119Aの入力にも結合されている。
CRCユニット119Aの出力は、2入力マルチプレクサ250の一方の入力に結合されている。マルチプレクサ250の出力は、FF205の入力に結合されている。FF205の出力は、出力バッファ211に結合され、出力バッファ211は、CRCおよび信号パス112の1つの信号パスに結合されている。マルチプレクサ250のもう一方の入力は、読み出しデータのデータバイトである。CRC信号パスが、読み出しデータと多重されうる。マルチプレクサの入力の選択は、スレーブコアロジック255によって提供される。1本の信号パス、このため1データビットのみが図示されているが、各スレーブデバイスが操作するデータビットの数に応じて、データ信号パスの本数は任意に設定できる点に留意されたい。例えば、スレーブデバイスがDRAMデバイスである実施形態では、各デバイスに、4、8、16などのデータパス信号が使用されてもよい。
図中の実施形態では、クロック118は、1.6GHzの差動信号として入力バッファ219に供給されるが、ほかの周波数が使用されてもよいことが考察される。バッファ219の出力は、FF218のクロック入力に結合されるシングルエンドクロック信号である。FF218の出力は、インバータ217を介してFF218の入力に結合されており、このため、FF218は、1.6GHzのクロックを2分割しているFF218の800MHzの出力は、スレーブコアロジック255内の回路にクロックを供給するためにも使用される。FF218のクリア入力は、スレーブコアロジック255に結合されており、「トレーニングリセット」と示されている。図に示すように、FF205、FF206、FF208およびFF218は、それぞれ1.6GHzのクロックによってクロック供給されている。更に、FF205、FF206およびFF208は、デュアルエッジフリップフロップとして図示されており、入力クロック信号の立ち上がりおよび立ち下りの両方で「D」入力をラッチするように構成されている。したがって、読み出しデータ、書き込みデータおよびCRC情報を、各データパスで3.2GHzで伝達することができる。
一実施形態では、書き込みデータが受信されると、このデータがFF208によってラッチされ、記憶域120Aに記憶される。各種の実施形態では、記憶域120Aは、データを記憶することができる記憶域であればどのようなタイプであってもよい。例えば、一実装では、記憶域120Aは、行と列に配置されたメモリストレージアレイであり、代表的なDRAMデバイスに使用されているような対応するセンスアンプを備えていてもよい。アドレスコマンド信号パス116で受信したアドレスとコマンドに基づいて、ストレージアレイの特定の行と列がアクセスされうる。また、記憶域120Aは、独立してアクセス可能なレジスタを1つ以上備えてもよく、これも、アドレスコマンド信号パス116で受信したアドレスとコマンドに基づいてアクセスすることができる。
上で説明したように、マルチプレクサ250を介して、スレーブデバイス110からマスタコントローラ100にCRC情報が送信される。図2に示すように、CRC信号パス112は、読み出しデータサイクルの一部の間に、データバイトのデータを伝達しうる。より詳細には、一実施形態では、2本のCRC信号パスが、8本のデータパスを保護しうる。スレーブデバイス110からマスタコントローラ100への転送時には、データブロックおよびCRCがすべて受信されるまで、ブロックのデータが正しいことを確認することができない。しかし、これにより、システムの前方向の進捗(forward progress)において重要なワードである可能性があるブロックの先頭部分のレイテンシが増大してしまう。
したがって、一実施形態では、この重要なワードとブロックの残りとの間に追加のインラインエラーコードを挿入することによって、重要なワードが更に保護されうる。例えば、読み出しデータブロックの先頭で重要なワード(例えばバイト0)を繰り返すことによって、追加の誤り検出情報が実装されうる。重要なワードを2回送信することによって、マスタコントローラ100は、2つのコピー間で各ビットが同じであることを検証することができ、この重要なワードの誤り率が実質的に低下し、このため、ブロックのCRCを完全に受信する前に、重要なワードを、正しいデータとして扱えるようになる。換言すると、リードオペレーション中に、スレーブデバイス110は、読み出しブロックの最初の2ビートまたはビットタイミング中に重要なワードを送信することができる。一実施形態では、重要な先頭データワードの2つのコピーのための空きを作るために、データバイトの1つ(例えばバイト3)が、読み出しブロックの最初の4ビートの間にCRCパスに出力されうる。バス効率に対する影響を最小限に押さえると共に、CRCから十分な誤り保護を得るために、CRCが計算されるブロックすべてに、データがグループ化されうるという点に留意されたい。
図3の説明に関連して後で詳細に説明するように、動作中に、マスタコントローラ100は、送信される書き込みデータの信号特性(例えば位相など)、およびその内部の受信器特性を動的かつ適応的に調整し、スレーブデバイス110に供給するクロック信号118の位相を調整しうる。より詳細には、上で説明したように、受信ユニット104は、サンプルクロック位相調整回路105を備え、サンプルクロック位相調整回路105はバン−バン(bang-bang)位相検出器(図示せず)を備えうる。よって、マスタコントローラ100がスレーブデバイス110からデータを受信している間はいつでも、受信ユニット104は、スレーブデバイス110によって送信されるデータをより最適に受信するために、バン−バン位相検出器を使用して、自身のローカルサンプルクロック位相を調整しうる。また、マスタコントローラ100は、クロック位相調整ロジック107も備え、これは、各クロック信号120の位相を調整するために使用されうる。例えば、電源投入リセットなどの初期化処理中に、マスタコントローラ100は、各スレーブデバイスが、アドレスおよびコマンド信号116を正しくサンプリングできるようにするために、各クロック信号118の位相を調整しうる。更に、マスタコントローラ100は、送信データ位相調整ロジック103も備え、これは、スレーブデバイス110Aに送信される書き込みデータの位相を調整するために使用されうる。初期化中、および動作中に所定の間隔で、マスタコントローラ100は、スレーブデバイス110Aが、書き込みデータをより最適に受信できるようにするために、送信データの位相を調整しうる。
図3は、図1および図2に示した実施形態の動作を示すフローチャートである。上で説明したように、マスタコントローラ100は、スレーブデバイスが正確に受信できるデータを送信し、スレーブデバイスが送信するデータを正確に受信できるように、自身のクロック特性、送信特性および受信特性を適応的に変更するように構成されうる。
図4は、図1に示したシステムの一実装を示す図である。図に示すように、システム10は、デュアルインラインメモリモジュール(DIMM)410に結合されたメモリコントローラ100を有するメモリサブシステムである。このため、メモリコントローラ100は、図1に示したマスタコントローラ100を例示しており、DIMM410は、図1のスレーブデバイス110を例示している複数のDRAMデバイス110Aを備える。
図中の実施形態では、図1のクロック信号120がMCLK0〜MCLK3として図示されている。また、上で説明したように、MCLK1は、最初の5つのDRAMデバイス110に結合されており、MCLK0は、続く4つのDRAMデバイス110に結合されている。同様に、MCLK2およびMCLK3は、続く5つのDRAMデバイスおよび4つのDRAMデバイスに結合されている。図中の実施形態では、アドレス/コマンド116信号パスは、DRAMデバイス110に並列に結合されているが、DIMMの一端から他端に結合されている。このため、アドレス/コマンド信号のこの特定の経路により、特にDRAMデバイス同士が離れるほど、DRAMデバイス間で信号のスキューが生じる。後で詳しく説明するように、DRAMデバイス110のグループに供給される各クロックは、ほかの各クロックとは独立して位相調整されうる。
図1〜図4と、図3のブロック300の開始点とを併せて参照すると、リセットまたは電源投入状態(ブロック300)後に、マスタコントローラ100は、各スレーブがアドレスおよびコマンド情報を正しくラッチすることができるように、各クロック信号を独立して整合させうる(ブロック305)。より詳細には、一実施形態では、共通クロックに結合されたスレーブデバイスのクロックスキューが同程度になるように、クロック信号(例えばクロック0、クロック1、クロック2など)のそれぞれが、1つ以上の個々のスレーブデバイス110に配線されうる(may be routed)。また、図4に示すように、アドレス/コマンド信号パス116は、全てのスレーブデバイスに並列に、DIMM410の一端から他端に配線されている。このように、あるクロック(例えばMCLK1)を有するあるスレーブデバイス(例えば110A)でのアドレス/コマンド信号のタイミングが、別のクロック(例えばMCLK2)を有する別のスレーブデバイス(例えば110n)でのアドレス/コマンド信号のタイミングと大きくずれていることがある。しかし、共通クロックが結合されているすべてのスレーブデバイスが、アドレス/コマンド信号を正しく捕捉することができるように、共通クロックの位相が調整されるように、アドレス/コマンド信号のスキューが、共通クロックに結合されているスレーブデバイス間で十分近くなる。
このため、一実施形態では、クロック118を整合させるために、各スレーブデバイス110は、記憶域120Aに所定値を記憶させうる。この値は、スレーブデバイス(例えば110A)に特定のアドレスまたはコマンドを送信することによってアクセスすることができ、これにより、格納されている値がスレーブデバイス110からマスタコントローラ100に送信されうる。スレーブデバイス110Aのクロック分周回路(例えばFF218)が、入力クロックを正しくサンプリングしている(ブロック310)場合、マスタコントローラ100は、記憶域120Aに記憶されている正しい値を読み出すことができる。しかし、良好な初期マージンを得るために、クロック位相調整回路107は、2サイクルの間、クロック位相をスイープしうる。一実施形態では、制御ユニット101は、クロック位相を調整するために、位相調整回路107にデジタル信号を供給しうる(ブロック310)。クロック位相の調整中に、読み出しデータが継続的にチェックされ、制御ユニット101は、最も正確な結果が得られたクロック位相調整範囲を決定し、スレーブデバイス110Aがマスタクロックにロックされているかどうかを判定しうる(ブロック315)。スレーブデバイス分周器(FF218)の1つ以上が間違ったエッジで1.6GHzのクロックを捕捉していることが起こりうる。このような場合、スレーブロジック255は、FF218に、トレーニングリセット信号を供給しうる(ブロック320)。各スレーブデバイス110がそれぞれのマスタクロックにロックされると(ブロック315)、動作はブロック325に進み、マスタコントローラ100の受信ユニット104が、スレーブデバイス110から読み出しデータを正しく受信するためにトレーニングされうる。
一実装では、位相アライメントトレーニング中に、データがスレーブデバイス110に書き込まれて、記憶されうる点に留意されたい。しかし、一部の実施形態では、トレーニング中にしか使用されない特別なレジスタを設けることが望ましくないこともある。このことは、特にDRAMデバイスについていえる。このため、DRAMデバイスのセンスアンプが、トレーニング中にスクラッチパッド記憶域として使用されうる。より詳細には、所定のメモリセルからビット値が読み出されると、そのセルに記憶されている電荷がセンスアンプに転送されて、その後読み出される。しかし、個々の記憶セルにそのデータを書き込む必要はない。
位相調整回路105は、読み出しデータとCRCデータを正確に受信するために、サンプルクロック位相を調整しうる。一実施形態では、制御ユニット101は、受信ユニット104が読み出しデータに最適にロックされているかどうかを判定する回路を備えうる。受信ユニット104が読み出しデータに最適にはロックされていない場合(ブロック330)、制御ユニット101は、位相調整回路105に制御信号を供給しうる。より詳細には、一実施形態では、位相検出および調整回路105内のバン−バン位相検出器を使用して、CRCデータおよび読み出しデータで2つのサンプリングが行われうる。1つのサンプリングはデータの中央で、1つのサンプリングはデータの端で行われうる。これらのサンプリングの結果から、制御ユニット101は、サンプリングが早く行われたか、遅く行われたか、中程度で行われたかを判定しうる。この結果に基づいて、制御ユニット101は、受信位相調整回路105の位相を調整しうる(ブロック335)。受信ユニット104が読み出しデータにロックされている場合(ブロック330)、動作はブロック340に進み、送信ユニット102は、スレーブデバイスが読み出すことができるデータを書き込むためにトレーニングされうる。なお、通常動作中は、読み出しデータが受信されるたびに、受信ユニット104は継続的にトレーニングされうる。
受信ユニット104が読み出しデータおよびCRCデータにロックされているとマスタコントローラ100が判定した(ブロック330)場合、マスタコントローラ100は、スレーブデバイス110が正確に受信することができるデータを送信するために、送信ユニット102をトレーニングしようと試みる。より詳細には、マスタコントローラ100は、スレーブデバイス110に書き込みデータのトレーニングパターンを送信する(ブロック340)。一実装では、トレーニングパターンは、0から1、1から0への遷移を多く含んでもよい。制御ユニット101は、スレーブが書き込みデータにロックされているかどうかを判定しうる。スレーブが書き込みデータにロックされないと制御ユニット101が決定した場合(ブロック345)、制御ユニット101は書き込みデータの位相を調整しうる。一実施形態では、読み出しデータでみられる遷移ビット(例えば、0から1の遷移)に対して、書き込みデータが、スレーブデバイス110によってほぼ50%の誤り率で不正確にラッチされて記憶される程度に、書き込みデータの位相が十分外れて調整されうる(ブロック350)。50%の遷移誤り率は、書き込みデータがエッジの近くでサンプリングされていることを示しうる。次に、書き込みデータの位相が、0.5データビット時間に調整されうる。これにより、FF208が各データビットの中央付近でデータをサンプリングするようになる。この処理が、各スレーブデバイス110の各データ信号パスに対して行われうる。スレーブデバイス110がデータにロックされているとマスタコントローラ100が判定すると、システム10は通常動作を開始しうる(ブロック355)。
ブロック360に進み、システム10の通常動作中に、ダイのこのような温度差のために、さまざまなクロックおよびデータの位相がドリフトしうる。上で説明したように、読み出しが発生しており、データパスでデータが転送されている限り、マスタコントローラ100によって読み出しデータの位相アライメントが継続的に確認されうる。しかし、バストラフィックで大きなギャップが生ずると、位相が検知不能にドリフトすることがある。このように、制御ユニット101は、トレーニングシーケンス間の経過時間を測定することによって、所定の間隔で書き込みデータの位相をトレーニングしうる(ブロック365)。書き込みデータ位相のトレーニング間の経過時間が所定の範囲を越えている場合(ブロック370)、制御ユニット101は、上で説明したように、多くの遷移を含む書き込みデータのトレーニングパターンを書き込み(ブロック375)、書き込みデータの位相を調整して(ブロック385)、ブロック345〜350で上で説明したようにほぼ50%の遷移誤り率を探すことによって、書き込みデータの位相をトレーニングする。スレーブデバイス110が書き込みデータにロックされていると制御ユニット101が判定すると(ブロック380)、システム10は通常動作を続ける。
図5を参照すると、図4のメモリモジュールの一実施形態の例示的なピン図が示される。図4に示す実施形態では、メモリモジュールはDIMMである。代表的な場合、DIMMは、通常はソケットに摺動するフィンガーコネクタを有する回路基板を有する。フィンガーコネクタは、ソケット内のスプリング式接点と係合する金属パッドを有する。フィンガーコネクタからDRAMデバイスに各種信号が配線されている。望ましい信号品質のクロック信号を得るためには、ピン図に示すように、クロック信号がフィンガーコネクタの端に配置される。
上の実施形態についてかなり詳細に記載したが、上記の開示を完全に理解できれば、数多くの変形例および変更例が当業者にとって自明であろう。下記の特許請求の範囲は、このような変形例および変更例を全て包含するものと解釈されることが意図される。
本発明は、一般に、通信リンク、および双方向リンクを介するマスタデバイスとスレーブデバイス間の通信の制御に利用可能である。

Claims (10)

  1. スレーブデバイス(110A)と、
    前記スレーブデバイスに結合されたマスタデバイス(100)であって、前記マスタデバイスと前記スレーブデバイス間のデータ転送を制御するように構成されたマスタデバイスとを備え、
    前記マスタデバイスは前記スレーブデバイスに1つ以上のクロック信号(118)に供給するように構成されており、
    初期化モード中に、前記マスタデバイスは、前記1つ以上のクロック信号の位相アライメントを変更し、その後、前記スレーブデバイスから受信される情報に基づいて、前記マスタデバイスから送信するデータの位相アライメントを変更するように更に構成されているシステム(10)。
  2. 前記スレーブデバイスから受信される前記情報は、1つ以上の一方向CRCデータパス(112)を介して送信される巡回冗長符号(CRC)情報を含み、前記CRC情報は、前記マスタデバイスが複数の双方向データパス(114)を介して送信するデータに対応している請求項1に記載のシステム。
  3. 前記マスタデバイスは、前記CRC情報に応じて、前記マスタデバイスの受信器サンプルクロックの位相アライメントを適応的に変更するように構成された受信器位相調整回路(104)を有する請求項1または2に記載のシステム。
  4. 前記マスタデバイスは、前記マスタデバイスによって実行される各リードオペレーション中に、前記スレーブデバイスから受信されるデータに応じて、前記マスタデバイスの受信器サンプルクロックの位相アライメントを適応的に変更するように構成された受信器位相調整回路(104)を有する請求項1〜3のいずれか1項に記載のシステム。
  5. 通常動作中に、前記マスタデバイスは、前記スレーブデバイスから受信されるデータの計算で求めた誤り率に応じて、前記マスタデバイスが複数の双方向データパスを介して送信する前記データの前記位相アライメントを適応的に変更するように更に構成されている請求項1に記載のシステム。
  6. 前記マスタデバイスは、前記スレーブデバイスに所定のパターンを送信し、計算で求めた遷移誤り率が実質的に50%になるまで、一方向における前記送信データの前記位相アライメントを調整し、その後、もう一方の方向における前記送信データの前記位相アライメントを、データビット期間の半分と実質的に同じ量調整するように構成されている請求項5に記載のシステム。
  7. 前記マスタデバイスは、アドレス/コマンド信号パス(116)に所定のコマンドを送信し、前記所定のコマンドに応答して前記スレーブから受信されるデータに応じて、前記1つ以上のクロック信号の前記位相アライメントを調整するように構成されている請求項1に記載のシステム。
  8. マスタデバイス(100)が前記マスタデバイスとスレーブデバイス(110A)間のデータ転送を制御するステップと、
    前記マスタデバイスが前記スレーブデバイスに1つ以上のクロック信号(118)を供給するステップと、
    初期化モード中に、前記マスタデバイスが、前記1つ以上のクロック信号の位相アライメントを変更し、その後、前記スレーブデバイスから受信される情報に基づいて、前記マスタデバイスから送信するデータの位相アライメントを変更するステップと、を有する方法。
  9. 前記スレーブデバイスから受信される前記情報は、1つ以上の一方向CRCデータパス(112)を介して送信される巡回冗長符号(CRC)情報を含み、前記CRC情報は、前記マスタデバイスが複数の双方向データパス(114)を介して送信するデータに対応している請求項8に記載の方法。
  10. メモリデバイス(410)と、
    前記メモリデバイスに結合されたメモリコントローラ(100)であって、前記メモリコントローラと前記メモリデバイス間のデータ転送を制御するように構成されたメモリコントローラとを備え、前記メモリコントローラは前記メモリデバイスに1つ以上のクロック信号(118)に供給するように構成されており、
    初期化モード中に、前記メモリコントローラは、前記1つ以上のクロック信号の位相アライメントを変更し、その後、前記メモリデバイスから受信される情報に基づいて、前記メモリコントローラから送信するデータの位相アライメントを変更するように更に構成されているメモリサブシステム。
JP2009528250A 2006-09-11 2007-09-11 高速双方向通信を制御するためのシステム Pending JP2010503359A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/518,843 US7783954B2 (en) 2006-09-11 2006-09-11 System for controlling high-speed bidirectional communication
PCT/US2007/019681 WO2008033312A2 (en) 2006-09-11 2007-09-11 System for controlling high-speed bidirectional communication

Publications (1)

Publication Number Publication Date
JP2010503359A true JP2010503359A (ja) 2010-01-28

Family

ID=39096037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009528250A Pending JP2010503359A (ja) 2006-09-11 2007-09-11 高速双方向通信を制御するためのシステム

Country Status (6)

Country Link
US (1) US7783954B2 (ja)
EP (1) EP2064610A2 (ja)
JP (1) JP2010503359A (ja)
CN (1) CN101548253B (ja)
TW (1) TWI417736B (ja)
WO (1) WO2008033312A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110088882A (ko) * 2010-01-29 2011-08-04 삼성전자주식회사 반도체 메모리 시스템
JP2012070092A (ja) * 2010-09-21 2012-04-05 Fuji Xerox Co Ltd 通信装置及び通信システム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100821584B1 (ko) * 2007-03-09 2008-04-15 주식회사 하이닉스반도체 라이트 트래이닝 기능을 갖는 반도체 메모리 장치
US8489911B1 (en) * 2009-09-22 2013-07-16 Nvidia Corporation Hardware WCK2CK training engine using meta-EDC sweeping and adjustably accurate voting algorithm for clock phase detection
JP5017348B2 (ja) * 2009-10-26 2012-09-05 ザインエレクトロニクス株式会社 送信装置、受信装置、送受信システムおよび画像表示システム
US8533538B2 (en) * 2010-06-28 2013-09-10 Intel Corporation Method and apparatus for training a memory signal via an error signal of a memory
JP2012059184A (ja) * 2010-09-13 2012-03-22 Nec Computertechno Ltd メモリコントローラ、これを備えたメモリシステム及びメモリデバイスの制御方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000196571A (ja) * 1998-12-24 2000-07-14 Hitachi Ltd 位相調整方式
JP2004222132A (ja) * 2003-01-17 2004-08-05 Matsushita Electric Ind Co Ltd 同期データ通信装置及びその通信方法
JP2005018439A (ja) * 2003-06-26 2005-01-20 Hitachi Ltd メモリモジュールおよびバスシステム
JP2005039638A (ja) * 2003-07-17 2005-02-10 Nec Corp データ転送システム及びそれに用いる再調整制御方法並びにそのプログラム
JP2009529289A (ja) * 2006-03-06 2009-08-13 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 高速双方向信号伝送の非対称制御

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62177768A (ja) * 1986-01-31 1987-08-04 Sony Corp エラ−訂正装置
JPH1139868A (ja) 1997-07-18 1999-02-12 Matsushita Electric Ind Co Ltd 半導体集積回路システム、半導体集積回路、及び半導体集積回路システムの駆動方法
JP2000232670A (ja) * 1999-02-09 2000-08-22 Sony Corp 通信装置、通信システムおよびその方法
US6839393B1 (en) 1999-07-14 2005-01-04 Rambus Inc. Apparatus and method for controlling a master/slave system via master device synchronization
US6321282B1 (en) 1999-10-19 2001-11-20 Rambus Inc. Apparatus and method for topography dependent signaling
JP2001268059A (ja) 2000-03-22 2001-09-28 Oki Electric Ind Co Ltd 無瞬断切替装置
US6898726B1 (en) * 2000-11-15 2005-05-24 Micron Technology, Inc. Memory system that sets a predetermined phase relationship between read and write clock signals at a bus midpoint for a plurality of spaced device locations
US6516282B2 (en) 2001-04-19 2003-02-04 Ge Medical Systems Global Technology Company Predictive thermal control used with a vacuum enclosed coil assembly of a magnetic resonance imaging device
JP3766791B2 (ja) * 2001-10-12 2006-04-19 シャープ株式会社 高周波フィルタ回路および高周波通信装置
US7234099B2 (en) * 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
TWI278754B (en) * 2003-10-09 2007-04-11 Broadcom Corp Phase controlled high speed interfaces
US7516029B2 (en) 2004-06-09 2009-04-07 Rambus, Inc. Communication channel calibration using feedback

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000196571A (ja) * 1998-12-24 2000-07-14 Hitachi Ltd 位相調整方式
JP2004222132A (ja) * 2003-01-17 2004-08-05 Matsushita Electric Ind Co Ltd 同期データ通信装置及びその通信方法
JP2005018439A (ja) * 2003-06-26 2005-01-20 Hitachi Ltd メモリモジュールおよびバスシステム
JP2005039638A (ja) * 2003-07-17 2005-02-10 Nec Corp データ転送システム及びそれに用いる再調整制御方法並びにそのプログラム
JP2009529289A (ja) * 2006-03-06 2009-08-13 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 高速双方向信号伝送の非対称制御

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110088882A (ko) * 2010-01-29 2011-08-04 삼성전자주식회사 반도체 메모리 시스템
KR101663158B1 (ko) * 2010-01-29 2016-10-06 삼성전자 주식회사 반도체 메모리 시스템
JP2012070092A (ja) * 2010-09-21 2012-04-05 Fuji Xerox Co Ltd 通信装置及び通信システム

Also Published As

Publication number Publication date
WO2008033312A3 (en) 2008-05-08
CN101548253B (zh) 2012-11-28
US20080065967A1 (en) 2008-03-13
TWI417736B (zh) 2013-12-01
CN101548253A (zh) 2009-09-30
WO2008033312A2 (en) 2008-03-20
US7783954B2 (en) 2010-08-24
TW200823673A (en) 2008-06-01
EP2064610A2 (en) 2009-06-03

Similar Documents

Publication Publication Date Title
JP5300732B2 (ja) 高速シリアルバッファを有するメモリシステム
US8019907B2 (en) Memory controller including a dual-mode memory interconnect
US7219294B2 (en) Early CRC delivery for partial frame
US7143207B2 (en) Data accumulation between data path having redrive circuit and memory device
JP2010503359A (ja) 高速双方向通信を制御するためのシステム
CN109712661B (zh) 半导体存储器装置和包括半导体存储器装置的存储器系统
TWI421699B (zh) 用於高速雙向發信號之非對稱控制方法及系統
US20100180143A1 (en) Techniques for improved timing control of memory devices
US8489912B2 (en) Command protocol for adjustment of write timing delay
US7212423B2 (en) Memory agent core clock aligned to lane
WO2005050465A2 (en) Lane testing with variable mapping
US20060004953A1 (en) Method and apparatus for increased memory bandwidth
KR20120062870A (ko) 에러 검출 기법들에 의거한 메모리 쓰기 타이밍의 조정
US7861140B2 (en) Memory system including asymmetric high-speed differential memory interconnect
US7721160B2 (en) System for protecting data during high-speed bidirectional communication between a master device and a slave device
WO2010065290A2 (en) Memory system with command filtering
US11996162B2 (en) Synchronous input buffer enable for DFE operation
US20240168091A1 (en) Transmitter for ultra-high speed and storage device including the same
KR100665918B1 (ko) 번인 테스트 시스템을 위한 선로 인터페이스 장치
KR20240074213A (ko) 초고속 송신기 및 이를 포함하는 스토리지 장치

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100421

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20100902

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120509

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121010