(57)【要約】【課題】  ＤＲＡＭのアクセスタイムを短くすること。【解決手段】  ダイナミックランダムアクセスメモリ（ＤＲＡＭ）は、遅延ロックループ（ＤＬＬ）５１と、クロックツリー５２と、オフチップドライバ（ＯＣＤ）５３と、位相検出器（ＰＤ）５４と、フィルタ５５とを含む。ＤＬＬ５１は、基準クロックＣＬＫ_Ｒを受信して遅延ラインを更新し、クロックツリー５２を介して較正クロックＣＬＫ_Ｂを出力する。ＰＤ５４は、クロックツリー５２を介して較正クロックＣＬＫ_Ｂを受信し、較正クロックＣＬＫ_Ｂと基準クロックＣＬＫ_Ｒとの位相差を検出する。フィルタ５５は、ＤＬＬ５１を起動して遅延ラインを位相差に応じて更新させる。フィルタ５５は、ＲＥＡＤコマンドが受信されたとき、遅延ラインを更新するＤＬＬ５１の起動回数を増加させることによってＤＲＡＭのアクセスタイムを短くする。【選択図】  図５Ａ
2019185841.tif 000002
【特許請求の範囲】
【請求項１】
ダイナミックランダムアクセスメモリ（ＤＲＡＭ）における遅延ロックループ（ＤＬＬ）を制御するための制御回路であって、
基準クロックを受信して遅延ラインを更新し、クロックツリーを介して較正クロックを出力するＤＬＬと、
前記クロックツリーを介して前記較正クロックを受信し、前記較正クロックと前記基準クロックとの位相差を検出する位相検出器（ＰＤ）と、
前記ＤＬＬを起動して前記遅延ラインを前記位相差に応じて更新させるフィルタと
を備え、前記フィルタは、ＲＥＡＤコマンドが受信されたとき、前記遅延ラインを更新する前記ＤＬＬの起動回数を増加させる、制御回路。
【請求項２】
前記フィルタは、クロックサイクル毎に前記遅延ラインを更新するように前記ＤＬＬを起動する、請求項１に記載の制御回路。
【請求項３】
前記ＤＬＬは、それぞれ同様な伝送経路を有する前記クロックツリーを介して少なくとも１つのオフチップドライバ（ＯＣＤ）に前記較正クロックを送信する、請求項１に記載の制御回路。
【請求項４】
前記ＰＤは判定モジュールを含み、前記ＲＥＡＤコマンドが受信されたことを前記判定モジュールが検出したとき、前記ＰＤが前記フィルタをロックすることで、前記フィルタがディセーブル状態に設定されてクロックサイクル毎に前記遅延ラインを更新するように前記ＤＬＬを起動する、請求項１に記載の制御回路。
【請求項５】
前記ＰＤは、前記ＲＥＡＤコマンドに応じた出力データが準備されたとき、前記ディセーブル状態の前記フィルタをアンロックする、請求項４に記載の制御回路。
【請求項６】
前記フィルタは、前記較正クロックのエッジが前記基準クロックのエッジよりも進んでいることが前記ＰＤによって複数回連続して検出されたとき、または前記基準クロックのエッジよりも遅れていることが前記ＰＤによって複数回連続して検出されたときに前記ＤＬＬを起動して前記遅延ラインを更新させる、請求項５に記載の制御回路。
【請求項７】
前記フィルタは判定モジュールを含み、前記ＲＥＡＤコマンドが受信されたことを前記判定モジュールが検出したとき、前記フィルタがディセーブル状態に設定されてクロックサイクル毎に前記遅延ラインを更新するように前記ＤＬＬを起動する、請求項１に記載の制御回路。
【請求項８】
前記フィルタは、前記ＲＥＡＤコマンドに応じた出力データが準備されたとき、イネーブル状態に設定される、請求項７に記載の制御回路。
【請求項９】
前記フィルタは、前記較正クロックのエッジが前記基準クロックのエッジよりも進んでいることが前記ＰＤによって複数回連続して検出されたとき、または前記基準クロックのエッジよりも遅れていることが前記ＰＤによって複数回連続して検出されたときに前記ＤＬＬを起動して前記遅延ラインを更新させる、請求項８に記載の制御回路。
【請求項１０】
ダイナミックランダムアクセスメモリ（ＤＲＡＭ）における遅延ロックループ（ＤＬＬ）を制御するための制御方法であって、
前記ＤＬＬによって基準クロックを受信すること、
前記ＤＬＬによって遅延ラインを更新すること、
前記ＤＬＬによってクロックツリーを介して較正クロックを出力すること、
前記ＤＬＬによって出力された前記較正クロックを、前記クロックツリーを介して位相検出器（ＰＤ）によって受信すること、
前記ＰＤによって前記較正クロックと前記基準クロックとの位相差を検出すること、
フィルタによって前記ＤＬＬを起動して前記遅延ラインを前記位相差に応じて更新させることであって、前記フィルタは、ＲＥＡＤコマンドが受信されたとき、前記遅延ラインを更新する前記ＤＬＬの起動回数を増加させる、制御方法。
【請求項１１】
前記フィルタは、クロックサイクル毎に前記遅延ラインを更新するように前記ＤＬＬを起動する、請求項１０に記載の制御方法。
【請求項１２】
前記ＤＬＬは、それぞれ同様な伝送経路を有する前記クロックツリーを介して少なくとも１つのオフチップドライバ（ＯＣＤ）に前記較正クロックを送信する、請求項１０に記載の制御方法。
【請求項１３】
前記ＲＥＡＤコマンドが受信されたことを前記ＰＤが検出したとき、前記ＰＤが、前記フィルタをロックすることにより前記フィルタがディセーブル状態に設定されてクロックサイクル毎に前記ＤＬＬを起動する、請求項１０に記載の制御方法。
【請求項１４】
前記ＰＤは、前記ＲＥＡＤコマンドに応じた出力データが準備されたとき、ディセーブル状態の前記フィルタをアンロックする、請求項１２に記載の制御方法。
【請求項１５】
前記フィルタは、前記較正クロックのエッジが前記基準クロックのエッジよりも進んでいることを前記ＰＤが複数回連続して検出したとき、または前記基準クロックのエッジよりも遅れていることを前記ＰＤが複数回連続して検出したときに前記ＤＬＬを起動して前記遅延ラインを更新させる、請求項１３に記載の制御方法。
【請求項１６】
前記ＲＥＡＤコマンドが受信されたことを前記フィルタが検出したとき、前記フィルタがディセーブル状態に設定されてクロックサイクル毎に前記ＤＬＬを起動する、請求項１０に記載の制御方法。
【請求項１７】
前記フィルタは、前記ＲＥＡＤコマンドに応じた出力データが準備されたとき、イネーブル状態に設定される、請求項１２に記載の制御方法。
【請求項１８】
前記フィルタは、前記較正クロックのエッジが前記基準クロックのエッジよりも進んでいることを前記ＰＤが複数回連続して検出したとき、または前記基準クロックのエッジよりも遅れていることを前記ＰＤが複数回連続して検出したときに前記ＤＬＬを起動して前記遅延ラインを更新させる、請求項１３に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）の遅延ロックループ（ＤＬＬ）に関し、特に、データのアクセス中におけるダイナミックランダムアクセスメモリのＤＬＬ制御に関する。
【背景技術】
【０００２】
ＣＰＵの速度が増加し続けるにつれて、メモリの性能がシステムの性能をより制限する要因となっている。メモリ性能を向上させる上で重要なことは、ＤＲＡＭとの間でデータを送信できるスピードを増加させることである。ＲＤＲＡＭ（登録商標）やＤＤＲなどの高速ＤＲＡＭ技術において、ＤＬＬは、基準クロック（入力クロック）と制御信号との位相差を最小化するように設計される回路である。
【０００３】
図１は、ＤＲＡＭのＤＬＬ１０を制御する従来の制御回路を示す。このＤＲＡＭは、ＤＬＬ１０と、クロックツリー１１と、少なくとも１つのオフチップドライバ（ＯＣＤ）１２と、位相検出器（ＰＤ）１３と、フィルタ１４とを含む。ＤＬＬ１０は、基準クロック（ＣＬＫ_Ｒ）を受信してＤＬＬ１０の遅延ラインを更新し、クロックツリー１１を介して少なくとも１つのＯＣＤ１２に較正クロック（ＣＬＫ_Ｂ）を出力する。これにより、ＤＲＡＭは、ＣＬＫ_Ｂに追従してリード（ＲＥＡＤ）動作を実行する。ＯＣＤ１２は、パッド（ＰＡＤ）を介して外部装置にＣＬＫ_Ｂを送信する。ＰＤ１３は、クロックツリー１１を介してＣＬＫ_Ｂを受信して、ＣＬＫ_ＢとＣＬＫ_Ｒとの位相差を検出する。これにより、ＰＤ１３は、ＣＬＫ_ＢのエッジがＣＬＫ_Ｒのエッジに対して進んでいる、遅れている、または同期している旨の情報を取得する。
【０００４】
図２は、ＤＲＡＭがＲＥＡＤコマンドを受信した後のＣＬＫ_ＲとＣＬＫ_ＢとＤＱとの関係を示す図１の制御回路のタイミング図である。ＤＲＡＭは、ＲＥＡＤコマンドを受信した後にＲＥＡＤ動作を開始する。ＤＲＡＭからアクセスされる出力データ（ＤＱ）にジッタが生じることを防止するために、フィルタ１４は、ＣＬＫ_ＢのエッジがＣＬＫ_Ｒのエッジよりも進んでいることが連続して検出されるか、またはＣＬＫ_Ｒのエッジよりも遅れていることが連続して検出された場合に、ＤＬＬ１０のみを起動して遅延ラインを更新する。より具体的には、ＣＬＫ_ＢのエッジがＣＬＫ_Ｒのエッジよりも進んでいることが４回連続して検出されるか、またはＣＬＫ_Ｒのエッジよりも遅れていることが４回連続して検出されることが必要とされる（サイクルＴ１〜Ｔ４）。ＤＲＡＭは、ＣＬＫ_Ｂのリードレイテンシ（ＲＬ、通常は数クロックサイクル）後にＤＱを出力する。ＲＥＡＤ動作中にクロックツリー１１の電圧レベルが徐々に低下することに起因してＣＬＫ_ＢとＣＬＫ_Ｒとの間のスキューが発生すると問題が生じる。しかしながら、ＤＬＬ１０がフィルタ１４によって起動される前にスキューが存在するか、またはより大きくなっている場合もある。その結果、ＤＲＡＭのアクセスタイム（ｔＡＣ）が長くなって、ｔＡＣがＣＬＫ_Ｂの数に等しくなる。この問題を解決するために、クロックツリーの電力バスの幅を増加させたり、クロックツリー電力バスに大きな容量を加えたりすることは解決策となり得るが、ＤＲＡＭの面積も増加し得る。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、本発明は、ＤＲＡＭのＤＬＬを制御するための制御回路および制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、ＤＲＡＭのＤＬＬを制御するための制御回路を提供する。制御回路は、基準クロックを受信して遅延ラインを更新し、クロックツリーを介して較正クロックを出力するＤＬＬと、前記クロックツリーを介して前記較正クロックを受信し、前記較正クロックと前記基準クロックとの位相差を検出するＰＤと、前記ＤＬＬを起動して前記遅延ラインを前記位相差に応じて更新させるフィルタとを備える。前記フィルタは、ＲＥＡＤコマンドが受信されたとき、前記遅延ラインを更新する前記ＤＬＬの起動回数を増加させる。
【０００７】
ＲＥＡＤコマンドが受信されたことをＰＤが検出したとき、フィルタは、遅延ラインを更新するＤＬＬの起動回数を増加させる。出力データの送信準備が整うまで、出力データのジッタが考慮されないため、較正クロックと基準クロックとの間のスキューを効果的に除去することができ、それによってＤＲＡＭのアクセスタイムを短くすることができる。
【０００８】
また、本発明は、ＤＲＡＭのＤＬＬを制御するための制御方法を提供する。方法は、前記ＤＬＬによって基準クロックを受信すること、前記ＤＬＬによって遅延ラインを更新すること、前記ＤＬＬによってクロックツリーを介して較正クロックを出力すること、前記ＤＬＬによって出力された前記較正クロックを、前記クロックツリーを介してＰＤによって受信すること、前記ＰＤによって前記較正クロックと前記基準クロックとの位相差を検出すること、フィルタによって前記ＤＬＬを起動して前記遅延ラインを前記位相差に応じて更新させることを備える。前記フィルタは、ＲＥＡＤコマンドが受信されたとき、前記遅延ラインを更新する前記ＤＬＬの起動回数を増加させる。
【０００９】
本発明は、添付の図面とともに以下の詳細な説明および実施例を読むことによってより完全に理解することができる。
【図面の簡単な説明】
【００１０】
【図１】ＤＲＡＭ内におけるＤＬＬを制御するための従来の制御回路を示す図。
【図２】ＤＲＡＭがＲＥＡＤコマンドを受信した後のＣＬＫ_ＲとＣＬＫ_ＢとＤＱとの関係を示す図１の制御回路のタイミング図。
【図３】本発明の例示的の実施形態による判定モジュールを備えたＰＤを示す図。
【図４】図３のＰＤの動作を理解するために有用な波形および出力表を示す図。
【図５Ａ】本発明の例示的の実施形態によるＤＲＡＭ内におけるＤＬＬを制御するための制御回路を示す図。
【図５Ｂ】本発明の例示的の実施形態によるＤＲＡＭ内におけるＤＬＬ５１を制御するための別の制御回路を示す図。
【図６】ＤＲＡＭがＲＥＡＤコマンドを受信した後のＣＬＫ_ＲとＣＬＫ_ＢとＤＱとの関係を示す図５の制御回路のタイミング図。
【図７】本発明の例示的な実施形態によるＤＲＡＭ内におけるＤＬＬを制御するための制御方法のフローチャート。
【発明を実施するための形態】
【００１１】
本明細書は、本発明の一般的原理を事例するためのものであり、限定的な意味で解釈されるべきではない。
本発明は、リード（ＲＥＡＤ）コマンドが受信された後であって出力データ（ＤＱ）が準備される前に遅延ラインを更新するＤＬＬの起動回数を増加させるための制御回路および方法を提供する。
【００１２】
図３は、本発明の例示的の実施形態による位相検出器（ＰＤ）を示し、図４は、図３のＰＤの動作を理解するために有用な波形および出力表を示す。ＰＤは、基準クロック（ＣＬＫ_Ｒ）のエッジと較正クロック（ＣＬＫ_Ｂ）との関係を検出し、ＣＬＫ_ＢのエッジがＣＬＫ_Ｒのエッジに対して進んでいる、遅れている、または同期している旨の情報を取得することができる。そして、本発明では、この情報に基づいて、フィルタがＤＬＬを起動し、ＣＬＫ_ＢのエッジとＣＬＫ_Ｒのエッジとの関係に応じて遅延ラインを更新する。本発明はさらに、ＲＥＡＤコマンドが受信されたかどうか、およびＤＱがすでに準備されたかどうかを検出して、フィルタをロックまたはアンロックするための信号を生成する機能を含む。
【００１３】
図３は、ＰＤの回路図を限定することを意図していない。当業者であれば、真理値表の機能を達成可能な任意の回路図が本発明の範囲内に含まれることを理解し得る。
本発明の一実施形態において、ＰＤは判定モジュールを含む。ＲＥＡＤコマンドが受信されたことを判定モジュールが検出したとき、ＰＤはフィルタをロックしてディセーブル状態に設定することで、フィルタは遅延ラインを更新するＤＬＬの起動回数を増加させる。本発明の一実施形態において、フィルタは、クロックサイクル毎にＤＬＬを起動する。そして、ＰＤは、ＲＥＡＤコマンドに応じた出力データが準備されると、ディセーブル状態のフィルタをアンロックする。
【００１４】
図５Ａは、本発明の例示的な実施形態によるＤＲＡＭ内のＤＬＬ５１を制御するための制御回路である。このＤＲＡＭは、ＤＬＬ５１、クロックツリー５２、ＯＣＤ５３、ＰＤ５４、およびフィルタ５５を含む。ＤＬＬ５１は、遅延デバイスからなる遅延ラインを含む。この遅延ラインの遅延デバイスの電圧、ＲＣ値、または遅延デバイスの数を更新することによって、ＤＬＬ５１の追加遅延時間を調整することができる。ＤＬＬ５１は、ＣＬＫ_Ｒを受信し、ＤＬＬ５１の遅延ラインを更新することで、ＣＬＫ_Ｒと同期したＣＬＫ_Ｂをクロックツリー５２を介して出力する。このようにして、メモリのアクセスを制御するために使用されるＤＲＡＭの制御信号をＣＬＫ_Ｒに同期させることができる。本発明の一実施形態では、ＤＬＬ５１は、それぞれ同様な伝送経路を有する（したがって、各伝送経路が同様なＲＣ遅延時間を有する）クロックツリー５２を介して少なくとも１つのオフチップドライバ（ＯＣＤ）５３にＣＬＫ_Ｂを送信する。
【００１５】
ＰＤ５４は、クロックツリー５２を介してＣＬＫ_Ｂを受信し、ＣＬＫ_ＲとＣＬＫ_Ｂとの位相差を検出して、ＣＬＫ_ＲとＣＬＫ_Ｂとの間のスキューが存在するかどうか、さらにはＲＥＡＤコマンドがＤＬＬ５１によって受信されたかどうかについての情報を出力する。本発明の一実施形態において、ＰＤ５４はさらに判定モジュール５４ａを含む。ＤＲＡＭは、ＲＥＡＤコマンドがＤＲＡＭによって受信されたこと、およびＤＱがＤＲＡＭによって準備されたことを判定モジュール５４ａに通知するために、ＲＥＡＤコマンド受信信号（ＲＥＡＤｃｏｍｍａｎｄ_Ｓ）およびＤＱ準備信号（ＤＱｒｅａｄｙ_Ｓ）を判定モジュール５４ａに送信する。
【００１６】
判定モジュール５４ａがＲＥＡＤｃｏｍｍａｎｄ_Ｓを受信する前には、フィルタ５５はイネーブル状態に設定されており、フィルタ５５は、ＤＬＬ５１を起動して遅延ラインを位相差に応じて更新させる。例えば、較正クロックのエッジが基準クロックのエッジよりも進んでいることがＰＤ５４によって複数回（例えば、４回）連続して検出されるか、または基準クロックのエッジよりも遅れていることが複数回（例えば、４回）連続して検出された場合に、フィルタ５５は、ＤＬＬ５１を起動して遅延ラインを更新させる。判定モジュール５４ａがＲＥＡＤｃｏｍｍａｎｄ_Ｓを検出すると、ＰＤ５４は、フィルタ５５をロックしてディセーブル状態に設定することで、フィルタ５５はクロックサイクル毎または数クロックサイクル毎に遅延ラインを更新するようにＤＬＬ５１を起動する。そして、判定モジュール５４ａがＤＱｒｅａｄｙ_Ｓを検出すると、ＰＤ５４は、ディセーブル状態のフィルタ５５をアンロックし、これにより、フィルタ５５がイネーブル状態の設定に戻される。
【００１７】
図５Ｂは、本発明の例示的な実施形態によるＤＲＡＭ内のＤＬＬ５１を制御するための別の制御回路であり、フィルタ５５がさらに判定モジュール５５ａを含む。ＤＲＡＭは、ＲＥＡＤコマンドが受信されたこと、およびＤＱが準備されたことを判定モジュール５５ａに通知するために、ＲＥＡＤコマンド受信信号（ＲＥＡＤｃｏｍｍａｎｄ_Ｓ）およびＤＱ準備信号（ＤＱｒｅａｄｙ_Ｓ）を判定モジュール５５ａに送信する。
【００１８】
判定モジュール５５ａがＲＥＡＤｃｏｍｍａｎｄ_Ｓを受信する前には、フィルタ５５はイネーブル状態に設定されており、フィルタ５５は、ＤＬＬ５１を起動して遅延ラインを位相差に応じて更新させる。例えば、較正クロックのエッジが基準クロックのエッジよりも進んでいることがＰＤ５４によって複数回（例えば、４回）連続して検出されるか、または基準クロックのエッジよりも遅れていることが複数回（例えば、４回）連続して検出された場合に、フィルタ５５は、ＤＬＬ５１を起動して遅延ラインを更新させる。判定モジュール５５ａがＲＥＡＤｃｏｍｍａｎｄ_Ｓを検出すると、フィルタ５５がロックされてディセーブル状態に設定され、フィルタ５５はクロックサイクル毎または数クロックサイクル毎に遅延ラインを更新するようにＤＬＬ５１を起動する。そして、判定モジュール５５ａがＤＱｒｅａｄｙ_Ｓを検出すると、ディセーブル状態のフィルタ５５がアンロックされ、これにより、フィルタ５５がイネーブル状態の設定に戻される。
【００１９】
図６は、ＤＲＡＭがＲＥＡＤコマンドを受信した後のＣＬＫ_ＲとＣＬＫ_ＢとＤＱとの関係を示す図５の制御回路のタイミング図である。また、図７は、本発明の例示的な実施形態によるＤＲＡＭ内のＤＬＬ５１を制御するための制御方法のフローチャートである。図６および図７を同時に参照することによって、本発明のＲＥＡＤ動作を容易に理解することができる。
【００２０】
最初にフィルタ５５はイネーブル状態に設定されており、ＣＬＫ_ＢのエッジがＣＬＫ_Ｒのエッジよりも進んでいることがＰＤ５４によって４回連続して検出されるか、またはＣＬＫ_Ｒのエッジよりも遅れていることがＰＤ５４によって４回連続して検出される（図７のステップ７０１）。ＤＬＬ５１が遅延ラインを更新すると、ＣＬＫ_Ｂは、ＣＬＫ_Ｒと同期するようになる（白矢印で示される）。判定モジュール５４ａまたは５５ａがＲＥＡＤｃｏｍｍａｎｄ_Ｓを検出すると（図６のサイクルＴ０および図７のステップ７０２）、フィルタ５５はディセーブル状態に設定され、遅延ラインを更新するＤＬＬ５１の起動回数を増加させる。好ましくは、フィルタ５５は、クロックサイクル毎に遅延ラインを更新するようにＤＬＬ５１を起動し（図６のサイクルＴ０〜Ｔ３および図７のステップ７０３）、これによりＤＲＡＭのアクセスタイム（ｔＡＣ）を最小化する。
【００２１】
そして、判定モジュール５４ａまたは５５ａがＤＱｒｅａｄｙ_Ｓを検出すると、フィルタ５５はイネーブル状態に設定される（図６のサイクルＴ４および図７のステップ７０４）。その結果、フィルタ５５は、較正クロックのエッジが基準クロックのエッジよりも進んでいることがＰＤ５４によって４回連続して検出されたとき、または基準クロックのエッジよりも遅れていることがＰＤ５４によって４回連続して検出されたときに、ＤＬＬ５１を起動して遅延ラインを更新するように戻される（図６のサイクルＴ５〜Ｔ９および図７のステップ７０１）。
【００２２】
本発明をその例示的な実施形態と併せて説明したが、当業者であれば、本発明の範囲内で多くの変形や変更が意図されることを認識し得る。従って、上記説明は、本発明の範囲を制御するものではない。
【図１】
2019185841.tif 000003
【図２】
2019185841.tif 000004
【図３】
2019185841.tif 000005
【図４】
2019185841.tif 000006
【図５Ａ】
2019185841.tif 000007
【図５Ｂ】
2019185841.tif 000008
【図６】
2019185841.tif 000009
【図７】
2019185841.tif 000010