以下、添付した図面に基づいて本発明の好ましい実施形態を説明する。なお、本発明は、以下に開示する実施形態に限定されるものではなく、多様な形態で構成されることができる。また、本実施形態は、本発明の開示が完全になるように、通常の知識を有する者に本発明の範疇を知らせるために提供されるものである。
(第1実施形態)
図2は、本発明の第1実施形態に係るレジスタ制御型遅延固定ループ(DLL)回路を示すブロック図である。
同図に示すように、外部から印加されるクロックCLK、CLK#(例えば、CLKが反転された信号)をバッファするクロックバッファ部280と、クロックイネーブル信号CKEに応答し、クロックバッファ部280の出力クロックBUF_CLKを駆動してソースクロックREFCLKとして出力するソースクロック駆動部260と、ソースクロックREFCLKの位相とフィードバッククロックFBCLKの位相とを比較し、比較結果に対応して遅延固定信号DELAY_LOCK_CTRLを生成する位相比較部200と、遅延固定を行なうために、遅延固定信号DELAY_LOCK_CTRLに応答してソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力し、限界遅延量に達することに応答して遅延終了信号DELAY_END_CTRLを生成するクロック遅延部220と、遅延固定クロックDLLCLKにソースクロックREFCLKの実際の出力経路の遅延時間を反映して、フィードバッククロックFBCLKとして出力する遅延複製モデル部240と、遅延固定信号DELAY_LOCK_CTRLおよび遅延終了信号DELAY_END_CTRLに応答して遅延固定動作を終了させる遅延固定動作制御部250とを備える。
ここで、クロックバッファ部280は、外部から印加されるクロックCLK、CLK#をバッファして、内部で使用されるクロックBUF_CLKを生成する。
また、ソースクロック駆動部260は、クロックイネーブル信号CKEが活性化している間は、バッファされたクロックBUF_CLKをソースクロックREFCLKとして出力するが、クロックイネーブル信号CKEが非活性化している間は、バッファされたクロックBUF_CLKをソースクロックREFCLKとして出力しない。すなわち、クロックイネーブル信号CKEが活性化している間は、ソースクロックREFCLKはバッファされたクロックBUF_CLKと同様にトグリング(toggling)する状態になるが、クロックイネーブル信号CKEが非活性化している間は、バッファされたクロックBUF_CLKのトグリングとは無関係に、ソースクロックREFCLKはトグリングしない。
なお、クロックイネーブル信号CKEは、半導体メモリ装置の通常動作時には常に活性化した状態を維持し、半導体メモリ装置の電力消費を減少させるためのパワーダウンモード(power down mode)のような特殊な動作モード時には非活性化され得る。
また、位相比較部200は、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点において、ソースクロックREFCLKの基準エッジ(一般的には立上りエッジを意味するが、立下りエッジであってもよい)よりもフィードバッククロックFBCLKの基準エッジが後方に位置する場合、遅延固定信号DELAY_LOCK_CTRLを活性化してロジック「ハイ」で出力し、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点において、ソースクロックREFCLKの基準エッジよりもフィードバッククロックFBCLKの基準エッジが前方に位置する場合、遅延固定信号DELAY_LOCK_CTRLを非活性化してロジック「ロー」で出力する。
また、遅延固定動作制御部250は、クロック遅延部220に備えられた遅延ライン224から出力される遅延終了信号DELAY_END_CTRLがロジック「ロー」に非活性化される場合には、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点が、所定の回数だけ繰り返される間に、遅延固定信号DELAY_LOCK_CTRLが、ロジック「ハイ」の活性化状態とロジック「ロー」の非活性化状態との間を繰り返し遷移することに応答して、出力される信号DELAY_LOCK_ENDをロジック「ハイ」に活性化させることによって、クロック遅延部220の遅延量を固定して、遅延固定動作を終了させる。
すなわち、遅延固定動作制御部250は、クロック遅延部220に備えられた遅延ライン224から出力される遅延終了信号DELAY_END_CTRLがロジック「ロー」に非活性化される場合には、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点が、所定の回数だけ繰り返される間に、遅延固定信号DELAY_LOCK_CTRLが、ロジック「ハイ」またはロジック「ロー」のいずれか一方の論理レベルに固定されて変動しないことに応答して、出力する信号DELAY_LOCK_ENDをロジック「ロー」に非活性化させることによって、クロック遅延部220の遅延量を変動させて、遅延固定動作を継続的に行なう。
また、遅延固定動作制御部250は、クロック遅延部220に備えられた遅延ライン224から出力される遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化される場合には、遅延固定信号DELAY_LOCK_CTRLの論理レベルとは無関係に、出力される信号DELAY_LOCK_ENDをロジック「ハイ」に活性化させることによって、クロック遅延部220の遅延量を固定して、遅延固定動作を終了させる。
また、クロック遅延部220は、遅延固定信号DELAY_LOCK_CTRLに応答して、複数のビットからなる遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動し、遅延固定動作制御部250の出力信号DELAY_LOCK_ENDに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を固定する遅延制御部222と、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量の分だけソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力し、遅延固定コードDELAY_LOCK_CODE<0:N>の値が限界遅延量に対応する値よりも大きい場合、遅延終了信号DELAY_END_CTRLを活性化させる遅延ライン224とを備える。
ここで、クロック遅延部220における構成要素のうち、遅延制御部222は、遅延固定動作が行なわれている間に遅延固定動作制御部250の出力信号DELAY_LOCK_ENDがロジック「ロー」に非活性化した状態では、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLに応答して遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動させ、遅延固定動作が行なわれている間に遅延固定動作制御部250の出力信号DELAY_LOCK_ENDがロジック「ハイ」に活性化した状態では、アップデート時点および遅延固定信号DELAY_LOCK_CTRLの値とは無関係に、遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動させず、遅延固定動作が終了された後には、アップデート時点および遅延固定信号DELAY_LOCK_CTRLの値とは無関係に、遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動させない。
すなわち、クロック遅延部220における構成要素のうち、遅延制御部222は、遅延固定動作が行なわれている間に遅延固定動作制御部250の出力信号DELAY_LOCK_ENDがロジック「ロー」に非活性化した状態では、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLがロジック「ハイ」に活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を増加させ、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLがロジック「ロー」に非活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を減少させる。
また、クロック遅延部220における構成要素のうち、遅延ライン224は、ソースクロックREFCLKを、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量の分だけ遅延させて、遅延固定クロックDLLCLKとして出力する。このとき、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量は、相対的な値であらかじめ設定されている。
例えば、遅延固定コードDELAY_LOCK_CODE<0:N>が4ビットからなる信号であると仮定する。そして、コード値が「0000」であれば、ソースクロックREFCLKを全く遅延せずにそのまま遅延固定クロックDLLCLKとして出力するように設定し、コード値が「0001」、「0010」、「0011」、「0100」、…のように増加すれば、それに対応してソースクロックREFCLKをより遅延させ、遅延固定クロックDLLCLKとして出力するように設定することができる。このとき、遅延固定コードDELAY_LOCK_CODE<0:N>は、遅延固定動作の開始時点であらかじめ設定される初期値を有することができる。一般的に初期値には「0000」のように最も小さい値は選択されず、「0110」のように中間に位置する値が選択される。
また、図面には直接的に示していないが、遅延ライン224は、複数の単位遅延素子(unit delay)を備えるように構成され、遅延固定コードDELAY_LOCK_CODE<0:N>の値が増加すれば増加するほど、より多くの単位遅延素子を使用してソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力するように設定し、遅延固定コードDELAY_LOCK_CODE<0:N>の値が減少すれば減少するほど、より少ない個数の単位遅延素子を使用してソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力するように設定することができる。
ところが、遅延ライン224が備える単位遅延素子の個数は、設計者によってあらかじめ設定され得る値であり、設計過程において、1回その値が設定された後は再度変更することが容易ではない。また、単位遅延素子の個数が増加するということは面積の増加を意味するため、あらゆる場合をすべて想定して、単位遅延素子の個数をひたすら増加させることは極めて非効率的である。
そのため、ソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力するときまでに適用可能な、遅延ライン224の限界遅延量が存在することになる。しかしながら、従来技術と同様に、遅延量が限界値に達した後でもソースクロックREFLCKの位相とフィードバッククロックFBCLKの位相とが同期していない状態になって、遅延固定コードDELAY_LOCK_CODE<0:N>の値が継続的に増加すると、遅延固定動作が正常に終了しないという問題が発生する。
したがって、本発明の第1実施形態に係る遅延ライン224は、遅延量が、ソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力するときまでの限界遅延量に達すると、遅延終了信号DELAY_END_CTRLをロジック「ハイ」に活性化させて出力する。
同時に、遅延固定動作制御部250は、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化することに応答して、出力信号DELAY_LOCK_ENDをロジック「ハイ」に活性化させて出力し、遅延制御部222は、遅延固定動作制御部250から出力される信号DELAY_LOCK_ENDがロジック「ハイ」に活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を固定することによって、遅延固定動作を強制的に終了させることができる。
このように、本発明の第1実施形態をレジスタ制御型遅延固定ループ(DLL)回路に適用すれば、遅延固定動作を行なう間に、ソースクロックREFCLKと出力される遅延固定クロックDLLCLKとの間の位相差が最大値に達するか否かを検知した結果に応じて、レジスタ制御型遅延固定ループ回路の遅延固定動作を強制的に終了させることによって、レジスタ制御型遅延固定ループ(DLL)回路が遅延固定動作を無限に繰り返すことを防止することができる。
このとき、本発明の第1実施形態において、遅延ライン224が限界遅延量に達して、遅延終了信号DELAY_END_CTRLおよび遅延固定動作制御部250の出力信号DELAY_LOCK_ENDがロジック「ハイ」に活性化するが、遅延固定動作が終了されるだけであって、ソースクロックREFCLKの位相とフィードバッククロックFBCLKの位相とが同期した状態ではないため、内部データ出力部290から出力されるデータDQ DATAの位相は、外部クロックCLK、CLK#に完全に同期した状態ではない。それにも拘わらず、本発明の第1実施形態に係る遅延固定動作が効果的な理由については、一般的な遅延固定ループ(DLL)回路の動作を示す図7を用いて以下に説明する。
図7に示すように、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLK(実際には外部クロックCLK、CLK#と、ソースクロックREFCLKの位相において若干の差が存在し得る)の周波数が、相対的に高い周波数(high frequency)を有する場合(A)と、相対的に低い周波数(low frequency)を有する場合(B)とに区分される。
そのうち、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が、相対的に高い周波数を有する場合(A)について説明すると、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に高いので、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKは相対的に短いことが分かる。
このとき、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジとフィードバッククロックFBCLKの基準エッジとの位相差は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えることができないので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさは、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えないことが分かる。
すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に高い状態では、フィードバッククロックFBCLKを相対的に少し遅延させても遅延固定動作が終了され得るので、遅延固定ループ(DLL)回路の限界遅延量を全て使用しなくても、遅延固定動作が終了され得ることが分かる。
一方、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が、相対的に低い周波数を有する場合(B)について説明すると、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低いので、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKは相対的に長いことが分かる。
このとき、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジとフィードバッククロックFBCLKの基準エッジとの位相差は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えることができないので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさは、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えないことが分かる。
そのため、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKが極めて長いので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさも極めて大きくすべきである。
すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態では、フィードバッククロックFBCLKを相対的に多く遅延させることにより遅延固定動作が終了されるので、遅延固定ループ(DLL)回路の限界遅延量を全て使用しても、遅延固定動作が終了されない場合があることが分かる。
このように、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態では、フィードバッククロックFBCLKの基準エッジ、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジが完全に同期され得ない場合があるが、本発明の第1実施形態に係る遅延固定ループ(DLL)回路では、これを検知して強制的に遅延固定動作を終了させる。このとき、たとえ、遅延固定動作が終了された場合であっても、フィードバッククロックFBCLKの基準エッジ、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジが、大きく差異のない地点までクロックを同期させる動作が進行されていることが分かる。
すなわち、遅延固定ループ(DLL)回路の限界遅延量を全て使用しても遅延固定動作が終了されない状態とは、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態である。これは、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAの出力周波数も相対的に低い状態であることを意味しているので、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAのスキュー(skew)において若干の差があっても、データDQ DATA値の認識に大きな問題がないことを意味する。
したがって、本発明の第1実施形態に係る遅延固定動作が適用された遅延固定ループ(DLL)回路において、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化して、遅延固定動作が強制的に終了される場合は、外部クロックCLK、CLK#、およびソースクロックREFCLKが相対的に低い周波数を有する状態である。すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKが極めて長いだけであって、遅延固定ループ(DLL)回路の限界遅延量を全て使用した状態でソースクロックREFCLKとフィードバッククロックFBCLKとの間に発生する位相差に対応する長さの程度は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKの長さに対比すれば、極めて短い長さに過ぎないので、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAの値の認識には影響を及ぼさない。
(第2実施形態)
図3は、本発明の第2実施形態に係るレジスタ制御型遅延固定ループ(DLL)回路を示すブロック図である。
同図に示すように、外部から印加されるクロックCLK、CLK#をバッファするクロックバッファ部380と、クロックイネーブル信号CKEに応答し、クロックバッファ部380の出力クロックBUF_CLKを駆動してソースクロックREFCLKとして出力するソースクロック駆動部360と、ソースクロックREFCLKの位相とフィードバッククロックFBCLKの位相とを比較し、比較結果に対応して遅延固定信号DELAY_LOCK_CTRLを生成する位相比較部300と、遅延固定を行なうために、遅延固定信号DELAY_LOCK_CTRLに応答してソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力し、限界遅延量に達することに応答して遅延終了信号DELAY_END_CTRLを生成するクロック遅延部320と、遅延固定クロックDLLCLKにソースクロックREFCLKの実際の出力経路の遅延時間を反映して、フィードバッククロックFBCLKとして出力する遅延複製モデル部340と、内部データDATA BUSを遅延固定クロックDLLCLKに同期させて外部にDQ DATAとして出力し、遅延固定信号DELAY_LOCK_CTRLおよび遅延終了信号DELAY_END_CTRLに応答して動作がオン/オフ制御される内部データ出力部390とを備える。
ここで、クロックバッファ部380は、外部から印加されるクロックCLK、CLK#をバッファして、内部で使用されるクロックBUF_CLKを生成する。
また、ソースクロック駆動部360は、クロックイネーブル信号CKEが活性化している間は、バッファされたクロックBUF_CLKをソースクロックREFCLKとして出力するが、クロックイネーブル信号CKEが非活性化している間は、バッファされたクロックBUF_CLKをソースクロックREFCLKとして出力しない。すなわち、クロックイネーブル信号CKEが活性化している間は、ソースクロックREFCLKはバッファされたクロックBUF_CLKと同様にトグリングする状態になるが、クロックイネーブル信号CKEが非活性化している間は、バッファされたクロックBUF_CLKのトグリングとは無関係に、ソースクロックREFCLKはトグリングしない。
なお、クロックイネーブル信号CKEは、半導体メモリ装置の通常動作時には常に活性化した状態を維持し、半導体メモリ装置の電力消費を減少させるためのパワーダウンモードのような特殊な動作モード時には非活性化され得る。
また、位相比較部300は、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点において、ソースクロックREFCLKの基準エッジ(一般的には立上りエッジを意味するが、立下りエッジであってもよい)よりもフィードバッククロックFBCLKの基準エッジが後方に位置する場合、遅延固定信号DELAY_LOCK_CTRLを活性化してロジック「ハイ」で出力し、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点において、ソースクロックREFCLKの基準エッジよりもフィードバッククロックFBCLKの基準エッジが前方に位置する場合、遅延固定信号DELAY_LOCK_CTRLを非活性化してロジック「ロー」で出力する。
また、内部データ出力部390は、クロック遅延部320に備えられた遅延ライン324から出力される遅延終了信号DELAY_END_CTRLがロジック「ロー」に非活性化される場合には、遅延固定信号DELAY_LOCK_CTRLに対応する遅延固定動作が行なわれることに応答してオフされ、内部データDATA BUSを外部にDQ DATAとして出力せず、遅延固定信号DELAY_LOCK_CTRLに対応する遅延固定動作が行なわれないことに応答してオンされ、内部データDATA BUSを外部にDQ DATAとして出力する。
すなわち、内部データ出力部390は、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点が、所定の回数だけ繰り返される間に、遅延固定信号DELAY_LOCK_CTRLがロジック「ハイ」またはロジック「ロー」のいずれか一方の論理レベルに固定されて変動しないことに応答してオフされ、内部データDATA BUSを外部にDQ DATAとして出力させず、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点が、所定の回数だけ繰り返される間に、遅延固定信号DELAY_LOCK_CTRLが繰り返してロジック「ハイ」の活性化状態またはロジック「ロー」の非活性化状態に遷移することに応答してオンされ、内部データDATA BUSを外部にDQ DATAとして出力させる。
また、内部データ出力部390は、クロック遅延部320に備えられた遅延ライン324から出力される遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化される場合には、遅延固定信号DELAY_LOCK_CTRLに応答する遅延固定動作の遂行有無とは無関係にオンされ、内部データDATA BUSを外部にDQ DATAとして出力する。
前述した内部データ出力部390は、遅延固定動作中にはオフされて内部データDATA BUSを外部にDQ DATAとして出力させず、遅延固定動作が終了された後はオンされて内部データDATA BUSを外部にDQ DATAとして出力させる。内部データ出力部390のこのような動作が必要な理由は、遅延固定が動作中であり、まだ外部クロックCLK、CLK#および遅延固定クロックDLLCLKが完全に同期しない状態で、遅延固定クロックDLLCLKに内部データDATA BUSを同期させて出力しても、外部においてその値を認識するのは困難であり、また実際に使用できないことから、正確な値を有しないデータを出力することにより消費される電力を防止するためである。
したがって、内部データDATA BUSが外部にDQ DATAとして出力されるためには、遅延固定動作が完全に終了してからのみ可能であり、これによって次のような状況では、クロック遅延部320で遅延固定動作が完全に終了されないことにより、内部データDATA BUSを外部にDQ DATAとして出力させることができないという問題が発生していた。
まず、クロック遅延部320の構成について説明すると、クロック遅延部320は、遅延固定信号DELAY_LOCK_CTRLに応答して、複数のビットからなる遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動する遅延制御部322と、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量の分だけソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力し、遅延固定コードDELAY_LOCK_CODE<0:N>の値が限界遅延量に対応する値よりも大きい場合、遅延終了信号DELAY_END_CTRLを活性化させる遅延ライン324とを備える。
ここで、クロック遅延部320における構成要素のうち、遅延制御部322は、遅延固定動作が行なわれる状態では、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLに応答して遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動させ、遅延固定動作が終了された後には、アップデート時点および遅延固定信号DELAY_LOCK_CTRLの値とは無関係に、遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動させない。
すなわち、クロック遅延部320における構成要素のうち、遅延制御部322は、遅延固定動作が行なわれる状態では、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLがロジック「ハイ」に活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を増加させ、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLがロジック「ロー」に非活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を減少させる。
また、クロック遅延部320における構成要素のうち、遅延ライン324は、ソースクロックREFCLKを、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量の分だけ遅延させて、遅延固定クロックDLLCLKとして出力する。このとき、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量は、相対的な値であらかじめ設定されている。
例えば、遅延固定コードDELAY_LOCK_CODE<0:N>が4ビットからなる信号であると仮定する。そして、コード値が「0000」であれば、ソースクロックREFCLKを全く遅延せずにそのまま遅延固定クロックDLLCLKとして出力するように設定し、コード値が「0001」、「0010」、「0011」、「0100」、…のように増加すれば、それに対応してソースクロックREFCLKをより遅延させ、遅延固定クロックDLLCLKとして出力するように設定することができる。このとき、遅延固定コードDELAY_LOCK_CODE<0:N>は、遅延固定動作の開始時点であらかじめ設定される初期値を有することができる。一般的に初期値には「0000」のように最も小さい値は選択されず、「0110」のように中間に位置する値が選択される。
また、図面には直接的に示していないが、遅延ライン324は、複数の単位遅延素子を備えるように構成され、遅延固定コードDELAY_LOCK_CODE<0:N>の値が増加すれば増加するほど、より多くの単位遅延素子を使用してソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力するように設定し、遅延固定コードDELAY_LOCK_CODE<0:N>の値が減少すれば減少するほど、より少ない個数の単位遅延素子を使用してソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力するように設定することができる。
ところが、遅延ライン324が備える単位遅延素子の個数は、設計者によってあらかじめ設定され得る値であり、設計過程において、1回その値が設定された後は再度変更することが容易ではない。また、単位遅延素子の個数が増加するということは面積の増加を意味するため、あらゆる場合をすべて想定して、単位遅延素子の個数をひたすら増加させることは極めて非効率的である。
そのため、ソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力するときまでに適用可能な、遅延ライン324の限界遅延量が存在する。しかしながら、従来技術と同様に、遅延量が限界値に達した後でもソースクロックREFLCKの位相とフィードバッククロックFBCLKの位相とが同期していない状態になって、遅延固定コードDELAY_LOCK_CODE<0:N>の値が継続的に増加すると、遅延固定動作が正常に終了しないという問題が発生する。
このように、遅延固定動作が正常に終了しなければ、内部データ出力部390においても内部データDATA BUSを外部にDQ DATAとして出力させることができず、半導体メモリ装置の読出し動作が行われないという問題が発生する。
したがって、本発明の第2実施形態に係る遅延ライン324は、遅延量が、ソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力するときまでの限界遅延量に達すると、遅延終了信号DELAY_END_CTRLをロジック「ハイ」に活性化させて出力する。
同時に、内部データ出力部390が、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化することに応答して、内部データDATA BUSを外部にDQ DATAとして出力することによって、遅延固定動作の遂行有無とは無関係に、特定の条件で内部データ出力部390の動作が発生する。
このように、本発明の第2実施形態をレジスタ制御型遅延固定ループ(DLL)回路に適用すれば、遅延固定動作を行なう間に、ソースクロックREFCLKと出力される遅延固定クロックDLLCLKとの間の位相差が最大値に達するか否かを検知した結果に応じて、半導体メモリ装置のコア領域から出力される内部データDATA BUSを外部にDQ DATAとして出力させることによって、レジスタ制御型遅延固定ループ回路の動作の信頼性を向上させることができる。
このとき、本発明の第2実施形態において、遅延ライン324が限界遅延量に達して、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化するが、内部データ出力部390を介して内部データDATA BUSが外部にDQ DATAとして出力されるだけであって、ソースクロックREFCLKの位相とフィードバッククロックFBCLKの位相とが同期した状態ではないため、内部データ出力部390から出力されるデータDQ DATAの位相は、外部クロックCLK、CLK#に完全に同期した状態ではない。それにも拘わらず、本発明の第2実施形態に係る遅延固定動作が効果的な理由については、一般的な遅延固定ループ(DLL)回路の動作を示す図7を用いて以下に説明する。
図7に示すように、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLK(実際には外部クロックCLK、CLK#と、ソースクロックREFCLKの位相において若干の差が存在する)の周波数が、相対的に高い周波数を有する場合(A)と、相対的に低い周波数を有する場合(B)とに区分される。
そのうち、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が、相対的に高い周波数を有する場合(A)について説明すると、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に高いので、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKは相対的に短いことが分かる。
このとき、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジとフィードバッククロックFBCLKの基準エッジとの位相差は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えることができないので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさは、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えないことが分かる。
すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に高い状態では、フィードバッククロックFBCLKを相対的に少し遅延させても遅延固定動作が終了され得るので、遅延固定ループ(DLL)回路の限界遅延量を全て使用しなくても、遅延固定動作が終了され得ることが分かる。
一方、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が、相対的に低い周波数を有する場合(B)について説明すると、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低いので、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKは相対的に長いことが分かる。
このとき、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジとフィードバッククロックFBCLKの基準エッジとの位相差は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えることができないので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさは、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えないことが分かる。
そのため、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKが極めて長いので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさも極めて大きくすべきである。
すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態では、フィードバッククロックFBCLKを相対的に多く遅延させることにより遅延固定動作が終了されるので、遅延固定ループ(DLL)回路の限界遅延量を全て使用しても、遅延固定動作が終了されない場合があることが分かる。
このように、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態では、フィードバッククロックFBCLKの基準エッジ、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジが完全に同期され得ない場合があるが、本発明の第2実施形態に係る遅延固定ループ(DLL)回路では、これを検知して強制的に遅延固定動作を終了させる。このとき、たとえ、遅延固定動作が終了された場合であっても、フィードバッククロックFBCLKの基準エッジ、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジが、大きく差異のない地点までクロックを同期させる動作が進行されていることが分かる。
すなわち、遅延固定ループ(DLL)回路の限界遅延量を全て使用しても遅延固定動作が終了されない状態とは、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態である。これは、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAの出力周波数も相対的に低い状態であることを意味しているので、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAのスキューにおいて若干の差があっても、データDQ DATA値の認識に大きな問題がないことを意味する。
したがって、本発明の第2実施形態に係る遅延固定動作が適用された遅延固定ループ(DLL)回路において、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化して、内部データDATA BUSを外部にDQ DATAとして出力する場合は、外部クロックCLK、CLK#、およびソースクロックREFCLKが相対的に低い周波数を有する状態である。すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKが極めて長いだけであって、遅延固定ループ(DLL)回路の限界遅延量を全て使用した状態でソースクロックREFCLKとフィードバッククロックFBCLKとの間に発生する位相差に対応する長さの程度は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKの長さに対比すれば、極めて短い長さに過ぎないので、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAの値の認識には影響を及ぼさない。
(第3実施形態)
図4は、本発明の第3実施形態に係るレジスタ制御型遅延固定ループ(DLL)回路を示すブロック図である。
同図に示すように、遅延固定信号DELAY_LOCK_CTRLおよび遅延終了信号DELAY_END_CTRLに応答し、外部電源電圧VDDまたは内部電源電圧IN_VDD(外部電源電圧VDDよりも低い電圧レベルを有する)を選択的に供給SEL_VDDする電源電圧選択部410と、電源電圧選択部410を介して供給される電源電圧SEL_VDDを電源として使用し、外部から印加されるクロックCLK、CLK#をバッファするクロックバッファ部480と、電源電圧選択部410を介して供給される電源電圧SEL_VDDを電源として使用し、クロックイネーブル信号CKEに応答してクロックバッファ部480の出力クロックBUF_CLKを駆動してソースクロックREFCLKとして出力するソースクロック駆動部460と、電源電圧選択部410を介して供給される電源電圧SEL_VDDを電源として使用し、ソースクロックREFCLKの位相とフィードバッククロックFBCLKの位相とを比較し、比較結果に対応して遅延固定信号DELAY_LOCK_CTRLを生成する位相比較部400と、電源電圧選択部410を介して供給される電源電圧SEL_VDDを電源として使用し、遅延固定を行なうために、遅延固定信号DELAY_LOCK_CTRLに応答してソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力し、限界遅延量に達することに応答して遅延終了信号DELAY_END_CTRLを生成するクロック遅延部420と、遅延固定クロックDLLCLKにソースクロックREFCLKの実際の出力経路の遅延時間を反映して、フィードバッククロックFBCLKとして出力する遅延複製モデル部440とを備える。
ここで、電源電圧選択部410は、外部電源電圧VDDの電圧レベルを設定された比率で分配し、外部電源電圧VDDの電圧レベルよりも低い電圧レベルを有する内部電源電圧IN_VDDを生成する内部電源電圧生成部412と、遅延固定信号DELAY_LOCK_CTRLおよび遅延終了信号DELAY_END_CTRLに応答し、外部電源電圧VDDおよび内部電源電圧IN_VDDのいずれか一方の電圧を選択してSEL_VDDとして出力する電圧選択部414とを備える。
また、電源電圧選択部410は、クロック遅延部420に備えられた遅延ライン424から出力される遅延終了信号DELAY_END_CTRLがロジック「ロー」に非活性化される場合には、遅延固定信号DELAY_LOCK_CTRLに対応する遅延固定動作が行なわれることに応答して、外部電源電圧VDDを選択電圧SEL_VDDとして出力し、遅延固定信号DELAY_LOCK_CTRLに対応する遅延固定動作が行なわれないことに応答して、内部電源電圧IN_VDDを選択電圧SEL_VDDとして出力する。
すなわち、電源電圧選択部410は、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点が、所定の回数だけ繰り返される間に、遅延固定信号DELAY_LOCK_CTRLが、ロジック「ハイ」またはロジック「ロー」のいずれか一方の論理レベルに固定されて変動しないことに応答して、外部電源電圧VDDを選択電圧SEL_VDDとして出力し、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点が、所定の回数だけ繰り返される間に、遅延固定信号DELAY_LOCK_CTRLが繰り返してロジック「ハイ」の活性化状態またはロジック「ロー」の非活性化状態に遷移することに応答して、内部電源電圧IN_VDDを選択電圧SEL_VDDとして出力する。
また、電源電圧選択部410は、クロック遅延部420に備えられた遅延ライン424から出力される遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化される場合には、遅延固定信号DELAY_LOCK_CTRLに応答する遅延固定動作の遂行有無とは無関係に、内部電源電圧IN_VDDを選択電圧SEL_VDDとして出力する。
また、クロックバッファ部480は、電源電圧選択部410を介して供給される電源電圧SEL_VDDを電源として使用し、外部から印加されるクロックCLK、CLK#をバッファして内部で使用されるクロックBUF_CLKを生成する。
このとき、電源電圧選択部410を介してクロックバッファ部480に供給される電源電圧SEL_VDDは、外部から供給される外部電源電圧VDDまたは電源電圧選択部410内の内部電圧生成部412で生成される内部電源電圧IN_VDDのいずれかであって、クロックバッファ部480では、外部電源電圧VDDが電源として供給されるか、或いは、内部電源電圧IN_VDDが電源として供給されるかに関わらず、同じ動作が行われる。しかし、外部電源電圧VDDの電圧レベルが内部電源電圧IN_VDDの電圧レベルよりも高い電圧レベルを有するので、内部電源電圧IN_VDDを電源として使用したときにバッファされて出力されるクロックBUF_CLKのスイングレベルの幅は、外部電源電圧VDDを電源として使用したときにバッファされて出力されるクロックBUF_CLKのスイングレベルの幅よりも小さくなる。すなわち、外部電源電圧VDDが電源として供給されるときよりも、内部電源電圧IN_VDDが電源として供給されるときの方が、相対的に少ない量の電力が消費される。
また、ソースクロック駆動部460は、電源電圧選択部410を介して供給される電源電圧SEL_VDDを電源として使用し、クロックイネーブル信号CKEが活性化している間は、バッファされたクロックBUF_CLKをソースクロックREFCLKとして出力するが、クロックイネーブル信号CKEが非活性化している間は、バッファされたクロックBUF_CLKをソースクロックREFCLKとして出力しない。すなわち、クロックイネーブル信号CKEが活性化している間は、ソースクロックREFCLKはバッファされたクロックBUF_CLKと同様にトグリングする状態になるが、クロックイネーブル信号CKEが非活性化している間は、バッファされたクロックBUF_CLKのトグリングとは無関係に、ソースクロックREFCLKはトグリングしない。
このとき、電源電圧選択部410を介してソースクロック駆動部460に供給される電源電圧SEL_VDDは、外部から供給される外部電源電圧VDDまたは電源電圧選択部410内の内部電圧生成部412で生成される内部電源電圧IN_VDDのいずれかであって、ソースクロック駆動部460では、外部電源電圧VDDが電源として供給されるか、或いは、内部電源電圧IN_VDDが電源として供給されるかに関わらず、同じ動作が行われる。しかし、外部電源電圧VDDの電圧レベルが内部電源電圧IN_VDDの電圧レベルよりも高い電圧レベルを有するので、内部電源電圧IN_VDDを電源として使用したときに出力されるソースクロックREFCLKのスイングレベルの幅は、外部電源電圧VDDを電源として使用したときに出力されるソースクロックREFCLKのスイングレベルの幅よりも小さくなる。すなわち、外部電源電圧VDDが電源として供給されるときよりも、内部電源電圧IN_VDDが電源として供給されるときの方が、相対的に少ない量の電力が消費される。
なお、クロックイネーブル信号CKEは、半導体メモリ装置の通常動作時には常に活性化した状態を維持し、半導体メモリ装置の電力消費を減少させるためのパワーダウンモードのような特殊な動作モード時には非活性化され得る。
また、位相比較部400は、電源電圧選択部410を介して供給される電源電圧SEL_VDDを電源として使用し、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点において、ソースクロックREFCLKの基準エッジ(一般的には立上りエッジを意味するが、立下りエッジであってもよい)よりもフィードバッククロックFBCLKの基準エッジが後方に位置する場合、遅延固定信号DELAY_LOCK_CTRLを活性化してロジック「ハイ」で出力し、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点において、ソースクロックREFCLKの基準エッジよりもフィードバッククロックFBCLKの基準エッジが前方に位置する場合、遅延固定信号DELAY_LOCK_CTRLを非活性化してロジック「ロー」で出力する。
このとき、電源電圧選択部410を介して位相比較部400に供給される電源電圧SEL_VDDは、外部から供給される外部電源電圧VDDまたは電源電圧選択部410内の内部電圧生成部412で生成される内部電源電圧IN_VDDのいずれかであって、位相比較部400では、外部電源電圧VDDが電源として供給されるか、或いは、内部電源電圧IN_VDDが電源として供給されるかに関わらず、同じ動作が行われる。しかし、外部電源電圧VDDの電圧レベルが内部電源電圧IN_VDDの電圧レベルよりも高い電圧レベルを有するので、外部電源電圧VDDを電源として使用したときは、相対的に速い速度でソースクロックREFCLKとフィードバッククロックFBCLKとの間の位相差を比較し、比較結果に対応して出力される遅延固定信号DELAY_LOCK_CTRLのスイングレベルの幅も相対的に大きくなる。一方、内部電源電圧IN_VDDを電源として使用したときは、相対的に遅い速度でソースクロックREFCLKとフィードバッククロックFBCLKとの間の位相差を比較し、比較結果に対応して出力される遅延固定信号DELAY_LOCK_CTRLのスイングレベルの幅も相対的に小さくなる。すなわち、外部電源電圧VDDが電源として供給されるときよりも、内部電源電圧IN_VDDが電源として供給されるときの方が、相対的に少ない量の電力が消費される。
また、クロック遅延部420は、電源電圧選択部410を介して供給される電源電圧SEL_VDDを電源として使用し、遅延固定信号DELAY_LOCK_CTRLに応答して、複数のビットからなる遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動する遅延制御部422と、電源電圧選択部410を介して供給される電源電圧SEL_VDDを電源として使用し、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量の分だけソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力し、遅延固定コードDELAY_LOCK_CODE<0:N>の値が限界遅延量に対応する値よりも大きい場合、遅延終了信号DELAY_END_CTRLを活性化させる遅延ライン424とを備える。
ここで、クロック遅延部420における構成要素のうち、遅延制御部422は、電源電圧選択部410を介して供給される電源電圧SEL_VDDを電源として使用して遅延固定動作が行なわれている間に、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLに応答して遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動させ、遅延固定動作が終了された後には、アップデート時点および遅延固定信号DELAY_LOCK_CTRLの値とは無関係に、遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動させない。
すなわち、クロック遅延部420における構成要素のうち、遅延制御部422は、電源電圧選択部410を介して供給される電源電圧SEL_VDDを電源として使用して遅延固定動作が行なわれている間に、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLがロジック「ハイ」に活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を増加させ、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLがロジック「ロー」に非活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を減少させる。
このとき、電源電圧選択部410を介して遅延制御部422に供給される電源電圧SEL_VDDは、外部から供給される外部電源電圧VDDまたは電源電圧選択部410内の内部電圧生成部412で生成される内部電源電圧IN_VDDのいずれかであって、遅延制御部422では、外部電源電圧VDDが電源として供給されるか、或いは、内部電源電圧IN_VDDが電源として供給されるかに関わらず、同じ動作が行われる。しかし、外部電源電圧VDDの電圧レベルが内部電源電圧IN_VDDの電圧レベルよりも高い電圧レベルを有するので、外部電源電圧VDDを電源として使用したときは、遅延固定信号DELAY_LOCK_CTRLに応答して遅延固定コードDELAY_LOCK_CODE<0:N>の値を変化させる速度が相対的に速くなる。一方、内部電源電圧IN_VDDを電源として使用したときは、遅延固定信号DELAY_LOCK_CTRLに応答して遅延固定コードDELAY_LOCK_CODE<0:N>の値を変化させる速度が相対的に遅くなる。すなわち、外部電源電圧VDDが電源として供給されるときよりも、内部電源電圧IN_VDDが電源として供給されるときの方が、相対的に少ない量の電力が消費される。
また、クロック遅延部420における構成要素のうち、遅延ライン424は、電源電圧選択部410を介して供給される電源電圧SEL_VDDを電源として使用し、ソースクロックREFCLKを、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量の分だけ遅延させて、遅延固定クロックDLLCLKとして出力する。
このとき、電源電圧選択部410を介して遅延ライン424に供給される電源電圧SEL_VDDは、外部から供給される外部電源電圧VDDまたは電源電圧選択部410内の内部電圧生成部412で生成される内部電源電圧IN_VDDのいずれかであって、遅延ライン424では、外部電源電圧VDDが電源として供給されるか、或いは、内部電源電圧IN_VDDが電源として供給されるかに関わらず、ソースクロックREFCLKを、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量の分だけ遅延させて、遅延固定クロックDLLCLKとして出力する動作が行なわれるよう、遅延ライン424の内部回路が構成される。このとき、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量は、相対的な値であらかじめ設定されている。
例えば、遅延固定コードDELAY_LOCK_CODE<0:N>が4ビットからなる信号であると仮定する。そして、コード値が「0000」であれば、ソースクロックREFCLKを全く遅延せずにそのまま遅延固定クロックDLLCLKとして出力するように設定し、コード値が「0001」、「0010」、「0011」、「0100」、…のように増加すれば、それに対応してソースクロックREFCLKをより遅延させ、遅延固定クロックDLLCLKとして出力するように設定することができる。このとき、遅延固定コードDELAY_LOCK_CODE<0:N>は、遅延固定動作の開始時点であらかじめ設定される初期値を有することができる。一般的に初期値には「0000」のように最も小さい値は選択されず、「0110」のように中間に位置する値が選択される。
また、図面には直接的に示していないが、遅延ライン424は、複数の単位遅延素子を備えるように構成され、遅延固定コードDELAY_LOCK_CODE<0:N>の値が増加すれば増加するほど、より多くの単位遅延素子を使用してソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力するように設定し、遅延固定コードDELAY_LOCK_CODE<0:N>の値が減少すれば減少するほど、より少ない個数の単位遅延素子を使用してソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力するように設定することができる。このとき、各々の単位遅延素子は、外部電源電圧VDDが電源として供給されるか、または内部電源電圧IN_VDDが電源として供給されるかに関わらず、同じ遅延量を有するように設計される。
前述したように、遅延固定ループ(DLL)回路内の構成要素に相対的に高い電圧レベルを有する外部電源電圧VDDを電源として供給すれば、動作速度の側面では有利であるが、相対的に多い量の電力を消費することが分かる。一方、遅延固定ループ(DLL)回路内の構成要素に相対的に低い電圧レベルを有する内部電源電圧VDDを電源として供給すれば、動作速度の側面では不利であるが、相対的に少ない量の電力を消費することが分かる。
したがって、遅延固定ループ(DLL)回路において消費される電力量を最小限に維持するためには、遅延固定動作が最大限に短い時間内で終了するように制御しなければならない。しかしながら、次のような状況では、クロック遅延部420で遅延固定動作が完全に終了されないことにより、遅延固定動作が無限ループに落ち入り、たとえ遅延固定動作が終了するとしても、極めて長い時間が所要されるにつれ、遅延固定動作によって消費される電力の大きさが極めて増加してしまうという問題が発生する。
まず、遅延ライン424が備える単位遅延素子の個数は、設計者によってあらかじめ設定され得る値であり、設計過程において、1回その値が設定された後は再度変更することが容易ではない。また、単位遅延素子の個数が増加するということは面積の増加を意味するため、あらゆる場合をすべて想定して、単位遅延素子の個数をひたすら増加させることは極めて非効率的である。
そのため、ソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力するときまでに適用可能な、遅延ライン424の限界遅延量が存在する。しかしながら、従来技術と同様に、遅延量が限界値に達した後でもソースクロックREFLCKの位相とフィードバッククロックFBCLKの位相とが同期していない状態になって、遅延固定コードDELAY_LOCK_CODE<0:N>の値が継続的に増加すると、遅延固定動作が正常に終了しないという問題が発生する。
したがって、本発明の第3実施形態に係る遅延ライン424では、遅延量が、ソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力するときまでの限界遅延量に達すると、遅延終了信号DELAY_END_CTRLをロジック「ハイ」に活性化させて出力する。
同時に、遅延固定動作制御部450は、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化することに応答して、出力信号DELAY_LOCK_ENDをロジック「ハイ」に活性化させて出力し、遅延制御部422は、遅延固定動作制御部450から出力される信号DELAY_END_CTRLがロジック「ハイ」に活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を固定することによって、遅延固定動作を強制的に終了させることができる。
このように、本発明の第3実施形態をレジスタ制御型遅延固定ループ(DLL)回路に適用すれば、遅延固定動作を行なう間に、ソースクロックREFCLKと出力される遅延固定クロックDLLCLKとの間の位相差が最大値に達するか否かを検知した結果に応じて、レジスタ制御型遅延固定ループ回路に供給される電源電圧の電圧レベルを調整することにより、レジスタ制御型遅延固定ループ回路が遅延固定ループの動作によって消費する電力の大きさを、最小限に維持することができる。
このとき、本発明の第3実施形態において、遅延ライン424が限界遅延量に達して、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化するが、電源電圧選択部410により遅延固定ループ(DLL)回路に供給される電源電圧が外部電源電圧VDDから内部電源電圧IN_VDDに代えられるだけであって、ソースクロックREFCLKの位相とフィードバッククロックFBCLKの位相とが同期した状態ではないため、内部データ出力部490から出力されるデータDQ DATAの位相は、外部クロックCLK、CLK#に完全に同期した状態にはなり得ない。すなわち、遅延固定動作が完全に終了した状態ではない。それにも拘わらず、本発明の第3実施形態によって遅延固定ループ(DLL)回路に外部電源電圧VDDの代わりに内部電源電圧IN_VDDを提供する動作が効果的な理由については、一般的な遅延固定ループ(DLL)回路の動作を示す図7を用いて以下に説明する。
図7に示すように、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLK(実際には外部クロックCLK、CLK#と、ソースクロックREFCLKの位相において若干の差が存在し得る)の周波数が、相対的に高い周波数を有する場合(A)と、相対的に低い周波数を有する場合(B)とに区分される。
そのうち、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が、相対的に高い周波数を有する場合(A)について説明すると、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に高いので、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKは相対的に短いことが分かる。
このとき、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジとフィードバッククロックFBCLKの基準エッジとの位相差は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えることができないので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさは、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えないことが分かる。
すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に高い状態では、フィードバッククロックFBCLKを相対的に少し遅延させても遅延固定動作が終了され得るので、遅延固定ループ(DLL)回路の限界遅延量を全て使用しなくても、遅延固定動作が終了され得ることが分かる。
一方、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が、相対的に低い周波数を有する場合(B)について説明すると、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低いので、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKは相対的に長いことが分かる。
このとき、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジとフィードバッククロックFBCLKの基準エッジとの位相差は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えることができないので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさは、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えないことが分かる。
そのため、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKが極めて長いので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさも極めて大きくすべきである。
すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態では、フィードバッククロックFBCLKを相対的に多く遅延させることにより遅延固定動作が終了されるので、遅延固定ループ(DLL)回路の限界遅延量を全て使用しても、遅延固定動作が終了されない場合があることが分かる。
このように、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態では、フィードバッククロックFBCLKの基準エッジ、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジが完全に同期され得ない場合があるが、本発明の第3実施形態に係る遅延固定ループ(DLL)回路では、これを検知して外部電源電圧VDDの代わりに内部電源電圧IN_VDDを供給することによって、これ以上の遅延固定動作による電力の消費を防止する。このとき、遅延固定動作は完全に終了した状態ではないものの、フィードバッククロックFBCLKの基準エッジ、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジが、大きく差異のない地点までクロックを同期させる動作が進行されていることが分かる。
すなわち、遅延固定ループ(DLL)回路の限界遅延量を全て使用しても遅延固定動作が終了されない状態とは、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態である。これは、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAの出力周波数も相対的に低い状態であることを意味しているので、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAのスキューにおいて若干の差があっても、データDQ DATA値の認識に大きな問題がないことを意味する。
したがって、本発明の第3実施形態に係る遅延固定動作が適用された遅延固定ループ(DLL)回路において、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化して、外部電源電圧VDDの代わりに内部電源電圧IN_VDDを供給する場合は、外部クロックCLK、CLK#、およびソースクロックREFCLKが相対的に低い周波数を有する状態である。すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKが極めて長いだけであって、遅延固定ループ(DLL)回路の限界遅延量を全て使用した状態でソースクロックREFCLKとフィードバッククロックFBCLKとの間に発生する位相差に対応する長さの程度は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKの長さに対比すれば、極めて短い長さに過ぎないので、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAの値の認識には影響を及ぼさない。このとき、本発明の第3実施形態に係る動作により、電力消費は最小限に維持される状態であることが分かる。
(第4実施形態)
図5は、本発明の第4実施形態に係るレジスタ制御型遅延固定ループ(DLL)回路を示すブロック図である。
同図に示すように、外部から印加されるクロックCLK、CLK#をバッファするクロックバッファ部580と、遅延終了信号DELAY_END_CTRLに対応する遅延固定イネーブル区間において、クロックバッファ部580から出力されるクロックBUF_CLK(クロックバッファ部580から出力されるクロックは実質的に外部から印加されるクロックCLK、CLK#と同一であると見なし得る)を駆動してソースクロックREFCLKとして出力し、遅延終了信号DELAY_END_CTRLに対応する遅延固定ディセーブル区間において、クロックバッファ部580から出力されるクロックBUF_CLKを駆動して遅延固定クロックDLLCLKとして出力するクロック駆動部530と、ソースクロックREFCLKの位相とフィードバッククロックFBCLKの位相とを比較し、比較結果に対応して遅延固定信号DELAY_LOCK_CTRLを生成する位相比較部500と、遅延固定を行なうために、遅延固定信号DELAY_LOCK_CTRLに応答してソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力し、限界遅延量に達することに応答して遅延終了信号DELAY_END_CTRLを生成するクロック遅延部520と、遅延固定クロックDLLCLKにソースクロックREFCLKの実際の出力経路の遅延時間を反映して、フィードバッククロックFBCLKとして出力する遅延複製モデル部540とを備える。
ここで、クロックバッファ部580は、外部から印加されるクロックCLK、CLK#をバッファして、内部で使用されるクロックBUF_CLKを生成する。
また、クロック駆動部530は、遅延終了信号DELAY_END_CTRLおよびクロックイネーブル信号CKEに応答し、クロックバッファ部580の出力クロックBUF_CLKを駆動してソースクロックREFCLKとして出力するソースクロック駆動部532と、遅延終了信号DELAY_END_CTRLに応答し、クロックバッファ部580の出力クロックBUF_CLKを駆動して遅延固定クロックDLLCLKとして出力する遅延固定クロック駆動部534とを備える。
ここで、ソースクロック駆動部532は、クロックイネーブル信号CKEがロジック「ハイ」に活性化した状態において、遅延終了信号DELAY_END_CTRLがロジック「ロー」に非活性化することに応答して、クロックバッファ部580の出力クロックBUF_CLKを駆動してソースクロックREFCLKとして出力する。
また、ソースクロック駆動部532は、クロックイネーブル信号CKEがロジック「ハイ」に活性化した状態において、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化することに応答して、クロックバッファ部580の出力クロックBUF_CLKを駆動せずに、ソースクロックREFCLKをトグリングしない。
また、ソースクロック駆動部532は、クロックイネーブル信号CKEがロジック「ロー」に非活性化した状態において、遅延終了信号DELAY_END_CTRLの論理レベルとは無関係にクロックバッファ部580の出力クロックBUF_CLKを駆動せずに、ソースクロックREFCLKをトグリングしない。
すなわち、ソースクロック駆動部532は、クロックイネーブル信号CKEがロジック「ハイ」に活性化した状態では、遅延終了信号DELAY_END_CTRLの論理レベルに応じて、クロックバッファ部580の出力クロックBUF_CLKをソースクロックREFCLKとして出力するか否かについて決定するが、クロックイネーブル信号CKEがロジック「ロー」に非活性化した状態では、遅延終了信号DELAY_END_CTRLの論理レベルとは無関係に、クロックバッファ部580の出力クロックBUF_CLKをソースクロックREFCLKとして出力しないようにすることで、ソースクロックREFCLKをトグリングしないようにする。
なお、クロックイネーブル信号CKEは、半導体メモリ装置の通常動作時には常に活性化した状態を維持し、半導体メモリ装置の電力消費を減少させるためのパワーダウンモードのような特殊な動作モード時には非活性化され得る。
また、遅延固定クロック駆動部534は、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化することに応答して、クロックバッファ部580の出力クロックBUF_CLKを駆動して遅延固定クロックDLLCLKとして出力し、遅延終了信号DELAY_END_CTRLがロジック「ロー」に非活性化することに応答して、クロックバッファ部580の出力クロックBUF_CLKを駆動せずに遅延固定クロックDLLCLKとして出力しない。
ここで、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化するとき、遅延固定クロック駆動部534から出力される遅延固定クロックDLLCLKは、クロックバッファ部580の出力クロックBUF_CLKに比べて所定の時間だけ更に遅延した状態である。所定の時間は、設計者によって任意に設定され得るが、遅延固定ループ(DLL)回路の限界遅延量と同じ遅延量を有することが好ましい。
また、位相比較部500は、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点において、ソースクロックREFCLKの基準エッジ(一般的には立上りエッジを意味するが、立下りエッジであってもよい)よりもフィードバッククロックFBCLKの基準エッジが後方に位置する場合、遅延固定信号DELAY_LOCK_CTRLを活性化してロジック「ハイ」で出力し、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点において、ソースクロックREFCLKの基準エッジよりもフィードバッククロックFBCLKの基準エッジが前方に位置する場合、遅延固定信号DELAY_LOCK_CTRLを非活性化してロジック「ロー」で出力する。
また、クロック遅延部520は、遅延固定信号DELAY_LOCK_CTRLに応答して、複数のビットからなる遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動する遅延制御部522と、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量の分だけソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力し、遅延固定コードDELAY_LOCK_CODE<0:N>の値が限界遅延量に対応する値よりも大きい場合、遅延終了信号DELAY_END_CTRLを活性化させる遅延ライン524とを備える。
ここで、クロック遅延部520における構成要素のうち、遅延制御部522は、遅延固定動作が行なわれている間は、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLに応答して遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動させ、遅延固定動作が終了された後には、アップデート時点および遅延固定信号DELAY_LOCK_CTRLの値とは無関係に、遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動させない。
すなわち、クロック遅延部520における構成要素のうち、遅延制御部522は、遅延固定動作が行なわれている間は、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLがロジック「ハイ」に活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を増加させ、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLがロジック「ロー」に非活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を減少させる。
また、クロック遅延部520における構成要素のうち、遅延ライン524は、ソースクロックREFCLKを、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量の分だけ遅延させて、遅延固定クロックDLLCLKとして出力する。このとき、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量は、相対的な値であらかじめ設定されている。
例えば、遅延固定コードDELAY_LOCK_CODE<0:N>が4ビットからなる信号であると仮定する。そして、コード値が「0000」であれば、ソースクロックREFCLKを全く遅延せずにそのまま遅延固定クロックDLLCLKとして出力するように設定し、コード値が「0001」、「0010」、「0011」、「0100」、…のように増加すれば、それに対応してソースクロックREFCLKをより遅延させ、遅延固定クロックDLLCLKとして出力するように設定することができる。このとき、遅延固定コードDELAY_LOCK_CODE<0:N>は、遅延固定動作の開始時点であらかじめ設定される初期値を有することができる。一般的に初期値には「0000」のように最も小さい値は選択されず、「0110」のように中間に位置する値が選択される。
また、図面には直接的に示していないが、遅延ライン524は、複数の単位遅延素子を備えるように構成され、遅延固定コードDELAY_LOCK_CODE<0:N>の値が増加すれば増加するほど、より多くの単位遅延素子を使用してソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力するように設定し、遅延固定コードDELAY_LOCK_CODE<0:N>の値が減少すれば減少するほど、より少ない個数の単位遅延素子を使用してソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力するように設定することができる。
ところが、遅延ライン524が備える単位遅延素子の個数は、設計者によってあらかじめ設定され得る値であり、設計過程において、1回その値が設定された後は再度変更することが容易ではない。また、単位遅延素子の個数が増加するということは面積の増加を意味するため、あらゆる場合をすべて想定して、単位遅延素子の個数をひたすら増加させることは極めて非効率的である。
そのため、ソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力するときまでに適用可能な、遅延ライン524の限界遅延量が存在する。しかしながら、従来技術と同様に、遅延量が限界値に達した後でもソースクロックREFLCKの位相とフィードバッククロックFBCLKの位相とが同期していない状態になって、遅延固定コードDELAY_LOCK_CODE<0:N>の値が継続的に増加すると、遅延固定動作が正常に終了しないという問題が発生する。
したがって、本発明の第4実施形態に係る遅延ライン524は、遅延量が、ソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力するときまでの限界遅延量に達すると、遅延終了信号DELAY_END_CTRLをロジック「ハイ」に活性化させて出力する。
同時に、クロック駆動部530では、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化することに応答して、クロックバッファ部580から出力されるクロックBUF_CLKをソースクロックREFCLKとして駆動しないことによって、ソースクロックREFCLKをこれ以上トグリングさせず、同時に、クロックバッファ部580から出力されるクロックBUF_CLKを遅延固定クロックDLLCLKとして直接駆動することによって、遅延量が限界値に達して、遅延固定ループ(DLL)回路において必要としない残りの構成要素(位相比較部500、クロック遅延部520、遅延複製モデル部540)を動作させなくても、正常にトグリングする遅延固定クロックDLLCLKを出力することができる。すなわち、特定の条件でクロックバッファ部580から出力されるクロックBUF_CLKを遅延固定クロックDLLCLKとして直接駆動することによって、不要な遅延固定動作により発生する電力消費を完全に除去することができる。
このように、本発明の第4実施形態をレジスタ制御型遅延固定ループ(DLL)回路に適用すれば、遅延固定動作を行なう間に、ソースクロックREFCLKと出力される遅延固定クロックDLLCLKとの間の位相差が最大値に達するか否かを検知した結果に応じて、レジスタ制御型遅延固定ループ回路の動作をオン/オフ制御することによって、レジスタ制御型遅延固定ループ回路の不要な動作により発生する電力消費を完全に除去することができる。
このとき、本発明の第4実施形態において、遅延ライン524が限界遅延量に達して、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化するが、クロックバッファ部580から出力されるクロックBUF_CLKを遅延固定クロックDLLCLKとして直接駆動するだけであって、出力する遅延固定クロックDLLCLKの位相と外部クロックCLK、CLK#の位相とが同期した状態ではないため、内部データ出力部590から出力されるデータDQ DATAの位相は、外部クロックCLK、CLK#に完全に同期した状態ではない。それにも拘わらず、本発明の第4実施形態に係る遅延固定動作が効果的な理由については、一般的な遅延固定ループ(DLL)回路の動作を示す図7を用いて以下に説明する。
図7に示すように、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLK(実際には外部クロックCLK、CLK#と、ソースクロックREFCLKの位相において若干の差が存在し得る)の周波数が、相対的に高い周波数を有する場合(A)と、相対的に低い周波数を有する場合(B)とに区分される。
そのうち、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が、相対的に高い周波数を有する場合(A)について説明すると、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に高いので、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKは相対的に短いことが分かる。
このとき、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジとフィードバッククロックFBCLKの基準エッジとの位相差は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えることができないので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさは、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えないことが分かる。
すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に高い状態では、フィードバッククロックFBCLKを相対的に少し遅延させても遅延固定動作が終了され得るので、遅延固定ループ(DLL)回路の限界遅延量を全て使用しなくても、遅延固定動作が終了され得ることが分かる。
一方、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が、相対的に低い周波数を有する場合(B)について説明すると、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低いので、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKは相対的に長いことが分かる。
このとき、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジとフィードバッククロックFBCLKの基準エッジとの位相差は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えることができないので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさは、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えないことが分かる。
そのため、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKが極めて長いので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさも極めて大きくすべきである。
すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態では、フィードバッククロックFBCLKを相対的に多く遅延させることにより遅延固定動作が終了されるので、遅延固定ループ(DLL)回路の限界遅延量を全て使用しても、遅延固定動作が終了されない場合があることが分かる。
このように、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態では、フィードバッククロックFBCLKの基準エッジ、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジが完全に同期することができない場合があるが、本発明の第4実施形態に係る遅延固定ループ(DLL)回路では、これを検知してクロックバッファ部580から出力されるクロックBUF_CLKを遅延固定クロックDLLCLKとして直接駆動することによって、遅延固定クロックDLLCLKは、クロックバッファ部580から出力されるクロックBUF_CLKに対比して、遅延固定ループ(DLL)回路の限界遅延量の分だけ遅延した状態で出力される。このとき、フィードバッククロックFBCLKの基準エッジ、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジが、大きく差異のない地点までクロックを同期させる動作が進行されていることが分かり、同様に、外部クロックCLK、CLK#の基準エッジおよび遅延固定クロックDLLCLKの基準エッジが、大きく差異のない地点までクロックを同期させる動作が進行されていることが分かる。
すなわち、遅延固定ループ(DLL)回路の限界遅延量を全て使用しても遅延固定動作が終了されない状態とは、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態である。これは、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAの出力周波数も相対的に低い状態であることを意味しているので、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAのスキューにおいて若干の差があっても、データDQ DATA値の認識に大きな問題がないことを意味する。
したがって、本発明の第4実施形態に係る遅延固定動作が適用された遅延固定ループ(DLL)回路において、遅延終了信号DELAY_END_CTRLがロジック「ハイ」に活性化して、クロックバッファ部580から出力されるクロックBUF_CLKを遅延固定クロックDLLCLKとして直接駆動する動作が発生した場合は、外部クロックCLK、CLK#、およびソースクロックREFCLKが相対的に低い周波数を有する状態である。すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKが極めて長いだけであって、遅延固定ループ(DLL)回路の限界遅延量を全て使用した状態でソースクロックREFCLKとフィードバッククロックFBCLKとの間に発生する位相差に対応する長さの程度は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKの長さに対比すれば、極めて短い長さに過ぎないので、クロック駆動部530によって外部クロックCLK、CLK#を遅延固定ループ(DLL)回路の限界遅延量の分だけ遅延した遅延固定クロックDLLCLKを使用して内部データ出力部590でデータDQ DATAを出力するとしても、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAの値の認識には影響を及ぼさない。
(第5実施形態)
図6は、本発明の第5実施形態に係るレジスタ制御型遅延固定ループ(DLL)回路を示すブロック図である。
同図に示すように、外部から印加されるクロックCLK、CLK#をバッファするクロックバッファ部680と、クロックイネーブル信号CKEに応答し、クロックバッファ部680の出力クロックBUF_CLKを駆動してソースクロックREFCLKとして出力するソースクロック駆動部660と、ソースクロックREFCLKの位相とフィードバッククロックFBCLKの位相とを比較し、比較結果に対応して遅延固定信号DELAY_LOCK_CTRLおよび第1遅延終了信号DELAY_END_1を生成する位相比較部600と、遅延固定を行なうために、遅延固定信号DELAY_LOCK_CTRLに応答してソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力し、限界遅延量に達することに応答して第2遅延終了信号DELAY_END_2を生成するクロック遅延部620と、遅延固定クロックDLLCLKにソースクロックREFCLKの実際の出力経路の遅延時間を反映して、フィードバッククロックFBCLKとして出力する遅延複製モデル部640と、第1遅延終了信号DELAY_END_1および第2遅延終了信号DELAY_END_2に応答して遅延固定動作を終了させる遅延固定動作制御部650とを備える。
ここで、クロックバッファ部680は、外部から印加されるクロックCLK、CLK#をバッファして、内部で使用されるクロックBUF_CLKを生成する。
また、ソースクロック駆動部660は、クロックイネーブル信号CKEが活性化している間は、バッファされたクロックBUF_CLKをソースクロックREFCLKとして出力するが、クロックイネーブル信号CKEが非活性化している間は、バッファされたクロックBUF_CLKをソースクロックREFCLKとして出力しない。すなわち、クロックイネーブル信号CKEが活性化している間は、ソースクロックREFCLKはバッファされたクロックBUF_CLKと同様にトグリングする状態になるが、クロックイネーブル信号CKEが非活性化している間は、バッファされたクロックBUF_CLKのトグリングとは無関係に、ソースクロックREFCLKはトグリングしない。
なお、クロックイネーブル信号CKEは、半導体メモリ装置の通常動作時には常に活性化した状態を維持し、半導体メモリ装置の電力消費を減少させるためのパワーダウンモードのような特殊な動作モード時には非活性化され得る。
また、位相比較部600は、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点において、ソースクロックREFCLKの基準エッジ(一般的には立上りエッジを意味するが、立下りエッジであってもよい)よりもフィードバッククロックFBCLKの基準エッジが後方に位置する場合、遅延固定信号DELAY_LOCK_CTRLを活性化してロジック「ハイ」で出力し、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点において、ソースクロックREFCLKの基準エッジよりもフィードバッククロックFBCLKの基準エッジが前方に位置する場合、遅延固定信号DELAY_LOCK_CTRLを非活性化してロジック「ロー」で出力する。
また、位相比較部600は、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点が、所定の回数だけ繰り返される間に、遅延固定信号DELAY_LOCK_CTRLがロジック「ハイ」の活性化状態とロジック「ロー」の非活性化状態との間を繰り返して遷移するとき、第1遅延終了信号DELAY_END_1をロジック「ハイ」に活性化させる。
また、位相比較部600は、遅延固定動作が行なわれている間に所定の周期で繰り返されるアップデート時点が、所定の回数だけ繰り返される間に、遅延固定信号DELAY_LOCK_CTRLがロジック「ハイ」の活性化状態またはロジック「ロー」の非活性化状態を維持するとき、第1遅延終了信号DELAY_END_1をロジック「ロー」に非活性化させる。
また、遅延固定動作制御部650は、第1遅延終了信号DELAY_END_1および第2遅延終了信号DELAY_END_2のうち、少なくともいずれか一方の信号がロジック「ハイ」に活性化することに応答して、出力するグローバル遅延終了信号GLOBAL_DELAY_ENDをロジック「ハイ」に活性化させることによって、クロック遅延部620の遅延量を固定して、遅延固定動作を終了させる。
すなわち、遅延固定動作制御部650は、第1遅延終了信号DELAY_END_1および第2遅延終了信号DELAY_END_2がすべてロジック「ロー」に非活性化するときにのみ、グローバル遅延終了信号GLOBAL_DELAY_ENDをロジック「ロー」に非活性化することによって、クロック遅延部620の遅延量を変動させて、遅延固定動作を継続的に行なう。
参考までに、図面には直接的に示されていないが、遅延固定動作制御部650の詳細な回路は、第1遅延終了信号DELAY_END_1および第2遅延終了信号DELAY_END_2を受信するノア(NOR)ゲート、およびノアゲートの出力信号を受信し、グローバル遅延終了信号GLOBAL_DELAY_ENDとして出力するインバータを備える。
また、クロック遅延部620は、遅延固定信号DELAY_LOCK_CTRLに応答して、複数のビットからなる遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動し、遅延固定動作制御部650の出力信号GLOBAL_DELAY_ENDに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を固定する遅延制御部622と、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量の分だけソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力し、遅延固定コードDELAY_LOCK_CODE<0:N>の値が限界遅延量に対応する値よりも大きい場合、第2遅延終了信号DELAY_END_2を活性化させる遅延ライン624とを備える。
ここで、クロック遅延部620における構成要素のうち、遅延制御部622は、遅延固定動作が行なわれている間に遅延固定動作制御部650の出力信号GLOBAL_DELAY_ENDがロジック「ロー」に非活性化した状態では、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLに応答して遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動させ、遅延固定動作が行なわれている間に遅延固定動作制御部650の出力信号GLOBAL_DELAY_ENDがロジック「ハイ」に活性化した状態では、アップデート時点および遅延固定信号DELAY_LOCK_CTRLの値とは無関係に、遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動させず、遅延固定動作が終了された後には、アップデート時点および遅延固定信号DELAY_LOCK_CTRLの値とは無関係に、遅延固定コードDELAY_LOCK_CODE<0:N>の値を変動させない。
すなわち、クロック遅延部620における構成要素のうち、遅延制御部622は、遅延固定動作が行なわれている間に遅延固定動作制御部650の出力信号GLOBAL_DELAY_ENDがロジック「ロー」に非活性化した状態では、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLがロジック「ハイ」に活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を増加させ、所定の周期で繰り返されるアップデート時点ごとに、遅延固定信号DELAY_LOCK_CTRLがロジック「ロー」に非活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を減少させる。
また、クロック遅延部620における構成要素のうち、遅延ライン624は、ソースクロックREFCLKを、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量の分だけ遅延させて、遅延固定クロックDLLCLKとして出力する。このとき、遅延固定コードDELAY_LOCK_CODE<0:N>の値に対応する遅延量は、相対的な値であらかじめ設定されている。
例えば、遅延固定コードDELAY_LOCK_CODE<0:N>が4ビットからなる信号であると仮定する。そして、コード値が「0000」であれば、ソースクロックREFCLKを全く遅延せずにそのまま遅延固定クロックDLLCLKとして出力するように設定し、コード値が「0001」、「0010」、「0011」、「0100」、…のように増加すれば、それに対応してソースクロックREFCLKをより遅延させ、遅延固定クロックDLLCLKとして出力するように設定することができる。このとき、遅延固定コードDELAY_LOCK_CODE<0:N>は、遅延固定動作の開始時点であらかじめ設定される初期値を有することができる。一般的に初期値には「0000」のように最も小さい値は選択されず、「0110」のように中間に位置する値が選択される。
また、図面には直接的に示していないが、遅延ライン624は、複数の単位遅延素子を備えるように構成され、遅延固定コードDELAY_LOCK_CODE<0:N>の値が増加すれば増加するほど、より多くの単位遅延素子を使用してソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力するように設定し、遅延固定コードDELAY_LOCK_CODE<0:N>の値が減少すれば減少するほど、より少ない個数の単位遅延素子を使用してソースクロックREFCLKを遅延させて、遅延固定クロックDLLCLKとして出力するように設定することができる。
ところが、遅延ライン624が備える単位遅延素子の個数は、設計者によってあらかじめ設定され得る値であり、設計過程において、1回その値が設定された後は再度変更することが容易ではない。また、単位遅延素子の個数が増加するということは面積の増加を意味するため、あらゆる場合をすべて想定して、単位遅延素子の個数をひたすら増加させることは極めて非効率的である。
そのため、ソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力するときまでに適用可能な、遅延ライン624の限界遅延量が存在する。しかしながら、従来技術と同様に、遅延量が限界に達した後でもソースクロックREFLCKの位相とフィードバッククロックFBCLKの位相とが同期していない状態になって、遅延固定コードDELAY_LOCK_CODE<0:N>の値が継続的に増加すると、遅延固定動作が正常に終了しないという問題が発生する。
したがって、本発明の第5実施形態に係る遅延ライン624は、遅延量が、ソースクロックREFCLKを遅延させて遅延固定クロックDLLCLKとして出力するときまでの限界遅延量に達すると、第2遅延終了信号DELAY_END_2をロジック「ハイ」に活性化させて出力する。
同時に、遅延固定動作制御部650は、第2遅延終了信号DELAY_END_2がロジック「ハイ」に活性化することに応答して、出力信号GLOBAL_DELAY_ENDをロジック「ハイ」に活性化させて出力し、遅延制御部622は、遅延固定動作制御部650の出力信号GLOBAL_DELAY_ENDがロジック「ハイ」に活性化することに応答して、遅延固定コードDELAY_LOCK_CODE<0:N>の値を固定することによって、遅延固定動作を強制的に終了させることができる。
このように、本発明の第5実施形態をレジスタ制御型遅延固定ループ(DLL)回路に適用すれば、遅延固定動作を行なう間に、ソースクロックREFCLKと出力される遅延固定クロックDLLCLKとの間の位相差が最大値に達するか否かを検知した結果に応じて、レジスタ制御型遅延固定ループ回路の遅延固定動作を強制的に終了させることによって、レジスタ制御型遅延固定ループ(DLL)回路が遅延固定動作を無限に繰り返すことを防止することができる。
このとき、本発明の第5実施形態において、遅延ライン624が限界遅延量に達して、遅延固定動作制御部650の出力信号GLOBAL_DELAY_ENDがロジック「ハイ」に活性化するが、遅延固定動作が終了されるだけであって、ソースクロックREFCLKの位相とフィードバッククロックFBCLKの位相とが同期した状態でないため、内部データ出力部690から出力されるデータDQ DATAの位相は、外部クロックCLK、CLK#に完全に同期した状態ではない。それにも拘わらず、本発明の第5実施形態に係る遅延固定動作が効果的な理由については、一般的な遅延固定ループ(DLL)回路の動作を示す図7を用いて以下に説明する。
図7に示すように、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLK(実際には外部クロックCLK、CLK#と、ソースクロックREFCLKの位相において若干の差が存在し得る)の周波数が、相対的に高い周波数を有する場合(A)と、相対的に低い周波数を有する場合(B)とに区分される。
そのうち、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が、相対的に高い周波数を有する場合(A)について説明すると、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に高いので、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKは相対的に短いことが分かる。
このとき、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジとフィードバッククロックFBCLKの基準エッジとの位相差は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えることができないので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさは、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えないことが分かる。
すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に高い状態では、フィードバッククロックFBCLKを相対的に少し遅延させても遅延固定動作が終了され得るので、遅延固定ループ(DLL)回路の限界遅延量を全て使用しなくても、遅延固定動作が終了され得ることが分かる。
一方、遅延固定ループ(DLL)回路に入力される外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が、相対的に低い周波数を有する場合(B)について説明すると、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低いので、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKは相対的に長いことが分かる。
このとき、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジとフィードバッククロックFBCLKの基準エッジとの位相差は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えることができないので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさは、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKを越えないことが分かる。
そのため、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKが極めて長いので、フィードバッククロックFBCLKの基準エッジが外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジと同期するために、フィードバッククロックFBCLKを遅延させる遅延量の大きさも極めて大きくすべきである。
すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態では、フィードバッククロックFBCLKを相対的に多く遅延させることにより遅延固定動作が終了されるので、遅延固定ループ(DLL)回路の限界遅延量を全て使用しても、遅延固定動作が終了されない場合があることが分かる。
このように、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態では、フィードバッククロックFBCLKの基準エッジ、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジが完全に同期することができない場合があるが、本発明の第5実施形態に係る遅延固定ループ(DLL)回路では、これを検知して強制的に遅延固定動作を終了させる。このとき、たとえ、遅延固定動作が終了された場合であっても、フィードバッククロックFBCLKの基準エッジ、外部クロックCLK、CLK#、およびソースクロックREFCLKの基準エッジが、大きく差異のない地点までクロックを同期させる動作が進行されていることが分かる。
すなわち、遅延固定ループ(DLL)回路の限界遅延量を全て使用しても遅延固定動作が終了されない状態とは、外部クロックCLK、CLK#、およびソースクロックREFCLKの周波数が相対的に低い状態である。これは、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAの出力周波数も相対的に低い状態であることを意味しているので、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAのスキューにおいて若干の差があっても、データDQ DATA値の認識に大きな問題がないことを意味する。
したがって、本発明の第5実施形態に係る遅延固定動作が適用された遅延固定ループ(DLL)回路において、第2遅延終了信号DELAY_END_2がロジック「ハイ」に活性化して、遅延固定動作が強制的に終了される場合は、外部クロックCLK、CLK#、およびソースクロックREFCLKが相対的に低い周波数を有する状態である。すなわち、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKが極めて長いだけであって、遅延固定ループ(DLL)回路の限界遅延量を全て使用した状態でソースクロックREFCLKとフィードバッククロックFBCLKとの間に発生する位相差に対応する長さの程度は、外部クロックCLK、CLK#、およびソースクロックREFCLKの一周期TCKの長さに対比すれば、極めて短い長さに過ぎないので、遅延固定ループ(DLL)回路の動作によって出力されるデータDQ DATAの値の認識には影響を及ぼさない。
以上で説明したように、本発明の実施形態を適用すれば、レジスタ制御型遅延固定ループ回路に入力されるソースクロックREFCLKと、出力される遅延固定クロックDLLCLKとの間の位相差が最大値に達するか否かを検知した結果に応じて、レジスタ制御型遅延固定ループ回路の遅延固定動作を強制的に終了することによって、レジスタ制御型遅延固定ループ回路が遅延固定動作を無限に繰り返すことを防止することができる。
また、検知した結果に応じて、レジスタ制御型遅延固定ループ回路に供給される電源電圧の電圧レベルを調整することによって、レジスタ制御型遅延固定ループ回路の遅延固定ループの動作により消費される電力の大きさを最小限に維持することができる。
また、検知した結果に応じて、半導体メモリ装置のコア領域から出力される内部データを外部に駆動させることによって、レジスタ制御型遅延固定ループ回路動作の信頼性を向上させることができる。
また、検知した結果に応じて、レジスタ制御型遅延固定ループ回路の動作をオン/オフ制御することによって、レジスタ制御型遅延固定ループ回路の不要な動作により発生する電力消費を完全に除去することができる。
以上で説明した本発明は、前述した実施形態および添付の図面により限定されるのではなく、本発明の技術的な思想を逸脱しない範囲内で様々な置換、変形、および変更が可能であることは、本発明が属する技術分野における通常の知識を有する者にとって明白である。
例えば、前述した実施形態で例示した論理ゲートおよびトランジスタは、入力される信号の極性に応じて、その位置および種類が異なるように具現され得る。