(57)【特許請求の範囲】
【請求項１】
データ同期のための方法であって、
基準クロック信号に基づいてクリーン・クロック信号を生成することと、
データおよびデータ・クロック信号をメモリ・コントローラから受け取ることと、
前記受け取ったデータ・クロック信号を用いて前記受け取ったデータをサンプルすることと、
前記サンプルされたデータを、前記クリーン・クロック信号と同期させることと、
を備える方法。
【請求項２】
前記メモリ・コントローラは、チップのほぼ中心に配置され、前記サンプルされたデータを、前記クリーン・クロックと同期させることは、前記チップの周辺部の付近で実行される、請求項１に記載の方法。
【請求項３】
前記基準クロック信号および前記データ・クロック信号はともに、共通のクロックから導出される、請求項２に記載の方法。
【請求項４】
前記クリーン・クロック信号を生成することは、フェーズ・ロック・ループ（ＰＬＬ）を用いて、前記基準クロック信号におけるジッタを減衰させることを備える、請求項１に記載の方法。
【請求項５】
前記サンプルされたデータを、前記クリーン・クロックと同期させることは、
前記クリーン・クロック信号の立ち上がりエッジにおいて、前記サンプルされたデータをサンプルして、サンプルされた立ち上がりエッジ（ＲＥ）データを生成することと、
前記クリーン・クロック信号の立ち下がりエッジにおいて、前記サンプルされたデータをサンプルして、サンプルされた立ち下がりエッジ（ＦＥ）データを生成することと、
前記データ・クロック信号と、前記クリーン・クロック信号との間の位相差を決定することと、
前記サンプルされたＲＥデータまたは前記サンプルされたＦＥデータを、前記決定された位相差に基づいて選択することと、
をさらに備える、請求項１に記載の方法。
【請求項６】
前記サンプルされたＲＥデータまたは前記サンプルされたＦＥデータを選択することは、
前記データ・クロック信号のサンプリング・エッジが、前記クリーン・クロック信号の立ち上がりエッジにより近いか、前記クリーン・クロック信号の立ち下がりエッジにより近いかを、前記決定された位相差に基づいて決定することと、
前記データ・クロックのサンプリング・エッジが、前記クリーン・クロック信号の立ち下がりエッジにより近い場合、前記サンプルされたＲＥデータを選択することと、
前記データ・クロック信号のサンプリング・エッジが、前記クリーン・クロック信号の立ち上がりエッジにより近い場合、前記サンプルされたＦＥデータを選択することと、
を備える、請求項５に記載の方法。
【請求項７】
前記データ・クロック信号と前記クリーン・クロック信号との間の前記位相差を決定することは、前記データ・クロック信号を用いて、較正信号をサンプルすることと、
前記サンプルされた較正信号と、前記クリーン・クロック信号との間の位相差を決定することと、
を備える、請求項５に記載の方法。
【請求項８】
前記サンプルされたデータを、前記クリーン・クロックと同期させることは、
前記サンプルされたデータを、前記クリーン・クロック信号を用いて、複数の異なるサンプル・ポイントにおいてサンプルして、サンプルされたクリーン・クロック・データを生成することと、
前記データ・クロック信号と、前記クリーン・クロック信号との間の位相差を決定することと、
前記複数のサンプル・ポイントのうちの１つに対応する、前記サンプルされたクリーン・クロック・データを、前記決定された位相差に基づいて選択することと、
をさらに備える、請求項１に記載の方法。
【請求項９】
データ同期のための装置であって、
基準クロック信号に基づいてクリーン・クロック信号を生成するための手段と、
データおよびデータ・クロック信号をメモリ・コントローラから受け取るための手段と、
前記受け取ったデータ・クロック信号を用いて前記受け取ったデータをサンプルするための手段と、
前記サンプルされたデータを、前記クリーン・クロック信号と同期させるための手段と、を備える装置。
【請求項１０】
前記メモリ・コントローラは、チップのほぼ中心に配置され、前記同期させるための手段は、前記チップの周辺部の付近に配置される、請求項９に記載の装置。
【請求項１１】
前記基準クロック信号および前記データ・クロック信号はともに、共通のクロック信号から導出される、請求項１０に記載の装置。
【請求項１２】
前記同期させるための手段は、
前記クリーン・クロック信号の立ち上がりエッジにおいて、前記サンプルされたデータをサンプルして、サンプルされた立ち上がりエッジ（ＲＥ）データを生成するための手段と、
前記クリーン・クロック信号の立ち下がりエッジにおいて、前記サンプルされたデータをサンプルして、サンプルされた立ち下がりエッジ（ＦＥ）データを生成するための手段と、
前記データ・クロック信号と、前記クリーン・クロック信号との間の位相差を決定するための手段と、
前記サンプルされたＲＥデータまたは前記サンプルされたＦＥデータを、前記決定された位相差に基づいて選択するための手段と、
をさらに備える、請求項９に記載の装置。
【請求項１３】
前記選択するための手段はさらに、前記データ・クロック信号のサンプリング・エッジが、前記クリーン・クロック信号の立ち上がりエッジにより近いか、前記クリーン・クロック信号の立ち下がりエッジにより近いかを、前記決定された位相差に基づいて決定するための手段と、
前記データ・クロックのサンプリング・エッジが、前記クリーン・クロック信号の立ち下がりエッジにより近い場合、前記サンプルされたＲＥデータを選択するための手段と、
前記データ・クロック信号のサンプリング・エッジが、前記クリーン・クロック信号の立ち上がりエッジにより近い場合、前記サンプルされたＦＥデータを選択するための手段と、
を備える、請求項１２に記載の装置。
【請求項１４】
前記同期させるための手段は、
前記サンプルされたデータを、前記クリーン・クロック信号を用いて、複数の異なるサンプル・ポイントにおいてサンプルして、サンプルされた複数のクリーン・クロック・データを生成するための手段と、
前記データ・クロック信号と、前記クリーン・クロック信号との間の位相差を決定するための手段と、
前記複数のサンプル・ポイントのうちの１つに対応する、前記サンプルされたクリーン・クロック・データを、前記決定された位相差に基づいて選択するための手段と、
をさらに備える、請求項９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示の態様は、一般に、メモリ・インターフェースに関し、さらに詳しくは、メモリ・インターフェースのための同期システムおよび方法に関する。
【背景技術】
【０００２】
[0002]システム・オン・チップ（ＳｏＣ）は、ＳｏＣ上の１または複数のブロック（例えば、ＣＰＵ、ＧＰＵ等）を、外部メモリ・デバイスとインターフェースするためのメモリ・インターフェースを含みうる。メモリ・インターフェースは、中央に配置されたメモリ・コントローラと、ＳｏＣの周辺に沿って配置された複数の物理（ＰＨＹ）ブロックとを備えうる。メモリ・コントローラは、外部メモリ・デバイスにアクセスする必要のあるＳｏＣ上のブロックと外部メモリ・デバイスとの間のデータのフローを管理する。ＳｏＣ上のブロックが、外部メモリ・デバイスへデータを書き込む必要がある場合、メモリ・コントローラは、クロック信号およびコマンド／アドレス（ＣＡ）信号とともに、ＰＨＹブロックのうちの１または複数へとデータを送信する。１または複数のＰＨＹブロックは、適用可能なメモリ規格に従って、外部メモリ・デバイスへ出力するために、データ、クロック信号、およびＣＡ信号を調整する。
【発明の概要】
【０００３】
[0003]以下は、１または複数の実施形態の基本的な理解を与えるために、このような実施形態の簡略化された概要を示す。この概要は、考えられるすべての実施形態の広範囲な概観ではなく、すべての実施形態の重要要素や決定的要素を特定することも、いずれかまたはすべての実施形態の範囲を線引きすることも意図されていない。その唯一の目的は、後述されるより詳細な記載に対する前置きとして、簡略化された形式で１または複数の実施形態のいくつかの概念を表すことである。
【０００４】
[0004]本明細書では、態様に従って、メモリ・インターフェースが記載される。メモリ・インターフェースは、基準クロック信号を受け取り、基準クロック信号に基づいて、クリーン・クロック信号を生成するように構成されたクリーンアップ・フェーズ・ロック・ループ（ＰＬＬ）を備える。メモリ・インターフェースはまた、データ、データ・クロック信号、およびクリーン・クロック信号を受け取るように構成された同期回路を備え、この同期回路はさらに、データ・クロック信号を用いてデータをサンプルし、サンプルされたデータを、クリーン・クロック信号と同期させるように構成される。
【０００５】
[0005]第２の態様は、データ同期のための方法に関する。この方法は、基準クロック信号に基づいてクリーン・クロック信号を生成することと、データ・クロック信号を用いてデータをサンプルすることと、サンプルされたデータを、クリーン・クロック信号と同期させることと、を備える。
【０００６】
[0006]第３の態様は、データを同期させるための装置に関する。この装置は、基準クロック信号に基づいてクリーン・クロック信号を生成するための手段と、データ・クロック信号を用いてデータをサンプルするための手段と、サンプルされたデータを、クリーン・クロック信号と同期させるための手段と、を備える。
【０００７】
[0007]前述した目的および関連する目的を達成するために、１または複数の実施形態は、以下に十分説明され、特に特許請求の範囲で指摘される特徴を備える。次の記載および添付図面は、１または複数の実施形態のある実例となる態様を詳細に記載する。しかしながら、これらの態様は、さまざまな実施形態の原理が適用されるさまざまな方法のうちの僅かしか示しておらず、記載された実施形態は、このようなすべての局面およびそれらの均等物を示すことが意図されている。
【図面の簡単な説明】
【０００８】
【図１】[0008]図１は、メモリ・インターフェースを備えたシステム・オン・チップ（ＳｏＣ）の例を図示する。
【図２】[0009]図２は、本開示の実施形態に従うメモリ・インターフェースを図示する。
【図３】[0010]図３は、本開示の実施形態に従う同期回路を図示する。
【図４】[0011]図４は、本開示の実施形態に従ってクゥアドラントに分割されたクリーン・クロック信号を図示する。
【図５】[0012]図５は、本開示の別の実施形態に従う同期回路を図示する。
【図６】[0013]図６は、本開示の実施形態に従う位相検出器を図示する。
【図７】[0014]図７は、本開示の実施形態に従って、クリーン・クロック信号の異なるクゥアドラントにおいて揃えられた４つの較正信号の例を図示する。
【図８】[0015]図８は、本開示の実施形態に従って、サイクル・スリップを阻止することが可能な同期回路を図示する。
【図９】[0016]図９は、本開示の実施形態に従う真理値表を図示する。
【図１０】[0017]図１０は、メモリ・インターフェース内の物理（ＰＨＹ）ブロック間の遅延ミスマッチの例を図示する。
【図１１】図１１は、メモリ・インターフェース内の物理（ＰＨＹ）ブロック間の遅延ミスマッチの例を図示する。
【図１２】[0018]図１２は、スタティックなサイクル・スリップに至るＰＨＹブロック間の遅延ミスマッチの例を図示する。
【図１３】[0019]図１３は、本開示の実施形態に従って、デフォルト・エントリおよびプッシュ・アウト・エントリを備える真理値表を図示する。
【図１４】[0020]図１４は、スタティックなサイクル・スリップに至るＰＨＹブロック間の遅延ミスマッチの別の例を図示する。
【図１５】[0021]図１５は、本開示の別の実施形態に従って、デフォルト・エントリおよびプッシュ・アウト・エントリを備える真理値表を図示する。
【図１６】[0022]図１６は、本開示の実施形態に従ってデータを同期させる方法のフローチャートである。
【発明を実施するための形態】
【０００９】
[0023]添付図面とともに以下に説明する詳細な説明は、さまざまな構成の説明として意図されており、本明細書に記載された概念が実現される唯一の構成を表すことは意図されていない。この詳細な説明は、さまざまな概念の完全な理解を提供することを目的とした具体的な詳細を含んでいる。しかしながら、これらの概念は、これら具体的な詳細無しで実現されうることが当業者に明らかになるであろう。いくつかの事例では、周知の構成および構成要素が、このような概念を曖昧にすることを避けるために、ブロック図形式で示されている。
【００１０】
[0024]図１は、ＳｏＣ  １１０上の１または複数のブロック（例えば、ＣＰＵ、ＧＰＵ等）を、外部メモリ・デバイス（例えば、ダブル・データ・レート・シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＤＤＲ  ＳＤＲＡＭ））とインターフェースするためのメモリ・インターフェースを備えたシステム・オン・チップ（ＳｏＣ）１１０の例を図示する。簡略のために、外部メモリ・デバイスと、メモリ・インターフェースを用いて外部メモリ・デバイスにアクセスするＳｏＣ  １１０上のブロックとは、図１に図示されていない。メモリ・インターフェースは、外部ＤＤＲ  ＳＤＲＡＭの例を用いて以下に記載されているが、本開示は、この例に限定されず、その他のタイプのメモリ・デバイスに適用されうることが認識されるべきである。
【００１１】
[0025]メモリ・インターフェースは、中央に配置されたメモリ・コントローラ１１５と、ＳｏＣ  １１０の周辺に沿って配置された複数の物理（ＰＨＹ）ブロック１２０ａ−１２０ｅおよび１２５ａ−１２５ｅと、を備えうる。メモリ・コントローラ１１５は、外部ＤＤＲ  ＳＤＲＡＭにアクセスする必要のあるＳｏＣ  １１０上のブロックと外部ＤＤＲ  ＳＤＲＡＭとの間のデータのフローを管理する。メモリ・アクセスは、外部ＤＤＲ  ＳＤＲＡＭへデータを書き込むことと、外部ＤＤＲ  ＳＤＲＡＭからデータを読み取ることとを含みうる。例えば、ＳｏＣ  １１０上のブロックが、外部ＤＤＲ  ＳＤＲＡＭへデータを書き込む必要がある場合、メモリ・コントローラ１１５は、対応するＤＤＲデータ、クロック信号、およびコマンド／アドレス（ＣＡ）信号を生成し、ＰＨＹブロック１２０ａ−１２０ｅおよび１２５ａ−１２５ｅのうちの１または複数へ送信する。１または複数のＰＨＹブロック１２０ａ−１２０ｅおよび１２５ａ−１２５ｅは、適用可能なメモリ規格に従って、外部ＤＤＲ  ＳＤＲＡＭへ出力するために、ＤＤＲデータ、クロック信号、およびＣＡ信号を調整する。
【００１２】
[0026]ＤＤＲデータは、４バイトのデータ・ワードに対応する４バイトの幅を有しうる。この例において、メモリ・コントローラ１１５は、４つのＰＨＹブロック（例えば、ＰＨＹブロック１２０ａ−１２０ｄ）に並行して、４バイトのＤＤＲデータを送信し、ここで、各バイトは、４つのＰＨＹブロックのうちの異なる１つに送信される。メモリ・コントローラ１１５はまた、４つのＰＨＹブロックの各々へ、クロック信号を送信する。したがって、４つのＰＨＹブロックの各々は、クロック信号およびＤＤＲデータのそれぞれのバイトを受け取る。メモリ・コントローラ１１５はまた、外部ＤＤＲ  ＳＤＲＡＭへの出力のために、ＰＨＹブロックのうちの５番目のＰＨＹブロック（例えば、ＰＨＹブロック１２０ｅ）へＣＡ信号を送信する。
【００１３】
[0027]図１に図示される例において、ＳｏＣ  １１０は、ＤＤＲデータを同じメモリ・デバイスまたは別のメモリ・デバイスへ転送するために、（ＣＨ０およびＣＨ１と示される）２つのメモリ・チャネルを有する。例えば、メモリ・コントローラ１１５は、チャネルＣＨ０のためのＤＤＲデータおよびＣＡ信号を、ＰＨＹブロック１２０ａ−１２０ｅへ送信しうる。チャネルＣＨ０に関するＤＤＲデータは、（ＤＱ０、ＤＱ１、ＤＱ２およびＤＱ３と示される）４バイトの幅を有し得、ここで、各バイトは、ＰＨＹブロック１２０ａ−１２０ｄの各１つに送信される。チャネルＣＨ０に関するＣＡ信号は、ＰＨＹブロック１２０ｅに送信される。メモリ・コントローラ１１５は、チャネルＣＨ１に関するＣＡ信号およびＤＤＲデータを、ＰＨＹブロック１２５ａ−１２５ｅへ送信しうる。ＣＨ１に関するＤＤＲデータは、（ＤＱ０、ＤＱ１、ＤＱ２およびＤＱ３と示される）４バイトの幅を有し得、ここで、各バイトは、ＰＨＹブロック１２５ａ−１２５ｄの各１つに送信される。チャネルＣＨ０に関するＣＡ信号は、ＰＨＹブロック１２５ｅに送信される。
【００１４】
[0028]ＤＤＲ  ＳＤＲＡＭとインターフェースすることは、高速であることから、究極的なチャレンジであり得、これは、ＳｏＣとＤＤＲ  ＳＤＲＡＭとの間で満たされる必要のある厳しいタイミング要求につながる。１つのチャレンジは、ＳｏＣ上の周辺部にある対応するＰＨＹブロックへの全ての経路に、異なるバイトに関する中央で生成されたＤＤＲデータおよびクロック信号を分配することである。さらに、ＰＨＹブロックは、ＳｏＣの周辺に沿って、離れた間隔で配置されうる。その結果、異なるバイトのＤＤＲデータおよびクロック信号が、比較的長い距離（例えば、１０〜２０ミリメートル）にわたって、ＳｏＣの周辺への異なる経路を通過する必要がある。
【００１５】
[0029]上記問題に対処するための１つのアプローチは、中央に配置されたメモリ・コントローラから、ソース同期（source synchronous）インターフェースを経由して、ＳｏＣの周辺へとＤＤＲデータを送信することである。しかしながら、このアプローチは、クロック速度が、ギガヘルツ範囲に達した場合、極端に冗長となり、ほとんど達成されなくなる。ＤＤＲ  ＳＤＲＡＭに達するクロックはまた、厳しいジッタ（Ｔｊｉｔ）要求およびデューティ・サイクル（Ｔｄｃ）要求を満たさねばならず、これは、電圧および温度によって、ＳｏＣのさまざまな部分においてジッタを誘発されるので、ＳｏＣの周辺部に分配される中央で生成されたクロックについて、達成することが困難である。
【００１６】
[0030]ＳｏＣ内でデータを送信するための別のアプローチは、ファースト・イン・ファースト・アウト（ＦＩＦＯ）デバイスのような標準的な非同期クロック領域を越える回路を用いることである。このアプローチは、領域を越えるためのいくつかの追加のクロック・サイクルを必要とし、これは、レイテンシに影響を受け易いシステムのための大きなペナルティでありうる。このアプローチはまた、ＤＤＲデータが外部ＤＤＲ  ＳＤＲＡＭへ出力される場合、ＤＤＲデータの同じワードに対応するバイトが、揃えられることを確実にするために、ＰＨＹブロック間の調整を必要とする。
【００１７】
[0031]図２は、本開示の態様に従うメモリ・インターフェース２０５を図示する。メモリ・インターフェース２０５は、メモリ・コントローラ１１５およびクロック・フェーズ・ロック・ループ（ＰＬＬ）２１０を備える。これらは両方とも、ＳｏＣ  １１０の中央に配置されうる。メモリ・インターフェース２０５はまた、クリーンアップＰＬＬ  ２２５および同期回路２３０を備え、これらは両方とも、ＳｏＣ  １１０の周辺部の付近に配置され、図１に図示されたＰＨＹブロックのうちの１つに含まれうる。メモリ・インターフェース２０５はまた、分周器２１２を備えうる。
【００１８】
[0032]動作時において、クロックＰＬＬ  ２１０は、水晶発振器（図示せず）から入力クロック信号を受け取り、入力クロック信号に基づいて、出力クロック信号を生成する。メモリ・コントローラ１１５は、外部ＤＤＲ  ＳＤＲＡＭにアクセスしているＳｏＣ  １１０におけるブロック（図示せず）からのデータに基づいて、ＤＤＲデータを生成する。メモリ・コントローラ１１５はまた、クロックＰＬＬ  ２１０からの出力クロック信号に基づいて、データ・クロック信号を生成する。高速データ転送のために、データ・クロック信号は、約１ギガ・ヘルツ以上の周波数を有しうる。メモリ・コントローラ１１５は、同期回路２３０にＤＤＲデータおよびデータ・クロック信号を出力する。ＤＤＲデータは、メモリ・コントローラ１１５において、データ・クロック信号の立ち上がりエッジと揃えられうる。ＤＤＲデータおよびデータ・クロック信号は、ＳｏＣ  １１０のほぼ中央から、ＳｏＣ  １１０の周辺部の付近に位置している同期回路２３０へと、ＳｏＣ  １１０内を比較的長い距離（例えば、１０〜２０ミリメートル）を移動しうる。
【００１９】
[0033]分周器２１２はまた、クロックＰＬＬ  ２１０から出力クロック信号を受け取り、出力クロック信号の周波数をＮで除することによって、低周波数の基準クロック信号が生成される。これは、クリーンアップＰＬＬ  ２２５へ出力される。低周波数のクロック信号は、少ない電力しか消費しないので、電力消費を減少させるために、周波数低減がなされる。基準クロック信号は、ＳｏＣ  １１０のほぼ中央から、ＳｏＣ  １１０の周辺部の付近に位置しているクリーンアップＰＬＬ  ２２５へと、ＳｏＣ  １１０内を比較的長い距離（例えば、１０〜２０ミリメートル）移動する。その結果、基準クロック信号は、基準クロック信号がクリーンアップＰＬＬ  ２２５に達する時間まで、ＳｏＣのさまざまな部分からのジッタを蓄積する。
【００２０】
[0034]クリーンアップＰＬＬ  ２２５は、基準クロック信号内のジッタを低減し、基準クロック信号の周波数にＮを乗じることによって、クリーン・クロック信号を生成する。クリーン・クロック信号は、データ・クロック信号と同じ周波数を有しうるが、必ずしも同じ位相を有する必要はない。クリーンアップＰＬＬ  ２２５は、ジッタを減衰させるループ・フィルタ（例えば、ロウ・パス・ループ・フィルタ）を用いてジッタを低減する。クリーン・クロック信号は、外部ＤＤＲ  ＳＤＲＡＭへ出力されるＤＤＲ出力クロック信号のために使用されうる。なぜなら、（ＳｏＣ  １１０の周辺部の付近で生成された）クリーン・クロック信号は、単に、外部ＤＤＲ  ＳＤＲＡＭへの出力のためにＳｏＣ  １１０のＩＯピンに到着するために短い距離しか移動しなくてよく、したがって、低いジッタしか有さない。クリーン・クロック信号はまた、ＤＤＲデータをサンプル（キャプチャ）するためにＤＤＲ  ＳＤＲＡＭが使用しうる、ＤＤＲ  ＳＤＲＡＭへのデータ・ストローブ信号を生成するために使用されうる。低いジッタは、ＤＤＲ  ＳＤＲＡＭへのクロックおよびデータ・ストローブ・タイミング要件を満たすことをより簡単にする。
【００２１】
[0035]同期回路２３０は、メモリ・コントローラ１１５からのＤＤＲデータおよびデータ・クロック信号と、クリーンアップＰＬＬ  ２２５からのクリーン・クロック信号とを受け取る。クリーンアップＰＬＬ  ２２５は、同期回路２３０の付近に配置されており、したがって、同期回路２３０にローカルである。同期回路２３０は、データ・クロック信号を用いてＤＤＲデータをサンプル（キャプチャ）する。例えば、同期回路２３０は、データ・クロック信号の立ち上がりエッジまたは立ち下がりエッジにおけるＤＤＲデータをキャプチャしうる。同期回路２３０はその後、キャプチャされたＤＤＲデータを、クリーン・クロック信号と同期させる。したがって、同期回路２３０は、データ・クロック領域からクリーン・クロック領域へとＤＤＲデータのタイミングをあわせる。同期回路２３０は、タイミングがあったＤＤＲデータを外部ＤＤＲ  ＳＤＲＡＭへ出力しうる。タイミングがあったＤＤＲデータは、ＳｏＣ  １１０上の１または複数のＩＯピンを介して外部ＤＤＲ  ＳＤＲＡＭへダイレクトに出力されうるか、または、１または複数のＩＯピンを介して外部ＤＤＲ  ＳＤＲＡＭへ出力される前に、それぞれのＰＨＹブロックにおける追加の処理を実行しうる。
【００２２】
[0036]例示を容易にするために、１つの同期回路および１つのクリーンアップＰＬＬしか図２に図示されていないが、メモリ・インターフェースは、ＳｏＣ  １１０の周辺に沿った異なる場所に、複数の同期回路およびクリーンアップＰＬＬを備えうることが認識されるべきである。例えば、図１に図示されるＰＨＹブロックの各々は、１または複数の同期回路、および１または複数のクリーンアップＰＬＬを含みうる。
【００２３】
[0037]図３は、本開示の１つの実施形態に従う同期回路３３０を図示する。同期回路３３０は、第１ステージ・フリップ・フロップ３３５と、立ち上がりエッジ（ＲＥ）フリップ・フロップ３４０と、立ち下がりエッジ（ＦＥ）フリップ・フロップ３５０と、出力フリップ・フリップ３６５と、マルチプレクサ３６０と、位相検出器３７０と、セレクタ３８０とを備える。
【００２４】
[0038]第１ステージ・フリップ・フロップ３３５は、メモリ・コントローラ１１５からデータ・クロック信号およびＤＤＲデータを受け取り、データ・クロック信号の立ち下がりエッジにおけるＤＤＲデータをサンプル（キャプチャ）する。第１ステージ・フリップ・フロップ３３５は、サンプル（キャプチャ）されたＤＤＲデータを、ＲＥフリップ・フロップ３４０およびＦＥフリップ・フリップ３５０へ出力する。
【００２５】
[0039]ＲＥフリップ・フロップ３４０は、クリーン・クロック信号の立ち上がりエッジにおいて第１ステージ・フリップ・フロップ３３５からのＤＤＲデータをサンプルし、ＦＥフリップ・フロップ３５０は、クリーン・クロック信号の立ち下りエッジにおいて第１ステージ・フリップ・フロップ３３５からのＤＤＲデータをサンプルする。ＲＥフリップ・フロップ３４０およびＦＥフリップ・フリップ３５０は、ＲＥサンプルされたＤＤＲデータおよびＦＥサンプルされたＤＤＲデータを、マルチプレクサ３６０にそれぞれ出力する。マルチプレクサ３６０は、ＲＥサンプルされたＤＤＲデータまたはＦＥサンプルされたＤＤＲデータを、以下にさらに記載されるように、セレクタ３８０からのコマンドに基づいて、出力フリップ・フロップ３６０へ選択的に出力する。出力フリップ・フロップ３６０は、クリーン・クロック信号と揃えられたクリーンＤＤＲデータを生成するために、クリーン・クロック信号の立ち下がりエッジにおいて、マルチプレクサ２６０の出力をサンプル（キャプチャ）する。したがって、同期回路３３０は、データ・クロック領域からクリーン・クロック領域へとＤＤＲデータのタイミングをあわせる。前述したように、クリーン・クロック信号は、ＤＤＲ  ＳＤＲＡＭへ出力されたＤＤＲクロックのために使用されうる。このケースでは、同期回路３３０が、ＤＤＲデータを、ＤＤＲクロック出力に同期させる。
【００２６】
[0040]前述したように、データ・クロック信号およびクリーンアップＰＬＬ  ２２５からのクリーン・クロック信号は、同じ周波数を有しうるが、必ずしも同じ位相を有する必要はない。位相検出器３７０は、クリーン・クロック信号およびデータ・クロック信号を受け取り、２つのクロック信号間の位相差（オフセット）を決定する。位相検出器の処理単位（granularity）は、クロック・サイクル（周期）の１／４、あるいは、より精細な処理単位でありうる。セレクタ３８０は、マルチプレクサ３６０に対して、以下にさらに記載されるように、位相検出器３７０からの位相検出に基づいて、ＲＥフリップ・フロップ３４０からＲＥサンプルされたＤＤＲデータ、または、ＦＥフリップ・フロップ３５０からＦＥサンプルされたＤＤＲデータを選択するように指示する。
【００２７】
[0041]１つの実施形態では、セレクタ３８０は、位相検出器３７０からの位相検出に基づいて、データ・クロック信号の立ち下がりエッジ（サンプリング・エッジ）が、クリーン・クロック信号の立ち下がりエッジにより近いか、立ち上がりエッジにより近いのかを判定する。データ・クロック信号の立ち下がりエッジ（サンプリング・エッジ）が、クリーン・クロック信号の立ち上がりエッジに、より近い場合、セレクタ３８０は、マルチプレクサ３６０に対して、ＦＥフリップ・フロップ３５０からＦＥサンプルされたＤＤＲデータを選択するように指示する。データ・クロック信号の立ち下がりエッジ（サンプリング・エッジ）が、クリーン・クロック信号の立ち下がりエッジに、より近い場合、セレクタ３８０は、マルチプレクサ３６０に対して、ＲＥフリップ・フロップ３４０からＲＥサンプルされたＤＤＲデータを選択するように指示する。したがって、セレクタ３８０は、フリップ・フロップ３４０，３５０の出力を選択し、データ・クロック信号の立ち下がりエッジ（サンプリング・エッジ）からさらに離れたクリーン・クロック信号のエッジにおけるＤＤＲデータをサンプルする。なぜなら、第１ステージ・フリップ・フロップ３３５からのＤＤＲデータは、データ・クロック信号の立ち下がりエッジ（サンプリング・エッジ）において変動するからである。その結果、第１ステージ・フリップ・フロップ３３５からのＤＤＲデータは、データ・クロック信号の立ち下がりエッジ（サンプリング・エッジ）からさらに離れたクリーン・クロック信号のエッジにおいてサンプルされた場合に、より安定する可能性が高い（したがって、準安定状態をもたらす可能性は低い）。
【００２８】
[0042]１つの実施形態では、位相検出器３７０の処理単位は、クロック・サイクル（周期）の４分の１である。この点に関し、図４は、クリーン・クロック信号４１０の例を図示しており、ここでは、クリーン・クロック信号４１０の各サイクルは、（１〜４とラベル付けされた）４つのクゥアドラント（quadrant）へ分割される。この実施形態では、位相検出器３７０は、クリーン・クロック信号４１０の４つのクゥアドラントのうちのどれに、データ・クロック信号の立ち下がりエッジ（サンプリング・エッジ）が存在するのかを示す値を出力しうる。データ・クロック信号の立ち下がりエッジが、クゥアドラント１またはクゥアドラント４に存在することを位相検出器３７０が示す場合、データ・クロック信号の立ち下がりエッジは、クリーン・クロック信号４１０の立ち下がりエッジよりも、クリーン・クロック信号４１０の立ち上がりエッジに、より近いと考えられうる。このケースでは、セレクタ３８０は、ＦＥフリップ・フロップ３５０からのＦＥサンプルされたＤＤＲデータを選択するようにマルチプレクサ３６０に指示しうる。データ・クロック信号の立ち下がりエッジが、クゥアドラント２またはクゥアドラント３に存在することを位相検出器３７０が示す場合、データ・クロック信号の立ち下がりエッジは、クリーン・クロック信号４１０の立ち上がりエッジよりも、クリーン・クロック信号４１０の立ち下がりエッジに、より近いと考えられうる。このケースでは、セレクタ３８０は、ＲＥフリップ・フロップ３４０からのＲＥサンプルされたＤＤＲデータを選択するようにマルチプレクサ３６０に指示しうる。
【００２９】
[0043]図５は、別の実施形態に従う同期回路５３０を図示しており、ここでは、位相検出器５７０が、メモリ・コントローラ１１５からの較正信号を用いて位相検出を実行する。メモリ・コントローラ１１５は、同期回路５３０に較正信号を定期的に出力しうる。例えば、メモリ・コントローラ１１５は、データ・クロック信号のＭサイクル毎に一度、較正信号を出力しうる。各較正信号は、パルス信号またはその他のタイプの信号を備えうる。メモリ・コントローラ１１５は、ＤＤＲデータをメモリ・コンとローラ１１５から同期回路５３０へ伝送するために使用されるデータ・ラインで、較正信号を定期的に出力し得、ここでは、ＤＤＲデータおよび較正信号が、データ・ラインで、異なる時間において送られる。
【００３０】
[0044]較正信号がメモリ・コントローラ１１５から出力された場合、第１ステージ・フリップ・フロップ３３５は、データ・クロック信号の立ち下がりエッジ（サンプリング・エッジ）において較正信号をキャプチャする。その結果、キャプチャされた較正信号の立ち上がりエッジが、データ・クロック信号の立ち下がりエッジ（サンプリング・エッジ）とほぼ揃えられる。位相検出器５７０は、キャプチャされた較正信号を、第１ステージ・フリップ・フロップ３３５から受け取り、キャプチャされた較正信号の立ち上がりエッジと、クリーン・クロック信号の立ち上がりエッジとの間の位相差（オフセット）を決定する。キャプチャされた較正信号の立ち上がりエッジは、データ・クロック信号の立ち下がりエッジ（サンプリング・エッジ）とほぼ揃えられ、位相差は、データ・クロック信号の立ち下がりエッジ（サンプリング・エッジ）と、クリーン・クロック信号の立ち上がりエッジとの間の位相差にほぼ等しい。
【００３１】
[0045]位相検出器５７０は、決定された位相差を、セレクタ３８０へ出力し、セレクタ３８０は、マルチプレクサ３６０に対して、位相差に基づいて、ＲＥフリップ・フロップ３４０からのＲＥサンプルされたＤＤＲデータ、または、ＦＥフリップ・フロップ３５０からのＦＥサンプルされたＤＤＲデータかを選択するように指示する。例えば、位相検出器５７０がクロック・サイクルの４分の１の処理単位を有している場合、キャプチャされた較正信号の立ち上がりエッジが、クゥアドラント２または３に存在することを位相検出器５７０示す場合、セレクタ３８０は、マルチプレクサ３６０に対して、ＲＥフリップ・フロップ３４０からのＲＥサンプルされたＤＤＲデータを選択するように指示しうる。キャプチャされた較正信号の立ち上がりエッジが、クゥアドラント１または４に存在することを位相検出器５７０が示す場合、セレクタ３８０は、マルチプレクサ３６０に対して、ＦＲフリップ・フロップ３５０からのＦＥサンプルされたＤＤＲデータを選択するように指示しうる。
【００３２】
[0046]１つの実施形態では、セレクタ３８０は、最も直近に受け取られた較正信号を用いて、位相検出に基づいて、ＲＥフリップ・フロップ３４０またはＦＥフリップ・フロップ３５０を選択するように、マルチプレクサ３６０に対して指示する。したがって、メモリ・コントローラ１１５から較正信号が受け取られた場合にのみ選択が更新され、較正信号間で一定に保たれる。その結果、較正信号の周波数を制御することによって、位相検出器の周波数（したがって、セレクタ更新値）が制御される。較正信号の周波数は、ＳｏＣ  １１０におけるジッタの特性に基づいて制御および微調整されうる。
【００３３】
[0047]図６は、本開示の態様に従う位相検出器５７０の典型的な実装を図示する。この実施形態では、位相検出器５７０は、クロック・サイクルの４分の１の処理単位を有する。位相検出器５７０は、第１の入力フリップ・フリップ６１０−１と、第２の入力フリップ・フロップ６１０−２と、第３の入力フリップ・フロップ６１０−３と、第４の入力フリップ・フロップ６１０−２と、第１の出力フリップ・フロップ６２０−１と、第２の出力フリップ・フロップ６２０−２と、第３の出力フリップ・フロップ６２０−３と、第４の出力フリップ・フロップ６１０−４と、エンコーダ６３０とを備える。
【００３４】
[0048]第１、第２、第３、および第４の入力フリップ・フロップ６１０−１〜６１０−４の各々は、そのデータ入力Ｄにおいて、第１ステージ・フリップ・フロップ３３５の出力から較正信号を受け取る。第１の入力フリップ・フロップ６１０−１は、そのクロック入力Ｃｌｋにおいてクリーン・クロック信号を受け取り、第２の入力フリップ・フロップ６１０−２は、そのクロック入力Ｃｌｋにおいて、９０°シフトされたクリーン・クロック信号を受け取り、第３の入力フリップ・フロップ６１０−３は、そのクロック入力Ｃｌｋにおいて、１８０°シフトされたクリーン・クロック信号を受け取り、第４の入力フリップ・フロップ６１０−４は、そのクロック入力Ｃｌｋにおいて、２７０°シフトされたクリーン・クロック信号を受け取る。
【００３５】
[0049]第１の入力フリップ・フロップ６１０は、クリーン・クロック信号の立ち上がりエッジにおいて、較正信号をサンプルし、第２の入力フリップ・フロップ６１０−２は、９０°シフトされたクリーン・クロック信号の立ち上がりエッジにおいて、較正信号をサンプルし、第３の入力フリップ・フロップ６１０−３は、１８０°シフトされたクリーン・クロック信号の立ち上がりエッジにおいて、較正信号をサンプルし、第４の入力フリップ・フロップ６１０−４は、２７０°シフトされたクリーン・クロック信号の立ち上がりエッジにおいて、較正信号をサンプルする。したがって、第１、第２、第３、および第４の入力フリップ・フロップ６１０−１〜６１０−４は、互いから９０°離れた４つの異なるサンプル・ポイントにおいて較正信号をサンプルする。
【００３６】
[0050]出力フリップ・フロップ６２０−１〜６２０−４の各々は、入力フリップ・フロップ６１０−１〜６１０−４のそれぞれの出力に結合される。例えば、第１の出力フリップ・フロップ６２０−１は、第１の入力フリップ・フロップ６１０−１の出力に結合され、第２の出力フリップ・フロップ６２０−２は、第２の入力フリップ・フロップ６１０−２の出力に結合されるという具合である。出力フリップ・フロップ６２０−１〜６２０−４の各々は、クリーン・クロック信号の立ち上がりエッジにおいて、それぞれの入力フリップ・フロップ６１０−１〜６１０−４の出力値をサンプル（キャプチャ）し、サンプルされた出力値をエンコーダ６３０へ出力する。したがって、エンコーダ６３０は、（図６においてＤｓａｍｐ［０］〜Ｄｓａｍｐ［３］と示される）４つの値を受け取り、ここで、各値は、４つのサンプル・ポイントのうちの異なる１つにおいてサンプルされた較正信号に対応している。
【００３７】
[0051]エンコーダ６３０は、その後、出力フリップ・フロップ６２０−１〜６２０−４からの４つの値に基づいて、較正信号の立ち上がりエッジがどのクゥアドラントに存在するのかを判定し、判定されたクゥアドラントを示す位相検出信号を、セレクタ３８０へ出力する。位相検出信号は、較正信号の立ち上がりエッジが存在するクゥアドラントを特定する（図６においてＰｏｕｔ［ｌ：０］と示される）２ビット信号でありうる。
【００３８】
[0052]位相検出器５７０の動作は、図７を参照して１つの実施形態に従って記載されるであろう。図７は、各クロック・サイクルが４つのクゥアドラントに分割される、クリーン・クロック信号７１０の例を図示する。図７はまた、第１、第２、第３、および第４の入力フリップ・フロップ６１０−１、６１０−２、６１０−３、および６１０−４それぞれに対応するサンプル・ポイントｐｈ０、ｐｈ９０、ｐｈ１８０、およびｐｈ２７０を図示している。図７はさらに、４つの例示的な較正信号７２０−１〜７２０−４を図示しており、ここでは、各較正信号が、クリーン・クロック信号７１０の異なるクゥアドラントに存在する立ち上がりエッジを有し、各較正信号は、およそ１クロック・サイクルに等しいパルス幅を有する。
【００３９】
[0053]較正信号７１０−１〜７１０−４の各々について、図７は、この較正信号に関する、第１、第２、第３、および第４の入力フリップ・フロップ６１０−１〜６１０−４からの４つの出力値を図示している。例えば、クゥアドラント１に存在する立ち上がりエッジを有する較正信号７１０−１の場合、第１の入力フリップ・フロップ６１０−１は、論理ゼロを出力し、第２、第３、および第４の入力フリップ・フロップ６１０−２、６１０−３、および６１０−４の各々は、論理１を出力する（較正信号７２０−１の波形において“０１１１”によって表される）。クゥアドラント２に存在する立ち上がりエッジを有する較正信号７１０−２の場合、第１および第２の入力フリップ・フロップ６１０−１および６１０−２の各々は、論理０を出力し、第３および第４の入力フリップ・フロップ６１０−３および６１０−４の各々は、論理１を出力する（較正信号７２０−２の波形において“００１１”によって表される）。クゥアドラント３に存在する立ち上がりエッジを有する較正信号７１０−３の場合、第１、第２、および第３の入力フリップ・フロップ６１０−１、６１０−２、および６１０−３の各々は、論理１を出力し、第４の入力フリップ・フロップ６１０−４は、論理０を出力する（較正信号７２０−３の波形において“１１１０”によって表される）。最後に、クゥアドラント４に存在する立ち上がりエッジを有する較正信号７１０−４の場合、第１、第２、第３、および第４の入力フリップ・フロップ６１０−１〜６１０−４の各々は、論理１を出力する（較正信号７２０−４の波形において“１１１１”によって表される）。エンコーダ６３０は、各クゥアドラントについて上記で与えられた出力値に従って、較正信号の立ち上がりエッジが、どのクゥアドラントに存在するのかを判定するようにプログラムされうる。
【００４０】
[0054]図８は、本開示の別の実施形態に従う同期回路８３０を図示する。同期回路８３０は、同期回路８３０が、第１、第２、および第３のＲＥフリップ・フロップ８４０、８４２、および８４４と、第１、第２、および第３のＦＥフリップ・フロップ８５０、８５２、および８５４とを備えていることを除いて図５に図示されているものに類似している。
【００４１】
[0055]第１、第２、および第３のＲＥフリップ・フロップ８４４、８４２、および８４２は、直列に結合されている。第１のＲＥフリップ・フロップ８４０は、クリーン・クロック信号の立ち上がりエッジにおいて第１ステージ・フリップ・フロップ３３５の出力をサンプルし、第２のＲＥフリップ・フロップ８４２は、クリーン・クロック信号の立ち上がりエッジにおいて第１のＲＥフリップ・フロップ８４０の出力をサンプルし、第３のＲＥフリップ・フロップ８４４は、クリーン・クロック信号の立ち上がりエッジにおいて第２のＲＥフリップ・フロップ８４２の出力をサンプルする。
【００４２】
[0056]第１、第２、および第３のＦＥフリップ・フロップ８５４、８５２および８５４は、直列に結合されている。第１のＦＥフリップ・フロップ８５０は、クリーン・クロック信号の立ち下がりエッジにおいて第１ステージ・フリップ・フロップ３３５の出力をサンプルし、第２のＦＥフリップ・フロップ８５２は、クリーン・クロック信号の立ち下がりエッジにおいて第１のＦＥフリップ・フロップ８５０の出力をサンプルし、第３のＦＥフリップ・フロップ８５４は、クリーン・クロック信号の立ち下がりエッジにおいて第２のＦＥフリップ・フロップ８５２の出力をサンプルする。
【００４３】
[0057]マルチプレクサ８６０の入力は、ＲＥフリップ・フロップ８４０、８４２、および８４４の出力、ＦＥフリップ・フロップ８５０、８５２、および８５４の出力、および、第１ステージ・フリップ・フロップ３３５の出力に結合される。セレクタ８８０は、位相検出器５７０からの位相検出信号に基づいて、フリップ・フロップのうちの１つの出力を選択するようにマルチプレクサ３６０に指示する。マルチプレクサ３６０は、選択された出力を、出力フリップ・フロップ３６５に結合し、出力フリップ・フロップ３６５は、（ＤＤＲクロック出力のために使用されうる）クリーン・クロック信号と同期されたＤＤＲデータを生成するために、クリーン・クロック信号の立ち下がりエッジにおいて、選択された出力をサンプル（キャプチャ）する。
【００４４】
[0058]したがって、フリップ・フロップ３３５、８４０，８４２、８４４、８５０、８５２および８５４は、７つの異なるサンプル・ポイントに対応する、サンプルされたデータを提供する。第１、第２、および第３のＲＥフリップ・フロップ８４０、８４２、および８４４のサンプル・ポイントは、互いから１クロック・サイクル、オフセットされる。第１、第２、および第３のＦＥフロップ・フロップ８５０、８５２、および８５４のサンプル・ポイントは、互いから１クロック・サイクル、オフセットされ、第１、第２、および第３のＲＥフリップ・フロップ８４０、８４２、および８４４のサンプル・ポイントから、半クロック・サイクル、オフセットされる。したがって、フリップ・フロップのうちの１つの出力を選択することによって、セレクタ８８０は、選択されたフリップ・フロップに対応するサンプル・ポイントを選択する。
【００４５】
[0059]この実施形態に従う同期回路８３０は、異なるＰＨＹブロック間のサイクル・スリップを阻止することができる。サイクル・スリップは、メモリ・コントローラ１１５における同じクロック・サイクルに対応する２データ・バイトが、それぞれのＰＨＹブロックにおいて異なるクロック・サイクルでサンプル（キャプチャ）される場合に生じうる。その結果、メモリ・コントローラ１１５において揃えられた２データ・バイトは、ＰＨＹブロックにおいてもはや揃えられない。同期回路８３０は、さらに以下に記載されるように、同期回路８３０の出力をプル・インまたはプッシュ・アウトすることによって、サイクル・スリップを阻止することができる。
【００４６】
[0060]サイクル・スリップは、データ・クロック信号とクリーン・クロック信号との位相差が、１つのＰＨＹブロックにおいて経時的にドリフトするが、別のＰＨＹブロックにおいては経時的にドリフトしないか、または、別のＰＨＹブロックにおいて異なる量ドリフトする場合に引き起こされうる。位相ドリフトは、ＳｏＣにおける温度変化、および／または、別の原因によって引き起こされうる。スタティックなサイクル・スリップが、メモリ・コントローラ１１５と異なるＰＨＹブロックとの間のスタティックな遅延ミスマッチによって引き起こされうる。同期回路８３０は、両方のタイプのサイクル・スリップを阻止することができる。
【００４７】
[0061]位相ドリフトによるサイクル・スリップを阻止するために、セレクタ８８０は、クリーン・クロック信号と、メモリ・コントローラ１１５からの較正信号との間の位相ドリフトを検出し、検出されたドリフトを補償するために、それに応じて、マルチプレクサ３６０の選択を調節するように構成されうる。位相ドリフトが緩やかな場合、セレクタ８８０は、位相検出器５７０からの位相検出信号における変化を経時的に追跡することによって、ドリフトを検出しうる。
【００４８】
[0062]較正信号の立ち上がりエッジがどのクゥアドラントに存在するのかを示す位相検出信号を位相検出器５７０が出力する実施形態の場合、セレクタ８８０は、位相検出信号によって示されるクゥアドラントにおける変化を追跡することによって位相ドリフトを検出しうる。位相検出信号間の位相ドリフトが９０°未満であると仮定して、セレクタ８８０は、位相検出信号によって示されるクゥアドラントにおける変化に基づいて、位相ドリフトの方向を決定しうる。セレクタ８８０は、その後、検出された位相シフトを補償するために、マルチプレクサ３６０によるフリップ・フロップ選択を調節し、これによってサイクル・スリップを阻止する。
【００４９】
[0063]１つの実施形態では、セレクタ８８０は、その例が図９に図示されている真理値表９０５を用いて実現されうる。真理値表９０５では、各行は、クゥアドラントに対応し、各列は、マルチプレクサ８６０が選択を行うフリップ・フロップのうちの異なるフリップ・フロップに対応する。第１、第２、および第３のＲＥフロップ・フロップ８４０、８４２、および８４４は、真理値表９０５におけるＲＥ０、ＲＥ１、およびＲＥ２それぞれによって表される。第１、第２、および第３のＦＥフリップ・フロップ８５０、８５２、および８５４は、真理値表９０５におけるＦＥ０、ＦＥ１、およびＦＥ２それぞれによって表される。第１ステージ・フリップ・フロップ３３５は、真理値表９０５における「送出し」(launch)によって表される。なぜなら、第１ステージ・フリップ・フロップ３３５の出力は、同期回路８３０におけるデータ送出しポイントだからである。
【００５０】
[0064]真理値表９０５では、各クゥアドラントが、（ｎ）、（ｎ＋１）、または（ｎ−１）で注釈付けられる。これは、異なるフェーズ・ドリフト量に対応するクゥアドラントを区別するために使用される。例えば、真理値表９０５では、クゥアドラント４（ｎ＋１）は、１つの方向におけるクゥアドラント４（ｎ）からの１クロック・サイクルの位相ドリフトに対応し、クゥアドラント４（ｎ−１）は、その反対方向におけるクゥアドラント４（ｎ）からの１クロック・サイクルの位相ドリフトに対応しうる。
【００５１】
[0065]１つの実施形態では、セレクタ８８０は、真理値表９０５におけるあるエントリにおいて開始し、開始エントリに基づいて、フリップ・フロップのうちの１つを選択しうる。例えば、位相検出器５７０は、最初に、クゥアドラント１を示す位相検出信号を出力しうる。この例において、セレクタ８００は、真理値表９０５におけるクゥアドラント１（ｎ）に対応するエントリにおいて開始し、第１のＦＥフリップ・フロップ８５０の出力を選択しうる。開始条件が確立された後、セレクタ８８０は、以下にさらに記載されるように、位相ドリフトを補償するために、真理値表９０５を用いてフリップ・フロップ選択を更新しうる。
【００５２】
[0066]例えば、位相検出信号によって示されたクゥアドラントが、初期化の後に、クゥアドラント１からクゥアドラント２に変化した場合、セレクタ８８０は、真理値表９０５におけるクゥアドラント（２）に対応するエントリへ移動し、第１のＲＥフリップ・フロップ８４０の出力を選択する。位相検出信号によって示されるクゥアドラントが、その後、クゥアドラント２からクゥアドラント３へ変化した場合、セレクタ８８０は、真理値表９０５におけるクゥアドラント３（ｎ＋１）に対応するエントリへ移動する。このケースでは、フリップ・フロップ選択は変わらない。位相検出信号によって示されるクゥアドラントが、その後、クゥアドラント３からクゥアドラント４へ変化した場合、セレクタ８８０は、クゥアドラント４（ｎ＋ｌ）に対応するエントリへ移動し、第１ステージ・フリップ・フロップ３３５の出力を選択する。この例において、位相ドリフトによるクゥアドラント変化が、セレクタ３８０を、真理値表９０５の右へ移動させ、したがって、位相ドリフトを補償するために、セレクタ３８０の出力をプル・イン（pull in）させる。
【００５３】
[0067]別の例では、位相検出信号によって示されるクゥアドラントが、初期化後に、クゥアドラント１からクゥアドラント４へ変化した場合、セレクタ８８０は、真理値表９０５におけるクゥアドラント４（ｎ）に対応するエントリへ移動する。このケースでは、フリップ・フロップ選択は変わらない。位相検出信号によって示されるクゥアドラントが、その後、クゥアドラント４からクゥアドラント３へ変化した場合、セレクタ８８０は、真理値表９０５におけるクゥアドラント３（ｎ）に対応するエントリへ移動し、第２のＲＥフリップ・フロップ８５２の出力を選択する。位相検出信号によって示されるクゥアドラントが、その後、クゥアドラント３からクゥアドラント２へ変化した場合、セレクタ８８０は、クゥアドラント２（ｎ−１）に対応するエントリへ移動する。このケースでは、フリップ・フロップ選択は変わらない。位相検出信号によって示されるクゥアドラントが、その後、クゥアドラント２からクゥアドラント１に変化した場合、セレクタ８８０は、真理値表９０５におけるクゥアドラント１（ｎ−１）に対応するエントリへ移動し、第２のＦＥフリップ・フロップ８５２の出力を選択する。この例において、位相ドリフトによるクゥアドラント変化が、セレクタ３８０を、真理値表９０５の左へ移動させ、したがって、位相ドリフトを補償するために、セレクタ３８０の出力をプッシュ・アウト（push out）させる。
【００５４】
[0068]したがって、真理値表９０５は、いずれかの方向における位相ドリフトを補償するために、マルチプレクサ８６０によるフリップ・フロップ選択を調節するために使用されうる。開始エントリは、前述された例において、真理値表９０５におけるクゥアドラント１（ｎ）に対応するが、本開示の実施形態は、この例に限定されないことが認識されるべきである。例えば、位相検出器５７０は、最初に、クゥアドラント４を示す位相検出信号を出力しうる。この例において、セレクタ８８０は、開始ポイントとして、真理値表９０５におけるクゥアドラント４（ｎ）に対応するエントリを使用しうる。したがって、開始エントリは、位相検出器５７０によって示された最初のクゥアドラントに依存しうる。さらに、本開示の実施形態は、図９に図示された特定の真理値表エントリに限定されないことが認識されるべきである。
【００５５】
[0069]議論されるように、スタティックなサイクル・スリップは、メモリ・コントローラ１１５と、異なるＰＨＹブロックとの間のスタティックな遅延ミスマッチ（例えば、メモリ・コントローラ１１５から、異なるＰＨＹブロックへの信号経路の長さにおけるミスマッチ）によって引き起こされうる。スタティックなサイクル・スリップの結果として、メモリ・コントローラ１１５における同じサイクルに存在する２つのデータ・バイトは、ＰＨＹブロックにおける異なるサイクルにおいて終了しうる。
【００５６】
[0070]スタティックなサイクル・スリップに対処するために、本開示は、ＳｏＣにおける複数のＰＨＹブロック間のスタティックなサイクル・スリップを判定し、スタティックなサイクル・スリップを較正するための方法を提供する。１つの実施形態では、ＰＨＹブロックの各々は、図８に図示される同期回路８３０を含みうる。
【００５７】
[0071]ＳｏＣのブート時間中、または、その後直ちに、メモリ・コントローラ１１５は、ＰＨＹブロックの各々へ較正信号を送る。ＰＨＹブロックの各々における位相検出器５７０は、それぞれの較正信号が、ＤＤＲクロック信号のどのクゥアドラントにおいて揃えられているのかを判定する。その後、各ＰＨＹブロックは、判定されたクゥアドラントを、メモリ・コントローラ１１５または別のコントローラへレポートしうる。ＰＨＹブロックの各々が、同じクゥアドラントをレポートすると、メモリ・コントローラ１１５は、何もしないことがありうる。しかしながら、ＰＨＹブロックが、異なるクゥアドラントをレポートすると、スタティックな遅延ミスマッチが明らかになる。このケースでは、メモリ・コントローラ１１５は、スタティックなミスマッチの結果、スタティックなサイクル・スリップになるのかを判定するために、ＰＨＹブロックによってレポートされた異なるクゥアドラントを分析し、もしもそうであれば、スタティックなサイクル・スリップをどのようにして較正するのかを決定しうる。
【００５８】
[0072]この点に関し、図１０は、３つのＰＨＹブロックによってレポートされるクゥアドラントの例を図示する。ＰＨＹブロックのうちの最１のＰＨＹブロックが、ＣＡ信号のために使用され、ＰＨＹブロックのうちの第２のＰＨＹブロックが、データ・バイトＤＱ０のために使用され、ＰＨＹブロックのうちの第３のＰＨＹブロックが、データ・バイトＤＱ１のために使用される。この例において、第１のＰＨＹブロックは、クゥアドラント１において揃えられ、第２のＰＨＹブロックは、クゥアドラント２において揃えられ、第３のＰＨＹブロックは、クゥアドラント３において揃えられる。ＤＤＲクロック信号における上向き矢印は、ＰＨＹブロックの出力が揃っていることを示す。この例において、ＰＨＹブロックの出力が揃えられ、スタティックなサイクル・スリップ補正は、必要とされない。
【００５９】
[0073]図１１は、第１のＰＨＹブロックがクゥアドラント２において揃えられ、第２のＰＨＹブロックがクゥアドラント３において揃えられ、第３のＰＨＹブロックがクゥアドラント４において揃えられる例を図示する。この例では、ＰＨＹブロックの出力も揃えられる。
【００６０】
[0074]図１２は、第１のＰＨＹブロックがクゥアドラント３において揃えられ、第２のＰＨＹブロックがクゥアドラント４において揃えられ、第３のＰＨＹブロックがクゥアドラント１において揃えられる例を図示する。この例において、第１および第２のＰＨＹブロックの出力が揃えられる。しかしながら、第３のＰＨＹブロックの出力が、第１および第２のＰＨＹブロックの出力から１クロック・サイクル、オフセットされ、その結果、スタティックなサイクル・スリップとなる。スタティックなサイクル・スリップは、第１および第２のＰＨＹブロックの出力と揃えるために、第３のＰＨＹブロックの出力を１クロック・サイクル、プル・インすることによって補正されうる。
【００６１】
[0075]あるいは、スタティックなサイクル・スリップは、第３のＰＨＹブロックの出力と揃えるために、第１および第２のＰＨＹブロックの出力を、１クロック・サイクル、プッシュ・アウトすることによって補正されうる。このケースでは、メモリ・コントローラ１１５は、スタティックなサイクル・スリップを補正するために、第１および第２のＰＨＹブロックに対して、１クロック・サイクル、プッシュ・アウトせよとの指示を送信しうる。第１および第２のＰＨＹブロックの各々における同期回路８３０は、その後、それぞれのマルチプレクサ８６０によるフリップ・フロップ選択を変更することによって、それぞれの出力を、１クロック・サイクル、プッシュ・アウトしうる。例えば、第１のＦＥフリップ・フロップ８５０が最初に選択されると、同期回路８３０は、第２のＦＥフリップ・フロップ８５２へシフトすることによって、１クロック・サイクル、プッシュ・アプトしうる。これは、第１のＦＥフリップ・フロップ８５０から、１クロック・サイクル、遅延される。
【００６２】
[0076]図１３は、１つの実施形態に従う真理値表１３０５を図示している。真理値表１３０５は、（“ＤＥＦ”とラベルされた）デフォルト・エントリのセットと、（“ＰＵＳＨ”とラベルされた）プッシュ・アウト・エントリのセットとを含む。ＤＥＦエントリは、デフォルト条件に相当し、ＰＵＳＨエントリは、デフォルト条件からの１クロック・サイクルのプッシュ・アウトに相当する。この実施形態では、プッシュ・アウトされていないＰＨＹブロックは、真理値表におけるＤＥＦエントリを用いてフリップ・フロップ選択を実行し、スタティックなサイクル・スリップを補正するためにプッシュ・アウトされたＰＨＹブロックは、真理値表１３０５におけるＰＵＳＨエントリを用いてフリップ・フロップ選択を実行する。図１２に図示される例の場合、第１および第２のＰＨＹブロックにおける同期回路８３０は、フリップ・フロップ選択を実行するためにＰＵＳＨエントリを使用しうる。なぜならプッシュ・アウトするように指示されているからである。第３のＰＨＹブロックにおける同期回路８３０は、フリップ・フロップ選択を実行するために、ＤＥＦエントリを使用しうる。
【００６３】
[0077]図１４は、第１のＰＨＹブロックがクゥアドラント４において揃えられ、第２のＰＨＹブロックがクゥアドラント１において揃えられ、第３のＰＨＹブロックがクゥアドラント２において揃えられる例を図示する。この例において、第２および第３のＰＨＹブロックの出力が揃えられる。しかしながら、第１のＰＨＹブロックの出力は、第２および第３のＰＨＹブロックの出力から、１クロック・サイクル、オフセットされ、その結果、スタティックなサイクル・スリップとなる。スタティックなサイクル・スリップは、第１のＰＨＹブロックの出力と揃えるために、第２および第３のＰＨＹブロックの出力を、１サイクル・クロック、プル・インすることによって補正されうる。
【００６４】
[0078]あるいは、スタティックなサイクル・スリップは、第２および第３のＰＨＹブロックの出力と揃えるために、第１のＰＨＹブロックの出力を、１サイクル・クロック、プッシュ・アウトすることによって補正されうる。このケースでは、メモリ・コントローラ１１５は、スタティックなサイクル・スリップを補正するために、第１のＰＨＹブロックに対して、１クロック・サイクル、プッシュ・アウトせよとの指示を送りうる。
【００６５】
[0079]図１５は、１つの実施形態に従う真理値表１５０５を図示している。真理値表１５０５は、（“ＤＥＦ”とラベルされた）デフォルト・エントリのセットと、（“ＰＵＳＨ”とラベルされた）プッシュ・アウト・エントリのセットとを含む。この実施形態では、プッシュ・アウトされていないＰＨＹブロックは、真理値表１５０５におけるＤＥＦエントリを用いてフリップ・フロップ選択を実行し、スタティックなサイクル・スリップを補正するためにプッシュ・アウトされたＰＨＹブロックは、真理値表１５０５におけるＰＵＳＨエントリを用いてフリップ・フロップ選択を実行する。  図１４に図示される例に関し、第１のＰＨＹブロックにおける同期回路８３０は、フリップ・フロップ選択を実行するために、ＰＵＳＨエントリを使用し、第２および第３のＰＨＹブロックにおける同期回路８３０は、フリップ・フロップ選択を実行するためにＤＥＦエントリを使用しうる。
【００６６】
[0080]スタティックなサイクル・ドリフトを補正するための方法は、上記与えられた特定の例に限定されないことが認識されるべきである。例えば、メモリ・コントローラ１１５は、各ＰＨＹブロックに１つの較正信号を送信するのではなく、各ＰＨＹブロックに、複数の較正信号を出力しうる。この例において、各ＰＨＹブロックは、較正信号の各々のためのクゥアドラントを決定し、較正信号のために最も良く決定されたクゥアドラントを、メモリ・コントローラ１１５へレポートする。
【００６７】
[0081]別の例において、メモリ・コントローラ１１５は、検出されたスタティックなサイクル・スリップを補正するために、１または複数のＰＨＹブロックに対して、１クロック・サイクル、プル・インするように指示しうる。この例において、真理値表は、真理値表におけるＤＥＦエントリの右に配置されたプル・イン（ＰＵＬＬ）エントリを含み、プル・インするように指示されたＰＨＹブロックは、フリップ・フロップ選択を実行するためにＰＵＬＬエントリを使用しうる。例えば、図１２における例において図示されるスタティックなサイクル・スリップは、第３のＰＨＹブロックの出力が、第１および第２のＰＨＹブロックの出力と揃うように、第３のＰＨＹブロックを１クロック・サイクル、プル・インすることによって補正されうる。このケースでは、第３のＰＨＹブロックは、ＰＵＬＬエントリを使用し、第１および第２のＰＨＹブロックは、ＤＥＦエントリを使用しうる。
【００６８】
[0082]図１６は、本開示の実施形態に従ってデータを同期させる方法１６００のフロー図である。方法１６００は、メモリ・コントローラ１１５からのデータを、クリーン・クロック信号を用いてタイミングをあわせるために、ＳｏＣの周辺部の付近に配置されたＰＨＹブロックにおいて実行されうる。クリーン・クロック信号は、外部メモリ（例えば、ＤＤＲ  ＳＤＲＡＭ）へのクロック出力（例えば、ＤＤＲクロック出力）として使用されうる。
【００６９】
[0083]ステップ１６１０では、基準クロック信号に基づいて、クリーン・クロック信号が生成される。例えば、クリーン・クロック信号は、基準クロック信号内のジッタを減衰させるフェーズ・ロック・ループ（ＰＬＬ）（例えば、クリーンアップＰＬＬ  ２２５）によって生成されうる。
【００７０】
[0084]ステップ１６２０では、データは、データ・クロック信号を用いてサンプルされる。例えば、データおよびデータ・クロック信号は、メモリ・コントローラ（例えば、メモリ・コントローラ１１５）から送信され、（ＳｏＣにおいて中心に配置されうる）メモリ・コントローラから、ＳｏＣの周辺部まで、ＳｏＣ内を比較的長距離移動しうる。データは、データ・クロック信号の立ち上がりエッジまたは立ち下がりエッジにおいてデータをサンプル（キャプチャ）するフリップ・フロップ（例えば、入力フリップ・フロップ）を用いてサンプルされうる。
【００７１】
[0085]ステップ１６３０では、サンプルされたデータが、クリーン・クロック信号と同期される。例えば、サンプルされたデータは、クリーン・クロック信号を用いてクロックされた１または複数のフリップ・フロップ（例えば、または、フリップ・フロップ８４０、８４２、８４４、８５０、８５２、８５４、および３６５のそれ以上）によってサンプルされうる。
【００７２】
[0086]当業者であれば、本開示の実施形態は、本明細書に記載された例に限定されないことを認識するであろう。例えば、第１ステージ・フリップ・フロップは、データ・クロック信号の立ち上がりエッジにおいてＤＤＲデータをサンプルしうる。このケースでは、第１ステージ・フリップ・フロップのサンプリング・エッジは、データ・クロック信号の立ち上がりエッジに相当するであろう。さらに、同期回路８３０は、任意の数のＲＥフリップ・フロップと、任意の数のＦＥフリップ・フロップとを備えうる。例えば、同期回路が、より広い範囲にわたって、位相ドリフトを補正することを可能にするために、必要であれば、ＲＥフリップ・フロップおよびＦＥフリップ・フロップの数が増加されうる。このケースでは、真理値表は、追加のＲＥフリップ・フロップおよびＦＥフリップ・フロップのためのエントリを含むように拡張されうる。
【００７３】
[0001]当業者であればさらに、本明細書における開示に関連して記載されたさまざまな例示的なブロック、回路、およびステップが、電子ハードウェア、コンピュータ・ソフトウェア、またはこれら両方の組み合わせとして実現されうることを認識するであろう。ハードウェアとソフトウェアとのこの相互置換性を明確に例示するために、さまざまな例示的な構成要素、ブロック、回路、およびステップが、一般にそれらの機能の観点から前述された。これら機能がハードウェアとしてまたはソフトウェアとして実現されるかは、特定の用途およびシステム全体に課せられている設計制約に依存する。当業者であれば、特定の用途の各々に応じて変化する方式で、前述した機能を実現しうる。しかしながら、この適用判断は、本発明の範囲からの逸脱をもたらすものと解釈されるべきではない。
【００７４】
[0002]本明細書における開示に関連して記載されたさまざまな例示的なブロックおよび回路は、汎用プロセッサ、デジタル信号プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）またはその他のプログラマブル・ロジック・デバイス、ディスクリート・ゲートまたはトランジスタ・ロジック、ディスクリート・ハードウェア構成要素、または本明細書に記載された機能を実行するように設計されたこれら任意の組み合わせ、を用いて実現または実行されうる。汎用プロセッサは、マイクロ・プロセッサでありうるが、代替例では、このプロセッサは、従来のプロセッサ、コントローラ、マイクロ・コントローラ、または順序回路でありうる。プロセッサは、例えばＤＳＰとマイクロ・プロセッサとの組み合わせ、複数のマイクロ・プロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロ・プロセッサ、またはその他任意のこのような構成であるコンピューティング・デバイスの組み合わせとして実現されうる。
【００７５】
[0003]本明細書の開示に関連して説明された方法またはアルゴリズムのステップは、ハードウェアでダイレクトに、プロセッサによって実行されるソフトウェア・モジュールで、またはこの２つの組み合わせで実施されうる。ソフトウェア・モジュールは、ＲＡＭメモリ、フラッシュ・メモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭ（登録商標）メモリ、レジスタ、ハード・ディスク、リムーバブル・ディスク、ＣＤ−ＲＯＭ、あるいは当該技術分野で知られているその他の型式の記憶媒体に存在しうる。典型的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、また記憶媒体に情報を書き込むことができるようにプロセッサに結合される。あるいは、この記憶媒体は、プロセッサに統合されうる。このプロセッサと記憶媒体とは、ＡＳＩＣ内に存在しうる。ＡＳＩＣは、ユーザ端末内に存在しうる。あるいは、プロセッサおよび記憶媒体は、ユーザ端末内のディスクリートな構成要素として存在しうる。
【００７６】
[0004]１または複数の典型的な設計では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらの任意の組み合わせによって実現されうる。ソフトウェアで実現される場合、これら機能は、コンピュータ読取可能な媒体上に格納されるか、あるいは、コンピュータ読取可能な媒体上の１つまたは複数の命令群またはコードとして送信されうる。コンピュータ読取可能な媒体は、コンピュータ記憶媒体と通信媒体との両方を含む。これらは、コンピュータ・プログラムのある場所から別の場所への転送を容易にする任意の媒体を含む。記憶媒体は、汎用コンピュータまたは特別目的コンピュータによってアクセスされうる任意の利用可能な媒体でありうる。限定ではなく、一例として、このようなコンピュータ読取可能な媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶装置、あるいは、命令群またはデータ構造の形式で所望のプログラム・コード手段を伝送または格納するために使用され、かつ、汎用コンピュータまたは特別目的コンピュータ、あるいは、汎用プロセッサまたは特別目的プロセッサによってアクセスされうるその他任意の媒体を備えうる。さらに、いずれの接続も、送信された信号の非一時的な記憶装置を含むという点で、コンピュータ読取可能な媒体と適切に称されうる。例えば、ソフトウェアが、同軸ケーブル、光ファイバ・ケーブル、ツイスト・ペア、デジタル加入者ライン（ＤＳＬ）、または例えば赤外線、ラジオ、およびマイクロ波のような無線技術を用いて、ウェブサイト、サーバ、または遠隔ソースから送信されるのであれば、同軸ケーブル、光ファイバ・ケーブル、ツイスト・ペア、ＤＳＬ、または例えば赤外線、ラジオ、およびマイクロ波のような無線技術は、非一時的な時間長さにわたり記憶媒体またはデバイス・メモリにおける送信チェーン内に信号が保持されるという点で、媒体の定義に含まれる。本明細書で使用されるｄｉｓｋおよびｄｉｓｃは、コンパクトディスク（ｄｉｓｃ）（ＣＤ）、レーザ・ディスク（ｄｉｓｃ）、光ディスク（ｄｉｓｃ）、デジタル多用途ディスク（ｄｉｓｃ）（ＤＶＤ）、フロッピー（登録商標）ディスク（ｄｉｓｋ）、およびＢｌｕ−ｒａｙ（登録商標）ディスク（ｄｉｓｃ）を含む。ここでｄｉｓｋは、通常、データを磁気的に再生する一方、ｄｉｓｃは、レーザを用いてデータを光学的に再生する。上記の組み合わせもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
【００７７】
[0087]本開示の上記記載は、当業者をして、本開示の製造または利用を可能とするように提供される。この開示に対するさまざまな変形は、当業者に容易に明らかであって、本明細書で定義された一般原理は、本開示の精神または範囲から逸脱することなく、他のバリエーションに適用されうる。したがって、本開示は、本明細書に記載された例に限定されることは意図されておらず、本明細書に開示された原理および新規の特徴に整合した最も広い範囲が与えられるべきである。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
メモリ・インターフェースであって、前記メモリ・インターフェースは下記を備える、
基準クロック信号を受け取り、前記基準クロック信号に基づいて、クリーン・クロック信号を生成するように構成されたクリーンアップ・フェーズ・ロック・ループ（ＰＬＬ）と、
データ、データ・クロック信号、および前記クリーン・クロック信号を受け取るように構成された同期回路、ここにおいて、前記同期回路はさらに、前記データ・クロック信号を用いて前記データをサンプルし、前記サンプルされたデータを、前記クリーン・クロック信号と同期させるように構成される。
［Ｃ２］
前記同期回路および前記クリーンアップＰＬＬは、チップの周辺部の付近に配置され、前記データおよび前記データ・クロック信号は、前記チップのほぼ中央に配置されたメモリ・コントローラから生じる、Ｃ１に記載のメモリ・インターフェース。
［Ｃ３］
前記基準クロック信号および前記データ・クロック信号はともに、共通のクロック信号から導出される、Ｃ２に記載のメモリ・インターフェース。
［Ｃ４］
前記同期回路はさらに、
前記データ・クロック信号のサンプリング・エッジにおいて前記データをサンプルするように構成された入力フリップ・フロップと、
前記クリーン・クロック信号の立ち上がりエッジにおいて前記入力フリップ・フロップの出力をサンプルするように構成された立ち上がりエッジ（ＲＥ）フリップ・フロップと、
前記クリーン・クロック信号の立ち下がりエッジにおいて前記入力フリップ・フロップの出力をサンプルするように構成された立ち下がりエッジ（ＦＥ）フリップ・フロップと、
前記データ・クロック信号と前記クリーン・クロック信号との間の位相差を決定するように構成された位相検出器と、前記決定された位相差に基づいて、前記ＦＥフリップ・フロップの出力、または、前記ＲＥフリップ・フロップの出力を選択するように構成されたセレクタと、
を備える、Ｃ１に記載のメモリ・インターフェース。
［Ｃ５］
前記セレクタは、前記決定された位相差に基づいて、前記データ・クロック信号のサンプリング・エッジが、前記クリーン・クロック信号の立ち上がりエッジに近いか、または、前記クリーン・クロック信号の立ち下がりエッジに近いかを判定し、前記データ・クロック信号のサンプリング・エッジが、前記クリーン・クロック信号の立ち下がりエッジに、より近い場合、前記ＲＥフリップ・フロップの出力を選択し、前記データ・クロック信号のサンプリング・エッジが、前記クリーン・クロック信号の立ち上がりエッジに、より近い場合、前記ＦＥフリップ・フロップの出力を選択するように構成された、Ｃ４に記載のメモリ・インターフェース。
［Ｃ６］
前記入力フリップ・フロップは、前記データ・クロック信号のサンプリング・エッジにおいて較正信号をサンプルするように構成され、前記位相検出器は、前記サンプルされた較正信号と前記クリーン・クロック信号との間の位相差を決定することによって、前記データ・クロック信号と前記クリーン・クロック信号との間の位相差を決定するように構成された、Ｃ４に記載のメモリ・インターフェース。
［Ｃ７］
前記同期回路はさらに、
前記データ・クロック信号のサンプリング・エッジにおいて、前記データをサンプルするように構成された入力フリップ・フロップと、
前記クリーン・クロック信号の立ち上がりエッジにおいて、前記入力フリップ・フロップの出力をサンプルするように構成された第１の立ち上がりエッジ（ＲＥ）フリップ・フロップと、
前記クリーン・クロック信号の立ち上がりエッジにおいて、前記第１のＲＥフリップ・フロップの出力をサンプルするように構成された第２のＲＥフリップ・フロップと、
前記クリーン・クロック信号の立ち下がりエッジにおいて、前記入力フリップ・フロップの出力をサンプルするように構成された第１の立ち下がりエッジ（ＦＥ）フリップ・フロップと、
前記クリーン・クロック信号の立ち下がりエッジにおいて、前記第１のＦＥフリップ・フロップの出力をサンプルするように構成された第２のＦＥフリップ・フロップと、
前記データ・クロック信号と前記クリーン・クロック信号との間の位相差を決定するように構成された位相検出器と、
前記決定された位相差に基づいて、前記第１のＲＥフリップ・フロップの出力、前記第２のＲＥフリップ・フロップの出力、前記第１のＦＥフリップ・フロップの出力、または前記第２のＦＥフリップ・フロップの出力を選択するように構成されたセレクタと、
を備える、Ｃ１に記載のメモリ・インターフェース。
［Ｃ８］
前記セレクタは、真理値表を用いて、前記選択を実行するように構成された、Ｃ７に記載のメモリ・インターフェース。
［Ｃ９］
前記真理値表は、第１のエントリのセットと第２のエントリのセットとを備え、前記セレクタは、デフォルト条件において、前記第１のエントリのセットを用いて前記選択を実行し、前記セレクタが、前記同期回路の出力をプッシュ・アウトまたはプル・インせよとの指示を受け取った場合、前記第２のエントリのセットを用いて前記選択を実行するように構成された、Ｃ８に記載のメモリ・インターフェース。
［Ｃ１０］
データ同期のための方法であって、
基準クロック信号に基づいてクリーン・クロック信号を生成することと、
データ・クロック信号を用いてデータをサンプルすることと、
前記サンプルされたデータを、前記クリーン・クロック信号と同期させることと、
を備える方法。
［Ｃ１１］
前記データおよび前記データ・クロック信号は、チップのほぼ中心に配置されたメモリ・コントローラから生じ、前記方法は、前記チップの周辺部の付近で実行される、Ｃ１０に記載の方法。
［Ｃ１２］
前記基準クロック信号および前記データ・クロック信号はともに、共通のクロックから導出される、Ｃ１１に記載の方法。
［Ｃ１３］
前記クリーン・クロック信号を生成することは、フェーズ・ロック・ループ（ＰＬＬ）を用いて、前記基準クロック信号におけるジッタを減衰させることを備える、Ｃ１０に記載の方法。
［Ｃ１４］
前記クリーン・クロック信号の立ち上がりエッジにおいて、前記サンプルされたデータをサンプルして、サンプルされた立ち上がりエッジ（ＲＥ）データを生成することと、
前記クリーン・クロック信号の立ち下がりエッジにおいて、前記サンプルされたデータをサンプルして、サンプルされた立ち下がりエッジ（ＦＥ）データを生成することと、
前記データ・クロック信号と、前記クリーン・クロック信号との間の位相差を決定することと、
前記サンプルされたＲＥデータまたは前記サンプルされたＦＥデータを、前記決定された位相差に基づいて選択することと、
をさらに備えるＣ１０に記載の方法。
［Ｃ１５］
前記サンプルされたＲＥデータまたは前記サンプルされたＦＥデータを選択することは、
前記データ・クロック信号のサンプリング・エッジが、前記クリーン・クロック信号の立ち上がりエッジにより近いか、前記クリーン・クロック信号の立ち下がりエッジにより近いかを、前記決定された位相差に基づいて決定することと、
前記データ・クロックのサンプリング・エッジが、前記クリーン・クロック信号の立ち下がりエッジにより近い場合、前記サンプルされたＲＥデータを選択することと、
前記データ・クロック信号のサンプリング・エッジが、前記クリーン・クロック信号の立ち上がりエッジにより近い場合、前記サンプルされたＦＥデータを選択することと、
を備える、Ｃ１４に記載の方法。
［Ｃ１６］
前記データ・クロック信号と前記クリーン・クロック信号との間の位相差を決定することは、前記データ・クロック信号を用いて、較正信号をサンプルすることと、
前記サンプルされた較正信号と、前記クリーン・クロック信号との間の位相差を決定することと、
を備える、Ｃ１４に記載の方法。
［Ｃ１７］
前記サンプルされたデータを、前記クリーン・クロック信号を用いて、複数の異なるサンプル・ポイントにおいてサンプルして、サンプルされたクリーン・クロック・データを生成することと、
前記データ・クロック信号と、前記クリーン・クロック信号との間の位相差を決定することと、
前記複数のサンプル・ポイントのうちの１つに対応する、前記サンプルされたクリーン・クロック・データを、前記決定された位相差に基づいて選択することと、
をさらに備えるＣ１０に記載の方法。
［Ｃ１８］
データ同期のための装置であって、
基準クロック信号に基づいてクリーン・クロック信号を生成するための手段と、
データ・クロック信号を用いてデータをサンプルするための手段と、
前記サンプルされたデータを、前記クリーン・クロック信号と同期させるための手段と、を備える装置。
［Ｃ１９］
前記データおよび前記データ・クロック信号は、チップのほぼ中心に配置されたメモリ・コントローラから生じ、前記方法は、前記チップの周辺部の付近で実行される、Ｃ１８に記載の装置。
［Ｃ２０］
前記基準クロック信号および前記データ・クロック信号はともに、共通のクロック信号から導出される、Ｃ１９に記載の装置。
［Ｃ２１］
前記クリーン・クロック信号の立ち上がりエッジにおいて、前記サンプルされたデータをサンプルして、サンプルされた立ち上がりエッジ（ＲＥ）データを生成するための手段と、
前記クリーン・クロック信号の立ち下がりエッジにおいて、前記サンプルされたデータをサンプルして、サンプルされた立ち下がりエッジ（ＦＥ）データを生成するための手段と、
前記データ・クロック信号と、前記クリーン・クロック信号との間の位相差を決定するための手段と、
前記サンプルされたＲＥデータまたは前記サンプルされたＦＥデータを、前記決定された位相差に基づいて選択するための手段と、
をさらに備えるＣ１８に記載の装置。
［Ｃ２２］
前記選択するための手段はさらに、前記データ・クロック信号のサンプリング・エッジが、前記クリーン・クロック信号の立ち上がりエッジにより近いか、前記クリーン・クロック信号の立ち下がりエッジにより近いかを、前記決定された位相差に基づいて決定するための手段と、
前記データ・クロックのサンプリング・エッジが、前記クリーン・クロック信号の立ち下がりエッジにより近い場合、前記サンプルされたＲＥデータを選択するための手段と、
前記データ・クロック信号のサンプリング・エッジが、前記クリーン・クロック信号の立ち上がりエッジにより近い場合、前記サンプルされたＦＥデータを選択するための手段と、
を備える、Ｃ２１に記載の装置。
［Ｃ２３］
前記サンプルされたデータを、前記クリーン・クロック信号を用いて、複数の異なるサンプル・ポイントにおいてサンプルして、サンプルされた複数のクリーン・クロック・データを生成するための手段と、
前記データ・クロック信号と、前記クリーン・クロック信号との間の位相差を決定するための手段と、
前記複数のサンプル・ポイントのうちの１つに対応する、前記サンプルされたクリーン・クロック・データを、前記決定された位相差に基づいて選択するための手段と、
をさらに備えるＣ１８に記載の装置。
【図１】
0006306160.tif 000002
【図２】
0006306160.tif 000003
【図３】
0006306160.tif 000004
【図４】
0006306160.tif 000005
【図５】
0006306160.tif 000006
【図６】
0006306160.tif 000007
【図７】
0006306160.tif 000008
【図８】
0006306160.tif 000009
【図９】
0006306160.tif 000010
【図１０】
0006306160.tif 000011
【図１１】
0006306160.tif 000012
【図１２】
0006306160.tif 000013
【図１３】
0006306160.tif 000014
【図１４】
0006306160.tif 000015
【図１５】
0006306160.tif 000016
【図１６】
0006306160.tif 000017