(57)【特許請求の範囲】
【請求項１】
メモリ物理的レイヤ（ＰＨＹ）ユニット(29)を備え、このユニットは、
第１基準クロックを遅延させ且つその第１基準クロックの遅延量に対応する基準遅延値を与えるように構成されたマスター遅延ロックループ（ＤＬＬ）(32)；及び
受信した構成遅延値に基づいて第２の特定量だけ第２基準クロックを遅延させるように構成されたスレーブＤＬＬ(34)；
を含むものであり、更に、
前記メモリＰＨＹユニットに結合され且つ前記基準遅延値に基づいて構成遅延値を発生するように構成されたインターフェイスユニット(20)であって、前記第２基準クロックの異なる周波数に各々対応する複数のエントリを含む第１のルックアップテーブル(222)を有するコントロールユニット(22)を備え、各エントリは各所定スケーリング値を記憶する、当該インターフェイスユニットと、
前記インターフェイスユニットに結合され且つ前記第２基準クロックの周波数が新たな周波数へ変化するという指示を与えるように構成された電力管理ユニット(15)と、
を備えた集積回路(10)であって、
前記指示を受信するのに応答して、前記インターフェイスユニットは、所定のスケーリング値を使用して前記新たな周波数に対応する新たな構成遅延値を発生し、そしてその新たな構成遅延値を前記メモリＰＨＹユニットに与える、集積回路。
【請求項２】
前記コントロールユニットは、前記基準遅延値を所定値で除算し、そしてその結果を、前記新たな周波数に対応する前記所定のスケーリング値を使用してスケーリングすることにより、前記新たな構成遅延値を計算する、請求項１に記載の集積回路。
【請求項３】
前記コントロールユニットは、前記新たな構成遅延値が書き込まれるのに応答して前記新たな構成遅延値で前記スレーブＤＬＬを更新するコントロールレジスタ(223)を備えた、請求項２に記載の集積回路。
【請求項４】
前記第１のルックアップテーブルはプログラム可能である、請求項１に記載の集積回路。
【請求項５】
前記基準遅延値は、前記第１基準クロックを１クロックサイクル遅延するために前記マスターＤＬＬの遅延線に使用される遅延素子の数に対応する、請求項１に記載の集積回路。
【請求項６】
前記電力管理ユニットは、前記第１基準クロック及び前記第２基準クロックを発生し、そして前記第２基準クロックの周波数を変化させる、請求項１に記載の集積回路。
【請求項７】
前記電力管理ユニットは、前記第２基準クロックの異なる周波数に各々対応する第２の複数のエントリを含む第２のルックアップテーブル(16)を備え、
各エントリは、前記第１のルックアップテーブルと同じ各所定スケーリング値を記憶する、請求項１に記載の集積回路。
【請求項８】
前記インターフェイスユニット及び電力管理ユニットに結合されたメモリコントローラ(18)を更に備え、
前記メモリコントローラは、前記メモリＰＨＹユニットが周波数変化のための準備ができたときに前記電力管理ユニットに通知するために前記電力管理ユニットとのハンドシェークプロトコルに参加する、請求項１に記載の集積回路。
【請求項９】
前記メモリＰＨＹユニットは、メモリ装置に接続するための複数のデータ信号経路を含むメモリ相互接続部(33)を備え、
前記メモリコントローラは、前記電力管理ユニットに通知する前に前記メモリ相互接続部で開始された全てのトランザクションを完了する、請求項８に記載の集積回路。
【請求項１０】
メモリＰＨＹユニット(29)のマスター遅延ロックループ（ＤＬＬ）(32)が第１基準クロックを受け取る処理と、
前記第１基準クロックを遅延させそして前記第１基準クロックの遅延量に対応する基準遅延値を与える処理と、
スレーブＤＬＬ(34)が第２基準クロックを受信する処理と、
受信した構成遅延値に基づいて特定量だけ前記第２基準クロックを遅延させる処理と、  前記基準遅延値に基づいて前記構成遅延値を発生する処理と、
前記第２基準クロックの周波数が新たな周波数へと変化するという指示を受信する処理と、
複数のエントリを有するルックアップテーブル(222)の各エントリ内に、前記第２基準クロックの異なる周波数に対応する各所定のスケーリング値を記憶しておく処理と、
前記指示を受信するのに応答して、所定のスケーリング値を使用して前記新たな周波数に対応する新たな構成遅延値を発生し、そしてその新たな構成遅延値を前記メモリＰＨＹユニットに与える処理と、
を含む方法。
【請求項１１】
前記基準遅延値を所定値で除算し、そしてその結果に、前記新たな周波数に対応する前記所定のスケーリング値を乗算することにより、前記新たな構成遅延値を計算する処理を更に含む、請求項１０に記載の方法。
【請求項１２】
前記新たな構成遅延値を構成レジスタ(223)に書き込んで、前記スレーブＤＬＬを前記新たな構成遅延値で更新する処理を更に含む、請求項１１に記載の方法。
【請求項１３】
前記第２基準クロックの周波数が変化するという指示を受信するのに応答して、メモリコントローラ(18)が電力管理ユニット(15)とハンドシェークを開始する処理を更に含む、請求項１０に記載の方法。
【請求項１４】
前記ルックアップテーブル内の前記所定のスケーリング値をプログラミングする処理を更に含む、請求項１０に記載の方法。
【請求項１５】
前記基準遅延値は、前記第１基準クロックを１クロックサイクル遅延するために前記マスターＤＬＬの遅延線に使用される遅延素子の数に対応する、請求項１０に記載の方法。
【請求項１６】
電力管理ユニット(15)は、前記第１基準クロック及び前記第２基準クロックを発生し、そして前記第２基準クロックの周波数を変化させる、請求項１０に記載の方法。
【請求項１７】
メモリコントローラ(18)は、前記メモリＰＨＹユニットが周波数変化のための準備ができたときに前記電力管理ユニットとのハンドシェークプロトコルに参加しそして前記電力管理ユニットに通知する、請求項１６に記載の方法。
【請求項１８】
前記メモリコントローラは、前記電力管理ユニットに通知する前にメモリ相互接続部で開始された全てのトランザクションを完了する、請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遅延ロックループ（ＤＬＬ）に関するもので、より詳細には、基準クロック周波数の変化中のＤＬＬトレーニングプロトコルに関する。
【背景技術】
【０００２】
多くの形式の装置が遅延ロックループ（ＤＬＬ）を使用している。典型的に、ＤＬＬとは、基準クロック又は他の信号と特定の位相関係を確立して維持しそしてその基準信号の１つ以上の遅延バージョンを与えるように使用される。ＤＬＬが最初に電源オンされたとき、ＤＬＬは、トレーニングモードに入って、基準信号の縁を捕捉しそこにロックする。更に、多くのＤＬＬでは、遅延線が、必要量の遅延を与え、ひいては、意図された用途のための位相オフセットを与えるように設定される。あるＤＬＬでは、遅延線は、特定量の遅延を各々与える多数の遅延素子を含む。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
一般的に、遅延素子の数は、基準信号周波数が同じままである限り変化しない。しかしながら、基準クロック周波数が変化する状況では、従来のＤＬＬは、典型的に、遅延素子の数をロックし及び再構成／再計算して必要な位相遅延を与えるためにトレーニングを実行しなければならない。このプロセスは、時間がかかる。特定の用途によっては、トレーニング時間を受け容れることができない。
【課題を解決するための手段】
【０００４】
周波数変化中の効率的な遅延ロックループ（ＤＬＬ）トレーニングプロトコルのためのメカニズムの種々の実施形態が開示される。１つの実施形態において、集積回路は、マスターＤＬＬ及びスレーブＤＬＬを含むメモリ物理的レイヤ（ＰＨＹ）を備えている。マスターＤＬＬは、第１の基準クロックをある量だけ遅延し、そしてその第１基準クロックの遅延量に対応する基準遅延値を与えるように構成される。スレーブＤＬＬは、第２の基準クロックを、受信した構成遅延値に基づき第２の特定量だけ遅延するように構成される。又、集積回路は、メモリＰＨＹユニットに結合されたインターフェイスユニットも備え、これは、基準遅延値に基づき構成遅延値を発生するように構成される。又、集積回路は、インターフェイスユニットに結合された電力管理ユニットも備え、これは、第２基準クロックの周波数が新たな周波数に変化することの指示を与えるように構成される。その指示を受けるのに応答して、インターフェイスユニットは、所定のスケーリング値を使用してその新たな周波数に対応する新たな構成遅延値を発生し、そしてその新たな構成遅延値をメモリＰＨＹユニットに与えるように構成される。
【図面の簡単な説明】
【０００５】
【図１】ＤＬＬ及びコントロールユニットを有するメモリインターフェイスを備えた集積回路の一実施形態のブロック図である。
【図２】図１に示すメモリインターフェイスの一実施形態の詳細な観点を示すブロック図である。
【図３】図１及び図２に示すメモリインターフェイスの動作の観点を示すフローチャートである。
【図４】図１の集積回路を備えたシステムの一実施形態のブロック図である。
【発明を実施するための形態】
【０００６】
特定の実施形態を添付図面に一例として示して以下に詳細に説明する。しかしながら、添付図面及び詳細な説明は、特定の特徴について１つの実施形態しか述べなくても、請求項を、ここに開示する特定の実施形態に限定するものでないことを理解されたい。逆に、この開示の利益を得る当業者に明らかとなる全ての変更、等効物及び代替え物を包含するものとする。ここに開示する特徴の例は、特に指示のない限り、例示に過ぎず、それに限定されるものではない。
【０００７】
本出願全体にわたって使用される「〜してもよい(may)」という語は、許すという意味（即ち、〜の潜在性があるという意味）で使用されるもので、強制の意味（即ち、〜しなければならないという意味）ではない。同様に、「含む(include)」、「含んでいる(including)」及び「含む(includes)」という語は、含むことを意味するが、それに限定されない。
【０００８】
種々のユニット、回路又は他のコンポーネントは、１つ又は複数のタスクを遂行するように「構成される」ものとして述べる。この点について、「構成される」とは、動作中に１つ又は複数のタスクを遂行する「回路を有する」ことを一般的に意味する構造を広く表現するものである。従って、ユニット／回路／コンポーネントは、そのユニット／回路／コンポーネントが現在オンでなくても、タスクを遂行するように構成することができる。一般的に、「構成される」に対応する構造を形成する回路は、ハードウェア回路を含む。同様に、種々のユニット／回路／コンポーネントは、説明の便宜上、１つ又は複数のタスクを遂行するものとして説明されてもよい。そのような説明は、「構成される」という句を含むものと解釈されねばならない。１つ以上のタスクを遂行するように構成されたユニット／回路／コンポーネントを表現する場合に、そのユニット／回路／コンポーネントに関して３５Ｕ.Ｓ.Ｃ.§１１２、第６節の解釈引用しないことが明確に意図される。
【０００９】
本開示の範囲は、ここに取り上げる問題のいずれか又は全部を軽減するかどうかに関わらず、ここに（明示的又は暗示的に）開示する特徴、又は特徴の組み合わせ、或いはそれを一般化したものを包含する。従って、新規な請求項は、本出願（又はその優先権を主張する出願）の起訴中に、そのような特徴の組み合わせへと組織化されてもよい。特に、請求の範囲を参照すれば、従属請求項からの特徴を独立請求項の特徴と組み合わせてもよいし、又、各独立請求項からの特徴を、単に請求の範囲に列挙された特定の組み合わせではなく適当な仕方で組み合わせてもよい。
【００１０】
図１は、メモリインターフェイスを含む集積回路の１つの実施形態を示すブロック図である。集積回路１０は、処理ユニット１２を備え、これは、電力マネージャー１５及びメモリコントローラ１８に結合される。電力マネージャー１５及びメモリコントローラ１８は、各々、メモリＰＨＹインターフェイス２０にも結合され、これは、次いで、メモリ相互接続部３３を経てメモリユニット３５に結合される。１つの実施形態において、集積回路１０は、システムオンチップ（ＳＯＣ）として考えられる。
【００１１】
種々の実施形態において、処理ユニット１２は、１つ以上のプロセッサコア及び１つ以上のキャッシュメモリ（図示せず）を含む。プロセッサコアは、アプリケーションソフトウェア及びオペレーティングシステム（ＯＳ）ソフトウェアを実行する。ＯＳは、集積回路の種々の特徴及び機能をコントロールする。例えば、システム性能の設定に基づいて、ＯＳ又は他のシステムソフトウェアは、メモリ相互接続部３３を駆動するクロックを含むシステムクロックの周波数を変化させることを要求する。
【００１２】
メモリユニット３５は、任意の形式のメモリを表わす。１つの実施形態において、メモリ装置３５は、図４を参照して以下に述べる装置のダイナミックＲＡＭ（ＤＲＡＭ）ファミリーにおける１つ以上のランダムアクセスメモリ（ＲＡＭ）メモリ装置を代表するものである。従って、メモリ相互接続部３３は、多数のデータ経路、データストローブ経路、アドレス及びコマンド経路を含む（全て図示せず）。
【００１３】
１つの実施形態において、電力マネージャー１５は、集積回路１０のコンポーネントにより使用するためのクロックを与えるように構成される。図示されたように、電力マネージャー１５は、Ｍｅｍ＿Ｃｌｋ及びＭｅｍ＿Ｃｌｋ＿ｆ信号をメモリコントローラ１８及びメモリＰＨＹインターフェイス２０に与えると共に、他のクロック信号をシステムに与える。Ｍｅｍ＿Ｃｌｋ信号は、メモリシステムコアクロックとして使用されそしてメモリコントローラ１８、メモリＰＨＹインターフェイス２０及びメモリユニット３５によって使用される。Ｍｅｍ＿Ｃｌｋ＿ｆ信号は、メモリＰＨＹインターフェイス２０内のＤＬＬユニット３０によりトレーニングクロックとして使用される。
【００１４】
１つの実施形態において、メモリＰＨＹインターフェイス２０は、物理的インターフェイスレイヤ（ＰＨＹ）ユニット２９のためのコントロール及び構成インターフェイスとして働く。図１に示すように、メモリＰＨＹインターフェイス２０は、ＰＨＹ２９に結合されたコントロールユニット２２を備えている。ＰＨＹ２９は、遅延ロックループ（ＤＬＬ）ユニット３０を含む。ＤＬＬユニット３０は、基準クロック（Ｍｅｍ＿Ｃｌｋ＿ｆ）の特定の縁を捕捉してそこにロックするように構成されたマスターＤＬＬ（ＭＤＬＬ）３２と、メモリ相互接続部３３により使用するために第２の基準クロック（例えば、Ｍｅｍ＿Ｃｌｋ）の１つ以上の遅延バージョンを与えるよう構成された１つ以上のスレーブＤＬＬ（ＳＤＬＬ）３４とを含む。より詳細には、１つの実施形態において、ＭＤＬＬ３２は、Ｍｅｍ＿Ｃｌｋ＿ｆにロックし、そしてＭｅｍ＿Ｃｌｋ＿ｆ信号を１つの全クロックサイクルだけ遅延させるためにＭＤＬＬ３２の遅延線が使用する遅延素子の数に対応する遅延値をコントロールユニット２２に与えるように使用される。ＳＤＬＬは、メモリ相互接続部３３に対するクロック動作をコントロールするために使用される。特に、ＳＤＬＬ３４は、メモリ相互接続部３３のクロックウインドウの中心にデータストローブを配置するために使用される位相オフセットを有するクロック信号を与える。１つの具現化において、位相オフセットは、９０°であるが、他の実施形態では、他の位相オフセットが使用されてもよい。ＳＤＬＬ３４の各々は、各ＳＤＬＬ３４の各遅延線に使用される遅延素子の数に対応する遅延値に基づいて特定の位相オフセットを与えるように構成される。
【００１５】
１つの実施形態において、コントロールユニット２２は、ＤＬＬユニット３０の動作をコントロールするように構成される。１つの実施形態において、コントロールユニット２２は、コントロールレジスタ及びルックアップテーブル（両方とも図２に示す）を使用して、ＭＤＬＬ３２のトレーニング及び各ＳＤＬＬ３４の位相遅延の構成のような動作を制御する。１つの実施形態において、コントロールユニット２２は、特定の間隔でＭＤＬＬ３２にトレーニング信号を与える。更に、コントロールユニット２２は、正しい位相オフセットを伴うクロックを発生するためにＳＤＬＬ３４に遅延値を与える。
【００１６】
更に、以下に述べるように、電力マネージャー１５は、システム要求に応答して１つ以上のシステムクロックの周波数を変化させる。電力マネージャー１５は、例えば、プロセッサ１２からの要求に応答して、テーブル１６からメモリコントローラ１８へ周波数変化指示及び周波数情報を与える。周波数変化指示がアサートされたのを検出するのに応答して、メモリコントローラ１８は、新たな周波数への滑らかな移行を保証するために電力マネージャー１５とのハンドシェークを開始する。アサートされた信号とは、アクティブな状態へ移行する信号を指す。より詳細には、信号がアクティブロー信号である場合には、信号レベルが論理的ローレベルであるときにアサートされたとみなす。逆に、信号がアクティブハイ信号である場合には、信号が論理的ハイレベルであるときにアサートされたとみなす。
【００１７】
システムソフトウェア又はＯＳにより周波数変化が要求された場合には、メモリコントローラ１８は、周波数変化の実行を許す前にメモリ相互接続部３３を不作動化することが要求される。より詳細には、システムソフトウェア又はＯＳは、電力マネージャー１５に通知し、次いで、電力マネージャーは、メモリコントローラ１８への周波数変化要求指示をアサートする。ハンドシェークの一部分として、その要求に応答して、メモリコントローラ１８は、全ての進行中(in-flight)メモリトランザクションが完了するまで待機し、例えば、バンクのプリチャージング及びリフレッシュのドレイニングによりメモリユニットを準備する。メモリコントローラ１８は、要求を確認した後にメモリユニット３５への新たなメモリトランザクションをスタートしない。電力マネージャー１５は、周波数を変化させ、そして新たな周波数に対応する周波数選択情報をメモリコントローラ１８に与えることにより、周波数変化を開始する。周波数変化が行われると、電力マネージャー１５は、要求をデアサートし、そしてメモリコントローラ１８は、そのデアサーションを確認する。メモリ相互接続部３３は、周波数変化が完了するまでアイドル状態のままであるから、ＭＤＬＬ３２及びＳＤＬＬ３４が周波数変化中に安定なクロックを与えられるのが迅速であるほど、メモリ相互接続部３３が再び使用できるようになるのも迅速である。
【００１８】
従って、図２及び図３を参照して以下に詳細に述べるように、メモリ相互接続部３３のクロック周波数を変化させるのに要する時間を短縮する努力において、１つの実施形態では、電力マネージャー１５は、変化しない固定周波数のトレーニングクロック信号としてＭｅｍ＿Ｃｌｋ＿ｆ信号を与え、それにより、周波数変化に応答してＭＤＬＬ３２を再トレーニングする必要性を除去する。１つの具現化において、Ｍｅｍ＿Ｃｌｋ＿ｆ信号の周波数は、最も高いメモリクロック周波数にセットされる。更に、コントロールユニット２２は、電力マネージャー１５によりメモリコントローラ１８を通して与えられる周波数選択情報を使用して、ルックアップテーブル（図２に示す）にアクセスし、そしてその中の値を使用して、ＳＤＬＬ３４を保持する必要なく、新たな周波数に対してＳＤＬＬ３４の遅延値を更新することができる。１つの実施形態では、Ｍｅｍ＿Ｃｌｋ＿ｆ信号が固定であるが、他の実施形態では、Ｍｅｍ＿Ｃｌｋ＿ｆ信号が固定周波数のクロック信号ではなく、周波数変化中に変化されることが意図されることに注意されたい。
【００１９】
図２は、図１に示すメモリＰＨＹインターフェイス２０の実施形態の詳細な観点を示すブロック図である。図１に示すコンポーネントに対応するコンポーネントは、明瞭化及び簡単化のために同じ番号が付されている。メモリＰＨＹインターフェイス２０は、コントロールユニット２２を備え、これは、次いで、ルックアップテーブル２２２及びコントロールレジスタ２２３を備えている。又、メモリＰＨＹインターフェイス２０は、ＰＨＹ２９も備え、これは、ＤＬＬユニット３０を備えている。図示されたように、ＤＬＬユニット３０は、ＭＤＬＬ３２及び１つ以上のＳＤＬＬ３４を含む。ＰＨＹ２９は、メモリ相互接続部３３へシグナリングする物理的レイヤを与える。図示されたように、ＳＤＬＬ３４は、データストローブ（例えば、ＤＱＳ）を与えるためにＰＨＹ２９内のロジックにより使用される位相オフセットを有する１つ以上のクロックを発生する。
【００２０】
上述したように、コントロールユニット２２は、メモリコントローラ１８から周波数選択信号を受け取り、そして１つの実施形態では、周波数要求指示を受け取る。周波数選択信号は、メモリコントローラ１８が動作する周波数ドメインを指示する。１つの実施形態では、４つの周波数ドメインがある。４つのドメインは、メモリコントローラ１８及びメモリユニット３５の最大公称周波数に対応するドメイン０；最大周波数のほぼ半分に対応するドメイン１；ドメイン１の周波数のほぼ半分に対応するドメイン２；及びドメイン２の周波数のほぼ半分に対応するドメイン３を含む。１つの具現化において、ドメイン０の周波数は、４００ＭＨｚである。他の実施形態では、他の数の周波数ドメイン及び異なる周波数が使用されてもよいことに注意されたい。
【００２１】
図示したように、ルックアップテーブル２２２は、４つのエントリを含む。各エントリは、周波数ドメインに対応する。従って、ここに示す実施形態では、各エントリは、２つのフィールド、即ちドメインフィールドと、乗数又は「スケーリング値」フィールドとを含む。１つの実施形態において、コントロールユニット２２内のロジックは、周波数選択信号を使用してルックアップテーブル２２２をインデックスする。各エントリの乗数フィールドは、ＳＤＬＬ３４の遅延値を発生するようにコントロールユニット２２により使用される。例えば、メモリコントローラ１８がドメイン０、ひいては、４００ＭＨｚで動作する場合には、乗数は、１×乗数である。コントロールユニット２２は、ＭＤＬＬ３２によって返送されるＭＤＬＬロック値を使用して、正しい位相オフセットを与えそしてストローブ（例えば、ｄｅｌａｙ＿ｓ）をセンタリングするためにＳＤＬＬ３４が使用すべき遅延素子の数を計算する。より詳細には、ＭＤＬＬロック又は「基準」値を特定の数値で除算して、ＭＤＬＬの基本周波数における基本遅延又は基本位相オフセット値を得ることができる。次いで、その基準遅延は、システムが動作する周波数ドメインに対してスケーリングされる。例えば、ドメイン０において９０°オフセットを得るため、コントロールユニット２２は、ＭＤＬＬロック値を４で除算し、次いで、テーブルの乗数を適用する。１×乗数は、コントロールユニット２２が、計算された基本遅延値をそのまま使用するようさせる。しかしながら、メモリコントローラ１８がドメイン１で動作する場合には、周波数が最大値の半分であり、従って、同じ位相オフセットを維持するためには、遅延素子の数を２倍にする必要がある。従って、ドメイン１フィールドにおける乗数は、２×乗数となる。残りのドメインについても同様である。ルックアップテーブル２２２は、システムソフトウェアによりプログラムされる。１つの実施形態において、ルックアップテーブル２２２がプログラムされると、電力マネージャー１６内のテーブル１６も、同じドメイン値でプログラムされ、２つのユニットが互いに同期するようにされる。種々の実施形態において、ルックアップテーブル２２２は、必要に応じて、ＲＡＭ、又はレジスタ、又は任意の形式の記憶装置のようなメモリを使用して具現化されることに注意されたい。
【００２２】
１つの実施形態において、コントロールユニット２２は、コントロールレジスタ２２３内の特定のレジスタに書き込みすることによりＰＨＹ２９の変化に作用を及ぼす。同様に、ＭＤＬＬ３２がトレーニング中にＭｅｍ＿Ｃｌｋ＿ｆ信号にロックしそしてロック値を発生すると、コントロールユニット２２は、その値をサンプルして、１つのコントロールレジスタ２２３内に記憶する。
【００２３】
図３は、  図１及び図２に示すメモリインターフェイスの動作の観点を示すフローチャートである。図１ないし図３を総体的に参照し、図３のブロック３０１で始めると、システム初期化の際に、１つの実施形態ではＯＳであるシステムソフトウェアは、周波数ルックアップテーブル２２２及びテーブル１６を周波数ドメイン値及びそれに対応する乗数値で初期化する。
【００２４】
更に、ＭＤＬＬ３２は、Ｍｅｍ＿Ｃｌｋ＿ｆ信号を捕捉しそれにロックし、そしてＳＤＬＬ３４は、Ｍｅｍ＿Ｃｌｋ信号を受信して遅延させる（ブロック３０３）。より詳細には、ＭＤＬＬ３２がロックすると、ＭＤＬＬ３２は、例えば、コントロールレジスタ２２３を通してコントロールユニット２２へ遅延ロック値を返送する。コントロールユニット２２は、そのロック値をルックアップテーブル２２２の乗数値と組み合わせて使用して、ＳＤＬＬ３４が使用する遅延素子の数を決定する。コントロールユニット２２は、コントロールレジスタ２２３を経てＳＤＬＬ３４に遅延値を送信し、そしてＳＤＬＬ３４は、新たな遅延値を適用して、Ｍｅｍ＿Ｃｌｋ信号を遅延させ、適当な位相オフセットを与える。
【００２５】
１つの実施形態において、メモリユニット３５は、全速度未満で動作する。従って、初期化中に、メモリコントローラ１８及び電力マネージャー１５は、初期化ハンドシェークプロトコルに参加して、メモリコアクロックに対するブート周波数を確立する。初期化シーケンスが完了すると、メモリコントローラ１８は、通常の動作周波数を使用できることを電力マネージャー１５に通知する。
【００２６】
通常の動作中に、メモリシステムは、確立されたメモリコアクロック周波数で動作する（ブロック３０５）。従って、コントロールユニット２２は、コントロールユニット２２により決定される通常のトレーニングインターバルでＭＤＬＬにトレーニング信号を送信するように構成される。しかしながら、上述したように、システム利用度、性能要件、バッテリ電圧、等の種々のパラメータに基づいて、ＯＳは、メモリコアクロック（例えば、Ｍｅｍ＿Ｃｌｋ）の周波数の変化を要求する（ブロック３０７）。ＯＳが周波数変化を要求した場合には、電力マネージャー１５は、周波数変化ハンドシェークを開始するために周波数変化指示をアサートする。ハンドシェーク中に、メモリコントローラ１８は、上述したように、メモリ相互接続部３３を不作動化する（ブロック３０９）。
【００２７】
電力マネージャー１５は、Ｍｅｍ＿Ｃｌｋ信号の周波数を変化させ、そして周波数情報をメモリコントローラ１８に与える（ブロック３１１）。メモリコントローラ１８は、メモリＰＨＹインターフェイス２０に周波数変化を通知し、そして周波数選択情報をコントロールユニット２２に与える（ブロック３１３）。より詳細には、１つの実施形態において、メモリコントローラ１８は、周波数変化要求信号及び周波数ドメインをアサートし、及び／又はアサートされた周波数変化要求信号及び周波数ドメインをメモリＰＨＹインターフェイス２０のコントロールユニット２２に与えることにより、メモリＰＨＹインターフェイス２０とのハンドシェークを開始する。
【００２８】
１つの実施形態において、周波数ドメイン情報の受信に応答して、コントロールユニット２２は、ＳＤＬＬ３４が使用する遅延素子の数を計算し決定するように構成される（ブロック３１５）。上述したように、コントロールユニット２２は、ＭＤＬＬ３２によって与えられるロック値を使用して、基本遅延値（即ち、ドメイン０に使用される遅延値）を計算する。コントロールユニット２２は、次いで、周波数ドメイン情報を使用してルックアップテーブル２２２にアクセスする。コントロールユニット２２は、ルックアップテーブルのエントリに乗数値を適用して、ＳＤＬＬ３４に対する新たな遅延値を計算する。
【００２９】
コントロールユニット２２は、新たな遅延値をＳＤＬＬ３４に与える。１つの実施形態では、コントロールユニット２２は、新たな遅延値をコントロールレジスタ２２３に書き込む（ブロック３１７）。コントロールユニット２２は、メモリコントローラ１８へ確認を返送する。それに応答して、メモリコントローラ１８は、電力マネージャー１５に通知する。動作は、ブロック３０５について述べたように進行する。
【００３０】
図４は、集積回路１０を備えたシステムの一実施形態のブロック図である。システム４００は、１つ以上の周辺装置４０７及びシステムメモリ４０５に結合された図１の集積回路１０の少なくとも１つのインスタンスを備えている。又、システム４００は、１つ以上の供給電圧を集積回路１０に与えると共に１つ以上の供給電圧をメモリ４０５及び／又は周辺装置４０７に与える電源４０１も備えている。ある実施形態では、集積回路１０の２つ以上のインスタンスが含まれてもよい。
【００３１】
周辺装置４０７は、システムの形式に基づいて望ましい回路を含んでもよい。例えば、１つの実施形態において、システム４００は、移動装置（例えば、パーソナルデジタルアシスタント（ＰＤＡ）、スマートホン、等）に含まれ、又、周辺装置４０７は、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ、セルラー、グローバルポジショニングシステム、等の種々の形式のワイヤレス通信のための装置を含む。又、周辺装置４０７は、ＲＡＭ記憶装置、ソリッドステート記憶装置、又はディスク記憶装置も含めて、付加的な記憶装置を含む。周辺装置４０７は、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力装置、マイクロホン、スピーカ、等のユーザインターフェイス装置を含む。他の実施形態では、システム４００は、任意の形式のコンピューティングシステム（例えば、デスクトップパーソナルコンピュータ、ラップトップ、ワークステーション、ネットトップ、等）に含まれる。
【００３２】
システムメモリ４０５は、任意の形式のメモリを含む。例えば、図１を参照して上述したように、システムメモリ４０５は、同期ＤＲＡＭ（ＳＤＲＡＭ）、倍データレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、等）、又はその低電力バージョンのようなＤＲＡＭファミリーである。しかしながら、システムメモリ４０５は、ＳＤＲＡＭ、スタティックＲＡＭ（ＳＲＡＭ）、又は他の形式のＲＡＭ、等で具現化されてもよい。
【００３３】
以上、幾つかの実施形態を詳細に説明したが、当業者であれば、前記開示が完全に理解されれば、多数の変更や修正が明らかとなろう。そのような変更や修正は、全て、特許請求の範囲に包含されるものとする。
【符号の説明】
【００３４】
１０：集積回路
１２：処理ユニット
１５：電力マネージャー
１６：テーブル
１８：メモリコントローラ
２０：メモリＰＨＹインターフェイス
２２：コントロールユニット
２９：物理的インターフェイスレイヤ（ＰＨＹ）ユニット
３０：遅延ロックループ（ＤＬＬ）ユニット
３２：マスターＤＬＬ（ＭＤＬＬ）
３３：メモリ相互接続部
３４：スレーブＤＬＬ（ＳＤＬL）
３５：メモリユニット
４００：システム
４０１：電源
４０５：外部メモリ
４０７：周辺装置
【図１】
0005684918.tif 000002
【図２】
0005684918.tif 000003
【図３】
0005684918.tif 000004
【図４】
0005684918.tif 000005