[0001]本開示の態様は概してメモリに関し、より具体的には、メモリインターフェースのための遅延構造に関する。
[0002]チップは、チップ上の回路(例えば、メモリコントローラ)を、ダブルデータレート動的ランダムアクセスメモリ(DDR DRAM)のような外部メモリデバイスとインターフェース接続するためのメモリインターフェースを含むことができる。メモリインターフェースは、メモリインターフェースにおいて信号(例えば、データ信号)のタイミングを調整するための遅延回路を含むことができる。例えば、メモリインターフェースは、(例えば、メモリインターフェースと外部メモリデバイスとの間のデータ線の長さの不一致に起因した)データ信号間のスキューを補償するための遅延回路を含むことができる。別の例では、メモリインターフェースは、データサンプリングのために使用されるデータストローブ信号を、データ信号の遷移間の中心に置くための遅延回路を含むことができる。
[0003]以下は、1つまたは複数の実施形態の基本的な理解を提供するために、そのような実施形態の簡略化された概要を提示する。この概要は、すべての考慮された実施形態の広範な概観ではなく、すべての実施形態の重要なまたは決定的な要素を特定するようにも、任意のまたはすべての実施形態の範囲を詳細に説明するようにも意図されていない。その唯一の目的は、これ以後に提示されるより詳細な説明の前置きとして、1つまたは複数の実施形態のいくつかの概念を簡略化された形態で提示することである。
[0004]ある態様にしたがって、信号を遅延させるための方法が本明細書で説明される。その方法は、第1の信号エッジを受信することと、その第1の信号エッジを受信したことに応答して、発振器の発振の数をカウントすることと、を備える。その方法はまた、発振の数が所定の数に達した場合、第2の信号エッジを出力することとを備える。
[0005]第2の態様は、信号を遅延させるための装置に関する。その装置は、第1の信号エッジを受信するための手段と、その第1の信号エッジを受信したことに応答して、発振器の発振の数をカウントするための手段とを備える。その装置はまた、発振の数が所定の数に達した場合、第2の信号エッジを出力するための手段を備える。
[0006]第3の態様は、遅延デバイスが発振器、ならびに入力および出力を有するカウント回路を備えることに関する。そのカウント回路は、入力で信号エッジを受信したことに応答して、発振器の発振の数をカウントし、発振の数が所定の数に達した場合、出力で第2の信号エッジを出力するように構成される。
[0007]第4の態様は遅延デバイスに関する。その遅延デバイスは、第1の遅延段および第2の遅延段を備える。その第1の遅延段は、第1の発振器、ならびに入力および出力を有する第1のカウント回路を備え、ここにおいてその第1のカウント回路は、入力で第1の信号エッジを受信したことに応答して、第1の発振器の発振の数をカウントし、第1の発振器の発振の数が第1の所定の数に達した場合、出力で第2の信号エッジを出力するように構成される。第2の遅延段は、第2の発振器、ならびに第1のカウント回路の出力に結合された入力および出力を有する第2のカウント回路を備え、ここにおいてその第2のカウント回路は、第2のカウント回路の入力で第2の信号エッジを受信したことに応答して、第2の発振器の発振の数をカウントし、第2の発振器の発振の数が第2の所定の数に達した場合、第2のカウント回路の出力で第3の信号エッジを出力するように構成される。
[0008]前述の、および関連する目的を達成するために、1つまたは複数の実施形態は、以下で十分に説明され、特許請求の範囲において具体的に指摘される特徴を備える。以下の説明および付属図面は、1つまたは複数の実施形態のある特定の例示的な態様を詳細に述べる。しかしながらこれらの態様は、様々な実施形態の原理が用いられうる様々な方法のほんの一部を示しており、説明される実施形態は、すべてのそのような態様およびそれらの同等物を含むように意図されている。
外部メモリデバイスとインターフェース接続するためのメモリインターフェースの例を図示する。
データ信号とデータストローブとの間のタイミングの例を例示しているタイミング図である。
本開示の一実施形態にしたがったマスタ−スレーブアーキテクチャの例を図示する。
本開示の一実施形態にしたがったスレーブ遅延回路の例を図示する。
本開示の一実施形態にしたがったマスタ遅延回路の例を図示する。
本開示の一実施形態にしたがったクロック遅延回路の例を図示する。
本開示の一実施形態にしたがったプログラム可能な電力を有するマスタ遅延回路を図示する。
本開示の一実施形態にしたがった、電圧バイアスが2クロック周期ごとに更新される例を例示しているタイミング図である。
本開示の一実施形態にしたがった、電圧バイアスが4クロック周期ごとに更新される例を例示しているタイミング図である。
本開示の一実施形態にしたがった、電圧バイアスが4クロック周期ごとに更新される別の例を例示しているタイミング図である。
本開示の一実施形態にしたがった更新回路の例示的な実装を図示する。
本開示の一実施形態にしたがったループロックの例を例示しているタイミング図である。
本開示の他の実施形態にしたがったスレーブ遅延回路の実例的な実装を図示する。
図13のスレーブ遅延回路を通る異なる遅延経路の例を図示する。
図13のスレーブ遅延回路を通る異なる遅延経路の例を図示する。
本開示の一実施形態にしたがった、電圧制御された遅延を用いるNANDゲートの実例的な実装を図示する。
本開示の他の実施形態にしたがったマスタ遅延回路の例示的実装を図示する。
本開示の他の実施形態にしたがったクロック遅延回路の例示的実装を図示する。
本開示の一実施形態にしたがった、クロック遅延回路の第1の遅延段および第2の遅延段の出力を例示しているタイミング図である。
本開示の一実施形態にしたがったカウント回路の例示的実装を図示する。
本開示の一実施形態にしたがったリセットロジックの例示的実装を図示する。
本開示の他の実施形態にしたがった更新回路の例示的実装を図示する。
本開示の一実施形態にしたがった、信号を遅延させるための方法を例示しているフロー図である。
発明の詳細な説明
[0031]添付図面に関連して以下で説明される詳細な説明は、様々な構成の説明として意図され、本明細書において説明される概念が実施されうる唯一の構成を表すようには意図されていない。詳細な説明は、様々な概念の徹底した理解を提供する目的で特定の詳細を含む。しかしながら、これらの概念がこれらの特定の詳細なしに実施されうることは当業者には明らかだろう。いくつかの例では、そのような概念を曖昧にすることを避けるために、周知の構造およびコンポーネントが、ブロック図の形態で図示される。
[0032]チップは、チップ上の回路(例えば、メモリコントローラ)を、DDR DRAMのような外部メモリデバイスとインターフェース接続するためのメモリインターフェースを含むことができる。図1は、チップを外部メモリデバイス(図示せず)とインターフェース接続するための例示的なメモリインターフェース100の例を図示する。メモリインターフェース100は、第1の複数のフリップフロップ115(1)−115(n)、第1の複数のデスキュー回路120(1)−120(n)、第2の複数のフリップフロップ135(1)−135(n)、第2の複数のデスキュー回路145(1)−145(n)、第1の遅延回路125、および第2の遅延回路140を含む。
[0033]書き込み動作中、第1の複数のフリップフロップ115(1)−115(n)は、複数のデータ信号117(1)−117(n)を並行して受信する。各フリップフロップ115(1)−115(n)はまた、データストローブ信号119を受信する、それは、入来するデータ信号117(1)−117(n)の周波数の半分を有する周期信号でありうる。各フリップフロップ115(1)−115(n)は、データストローブ信号119の立上りエッジおよび立下りエッジ上で、それぞれのデータ信号117(1)−117(n)からデータビットをキャプチャし、そのキャプチャされたデータビットをそれぞれのデスキュー回路120(1)−120(n)に出力し、このことは以下でより詳細に説明される。
[0034]データストローブ信号119はまた、第1の遅延回路125に入力される。第1の遅延回路125の前にデータストローブ信号119のエッジは、フリップフロップ115(1)−115(n)の出力データ信号118(1)−118(n)の遷移とほぼ一致する。これは、各フリップフロップ115(1)−115(n)がデータストローブ信号119の立上りエッジおよび立下りエッジ上で、それぞれの出力データ信号118(1)−118(n)に関するデータビットをキャプチャするからである。第1の遅延回路125は、遅延されたデータストローブ信号121のエッジが、出力データ信号118(1)−118(n)の遷移間のほぼ中央にセンタリングされるように1周期の四分の一だけデータストローブ信号119を遅延させる。
[0035]図2は、出力データ信号118のうちの1つとデータストローブ信号119との間のタイミング関係の簡略化された例を図示する。この例では、データストローブ信号119の立上りエッジおよび立下りエッジ220および222は、出力データ信号118の遷移210とほぼ一致する。図2で図示されているように、1周期の四分の一(T/4)だけ遅延された後、データストローブ信号121の立上りエッジおよび立下りエッジ220および222は、出力データ信号118の遷移210間のほぼ中央にセンタリングされる。メモリデバイスは、データストローブ信号121のエッジでデータ信号をサンプリングする。データストローブ信号121のエッジをデータ信号の遷移間にセンタリングすることは、メモリデバイスがデータ信号の有効なデータウィンドウ内でデータ信号をサンプリングすることを確実にするのに役立つ。
[0036]各デスキュー回路120(1)−120(n)は、それぞれのデータ信号118(1)−118(n)に、メモリインターフェース100からメモリデバイス(例えば、DDR DRAM)に向かう際のデータ信号間のスキューを補償するために、小量の遅延を加える。スキューは、メモリデバイスにデータ信号をトランスポートするために使用される線の長さの不一致、および/または他の原因に起因しうる。それぞれのデスキュー回路120(1)−120(n)によって遅延された後、各出力データ信号は、それぞれの双方向データ線DQ0−DQn−1上でメモリデバイスに出力される。データストローブ信号121は、双方向ストローブ線DQS上でメモリデバイスに出力される。メモリデバイスは、メモリインターフェース100から受信されたデータ信号をサンプリングするためにデータストローブ信号121を使用する。
[0037]読み出し動作中、メモリインターフェース100は、双方向データ線DQ0−DQn−1を介してメモリデバイスから複数のデータ信号132(1)−132(n)を、および双方向ストローブ線DQSを介してメモリデバイスからデータストローブ信号134を、受信する。第2の複数のデスキュー回路145(1)−145(n)の各々は、データ信号132(1)−132(n)のうちの1つを受信し、データ信号間のスキューを補償するためにそれぞれのデータ信号に小量の遅延を加える。
[0038]メモリデバイスからのデータストローブ信号134は、第2の遅延回路140に入力され、この第2の遅延回路140は、1周期の四分の一だけデータストローブ信号134を遅延させる。これは、メモリデバイスがデータストローブ信号134を、データ信号132(1)−132(n)の遷移と一致されたデータストローブ信号のエッジで出力するので、行われる。1周期の四分の一だけデータストローブ信号134を遅延させることによって、第2の遅延回路140は、遅延されたデータストローブ信号136のエッジを、データ信号132(1)−132(n)の遷移間のほぼ中央にセンタリングする。
[0039]遅延されたデータストローブ136は次に、第2の複数のフリップフロップ135(1)−135(n)の各々のクロック入力に入力される。例えば、遅延されたデータストローブ信号136は、クロックツリーを使用してフリップフロップ135(1)−135(n)のクロック入力に分配されうる。各フリップフロップ135(1)−135(n)は、遅延されたデータストローブ信号136の立上りエッジおよび立下りエッジ上で、それぞれのデスキュー回路145(1)−145(n)の出力138(1)−138(n)からデータビットをキャプチャする。結果として生じる出力データ信号142(1)−142(n)は、さらなる処理のためにメモリインターフェース100におけるさらなる回路(図示せず)に送られうる。
[0040]メモリインターフェース100は、複数のデータレートをサポートすることができ、ここにおいてデータがメモリデバイスに送られる、およびメモリデバイスから受信されるレートは、動的に調整されうる。例えば、データレートは、高データレートを要求するアプリケーション関しては増大され得、高データレートを要求しないアプリケーションに関しては減少されうる。データレートが変化するとき、遅延回路125および140の遅延は、それにしたがって調整される必要がある。例えば、データレートが倍にされると、データストローブ信号119の周期は半分に低減される。この例では、第1の遅延回路125の遅延は、データストローブ信号119に関する1周期の四分の一の遅延を維持するために半分に低減される。別の例では、データレートが半分に低減されると、データストローブ信号119の周期は倍にされる。この例では、第1の遅延回路125の遅延は、データストローブ信号119に関する1周期の四分の一の遅延を維持するために倍にされる。
[0041]図3は、メモリインターフェース(例えば、メモリインターフェース100)において制御された遅延を提供するためのマスタ−スレーブアーキテクチャ300の例を図示する。マスタ−スレーブアーキテクチャ300は、マスタ遅延回路310および複数のスレーブ遅延回路315(1)−315(m)を備える。各スレーブ遅延回路315(1)−315(m)は、ステップ遅延のある倍数(a multiple)である遅延を提供し、ここにおいてステップ遅延は、マスタ遅延回路310からの電圧バイアスによって制御される。以下でさらに論じられるように、マスタ遅延回路310は、スレーブ遅延回路315(1)−315(m)のための望ましいステップ遅延を維持するために、(例えば、水晶発振器からの)基準クロックに基づいて電圧バイアスを調整する。スレーブ遅延回路315(1)−315(m)は、図1で図示されている、遅延回路125および140、ならびにデスキュー回路120(1)−120(n)および145(1)−145(n)を実装するために使用されうる。
[0042]図4は、スレーブ遅延回路315のうちの1つの例示的実装を図示する。スレーブ遅延回路315は、複数の遅延素子440(1)−440(p)(例えば、バッファ)、およびマルチプレクサ450を備える。遅延素子440(1)−440(p)の各々は、マスタ遅延回路310からの電圧バイアスでバイアスされる。電圧バイアスは、各遅延素子440(1)−440(p)の遅延を制御する。
[0043]遅延素子440(1)−440(p)は、遅延チェーン430を形成するために直列で結合されており、ここにおいて各遅延素子440(1)−440(p)の出力445(1)−445(p)は、スレーブ遅延回路315の入力(「IN」と表示されている)で受信された信号に異なる量の遅延を提供する。より具体的には、各遅延素子440(1)−440(p)の出力445(1)−445(p)は、ステップ遅延の異なる倍数である遅延を提供し、ここにおいてステップ遅延は、1つの遅延素子の遅延である。例えば、出力445(1)は1つのステップ遅延に等しい遅延を提供し、出力445(2)は2つのステップ遅延に等しい遅延を提供し、出力445(3)は3つのステップ遅延に等しい遅延を提供し、以下同様である。
[0044]遅延素子440(1)−440(p)の出力445(1)−445(p)はマルチプレクサ450に結合されており、このマルチプレクサ450は、遅延コントローラ460の制御下で出力445(1)−445(p)のうちの1つを選択する。マルチプレクサ450は、その選択された出力を、スレーブ遅延回路315の出力(「OUT」と表示されている)に結合する。遅延コントローラ460は、望ましい遅延に対応する遅延素子440(1)−440(p)の出力445(1)−445(p)を選択するようマルチプレクサ450に命令することによって、遅延回路315の遅延を制御する。
[0045]したがって、遅延コントローラ460は、入力信号が通過する遅延素子440(1)−440(p)の数を制御することによって、スレーブ遅延回路315の遅延を調整する。これは、遅延コントローラ460がステップ遅延の倍数(multiples)によって遅延を制御することを可能にし、ここでステップ遅延は、1つの遅延素子の遅延である。上で論じられたように、ステップ遅延は、マスタ遅延回路310からの電圧バイアスによって制御される。図4におけるスレーブ遅延回路315は、図1で図示されている、遅延回路125および140、ならびにデスキュー回路120(1)−120(n)および145(1)−145(n)、のうちのいずれか1つを実装するために使用されうる。スレーブ遅延回路の他の実装の例が以下で論じられる。
[0046]図5は、マスタ遅延回路310のある実例的な実装を図示する。この例では、マスタ遅延回路310は、リタイミング回路510、クロック遅延回路515、位相周波数検出器(PFD)520、および電圧バイアスコントローラ525を備える遅延ロックループ(DLL)である。以下でさらに論じられるように、マスタ遅延回路310の電圧バイアス出力は、望ましいステップ遅延を獲得するために、フィードバックループ517によってクロック遅延回路515にフィードバックされる。
[0047]動作において、リタイミング回路510は、基準クロックを受信し、1クロック周期分だけ基準クロックを遅延させ、その遅延された基準クロックをPFD520の第1の入力522に出力する。リタイミング回路510はまた、クロック遅延回路515に基準クロックを出力する。クロック遅延回路515は、電圧バイアスによって制御される量だけ基準クロックを遅延させ、それは、フィードバックループ517によってマスタ遅延回路310の出力からクロック遅延回路515にフィードバックされる。クロック遅延回路515は、PFD520の第2の入力524に結果として生じる遅延された基準クロックを出力する。
[0048]PFD520は、第1および第2の入力522および524の間の位相誤差を検出し、検出された位相誤差に基づいて電圧バイアスコントローラ525に位相誤差信号を出力する。電圧バイアス回路525は、位相誤差を低減する方向に電圧バイアスを調整する。電圧バイアス回路525は、チャージポンプおよびループフィルタで実装されうる。
[0049]位相誤差は、クロック遅延回路515の遅延が基準クロックの1周期にほぼ等しいときにゼロに近づく。したがって電圧バイアスコントローラ525は、クロック遅延回路515の遅延が1クロック周期にほぼ等しくなるように電圧バイアスを調整する。一態様では、クロック遅延回路515は、スレーブ遅延回路315(1)−315(m)のステップ遅延のある倍数Mにほぼ等しい遅延を有する。したがってこの態様では、マスタ遅延回路310は、ほぼT/Mのステップ遅延を維持するように電圧バイアスを調整し、ここでTは、1クロック周期(サイクル)である。
[0050]一態様では、基準クロックは、水晶発振器(XO)によって提供される。水晶発振器は、ほぼ温度、電圧、および/またはプロセス不変である(temperature, voltage and/or process invariant)基準クロックを生成する能力を有する。マスタ遅延回路310が電圧バイアスを調整するための基準として基準クロックを使用するので、マスタ遅延回路310は、ほぼ温度、電圧、および/またはプロセス不変であるステップ遅延を維持するために電圧バイアスを調整することができる。
[0051]図6は、クロック遅延回路515のある例示的実装を図示する。この例では、クロック遅延回路515は、直列に結合されたM個の遅延素子610(1)−610(M)を備え、ここにおいて各遅延素子610(1)−610(M)は、電圧バイアスコントローラ525からの電圧バイアスによってバイアスされる。クロック遅延回路515中の遅延素子610(1)−610(M)は、スレーブ遅延回路315(1)−315(m)における遅延素子440(1)−440(p)のレプリカでありうる。
[0052]マスタ遅延回路310は、基準クロックの各周期中に電圧バイアスを更新することができる。特に、PFD520は、各クロック周期(サイクル)中に第1の入力5222と第2の入力524との間の位相誤差を検出し、電圧バイアスを更新するためにその検出された位相誤差を電圧バイアスコントローラ525に出力することができる。しかしながら各クロック周期(サイクル)中に電圧バイアスを更新することは、比較的大量の電力を消費し得、これは、メモリインターフェースがモバイルデバイス中に実装されるときにバッテリ寿命を低減する。
[0053]本開示の実施形態は、マスタ遅延回路にプログラム可能な電力を提供し、ここにおいてマスタ遅延回路の電力消費は、マスタ遅延回路がスレーブ遅延回路への電圧バイアスを更新するレートを調整することによって調整される。例えば、以下でさらに論じられるように、性能要件がより低い(例えば、より低いデータレート)とき、マスタ遅延回路は、電力消費を低減するために電圧バイアスをより少ない頻度で更新することができる。
[0054]図7は、本開示の一実施形態にしたがったプログラム可能な電力を有するマスタ遅延回路710を図示する。マスタ遅延回路710は、クロック遅延回路515、位相周波数検出器(PFD)520、および電圧バイアスコントローラ525を備える遅延ロックループ(DLL)である。マスタ遅延回路710はさらに、更新回路712および出力コンデンサ730を備える。
[0055]更新回路712は、マスタ遅延回路710が更新コントローラ750からの制御信号Nに基づいて電圧バイアスを更新するレートを制御するように構成され、ここでNはプログラム可能であり、かつ整数でありうる。より具体的には、更新回路712は、マスタ遅延回路710に、基準クロックのN周期(サイクル)ごと(すなわち、N周期当たりに1回の電圧バイアス更新のレート)に電圧バイアスを更新させる。例えば、Nが2に等しい場合、マスタ遅延回路710は、2クロック周期(サイクル)ごとに電圧バイアスを更新する。
[0056]更新回路712は、電圧バイアスが更新されるレートを調整することによってマスタ遅延回路710の電力消費を調整するために使用されうる。例えば、更新コントローラ750は、Nを増大させる(すなわち、電圧バイアスが更新されるレートを低減する)ことによって、マスタ遅延回路710の電力消費を低減することができる。
[0057]動作において、更新回路712は、基準クロックのN周期(サイクル)ごとにパルスのペアを出力する。各パルスのペアは、QパルスおよびZQパルスを備え、ここにおいてZQパルスは、Qパルスに対してほぼ1クロック周期分だけ遅延される。各パルスのペアに関して、更新回路712は、PFD520の第1の入力522にZQパルスを出力し、クロック遅延回路515にQパルスを出力する。クロック遅延回路515は、電圧バイアスによって制御された量だけQパルスを遅延させ、それは、フィードバックループ517によって電圧バイアスコントローラ525の出力からクロック遅延回路515にフィードバックされる。クロック遅延回路515は、結果として生じる遅延されたQパルスをPFD520の第2の入力524に出力する。PFD520は、ZQパルスと遅延されたQパルスとの間の位相誤差を検出する。例えば、PFD520は、ZQパルスおよび遅延されたQパルスの立上りエッジ間の位相差、またはZQパルスおよび遅延されたQパルスの立下りエッジ間の位相差を検出することによって、位相誤差を検出することができる。PFD520は、その検出された位相誤差に基づいて、電圧バイアスコントローラ525に位相誤差信号を出力する。電圧バイアス回路525は、位相誤差を低減する方向に電圧バイアスを調整する。
[0058]位相誤差は、クロック遅延回路515の遅延が基準クロックの1周期にお等しいときにゼロに近づく。したがって電圧バイアスコントローラ525は、クロック遅延回路515の遅延が1周期クロック周期にほぼ等しくなるように電圧バイアスを調整する。一実施形態では、クロック遅延回路515は、スレーブ遅延回路315(1)−315(m)のステップ遅延のある倍数Mにほぼ等しい遅延を有する。したがってこの実施形態では、マスタ遅延回路710は、ほぼT/Mのステップ遅延を維持するためにNクロック周期(サイクル)ごとに電圧バイアスを更新し、ここでTは、1クロック周期(サイクル)である。
[0059]出力コンデンサ730は、更新間で、電圧バイアスコントローラ525の出力に電圧バイアスを保持するために使用される。出力コンデンサ730における電圧バイアスは、電圧バイアスの更新間にドリフトし得、その結果、スレーブ遅延回路315(1)−315(m)においてジッタをもたらす。電圧バイアスは、更新間の時間の量が増大するとき、より大量にドリフトしうる。その結果、マスタ遅延回路710が電圧バイアスを更新するレートを低減する(すなわち、Nを増大させる)ことは、より低い性能(例えば、より高いジッタ)を犠牲にして電力消費を低減しうる。したがって、マスタ遅延回路710の性能とマスタ遅延回路710の電力を低減することとの間にはトレードオフが存在しうる。
[0060]この点で、更新コントローラ750は、特定のアプリケーションには十分な性能を依然として提供するレベルに、電圧バイアス更新のレートを低減する(それ故に、電力を低減する)ように構成されうる。例えば、メモリインターフェースは比較的低いデータレートで動作するとき、有効なデータウィンドウは比較的大きい。これは、メモリインターフェースのタイミング要件を緩和し、メモリインターフェースがマスタ遅延回路710からのより低い性能(すなわち、更新間のより大きな電圧バイアスドリフト)に耐えることを可能にする。このケースでは、更新コントローラ750が、電力消費を低減するために、電圧バイアス更新のレートを低減する(すなわち、Nを増大させる)ことができる。メモリインターフェースがより高いデータレートで動作するとき、有効なデータウィンドウはより小さくなり、メモリインターフェースのタイミング要件はより厳密になる(例えば、メモリインターフェース中のフリップフロップは、より少ないジッタを許容する)。このケースでは、更新コントローラ750が、マスタ遅延回路710の性能を上げるために、電圧バイアス更新のレートを増大させる(すなわち、Nを減少させる)ことができる。したがって、電圧バイアスが更新されるレートは、電力消費を低減するために高い性能が必要とされないときに低減され得、高い性能が必要とされるとき(例えば、より高いデータレートで)、増大されうる。
[0061]2つの異なるN値に関するマスタ遅延回路710の例示動作が、図8および9を参照して次に説明されることになる。図8は、Nが2に等しい例を例示するタイミング図である。この例では、更新回路712は、基準クロックの2周期(サイクル)ごとにパルスのペア810(1)−810(3)を出力する。各パルスのペア810(1)−810(3)は、クロック遅延回路515に出力されるQパルスおよびPFD520の第1の入力522に出力されるZQパルスを備え、ここでZQパルスは、Qパルスに対してほぼ1クロック周期分だけ遅延される。
[0062]図8はまた、Qパルスがクロック遅延回路515によって遅延された後の各Qパルスを図示する。各パルスのペアに関して、PFD520は、(図8で図示されているような)それぞれのZQパルスとそれぞれの遅延されたQパルスとの間の位相誤差を検出し、電圧バイアスコントローラ525は、その検出された位相誤差に基づいて電圧バイアスを更新する。この例では、マスタ遅延回路710は、位相誤差を検出し、基準クロックの2周期(サイクル)ごとにその検出された位相誤差に基づいて電圧バイアスを更新する。
[0063]図8は、各遅延されたQパルスがそれぞれのZQパルスに対して早い(それぞれのZQパルスに先行する)例を図示するけれども、遅延されたQパルスがそれぞれのZQパルスに対して遅くなりうることも理解されるべきである。遅延されたQパルスが早いケースでは、電圧バイアスコントローラ525は、位相誤差を低減するために、クロック遅延回路515の遅延を増大させる。遅延されたQパルスが遅いケースでは、電圧バイアスコントローラ525は、位相誤差を低減するために、クロック遅延回路515の遅延を減少させる。
[0064]図9は、Nが4に等しい例を例示しているタイミング図である。この例では、更新回路712は、基準クロックの4周期(サイクル)ごとにパルスのペア910(1)−910(3)を出力する。各パルスのペア910(1)−910(3)は、クロック遅延回路515に出力されるQパルスおよびPFD520の第1の入力522に出力されるZQパルスを備え、ここでZQパルスは、Qパルスに対してほぼ1クロック周期分だけ遅延される。
[0065]図9はまた、Qパルスがクロック遅延回路515によって遅延された後の各Qパルスを図示する。各パルスのペアに関して、PFD520は、(図9で図示されているような)それぞれのZQパルスとそれぞれの遅延されたQパルスとの間の位相誤差を検出し、電圧バイアスコントローラ525は、その検出された位相誤差に基づいて電圧バイアスを更新する。この例では、マスタ遅延回路710は、位相誤差を検出し、基準クロックの4周期(サイクル)ごとにその検出された位相誤差に基づいて電圧バイアスを更新する。
[0066]したがって、図8は、電圧バイアスが2クロック周期ごとに更新される例を図示し、図9は、電圧バイアスが4クロック周期ごとに更新される例を図示する。図9における例は、更新間のより多くの電圧バイアスドリフトを犠牲にして、電圧バイアスをより少ない頻度で更新することによって、図8における例と比較して電力消費を低減することができる。
[0067]図10は、Nが4に等しい別の例を例示しているタイミング図である。この例では、更新回路712は、基準クロックの4周期(サイクル)ごとにパルスのペア1010(1)−1010(3)を出力する。各パルスのペア1010(1)−1010(3)は、クロック遅延回路515に出力されるQパルスおよびPFD520の第1の入力522に出力されるZQパルスを備え、ここでZQパルスは、Qパルスに対してほぼ1クロック周期分だけ遅延される。この例は、ZQおよびQパルスが高い代わりに低く、更新回路712の2つの出力がパルス間で低い代わりに高い点で、図9における例とは異なる。
[0068]図10はまた、Qパルスがクロック遅延回路515によって遅延された後の各Qパルスを図示する。各パルスのペアに関して、PFD520は、(図10で図示されているような)それぞれのZQパルスとそれぞれの遅延されたQパルスとの間の位相誤差を検出し、電圧バイアスコントローラ525は、その検出された位相誤差に基づいて電圧バイアスを更新する。PFD520が、(図10で図示されている)パルスの立上りエッジ間の位相差、またはパルスの立下りエッジ間の位相差を検出することによって、位相誤差を検出することができることが理解される。この例では、マスタ遅延回路710は、基準クロックの4周期(サイクル)ごとに電圧バイアスを更新する。
[0069]図11は、本開示の一実施形態にしたがった、更新回路712の例示的な実装を図示する。この実施形態では、更新回路712は、プログラム可能なカウンタ1110、第1のクロックゲート1115、第2のクロックゲート1120、およびクロック周期遅延回路1122を備える。以下でさらに論じられるように、クロックゲート1115および1120の各々は基準クロックを受信し、クロックゲートがゲートイネーブル信号を受信したときは基準クロックをパスし、クロックゲートがゲートディセーブル信号を受信したときは基準クロックをブロックするように構成される。
[0070]プログラム可能なカウンタ1110は、更新コントローラ750からの制御信号Nおよび基準クロックを受信する。カウンタ1110は、1よりも大きいNの場合、基準クロックのN番目の周期(サイクル)毎の期間に、ゲートイネーブル信号1125を出力し、N番目の周期(サイクル)毎の間の期間にゲートディセーブル信号を出力するように構成される。ゲートイネーブル信号1125は、第1のクロックゲート1115に、Qパルスを作り出すために1クロック周期の間基準クロックをパスさせる。クロック周期遅延回路1122は、1クロック周期分ゲートイネーブル信号を遅延させ、第2のクロックゲート1120に遅延されたゲートイネーブル信号1130を出力する。遅延されたゲートイネーブル信号1130は、第2のクロックゲート1120に、ZQパルスを作り出すために1クロック周期の間基準クロックをパスさせる。第2のクロックゲート1120に入力されるゲートイネーブル信号1130は、第1のクロックゲート1115に入力されるゲートイネーブル信号1125に対して1クロック周期だけ遅延されるので、ZQパルスは、Qパルスに対して1クロック周期だけ遅延される。
[0071]上で論じられたように、カウンタ1110は、基準クロックのN番目の周期(サイクル)毎の期間にゲートイネーブル信号1125を出力する。これを行うために、カウンタ1110は基準クロックの数をカウントすることができ、カウンタ1110が基準クロックのNの周期をカウントするたびにゲートイネーブル信号を出力することができる。Nの値がプログラム可能であるので、カウンタ1010がパルスペアを作り出すためにクロックゲート1115および1120をイネーブルするレート(それ故に、マスタ遅延回路710が電圧バイアスを更新するレート)はプログラム可能である。
[0072]クロックゲート1115および1120の各々は、1つまたは複数のロジックゲートを使用して実装されうる。例えば、各クロックゲート1115および1120は、第1および第2の入力を有するANDゲートを備えることができる。ANDゲートの第1の入力は、基準クロックを受信し、ANDゲートの第2の入力は、ゲートイネーブル信号(ロジック1)またはゲートディセーブル信号(ロジック0)のどちらかを受信する。この例では、ANDゲートは、ANDゲートがゲートイネーブル信号(ロジック1)を受信するときは基準クロックをパスし、ANDゲートがゲートディセーブル信号(ロジック0)を受信するときは基準信号をブロックする。基準クロックがブロックされるとき、ANDゲートはロジック0を出力する。この実施形態にしたがったクロックゲート1115および1120は、高いパルスペアを生成するために使用されうる(この例は図8および9で図示されている)。
[0073]別の例では、各クロックゲート1115および1120は、第1および第2の入力を有するORゲートを備えることができる。ORゲートの第1の入力は、基準クロックを受信し、ORゲートの第2の入力は、ゲートイネーブル信号(ロジック0)またはゲートディセーブル信号(ロジック1)のどちらかを受信する。この例では、ORゲートは、ORゲートがゲートイネーブル信号(ロジック0)を受信するときは基準クロックをパスし、ORゲートがゲートディセーブル信号(ロジック1)を受信するときは基準信号をブロックする。基準クロックがブロックされるとき、ORゲートはロジック1を出力する。この実施形態にしたがったクロックゲート1115および1120は、低いパルスペアを生成するために使用されうる(この例は図10で図示されている)。
[0074]クロックゲート1115および1120が、上で論じられた例に限定されないこと、ならびに各クロックゲート1115および1120が、他のタイプのロジックゲートおよび/またはロジックゲートの組合せを使用して実装されうることは理解されるべきである。
[0075]クロック周期遅延回路1122は、基準クロックおよびゲートイネーブル信号を受信し、受信された基準クロックの1周期分だけゲートイネーブル信号を遅延させるフリップフリップ(例えば、Dフリップフロップ)で実装されうる。
[0076]上で論じられたように、更新コントローラ750は、メモリインターフェースのタイミング要件に基づいてNの値を調整することができる。例えば、タイミング要件は、所与の時間でメモリインターフェースのデータレートに依存しうる。データレートが低減されたとき、メモリインターフェースのタイミング要件はより緩和されることになり、それ故に、マスタ遅延回路に関する性能要件は低減される。このケースでは、電圧バイアスが更新されるレートは、電力消費を低減するために低減されうる(すなわち、Nは増大されうる)。データレートが増大されたとき、メモリインターフェースのタイミング要件はより厳密になる(例えば、適切なデータサンプリングのためにフリップフロップによって耐えられうるジッタの量は低減される)。このケースでは、電圧バイアスが更新されるレートは、性能を上げるために増大されうる(すなわち、Nは低減されうる)。
[0077]一実施形態では、更新コントローラ750は、ルックアップ表を含むことができ、ここにおいてルックアップ表は、メモリインターフェースによってサポートされる複数の異なるデータレートを備える。ルックアップ表は、各データレートを、対応するNの値にマッピングすることができる。Nの値は、より低いデータレートに関してはより大きくなりうる。この実施形態では、更新コントローラ750は、(例えば、メモリコントローラから)メモリインターフェースの現在のデータレートのインジケーションを受信し、ルックアップ表を使用して現在のデータレートに対応するNの値を決定することができる。更新コントローラ750はその後、決定されたNの値でマスタ遅延回路710中の更新回路712をプログラムすることができる。
[0078]データレートが変化する場合、更新コントローラ750は、ルックアップ表を使用して新しいデータレートに対応するNの値を決定することができる。新しいデータレートに関するNの値が前のデータレートに関するNの値とは異なる場合、更新コントローラ750は、新しいデータレートに関するNの値でマスタ遅延回路710中の更新回路712をプログラムすることができる。したがって、Nの値(それ故に、電圧バイアス更新のレート)は、メモリインターフェースのデータレートの変化にしたがって調整されうる。
[0079]例えば、DDRメモリインターフェースでは、データレートが第1のデータレート未満(例えば、400MHz未満)であるときはNが最大値(例えば、32)に設定され得、データレートが第2のデータレートより高い(例えば、1.6GHzより高い)ときはNが1に設定されうる。この例では、Nは、第1および第2のデータレートの間(例えば、400MHzと1.6GHzとの間)のデータレートに関して、1と最大値との間の値に調整されうる。
[0080]マスタ遅延回路710が最初に電源がオンにされたとき、位相誤差は比較的大きくありうる。この点で、更新コントローラ750は初めに、位相誤差を迅速に低減し、マスタ遅延回路710のループをロックするためにNの値を1に設定することができる。位相誤差が許容可能なレベルに落ちたとき、更新コントローラ750は、電力消費を低減するためにNの値を増大させることができる。例えば、上で論じられたように、更新コントローラ750は、メモリインターフェースの現在のデータレートに基づいてNの値を増大させることができる。
[0081]図12は、ロック期間中に、Nの値が初めに1に設定される例を図示しているタイミング図である。ロック期間中、電圧バイアスは、マスタ遅延回路710のループを迅速にロックするために、基準クロックの1周期ごとに更新される。ロック期間は、位相誤差が許容可能なレベル(例えば、メモリインターフェースのタイミング要件を満たすレベル)に落ちるときに終了しうる。マスタ遅延回路710のループがロックされた後、Nの値は電力を低減するために増大されうる。図12で図示されている例では、Nの値は4に増大される。しかしながら、本開示の実施形態はこの例に限定されないこと、およびNの値がメモリインターフェースのタイミング要件を満たすどの値にも増大されうることは理解されるべきである。また、ロック期間が図12で図示されている例における持続時間に限定されないことも理解されるべきである。一般にロック期間の持続時間は、許容可能なレベルに位相誤差を低減するために必要とされる電圧バイアス更新の数に依存しうる。
[0082]一実施形態では、更新コントローラ750は、ロック期間のスタートから所定の数のクロック周期の後、ロック期間を終了させることができる。この実施形態では、クロック周期の所定の数は、マスタ遅延回路710をロックするために必要とされるクロック周期の数の推定値に基づきうる。別の実施形態では、更新コントローラ750は、PFD520からの検出された位相誤差をモニタすることができる。この実施形態では、更新コントローラ750は、検出された位相誤差がしきい値未満に落ちたときにロック期間を終了させることができる。
[0083]図13は、本開示の一実施形態にしたがった、スレーブ遅延回路1315の実例的な実装を図示する。スレーブ遅延回路1315は、図3で図示されているスレーブ遅延回路315(1)−315(m)のうちのどれでも1つを実装するために使用されうる。スレーブ遅延回路1315は、(矢印1312によって示されている)フォワード経路に沿った第1の複数のNANDゲート1310(1)−1310(5)、および(矢印1332によって示されている)リターン経路に沿った第2の複数のNANDゲート1330(1)−1330(5)を備える。スレーブ遅延回路1315はまた、フォワードおよびリターン経路の間の第3の複数のNANDゲート1320(1)−1320(5)を備え、ここで各NANDゲート1320(1)−1320(5)は、フォワードおよびリターン経路上の2つの異なる位置の間で結合されている。NANDゲート1310(1)−1310(5)、1320(1)−1320(5)、および1330(1)−1330(5)は、マスタ遅延回路からの電圧バイアス(図13には図示せず)によってバイアスをかけられ、ここにおいて電圧バイアスは、各NANDゲートの遅延を制御する。
[0084]この実施形態では、遅延コントローラ1340が、スレーブ遅延回路1315の入力と出力(「IN」と「OUT」と表示されている)の間の遅延を制御する。以下でさらに論じられるように、遅延コントローラ1340は、スレーブ遅延回路1315を通る信号の経路を制御するために、スレーブ遅延回路1315中のNANDゲートを選択的にイネーブルおよびディセーブルすることによってこれを行う。
[0085]この点で、NANDゲート1310(1)−1310(5)は、遅延コントローラ1340から制御入力1317(1)−1317(5)で制御信号を受信し、NANDゲート1320(1)−1320(5)は、遅延コントローラ1340から制御入力1325(1)−1325(5)で制御信号を受信し、NANDゲート1330(5)は、遅延コントローラ1340から制御入力1335で制御信号を受信する。例示しやすくするために、NANDゲートの制御入力と遅延コントローラ1340との間の接続は、図13には図示されていない。制御信号は、スレーブ遅延回路1315を通る信号の経路を制御するためにNANDゲートを選択的にイネーブルおよびディセーブルし、それ故に、スレーブ遅延回路1315を通る信号の遅延を制御する。NANDゲートが(例えば、それぞれの制御入力にロジック1を入力することによって)イネーブルされるとき、NANDゲートはインバータとしての役割をする。NANDゲートが(例えば、それぞれの制御入力にロジック0を入力することによって)ディセーブルされるとき、NANDゲートの出力状態は一定である。
[0086]図14Aは、遅延コントローラ1340がスレーブ遅延回路1315のNANDゲート1310(1)−1310(3)、1320(4)、および1330(1)−1330(4)を通る遅延経路1410を形成する例を図示する。この例では、信号が8つのNANDゲートを通って伝搬するので、スレーブ遅延回路1315を通じた遅延は1つのNANDゲートの遅延の8倍に匹敵する。図14Aはまた、遅延経路1410を形成するために遅延コントローラ1340からNANDゲート1310(1)−1310(5)、1320(1)−1320(5)、および1330(5)の制御入力に入力された制御信号のロジック状態を図示する。例示しやすくするために、制御入力の参照番号は、図14では図示されていない。
[0087]図14Bは、遅延コントローラ1340がスレーブ遅延回路1315のNANDゲート1310(1)−1310(4)、1320(5)、および1330(1)−1330(5)を通る遅延経路1420を形成する例を図示する。この例では、信号が10個のNANDゲートを通って伝搬するので、スレーブ遅延回路1315を通じた遅延は1つのNANDゲートの遅延の10倍に匹敵する。図14Bはまた、遅延経路1420を形成するために遅延コントローラ1340からNANDゲート1310(1)−1310(5)、1320(1)−1320(5)、および1330(5)の制御入力に入力された制御信号のロジック状態を図示する。例示しやすくするために、制御入力の参照番号は、図14Bでは図示されていない。
[0088]この実施形態では、遅延コントローラ1340は、ステップ遅延の倍数によってスレーブ遅延回路1315の遅延を調整する能力を有し、ここでステップ遅延は2つのNANDゲートの遅延である。2つのNANDゲートのステップ遅延は、信号がスレーブ遅延回路1315の入力および出力で同じ極性を有することを確実にする。ステップ遅延は、マスタ遅延回路からNANDゲートに供給された電圧バイアスによって制御される。スレーブ遅延回路1315が図13で図示されている例におけるNANDゲートの数に限定されないこと、およびスレーブ遅延回路1315がどの数のNANDゲートも含むことができることは、理解されるべきである。例えば、NANDゲートの数は、選択可能な遅延の数を増大させるために増大されうる。
[0089]図15は、本開示の一実施形態にしたがった、電圧制御された遅延を用いるNANDゲート1510の実例的な実装を図示する。NANDゲート1510は、図13におけるNANDゲートを実装するために使用されうる。NANDゲート1510は、NANDロジック1512、カレントスターブ型(current-starbing)PMOSトランジスタ1520、およびカレントスターブ型NMOSトランジスタ1550を備える。以下でさらに論じられるように、NANDロジック1512は、NANDゲート1510のロジック関数を実行し、PMOSおよびNMOSトランジスタ1520および1550は、NANDゲート1510の遅延を制御する。
[0090]NANDロジック1512は、第1のPMOSトランジスタ1530、第2のPMOSトランジスタ1535、第1のNMOS1540トランジスタ、および第2のNMOSトランジスタ1545を備える。第1および第2のPMOSトランジスタ1530および1535の各ソースは互いに結合され、第1および第2のPMOSトランジスタ1530および1535の各ドレインは互いに結合され、第1のNMOSトランジスタ1540のドレインは第1および第2のPMOSトランジスタ1530および1535の各ドレインに結合され、第1のNMOSトランジスタ1540のソースは第2のNMOSトランジスタ1545のドレインに結合されている。第1および第2のPMOSトランジスタ1530および1535の各ソースは、カレントスターブ型PMOSトランジスタ1520を通じて電源Vddに結合され、第2のNMOSトランジスタ1545のソースは、カレントスターブ型NMOSトランジスタ1550を通じて接地に結合されている。
[0091]NANDゲート1510の第1の入力(「IN1」と表示されている)は、第1のPMOSトランジスタ1530および第1のNMOSトランジスタ1540の各ゲートに結合され、NANDゲート1510の第2の入力(「IN2」と表示されている)は、第2のPMOSトランジスタ1535および第2のNMOSトランジスタ1545の各ゲートに結合されている。NANDゲート1510の出力(「OUT」と表示されている)は、第1のPMOSトランジスタ1530、第2のPMOSトランジスタ1535、および第1のNMOSトランジスタ1540の各ドレインに結合されている。
[0092]上で論じられたように、NANDロジック1512は、NANDゲート1510のロジック関数を実行する。この点で、NANDロジック1512は、第1および第2の入力(IN1およびIN2)の両方がロジック1にある場合、ロジック0を出力し、そうでなければロジック1を出力する。したがって、第2の入力(IN2)がロジック0にある場合、NANDロジック1512は、第1の入力(IN1)におけるロジック状態に関わらずロジック1を出力する。第2の入力(IN2)がロジック1にある場合、NANDロジック1512は、第1の入力(IN1)におけるロジック状態の逆を出力する。
[0093]一例では、第1の入力(IN1)が、スレーブ遅延回路(例えば、スレーブ遅延回路1315)を通じて伝搬する信号を受信するために使用され得、第2の入力(IN2)が、遅延コントローラ(例えば、遅延コントローラ1340)から制御信号を受信するために使用されうる。この例では、制御信号がロジック0である場合、NANDロジック1512は、第1の入力(IN1)におけるロジック状態に関わらずロジック1を出力する。このケースでは、NANDロジック1512は、第1の入力(IN1)で信号を伝搬しない。制御信号がロジック1である場合、NANDロジック1512は、第1の入力(IN1)で信号を逆にするので、インバータとして信号を伝搬する。
[0094]上で論じられたように、カレントスターブ型PMOSトランジスタ1520およびカレントスターブ型NMOSトランジスタ1550は、NANDゲート1510の遅延を制御する。より具体的には、カレントスターブ型NMOSトランジスタ1550は、そのゲートで第1の電圧バイアスVbnを受信し、その第1の電圧バイアスVbnに基づいてNANDゲート1510の出力で立下りエッジを引き起こす信号の遅延を制御する。これは、第1の電圧バイアスVbnがカレントスターブ型NMOSトランジスタ1550の伝導性を、したがってカレントスターブ型NMOSトランジスタ1550を通じてNANDゲート1510の出力(OUT)から接地に流れうる電流の量を、制御するからである。これは、今度は、高から低に遷移する(すなわち、立下りエッジ)ために、NANDゲート1510の立下り時間を、したがってNANDゲート1510の出力(OUT)のための時間の量を制御する。第1の電圧バイアスVbnが高くなるほど、出力(OUT)から接地への電流は高くなり、したがって遅延は短くなる。第1の電圧バイアスVbnが低くなるほど、出力(OUT)から接地への電流は低くなり、したがって遅延は長くなる。
[0095]カレントスターブ型PMOSトランジスタ1520は、そのゲートで第2の電圧バイアスVbpを受信し、その第2の電圧バイアスVbpに基づいてNANDゲート1510の出力(OUT)で立上りエッジを引き起こす信号の遅延を制御する。これは、第2の電圧バイアスVbpがカレントスターブ型PMOSトランジスタ1520の伝導性を、したがってカレントスターブ型PMOSトランジスタ1520を通じてVddからNANDゲート1510の出力(OUT)に流れうる電流の量を、制御するからである。これは、今度は、低から高に遷移する(すなわち、立上りエッジ)ために、NANDゲート1510の立上り時間を、したがってNANDゲート1510の出力のための時間の量を制御する。第2の電圧バイアスVbpが低くなるほど、Vddから出力(OUT)への電流は高くなり、したがって遅延は短くなる。第2の電圧バイアスVbpが高くなるほど、Vddから出力(OUT)への電流は低くなり、したがって遅延は長くなる。
[0096]したがって、第1および第2の電圧バイアスVbnおよびVbpは、NANDゲート1510の遅延を制御し、したがってNANDゲート1510で実装されたNANDゲートを備えるスレーブ遅延回路のステップ遅延を制御する。第1の電圧バイアスVbnはNANDゲート1510の出力(OUT)で立下りエッジの遅延を制御し、第2の電圧バイアスVbpはNANDゲート1510の出力(OUT)で立上りエッジの遅延を制御する。
[0097]図16は、本開示の一実施形態にしたがった、スレーブ遅延回路のための望ましいステップ遅延を獲得するために第1および第2の電圧バイアスVbnおよびVbpを調整するように構成されたマスタ遅延回路1610を図示する。マスタ遅延回路1610は、更新回路712、クロック遅延回路1615、位相周波数検出器(PFD)1620、チャージポンプ1625、Vbp生成器1640、および初期プル回路1650を備える。マスタ遅延回路1610はさらに、チャージポンプ1625の出力と接地との間に結合された第1のコンデンサ1630、およびVddとVbp生成器1640の出力との間に結合された第2のコンデンサ1645を備える。以下でさらに論じられるように、第1のコンデンサ1630は、第1の電圧バイアスVbnを生成するために使用され、第2のコンデンサ1645は、第2の電圧バイアスVbpを生成するために使用される。
[0098]動作において、更新回路712は、基準クロックのN周期(サイクル)ごとにパルスのペアを出力する。各パルスのペアは、QパルスおよびZQパルスを備え、ここにおいてZQパルスは、Qパルスに対してほぼ1クロック周期分だけ遅延される。各パルスのペアに関して、更新回路712は、PFD1620の第1の入力1622にZQパルスを出力し、クロック遅延回路1615にQパルスを出力する。クロック遅延回路1615は、第1および第2の電圧バイアスVbnおよびVbpによって制御された量だけQパルスを遅延させ、それらは、チャージポンプ1625およびVbp生成器1640それぞれの出力からクロック遅延回路1615にフィードバックされる。第1の電圧バイアスVbnは、第1のフィードバックループ1655によってクロック遅延回路1615にフィードバックされ、第2の電圧バイアスVbpは、第2のフィードバックループ1660によってクロック遅延回路1615にフィードバックされる。クロック遅延回路1615は、PFD1620の第2の入力1624に結果として生じる遅延されたQパルスを出力する。
[0099]PFD1620は、ZQパルスと遅延されたQパルスとの間の位相誤差を検出する。例えば、PFD1620は、ZQパルスおよび遅延されたQパルスの立上りエッジ間の位相差、またはZQパルスおよび遅延されたQパルスの立下りエッジ間の位相差を検出することによって、位相誤差を検出することができる。PFD1620は、その検出された位相誤差に基づいてチャージポンプ1625にUP信号および/またはDOWN信号を出力する。UP信号は、チャージポンプ1625に第1のコンデンサ1630を充電させ(それ故に、第1の電圧バイアスVbnを増大させ)、DOWN信号は、チャージポンプ1625に第1のコンデンサ1630を放電させる(それ故に、第1の電圧バイアスVbnを減少させる)。PFD1620は、検出された位相誤差を減少させる方向にUP信号および/またはDOWN信号(それ故に、第1の電圧バイアスVbn)を調整する。
[0100]第1の電圧バイアスVbnは、第1の電圧バイアスVbnに基づいて第2の電圧バイアスVbpを生成するVbp生成器1640に入力される。一実施形態では、Vbp生成器1640は単に、Vdd−VbpがVbnにほぼ等しくなるように第2の電圧バイアスVbpを調整することができる。別の実施形態では、Vbp生成器1640は、スレーブ遅延回路のNANDゲートの立上り時間および立下り時間がほぼ等しくなるように、第2の電圧バイアスVbpを調整することができる。例えば、Vbp生成器1640は、相補信号によって駆動される2つのNANDゲートを備えることができ、NANDゲートのうちの1つに、他のNANDゲートが立ち下がる間立ち上がらせる。両方のNANDゲートが、第1および第2の電圧バイアスVbnおよびVbpによってバイアスをかけられ得、スレーブ遅延回路中のNANDゲートのレプリカでありうる。この例では、Vbp生成器1640は、NANDゲートの立上りおよび立下りエッジが交わるポイント(例えば、電圧)を検出し、交わるポイントがほばNANDゲートの電圧振幅の中間(例えば、ほぼVddの半分)にあるように、第2の電圧バイアスVbpを調整することができる。
[0101]位相誤差は、クロック遅延回路1615の遅延が基準クロックの1周期にほぼ等しいときにゼロに近づく。したがって、マスタ遅延回路1610は、クロック遅延回路1615の遅延が1クロック周期にほぼ等しくなるように第1および第2の電圧バイアスVbnおよびVbpを調整する。一実施形態では、クロック遅延回路1615は、スレーブ遅延回路のステップ遅延のある倍数Mにほぼ等しい遅延を有する。例えば、簡略化された実装では、クロック遅延回路1615は、直列で結合された2*M個のNANDゲートを備えることができ、ここでステップ遅延は、2つのNANDゲートの遅延である。したがってこの実施形態では、マスタ遅延回路1610は、ほぼT/Mのステップ遅延を維持するためにNクロック周期(サイクル)ごとに第1および第2の電圧バイアスVbnおよびVbpを更新し、ここでTは、1クロック周期(サイクル)である。
[0102]第1のコンデンサ1630は、更新の間、第1の電圧バイアスVbnを保持し、第2のコンデンサ1645は、更新の間の第2の電圧バイアスVbpを保持する。第1および第2の電圧バイアスVbnおよびVbpは、更新の間にドリフトする。上で論じられたように、更新の間の時間を増大させること(すなわち、Nを増大させること)は、更新の間のより多くのドリフト(それ故に、より低い性能)の犠牲を払って電力消費を低減する。この点で、更新コントローラ750は、依然として特定のデータレートのためのタイミング要件を満たしながら電力消費を低減するために、更新のレートを調整する(すなわち、Nを調整する)ことができる。
[0103]初期プル回路1650は、誤ロックを防止するために第1および第2の電圧バイアスVbnおよびVbpに関する初期値を設定するように構成される。これを行うために、初期プル回路1650は初めに、リセット信号(「i_rst」と表示されている)がアサートされた(例えば、i_rstがロジック1である)とき、第1の電圧バイアスVbnを電源Vddにプルアップし、第2の電圧バイアスVbpを接地にプルダウンする。これは初めに、1クロック周期よりも短い遅延にクロック遅延回路1615を設定し、それは、マスタ遅延回路1610が1クロック周期にクロック遅延回路1615の遅延をロックすることを確実にするのを助ける。
[0104]第1および第2の電圧バイアスVbnおよびVbpが初めに設定され、リセットがオフにされた(例えば、i_rstがロジック0である)後、マスタ遅延回路1610は、ロック期間中、1クロック周期(サイクル)ごとに第1および第2の電圧バイアスVbnおよびVbpを更新することができる。上で論じられたように、一度マスタ遅延回路1610がロックされると、更新の間の空間は、電力を節約するために増大されうる(すなわち、Nが増大されうる)。
[0105]図17は、本開示の一実施形態にしたがった、クロック遅延回路1615の実例的な実装を図示する。クロック遅延回路1615は、第1の遅延段1710および第2の遅延段1750を備える。クロック遅延回路1615を通じた全遅延は、ほぼ第1および第2の遅延段1710および1750を通じた遅延の合計である。
[0106]第1の遅延段1710は、発振器1720およびカウント回路1730を備える。発振器1720は、遅延回路1725および発振イネーブル/ディセーブル回路1740を備える。
[0107]遅延回路1725は、図13におけるスレーブ遅延回路1315の構造に類似した構造で結合されたNANDゲートを備えることができる。図17で図示されている例では、遅延回路1725中のNANDゲートの一部分が遅延回路1725を通る遅延経路1712を形成するためにイネーブルされる。一例では、経路1712の遅延は、16*tdに等しく、ここにおいてtdは、1つのステップ遅延(例えば、2つのNANDゲートの遅延)である。ステップ遅延tdは、第1および第2の電圧バイアスVbnおよびVbp(図17では図示せず)によって制御される。
[0108]以下でさらに論じられるように、発振イネーブル/ディセーブル回路1740は、カウント回路1730からの制御信号に基づいて、発振器1720がイネーブルされるかディセーブルされるかを制御する。図17の例では、発振イネーブル/ディセーブル回路1740は、遅延回路1725の出力1735に結合された第1の入力、制御信号を受信するためのカウント回路1730に結合された第2の入力1745(制御入力としても称される)、および遅延回路1725の入力に結合された出力を有するNANDゲート1740を備える。NANDゲート1740は、第1および第2の電圧バイアスVbnおよびVbp(図17では図示せず)によってバイアスをかけられうる。
[0109]この例では、制御信号がロジック1であるとき、NANDゲート1740は、遅延回路1725の出力と入力との間のインバータとしての役割を果たし、遅延回路1725に発振させる。したがって発振器1720は、制御信号がロジック1であるときにイネーブルされる。制御信号がロジック0であるとき、NANDゲート1740の出力状態は、遅延回路1725の出力におけるロジック状態に関わらずロジック1で一定に保持される。このことは、遅延回路1725の入力からの遅延回路1725の出力を効果的にブロックする。結果として、遅延回路1725は発振することを防止される。したがって発振器1720は、制御信号がロジック0であるときにディセーブルされる。
[0110]発振器1720がイネーブルされたとき、遅延回路1725およびNANDゲート1740は、ループを通じた1往復(one trip)が遅延回路1725を通る経路1712の遅延とNANDゲート1740の遅延の合計に等しい閉ループを形成する。経路1712の遅延が16*tdと等しい例では、ループを通じた1往復は、16.5*td(すなわち、経路1712を通じた16*td遅延およびNANDゲート1740を通じた0.5*td遅延)にほぼ等しい。
[0111]第1の遅延段1710の実例的な動作は、次に本開示の複数の態様にしたがって説明されることになる。この例では、第1の遅延段1710が更新回路712からロウQパルスを受信する(この例は図10で図示されている)ことが想定されうる。更新回路712からQパルスの立上りエッジを受信する前に、発振器1720はディスエーブルされる(すなわち、カウント回路1730は、NANDゲート1740の制御入力1745にロジック0を出力する)。加えて、カウント回路1730は、第2の遅延段1750にロジック1を出力する。
[0112]Qパルスの立上りエッジ上で、カウント回路1730はトリガされる。このことは、カウント回路1730に、発振器1720をイネーブルするためにNANDゲート1740の制御入力1745にロジック1を出力させる。このことはまた、カウント回路1730に、発振器1720の発振の数をカウントすることを開始させ、高から低に、第2の遅延段1750への出力を遷移させる。
[0113]発振器1720が発振すると、遅延回路1725の出力1735におけるロジック状態は変化する。出力ロジック状態の変化の間の時間は、遅延回路1725中の経路1712およびNANDゲート1740を通じた1往復の遅延にほぼ等しい。カウント回路1730は、遅延回路1725の出力1735で、各立下りエッジ上のカウント値をインクリメントすることができる。代わりとして、カウント回路1730は、遅延回路1725の出力1735で、各立上りエッジ上のカウント値をインクリメントすることができる。どちらのケースでも、カウント回路1730は、信号が遅延回路1725中の経路1712およびNANDゲート1740を通じた2往復を行うたびに、カウント値をインクリメントする。遅延回路1725中の経路1712およびNANDゲート1740を通じた遅延が16.5*tdに等しい例では、カウント回路1730は、2*16.5*tdの遅延後、カウント値をインクリメントする。
[0114]カウント値が所定のターミナルカウント値(例えば、13カウント)に達したとき、カウント回路1730は、発振器1720をディセーブルするためにNANDゲート1740の制御入力1745にロジック0を出力する。カウント回路1730はまた、第2の遅延段1750に立上りエッジを出力する。したがって、第1の遅延段1710は、カウント値がターミナルカウント値に達したことに応答して、第2の遅延段1750に立上りエッジを出力する。ターミナルカウント値が13であり、NANDゲート1740および遅延回路1725を通じた遅延が16.5*tdである例では、第1の遅延段1710に入力されたQパルスの立上りエッジと第2の遅延段1750に出力された立上りエッジとの間の遅延は、13*2*16.5*tdにほぼ等しい。ターミナルカウントに達した後、発振器1720は、カウント回路1730が次のQパルスの立上りエッジによって再トリガされるまでディスエーブルされたままに留まりうる。加えて、カウント回路1730は、再トリガされるまで、第2の遅延段1750にロジック1を出力することができる。
[0115]一実施形態では、第2の遅延段1750は、第1の遅延段1710と実質的に同じ構造を有する。この実施形態では、第2の遅延段1750は、発振器1770およびカウント回路1780を備える。発振器1770は、発振イネーブル/ディセーブル回路1790および遅延回路1775を備える。図17における例では、発振イネーブル/ディセーブル回路1790は、NANDゲート1790を備える。第2の遅延段1750中の遅延回路1775、カウント回路1780、およびNANDゲート1790は、第1の遅延段1710中の遅延回路1725、カウント回路1730、およびNANDゲート1740と実質的に類似した方法で機能しうる。
[0116]第1の遅延段1710から立上りエッジを受信する前に、第2の遅延段1750中の発振器1770はディスエーブルされる(すなわち、カウント回路1780は、NANDゲート1790の制御入力1795にロジック0を出力する)。また、カウント回路1780は、PFD1620にロジック1を出力する。
[0117]第1の遅延段1710からの立上りエッジ上で、カウント回路1780はトリガされる。このことは、カウント回路1780に、発振器1770をイネーブルするためにNANDゲート1790の制御入力1795にロジック1を出力させる。このことはまた、カウント回路1780に、発振器1770の発振の数をカウントすることを開始させ、高から低に、PFD1620への出力を遷移させる。
[0118]カウント回路1780におけるカウント値が所定のターミナルカウント値(例えば、13カウント)に達したとき、カウント回路1780は、発振器1770をディセーブルするためにNANDゲート1790にロジック0を出力する。カウント回路1780はまた、PFD1620に立上りエッジを出力する。ターミナルカウント値が13であり、NANDゲート1790および遅延回路1775を通じた遅延が16.5*tdである例では、第2の遅延段1750に入力された立上りエッジとPFD1620に出力された立上りエッジとの間の遅延は、13*2*16.5*tdにほぼ等しい。ターミナルカウントに達した後、発振器1770は、カウント回路1780が第1の遅延段1710からの次の立上りエッジによって再トリガされるまでディスエーブルされたままに留まりうる。加えて、カウント1780は、再トリガされるまで、PFD1620にロジック1を出力することができる。
[0119]図18は、Qパルス、第1の遅延段1710の出力、および第2の遅延段1750の出力の例を例示しているタイミング図である。この例では、Nが1よりも大きいことが想定される。Qパルスの立上りエッジ1810は、第1の遅延段1710中のカウント回路1730をトリガし、第1の遅延段1710の出力を高から低に遷移させる。カウント回路1730のカウント値がターミナルカウントに達するとき、第1の遅延段1710は、第2の遅延段1750に立上りエッジ1820を出力する。第1の遅延段1710からの立上りエッジ1820は、第2の遅延段中のカウント回路1780をトリガし、第2の遅延段1750の出力を高から低に遷移させる。カウント回路1780のカウント値がターミナルカウントに達するとき、第2の遅延段1750は、PFD1620に立上りエッジ1830を出力する。図18で図示されているように、PFD1620に出力された立上りエッジ1830は、第1および第2の遅延段1710および1750を通じた遅延の合計分だけQパルスの立上りエッジから遅延される。
[0120]上で論じられたように、マスタ遅延回路1610は、クロック遅延回路1615を通じた遅延が1クロック周期にほぼ等しくなるまで第1および第2の電圧バイアスVbnおよびVbpを調整する。したがって、マスタ遅延回路1610は、T/Mのステップ遅延を獲得するために、第1および第2の電圧バイアスVbnおよびVbpを調整し、ここでTは1クロック周期であり、Mは第1および第2の遅延段1710および1750における総数である。クロック遅延回路1615の各段1710および1750を通じた遅延が13*2*16.5*tdに等しい例では、クロック遅延回路1615を通じた全遅延が2*13*2*16.5*tdである。この例では、マスタ遅延回路1610は、T/(2*13*2*16.5)にほぼ等しいステップ遅延tdを獲得するために、第1および第2のバイアスVbnおよびVbpを調整し、ここでTは1クロック周期である。
[0121]図17における実例的なクロック遅延回路1615は、以下の利点のうちの1つまたは複数を提供する。まず、クロック遅延回路1615は、単に長い遅延チェーンを使用することと比較されるとずっと小さい数のNANDゲートを使用して小ステップ遅延を獲得することができ、それによりクロック遅延回路1615のサイズを縮小する。これは、クロック遅延回路1615が発振器を形成するために比較的小さい遅延チェーン(例えば、経路1712におけるNANDゲート)を使用し、クロック遅延回路1615の遅延を作り出すために発振器の発振の数をカウントするからである。
[0122]別の利点は、電圧バイアス更新のレートが低減される(すなわち、Nが増大される)ときにクロック遅延回路1615の電力消費が実質的に低減されることである。これは、発振器1720および1770が更新の間、ディセーブルされるからである。結果として、更新の間の空間が増大される(すなわち、Nが増大される)とき、発振器1720および1770からの動的電力消費が低減される。例えば、Nが1よりも大きいとき、発振器1720および1770によって消費される電力は、電圧バイアスVbnおよびVbpが1クロック周期ごとに更新されるケースの発振器1720および1770によって消費される電力のほぼ1/Nに低減される。
[0123]別の利点は、2つの遅延段1710および1750を使用することが、各段に、Qパルス間でリセットするためのより多くの時間を提供することである。例えば、第1の遅延段1710が現在のQパルスに関するターミナルカウントに達し、Nが1に等しいとき、第1の遅延段1710は、次のQパルスに関してリセットするために、第2の遅延段1750にほぼ等しい量の時間を有する。
[0124]遅延回路1725および1775がNANDゲートに限定されないことは理解されるべきである。例えば、各遅延回路1725および1775は、NANDゲート以外の遅延素子のチェーンを備えることができ、ここにおいて遅延素子は、スレーブ遅延回路中の遅延素子のレプリカでありうる。この例では、遅延チェーンの入力および出力が、発振器を形成するように選択的に結合され得、それぞれのカウント回路1730および1780は、遅延を作り出すために発振器の発振の数をカウントすることができる。
[0125]クロック遅延回路1615が2つの遅延段に限定されないこともまた理解されるべきである。例えば、クロック遅延回路1615は、第1の遅延段1710の出力がPFD1620に遅延されたQパルスを提供する1つの遅延段1710を備えることができる。1つの遅延段1710は、例えば、遅延段1710が第2の遅延段を求める必要性なく、次のQパルスに関してリセットするために十分な時間を有するとき(例えば、Nが2以上に等しいとき)、使用されうる。
[0126]図19は、本開示の実施形態にしたがった、第1の遅延段1710中のカウント回路1730の実例的な実装を図示する。第2の遅延段1750中のカウント回路1780もまた、図19で図示されている回路を使用して実装されうる。
[0127]この実施形態では、カウント回路1730は、リセットロジック1915、カウンタ1910、NANDゲート1920、NORゲート1930、インバータ1925、およびORゲート1935を備える。以下の説明では、カウント回路1730中のNANDゲート1920は、第2のNANDゲート1920と称されることになり、発振器1720をイネーブル/ディセーブルするために使用されるNANDゲート1740は、第1のNANDゲート1740と称されることになる。
[0128]第2のNANDゲート1920は、遅延回路1725の出力(「o_osc」と表示されている)に結合された第1の入力、およびリセットロジック1915の出力(「rst_cnt」と表示されている)に結合された第2の入力を有する。カウンタ1910は、第2のNANDゲート1920の出力に結合された入力(「i_cnt」と表示されている)、および第1のNANDゲート1740の制御入力1745に結合された出力(「o_cnt」と表示されている)を有する。したがって、この実施形態では、カウンタ1910の出力(o_cnt)のロジック状態は、発振器1720がイネーブルされるかディセーブルされるかを制御する。ORゲート1935は、初期リセット信号(「i_rst」と表示されている)を受信するための第1の入力、およびインバータ1925を通じた遅延回路1725の出力(o_osc)に結合された第2の入力を有する。ORゲート1935の出力は、リセットロジック1915のリセット入力(「rst」と表示されている)に結合されている。NORゲート1930は、カウンタ1910の入力(「i_cnt」)に結合された第1の入力、およびカウンタ1910の出力(「o_cnt」)に結合された第2の入力を有する。
[0129]カウント回路1730の実例的な動作は、次に、本開示の複数の実施形態にしたがって説明されることになる。この例では、第1の遅延段1710が更新回路712からロウQパルスを受信する(この例は図10で図示されている)ことが想定されうる。更新回路712からQパルスの立上りエッジを受信する前に、発振器1720はディスエーブルされ(すなわち、カウンタ1910は、第1のNANDゲート1740の制御入力1745にロジック0を出力し(o_cnt))、遅延回路1725は、第2のNANDゲート1920にロジック1を出力する(o_osc)。リセットロジック1915は、第2のNANDゲート1920にロジック1を出力する(rst_cnt)。したがって、第2のNANDゲート1920は、遅延回路1725およびリセットロジック1915の両方からロジック1を受信し、第2のNANDゲート1920に、ロジック0をカウンタ1910の入力(i_cnt)に出力させる。カウンタ1910の入力(i_cnt)および出力(o_cnt)の両方がロジック0であるので、NORゲート1930はロジック1を出力する。
[0130]Qパルスの立上りエッジ上で、リセットロジック1915の出力(rst_cnt)は、高から低に遷移する。このことは、第2のNANDゲート1920に、ロジック1をカウンタ1910の入力(i_cnt)に出力させ、それは、カウントすることを開始するようにカウンタ1910をトリガする。それに応じて、カウンタ1910は、第1のNANDゲート1740の制御入力1745にロジック1を出力し(o_cnt)、発振器1720をイネーブルする。したがって、カウンタ1910は、リセットロジック1915の出力(rst_cnt)が低くなることに応答して、発振器1720をイネーブルする。さらに、(NORゲート1930にもフィードバックされる)カウンタ1910の出力(o_cnt)におけるロジック1は、NORゲート1930の出力を高から低に遷移させる。
[0131]遅延回路1725の出力(o_osc)がまず、発信モードでロジック0に変化したとき、ロジック1が、インバータ1925およびORゲート1935を通じてリセットロジック1915のリセット入力(rst)に入力される。このことは、リセットロジック1915にリセットさせ、ロジック1を第2のNANDゲート1920に出力させる。リセットロジック1915からのロジック1は、第2のNANDゲート1920に、遅延回路1725の出力(o_osc)の逆をカウンタ1910の入力(i_cnt)にパスさせる。
[0132]発振器1720が発振すると、遅延回路1725の出力(o_osc)におけるロジック状態は変化する。出力ロジック状態の変化間の時間は、遅延回路1725中の経路1712および第1のNANDゲート1740を通じた1往復の遅延にほぼ等しい。
[0133]発振中、カウンタ1910は、カウンタ入力(i_cnt)が低から高に立ち上がるたびに(すなわち、NANDゲート1920の出力における各立上りエッジ)、カウンタ値をインクリメントする。このことは、信号が遅延回路1725中の経路1712および第1のNANDゲート1740を通じた2往復を行うたびに生じる。したがって、この態様では、カウンタ1910は、遅延回路1725中の経路1712および第1のNANDゲート1740を通じた2往復の遅延の後、カウント値をインクリメントする。遅延回路1725中の経路1712および第1のNANDゲート1740を通じた遅延が16.5*tdに等しい例では、カウンタ1910は、2*16.5*tdの遅延後、カウント値をインクリメントする。
[0134]カウント値がターミナルカウント値(例えば、13カウント)に達したとき、カウンタ1910は、第1のNANDゲート1740の制御入力1745およびNORゲート1930の両方にロジック0を出力する(o_cnt)。第1のNANDゲート1740の制御入力1745におけるロジック0は、第1のNANDゲート1740の出力をロジック1で一定に保持されるようにさせ、発振器1720をディセーブルする。第1のNANDゲート1740の出力におけるロジック1は、遅延回路1725を通って伝播し、遅延回路1725に第2のNANDゲート1920にロジック1を出力させる(o_osc)。このことは、今度は、第2のNANDゲート1920に、ロジック0をカウンタ1910の入力(i_cnt)およびNORゲート1930の両方に出力させる。結果として、NORゲート1930の入力の両方がロジック0であり、NORゲート1930の出力を低から高に遷移させ、それ故に、立上りエッジをNORゲート1930に第2の遅延段1750に出力させる。したがって、第1の遅延段1710は、カウンタ1910がターミナルカウント値に達した後、第2の遅延段1750に立上りエッジを出力する。ターミナルカウント値が13であり、第1のNANDゲート1740および遅延回路1725を通じた遅延が16.5*tdである例では、Qパルスの立上りエッジと第2の遅延段1750に出力された立上りエッジとの間の遅延は、ほぼ13*2*16.5*tdに等しい。
[0135]上で論じられたようにカウンタ入力(i_cnt)で各立上りエッジ上でカウント値をインクリメントする代わりに、カウンタ1910が各立上りエッジ上でカウンタ値をデクリメントすることができることは理解されるべきである。このケースでは、カウンタ1910は、所定のカウンタ値からカウントすることをスタートし、各立上りエッジ上でカウント値をデクリメントをし、カウント値が0のターミナルカウント値に達するときに第2のクロック遅延回路1710をトリガすることができる。
[0136]図20は、本開示の一実施形態にしたがった、リセットロジック1915の実例的な実装を図示する。リセットロジック1915は、第1のANDゲート2010、第1のNORゲート2020、インバータ2030、第2のANDゲート2040、第2のNORゲート2050、および第3のNORゲート2060を備える。リセットロジック1915のクロック入力(「clk」と表示されている)は、第1のANDゲート210の第1の入力および第2のANDゲート2040の第1の入力に結合されている。第1のANDゲート2010の出力は、第1のNORゲート2020の第1の入力に結合され、リセット入力は、第1のNORゲート2020の第2の入力に結合されている。第1のNORゲート2020の出力は、インバータ2030を通じて第1のANDゲート2010の第2の入力にフィードバックされる。第1のNORゲート2020の出力はまた、第2のANDゲート2040の第2の入力に結合されている。第2のNORゲート2040の出力は、第2のNORゲート2050の第1の入力に結合されている。第2のNORゲート2050の出力は、第3のNORゲート2060の第1の入力に結合され、リセット入力は、第3のNORゲート2060の第2の入力に結合されている。第3のNORゲート2060の出力は、第2のNORゲート2050の第2の入力に結合されている。第2のNORゲート2050の出力は、リセットロジック1915の出力(「yn」と表示されている)に結合されている。
[0137]リセットロジック1915は、リセット入力(rst)にロジック1を入力することによってリセットされうる。一度リセットされると、リセットロジック1915は、立上りエッジがクロック入力(clk)で受信されるまでロジック1を出力する(yn)ことができる。リセットロジック1915が第1の遅延段1710で使用されるとき、クロック入力(clk)は、更新回路712のQ出力に結合され得、リセットロジック1915が第2の遅延段1750で使用されるとき、クロック入力(clk)は、第1の遅延段1710の出力に結合されうる。
[0138]立上りエッジがクロック入力(clk)で受信されたとき、リセットロジック1915の出力は低くなる(すなわち、リセットロジック1915はロジック0を出力する)。上で論じられたように、このことは、カウントすることをスタートするようにカウント回路1730中のカウンタ1910をトリガすることができる。リセットロジック1915は、遅延回路1725の出力(o_osc)が低くなるときにリセットされうる。これは、遅延回路1725の出力(o_osc)が、インバータ925を通じてリセットロジック1915のリセット入力(rst)にフィードバックされるからである。リセットロジック1915が第1の遅延段1710で使用されるとき、このことは、次のQパルスの立上りエッジに関してリセットロジック1915をリセットする。
[0139]図21は、本開示の一実施形態にしたがった、更新回路2110の実例的な実装を図示する。更新回路2110は、図7および16で図示されている更新回路712を実装するために使用されうる。更新回路2110は、入力基準クロックのN周期(サイクル)ごとにパルスのペアを出力するように構成される。各パルスのペアは、ロウQパルスおよびロウZQパルスを備え(この例は図10で図示されている)、ここにおいてZQパルスは、Qパルスに対してほぼ1クロック周期分だけ遅延される。
[0140]更新コントローラ2110は、プログラム可能なカウンタ2115、第1のインバータ2120、第1のDフリップフロップ2130、第2のDフリップフロップ2150、第2のインバータ2135、第1のORゲート2140、第3のインバータ2155、および第2のORゲート2160を備える。図21で図示されているように、カウンタ2115、第1のフリップフロップ2130、および第2のフリップフロップ2150は、初期リセット信号(i_rst)によってリセットされうる。
[0141]カウンタ2115は、更新コントローラ750および基準クロックから制御信号Nを受信する。カウンタ2115は、1よりも大きいNでは、基準クロックのN番目の周期毎の期間にロジック0をその出力(「tcn」)に出力し、N番目の周期(サイクル)毎の間でロジック1をその出力(tcn)に出力するように構成される。
[0142]第1のフリップフロップ2130は、基準クロックに結合されたクロック入力(「clk」と表示されている)、第1のインバータ2120を通じたカウンタ2115の出力(tcn)に結合されたd入力、およびq出力を有する。第2のフリップフロップ2150は、基準クロックに結合されたクロック入力(「clk」と表示されている)、第1のフリップフロップ2130のq出力に結合されたd入力、およびq出力を有する。フリップフロップ2130および2150の両方がポジティブエッジトリガ(positive-edge trigered)フリップフロップであり得、ここにおいて各フリップフロップは、基準クロックの立上りエッジ上で、それぞれのd入力においてロジック値をラッチし、ほぼ1クロック周期の間にそのラッチされたロジック値をそれぞれのq出力で出力する。
[0143]第1のORゲート2140は、第2のインバータ2135を通じて第1のフリップフロップ2130のq出力に結合された第1の入力、および基準クロックに結合された第2の入力を有する。第1のORゲート2140の出力は、更新回路2110のQ出力を形成する。第2のORゲート2160は、第3のインバータ2155を通じて第2のフリップフロップ2150のq出力に結合された第1の入力、および基準クロックに結合された第2の入力を有する。第2のORゲート2160の出力は、更新回路2110のZQ出力を形成する。
[0144]更新回路2110の動作は、次に本開示の複数の実施形態にしたがって説明されることになる。
[0145]上で論じられたように、カウンタ2115は、基準クロックのN番目の周期毎の期間にロジック0を出力する。カウンタ2115が1クロック周期(サイクル)の間にロジック0を出力するたびに、第1のORゲート2140および第2のORゲート2160は、ロウQパルスおよびロウZQパルスをそれぞれ出力し、ここにおいてZQパルスは、ほぼ1クロック周期分だけQパルスに対して遅延される。より具体的には、第1のインバータ2120は、カウンタ2115の出力(tcn)でロジック0を変換し、第1のフリップフロップ2130のd入力にロジック1を出力する。第1のフリップフロップ2130は、基準クロックの立上りエッジ上でロジック1をラッチし、1クロック周期の間にそのラッチされたロジック1をそのq出力で出力する。第2のインバータ2135は、第1のフリップフロップ2130のq出力でロジック1を変換し、第1のORゲート2140の第1の入力にロジック0を出力する。このことは、第1のORゲート2140に、ロウQパルスを生成するため、1クロック周期の間に、基準クロックをQ出力にパスさせる。
[0146]第2のフリップフロップ2150は、1クロック周期の遅延の後、第1のフロップ2130のq出力でロジック1をラッチし、1クロック周期の間にそのラッチされたロジック1を出力する。第3のインバータ2155は、第2のフリップフロップ2150のq出力でロジック1を変換し、第2のORゲート2160の第1の入力にロジック0を出力する。このことは、第2のORゲート2160に、ロウZQパルスを生成するため、1クロック周期の間に、基準クロックをZQ出力にパスさせる。第2のフリップフロップ2150のq出力が、第1のフリップフロップ2130のq出力に対して1クロック周期分だけ遅延されるので、ZQパルスは、1クロック周期分だけQパルスに対して遅延される。
[0147]図22は、本開示の一実施形態にしたがった、信号を遅延させるための方法2200を例示しているフロー図である。その方法は、クロック遅延回路1615によって実行されうる。
[0148]ステップ2210において、第1の信号エッジが受信される。例えば、第1の信号エッジは、更新回路(例えば、更新回路712)からのQパルスの立上りエッジでありうる。別の例では、第1の信号エッジは、第1の遅延段(例えば、第1の遅延段1710)からの立上りエッジでありうる。
[0149]ステップ2220において、第1の信号エッジを受信したことに応答して、発振器の発振の数がカウントされる。発振は、発振器を通じた1往復、または発振器を通じた2往復としてカウントされうる。例えば、カウンタ(例えば、カウンタ1910)は、発振器(例えば、発振器1720)の出力(例えば、o_osc)の各立上りエッジおよび/または各立下りエッジ上でカウント値をインクリメントすることによって発振の数をカウントすることができる。
[0150]ステップ2230において、発振の数が所定の数に達した場合、第2の信号エッジが出力される。例えば、発信の数をカウントするカウント値がターミナルカウント値に達した場合、第2の信号エッジは出力されうる。第2の信号エッジは、Qパルスの立上りエッジの遅延されたバージョンを表す立上りエッジでありうる。
[0151]一実施形態では、その方法が、第1の信号エッジを受信したことに応答して、発振器をイネーブルすることと、発振の数が所定の数に達したことに応答して、発振器をディセーブルすることと、をさらに備えることができる。例えば、発振器は、遅延回路(例えば、遅延回路1725)を備えることができる。この例では、発振器をイネーブルすることは、(例えば、NANDゲート1740を使用して)遅延回路の入力に遅延回路の出力を結合することを備えることができ、発振器をディセーブルすることは、(例えば、NANDゲート1740を使用して)遅延回路の入力からの遅延回路の出力をブロックすることを備えることができる。
[0152]更新コントローラ750が、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラム可能ゲートアレイ(FPGA)または他のプログラム可能ロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいは本明細書で説明されている機能を実行するために設計されたそれらのあらゆる組合せで実装されうることは理解されるべきである。汎用プロセッサは、マイクロプロセッサでありうるが、代わりとして、そのプロセッサは、あらゆる従来のプロセッサ、コントローラ、マイクロコントローラ、または状態マシン(state machine)でありうる。プロセッサは、機能を実行するためのコードを備えるソフトウェアを実行することによって本明細書で説明されている更新コントローラ750の機能を実行することができる。ソフトウェアは、RAM、ROM、EEPROM(登録商標)、光学ディスク、および/または磁気ディスクのようなコンピュータ可読記憶媒体上に記憶されうる。
[0153]本開示の先の説明は、どの当業者も本開示を製造または使用できるように提供されている。本開示への様々な変更は当業者には容易に明らかとなり、本明細書で定義された包括的な原理は、本開示の趣旨または範囲から逸脱することなく他のバリエーションに適用されうる。例えば、本開示の実施形態はDRAMの例を使用して上で論じられているけれども、本開示の実施形態がこの例に限定されず、他のタイプのメモリデバイスとともに使用されうることは理解されるべきである。したがって、本開示は、本明細書で説明されている例に限定されるようには意図されていないが、本明細書で開示されている原理および新規な特徴と一致する最も広い範囲を与えられることとする。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
信号を遅延させるための方法であって、
第1の信号エッジを受信することと、
前記第1の信号エッジを受信することに応答して、発振器の発振の数をカウントすることと、
前記発振の数が所定の数に達するなら、第2の信号エッジを出力することと、
を備える、方法。
[C2]
前記第1の信号エッジは第1の立上りエッジを備え、前記第2の信号エッジは第2の立上りエッジを備える、C1に記載の方法。
[C3]
前記第1の信号エッジを受信することに応答して、前記発振器をイネーブルすることと、前記発振の数が前記所定の数に達することに応答して、前記発振器をディセーブルすることと、をさらに備える、C1に記載の方法。
[C4]
前記発振器は遅延回路を備え、前記発振器をイネーブルすることは、前記遅延回路の入力に前記遅延回路の出力を結合することを備える、C3に記載の方法。
[C5]
前記遅延回路の前記入力に前記遅延回路の前記出力を結合することは、インバータを通じて前記遅延回路の前記出力に前記遅延回路の前記出力を結合することを備える、C4に記載の方法。
[C6]
前記遅延回路は、直列に結合された複数の遅延素子を備える、C4に記載の方法。
[C7]
前記発振器をディセーブルすることは、前記遅延回路の前記入力から前記遅延回路の前記出力をブロックすることを備える、C4に記載の方法。
[C8]
信号を遅延させるための装置であって、
第1の信号エッジを受信するための手段と、
前記第1の信号エッジを受信することに応答して、発振器の発振の数をカウントするための手段と、
前記発振の数が所定の数に達するなら、第2の信号エッジを出力するための手段と、
を備える、装置。
[C9]
前記第1の信号エッジは第1の立上りエッジを備え、前記第2の信号エッジは第2の立上りエッジを備える、C8に記載の装置。
[C10]
前記第1の信号エッジを受信することに応答して、前記発振器をイネーブルするための手段と、前記発振の数が前記所定の数に達することに応答して、前記発振器をディセーブルするための手段と、をさらに備える、C8に記載の装置。
[C11]
前記発振器は遅延回路を備え、前記発振器をイネーブルするための手段は、前記遅延回路の入力に前記遅延回路の出力を結合するための手段を備える、C10に記載の装置。
[C12]
前記遅延回路の前記入力に前記遅延回路の前記出力を結合するための手段は、インバータを通じて前記遅延回路の前記出力に前記遅延回路の前記出力を結合するための手段を備える、C11に記載の装置。
[C13]
前記遅延回路は、直列に結合された複数の遅延素子を備える、C11に記載の装置。
[C14]
前記発振器をディセーブルするための手段は、前記遅延回路の前記入力から前記遅延回路の前記出力をブロックするための手段を備える、C11に記載の装置。
[C15]
遅延デバイスであって、
発振器と、
入力および出力を有するカウント回路と、
を備え、前記カウント回路は、前記入力で第1の信号エッジを受信することに応答して、前記発振器の発振の数をカウントし、前記発振の数が所定の数に達するなら、前記出力で第2の信号エッジを出力するように構成される、
遅延デバイス。
[C16]
前記第1の信号エッジは第1の立上りエッジを備え、前記第2の信号エッジは第2の立上りエッジを備える、C15に記載の遅延デバイス。
[C17]
前記カウント回路は、前記第1の信号エッジを受信することに応答して、前記発振器をイネーブルし、前記発振の数が前記所定の数に達することに応答して、前記発振器をディセーブルするように構成される、C15に記載の遅延デバイス。
[C18]
前記発振器は、
入力および出力を有する遅延回路と、
前記カウント回路からの制御信号に基づいて前記発振器を選択的にイネーブルおよびディセーブルするように構成された発振イネーブル/ディセーブル回路と、
を備え、前記発振イネーブル/ディセーブル回路は、前記遅延回路の前記入力に前記遅延回路の前記出力を結合することによって、前記発振器をイネーブルし、前記遅延回路の前記入力から前記遅延回路の前記出力をブロックすることによって前記発振器をディセーブルする、
C17に記載の遅延デバイス。
[C19]
前記遅延回路は、直列に結合された複数の遅延素子を備える、C18に記載の遅延デバイス。
[C20]
前記発振イネーブル/ディセーブル回路は、前記遅延回路の前記出力に結合された第1の入力、前記制御信号を受信するために前記カウント回路に結合された第2の入力、および前記遅延回路の入力に結合された出力を有するNANDゲートを備える、C19に記載の遅延デバイス。
[C21]
前記複数の遅延素子は、複数のNANDゲートを備える、C20に記載の遅延回路。
[C22]
遅延デバイスであって、
第1の遅延段と、前記第1の遅延段は、
第1の発振器、および
入力および出力を有する第1のカウント回路、ここにおいて前記第1のカウント回路は、前記入力において第1の信号エッジを受信することに応答して、前記第1の発振器の発振の数をカウントし、前記第1の発振器の前記発振の数が第1の所定の数に達するなら、前記出力で第2の信号エッジを出力するように構成される、
を備える、
第2の遅延段と、前記第2の遅延段は、
第2の発振器と、
前記第1のカウント回路の前記出力に結合された入力および出力を有する第2のカウント回路と、ここにおいて前記第2のカウント回路は、前記第2のカウント回路の前記入力において前記第2の信号エッジを受信することに応答して前記第2の発振器の発振の数をカウントし、前記第2の発振器の前記発振の数が第2の所定の数に達するなら、前記第2のカウント回路の前記出力において第3の信号エッジを出力するように構成される、
を備える、
を備える、遅延デバイス。
[C23]
前記第1の信号エッジは第1の立上りエッジを備え、前記第2の信号エッジは第2の立上りエッジを備え、前記第3の信号エッジは第3の立上りエッジを備える、C22に記載の遅延デバイス。
[C24]
前記第1のカウント回路は、前記第1の信号エッジを受信することに応答して、前記第1の発振器をイネーブルし、前記第1の発振器の前記発振の数が前記第1の所定の数に達することに応答して、前記第1の発振器をディセーブルするように構成される、C22に記載の遅延デバイス。
[C25]
前記第2のカウント回路は、前記第2の信号エッジを受信することに応答して、前記第2の発振器をイネーブルし、前記第2の発振器の前記発振の数が前記第2の所定の数に達することに応答して、前記第2の発振器をディセーブルするように構成される、C24に記載の遅延デバイス。
[C26]
前記第1の所定数および前記第2の所定の数は同じである、C25に記載の遅延デバイス。
[C27]
前記第1の発振器は、
入力および出力を有する遅延回路と、
前記第1のカウント回路からの制御信号に基づいて前記第1の発振器を選択的にイネーブルおよびディセーブルするように構成された発振イネーブル/ディセーブル回路と、
を備え、前記発振イネーブル/ディセーブル回路は、前記遅延回路の前記入力に前記遅延回路の前記出力を結合することによって、前記第1の発振器をイネーブルし、前記遅延回路の前記入力から前記遅延回路の前記出力をブロックすることによって前記第1の発振器をディセーブルする、
C24に記載の遅延デバイス。
[C28]
前記第1の遅延段に前記第1の信号エッジを出力するとともに第4の信号エッジを出力するように構成されたタイミング回路と、ここにおいて前記第4の信号エッジは、基準クロックのほぼ1周期分だけ前記第1の信号エッジに対して遅延される、
前記タイミング回路から前記第4の信号エッジを受信するための第1の入力、および前記第2の遅延段の前記出力から前記第3の信号エッジを受信するための第2の入力を有する位相周波数検出器(PFD)と、ここにおいて前記PFDは、前記第4および第3の信号エッジの間の位相誤差を検出するように構成される、
前記検出された位相誤差に基づいて電圧バイアスを調整するように構成された電圧バイアスコントローラと、
をさらに備える、C22に記載の遅延デバイス。