(57)【要約】  データと、対応する第１のデータストローブとを複数のエンドポイントへと駆動するメモリコントローラが提供される。各エンドポイントは、第１のデータストローブに応じて、メモリコントローラから受信されたデータを記録し、次いで、受信されたデータを、第２のデータストローブに応じて再記録するように構成される。クロック同期回路は、エンドポイントの１つにおける受信された第１のデータストローブを、第２のデータストローブと十分に同期するように保つよう機能する。
2017517820.tif 000002
【特許請求の範囲】
【請求項１】
集積回路であって、前記集積回路は下記を備える、
データソースと、
複数のエンドポイント、ここにおいて、各エンドポイントは、
複数の第１のレジスタと、
各第１のレジスタが多重分離シーケンスに従って多重分離されたデータを受信するように、前記データソースから受信されたデータを多重分離するように構成されたデマルチプレクサ、ここにおいて、各第１のレジスタは、前記データソースから受信された第１のデータストローブに応じて、前記デマルチプレクサから受信された前記多重分離されたデータを記録するように構成される、と、
前記多重分離シーケンスの遅延されたバージョンに従って、前記エンドポイントの第１のレジスタの各々からのデータ出力を選択するように構成されたマルチプレクサと、
第２のデータストローブに応じて、前記マルチプレクサからの前記選択されたデータ出力を記録するように構成された第２のレジスタと、
を含む。
【請求項２】
前記データソースは、メモリコントローラを備える、請求項１に記載の集積回路。
【請求項３】
前記第２のデータストローブを前記第２のレジスタに送信するように構成されたクロックソースをさらに備える、請求項１に記載の集積回路。
【請求項４】
各エンドポイントにおける前記複数の第１のレジスタは、３つの第１のレジスタを備える、請求項１に記載の集積回路。
【請求項５】
各エンドポイントにおける前記複数の第１のレジスタは、４つの第１のレジスタを備える、請求項１に記載の集積回路。
【請求項６】
前記データソースは、前記デマルチプレクサの各々で、前記多重分離シーケンスを制御するように構成された書込みポインタを含む、請求項２に記載の集積回路。
【請求項７】
各エンドポイントは、前記エンドポイントのマルチプレクサにおいて、前記多重分離シーケンスの前記遅延されたバージョンを制御するように構成された読取りポインタをさらに備える、請求項１に記載の集積回路。
【請求項８】
前記複数のエンドポイントに対応する複数のデータパス、ここにおいて、各データパスは、前記メモリコントローラから、前記対応するエンドポイントでの前記デマルチプレクサへと延び、前記メモリコントローラが、データを各データパスで、前記対応するエンドポイントのデマルチプレクサへと送信するように構成される、と、
前記複数のエンドポイントに対応する複数のクロックパス、ここにおいて、各クロックパスは、前記メモリコントローラから、前記対応するエンドポイントにおける前記第１のレジスタの各々へと延び、前記メモリコントローラが、前記第１のデータストローブを前記対応するクロックパスで、各エンドポイントへと送信するように構成される、と、
をさらに備える、請求項２に記載の集積回路。
【請求項９】
前記データパスおよび前記クロックパスはすべて、互いに電気的に整合されている、請求項８に記載の集積回路。
【請求項１０】
前記クロックソースは、位相同期ループ（ＰＬＬ）を備える、請求項３に記載の集積回路。
【請求項１１】
前記第２のデータストローブを受信し、複数の遅延クロックを生成するように構成された多相クロック発生器、ここで、各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有する、と、
位相エラーに基づいて、前記遅延クロックのうちの１つを選択するように構成されたセレクタ回路、ここで、前記セレクタ回路が、前記選択された前記遅延クロックのうちの１つを前記データソースにラウンチするようにさらに構成され、ここにおいて、前記データソースが、前記受信され選択された遅延クロックを前記第１のデータストローブとして使用するように構成され、前記セレクタ回路が、前記位相エラーを決定するために、前記エンドポイントのうちの１つにおける前記受信された第１のデータストローブを、前記第２のデータストローブと比較するようにさらに構成される、と、
を備える、請求項３に記載の集積回路。
【請求項１２】
前記セレクタ回路は、前記位相エラーに応じて、前記遅延クロックの前記選択された１つを選択するためのマルチプレクサを含む、請求項１１に記載の集積回路。
【請求項１３】
前記セレクタ回路は、第１のデジタルワードを決定するために、前記受信されたローカルクロックを前記複数の遅延クロックと比較し、また第２のデジタルワードを決定するために、前記基準クロックを前記複数の遅延クロックと比較するように構成された多相検出器を含み、前記多相検出器は、前記位相エラーを決定するために、前記第１のデジタルワードと前記第２のデジタルワードとを比較するようにさらに構成される、請求項１１に記載のクロック同期回路。
【請求項１４】
前記多相クロック発生器は、遅延同期ループ（ＤＬＬ）を備える、請求項１１に記載のクロック同期回路。
【請求項１５】
集積回路内で、各エンドポイントが、第１のデータストローブとデータとを受信するように、前記データと、対応する前記第１のデータストローブとを、データソースから複数のエンドポイントに送信することと、
各第１のレジスタが、前記エンドポイントの第１のレジスタに対する多重分離シーケンスに従って多重分離されたデータを受信するように、前記受信されたデータを、各エンドポイントにおける複数の第１のレジスタへと多重分離することと、
前記受信された第１のデータストローブに応じて、前記受信され多重分離されたデータを、各第１のレジスタに記録することと、
前記エンドポイントに対する選択されたデータ信号を形成するために、前記多重分離シーケンスの遅延されたバージョンに従って、各エンドポイントにおける前記複数の第１のレジスタから選択することと、
各エンドポイントにおいて、第２のデータストローブに応じて、前記エンドポイントの選択されたデータ信号を第２のレジスタに記録することと、
を特許請求する方法。
【請求項１６】
各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有するように、複数の遅延クロックを生成することと、
選択された遅延クロックを形成するために、位相エラーに応じて、前記複数の遅延クロックから選択することと、
前記選択された遅延クロックを、クロックパスの第１の端部に駆動することと、
前記選択された遅延クロックを前記クロックパスの前記第１の端部に駆動することに応じて、前記第１のレジスタのうちの１つで、前記クロックパスの第２の端部からの前記第１のデータストローブを受信することと、
前記位相エラーを決定するために、前記クロックパスの前記第２の端部からの前記受信された第１のデータストローブを、前記第２のデータストローブと比較することと、
をさらに備える、請求項１５に記載の方法。
【請求項１７】
前記多重分離は、少なくとも３：１の多重分離である、請求項１５に記載の方法。
【請求項１８】
前記多重分離は、少なくとも４：１の多重分離である、請求項１５に記載の方法。
【請求項１９】
各エンドポイントで前記選択することは、少なくとも３：１の多重化である、請求項１５に記載の方法。
【請求項２０】
各エンドポイントで前記選択することは、少なくとも４：１の多重化である、請求項１５に記載の方法。
【請求項２１】
集積回路であって、前記集積回路は下記を備える、
データソースと、
複数のエンドポイント、ここにおいて、各エンドポイント、前記データソースからの受信された第１のデータストローブに従って前記データソースからのデータを記録することと、第２のデータストローブに従って前記データを記録することとの間のセットアップ時間を変えるための手段、と、
前記第２のデータストローブを生成するように構成されたクロックソース。
【請求項２２】
前記複数のエンドポイントに対応する複数のデータパス、ここにおいて、各データパスは、前記データソースから、前記対応するエンドポイントでの前記手段へと延び、前記メモリコントローラが、データを、各データパスで前記対応するエンドポイントのデマルチプレクサへと送信するように構成される、と、
前記複数のエンドポイントに対応する複数のクロックパス、ここにおいて、各クロックパスは、前記データソースから、前記対応するエンドポイントにおける各手段へと延び、前記データソースが、前記第１のデータストローブを、前記対応するクロックパスで各エンドポイントに送信するように構成される、と、
をさらに備える、請求項２１に記載の集積回路。
【請求項２３】
前記第２のデータストローブを受信し、複数の遅延クロックを生成するように構成された多相クロック発生器、ここで、各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有する、と、
位相エラーに基づいて、前記遅延クロックのうちの１つを選択するように構成されたセレクタ回路、ここで、前記セレクタ回路が、前記遅延クロックの前記選択された１つを、前記データソースにラウンチするようにさらに構成され、ここにおいて、前記データソースが、前記受信され選択された遅延クロックを前記第１のデータストローブとして使用するように構成され、前記セレクタ回路が、前記位相エラーを決定するために、前記エンドポイントのうちの１つにおける前記受信された第１のデータストローブを、前記第２のデータストローブと比較するようにさらに構成される、と、
をさらに備える、請求項２１に記載の集積回路。
【請求項２４】
前記クロックソースは、位相同期ループ（ＰＬＬ）を備える、請求項２１に記載の集積回路。
【請求項２５】
前記データソースは、メモリコントローラを備える、請求項２１に記載の集積回路。
【請求項２６】
前記データパスおよび前記クロックパスはすべて、互いに電気的に整合されている、請求項２２に記載の集積回路。
【請求項２７】
集積回路であって、前記集積回路は下記を備える、
データソースと、
複数のエンドポイント、ここにおいて、各エンドポイントは、
第１のデータストローブに応じて、前記データソースからのデータを記録するように構成された複数の第１のレジスタと、
第２のデータストローブに応じて、前記第１のレジスタからの前記データを記録するように構成された第２のレジスタと、
を含む、と、
前記第２のデータストローブを受信し、複数の遅延クロックを生成するように構成された多相クロック発生器、ここで、各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有する、と、
位相エラーに基づいて、前記遅延クロックのうちの１つを選択するように構成されたセレクタ回路、ここで、前記セレクタ回路が、前記遅延クロックの前記選択された１つを、前記データソースにラウンチするようにさらに構成され、ここにおいて、前記データソースは、前記選択された遅延クロックを、前記第１のデータストローブとして、前記エンドポイントへの前記送信に使用するように構成され、前記セレクタ回路が、前記位相エラーを決定するために、前記エンドポイントのうちの１つにおける前記受信された第１のデータストローブを、前記第２のデータストローブと比較するようにさらに構成される。
【請求項２８】
前記データソースが、メモリコントローラを備える、請求項２７に記載の集積回路。
【請求項２９】
前記多相クロック発生器が、遅延同期ループを備える、請求項２７に記載の集積回路。
【請求項３０】
各エンドポイントにおける前記複数の第１のレジスタは、少なくとも３つの第１のレジスタを備える、請求項２７に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
[0001]本出願は、参照によりその全体が組み込まれる、２０１４年６月１２日に出願された特許出願第１４／３０２，７２７号の利益を主張するものである。
【０００２】
[0002]本出願は、複数のエンドポイントに分散されるクロック信号およびデータの同期化に関する。
【背景技術】
【０００３】
[0003]ソース同期システムでは、データソースは、クロックパス上のクロックとともにデータパス上でデータをエンドポイントに送信する。クロックパスおよびデータパスが電気的に整合されている（たとえば、同じインピーダンスを有する経路上で同じワイヤ長さである）場合、データ信号がデータパス上を伝播するときにどのようなスキューを受けても、クロックパス上を伝播するクロック信号により整合される。このように、クロックおよびデータは、伝播中にいかなる経路のタイミング歪みが生じても、行き先において同期している。分散クロックツリー技法と比較すると、ソース同期送信に対して得られるデータ速度は、通常、はるかに高い。したがって、ソース同期データ送信は、多種多様のマイクロプロセッサおよびシステムオンチップ（ＳＯＣ）上でデータ送信を行うための一般的な技法である。
【０００４】
[0004]ＳＯＣの複雑さが高まるにつれて、すべてがソース同期エンドポイントであり得るますます多くの下位の構成要素が含まれる。データの送信速度が増加する場合は特に、そのように多くのエンドポイントの同期をとることは非常に困難なものとなる。図１は、複数のエンドポイントにソース同期データを送信するためのメモリコントローラ１０５を含む従来のＳＯＣ１００を示しており、それは、外部メモリと通信するための物理的なインターフェースモジュールを含み得る。説明を分かりやすくするために、図１では、第１のエンドポイント１１５と、最後のｎ番目のエンドポイント１２０だけが示されている。ｎ個のエンドポイントの各々は、メモリコントローラ１０５から、それぞれのデータパスおよびクロックパスを介してデータ信号およびクロック信号の対を受信する。それに関して、メモリコントローラ１０５は、メモリコントローラ１０５内のデータレジスタと、エンドポイントにおける対応するデータレジスタとをクロック制御する、ＰＬＬ１１０などのクロックソースとインターフェースをとる、またはクロックソースを含む。メモリコントローラ１０５とエンドポイントの間のクロックパスおよびデータパスはすべて、互いに電気的に整合されている。たとえば、経路長が同じである、経路インピーダンスが整合している、および以下同様のものである。そのような整合は、概して、すべてのエンドポイントにわたって、受信されたクロックとデータの対とを互いに同期状態に維持する。しかし、メモリコントローラ１０５とエンドポイントの間の距離は、数ミリメートルなど、比較的大きくなる可能性がある。そのような比較的長い伝播経路にわたって信号強度を維持するために、データパスおよびクロックパスの各々は、複数のバッファを含み得る。バッファリング、および比較的長い伝播経路、ならびにダイにわたる避けられない温度、電圧、およびプロセス変動は、クロックおよびデータ信号対を、クロックパスおよびデータパスの電気的な整合にもかかわらず、様々なエンドポイントで受信されたとき、互いに対してスキューが生じ、もはや位相が整合されなくする可能性がある。データおよびクロック対の間のスキューは、次いで、それらが、エンドポイントから外部メモリに送り出されると悪化する。比較的低いデータ転送速度では、スキューは、そのような低いデータ転送速度におけるクロック周波数の比較的長い周期と比較すると小さくなり得るので、許容され得る。しかし、データ転送速度がさらに高くなると、図１で示されたソース同期送信は、スキュー、ジッタ、およびデューティサイクルの歪みにより生ずるエラーに起因して、維持できなくなり得る。
【０００５】
[0005]したがって、複数のソース同期エンドポイントを有するシステムに対して改善されたクロック分散アーキテクチャが当技術分野で求められている。
【発明の概要】
【０００６】
[0001]集積回路内の複数のエンドポイントに、データと、対応する第１のデータストローブとを送信する、メモリコントローラのようなソース同期データソースを含む集積回路が提供される。エンドポイントおよびデータソースは、距離が１ミリメートルの数分の１またはそれ以上に分離されるように、互いに比較的離れている可能性がある。この分離がある場合、各エンドポイントへのデータは、適切な信号振幅およびレイテンシを維持するための複数のバッファを含む、データソースからの対応するデータパス上を進み得る。同様に、第１のデータストローブは、複数のバッファを含み得る対応するクロックパス上を、データソースからエンドポイントへと進む。
【０００７】
[0002]各エンドポイントは、多重分離の順序に従って、受信されたデータを複数の第１のレジスタへと多重分離するデマルチプレクサ（demultiplexer）で、データソースからのデータを受け取る。たとえば、エンドポイントごとに複数のｎ個（ｎは１を超える整数である）の第１のレジスタを有する実施形態では、多重分離の順序は、第１のレジスタのうちの最初ものに対して、次いで、２番目のものに対して、以下同様に、第１のレジスタのうちの最後のものが、多重分離順序に従って選択されるまで続けられる。この多重分離順序は、第１のレジスタのうちの最初のものから最後のものまで、周期的に繰り返される。各第１のレジスタは、多重分離順序に従って多重分離されたデータを記録するように、循環する順序で、受信された第１のデータストローブによりクロック制御される。
【０００８】
[0003]各エンドポイントはまた、選択されたデータ信号を形成するために、多重分離順序の遅延バージョンに従って、エンドポイントの第１のレジスタの各々からの記録された出力から選択するマルチプレクサを含む。各エンドポイントは、第２のデータストローブに応じて、選択されたデータ信号を記録する第２のレジスタをさらに含む。
【０００９】
[0004]クロックソースは、第２のデータストローブを生成する。このクロックソースは、第２のデータストローブが、第２のレジスタからの記録されたデータとともに、比較的スキューのないやり方で、集積回路から外部メモリへと送信され得るように、すべてのエンドポイントに分配される。この分配は、クロックソースを局所化することにより、またはスキューおよび変動を制限する何らかの他の分配方法により達成され得る。それとは対照的に、第１のデータストローブは、データソースからエンドポイントへとクロックパス上を移動するとき、特に、これらのクロックパスが比較的長く、バッファされる場合には、プロセス、電圧、および温度変動に曝される。第２のデータストローブとの第１のデータストローブの同期を維持するため、第２のデータストローブの一連の遅延されたバージョンを備える多相クロックを形成するように、第２のデータストローブは、マルチフェーズ・ジェネレータ（multi-phase generator）で処理される。セレクタ回路は、位相エラーを生成するために、エンドポイントのうちの１つについて受信された第１のデータストローブと第２のデータストローブとを比較する。位相エラーに基づいて、データソースによる送信で、エンドポイントで第２のデータストローブに位相が合わされた第１のデータストローブになるローカルクロックを形成するように、セレクタ回路は、第２のデータストローブの遅延されたバージョンから選択する。
【００１０】
[0005]これらの有利な特徴は、次の詳細な記述を参照すればさらに良く理解されるはずである。
【図面の簡単な説明】
【００１１】
【図１】[0006]複数のエンドポイントを有する従来のソース同期ＳＯＣに関する概略図。
【図２】[0007]本開示の実施形態によるソース同期アーキテクチャを示す図。
【図３】[0008]図２のソース同期アーキテクチャで実施されるローカルクロック同期化に関するさらなる細部を示す図。
【図４】[0009]本開示の実施形態による例示的な動作方法の流れ図。
【発明を実施するための形態】
【００１２】
[0010]開示されるクロック同期化システムの実施形態、およびその利点は、次の詳細な説明を参照することにより、最も良く理解される。同様の参照数字は、図の１つまたは複数のもので示された同様の要素を識別するために使用されることを理解されたい。
【００１３】
[0011]複数のエンドポイントがそれぞれ、複数の第１のクロック領域のレジスタと、第２のクロック領域のレジスタとを含むソース同期アーキテクチャが提供される。簡略化するために、第１のクロック領域のレジスタはまた、本明細書では、第１のレジスタとして示されることになる。同様に、第２のクロック領域のレジスタはまた、本明細書では、第２のレジスタとして示されることになる。第１および第２のクロックはまた、本明細書で、それぞれ、第１および第２のデータストローブとして示される。メモリコントローラなどのデータソースは、データを、対応するデータパス上で各エンドポイントに送信する。加えて、メモリコントローラは、第１のデータストローブを、対応するクロックパス上で各エンドポイントに送信する。エンドポイントへのデータおよびクロックパスはすべて、互いに電気的に整合されることができ、対応するクロックおよびデータ信号対を伝播させるためのクロックおよびデータパスの対として本明細書で示される。
【００１４】
[0012]各エンドポイントは、受信されたデータを、エンドポイントの第１のレジスタへと多重分離するためのデマルチプレクサを含み得る。エンドポイントの近傍にある位相同期ループまたは水晶発振器などの第２のデータストローブソースは、各エンドポイントにおける第２のレジスタをクロック制御する第２のデータストローブを生成する。第２のレジスタとは対照的に、エンドポイントの第１のレジスタは、メモリコントローラから受信される第１のデータストローブによりクロック制御される。各エンドポイントはまた、エンドポイントの第１のレジスタからのデータ出力から選択するためのマルチプレクサを含むことができる。各エンドポイント内の多重分離および多重化は、第２のレジスタにおける記録が、第１のレジスタにおける記録に関して１クロックサイクルより大きいセットアップ時間およびホールド時間を有することを可能にするが、本明細書でさらに説明されるように、第１のデータストローブは、第１および第２のデータストローブに対する周期（クロックサイクル期間）が実質的に同じになるように、第２のデータストローブと位相を合わせた状態に保持される。したがって、１クロックサイクルより大きいセットアップ時間は、第１のデータストローブサイクルまたは第２のデータストローブサイクルに関して区別される必要はない。このセットアップ時間に関して、多重分離は周期的なものである。たとえば、エンドポイントが、３つの第１のレジスタを有するものと仮定し、これらは、文字Ａ、Ｂ、およびＣで区別され得る。多重分離は、多重分離シーケンス、またはＡ、Ｂ、Ｃ、Ａ、Ｂ、Ｃ、などのような順序に従って、第１のレジスタを循環する。第１のレジスタからのデータ出力の多重化は、望ましいセットアップ時間を補償する遅延を有する、多重分離シーケンスの遅延させたバージョンに従って行われる。たとえば、文字Ａ、Ｂ、およびＣで区別される３つの第１のレジスタを有する実施形態に関する遅延された多重分離シーケンスは、Ｂ、Ｃ、Ａ、Ｂ、Ｃ、Ａ、など、であり得るが、同じクロックサイクルにおいて、多重分離シーケンスは、Ａ、Ｂ、Ｃ、Ａ、Ｂ、Ｃ、など、であった。第３のクロックサイクルは、多重分離がレジスタＣに書き込んでいるが、多重化は、そのとき、５番目のクロックサイクルまで、レジスタＣを読み取らない、点で典型的なものである。第２のレジスタにおけるデータの記録は、従って、第１のレジスタのうちの１つにおいて記録された同じデータに関してそのような実施形態において、２つのクロックサイクルだけ遅延される。他方で、多重化の順序がそれに代えて、Ｃ、Ａ、Ｂ、Ｃ、Ａ、Ｂ、など、であった場合、第２のレジスタにおけるデータの記録は、対応する第１のレジスタで記録された同じデータに関して、１つのクロックサイクルだけ遅延される。遅延された多重分離シーケンスにおける遅延の量、したがってセットアップ時間は、各エンドポイントで個々に決定され得る。そのメモリコントローラにおける「データ」の記録に関する以下の論議は、それぞれのエンドポイントに対応するビットに代えてデータワードを送ることであり得ることに留意されたい。それに関して、第１および第２のレジスタの各々は、ちょうど１ビット幅とすることができるが、メモリコントローラからのワード幅に応じて、複数ビット幅とすることもできる。
【００１５】
[0013]各エンドポイントにおいてセットアップ時間を個々に適応させる能力は、第１のデータストローブを搬送するクロックパス、およびメモリコントローラとエンドポイントの間の対応するデータパスが、図１のＳＯＣ１００に関して論じた比較的長いクロックパスおよびデータパスと類似して、比較的長く、したがってバッファされ得るという点において非常に有利である。ダイにわたる温度、プロセス、および電圧変動は、したがって、メモリコントローラからのその同期送信にもかかわらず、各エンドポイントで受信される第１のデータストローブ間でスキューを生じ得る。各エンドポイントにおける遅延された多重分離シーケンスに対する遅延の量は、したがって、様々なエンドポイントに対するクロックパスごとに変化する遅延を補償するように適応され得る。
【００１６】
[0014]エンドポイントにおいて受信された第１のデータストローブが、第２のデータストローブと同期しているように保つために、第２のデータストローブソースの近傍にあり得るセレクタ回路が、位相エラーを決定するように、エンドポイントの選択された１つに関する受信された第１のデータストローブを、第２のデータストローブと比較し得る。遅延同期ループなどのマルチフェーズ・ジェネレータはまた、第２のデータストローブソースの近傍に位置し得る。マルチフェーズ・ジェネレータは、第２のデータストローブの一連の遅延されたバージョンを備える多相クロックを発生する。セレクタ回路は、メモリコントローラに送信され、受信されるローカルクロックを形成するために、位相エラーに応じて、遅延されたバージョンから選択する。メモリコントローラは、エンドポイントにクロックパス上で伝播される第１のデータストローブとして、受信されたローカルクロックを返す。
【００１７】
[0015]このように、セレクタ回路は、エンドポイントのうちの選択された１つにおいて受信された第１のデータストローブに対して、閉ループ制御を適用する。第１のデータストローブは、ちょうど、選択されたエンドポイントに対するように、他のエンドポイントに対してもメモリコントローラから分配されるので、残りのエンドポイントに関する受信される第１のデータストローブは、次に、開ループ方式で制御される。しかしながら、そのような開ループ制御は、エンドポイントへのクロックパスが、すべて互いに電気的に整合され得るので正確である。さらにクロックパス上の伝播の間のどのスキューも、エンドポイントの各々に対する遅延された多重化シーケンスで遅延の量を調整することにより補償され得る。様々なエンドポイントで受信された第１のデータストローブは、第２のデータストローブとの位相合せが維持されるので、結果は、「分配されたクロックの同期」である。同期クロック（第１のデータストローブ）は、このようにダイにわたって複数のエンドポイントに送られ得、したがって、避けられないスキューおよび歪みを受け得るが、なおエンドポイントから外部の行き先へのデータの送信のために使用される第２のデータストローブと合せられた状態が維持され得る。この合せは、各エンドポイントが、その第１のレジスタからその第２のレジスタへのそれ自体の多重化の順序を有し得る点で、各エンドポイントに関して適応性がある。第１のデータストローブに従う第１のレジスタのうちの１つにおけるデータ記録と、および第２のデータストローブに従う第２のレジスタにおけるその後のデータ記録とに関する各エンドポイントでのセットアップ時間およびホールド時間は、したがって、各エンドポイントに関してカスタマイズされ得る。さらに、この解決策は、様々なエンドポイントにわたって、第１のデータストローブを第２のデータストローブと合せられた状態に保つだけではなく、それは、ＰＬＬのような正確な第２のデータストローブソースを１つだけ必要とするので、費用がかからず低電力である。これらの利点は、例示の実施形態の以下の論議からさらに良く理解されるはずである。
【００１８】
[0016]図２のＳＯＣ２０１のような集積回路に関して示されるように、メモリコントローラ２００は、最初のゼロ番目のエンドポイント２０５から最後の（ｎ−１）番目のエンドポイント２１０までの範囲の複数のｎ個のエンドポイントへデータを駆動する、ここで、ｎは、１より大きい整数である。各エンドポイントは、データを、メモリコントローラ２００から対応するデータパスを介して受け取る。たとえば、エンドポイント２１０は、データパス２１５でデータを受け取るが、エンドポイント２０５は、データパス２２５でデータを受け取る。データパスは、実際には、メモリコントローラ２００が、各エンドポイントに対して単独のビットではなく、データワードを送信するように、データバスを備えることができる。たとえば、一実施形態では、メモリコントローラ２００は、バイト幅のデータワードを並列に、対応するデータパスを介してエンドポイントへと送信することができる。メモリコントローラ２００からのデータ送信は、対応するクロックパスで送信される第１のデータストローブと同期している。たとえば、エンドポイント２１０は、第１のデータストローブをクロックパス２２０で受信するが、エンドポイント２０５は、第１のデータストローブをクロックパス２３０で受信する。データおよび第１のデータストローブは、シングルエンドまたは差動（differential）にすることができる。同様に、データ送信も、シングルエンドまたは差動にすることができる。
【００１９】
[0017]各データパスは、第１のデータストローブによりクロック制御されるメモリコントローラ内の対応するデータレジスタ２６０で始まる。エンドポイントは、通常、ＳＯＣ２０１に対するピンまたはパッド（図示せず）の近くに位置するが、メモリコントローラ２００は、ダイの内部で、エンドポイントから比較的離れて配置され得ることに留意されたい。データパス２１５および２２５、ならびにクロックパス２２０および２３０は、したがって、１ミリメートルの数分の１、またはさらに数ミリメートルなど、比較的長い距離にわたって、ＳＯＣ２０１を横断して延び得る。そのように比較的長く伝播する間で信号強度を維持するために、データパス２１５および２２５、ならびにクロックパス２２０および２３０は、複数のバッファを含み得る。クロックパス２２０および２３０はすべて、互いに電気的に整合されているが、そのような比較的長い距離にわたる伝播、および繰り返されるバッファリングは、特に、ＳＯＣ２０１がインスタンス化されるダイにわたる避けられない温度、プロセス、および電圧変動により、１つのクロックパスにおける第１のデータストローブが、他のクロックパス上の伝播に関して、スキュー、ジッタを生じ、またはデューティサイクルが歪む十分な機会を与える。
【００２０】
[0018]結果として生じたクロックのずれは、各エンドポイントが、位相同期ループ（ＰＬＬ）２３５のようなクロックソースからの第２のデータストローブ２４２に従い同期して、外部メモリ（図示せず）にその受信されたデータを最終的に転送するという点で問題がある。このクロックソースは、様々なエンドポイントにわたって非常にわずかなスキューを有するだけである。そのような最小のスキューは、単一の共通クロックに対して、ＤＲＡＭのような外部の行き先へのエンドポイントからのデータ送信に関して、セットアップ時間およびホールド時間を満たすために望ましい。ＰＬＬ２３５は、エンドポイントで受信される第２のデータストローブ２４２となるように、バッファされるクロックパス上を伝播し得る第２のデータストローブ２４１を生成する。各エンドポイントで受信された第１のデータストローブは、第２のデータストローブ２４２とエッジ合せ（同期）されるように維持される必要があるだけではなく、各エンドポイントは、第１のデータストローブのクロック領域から、第２のデータストローブのクロック領域へと転送を行うのに、可変量のセットアップ時間が必要になり得る。各エンドポイントで、セットアップ時間を個々に適応可能にするために、ＳＯＣ２０１における各エンドポイントは、メモリコントローラ２００から受信されたデータを、エンドポイントにおける複数の第１のレジスタ２７０に多重分離するデマルチプレクサ２６５を含む。ＳＯＣ２０１では、各エンドポイントは、３つの第１のレジスタ２７０を含み、したがって、デマルチプレクサ２６５は３対１のデマルチプレクサである。代替の実施形態は、３を超える第１のレジスタ２７０を有することができ、したがって、４対１またはそれを超える多重分離が実施され得る。多重分離の量（したがって、対応する第１のレジスタ２７０の数）が大きくなるほど、追加のレイテンシを代償として、各エンドポイントにおいて選択され得るセットアップ時間の量が大きくなる。各エンドポイントにおける多重分離の程度、したがって、第１のレジスタ２７０の数は、セットアップ時間とレイテンシの間のトレードオフになる。
【００２１】
[0019]デマルチプレクサ２６５による多重分離は、第１のレジスタ２７０に対する多重分離シーケンスに従って行われる。たとえば、受信された第１のデータストローブの第１サイクルにおいて、エンドポイントのデマルチプレクサ２６５は、第１のレジスタ２７０のうちの最初のものについて選択し得、それは次いで、受信された第１のデータストローブに応じて、多重分離されたデータを記録することになる。受信された第１のデータストローブの第２サイクルでは、同じデマルチプレクサ２６５が、第１のレジスタ２７０のうちの２番目のものについて選択し得、それは、次いで、受信された第１のデータストローブに応じて、多重分離されたデータを記録することになる。最後に、受信されたデータストローブの第３サイクルでは、同じデマルチプレクサ２６５が、第１のレジスタ２７０のうちの残りの３番目のものについて選択し得る。この第１のレジスタ２７０のうちの３番目のものは、次いで、受信された第１のデータストローブの第３サイクルに応じて、デマルチプレクサ２６５からの多重分離されたデータを記録することになる。したがって、多重分離シーケンスは、次いで、第１のデータストローブの第４サイクルから第６サイクルまで繰り返され、以下同様に繰り返されることが理解されよう。多重分離シーケンスは、エンドポイントにわたって共通の多重分離シーケンスを実施するようにデマルチプレクサ２６５を制御するメモリコントローラ２００における書込みポインタ発生器２９０からの書込みポインタにより制御され得る。書込みポイント発生器２９０は、クロックパスおよびデータパスと同様にバッファされ得る対応する書込みポインタパスで、書込みポインタをエンドポイントに送信する。
【００２２】
[0020]多重分離は、ＳＯＣ２０１におけるエンドポイントに共通であるが、セットアップ時間は、個々に適応され得る。この個々に適応させることを可能にするために、各エンドポイントは、エンドポイントの第１のレジスタ２７０の各々からの記録された出力から選択するための読取りポインタを用いてマルチプレクサ２７５を制御する読取りポインタ発生器２８５を含むことができる。選択され、記録された出力は、第２のデータストローブ２４２に応じて、第２のレジスタ２８０で再度記録される。多重化は、各読取りポインタ発生器２８５により制御される遅延量を有する多重分離シーケンスの遅延バージョンに従って行われる。たとえば、第１のレジスタ２７０にわたる多重分離シーケンスは、先に論じた、１番目、２番目、３番目、１番目、２番目、３番目、など、のシーケンスであったと仮定する。望ましいセットアップ時間の量に応じて、エンドポイントにおけるマルチプレクサ２７５は、デマルチプレクサ２６５が第１のレジスタ２７０のうちの３番目のものに書き込んでいる間に、受信された第１のデータストローブの所与のサイクルにおいて第１のレジスタ２７０のうちの最初のものから選択し得る。デマルチプレクサ２６５がレジスタ２７０のうちの１番目のものに書込んでいる間に、受信された第１のデータストローブに続くサイクルにおいて、マルチプレクサ２７５は、次いで、第１のレジスタ２７０のうちの２番目のものに対して選択を行い、以下同様に行われる。その場合、セットアップ時間に関して１クロックサイクルのレイテンシがあることになる。代替的に、他のエンドポイントに関するクロックパスの位相合せは、２クロックサイクルのレイテンシ（セットアップ時間）が必要であるようになり得る。このように、クロックパス２３０および２２０のような様々なクロックパスに対する遅延差は、各エンドポイントで受信する第１のデータストローブが、第２のデータストローブ２４２に同期したままであるように補償され得る。読取りポインタ発生器２８５からの読取りポインタを訓練するために、メモリコントローラ２００は、クロックパス間の位相差が決定され得るように、訓練シーケンスを様々なエンドポイントに送信し得る。これらの差に基づいて、メモリコントローラ２００（または他の適切なコントローラ）は、次いで、それに従って読取りポインタ発生器２８５を調整し得る。各読取りポインタは、書込みポインタ発生器２９０により確立された多重分離シーケンスから、遅延オフセットを決定する。しかし、書込みポインタ発生器２９０は、第１のデータストローブのサイクルに応じて、多重分離シーケンスを循環するが、読取りポインタ発生器２８５は、第２のデータストローブ２４２のサイクルに応じて、多重分離シーケンスのその遅延されたバージョンを循環することに留意されたい。
【００２３】
[0021]一実施形態では、デマルチプレクサ２６５、第１のレジスタ２７０、マルチプレクサ２７５、および第２のレジスタ２８０は、メモリコントローラからの受信された第１のデータストローブに従って、メモリコントローラからのデータを記録することと、第２のデータストローブに従ってデータを記録することとの間のセットアップ時間を変えるための手段を各エンドポイント内に備えるものと考えられる。
【００２４】
[0022]第１のデータストローブ領域から、エンドポイント２７５における第２のデータストローブ領域への間のデータ転送は、各エンドポイントで受信された第１のデータストローブが、第２のデータストローブ２４２と十分に同期していることを必要とする。この同期性を維持するために、エンドポイント２０５で受信された第１のデータストローブ２５５のような、エンドポイントのうちの所与の１つに対して受信されたデータストローブは、これらの２つのクロック間の位相エラーを決定するために、セレクタ回路２５０で第２のデータストローブ２４２と比較される。同時に、遅延同期ループ（ＤＬＬ）などの多相クロック発生器２４０は、ＰＬＬ２３５により生成された第２のデータストローブ２４１（第２のデータストローブ２４２は、第２のデータストローブ２４１が伝播することによりエンドポイント２０５で受信されるものである）から、多相クロックを生成する。多相クロックは、第２のデータストローブ２４１の一連の遅延されたバージョンを備える。
【００２５】
[0023]位相エラーに基づいて、セレクタ回路２５０は、メモリコントローラ２００へのローカルクロックパス２４５上で駆動されるローカルクロックを生成するために、第２のデータストローブ２４１の遅延バージョンから選択する、ここにおいて、ローカルクロックは、レジスタ２６０および書込みカウンタ２９０をクロック制御するための、ならびにエンドポイントへの再送信を行うための第１のデータストローブとして受信される。クロックパス２４５および２３０は、したがって、エンドポイント２０５における各第１のレジスタ２７０に関する単一の全体のクロックパスを形成する。そのような各クロックパスは、セレクタ回路２５０に一端を有し、またエンドポイント２０５における対応する第１のレジスタ２７０で他端を有する。したがって、エンドポイント２０５で受信された第１のデータストローブ２５５の、第２のデータストローブ２４２との同期性を維持するための閉ループ制御が存在する。エンドポイント２１０のような残りのエンドポイントで受信された第１のデータストローブは、次いで、開ループ方式で制御されるが、各エンドポイントにおけるセットアップ時間およびホールド時間の前述のカスタム化により、十分なセットアップおよびホールドタイミング要件を満たす。各エンドポイントは、したがって、第２のレジスタ２８０におけるその記録されたデータを、第２のデータストローブ２４２と同期させて外部メモリに送信することができる。ＰＬＬ２３５は、エンドポイントの比較的近くに、したがって、データがＳＯＣ２０１を離れて外部メモリへと伝播するためのピンもしくはパッドにも比較的近い位置にあり得るので、第２のデータストローブ２４２は、外部メモリにより受信される前に、比較的わずかなスキュー、ジッタ、およびデューティサイクル歪みを受けるにすぎない。このように、外部メモリへの高速データ送信が、許容可能な誤り率で行うことができる。それとは対照的に、エンドポイントで受信された第１のデータストローブは、メモリコントローラ２００と、対応するエンドポイントとの間の経路２２０および２３０のような、比較的長い、バッファされたクロックパスのために、スキュー、ジッタ、およびデューティサイクル歪みに曝される。受信された第１のデータストローブは、したがって、「クリーンな」第２のデータストローブ２４２と比較して、比較的「汚い」。しかし、これらの差は、各エンドポイントにおける可変のセットアップ時間により、またさらにセレクタ回路２５０および多相クロック発生器２４０により適用される閉ループ制御により調節される。セレクタ回路２５０および多相クロック発生器２４０は、エンドポイントのうちの１つで受信された第１のデータストローブを、第２のデータストローブ２４２との十分な同期状態を保つクロック同期回路を形成する。
【００２６】
[0024]クロック同期回路によるこの閉ループ制御は、図３の参照により良く理解され得る。この実施形態では、セレクタ回路２５０は、多相検出器３００とマルチプレクサ３０５とを備える。ＰＬＬ２３５およびＤＬＬ２４０は、多相検出器３００により受信され、マルチプレクサ３０５により選択される多相クロック３１０を生成するように、図２に関して論じたように動作する。図２のメモリコントローラ２００からの１つのレジスタ２６０だけが図３で示されている。同様に、図２のエンドポイント２０５から単一の第１のレジスタ２７５、ならびに第２のレジスタ２８０だけが図３で示されている。残りのエンドポイントおよびメモリコントローラ２００の残りのものは、分かりやすくするために図３で示されていない。受信された第１のデータストローブ２５５は、第２のレジスタ２８０で記録されるデータが、受信された第１のデータストローブ２５５に関して第１のレジスタ２７５からラウンチ（launch）されるので、ラウンチクロックとしても表し得る。第２のデータストローブ２４２はまた、データがキャプチャ（capture）され第２のデータストローブクロック領域へと転送される第２のレジスタ２８０内にある点で、キャプチャクロックとしても表し得る。
【００２７】
[0025]多相クロック３１０は、位相シフトφだけ第２のデータストローブに関して位相がシフトされた第１の遅延クロックから、位相シフトｍφだけ第２のデータストローブに関して位相がシフトされた最後のｍ番目の遅延クロックφmまでの範囲の第２のデータストローブの複数のｍ個の遅延バージョン（図示せず）を備える。ここで、ｍは１より大きい整数である。多相クロック３１０内の各連続する遅延クロックは、前の遅延クロックに対してφだけ位相がシフトされる。たとえば、第２の遅延クロックφ2は、第１の遅延クロックφ1に対してφだけ位相がシフトされる。同様に、第３の遅延クロックφ2は、第２の遅延クロックφ2に対してφだけ位相がシフトされる。ｍ番目の遅延クロックφmは、したがって、（ｍ−１）番目の遅延クロックφm-1に対してφだけ位相がシフトされる。
【００２８】
[0026]多相クロック３１０を形成するｍ個の遅延クロックを生成するために、ＤＬＬ２４０は、複数のｍ個の遅延クロックを整合させる複数のｍ個の遅延素子を有するディレイライン（delay line）（図示せず）を含み得る。本明細書でさらに説明するように、整数ｍが２のべき乗であることが便利である。一実施形態では、ＤＬＬ２４０におけるディレイラインの遅延素子が、ゼロ番目の遅延素子から１５番目の遅延素子にわたるように、ｍは、したがって、２4＝１６に等しくし得る。ディレイラインの始めのバッファリング遅延素子は、第２のデータストローブを受信し、第２のデータストローブを、ゼロ番目の遅延素子を駆動するバッファされたクロックｄｉｎｐへと遅延させることができる。第１および第２のデータストローブのような本明細書で論じられるクロックは、差動信号またはシングルエンドクロック信号を備えることができることに留意されたい。
【００２９】
[0027]各遅延素子は、多相クロック３１０の一部として、対応する遅延クロックを生成する。ＤＬＬ２４０に関するディレイラインにおいて、１６個の遅延素子を備える実施形態では、多相クロック３１０は、ｄ＜０：１５＞として表され得る。たとえば、ディレイラインにおけるゼロ番目の遅延素子は、遅延クロックｄ＜０＞を生成するが、最終的な１５番目の遅延素子は、遅延クロックｄ＜１５＞を生成する。同様に、ディレイラインにおけるｉ番目の遅延素子（ｉは、０から１５までの範囲の整数）は、ｉ番目の遅延クロックｄ＜ｉ＞を生成する。ＤＬＬ２４０は、ｄ＜１５＞を、ディレイラインへのバッファされた入力クロックｄｉｎｐと同相に保つための制御ループを実装する。このようにして、多相クロック３１０におけるｉ番目の遅延クロックｄ＜ｉ＞が、（ｉ−１）番目の遅延クロックｄ＜ｉ＋１＞の立ち上がりエッジに関して、Ｔ／１６だけ遅延された立ち上がりエッジを有するように、第２のデータストローブに対する周期Ｔは、１６個の等しく分散された点において、ＤＬＬ２４０におけるディレイラインに関する１６個の遅延素子実施形態でサンプリングされる。たとえば、ｄ＜１＞の立ち上がりエッジは、ｄ＜０＞の立ち上がりエッジに関して、Ｔ／１６だけ遅延される。同様に、ｄ＜２＞の立ち上がりエッジは、ｄ＜０＞の立ち上がりエッジに関して、２Ｔ／１６だけ遅延される、など、である。
【００３０】
[0028]多相検出器３００は、マルチプレクサ３０５で多相クロック３１０の遅延されたクロックのうちの選択された１つに関して選択する、受信された第１のデータストローブ２５５と第２のデータストローブ２４２の間の位相エラーをデジタルコードとして表し得る。マルチプレクサ３０５は、ローカルクロックとして、選択された遅延クロックをラウンチし、それは、メモリコントローラ（図示せず）へと伝播してそのデータレジスタ２６０をクロック制御し、さらに第１のデータストローブとしてエンドポイントに送信される。マルチプレクサ３０５と同様に、多相クロック３１０の遅延クロックが、第２のデータストローブ２４２に関する位相を決定するために使用され、また受信された第１のデータストローブ２５５に関する位相を決定するために使用され得るように、多相検出器３００もまた、多相クロック３１０を受信する。たとえば、多相検出器３００は、多相クロック３１０における各遅延クロックについてフリップフロップ（図示せず）を含み得る。１６個の遅延クロックｄ＜０：１５＞を有する実施形態では、多相検出器３００は、したがって、第２のデータストローブ２４２に対する位相と、受信された第１のデータストローブ２５５に対する位相とを決定するために、連続的な方式で使用され得る１６個のフリップフロップを含み得る。
【００３１】
[0029]代替的に、多相検出器３００は、多相クロック３１０が１６個の遅延クロックｄ＜０：１５＞を備える実施形態において、３２個のフリップフロップ（第２のデータストローブ２４２を解析するための１６個の１組、および受信された第１のデータストローブ２５５を解析するための１６個のフリップフロップの他の組）を含み得る。直列の実施形態を再度参照すると、各フリップフロップは、解析される対応するクロック信号におけるクロックエッジ（たとえば、立ち上がりクロックエッジ）によりトリガされ得る。たとえば、第２のデータストローブ２４２は、１６個の遅延クロックｄ＜０：１５＞に対応する多相検出器３００における１６個のフリップフロップをトリガすると考える。ゼロ番目のフリップフロップは、ｄ＜０＞を記録し、第１のフリップフロップは、ｄ＜１＞を記録し、以下同様に、１６番目のフリップフロップはｄ＜１５＞を記録する。
【００３２】
[0030]多相検出器３００での受信での第２のデータストローブ２４２の位相合せに応じて、様々なフリップフロップは、論理ハイ値または論理ロー値のいずれかを記録することになる。フリップフロップで記録された値は、したがって、第２のデータストローブ２４２の位相を表すデジタルワードとして、多相検出器３００により使用され得る。受信された第１のデータストローブ２５５の位相が、フリップフロップが、受信された第１のデータストローブ２５５における対応するクロックエッジによってクロック制御され得ることなどと同様に、決定されるように、フリップフロップは、次いで、（直列の実施形態では）リセットされることができる。その結果、多相検出器３００は、デジタル位相エラーを決定するために、２つの得られたデジタルワード（１つは、第２のデータストローブ２４２の位相を表し、また他のものは、受信された第１のデータストローブ２５５の位相を表す）を比較することができる。たとえば、多相検出器２４０は、デジタル位相エラーを決定するために、２つのデジタルワードを減算することもできる。マルチプレクサ３０５の選択に関する位相エラーの、そのようなバイナリデジタルコーディングが、２のべき乗に等しい多相クロック３１０における遅延クロックの数からのものであることは、従って、効率的である。しかしながら、代替の実施形態では、遅延クロックの数は、２のべき乗である必要はないことが理解されよう。
【００３３】
[0031]位相計算を行う前に、マルチプレクサ３０５は、ローカルクロックをラウンチしている必要があり、そうでない場合には、測定すべき受信された第１のデータストローブ２５５がないことに留意されたい。デジタル位相エラーは、したがって、ｄ＜０＞のようなデフォルトの遅延クロックを選択するために、すべてバイナリのゼロであるなどの、デフォルト値を有していることができる。動作の検出段階中に、マルチプレクサ３０５からローカルクロックとしてデフォルトの遅延クロックが送り出されると、多相検出器３００は、したがって、測定動作モード中に位相測定を開始し、それに従ってデジタル位相エラーを決定し得る。
【００３４】
[0032]多相検出器３００により適用される位相補正は、デフォルトの遅延クロックに対するものであり得る。位相を測定する前に、デフォルトの遅延クロックは、メモリコントローラを介して伝播し、第２のデータストローブ２４２に関して何らかの遅延オフセットを有する受信された第１のデータストローブ２５５として戻る。マルチプレクサ３０５が、したがって、デフォルトの遅延クロックに対して同じ遅延オフセットだけ進ませた立ち上がりエッジを有する遅延クロックｄ＜ｉ＞をラウンチすることができた場合、受信された第１のデータストローブ２５５は、第２のデータストローブ２４２とエッジが合わせられることになる。より一般的には、ｍ個の遅延クロックが多相クロック３１０を構成する実施形態において、デフォルトクロックがｄ＜ｉ＞であると仮定する。さらに、多相検出器３００による位相測定は、受信された第１のデータストローブ２５５が、第２のデータストローブ２４２に対してｎ個の遅延増分（各遅延増分はＴ／ｍに等しい）だけ遅延されていることを示していると仮定する。そのような場合、マルチプレクサ３０５で選択された遅延クロックは、ｄ＜［（ｉ−ｎ）ｍｏｄｕｌｏ  ｍ］＞となる。
【００３５】
[0033]そのような位相合せは、多相検出器３００は、位相測定および調整を行うために、数クロックサイクルを必要とするにすぎない点で、全く有利である。１ＧＨｚのクロック速度で、それはちょうど数ナノ秒である。それとは対照的に、受信された第１のデータストローブ２５５を第２のデータストローブ２４２と合せるために、従来のＰＬＬの使用は、数十マイクロ秒もしくはそれ以上の長さが必要となるはずであり、それは１桁遅い。さらに、前に論じたフリップフロップなど、多相検出器３００内のデジタル回路は、比較的小型であり、低電力である。同様に、マルチプレクサ３０５はまた、構成するためには比較的少ないトランジスタを必要とするだけである。それとは対照的に、ＰＬＬは、かなり大きく、実質的に電力をさらに消費する。
【００３６】
[0034]本明細書で開示される分散クロック同期アーキテクチャを含む集積回路に対する動作方法が、図４で示された流れ図に関して次に論じられる。第１の動作４００は、各エンドポイントが、第１のデータストローブとデータとを受信するように、データと、対応する第１のデータストローブとを、データソースから複数のエンドポイントに送信することを備える。図２のＳＯＣ２０１に関して論じられた、クロックパス２２０および２３０上の第１のデータストローブと、データパス２１５および２２５上のデータとの送信は、そのような動作の例である。方法はまた、各第１のレジスタが、エンドポイントの第１のレジスタに対する多重分離シーケンスに従って多重分離されたデータを受信するように、受信されたデータを、各エンドポイントにおける複数の第１のレジスタへと多重分離する動作４０５と、受信された第１のデータストローブに応じて、受信され、多重分離されたデータを各第１のレジスタに記録する動作４１０とを含む。ＳＯＣ２０１に関して論じられた、対応する第１のレジスタ２７０にデマルチプレクサ２６５で多重分離することは、これらの動作の例である。
【００３７】
[0035]さらに方法は、エンドポイントに対する選択されたデータ信号を形成するために、多重分離シーケンスの遅延されたバージョンに従って、各エンドポイントにおける複数の第１のレジスタから選択する動作４１５と、各エンドポイントにおいて、第２のデータストローブに応じて、エンドポイントの選択されたデータ信号を、第２のレジスタに記録する動作４２０とを含む。マルチプレクサ２７５における多重化、その後の第２のレジスタ２８０での記録は、これらの動作の例である。
【００３８】
[0036]当業者であれば今では理解されるように、手近な特定の適用例に応じて、多くの修正、置き換え、および変形を、本開示の趣旨および範囲から逸脱することなく、本開示のデバイスの材料、装置、構成、および使用方法において、またはそれらに対して行うことができる。これに照らして、本開示の範囲は、それらが単にそれらのいくつかの例であるので、本明細書に説明され記載される特定の実施形態のものに制限されるべきでなく、むしろ、以下に添付される請求項およびそれらの機能的な等価物のものと完全に対応すべきである。
【図１】
2017517820.tif 000003
【図２】
2017517820.tif 000004
【図３】
2017517820.tif 000005
【図４】
2017517820.tif 000006
【手続補正書】
【提出日】平成29年2月10日(2017.2.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
集積回路であって、前記集積回路は下記を備える、
第１のデータストローブを送信するように構成されたメモリコントローラと、
第２のデータストローブを提供するように構成されたクロックソースと、
複数のエンドポイント、ここにおいて、各エンドポイントは、
複数の第１のレジスタと、
各第１のレジスタが前記エンドポイントに対する多重分離シーケンスに従って多重分離されたデータを受信するように、前記メモリコントローラから受信されたデータを多重分離するように構成されたデマルチプレクサ、ここにおいて、各第１のレジスタは、前記メモリコントローラから受信された前記第１のデータストローブに応じて、前記デマルチプレクサから受信された前記多重分離されたデータを記録するように構成される、と、
前記エンドポイントに対する前記多重分離シーケンスの遅延されたバージョンに従って、前記エンドポイントの第１のレジスタの各々からのデータ出力を選択するように構成されたマルチプレクサと、
前記第２のデータストローブに応じて、前記マルチプレクサからの前記選択されたデータ出力を記録するように構成された第２のレジスタ、ここにおいて、各エンドポイントは、前記第２のデータストローブに応じて、その記録され選択されたデータ出力を外部メモリに送信するように構成される、と、
を含む、と、
前記第２のデータストローブから複数の遅延クロックを生成するように構成された多相クロック発生器、ここで、各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有する、と、
位相エラーに基づいて、前記遅延クロックのうちの１つを選択するように構成されたセレクタ回路、ここで、前記セレクタ回路が、前記遅延クロックの前記選択された１つを前記メモリコントローラにラウンチするようにさらに構成され、ここにおいて、前記データソースが、前記受信され選択された遅延クロックを前記第１のデータストローブとして使用するように構成され、前記セレクタ回路が、前記位相エラーを決定するために、前記エンドポイントのうちの１つにおける前記受信された第１のデータストローブを、前記第２のデータストローブと比較するようにさらに構成される。
【請求項２】
各エンドポイントにおける前記複数の第１のレジスタは、３つの第１のレジスタを備える、請求項１に記載の集積回路。
【請求項３】
各エンドポイントにおける前記複数の第１のレジスタは、４つの第１のレジスタを備える、請求項１に記載の集積回路。
【請求項４】
前記メモリコントローラは、前記デマルチプレクサの各々で、前記多重分離シーケンスを制御するように構成された書込みポインタを含む、請求項１に記載の集積回路。
【請求項５】
各エンドポイントは、前記エンドポイントのマルチプレクサにおいて、前記多重分離シーケンスの前記遅延されたバージョンを制御するように構成された読取りポインタをさらに備える、請求項１に記載の集積回路。
【請求項６】
前記複数のエンドポイントに対応する複数のデータパス、ここにおいて、各データパスは、前記メモリコントローラから、前記対応するエンドポイントでの前記デマルチプレクサへと延び、前記メモリコントローラが、データを各データパスで、前記対応するエンドポイントのデマルチプレクサへと送信するように構成される、と、
前記複数のエンドポイントに対応する複数のクロックパス、ここにおいて、各クロックパスは、前記メモリコントローラから、前記対応するエンドポイントにおける前記第１のレジスタの各々へと延び、前記メモリコントローラが、前記第１のデータストローブを前記対応するクロックパスで、各エンドポイントへと送信するように構成される、と、
をさらに備える、請求項１に記載の集積回路。
【請求項７】
前記データパスおよび前記クロックパスはすべて、互いに電気的に整合されている、請求項６に記載の集積回路。
【請求項８】
前記クロックソースは、位相同期ループ（ＰＬＬ）を備える、請求項１に記載の集積回路。
【請求項９】
前記セレクタ回路は、前記位相エラーに応じて、前記遅延クロックの前記選択された１つを選択するためのマルチプレクサを含む、請求項１に記載の集積回路。
【請求項１０】
前記セレクタ回路は、第１のワードを決定するために、前記受信されたローカルクロックを前記複数の遅延クロックと比較し、また第２のワードを決定するために、前記基準クロックを前記複数の遅延クロックと比較するように構成された多相検出器を含み、前記多相検出器は、前記位相エラーを決定するために、前記第１のワードと前記第２のワードとを比較するようにさらに構成される、請求項１に記載のクロック同期回路。
【請求項１１】
前記多相クロック発生器は、遅延同期ループ（ＤＬＬ）を備える、請求項１に記載のクロック同期回路。
【請求項１２】
クロックソースによって提供される第２のデータストローブから第１のデータストローブを導出することと、
集積回路内で、各エンドポイントが、前記第１のデータストローブとデータとを受信するように、前記データと、前記第１のデータストローブとを、メモリコントローラから複数のエンドポイントに送信することと、
各第１のレジスタが、前記エンドポイントに対する多重分離シーケンスに従って多重分離されたデータを受信するように、前記受信されたデータを、各エンドポイントにおける複数の第１のレジスタへと多重分離することと、
前記受信された第１のデータストローブに応じて、および、前記エンドポイントの多重分離シーケンスに従って、前記受信され多重分離されたデータを、各第１のレジスタに記録することと、
前記エンドポイントに対する選択されたデータ信号を形成するために、前記エンドポイントの多重分離シーケンスの遅延されたバージョンに従って、各エンドポイントにおける前記複数の第１のレジスタから選択することと、
各エンドポイントにおいて、前記第２のデータストローブに応じて、前記エンドポイントの選択されたデータ信号を第２のレジスタに記録することと、
各エンドポイントから、前記第２のデータストローブに応じて、前記記録され選択されたデータ信号を前記第２のメモリから外部レジスタに送信することと、
を特許請求する方法。
【請求項１３】
前記第２のデータストローブから前記第１のデータストローブを導出することが、
各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有するように、前記第２のデータストローブから複数の遅延クロックを生成することと、
選択された遅延クロックを形成するために、位相エラーに応じて、前記複数の遅延クロックから選択することと、
前記選択された遅延クロックを、クロックパスの第１の端部に駆動することと、
前記選択された遅延クロックを前記クロックパスの前記第１の端部に駆動することに応じて、前記第１のレジスタのうちの１つで、前記クロックパスの第２の端部からの前記第１のデータストローブを受信することと、
前記位相エラーを決定するために、前記クロックパスの前記第２の端部からの前記受信された第１のデータストローブを、前記第２のデータストローブと比較することと、
を備える、請求項１２に記載の方法。
【請求項１４】
前記多重分離は、少なくとも１：３の多重分離である、請求項１２に記載の方法。
【請求項１５】
前記多重分離は、少なくとも１：４の多重分離である、請求項１２に記載の方法。
【請求項１６】
各エンドポイントで前記選択することは、少なくとも３：１の多重化である、請求項１２に記載の方法。
【請求項１７】
各エンドポイントで前記選択することは、少なくとも４：１の多重化である、請求項１２に記載の方法。
【請求項１８】
集積回路であって、前記集積回路は下記を備える、
第２のデータストローブから導出された第１のデータストローブを送信するように構成されたメモリコントローラと、
前記メモリコントローラから前記第１のデータストローブを受信するように構成された複数のエンドポイント、ここにおいて、各エンドポイントは、前記メモリコントローラからの前記受信された第１のデータストローブに従って前記メモリコントローラからのデータを記録することの間のセットアップ時間を変えるためと、前記第２のデータストローブに従って前記データを再度記録するためとの手段を含む、と、
前記第２のデータストローブを生成するように構成されたクロックソース。
【請求項１９】
各エンドポイントは、デマルチプレクサを含み、前記集積回路は、
前記複数のエンドポイントに対応する複数のデータパス、ここにおいて、各データパスは、前記メモリコントローラから、前記対応するエンドポイントでの前記手段へと延び、前記メモリコントローラが、データを、各データパスで前記対応するエンドポイントのデマルチプレクサへと送信するように構成される、と、
前記複数のエンドポイントに対応する複数のクロックパス、ここにおいて、各クロックパスは、前記メモリコントローラから、前記対応するエンドポイントにおける各手段へと延び、メモリコントローラが、前記第１のデータストローブを、前記対応するクロックパスで各エンドポイントに送信するように構成される、と、
をさらに備える、請求項１８に記載の集積回路。
【請求項２０】
前記第２のデータストローブを受信し、複数の遅延クロックを生成するように構成された多相クロック発生器、ここで、各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有する、と、
位相エラーに基づいて、前記遅延クロックのうちの１つを選択するように構成されたセレクタ回路、ここで、前記セレクタ回路が、前記遅延クロックの前記選択された１つを、前記メモリコントローラにラウンチするようにさらに構成され、ここにおいて、前記メモリコントローラが、前記受信され選択された遅延クロックを前記第１のデータストローブとして使用するように構成され、前記セレクタ回路が、前記位相エラーを決定するために、前記エンドポイントのうちの１つにおける前記受信された第１のデータストローブを、前記第２のデータストローブと比較するようにさらに構成される、と、
をさらに備える、請求項１８に記載の集積回路。
【請求項２１】
前記クロックソースは、位相同期ループ（ＰＬＬ）を備える、請求項１８に記載の集積回路。
【請求項２２】
前記データパスおよび前記クロックパスはすべて、互いに電気的に整合されている、請求項１９に記載の集積回路。
【請求項２３】
集積回路であって、前記集積回路は下記を備える、
第１のデータストローブを提供するように構成されたメモリコントローラと、
複数のエンドポイント、ここにおいて、各エンドポイントは、
第１のデータストローブに応じて、前記メモリコントローラからのデータを記録するように構成された複数の第１のレジスタと、
前記第２のデータストローブに応じて、前記第１のレジスタからの前記データを記録するように構成された第２のレジスタと、
を含む、と、
前記第２のデータストローブを受信し、複数の遅延クロックを生成するように構成された多相クロック発生器、ここで、各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有する、と、
位相エラーに基づいて、前記遅延クロックのうちの１つを選択するように構成されたセレクタ回路、ここで、前記セレクタ回路が、前記遅延クロックの前記選択された１つを、前記メモリコントローラにラウンチするようにさらに構成され、ここにおいて、前記メモリコントローラが、前記選択された遅延クロックを、前記第１のデータストローブとして、前記エンドポイントへの前記送信に使用するように構成され、前記セレクタ回路が、前記位相エラーを決定するために、前記エンドポイントのうちの１つにおける前記受信された第１のデータストローブを、前記第２のデータストローブと比較するようにさらに構成される。
【請求項２４】
前記多相クロック発生器が、遅延同期ループを備える、請求項２３に記載の集積回路。
【請求項２５】
各エンドポイントにおける前記複数の第１のレジスタは、少なくとも３つの第１のレジスタを備える、請求項２３に記載の集積回路。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
[0036]当業者であれば今では理解されるように、手近な特定の適用例に応じて、多くの修正、置き換え、および変形を、本開示の趣旨および範囲から逸脱することなく、本開示のデバイスの材料、装置、構成、および使用方法において、またはそれらに対して行うことができる。これに照らして、本開示の範囲は、それらが単にそれらのいくつかの例であるので、本明細書に説明され記載される特定の実施形態のものに制限されるべきでなく、むしろ、以下に添付される請求項およびそれらの機能的な等価物のものと完全に対応すべきである。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］  集積回路であって、前記集積回路は下記を備える、
データソースと、
複数のエンドポイント、ここにおいて、各エンドポイントは、
複数の第１のレジスタと、
各第１のレジスタが多重分離シーケンスに従って多重分離されたデータを受信するように、前記データソースから受信されたデータを多重分離するように構成されたデマルチプレクサ、ここにおいて、各第１のレジスタは、前記データソースから受信された第１のデータストローブに応じて、前記デマルチプレクサから受信された前記多重分離されたデータを記録するように構成される、と、
前記多重分離シーケンスの遅延されたバージョンに従って、前記エンドポイントの第１のレジスタの各々からのデータ出力を選択するように構成されたマルチプレクサと、
第２のデータストローブに応じて、前記マルチプレクサからの前記選択されたデータ出力を記録するように構成された第２のレジスタと、
を含む。
［Ｃ２］  前記データソースは、メモリコントローラを備える、［Ｃ１］に記載の集積回路。
［Ｃ３］  前記第２のデータストローブを前記第２のレジスタに送信するように構成されたクロックソースをさらに備える、［Ｃ１］に記載の集積回路。
［Ｃ４］  各エンドポイントにおける前記複数の第１のレジスタは、３つの第１のレジスタを備える、［Ｃ１］に記載の集積回路。
［Ｃ５］  各エンドポイントにおける前記複数の第１のレジスタは、４つの第１のレジスタを備える、［Ｃ１］に記載の集積回路。
［Ｃ６］  前記データソースは、前記デマルチプレクサの各々で、前記多重分離シーケンスを制御するように構成された書込みポインタを含む、［Ｃ２］に記載の集積回路。
［Ｃ７］  各エンドポイントは、前記エンドポイントのマルチプレクサにおいて、前記多重分離シーケンスの前記遅延されたバージョンを制御するように構成された読取りポインタをさらに備える、［Ｃ１］に記載の集積回路。
［Ｃ８］  前記複数のエンドポイントに対応する複数のデータパス、ここにおいて、各データパスは、前記メモリコントローラから、前記対応するエンドポイントでの前記デマルチプレクサへと延び、前記メモリコントローラが、データを各データパスで、前記対応するエンドポイントのデマルチプレクサへと送信するように構成される、と、
前記複数のエンドポイントに対応する複数のクロックパス、ここにおいて、各クロックパスは、前記メモリコントローラから、前記対応するエンドポイントにおける前記第１のレジスタの各々へと延び、前記メモリコントローラが、前記第１のデータストローブを前記対応するクロックパスで、各エンドポイントへと送信するように構成される、と、
をさらに備える、［Ｃ２］に記載の集積回路。
［Ｃ９］  前記データパスおよび前記クロックパスはすべて、互いに電気的に整合されている、［Ｃ８］に記載の集積回路。
［Ｃ１０］  前記クロックソースは、位相同期ループ（ＰＬＬ）を備える、［Ｃ３］に記載の集積回路。
［Ｃ１１］  前記第２のデータストローブを受信し、複数の遅延クロックを生成するように構成された多相クロック発生器、ここで、各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有する、と、
位相エラーに基づいて、前記遅延クロックのうちの１つを選択するように構成されたセレクタ回路、ここで、前記セレクタ回路が、前記選択された前記遅延クロックのうちの１つを前記データソースにラウンチするようにさらに構成され、ここにおいて、前記データソースが、前記受信され選択された遅延クロックを前記第１のデータストローブとして使用するように構成され、前記セレクタ回路が、前記位相エラーを決定するために、前記エンドポイントのうちの１つにおける前記受信された第１のデータストローブを、前記第２のデータストローブと比較するようにさらに構成される、と、
を備える、［Ｃ３］に記載の集積回路。
［Ｃ１２］  前記セレクタ回路は、前記位相エラーに応じて、前記遅延クロックの前記選択された１つを選択するためのマルチプレクサを含む、［Ｃ１１］に記載の集積回路。
［Ｃ１３］  前記セレクタ回路は、第１のデジタルワードを決定するために、前記受信されたローカルクロックを前記複数の遅延クロックと比較し、また第２のデジタルワードを決定するために、前記基準クロックを前記複数の遅延クロックと比較するように構成された多相検出器を含み、前記多相検出器は、前記位相エラーを決定するために、前記第１のデジタルワードと前記第２のデジタルワードとを比較するようにさらに構成される、［Ｃ１１］に記載のクロック同期回路。
［Ｃ１４］  前記多相クロック発生器は、遅延同期ループ（ＤＬＬ）を備える、［Ｃ１１］に記載のクロック同期回路。
［Ｃ１５］  集積回路内で、各エンドポイントが、第１のデータストローブとデータとを受信するように、前記データと、対応する前記第１のデータストローブとを、データソースから複数のエンドポイントに送信することと、
各第１のレジスタが、前記エンドポイントの第１のレジスタに対する多重分離シーケンスに従って多重分離されたデータを受信するように、前記受信されたデータを、各エンドポイントにおける複数の第１のレジスタへと多重分離することと、
前記受信された第１のデータストローブに応じて、前記受信され多重分離されたデータを、各第１のレジスタに記録することと、
前記エンドポイントに対する選択されたデータ信号を形成するために、前記多重分離シーケンスの遅延されたバージョンに従って、各エンドポイントにおける前記複数の第１のレジスタから選択することと、
各エンドポイントにおいて、第２のデータストローブに応じて、前記エンドポイントの選択されたデータ信号を第２のレジスタに記録することと、
を特許請求する方法。
［Ｃ１６］  各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有するように、複数の遅延クロックを生成することと、
選択された遅延クロックを形成するために、位相エラーに応じて、前記複数の遅延クロックから選択することと、
前記選択された遅延クロックを、クロックパスの第１の端部に駆動することと、
前記選択された遅延クロックを前記クロックパスの前記第１の端部に駆動することに応じて、前記第１のレジスタのうちの１つで、前記クロックパスの第２の端部からの前記第１のデータストローブを受信することと、
前記位相エラーを決定するために、前記クロックパスの前記第２の端部からの前記受信された第１のデータストローブを、前記第２のデータストローブと比較することと、
をさらに備える、［Ｃ１５］に記載の方法。
［Ｃ１７］  前記多重分離は、少なくとも３：１の多重分離である、［Ｃ１５］に記載の方法。
［Ｃ１８］  前記多重分離は、少なくとも４：１の多重分離である、［Ｃ１５］に記載の方法。
［Ｃ１９］  各エンドポイントで前記選択することは、少なくとも３：１の多重化である、［Ｃ１５］に記載の方法。
［Ｃ２０］  各エンドポイントで前記選択することは、少なくとも４：１の多重化である、［Ｃ１５］に記載の方法。
［Ｃ２１］  集積回路であって、前記集積回路は下記を備える、
データソースと、
複数のエンドポイント、ここにおいて、各エンドポイント、前記データソースからの受信された第１のデータストローブに従って前記データソースからのデータを記録することと、第２のデータストローブに従って前記データを記録することとの間のセットアップ時間を変えるための手段、と、
前記第２のデータストローブを生成するように構成されたクロックソース。
［Ｃ２２］  前記複数のエンドポイントに対応する複数のデータパス、ここにおいて、各データパスは、前記データソースから、前記対応するエンドポイントでの前記手段へと延び、前記メモリコントローラが、データを、各データパスで前記対応するエンドポイントのデマルチプレクサへと送信するように構成される、と、
前記複数のエンドポイントに対応する複数のクロックパス、ここにおいて、各クロックパスは、前記データソースから、前記対応するエンドポイントにおける各手段へと延び、前記データソースが、前記第１のデータストローブを、前記対応するクロックパスで各エンドポイントに送信するように構成される、と、
をさらに備える、［Ｃ２１］に記載の集積回路。
［Ｃ２３］  前記第２のデータストローブを受信し、複数の遅延クロックを生成するように構成された多相クロック発生器、ここで、各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有する、と、
位相エラーに基づいて、前記遅延クロックのうちの１つを選択するように構成されたセレクタ回路、ここで、前記セレクタ回路が、前記遅延クロックの前記選択された１つを、前記データソースにラウンチするようにさらに構成され、ここにおいて、前記データソースが、前記受信され選択された遅延クロックを前記第１のデータストローブとして使用するように構成され、前記セレクタ回路が、前記位相エラーを決定するために、前記エンドポイントのうちの１つにおける前記受信された第１のデータストローブを、前記第２のデータストローブと比較するようにさらに構成される、と、
をさらに備える、［Ｃ２１］に記載の集積回路。
［Ｃ２４］  前記クロックソースは、位相同期ループ（ＰＬＬ）を備える、［Ｃ２１］に記載の集積回路。
［Ｃ２５］  前記データソースは、メモリコントローラを備える、［Ｃ２１］に記載の集積回路。
［Ｃ２６］  前記データパスおよび前記クロックパスはすべて、互いに電気的に整合されている、［Ｃ２２］に記載の集積回路。
［Ｃ２７］  集積回路であって、前記集積回路は下記を備える、
データソースと、
複数のエンドポイント、ここにおいて、各エンドポイントは、
第１のデータストローブに応じて、前記データソースからのデータを記録するように構成された複数の第１のレジスタと、
第２のデータストローブに応じて、前記第１のレジスタからの前記データを記録するように構成された第２のレジスタと、
を含む、と、
前記第２のデータストローブを受信し、複数の遅延クロックを生成するように構成された多相クロック発生器、ここで、各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有する、と、
位相エラーに基づいて、前記遅延クロックのうちの１つを選択するように構成されたセレクタ回路、ここで、前記セレクタ回路が、前記遅延クロックの前記選択された１つを、前記データソースにラウンチするようにさらに構成され、ここにおいて、前記データソースは、前記選択された遅延クロックを、前記第１のデータストローブとして、前記エンドポイントへの前記送信に使用するように構成され、前記セレクタ回路が、前記位相エラーを決定するために、前記エンドポイントのうちの１つにおける前記受信された第１のデータストローブを、前記第２のデータストローブと比較するようにさらに構成される。
［Ｃ２８］  前記データソースが、メモリコントローラを備える、［Ｃ２７］に記載の集積回路。
［Ｃ２９］  前記多相クロック発生器が、遅延同期ループを備える、［Ｃ２７］に記載の集積回路。
［Ｃ３０］  各エンドポイントにおける前記複数の第１のレジスタは、少なくとも３つの第１のレジスタを備える、［Ｃ２７］に記載の集積回路。
【手続補正書】
【提出日】平成29年2月13日(2017.2.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
集積回路であって、前記集積回路は下記を備える、
複数のエンドポイントと、
前記複数のエンドポイントに対応する複数のデータレジスタを含むメモリコントローラと、
前記複数のデータレジスタおよび前記複数のエンドポイントに対応する複数のデータパス、ここで、各データパスは、前記対応する複数のデータレジスタから、前記対応するエンドポイントへと延び、ここにおいて、各データレジスタが、第１のデータストローブに応じて、データを、前記対応するデータパス上で前記対応するエンドポイントに送信するように構成される、と、
前記複数のエンドポイントに対応する複数のクロックパス、ここで、各クロックパスは、前記メモリコントローラから、前記対応するエンドポイントへと延び、前記メモリコントローラが、前記第１のデータストローブを前記対応するクロックパスで、各エンドポイントに送信するように構成される、と、
第２のデータストローブを提供するように構成されたクロックソース、ここにおいて、前記クロックソースは、前記複数のエンドポイントから前記メモリコントローラを分離する第２の距離よりも小さい第１の距離だけ、前記複数のエンドポイントから分離され、各エンドポイントは、
複数の第１のレジスタと、
各第１のレジスタが多重分離シーケンスに従って多重分離されたデータを受信するように、前記対応するデータレジスタから前記データを多重分離するように構成されたデマルチプレクサ、ここにおいて、各第１のレジスタは、前記メモリコントローラから受信された前記第１のデータストローブに応じて、前記デマルチプレクサから受信された前記多重分離されたデータを記録するように構成される、と、
前記エンドポイントに対する前記多重分離シーケンスの遅延されたバージョンに従って、前記エンドポイントの第１のレジスタの各々からのデータ出力を選択するように構成されたマルチプレクサ、ここにおいて、各エンドポイントに対する前記多重分離シーケンスの前記遅延されたバージョンは、前記複数のクロックパスにわたる前記第１のデータストローブにおけるスキューを補償するために個々に調整され、前記マルチプレクサによる前記選択は、前記第２のデータストローブに応答する、と、
前記第２のデータストローブに応じて、前記マルチプレクサからの前記選択されたデータ出力を記録するように構成された第２のレジスタ、ここにおいて、各エンドポイントは、前記第２のデータストローブに応じて、その記録され選択されたデータ出力を外部メモリに送信するように構成される、と、
を含む、と、
前記第２のデータストローブから複数の遅延クロックを生成するように構成された多相クロック発生器、ここで、各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有する、と、
位相エラーに基づいて、前記遅延クロックのうちの１つを選択するように構成されたセレクタ回路、ここで、前記セレクタ回路が、前記遅延クロックの前記選択された１つを前記メモリコントローラにラウンチするようにさらに構成され、ここにおいて、前記データソースが、前記受信され選択された遅延クロックを前記第１のデータストローブとして使用するように構成され、前記セレクタ回路が、前記位相エラーを決定するために、前記エンドポイントのうちの１つにおける前記受信された第１のデータストローブを、前記第２のデータストローブと比較するようにさらに構成される。
【請求項２】
各エンドポイントにおける前記複数の第１のレジスタは、３つの第１のレジスタを備える、請求項１に記載の集積回路。
【請求項３】
各エンドポイントにおける前記複数の第１のレジスタは、４つの第１のレジスタを備える、請求項１に記載の集積回路。
【請求項４】
前記メモリコントローラは、前記デマルチプレクサの各々で、前記多重分離シーケンスを制御するように構成された書込みポインタを含む、請求項１に記載の集積回路。
【請求項５】
各エンドポイントは、前記複数のクロックパスにわたる前記第１のデータストローブに関する前記スキューを補償するために、前記エンドポイントのマルチプレクサにおいて、前記多重分離シーケンスの前記遅延されたバージョンを制御するように構成された読取りポインタをさらに備える、請求項１に記載の集積回路。
【請求項６】
前記データパスおよび前記クロックパスはすべて、互いに電気的に整合されている、請求項１に記載の集積回路。
【請求項７】
前記クロックソースは、位相同期ループ（ＰＬＬ）を備える、請求項１に記載の集積回路。
【請求項８】
前記セレクタ回路は、前記位相エラーに応じて、前記遅延クロックの前記選択された１つを選択するためのマルチプレクサを含む、請求項１に記載の集積回路。
【請求項９】
前記セレクタ回路は、第１のワードを決定するために、前記受信されたローカルクロックを前記複数の遅延クロックと比較し、また第２のワードを決定するために、前記基準クロックを前記複数の遅延クロックと比較するように構成された多相検出器を含み、前記多相検出器は、前記位相エラーを決定するために、前記第１のワードと前記第２のワードとを比較するようにさらに構成される、請求項１に記載のクロック同期回路。
【請求項１０】
前記多相クロック発生器は、遅延同期ループ（ＤＬＬ）を備える、請求項１に記載のクロック同期回路。
【請求項１１】
集積回路内で、第１の距離だけ複数のエンドポイントから分離されたクロックソースによって提供される第２のデータストローブから第１のデータストローブを導出することと、
メモリコントローラにおいて、前記第１のデータストローブに応じて、データを複数のデータレジスタに記録すること、ここにおいて、前記メモリコントローラは、前記第１の距離よりも大きい第２の距離だけ前記複数のエンドポイントから分離される、と、
前記データを前記データレジスタから前記複数のエンドポイントに送信し、前記第１のデータストローブを前記複数のエンドポイントに送信することと、
各第１のレジスタが、前記エンドポイントに対する多重分離シーケンスに従って多重分離されたデータを受信するように、各エンドポイントで、前記受信されたデータを、前記エンドポイントにおける複数の第１のレジスタへと多重分離することと、
前記受信された第１のデータストローブに応じて、および、前記エンドポイントの多重分離シーケンスに従って、前記受信され多重分離されたデータを、各第１のレジスタに記録することと、
前記複数のエンドポイントへの複数のクロックパスにわたる前記第１のデータストローブの伝播におけるスキューを補償するために、各エンドポイントで、前記エンドポイントに対する個々の遅延だけ前記多重分離シーケンスを遅延させることと、
前記第２のデータストローブに応じて、前記エンドポイントに対する選択されたデータ信号を形成するために、前記多重分離シーケンスの前記エンドポイントの遅延されたバージョンに従って、各エンドポイントにおける前記複数の第１のレジスタから選択することと、
各エンドポイントにおいて、前記第２のデータストローブに応じて、前記エンドポイントの選択されたデータ信号を第２のレジスタに記録することと、
前記第２のデータストローブに応じて、各エンドポイントから、前記記録され選択されたデータ信号を前記第２のメモリから外部レジスタに送信すること、ここにおいて、前記第２のデータストローブから前記第１のデータストローブを導出することは、前記エンドポイントのうちの１つで受信される前記第１のデータストローブと前記第２のデータストローブとの間の位相エラーに応答する、と、
を特許請求する方法。
【請求項１２】
前記第２のデータストローブから前記第１のデータストローブを導出することが、
各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有するように、前記第２のデータストローブから複数の遅延クロックを生成することと、
選択された遅延クロックを形成するために、前記位相エラーに応じて、前記複数の遅延クロックから選択することと、
前記選択された遅延クロックを、クロックパスの第１の端部に駆動することと、
前記選択された遅延クロックを前記クロックパスの前記第１の端部に駆動することに応じて、前記第１のレジスタのうちの前記１つで、前記クロックパスの第２の端部からの前記第１のデータストローブを受信することと、
前記位相エラーを決定するために、前記クロックパスの前記第２の端部からの前記受信された第１のデータストローブを、前記第２のデータストローブと比較することと、
を備える、請求項１１に記載の方法。
【請求項１３】
前記多重分離は、少なくとも１：３の多重分離である、請求項１１に記載の方法。
【請求項１４】
前記多重分離は、少なくとも１：４の多重分離である、請求項１１に記載の方法。
【請求項１５】
各エンドポイントで前記選択することは、少なくとも３：１の多重化である、請求項１１に記載の方法。
【請求項１６】
各エンドポイントで前記選択することは、少なくとも４：１の多重化である、請求項１１に記載の方法。
【請求項１７】
集積回路であって、前記集積回路は下記を備える、
複数のデータレジスタを含むメモリコントローラと、
第１の距離だけ前記メモリコントローラから分離された複数のエンドポイントと、
前記第１の距離よりも小さい第２の距離だけ前記複数のエンドポイントから分離されたクロックソース、ここにおいて、前記クロックソースが、第２のデータストローブを送信するように構成され、前記メモリコントローラが、第２のデータストローブから導出された第１のデータストローブを送信するように構成され、各エンドポイントが、前記メモリコントローラからの前記受信された第１のデータストローブに従って前記メモリコントローラ内の前記データレジスタからのデータを記録することの間のセットアップ時間を変えるためと、前記第２のデータストローブに従って前記データを再度記録するためのと手段を含み、前記手段は、前記メモリコントローラから各エンドポイントまの前記第１の距離にわたる前記伝播における前記第１のデータストローブのスキューを補償するために、各エンドポイントに対して個々に前記セットアップ時間を変えるようにさらに構成される。
【請求項１８】
各エンドポイントは、デマルチプレクサを含み、前記集積回路は、
前記複数のエンドポイントに対応する複数のデータパス、ここにおいて、各データパスは、前記メモリコントローラから、前記対応するエンドポイントでの前記手段へと延び、前記メモリコントローラが、データを、各データパスで前記対応するエンドポイントのデマルチプレクサへと送信するように構成される、と、
前記複数のエンドポイントに対応する複数のクロックパス、ここにおいて、各クロックパスは、前記メモリコントローラから、前記対応するエンドポイントにおける各手段へと延び、メモリコントローラが、前記第１のデータストローブを、前記対応するクロックパスで各エンドポイントに送信するように構成される、と、
をさらに備える、請求項１７に記載の集積回路。
【請求項１９】
前記第２のデータストローブを受信し、複数の遅延クロックを生成するように構成された多相クロック発生器、ここで、各遅延クロックが、前記第２のデータストローブに関して一意の遅延を有する、と、
位相エラーに基づいて、前記遅延クロックのうちの１つを選択するように構成されたセレクタ回路、ここで、前記セレクタ回路が、前記遅延クロックの前記選択された１つを、前記メモリコントローラにラウンチするようにさらに構成され、ここにおいて、前記メモリコントローラが、前記受信され選択された遅延クロックを前記第１のデータストローブとして使用するように構成され、前記セレクタ回路が、前記位相エラーを決定するために、前記エンドポイントのうちの１つにおける前記受信された第１のデータストローブを、前記第２のデータストローブと比較するようにさらに構成される、と、
をさらに備える、請求項１７に記載の集積回路。
【請求項２０】
前記クロックソースは、位相同期ループ（ＰＬＬ）を備える、請求項１７に記載の集積回路。
【請求項２１】
前記データパスおよび前記クロックパスはすべて、互いに電気的に整合されている、請求項１８に記載の集積回路。
【国際調査報告】
2017517820.tif 000007
2017517820.tif 000008
2017517820.tif 000009