(57)【要約】【課題】集積回路において、電源電圧の変化に応答してクロック周波数を迅速に変化させる。【解決手段】周波数合成、及び、位相がずれた合成信号のディジタル的選択を用いて周波数を変化させることに関連したシステム、方法、媒体、及び他の実施形態が開示される。１つの例示的なシステムの実施形態100は、基準クロック信号120を受信し、基準クロック信号120を処理して異なる位相を有する信号にし、及び、それらの信号を選択ロジック130で利用可能にすることができる同期ループロジック110（例えば、位相同期、遅延同期）を備える。例示的なシステム100は、また、選択ロジック130によって提供された出力信号の選択及び追跡を容易にする、周波数除数を格納する状態ロジック140を備えることができる。例示的なシステム100は、また、出力信号を計算し、記述し、及び／または、選択することに関連する出力信号の位相データを格納する位相ロジック160を備えることができる。【選択図】図１
2005323356.tif 000002
【特許請求の範囲】
【請求項１】
システム（１００）であって、
受信された基準信号（１２０）を処理して、互いに固有の位相を有する１組のＮ個の信号を生成し、該１組のＮ個の信号を選択ロジック（１３０）に提供するように構成された位相同期ループロジック（１１０）と、
前記選択ロジック（１３０）によって現在の出力信号として選択された第１の信号に関連付けられた第１の周波数除数を記憶し、前記選択ロジック（１３０）によって次の出力信号として選択された第２の信号に関連付けられた第２の周波数除数を記憶するように構成された状態ロジック（１４０）と、
前記現在の出力信号に関連付けられた現在の位相シフトデータを記憶し、少なくとも部分的に、前記第２の周波数除数および前記現在の位相シフトデータに基づいて、前記次の出力信号を選択するための次の位相シフトデータを決定するように構成された位相ロジック（１６０）
とを備え、
前記現在の出力信号から前記次の出力信号への切替えによって前記出力信号の周波数が変更されることからなる、システム。
【請求項２】
前記１組のＮ個の信号の要素である信号（Ｓｎ）は、前記受信された基準信号（１２０）から１サイクルの（ｎ／Ｎ）だけ位相シフトされ、ここで、Ｎおよびｎは整数であり、ｎは０〜（Ｎ−１）の範囲を有することからなる、請求項１に記載のシステム。
【請求項３】
前記基準信号（１２０）の１サイクルのロック時間を有する、請求項１に記載のシステム。
【請求項４】
前記ロック時間は１ナノ秒未満である、請求項３に記載のシステム。
【請求項５】
前記位相ロジック（１６０）は、
位相（ｔ＋１）＝位相（ｔ）＋Ｍ
に従って前記次の位相シフトデータを決定し、ここで、ｔはクロック位相番号であり、位相（ｔ）は現在の出力信号の位相であり、位相（ｔ＋１）は次の出力信号の位相であり、Ｍは前記第２の周波数除数であることからなる、請求項１に記載のシステム。
【請求項６】
前記選択ロジック（１３０）はマルチプレクサであり、前記位相ロジック（１６０）は、前記選択ロジック（１３０）を制御して、
Ｆｏｕｔ＝Ｆｍａｘ＊（Ｎ／（Ｎ＋ｍ））
に対応する周波数を有する出力信号を提供するように構成され、ここで、Ｆｏｕｔは前記選択ロジック（１３０）によって提供される前記現在の出力信号であり、Ｆｍａｘは前記受信された基準信号（１２０）の周波数であり、Ｎは前記基準信号（１２０）が分割された信号の数であり、ｍは前記第１の周波数除数であり、ｍは０〜（Ｎ−１）の範囲の整数であることからなる、請求項５に記載のシステム。
【請求項７】
方法（３００）であって、
第１のクロック信号を受信するステップ（３１０）と、
前記第１のクロック信号を処理して、互いに固有の位相を有する分割された信号を生成することにより、前記第１のクロック信号から１組のＮ個（Ｎは整数）の第２の信号を生成するステップ（３２０）と、
出力クロック信号として提供するために前記Ｎ個の第２の信号のうちの１つを選択するステップ（３３０）と、
前記第１のクロック信号の１サイクル以下の時間内に、前記１組のＮ個の第２の信号の要素から得られる第１の出力クロック信号を提供することから、前記１組のＮ個の第２の信号から得られる第２の出力クロック信号を提供することに変更するように、クロック出力信号ロジックをディジタル制御するステップ（３４０）
を含み、
前記第１の出力クロック信号から前記第２の出力クロック信号に変更することにより、提供される出力クロック信号の周波数が変更されることからなる、方法。
【請求項８】
前記１組のＮ個の第２の信号の要素である信号（Ｓｎ）は、前記第１のクロック信号の位相から１サイクルの（ｎ／Ｎ）だけ位相シフトされ、ここで、ｎは０〜（Ｎ−１）の範囲の整数である、請求項７に記載の方法。
【請求項９】
前記提供される出力クロック信号の位相は、
位相（ｔ＋１）＝位相（ｔ）＋Ｍ
によって決定され、ここで、ｔは現在の提供された出力クロック信号の位相番号であり、位相（ｔ）は現在の提供された出力クロック信号の信号位相であり、位相（ｔ＋１）は次に提供される出力クロック信号の信号位相であり、Ｍは周波数除数であって０〜（Ｎ−１）の範囲の整数であることからなる、請求項７に記載の方法。
【請求項１０】
前記出力クロック信号は、
Ｆｏｕｔ＝Ｆｍａｘ＊（Ｎ／（Ｎ＋ｍ））
に対応する周波数を有する前記出力クロック信号を提供するように制御されるマルチプレクサによって提供され、ここで、Ｆｏｕｔは前記マルチプレクサによって提供される前記出力クロック信号の周波数であり、Ｆｍａｘは前記第１のクロック信号の周波数であり、Ｎは前記第１のクロック信号が分割された信号の数であり、ｍは周波数除数であって０〜（Ｎ−１）の範囲の整数であることからなる、請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路のクロック周波数の制御に関する。
【背景技術】
【０００２】
ＣＭＯＳ（相補形金属酸化膜半導体）回路の電力は以下の式によって表すことができる。
Ｐ＝ｃ×ｖ２×ｆ                                                        （１）
ここで、Ｐは電力であり、ｃはスイッチングキャパシタンスであり、ｖは供給電圧であり、ｆはスイッチング周波数である。消費電力は従来の回路を設計する際に評価される１つの設計基準であり、供給電圧を変更することにより、消費電力が２次関数的な影響を受けるので、電力を節約しようとする際に、しばしば回路において供給電圧が操作される。たとえば、プロセッサが「スリープ」あるいは「スタンバイ」モードに入るときに、供給電圧を下げることができる。しかしながら、ＣＭＯＳのスイッチング周波数は通常、供給電圧に正比例する。したがって、供給電圧が変化すると、スイッチング周波数も変化する。たとえば、供給電圧が減少するとき、スイッチング周波数も減少することになる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
時間とともにチップに印加される最小電圧に関連付けられた周波数よりも高い平均チップ周波数を達成するために、供給電圧が操作されるときに（たとえば、チップがパワーセーブモードに移行するときに）、生成された電圧降下に応答して、サイクルタイムを迅速に適合させる（たとえば短縮する）必要がある。位相同期ループ（ＰＬＬ）および遅延同期ループ（ＤＬＬ）のような従来のクロック発生器は、たとえば、ロック時間の遅れに起因して、サイクルタイムを満足に適合させることができない。一例では、典型的なＰＬＬの出力周波数が変化するとき、ＰＬＬがロックするために比較的長い（たとえばミリ秒台）待機時間が生じる。さらに、処理、電圧および温度変化に起因して、ＰＬＬロック時間は予測不可能な場合もある。別の例では、チップ供給電圧（またはチップの電源電圧）で動作している開ループ電圧制御発振器（ＶＣＯ）は、その周波数を電圧変化に迅速に適合させることができる。しかしながら、その周波数は、チップの挙動が概ね同じである場合であっても、部品が異なると予測不可能である。
【課題を解決するための手段】
【０００４】
本発明の１実施形態におけるシステムは、受信された基準信号を処理して、互いに固有の位相を有する１組のＮ個の信号を生成し、その１組のＮ個の信号を選択ロジックに提供するように構成された位相同期ループロジックと、選択ロジックによって現在の出力信号として選択された第１の信号に関連付けられた第１の周波数除数を記憶し、選択ロジックによって次の出力信号として選択された第２の信号に関連付けられた第２の周波数除数を記憶するように構成された状態ロジックと、現在の出力信号に関連付けられた現在の位相シフトデータを記憶し、少なくとも部分的に、第２の周波数除数および現在の位相シフトデータに基づいて、次の出力信号を選択するための次の位相シフトデータを決定するように構成された位相ロジックとを備える。この場合において、現在の出力信号から次の出力信号への切替えによって出力信号の周波数が変更される。
【実施例】
【０００５】
添付の図面は、本明細書に援用され、かつその一部を構成しており、本発明の局面の種々の例示的な実施形態を示す、種々の例示的なシステム、方法などを示している。図面に示される構成要素の境界（たとえば、四角で囲まれた部分、それらの部分をまとめて囲んだ部分、あるいは他の形状で囲んだ部分）は境界の一例を表していることが理解されよう。１つの構成要素を複数の構成要素として構成することができること、または複数の構成要素を１つの構成要素として構成することができることは、当業者には理解されよう。別の構成要素の内部構成要素として示される構成要素を、外部構成要素として実施することも、その逆のやり方で実施することもできる。さらに、構成要素は一定の縮尺では描かれていない場合もある。
【０００６】
以下では、本明細書において用いられる、選択された用語の定義を行う。それらの定義は、ある用語の範囲内に入り、実施するために用いることができる構成要素の種々の例および／または形態を含む。そのような例は限定することを意図していない。それらの用語の単数形および複数形のいずれも、その定義の範囲内に含めることができる。
【０００７】
本明細書において用いられる「コンピュータ読取り可能媒体」という用語は、信号、命令および／またはデータを直接的にあるいは間接的に供給することに関与する媒体を指している。コンピュータ読取り可能媒体は不揮発性媒体、揮発性媒体および伝送媒体（但し、これらに限定するわけではない）を含む、いくつかの形態をとることができる。不揮発性媒体は、たとえば、光ディスクまたは磁気ディスクなどを含むことができる。揮発性媒体は、たとえば、光ディスクまたは磁気ディスク、ダイナミックメモリなどを含むことができる。伝送媒体は、同軸ケーブル、銅線、光ファイバケーブルなどを含むことができる。伝送媒体は、たとえば電波および赤外線データ通信において生成される電磁放射の形態をとることも、または、１つまたは複数の信号群の形態をとることもできる。コンピュータ読取り可能媒体の一般的な形態は、フロッピィディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、ＣＤ−ＲＯＭ、他の光媒体、パンチカード、紙テープ、穴のパターンを有する他の物理媒体、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭあるいは他のメモリチップまたはカード、メモリスティック、搬送波／パルス、ならびにコンピュータ、プロセッサあるいは他の電子デバイスが読み出すことができる他の媒体（但し、これらに限定するわけではない）を含む。インターネットのようなネットワーク上で、命令あるいは他のソフトウエアを伝搬するために用いられる信号も「コンピュータ読取り可能媒体」と見なすことができる。
【０００８】
本明細書において用いられる「データ記憶手段」という用語は、データを記憶することができる物理的および／または論理的な実体を指している。データ記憶手段には、たとえば、データベース、テーブル、ファイル、リスト、キュー、ヒープ、メモリ、レジスタなどを用いることができる。データ記憶手段は、１つの論理的および／または物理的な実体内に存在することができ、かつ／または２つ以上の論理的および／または物理的な実体間に分散されることができる。
【０００９】
本明細書において用いられる「ロジック」という用語は、１つまたは複数の機能または１つあるいは複数の動作を実行し、および／または、別のロジック、方法、および／またはシステムから機能または動作をもたらすためのハードウエア、ファームウエア、ソフトウエアおよび／またはそれぞれの組み合わせ（但し、これらに限定するわけではない）を含む。たとえば、所望の用途または要件に基づいて、ロジックはソフトウエア制御式のマイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）のような個別のロジック、プログラミングされた論理デバイス、命令を含むメモリデバイスなどを含むことができる。ロジックは１つまたは複数のゲート、ゲートの組み合わせ、または他の回路部品を含むことができる。ロジックをソフトウエアとして完全に具現化することもできる。複数の論理的なロジックが記載される場合に、複数の論理的なロジックを合わせて、１つの物理的なロジックにすることができる場合もある。同様に、単一の論理的なロジックが記載される場合に、その単一の論理的なロジックを複数の物理的なロジック間に分散することができる場合もある。
【００１０】
「動作可能な接続」、または、実体を「動作可能に接続する」ところの接続は、信号、物理的な通信および／または論理的な通信を送信および／または受信することができる接続である。通常、動作可能な接続は、物理的なインターフェース、電気的なインターフェースおよび／またはデータインターフェースを含むが、動作可能な接続は、これらのタイプあるいは他のタイプの、動作可能に制御できるようにするのに十分な接続の種々の組み合わせを含むことができることに留意されたい。たとえば、互いに対して直に、あるいはプロセッサ、オペレーティングシステム、ロジック、ソフトウエアあるいは他の実体のような１つまたは複数の中間的な実体を通して、信号を通信できるようにすることにより、２つの実体を動作可能に接続することができる。論理的および／または物理的な通信チャネルを用いて、動作可能な接続を作り出すことができる。
【００１１】
本明細書において用いられる「信号」という用語は、１つまたは複数の電気的あるいは光学的な信号、アナログ信号またはディジタル信号、データ、１つまたは複数のコンピュータまたはプロセッサ命令、メッセージ、ビットまたはビットストリーム、または受信、送信および／または検出されることができる他の手段（但し、これらに限定するわけではない）を含む。
【００１２】
本明細書において用いられる「ユーザ」という用語は、一人または複数の人、ソフトウエア、コンピュータまたは他のデバイス、またはこれらの組み合わせ（但し、これらに限定するわけではない）を含む。
【００１３】
以下に記載する詳細な説明のいくつかの部分は、メモリ内のデータビットに関する演算のアルゴリズムおよび記号による表現という形で与えられる。これらのアルゴリズムの記述および表現は、作業の内容を他の人に伝えるために当業者によって用いられる手段である。アルゴリズムは、本明細書において、そして一般的には、ある結果を生成する一連の動作であると見なされる。その動作は、物理量の物理的な操作を含むことができる。通常、物理量はロジックなどにおいて記憶され、転送され、結合され、比較され、さらに他の方法で操作されることができる電気信号または磁気信号の形態（必ずしもこうではないが）をとる。
【００１４】
主に一般的に使用するために、時には、これらの信号をビット、値、要素、記号、文字、項、数などと呼ぶことが好都合であることがわかっている。しかしながら、これらの用語および類似の用語は適切な物理量に関連付けられるべきであり、これらの量に適用される便宜的なラベルにすぎないことに留意されたい。別のものとして明確に記載していない限り、説明の全体を通して、処理、コンピューティング、計算、判定、表示などの用語は、コンピュータシステム、ロジック、プロセッサ、あるいは物理（電子）量として表されるデータを操作し、かつ変換する類似の電子デバイスの動作およびプロセスを指しているものと理解されたい。
【００１５】
図１は、集積回路に印加される最小電圧に関連付けられた周波数よりも高い、集積回路内の周波数を達成するのを容易にするために、集積回路内の電圧降下に応答するのを容易にするシステム１００を示す。システム１００は位相同期ループ（ＰＬＬ）ロジック１１０を備えることができる。位相同期ループロジック１１０について説明するが、他の同期ループロジック（たとえば遅延同期ループ）を用いることができることを理解されたい。ＰＬＬロジック１１０は、基準クロック１２０から基準信号を受信し、その基準信号を処理して、互いに固有の位相を有する１組のＮ個の信号を生成する。その後、ＰＬＬロジック１１０は、この１組のＮ個の信号を選択ロジック１３０（たとえばＮ：１マルチプレクサ）が利用できるようにする。一例では、ＰＬＬロジック１１０は、同じ基準信号から６４個の同一の位相を作り出すことができる。６４個の同一位相は同じ周波数を有することができるが、互いから基準信号の１サイクルの６４分の１だけ異なる、互いに固有の位相シフトを有することができる。一例では、ＰＬＬロジック１１０は、たとえば位相多重化技法を用いて、６４分の１の増分で基準信号を分割することができる。６４個の位相について説明するが、より一般的には、１組のＮ個の信号の要素である１つの信号Ｓｎは、基準信号から１サイクルの（ｎ／Ｎ）だけ位相シフトされることを理解されたい。ここで、Ｎおよびｎは整数であり、ｎは０〜（Ｎ−１）の範囲を有する。
【００１６】
システム１００は、システム１００に関する状態を追跡するように構成された状態ロジック１４０を備えることもできる。一例では、状態ロジック１４０は周波数除数データを記憶することにより状態を追跡する。たとえば、状態ロジック１４０は、出力信号（たとえば、クロック出力：ＣｌｋＯｕｔ１５０）として提供されることになる、選択ロジック１３０によって選択される第１の信号に関連付けられた第１の周波数除数を記憶することができる。周波数除数は、位相がずれた信号のうちの１つを選択し、ＣｌｋＯｕｔ信号１５０の周波数を効率的に変更するのを容易にすることができる。状態ロジック１４０は、出力信号として提供されることになる、選択ロジック１３０によって選択される次の信号になる第２の信号に関連付けられた第２の周波数除数も記憶することができる。基準クロックから第１の量だけ位相がずれている第１の信号Ｓ１を選択し、その後、基準クロックから第２の異なる量だけ位相がずれている第２の信号Ｓ２を選択することにより、システム１００は、従来のＰＬＬロック時間において生じる遅延を受けることなく、ＣｌｋＯｕｔ信号１５０の周波数を迅速に（たとえば、従来のＰＬＬあるいはＤＬＬ技法を用いた場合に可能な時間よりも速く）変更することができる。一例では、システム１００は、基準信号の１クロックサイクルのロック時間を有することができる。別の例では、システム１００は１マイクロ秒よりも短いロック時間を有することができる。
【００１７】
システム１００は、システム１００に関する状態を追跡するように構成された位相ロジック１６０を備えることもできる。一例では、位相ロジック１６０は位相シフトデータを記憶することにより状態を追跡する。たとえば、位相ロジック１６０は、現在のＣｌｋＯｕｔ信号１５０に関連付けられた現在の位相シフトデータを記憶することができる。さらに、位相ロジック１６０は、次のＣｌｋＯｕｔ信号１５０を選択するのを容易にする位相シフトデータを決定するように構成されることができる。次のＣｌｋＯｕｔ信号１５０を選択するための位相シフトデータは、たとえば、第２の周波数除数および現在の位相シフトデータに基づいたものとすることができる。次のＣｌｋＯｕｔ信号１５０を選択するための位相シフトデータは、ある位相シフトを有する現在の出力信号から、異なる位相シフトを有する次の出力信号に切り替えることにより、ＣｌｋＯｕｔ信号１５０の周波数変化を生じさせるのを容易にすることができる。次の出力信号の位相が現在の出力信号から「遅れる」場合には、その周波数は減少するように見えるであろう。次の出力信号の位相が現在の出力信号より「進む」場合には、周波数は増加するように見えるであろう。ＣｌｋＯｕｔ信号１５０の周波数を増減することができる量を、種々の相対的な位相シフトを有する種々の信号を選択することによって操作することができる。
【００１８】
一例では、位相ロジック１６０は、位相（ｔ＋１）＝位相（ｔ）＋Ｍに基づいて次の位相シフトデータを決定することができる。ここで、ｔはクロック位相番号であり、位相（ｔ）は現在のクロック出力信号位相であり、位相（ｔ＋１）は次のクロック出力信号位相であり、Ｍは第２の周波数除数である。この決定を行う（たとえば状態マシンを実施する）ためのロジックは、ハードウエアで実施されることができ、それは１基準クロックサイクルのスイッチング時間を達成するのを容易にすることは当業者には理解されよう。
【００１９】
選択ロジック１３０には、たとえばマルチプレクサを用いることができる。したがって、位相ロジック１６０は、マルチプレクサを制御して、以下の式によって決定される周波数をクロック出力信号に提供するように構成されることができる。
Ｆｏｕｔ＝Ｆｍａｘ＊（Ｎ／（Ｎ＋ｍ））
ここで、Ｆｏｕｔは選択ロジックによって与えられるクロック信号（ここでは、クロック信号の周波数に対応）であり、Ｆｍａｘは基準クロック信号（ここでは、基準クロック信号の周波数に対応）であり、ＮはＦｍａｘが分割される信号の数であり、ｍは第１の周波数除数であって０〜（Ｎ−１）の範囲の整数である（尚、＊は乗算（×）を意味する）。
【００２０】
一例では、システム１００を、ディジタル位相選択および１サイクル比変更能力を有する周波数シンセサイザとして実施することができる。この実施態様はディジタル分周器と呼ばれる場合もある。
【００２１】
図２は、周波数合成および合成された信号のディジタル選択を用いる、出力信号の周波数変化を作り出すための１つの例示的なシステム２００を示す。システム２００は、システム１００（図１）に関連して説明されたものに類似のＰＬＬロジック２１０、位相ロジック２６０および状態ロジック２４０を備えることができる。上記のように、位相同期ループロジック２１０が記載されるが、他の同期ループロジック（たとえば遅延同期ループ）を用いることもできることを理解されたい。同様に、システム２００は、基準クロック２２０から信号を受信し、選択ロジック２３０と相互作用し、システム１００（図１）に関連して説明されたものに類似のＣｌｋＯｕｔ信号２５０を生成することができる。一例では、システム２００は選択ロジック２３０に６４個の信号を提供することができる。したがって、選択ロジック２３０には、たとえば６４：１マルチプレクサを用いることができる。
【００２２】
さらに、システム２００は、周波数除数制御信号を受信するように構成された制御ロジック２７０を備えることができる。周波数除数制御信号は、周波数除数のための値を設定するのを容易にすることができる。たとえば、周波数除数制御信号は、現在のＣｌｋＯｕｔ信号２５０および次のＣｌｋＯｕｔ信号２５０のための周波数除数信号を設定および／または操作するのを容易にすることができる。一例では、周波数除数制御信号には、周波数除数のための離散的な値（または個別の値）を設定するのを容易にする離散除数信号Ｍ２８０を用いることができる。たとえば、１７という値を信号Ｍ２８０によって入力することができ、それゆえ周波数除数をその値に設定することができる。別の例では、周波数除数制御信号は除数アップ／ダウン信号２９０である。アップ／ダウン信号２９０を用いて、たとえば、周波数除数をインクリメントまたはデクリメントすることができる。周波数除数を変更することにより、選択ロジック２３０を制御して、それが利用することができるＮ個の信号間で迅速に切り替えるのが容易になる。Ｎ個の信号は同じ周波数を有するが、互いに固有の位相シフトを有するので、信号間のスイッチングにより、ＣｌｋＯｕｔ信号２５０の周波数を変更することができる。
【００２３】
こうして、システム２００は、動作中に周波数変換を実行するのを容易にし、それは、ＰＬＬロック時間に遅延を生じることなく、ＣｌｋＯｕｔ信号２５０を動的に変更するのを容易にする。それゆえ、１ＧＨｚプロセッサを備えるシステムでは、１つの例示的なシステム２００は、１ナノ秒未満で周波数変更を実行することができる（この場合、ロック時間は１ナノ秒未満である）。さらに、制御ロジック２７０は、選択ロジック２３０において信号をディジタル的に選択するのを容易にし、これは１出力サイクルループでの選択を容易にする。
【００２４】
例示的な方法については、図３および図４の流れ図を参照することによりさらに理解を深めることができる。説明を簡単にするために、例示される方法は、一連のブロックとして図示および説明されるが、その方法はブロックの順序によって限定されることはなく、いくつかのブロックが図示および説明されるのとは異なる順序で、および／または他のブロックと同時に行うことができることを理解されたい。さらに、例示的な方法を実施するために、全ての例示されたブロックよりも少ない数のブロックしか必要とされない場合もある。さらに、追加の方法および／または代替の方法では、追加の図示されないブロックを用いることもできる。
【００２５】
流れ図において、ブロックは、ロジックで実施されることができる「処理ブロック」を表す。その処理ブロックは、方法のステップ、および／またはその方法のステップを実行するための装置の構成要素を表すことができる。流れ図は、任意の特定のプログラミング言語、方法あるいは様式（たとえば手続き型、オブジェクト指向）のための構文を示さない。むしろ、流れ図は、当業者が、例示される処理を実行するためのロジックを開発するために用いることができる機能的な情報を例示する。いくつかの例では、時間の変数、ルーチンループなどのプログラム要素は示されないことが理解されよう。さらに、電子工学およびソフトウエアの応用形態は、動的かつフレキシブルなプロセスを含むことができ、このため、例示したブロックを図示したものとは異なる他の順序で実行することができること、および／またはブロックを結合、または複数の構成要素に分離することができることが理解されよう。プロセスは、機械語、手続き型、オブジェクト指向および／または人工知能技法のような種々のプログラミング手法を用いて実施することができることが理解されよう。
【００２６】
図３は、集積回路に印加される最小電圧に関連付けられた周波数よりも高い、集積回路のためのチップ周波数を達成するのを容易にするために、集積回路の電圧降下に迅速に応答するための１つの例示的な方法３００を示す。方法３００は、３１０において、第１のクロック信号を受信するステップを含むことができる。第１のクロック信号には、たとえば、集積回路内のいくつかの構成要素に供給される基準クロック信号を用いることができる。一例では、第１のクロック信号を、オン・ダイ  チップ  シェアリング（ＯＤＣＳ：on-die chip sharing）に関与する構成要素から受信することができる。
【００２７】
方法３００は、３２０において、第１のクロック信号から１組のＮ個の信号を生成することができる。たとえば、第１のクロック信号をＮ個の信号に分割することができる。それらの信号は互いに固有の位相（すなわち、いずれも異なる位相）を有することができる。一例では、同じ周波数を有するが、互いに固有の位相を有する４つの信号を生成することができ、一方、他の例では、概ね同じ周波数を有するが、互いに固有の位相を有する８個、１６個、３２個、６４個または１２８個の信号を生成することができる。より一般的には、１組のＮ個の信号は種々のサイズを有することができることを理解されたい。１組のＮ個の信号の要素Ｓｎを、第１のクロック信号から１サイクルの（ｎ／Ｎ）だけ位相シフトすることができる。ただし、ｎは０〜（Ｎ−１）の範囲の整数である。
【００２８】
したがって、それぞれの位相は異なるが、同様の周波数を有する１組のＮ個の信号を、集積回路に印加されている電圧の降下に迅速に応答するのを容易にするために利用することができる。方法３００が電圧降下に応答することができる１つの方法は、３３０において、出力信号として与えられることになる信号のうちの１つを選択することである。位相が基準クロック信号より遅れているか、あるいは進んでいる種々の信号を選択することにより、現時点で選択されている出力信号の周波数に応じて、基準クロック信号から得られた出力信号の周波数を増加および／または減少させることができる。こうして、一例では、次の出力信号の位相を以下の式によって決定することができる。
位相（ｔ＋１）＝位相（ｔ）＋Ｍ
【００２９】
ここで、ｔは現在のクロック位相番号であり、位相（ｔ）は現在のクロック位相であり、位相（ｔ＋１）は次のクロック位相であり、Ｍは周波数除数であって、０〜（Ｎ−１）の範囲の整数である。
【００３０】
次のクロック位相を選択した後に、方法３００は、３４０において、クロック出力信号選択ロジック（たとえばマルチプレクサ）をディジタル的に制御（ディジタル制御）して、１組のＮ個の信号において利用可能な信号のうちのいずれか（この信号を当該ロジックが出力信号として提供する）を変更することができる。一例では、ディジタル制御は、第１のクロック信号の１サイクル以下である時間内に信号間を変更することを容易にする。こうして、その変更を、一例では、１マイクロ秒未満で実行することができる。
【００３１】
クロック出力信号選択ロジックがマルチプレクサである場合には、当該マルチプレクサを、以下の式に対応する周波数を有する出力信号を提供するように制御することができる。
Ｆｏｕｔ＝Ｆｍａｘ＊（Ｎ／（Ｎ＋ｍ））
ここで、Ｆｏｕｔはクロック出力信号選択ロジックによって提供される出力信号（ここでは、出力信号の周波数に対応）であり、Ｆｍａｘは第１のクロック信号（ここでは、クロック信号の周波数に対応）であり、ＮはＦｍａｘが分割される信号の数であり、ｍは周波数除数であって、０〜（Ｎ−１）の範囲の整数である。
【００３２】
図３は一連の種々の動作を示すが、図３に示す種々の動作を実質的に同時に行うことができることを理解されたい。一例として、第１のプロセスは第１のクロック信号を受信することができ、第２のプロセスはＮ個のクロック信号を生成することができ、第３のプロセスは次の出力位相を選択することができ、第４の信号は出力信号選択ロジックを制御することができる。４つのプロセスが記載されるが、それよりも多くの、および／または少ない数のプロセスを用いることができること、および軽量プロセス、正規プロセス（レギュラープロセス）、スレッドおよび他の手法を用いることができることを理解されたい。他の例示的な方法は、場合によっては、概ね同時に行われる動作を含むこともできることを理解されたい。
【００３３】
図４は、基準クロック信号（この信号の周波数は供給電圧すなわち電源電圧に関連する）から得られ、かつ、この基準クロック信号に関連する出力クロック信号の周波数を変更するための１つの例示的な方法４００を示す。方法４００は、４１０において、基準クロックから基準クロック信号Ｆｍａｘを受信するステップを含むことができる。Ｆｍａｘ信号の周波数は、回路をクロック動作（例えば、クロックに同期して動作）させることができる最大周波数とすることができる。
【００３４】
４２０では、方法４００はＦｍａｘからＮ個の異なる信号を生成することができる。ここで、Ｎ個の信号はそれぞれ異なる位相を有する。一例では、これは、それぞれの位相がＦｍａｘの位相から１サイクルの（ｎ／Ｎ）だけシフトされた、Ｎ個の異なる信号を生成する位相多重化技法を用いて達成することができる。Ｎ個の信号は全て同じ周波数を有することができ、その周波数はＦｍａｘの数分の１（たとえばＦｍａｘ／２）にすることができる。Ｎ個の異なる信号を利用できる場合、方法４００は、出力信号としてＮ個の信号の異なる要素を提供することにより、出力周波数を変化させることができる。
【００３５】
こうして、方法４００は、４３０において、初期周波数除数ｍを設定するのを容易にする第１の制御信号を受信するステップを含むことができる。周波数除数ｍは、第１の周波数を有する第１の出力クロック信号を選択し、かつ／または生成するのを容易にすることができる。１組のＮ個の信号の種々の要素間で順に選択することによってその周波数を設定することができる。それゆえ、方法４００は、４４０において、Ｆｏｕｔ＝Ｆｍａｘ＊（Ｎ／（Ｎ＋ｍ））によって表される周波数を有する第１の出力クロック信号を提供するステップを含むことができる。ここで、ｍは０〜（Ｎ−１）の範囲の整数である。第１の出力クロック信号を提供するステップは、基準クロック信号毎に、Ｎ個の利用可能な信号から選択することができるロジックをディジタル制御して、所望の周波数を有する出力信号を生成するステップを含むことができる。
【００３６】
Ｎ個の信号のうちのどの信号が以前に選択されたかに応じて、Ｎ個の信号のうちのどの信号が次に選択されるかが決まるので、方法４００は、４５０において、状態を追跡することにより動作を継続することができる。１組のＮ個の信号から１つの信号を選択するために現在用いられている周波数除数ｍを追跡することにより、その状態を追跡することができる。４６０では、所望の周波数を有する出力信号を生成するために用いられている信号の位相も追跡することができる。周波数除数ｍおよび／または信号の位相を追跡するステップは、たとえば、データ値（たとえば現在のｍの値、次のｍの値、現在の位相シフト番号）をデータ記憶手段に記憶するステップを含むことができる。
【００３７】
４７０では、出力クロック信号の合成が完了しているか否かに関する判定が行われる。完了している場合には、方法４００は終了することができる。完了していない場合には、方法４００は継続することができる。４８０では、別の制御信号を受信することができる。その制御信号は、Ｆｏｕｔ＝Ｆｍａｘ＊（Ｎ／（Ｎ＋ｍ’））に従って決定される第２の周波数を有する第２の出力クロック信号を提供するのを容易にする第２の周波数除数ｍ’を設定するのを容易にすることができる。第２の周波数除数は、Ｎ個の利用可能な信号から、その位相シフトが、４９０において、位相（ｔ＋１）＝位相（ｔ）＋ｍ’に従って決定されるところの信号を選択するのを容易にする。こうして、第２の制御信号は、基準クロック信号から得られたどの信号が用いられることになるかを選択することにより、クロック出力周波数を制御するのを容易にするが、この判断は少なくとも部分的には、基準クロック信号から得られた信号の位相に基づく。
【００３８】
一例では、出力信号制御ロジックを、種々の位相を有する種々の信号に基づいて、種々の出力クロック信号間で切り替えるようにディジタル制御することができる。この場合、そのような切り替えは、Ｆｍａｘの１サイクル内に行われる。
【００３９】
一例では、方法は、コンピュータ読取り可能媒体上に記憶されたプロセッサ実行可能命令および／または演算として実施される。したがって、一例では、コンピュータ読取り可能媒体は、第１のクロック信号を受信するステップと、第１のクロック信号を処理して、互いに固有の位相を有する分割された信号を生成することにより、第１のクロック信号から１組のＮ個の第２の信号を生成するステップと、１組のＮ個の第２の信号の要素から導出された第１の出力信号を提供することから、１組のＮ個の第２の信号から導出された第２の出力信号を提供することまでの変化を、第１のクロック信号の１サイクル以下の時間内で行うように、クロック出力信号ロジックをディジタル制御するステップとを含む方法を実行するように動作可能なプロセッサ実行可能命令を記憶することができる。
【００４０】
上記の方法は、コンピュータ読取り可能媒体上に記憶されているものとして説明したが、本明細書に記載した他の例示的な方法を、コンピュータ読取り可能媒体上に記憶することもできることを理解されたい。
【００４１】
図５は、バス５０８によって動作可能に接続されたプロセッサ５０２、メモリ５０４および入力／出力ポート５１０を含むコンピュータ５００を示す。一例では、コンピュータ５００は、ディジタル位相選択および１サイクル比変更能力によって、周波数合成を容易にするように構成されるディジタル分周（ＤＦＤ）ロジック５３０を備えることができる。ＤＦＤロジック５３０はプロセッサ５０２の内部に示されるが、一例では、ＤＦＤロジック５３０は、プロセッサ５０２の内部に配置されるのではなく、プロセッサ５０２に動作可能に接続されることができる。同様に、コンピュータ５００内の他の構成要素がＤＦＤロジックを含み、かつ／またはＤＦＤロジックに動作可能に接続されることもできることを理解されたい。こうして、ＤＦＤロジック５３０は、コンピュータ５００内にハードウエア、ファームウエア、ソフトウエアおよび／またはその組み合わせのいずれで実施される場合でも、入力基準クロック信号から、分割され、位相シフトされた複数の信号を生成するための手段、分割され、位相シフトされた複数の信号から、分割され、位相シフトされた１つの信号を選択するための手段、および出力クロック信号の位相および状態を設定するための手段を提供することができる。出力クロック信号は、分割され、位相シフトされた複数の信号から選択されることができる。コンピュータ５００は、入力基準クロック信号の１サイクル内に、出力クロック信号の位相および状態をディジタル的に変更するための手段を備えることもできる。
【００４２】
プロセッサ５０２には、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを含む多種多様なプロセッサを用いることができる。メモリ５０４は、揮発性メモリおよび／または不揮発性メモリを含むことができる。不揮発性メモリは、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなど（但し、これらに限定するわけではない）を含むことができる。揮発性メモリは、たとえばＲＡＭ、シンクロナスＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）およびダイレクトラムバスＲＡＭ（ＤＲＲＡＭ）を含むことができる。
【００４３】
ディスク５０６は、たとえば入力／出力インターフェース（たとえばカード、デバイス）５１８および入力／出力ポート５１０を介して、コンピュータ５００に動作可能に接続されることができる。ディスク５０６は、磁気ディスクドライブ、固体ディスクドライブ（ソリッドステートディスクドライブ）、フロッピィディスクドライブ、テープドライブ、Ｚｉｐドライブ、フラッシュメモリカードおよび／またはメモリスティックなどの装置（但し、これらに限定するわけではない）を含むことができる。さらに、ディスク５０６はＣＤ−ＲＯＭ、ＣＤレコーダブルドライブ（ＣＤ−Ｒドライブ）、ＣＤリライタブルドライブ（ＣＤ−ＲＷドライブ）および／またはディジタルビデオＲＯＭドライブ（ＤＶＤ  ＲＯＭ）のような光学ドライブを含むことができる。メモリ５０４は、たとえばプロセス５１４および／またはデータ５１６を記憶することができる。ディスク５０６および／またはメモリ５０４は、コンピュータ５００を制御し、かつコンピュータ５００のリソースを割り当てるオペレーティングシステムを記憶することができる。
【００４４】
バス５０８には、単一内部バス相互接続アーキテクチャおよび／または他のバスあるいはメッシュアーキテクチャを用いることができる。単一のバスが示されるが、コンピュータ５００は、図示されない他のバス（たとえばＰＣＩＥ、ＳＡＴＡ、インフィニバンド（Infiniband）、１３９４、ＵＳＢ、イーサネット）を用いて、種々のデバイス、ロジックおよび周辺装置と通信することができることを理解されたい。バス５０８は、メモリバスまたはメモリコントローラ、周辺バスまたは外部バス、クロスバースイッチおよび／またはローカルバス（但し、これらに限定するわけではない）を含む種々のタイプからなることができる。ローカルバスは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＳＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、周辺部品相互接続（ＰＣＩ）バス、ユニバーサルシリアル（ＵＳＢ）バスおよび小型コンピューターシステムインターフェイス（ＳＣＳＩ）バス（但し、これらに限定するわけではない）を含む種々の構成を有することができる。
【００４５】
コンピュータ５００は、Ｉ／Ｏインターフェース５１８および入力／出力ポート５１０を介して、入力／出力デバイスと相互作用することができる。入力／出力デバイスは、キーボード、マイクロフォン、ポインティングおよび選択デバイス、カメラ、ビデオカード、ディスプレイ、ディスク５０６、ネットワーク装置５２０など（但し、これらに限定するわけではない）を含むことができる。入力／出力ポート５１０は、シリアルポート、パラレルポートおよびＵＳＢポート（但し、これらに限定するわけではない）を含むことができる。
【００４６】
コンピュータ５００はネットワーク環境において動作することができ、それゆえ、Ｉ／Ｏインターフェース５１８および／またはＩ／Ｏポート５１０を介してネットワーク装置５２０に接続されることができる。ネットワーク装置５２０を通して、コンピュータ５００はネットワークと相互作用することができる。ネットワークを通して、コンピュータ５００は、遠隔のコンピュータと論理的に接続されることができる。コンピュータ５００が相互作用することができるネットワークには、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）および他のネットワーク（但し、これらに限定するわけではない）が含まれる。ネットワーク装置５２０は、ファイバ分散データインターフェース（ＦＤＤＩ）、銅線配線データインターフェース（ＣＤＤＩ）、イーサネット（ＩＥＥＥ８０２．３）、トークンリング（ＩＥＥＥ８０２．５）、無線コンピュータ通信（ＩＥＥＥ８０２．１１）、ブルートゥース（ＩＥＥＥ８０２．１５．１）、ジグビー（Ｚigbee：ＩＥＥＥ８０２．１５．４）など（但し、これらに限定するわけではない）を含むＬＡＮ技術に接続することができる。同様に、ネットワーク装置５２０は、ポイント・ツー・ポイントリンク、統合サービスディジタル網（ＩＳＤＮ）のような回線交換ネットワーク、パケット交換ネットワークおよびディジタル加入者線（ＤＳＬ）（但し、これらに限定するわけではない）を含む、ＷＡＮ技術に接続することができる。
【００４７】
本明細書において、周波数合成、及び、位相がずれた合成信号のディジタル的選択を用いて周波数を変化させることに関連したシステム、方法、媒体、及び他の実施形態が開示された。１つの例示的なシステムの実施形態100は、基準クロック信号120を受信し、基準クロック信号120を処理して異なる位相を有する信号にし、及び、それらの信号を選択ロジック130で利用可能にすることができる同期ループロジック110（例えば、位相同期、遅延同期）を備える。例示的なシステム100は、また、選択ロジック130によって提供された出力信号の選択及び追跡を容易にする、周波数除数を格納する状態ロジック140を備えることができる。例示的なシステム100は、また、出力信号を計算し、記述し、及び／または、選択することに関連する出力信号の位相データを格納する位相ロジック160を備えることができる。
【００４８】
例示的なシステム、方法などを複数の例を示すことによって説明し、それらの複数の例をかなり詳細に説明したが、本出願人は、添付の特許請求の範囲をそのような細部に限定したり、多少なりとも制限したりすることを意図していない。当然ながら、本明細書に記載したシステム、方法などを説明するために、考えられるありとあらゆる構成要素や方法の組み合わせを説明することはできない。更なる利点および変形態様については当業者には容易に明らかになるであろう。それゆえ、本発明は、図示および説明した特定の細部、代表的な装置および説明上の例には限定されない。したがって、本特許出願は、添付の特許請求の範囲内に入る代替物、改変物および変形物を含むことを意図している。さらに、これまでの説明は、本発明の範囲を限定することを意図していない。本発明の範囲は、添付の特許請求の範囲およびその等価物によって決定されるべきである。
【００４９】
用語「含む」または「備える」が、詳細な説明あるいは特許請求の範囲において用いられる場合には、特許請求の範囲において接続語として用いられているときに解釈される用語「からなる」と同様の意味も含むことが意図されている。さらに、用語「または（あるいは）」（たとえばＡまたは（あるいは）Ｂ）が、詳細な説明あるいは特許請求の範囲において用いられる場合には、それは「ＡまたはＢ、またはその両方」を意味することが意図されている。本出願人が「ＡまたはＢであるが、両方ではない」ことを示そうとするときは、用語「ＡまたはＢであるが、両方ではない」が用いられるであろう。したがって、本明細書における「または（あるいは）」は、包括的な意味で使用されており、排他的な意味で使用されていない。Bryan A. Garner, A Dictionary of Modern Legal Usage 624 (2d. Ed. 1995)を参照されたい。
【図面の簡単な説明】
【００５０】
【図１】集積回路に印加される最小電圧に関連する周波数よりも高い、集積回路内の周波数を達成するのを容易にするために、１基準クロックサイクル内で集積回路内の電圧降下に応答するのを容易にする１つの例示的なシステムを示す図である。
【図２】周波数合成、および位相がずれた合成信号のディジタル選択を通して、周波数変化を起こすための１つの例示的なシステムを示す図である。
【図３】集積回路に印加される最小電圧に関連する周波数よりも高い、集積回路内の平均周波数を達成するのを容易にするために、集積回路内の電圧降下に応答するための１つの例示的な方法を示す図である。
【図４】基準クロック信号から得られ、かつ、その基準クロック信号に関係する出力クロック信号の周波数を変更するための１つの例示的な方法を示す図である。基準クロック信号の周波数は供給電圧に関係している。
【図５】本明細書に示す例示的なシステムおよび方法が動作することが可能な、１つの例示的なコンピューティング環境を示す図である。
【符号の説明】
【００５１】
１００、２００  システム
１１０、２１０  ＰＬＬロジック
１２０、２２０  基準信号
１３０、２３０  選択ロジック
１４０、２４０  状態ロジック
１６０、２６０  位相ロジック
【図１】
2005323356.tif 000003
【図２】
2005323356.tif 000004
【図３】
2005323356.tif 000005
【図４】
2005323356.tif 000006
【図５】
2005323356.tif 000007