(57)【特許請求の範囲】
【請求項１】
システムであって、
第１のクロック信号を生成するように構成されたクロック回路と、
前記クロック回路から前記第１のクロック信号を受け、前記第１のクロック信号に基づいて第２のクロック信号を提供し、前記第２のクロック信号の周波数を調整するように構成された周波数ランプ回路と、
前記第２のクロック信号の前記周波数をランプアップまたはランプダウンするよう前記周波数ランプ回路に命令するように構成されたクロックコントローラと
を備え、
前記クロック回路は、前記第１のクロック信号の第１のクロック周波数から第２のクロック周波数への切替えを行うように更に構成され、
前記クロックコントローラは、前記切替えの前に前記第２のクロック信号の前記周波数をランプダウンするよう前記周波数ランプ回路に命令し、前記切替えの後に前記第２のクロック信号の前記周波数をランプアップするよう前記周波数ランプ回路に命令するように更に構成される、
システム。
【請求項２】
前記周波数ランプ回路は、前記第１のクロック信号のパルスを選択的にスワロウすることで、前記第２のクロック信号の前記周波数を調整するように構成される、請求項１に記載のシステム。
【請求項３】
前記周波数ランプ回路は、複数のステップの各後続ステップで、前記第１のクロック信号のパルスのより高い割合をスワロウすることで、前記複数のステップで前記第２のクロック信号の前記周波数をランプダウンするように構成される、請求項２に記載のシステム。
【請求項４】
前記周波数ランプ回路は、前記第１のクロック信号の周波数を分周することで、前記第２のクロック信号の前記周波数を調整するように構成される、請求項１に記載のシステム。
【請求項５】
前記周波数ランプ回路は、複数のステップの各後続ステップで前記第１のクロック信号の前記周波数をより大きい量で分周することで、前記複数のステップで前記第２のクロック信号の前記周波数をランプダウンするように構成される、請求項４に記載のシステム。
【請求項６】
前記第２のクロック信号は、プロセッサに供給され、前記クロックコントローラは、前記プロセッサが割込み待ち命令又はイベント待ち命令を実行することに応答して、前記第２のクロック信号の前記周波数をランプダウンするよう前記周波数ランプ回路に命令するように構成される、請求項１に記載のシステム。
【請求項７】
前記クロック回路は、複数の入力クロック信号を受け、前記入力クロック信号のうちの１つを選択し、前記入力クロック信号のうちの前記選択された１つを前記第１のクロック信号として出力するように構成されたマルチプレクサを備える、請求項１に記載のシステム。
【請求項８】
前記周波数ランプ回路は、複数のステップの各後続ステップで前記第１のクロック信号のパルスのより小さい割合をスワロウすることで、または前記複数のステップの各後続ステップで前記第１のクロック信号の周波数をより小さい量で分周することで、前記複数のステップで前記第２のクロック信号の前記周波数をランプアップするように構成される、請求項１に記載のシステム。
【請求項９】
前記第２のクロック信号は、プロセッサに供給され、前記クロックコントローラは、前記プロセッサがアクティブモードからアイドルモードに遷移することとなることを示すインジケーションに応答して、前記第２のクロック信号の前記周波数をランプダウンするよう前記周波数ランプ回路に命令するように構成される、請求項１に記載のシステム。
【請求項１０】
前記第２のクロック信号の前記周波数のランプダウンの後に、前記第２のクロック信号をゲート制御するように構成されたゲート回路を更に備える、請求項９に記載のシステム。
【請求項１１】
前記ゲート回路は、前記プロセッサが前記アクティブモードに戻されることとなるとき前記第２のクロック信号をゲート解除するように構成され、前記クロックコントローラは、前記第２のクロック信号がゲート解除された後に、前記第２のクロック信号の前記周波数をランプアップするよう前記周波数ランプ回路に命令するように構成される、請求項１０に記載のシステム。
【請求項１２】
クロック周波数切替えのための方法であって、
第２のクロック信号の周波数をランプダウンすることと、ここにおいて、前記第２のクロック信号は、第１のクロック信号からもたらされる、
前記第２のクロック信号をディセーブルにすることと、
前記第２のクロック信号がディセーブルにされた後に、前記第１のクロック信号を第１のクロック周波数から第２のクロック周波数に切り替えることと、
前記第１のクロック信号が前記第２のクロック周波数に切り替えられた後に、前記第２のクロック信号をイネーブルにすることと、
前記第２のクロック信号の前記周波数をランプアップすることと
を備える方法。
【請求項１３】
前記第２のクロック信号の前記周波数をランプダウンすることは、時間と共に前記第１のクロック信号のパルスの増加割合をスワロウすること、または時間と共に前記第１のクロック信号の周波数を増加量だけ分周することを備える、請求項１２に記載の方法。
【請求項１４】
前記第２のクロック信号の前記周波数をランプアップすることは、時間と共に前記第１のクロック信号のパルスの減少割合をスワロウすること、または時間と共に前記第１のクロック信号の周波数を減少量だけ分周することを備える、請求項１２に記載の方法。
【請求項１５】
前記第２のクロック信号は、プロセッサに入力され、前記第２のクロック信号の前記周波数をランプダウンすることは、前記第１のクロック周波数から前記第２のクロック周波数に切り替えることを求める前記プロセッサからの要求に応答して実行される、請求項１２に記載の方法。
【発明の詳細な説明】
【関連出願への相互参照】
【０００１】
[0001]本出願は、２０１５年８月３日に米国特許商標庁に出願された非仮出願第１４／８１７，０５７に対する優先権及びその利益を主張し、その全内容は、参照により本明細書に組み込まれる。
【技術分野】
【０００２】
[0002]本開示の態様は一般に、電力配分ネットワーク（ＰＤＮ）に関し、より具体的には、ＰＤＮドループ／オーバシュート緩和に関する。
【背景技術】
【０００３】
[0003]動的周波数スケーリングは、ユースケースに基づいてプロセッサのクロック周波数を動的に変更するために広く使用される。例えば、プロセッサのクロック周波数は、プロセッサが高速アプリケーションに対して使用されているとき、増加され得、電力を節減するためにプロセッサが低速アプリケーションに対して使用されているとき、低減され得る。
【発明の概要】
【０００４】
[0004]以下に、１つ又は複数の実施形態の基本的な理解を提供するために、そのような実施形態の簡略化された概要を提示する。この概要は、予期される全ての実施形態の広範な概観ではなく、全ての実施形態の重要な又は不可欠な要素を識別するようにも、任意又は全ての実施形態の範囲を描写するようにも意図されない。その唯一の目的は、後に提示されるより詳細な説明への前置きとして、１つ又は複数の実施形態のいくつかの概念を簡略化された形式で提示することである。
【０００５】
[0005]ある態様によれば、システムが本明細書において説明される。システムは、第１のクロック信号を生成するように構成されたクロック回路と、クロック回路から第１のクロック信号を受け、第１のクロック信号に基づいて第２のクロック信号を提供し、第２のクロック信号の周波数を調整するように構成された周波数ランプ回路とを備える。システムはまた、第２のクロック信号の周波数をランプダウンするよう周波数ランプ回路に命令するように構成されたクロックコントローラを備える。
【０００６】
[0006]第２の態様は、クロック周波数切替えのための方法に関する。方法は、第２のクロック信号の周波数をランプダウンすることと、ここにおいて、第２のクロック信号は、第１のクロック信号からもたらされる、第２のクロック信号をディセーブルにすることと、第２のクロック信号がディセーブルにされた後に、第１のクロック信号を第１のクロック周波数から第２のクロック周波数に切り替えることとを備える。方法はまた、第１のクロック信号が第２のクロック周波数に切り替えられた後に、第２のクロック信号をイネーブルにすることと、第２のクロック信号の周波数をランプアップすることとを備える。
【０００７】
[0007]第３の態様は、クロック周波数切替えのための装置に関する。装置は、第２のクロック信号の周波数をランプダウンするための手段と、ここにおいて、第２のクロック信号は、第１のクロック信号からもたらされる、第２のクロック信号をディセーブルにするための手段と、第２のクロック信号がディセーブルにされた後に、第１のクロック信号を第１のクロック周波数から第２のクロック周波数に切り替えるための手段とを備える。装置はまた、第１のクロック信号が第２のクロック周波数に切り替えられた後に第２のクロック信号をイネーブルにするための手段と、第２のクロック信号の周波数をランプアップするための手段とを備える。
【０００８】
[0008]前述した目的及び関連する目的を達成するために、１つ又は複数の実施形態は、以下に十分に説明されかつ特許請求の範囲において具体的に示される特徴を備える。以下の説明及び添付の図面は、１つ又は複数の実施形態の実例となる特定の態様を詳細に示す。しかしながら、これらの態様は、様々な実施形態の原理が用いられ得る様々な方法のほんの一部しか示さず、説明される実施形態は、そのような態様及びそれらの等化物の全てを含むよう意図される。
【図面の簡単な説明】
【０００９】
【図１Ａ】[0009]図１Ａは、周波数スケーリングを有する例示的なシステムを示す。
【図１Ｂ】[0010]図１Ｂは、位相ロックドループ（ＰＬＬ）と分周器とを備える例示的なシステムを示す。
【図１Ｃ】[0011]図１Ｃは、ＰＬＬと分周器とを備える例示的なシステムを示す。
【図２】[0012]図２は、グリッチフリーのマルチプレクサの例示的な実施を示す。
【図３】[0013]図３は、クロック切替えの例を例示するタイミング図を示す。
【図４】[0014]図４は、本開示の実施形態に係る、周波数スケーリングを有するシステムを示す。
【図５】[0015]図５は、本開示の実施形態に係る、クロック切替えのための例示的なプロシージャを示す。
【図６】[0016]図６は、本開示の実施形態に係る、クロックスワロワ（clock swallower）を備えるシステムを示す。
【図７Ａ】[0017]図７Ａは、本開示の実施形態に係る、クロック切替えの例を例示するタイミング図を示す。
【図７Ｂ】図７Ｂは、本開示の実施形態に係る、クロック切替えの例を例示するタイミング図を示す。
【図８】[0018]図８は、本開示の実施形態に係る、例示的なパルススワロウパターンを示す。
【図９】[0019]図９は、本開示の実施形態に係る、例示的なクロックインデックスを示す。
【図１０】[0020]図１０は、本開示の別の実施形態に係る、例示的なクロックインデックスを示す。
【図１１】[0021]図１１は、本開示の実施形態に係る、電力マネジャを備える例示的なシステムを示す。
【図１２】[0022]図１２は、本開示の実施形態に係る、アクティブモードとアイドルモードとの間でプロセッサを遷移するための例示的なプロシージャを示す。
【図１３】[0023]図１３は、本開示の実施形態に係る、温度緩和を有する例示的なシステムを示す。
【図１４】[0024]図１４は、本開示の実施形態に係る、温度緩和のための例示的なパルススワロウパターンを示す。
【図１５】[0025]図１５は、本開示の実施形態に係る、例示的なクロック回路を示す。
【発明の詳細な説明】
【００１０】
[0026]添付の図面に関連して以下に示される詳細な説明は、様々な構成の説明を意図するものであり、本明細書で説明される概念が実践され得る唯一の構成を表すよう意図されるものではない。詳細な説明は、様々な概念の完全な理解を提供するために特定の詳細を含む。しかしながら、これらの概念がこれらの特定の詳細なしに実践され得ることは当業者には明らかであろう。いくつかの事例では、そのような概念を曖昧にしないために、周知の構造及び構成要素はブロック図の形式で示される。
【００１１】
[0027]動的周波数スケーリングは、ユースケースに基づいてプロセッサのクロック周波数を動的に変更するために広く使用される。例えば、プロセッサのクロック周波数は、プロセッサが高速アプリケーションに対して使用されているとき、増加され得、電力を節減するためにプロセッサが低速アプリケーションに対して使用されているとき、低減され得る。
【００１２】
[0028]図１Ａは、動的周波数スケーリングを有するシステム１００の例を示す。システム１００は、プロセッサ（例えば、ＣＰＵ、ＧＰＵ、ＤＳＰ、等）１１０と、クロックコントローラ１１５と、クロック回路１４０とを備える。プロセッサ１１０は、電力配分ネットワーク（ＰＤＮ）（図示されない）を介して電源によって電力供給され得る。電源は、電力管理集積回路（ＰＭＩＣ）又は別の電源を備え得る。他の回路（例えば、１つ又は複数の他のプロセッサ）もまた、ＰＤＮに結合され得る。
【００１３】
[0029]クロック回路１４０は、以下で更に説明されるように、クロック信号（「Clk_sel」と表される）をプロセッサ１１０に供給し、クロックコントローラ１１５の制御下で、クロック信号を複数の選択可能なクロック周波数のうちの任意の１つに設定するように構成される。図１Ａの例では、クロック回路１４０は、それぞれ、クロックライン１２２−１〜１２２−４を介して、異なるクロック周波数を有する複数の入力クロック信号Clk_a〜Clk_dを受け、コントローラ１１５の制御下で、入力クロック信号Clk_a〜Clk_dのうちの１つをプロセッサ１１０に選択的に出力するように構成されたマルチプレクサ１２０を備える。マルチプレクサ１２０は、選択されたクロック信号Clk_selを、クロックライン１２５を介してプロセッサ１１０に出力する。
【００１４】
[0030]入力クロック信号Clk_a〜Clk_dは、様々なクロック源によって供給され得る。これに関連して、図１Ｂは、クロック回路１５５が、位相ロックドループ（ＰＬＬ）１３０と、第１、第２及び第３の分周器１３５−１、１３５−２及び１３５−３とを備えるシステム１５０の例を示す。この例では、入力クロック信号Clk_aは、ＰＬＬ１３０によって供給される。ＰＬＬ１３０は、水晶発振器（図示されない）からの基準クロック信号の周波数に特定量を掛けることで入力クロック信号Clk_aを生成し得る。図１Ｂの例では、第１の分周器１３５−１は、入力クロック信号Clk_aの周波数を第１の量で分周して入力クロック信号Clk_bを生成し、第２の分周器１３５−２は、入力クロック信号Clk_aの周波数を第２の量で分周して入力クロック信号Clk_cを生成し、第３の分周器１３５−３は、入力クロック信号Clk_aの周波数を第３の量で分周して入力クロック信号Clk_dを生成する。この例では、入力クロック信号Clk_aは、最も高い周波数のクロック信号である。
【００１５】
[0031]図１Ｃは、クロック回路１６５が、第１のＰＬＬ１４０−１と、第２のＰＬＬ１４０−２と、第１の分周器１４５−１と、第２の分周器１４５−２とを備えるシステム１６０の別の例を示す。この例では、入力クロック信号Clk_aは、第１のＰＬＬ１４０−１によって供給され、入力クロック信号Clk_cは、第２のＰＬＬ１４０−２によって供給される。第１のＰＬＬ１４０−１は、水晶発振器（図示されない）からの基準クロック信号の周波数に第１の量を掛けることで入力クロック信号Clk_aを生成し得、第２のＰＬＬ１４０−２は、基準クロック信号の周波数に第２の量を掛けることで入力クロック信号Clk_cを生成し得る。図１Ｃの例では、第１の分周器１４５−１は、入力クロック信号Clk_aの周波数を第３の量で分周して入力クロック信号Clk_bを生成し、第２の分周器１４５−２は、入力クロック信号Clk_cの周波数を第４の量で分周して入力クロック信号Clk_dを生成する。この例では、入力クロック信号Clk_a又は入力クロック信号Clk_cのいずれかが、最も高い周波数のクロック信号である。第１及び第２の分周器は、それらのそれぞれのクロック信号を、同じ量（例えば、除数）で割り得る。
【００１６】
[0032]本開示が、図１Ｂ及び１Ｃに示される例に限られないこと及び入力クロック信号Clk_a〜Clk_dが、ＰＬＬ、分周器及び／又は他の構成要素の任意の配列を使用して生成され得ることは認識されるべきである。マルチプレクサ１２０が、任意の数の入力クロック信号を多重化し得、従って、図１Ａ〜１Ｃに示される４つの入力クロック信号の例に限られないこともまた認識されるべきである。
【００１７】
[0033]動作中、マルチプレクサ１２０は、１回につき（at a time）入力クロック信号Clk_a〜Clk_dのうちの１つを選択し、選択されたクロック信号Clk_selを、クロックライン１２５を介してプロセッサ１１０に出力する。プロセッサ１１０は、選択されたクロック信号Clk_selを使用して、プロセッサ１１０における切替え動作の時間を決める（time）。例えば、プロセッサ１１０中の論理ゲート（例えば、トランジスタ）は、選択されたクロック信号Clk_selの周波数に従って切り替わり得る。選択されたクロック信号Clk_selの周波数が高いほど、プロセッサ１１０中の論理ゲートの切替えは速くなり、これは、結果として、より速い処理速度につながる。
【００１８】
[0034]クロックコントローラ１１５は、マルチプレクサ１２０によって選択される入力クロック信号を変更することで、ユースケースに基づいてプロセッサ１１０のクロック周波数を動的に変更するように構成される。例えば、プロセッサ１１０は、プロセッサ１１０の処理負荷を決定し、決定された処理負荷に基づいてクロック周波数を決定し、決定されたクロック周波数に従ってクロック信号Clk_selの周波数を設定するようクロックコントローラ１１５に命令し得る。この例では、プロセッサ１１０は、例えば、処理負荷の変更によりクロック周波数を変更するようクロックコントローラ１１５に命令し得る。例えば、プロセッサ１１０が、より高い速度を必要とするアプリケーションを立ち上げる場合、プロセッサ１１０は、より高いクロック周波数に切り替えるようクロックコントローラ１１５に命令し得る。故に、クロックコントローラ１１５は、プロセッサ１１０の処理ニーズに基づいて入力クロック信号を切り替え得る。
【００１９】
[0035]マルチプレクサ１２０は、マルチプレクサ１２０が２つの入力クロック信号間で切り替わるとき、特に、マルチプレクサ１２０が、これらのクロック信号のうちの一方又は両方と非同期的に動作する場合にグリッチを発生させ得る。この例では、２つの入力クロック信号のうちの一方又は両方が高いときにマルチプレクサ１２０がこれらのクロック信号間で切り替わる場合にグリッチが発生し得、これは、これらのクロック信号のうちの一方又は両方のチョッピング（chopping）を引き起こす。グリッチを防ぐために、マルチプレクサ１２０は、グリッチフリーマルチプレクサを使用して実施され得る。
【００２０】
[0036]これに関連して、図２は、マルチプレクサ１２０のグリッチフリー実施の例を示す。この例では、マルチプレクサ１２０は、マルチプレクサ２１０と、マルチプレクサ制御論理回路２１５と、第１の同期装置２２０−１と、第２の同期装置２２０−２と、第３の同期装置２２０−３と、第４の同期装置２２０−４とを備える。同期装置２２０−１〜２２０−４の各々は、図２に示されるように、直列に結合された３つの負エッジトリガ型フリップフロップを備える。第１の同期装置２２０−１中のフリップフロップは、クロック信号Clk_aを使用してクロックされ、第２の同期装置２２０−２中のフリップフロップは、クロック信号Clk_bを使用してクロックされ、第３の同期装置２２０−３中のフリップフロップは、クロック信号Clk_cを使用してクロックされ、第４の同期装置２２０−４中のフリップフロップは、クロック信号Clk_dを使用してクロックされる。図２には明示的に示されていないが、各同期装置は、それぞれのクロック信号を受けるために、それぞれのクロック信号のクロックラインに結合され得る。
【００２１】
[0037]制御論理回路２１５は、入力クロック信号Clk_a〜Clk_dのうちの１つを選択し、残りの入力クロック信号Clk_a〜Clk_dを選択解除するように構成される。そのために、制御論理回路２１５は、入力クロック信号Clk_a〜Clk_dの各々についての選択／選択解除信号を、同期装置２２０−１〜２２０−４のうちのそれぞれの同期装置を介してマルチプレクサ２１０に出力する。より具体的には、制御論理回路２１５は、入力クロック信号Clk_aについての選択／選択解除信号（“sel_a/unsel_a”と表される）を第１の同期装置２２０−１を介して出力し、入力クロック信号Clk_bについての選択／選択解除信号（“sel_b/unsel_b”と表される）を第２の同期装置２２０−２を介して出力し、入力クロック信号Clk_cについての選択／選択解除信号（“sel_c/unsel_c”と表される）を第３の同期装置２２０−３を介して出力し、入力クロック信号Clk_dについての選択／選択解除信号（“sel_d/unsel_d”と表される）を第４の同期装置２２０−４を介して出力する。マルチプレクサ２１０が、入力クロック信号についての選択信号を受けると、マルチプレクサ２１０は、この入力クロック信号をプロセッサ１１０に出力する。マルチプレクサ２１０が、入力クロック信号についての選択解除信号を受けると、マルチプレクサ２１０は、この入力クロック信号の出力をディセーブルにする。この例では、選択信号は、論理１に対応し得、選択解除信号は、論理ゼロに対応し得、逆もまた同様である。
【００２２】
[0038]所与の時間において、制御論理回路２１５は、入力クロック信号のうちの選択された１つについて選択信号を出力し、残りの選択されていないクロック信号について選択解除信号を出力し得る。これに関連して、制御論理回路２１５は、どの入力クロック信号を選択すべきかを示すクロック制御信号をコントローラ１１５から受け得る。それに応じて、制御論理回路２１５は、この制御信号によって示された入力クロック信号について選択信号を出力し、残りの入力クロック信号について選択解除信号を出力し得る。
【００２３】
[0039]一態様では、同期装置２２０−１〜２２０−４の各々の出力２２５−１〜２２５−４は、図２に示されるように、制御論理回路２１５にフィードバックされる。これは、以下で更に説明されるように、マルチプレクサ２１０が、クロック切替え中クロック信号を出力することをいつ停止するかを制御論理回路２１５が決定することを可能にする。
【００２４】
[0040]マルチプレクサ２１０の出力を入力クロック信号Clk_a〜Clk_dのうちの現在のものから入力クロック信号Clk_a〜Clk_dのうちの新たなものに切り替えるために、制御論理回路２１５は、最初に、現在のクロック信号について選択解除信号を出力することで現在の入力クロック信号の出力をディセーブルにする。選択解除信号は、それぞれの同期装置内を伝播し、それは、この選択解除信号をマルチプレクサ２１０に出力する。それぞれの同期装置は、現在の入力クロック信号がローであるときに選択解除信号がマルチプレクサ２１０に出力されるように、選択解除信号の出力を現在の入力クロック信号と同期する。これは、それぞれの同期装置中のフリップフロップが、負エッジトリガ型であるためである。結果として、マルチプレクサ２１０は、現在の入力クロック信号がローであるときに現在の入力クロック信号の出力をディセーブルにし、それによってグリッチを防ぐ。この時点で、入力クロック信号の全てが選択解除され、マルチプレクサ１２０は、クロック信号をプロセッサ１１０に出力することを停止する。
【００２５】
[0041]それぞれの同期装置によって出力される選択解除信号は、制御論理回路２１５にフィードバックされ、現在の入力クロック信号の出力がマルチプレクサ２１０においてディセーブルにされたことを制御論理回路２１５に示す。それに応じて、制御論理回路２１５は、新たな入力クロック信号について選択信号を出力する。選択信号は、それぞれの同期装置内を伝播し、それは、この選択信号をマルチプレクサ２１０に出力する。それぞれの同期装置は、新たな入力クロック信号がローであるときに選択信号がマルチプレクサ２１０に出力されるように、選択信号の出力を新たな入力クロック信号と同期する。これは、それぞれの同期装置中のフリップフロップが、負エッジトリガ型であるためである。結果として、マルチプレクサ２１０は、新たな入力クロック信号がローであるときに新たな入力クロック信号の出力をイネーブルにし、それによってグリッチを防ぐ。
【００２６】
[0042]上の例では、現在のクロック信号の出力がマルチプレクサ２１０においてディセーブルにされてから、新たなクロック信号の出力がマルチプレクサ２１０においてイネーブルされまでアイドル期間が存在する。アイドル期間中、マルチプレクサ２１０は、クロック信号をプロセッサ１１０に出力しない。アイドル期間は、新たなクロック信号についての選択信号を新たなクロック信号と同期するために使用される同期装置の伝播遅延に略等しいであろう。図２の例では、新たなクロック信号についての選択信号が、マルチプレクサ２１０に達するのに、それぞれの同期装置中の３つのフリップフロップ内を伝播しなければならないため、アイドル期間は、新たなクロック信号の少なくとも３つのサイクルに及び得る。アイドル期間は、デッド期間（dead period）とも又は他の用語でも呼ばれ得る。
【００２７】
[0043]図３は、マルチプレクサ２１０の選択されたクロック信号Clk_selが入力クロック信号Clk_aから入力クロック信号Clk_bに切り替えられるタイミング図を示す。この例では、選択されたクロックClk_selは、最初、入力クロック信号Clk_aによってもたらされる（ソースされる）。時間ｔ１において、クロック信号Clk_aの出力は、マルチプレクサ２１０においてディセーブルにされる。アイドル期間中、マルチプレクサ２１０は、クロック信号を出力しない。アイドル期間は、図２の例の場合、クロック信号Clk_bの略３つのサイクルに及ぶ。時間ｔ２におけるアイドル期間の終わりに、クロック信号Clk_bの出力が、マルチプレクサ２１０においてイネーブルにされる。
【００２８】
[0044]マルチプレクサ１２０が図２に示される例示的な実施に限られず、従って、マルチプレクサ１２０は他の回路を使用して実施され得ることは認識されるべきである。マルチプレクサ１２０の他のグリッチフリーな実施もまた、クロック切替え中にアイドル期間（すなわち、クロック出力がない期間）を有し得ることに認識されるべきである。
【００２９】
[0045]クロック切替え中のアイドル期間は、マルチプレクサ１２０のクロック出力がディセーブルにされるときＰＤＮにおいて電圧オーバーショートを引き起こし、マルチプレクサ１２０のクロック出力が新たな入力クロック信号でイネーブルにされるときＰＤＮにおいて電圧ドループ(voltage droop)を引き起こす。オーバシュートの大きさは、現在の入力クロック信号の周波数に依存する。現在の入力クロック信号の周波数が高いほど、オーバシュートは大きくなる。これは、クロック周波数が高いほど、現在の入力クロック信号の出力がマルチプレクサ１２０においてディセーブルにされるときのＰＤＮ上の電流負荷の変化率が大きくなるためである。同様に、ドループの大きさは、新たな入力クロック信号の周波数に依存する。新たな入力クロック信号の周波数が高いほど、ドループは大きくなる。これは、クロック周波数が高いほど、新たな入力クロック信号の出力がマルチプレクサ１２０においてイネーブルにされるときのＰＤＮ上の電流負荷の変化率が大きくなるためである。電圧オーバシュート及び／又はドループが高すぎる場合、オーバシュート及び／又はドループは、ＰＤＮに結合された他の回路（図示されない）を誤動作させ得る。従って、クロック切替え中にＰＤＮ上のオーバシュート及び／又はドループを低減するための技法が望まれる。
【００３０】
[0046]本開示の実施形態は、以下で更に説明されるように、現在の入力クロック信号がディセーブルにされる前に、プロセッサ１１０へのクロック信号の周波数をランプダウンすること、及び／又は、新たな入力クロック信号がイネーブルされるとき、プロセッサ１１０へのクロック信号の周波数をランプアップすることで、クロック切替え中のＰＤＮ上の電圧オーバシュート及び／又はドループを低減する。
【００３１】
[0047]図４は、本開示の実施形態に係る、動的周波数スケーリングを有する例示的なシステム４００を示す。システム４００は、クロック回路１４０とプロセッサ１１０との間に結合された周波数ランプ回路４１０を備える。周波数ランプ回路４１０は、以下で更に説明されるように、選択されたクロック信号Clk_selの周波数をランプダウン及び／又はランプアップし、結果として得られた周波数調整済みクロック信号（“Clk_out”と表される）をプロセッサ１１０に出力するように構成される。
【００３２】
[0048]マルチプレクサ１２０の出力が、入力クロック信号Clk_a〜Clk_dのうちの現在のものから、入力クロック信号Clk_a〜Clk_dのうちの新たなものに切り替わるとき、周波数ランプ回路４１０は、現在の入力クロック信号がディセーブルにされる前に、出力クロック信号Clk_outの周波数をランプダウンし得る。ランプダウン中、出力クロック信号は、現在の入力クロック信号によってもたらされる（ソースされる）。周波数ランプ回路４１０は、以下で更に説明されるように、様々な技法のうちの任意の１つを使用して出力クロック信号Clk_outの周波数をランプダウンし得る。出力クロック信号Clk_outの周波数をランプダウンすることは、全周波数（すなわち、現在の入力クロック信号の周波数）で出力クロック信号を突然（abruptly）停止することと比べてＰＤＮ上の電流負荷をより低いレートで減少させ、それによって、ＰＤＮ上の電圧オーバシュートを低減する。
【００３３】
[0049]周波数ランプ回路４１０は、新たな入力クロック信号がイネーブルにされると、出力クロック信号Clk_outの周波数をランプアップし得る。ランプアップ中、出力クロック信号Clk_outは、新たな入力クロック信号によってもたらされる（ソースされる）。周波数ランプ回路４１０は、以下で更に説明されるように、様々な技法のうちの任意の１つを使用して出力クロック信号Clk_outの周波数をランプアップし得る。出力クロック信号Clk_outの周波数をランプアップすることは、全周波数（すなわち、新たな入力クロック信号の周波数）で出力クロック信号Clk_outを突然出力することと比べてＰＤＮ上の電流負荷をより低いレートで増加させ、それによって、ＰＤＮ上の電圧ドループを低減する。
【００３４】
[0050]一実施形態では、周波数ランプ回路４１０は、１つ又は複数のステップで出力クロック信号Clk_outの周波数をランプダウンし得、ここでは、出力クロック信号の周波数は、各ステップで特定量だけ低減される。各ステップの時間期間は、予め決められ得る。例えば、周波数ランプ回路４１０が出力クロック信号Clk_outの周波数を複数のステップでランプダウンする場合、周波数ランプ回路４１０は、出力クロック信号CLK_outの周波数を各ステップでより低い周波数に低減し得る。
【００３５】
[0051]一実施形態では、周波数ランプ回路４１０は、１つ又は複数のステップで出力クロック信号Clk_outの周波数をランプアップし得、ここでは、出力クロック信号の周波数は、各ステップで特定量だけ増加される。各ステップの時間期間は、予め決められ得る。例えば、周波数ランプ回路４１０が複数のステップで出力クロック信号Clk_outの周波数をランプアップする場合、周波数ランプ回路４１０は、出力クロック信号Clk_outの周波数を各ステップでより高い周波数に増加し得る。
【００３６】
[0052]一例では、周波数ランプ回路４１０は、このランプ回路４１０に入力される選択されたクロック信号Clk_selの周波数を制御可能な量で分周することで出力クロック信号Clk_outの周波数を低減する分周器を備え得る。この例では、出力クロック信号Clk_outは、分周された選択されたクロック信号Clk_selである。周波数ランプ回路４１０は、選択されたクロック信号Clk_selの周波数が時間と共に分周される量（例えば、除数）を増加することによって、ランプダウンのために時間と共に増加量だけ出力クロック信号Clk_outの周波数を低減し得る。また、周波数ランプ回路４１０は、選択されたクロック信号Clk_selの周波数が時間と共に分周される量（例えば、除数）を減少させることで、ランプアップのために時間と共に増加量だけ出力クロック信号Clk_outの周波数を増加し得る。この例では、出力クロック信号Clk_outの最大周波数は、除数が１のときに生じ得、このケースでは、出力クロック信号Clk_outの周波数は、選択された信号Clk_selの周波数に略等しい。
【００３７】
[0053]別の例では、周波数ランプ回路４１０は、このランプ回路４１０に入力される選択されたクロック信号Clk_selのパルスを選択的にスワロウする（受け入れる）ことで出力クロック信号Clk_outの周波数を低減するクロックスワロワを備え得る。この例では、出力クロック信号Clk_outは、パルススワロウされた選択されたクロック信号Clk_selである。周波数ランプ回路４１０は、時間と共にスワロウされる選択されたクロック信号Clk_outのパルスの割合を上げることで、ランプダウンのために時間と共に増加量だけ出力クロック信号Clk_outの周波数を低減し得る。また、周波数ランプ回路４１０は、時間と共にスワロウされる選択されたクロック信号Clk_selのパルスの割合を下げることで出力クロック信号の周波数を増加し得る。この例では、出力クロック信号Clk_outの最大周波数は、選択されたクロック信号Clk_selのパルスがいずれもスワロウされないときに生じ得、このケースでは、出力クロック信号Clk_outの周波数は、選択された信号Clk_selの周波数に略等しい。
【００３８】
[0054]図５は、本開示の実施形態に係る、クロック切替え中の周波数ランプダウン及び周波数ランプアップのための例示的なプロシージャ５００を示す。プロシージャ５００は、コントローラ１１５、マルチプレクサ１２０、及び／又はランプ回路４１０によって実行され得る。プロシージャ５００は、プロセッサ１１０へのクロック出力が入力クロック信号Clk_a〜Clk_dのうちの現在のものから入力クロック信号Clk_a〜Clk_dのうちの新たなものに切り替わるとき実行され得る。
【００３９】
[0055]ステップ５１０では、出力クロック信号Clk_outの周波数がランプダウンされる。ランプダウン中、出力クロック信号Clk_outは、現在の入力クロック信号によって供給（ソース）される。周波数ランプ回路４１０は、時間と共に増加量だけ選択されたクロック信号Clk_selを分周すること又は時間と共に選択されたクロック信号Clk_selのクロックパルスの増加割合をスワロウすることで、このステップを実行し得る。
【００４０】
[0056]ステップ５２０では、出力クロック信号Clk_outがディセーブルにされる。例えば、コントローラ１１５は、周波数ランプ回路４１０が出力クロック信号Clk_outのランプダウンを完了すると、ランプ回路への選択されたクロック信号Clk_selの出力をディセーブルにするようマルチプレクサ１２０に命令することで、出力クロック信号Clk_outをディセーブルにし得る。
【００４１】
[0057]ステップ５３０では、出力クロック信号Clk_outは、新たな入力クロック信号を使用してイネーブルにされる。例えば、マルチプレクサ１２０は、グリッチを防ぐためにアイドル期間の後にランプ回路４１０への選択されたクロック信号Clk_selの出力をイネーブルにすることで、出力クロック信号をイネーブルにし得る。この例では、マルチプレクサ１２０は、現在の入力クロック信号がディセーブルにされた後に新たな入力クロック信号を選択することで、新たな入力クロック信号を使用して出力クロック信号をイネーブルにし得る。
【００４２】
[0058]ステップ５４０では、出力クロック信号Clk_outの周波数がランプアップされる。ランプアップ中、出力クロック信号Clk_outは、新たな入力クロック信号によって供給（ソース）される。周波数ランプ回路４１０は、時間と共に減少量だけ選択されたクロック信号Clk_selを分周すること又は時間と共に選択されたクロック信号Clk_selのクロックパルスの減少割合（decreasing percentage）をスワロウすることで、このステップを実行し得る。一態様では、マルチプレクサ１２０は、選択されたクロック信号Clk_selがいつイネーブルにされるかを示す信号をコントローラ１１５に出力し得る。それに応じて、コントローラ１１５は、ランプアップを開始するようランプ回路４１０をトリガし得る。
【００４３】
[0059]図６は、図４の周波数ランプ回路４１０がクロックスワロワ６１０を備える例を示す。クロックスワロワ６１０は、上述したように、ランプ回路４１０に入力される選択されたクロック信号Clk_selのパルスを選択的にスワロウすることで、出力クロック信号Clk_outの周波数を可変量だけ低減するように構成される。この例では、出力クロック信号Clk_outは、パルススワロウされた選択されたクロック信号Clk_selである。
【００４４】
[0060]クロックスワロワ６１０の例示的な動作は、ここから、図７Ａ及び７Ｂに関連して説明される。図７Ａ及び７Ｂは、入力クロック信号Clk_a〜Clk_bの例示的なタイミング図を示し、ここでは、マルチプレクサ１２０は、入力クロック信号Clk_bから入力クロック信号Clk_aに切り替わる。図７Ａ及び７Ｂはまた、クロックスワロワ６１０に入力される選択されたクロック信号Clk_selと、プロセッサ１１０への出力信号クロックClk_outとを示す。
【００４５】
[0061]アイドル期間の前、クロックスワロワ６１０は、出力クロック信号Clk_outの周波数を４つのステップでランプダウンする。ランプダウン中、出力クロック信号Clk_outは、入力クロック信号Clk_aによってもたらされる（ソースされる）。第１のステップでは、図７Ａに示されるように、クロックスワロワ６１０は、出力クロック信号Clk_outの周波数を、入力クロック信号Clk_aの周波数の８０％に低減するために、選択されたクロック信号Clk_selのパルスの２０％をスワロウする。第２のステップでは、クロックスワロワ６１０は、出力クロック信号Clk_outの周波数を入力クロック信号Clk_aの周波数の６０％に低減するために、選択されたクロック信号Clk_selのパルスの４０％をスワロウする。第３のステップでは、クロックスワロワ６１０は、出力クロック信号の周波数を入力クロック信号Clk_aの周波数の４０％に低減するために、選択されたクロック信号Clk_selのパルスの６０％をスワロウする。最後に、第４のステップでは、クロックスワロワ６１０は、出力クロック信号の周波数を入力クロック信号Clk_aの周波数の２０％に低減するために、選択されたクロック信号Clk_selのパルスの８０％をスワロウする。故に、各後続ステップで、クロックスワロワ６１０は、クロックパルスのより大きい割合をスワロウする。
【００４６】
[0062]次いで、マルチプレクサ１２０は、選択されたクロック信号Clk_selをディセーブルにし（すなわち、クロック信号Clk_aの出力をディセーブルにし）、これは、出力クロック信号Clk_outの周波数をゼロに低減する。故に、この例では、出力クロック信号Clk_outの周波数（これは最初入力クロック信号Clk_aによって供給される）は、突然ゼロになる代わりに２０％ずつランプダウンされる。周波数ランプダウンは、図３に示されるような、全周波数で出力クロック信号Clk_outを突然ディセーブルにすることと比べてＰＤＮ上の電圧オーバシュートを低減する。
【００４７】
[0063]出力クロック信号Clk_outがディセーブルにされた後、マルチプレクサ１２０は、図７Ａに示されるように、グリッチを防ぐためにアイドル期間の間クロック信号を出力しない。アイドル期間の終わりに、マルチプレクサ１３０は、入力クロック信号Clk_bで、選択されたクロック信号Clk_selをイネーブルにする。図７Ｂに示されるように、クロックスワロワ６１０は、出力クロック信号Clk_outの周波数を入力クロック信号Clk_bの周波数に３つのステップでランプアップする。第１のステップでは、図７Ｂに示されるように、クロックスワロワ６１０は、出力クロック信号Clk_outの周波数を、ゼロからクロック信号Clk_bの周波数の４０％に増加するために、選択されたクロック信号Clk_selのクロックパルスの６０％をスワロウする。第２のステップでは、クロックスワロワ６１０は、出力クロック信号Clk_outの周波数を、クロック信号Clk_bの周波数の８０％に増加するために、選択されたクロック信号Clk_selのクロックパルスの２０％をスワロウする。最後に、第３のステージでは、クロックスワロワ６１０は、選択されたクロック信号Clk_selのクロックパルスをスワロウすることを停止し、それによって、出力クロック信号Clk_outの周波数を、クロック信号Clk_bの全周波数に増加する。故に、各後続ステップで、クロックスワロワ６１０は、クロックパルスのより小さい割合をスワロウする。周波数ランプアップは、図３に示されるような、全周波数で出力クロック信号Clk_outを突然出力することと比べて周波数切替え中のＰＤＮ上の電圧ドループを低減する。図７Ａ及び７Ｂに示されるランプダウン及びランプアップシーケンスが例示的なものにすぎないことは認識されるべきである。ランプダウン及びランプアップシーケンスの他の例が以下に提供される。
【００４８】
[0064]一実施形態では、クロックスワロワ６１０は、出力クロック信号をもたらす（ソースする）入力クロック信号の周波数に依存して異なるランプダウンシーケンスを使用し得る。例えば、高周波数の入力クロック信号のためのランプダウンシーケンスは、より多くのステップを有し、より低い周波数の入力クロックのためのランプダウンシーケンスと比べて、各ステップで周波数をより小さい割合だけ低減し得る。これは、より低い周波数のクロックが、プロセッサ１１０からのＰＤＮ上のより少ない電流負荷、よって、より少ないオーバシュートに対応するためである。入力クロック信号の周波数が十分に低い場合、出力クロック信号は、ランプダウンすることなくディセーブルにされ得る。これは、入力クロック信号の低周波数が、許容範囲内にある比較的小さいオーバシュートを引き起こし得るためである。このケースでは、クロックスワロワ６１０は、クロックスワロウを実行しないであろう。
【００４９】
[0065]一実施形態では、クロックスワロワ６１０は、出力クロック信号をもたらす（ソースする）入力クロック信号の周波数に依存して異なるランプアップシーケンスを使用し得る。例えば、高周波数の入力クロック信号のためのランプアップシーケンスは、より多くのステップを有し、より低い周波数の入力クロックのためのランプアップシーケンスと比べて、各ステップで小さい割合で周波数を増加し得る。これは、より低い周波数のクロックが、プロセッサ１１０からのＰＤＮ上のより少ない電流負荷、よって、より少ないドループに対応するためである。入力クロック信号の周波数が十分に低い場合、出力クロック信号は、ランプアップなしに、アイドル期間の後にイネーブルにされ得る。これは、入力クロック信号の低周波数が、許容範囲内にある比較的小さいドループを引き起こし得るためである。このケースでは、クロックスワロワ６１０は、クロックスワロウを実行しないであろう。
【００５０】
[0066]一実施形態では、クロックスワロワ６１０は、多数の異なるパルススワロウパターンのうちの１つに従ってクロックパルスをスワロウするように構成され得る。これに関連して、図８は、８つのパルススワロウパターンの例を示し、ここで、各パルススワロウパターは、一意的なパターンＩＤ（ＰＩＤ）によって識別される。この例では、各パルススワロウパターンは、一連の８ビットによって定義され、ここでは、ゼロのビット値がパルススワロウに対応し、１のビット値がパルスパスに対応する。例えば、ＰＩＤ２に対応するパルススワロウパターンは、２つのゼロ値ビットと６つの１値ビットとを有する。故に、このパルススワロウパターンの場合、クロックスワロワ６１０は、選択されたクロック信号Clk_selのクロックパルスの約２５％をスワロウし、これは、２５％の周波数低減に対応する。結果として、このパルススワロウパターンの場合、出力クロック信号の周波数は、この出力クロック信号をもたらす（ソースする）入力クロック信号の周波数の７５％に低減される。
【００５１】
[0067]別の例では、ＰＩＤ５に対応するパルススワロウパターンは、５つのゼロ値ビットと３つの１値ビットとを有する。故に、このパルススワロウパターンの場合、クロックスワロワ６１０は、選択されたクロック信号Clk_selのクロックパルスの約６２．５％をスワロウし、これは、６２．５％の周波数低減に対応する。結果として、このパルススワロウパターンの場合、出力クロック信号の周波数は、この出力クロック信号をもたらす（ソースする）入力クロック信号の周波数の３７．５％に低減される。
【００５２】
[0068]図８の例では、ＰＩＤ０に対応するパルススワロウパターンは、全て１値ビットで構成される。故に、このパルススワロウパターンの場合、クロックスワロワ６１０は、出力クロック信号の全てのクロックパルスをパスする（すなわち、クロックスワロウを実行しない）。
【００５３】
[0069]一態様では、コントローラ１１５は、対応するＰＩＤをクロックスワロワ６１０に入力することで、特定のパルススワロウパターンに従って、選択されたクロック信号Clk_selのパルスをスワロウするようクロックスワロワ６１０に命令し得る。例えば、コントローラ１１５がクロックスワロワ６１０にＰＩＤ６を入力する場合、クロックスワロワ６１０は、図８に示される対応するパルススワロウパターンに従ってパルスをスワロウし得る。この例では、クロックスワロワ６１０は、ｓｅｌクロック信号Clk_selのパルスの約７５％をスワロウし、これは、出力クロック信号Clk_outの周波数を、この出力クロック信号Clk_outをもたらす（ソースする）入力クロック信号の周波数の約２５％に低減する。
【００５４】
[0070]クロックスワロワ６１０が、パルススワロウパターンに従ってクロックパルスをスワロウするとき、クロックスワロワ６１０は、パターンを繰り返し得る。図８の例を使用して、クロックスワロワ６１０は、選択されたクロック信号Clk_selの８つのパルスごとにパルススワロウパターンを繰り返し得、ここで、８は、パターンを定義するビット数である。例えば、図８におけるＰＩＤ３に対応するスワロウパターンの場合、クロックスワロワ６１０は、このパターンに従って、選択されたクロック信号Clk_selの８つのパルスごとに３つのパルスをスワロウし得る。
【００５５】
[0071]一実施形態では、ランプダウンシーケンスは、ＰＩＤの対応するシーケンスによって、入力クロック信号ごとに定義され得る。入力クロック信号のＰＩＤのシーケンスは、出力クロック信号Clk_outが入力クロック信号によってもたらされる（ソースされる）とき、出力クロック信号Clk_outの周波数をランプダウンするためにクロックスワロワ６１０によって使用されることとなるパルススワロウパターンのシーケンスを識別する。
【００５６】
[0072]この実施形態では、クロックスワロワ６１０は、シーケンス中の各ＰＩＤに従ってクロックスワロウを連続して実行することで、ＰＩＤのシーケンスに従ってランプダウンを実行し得る。シーケンス中のＰＩＤごとに、クロックスワロワ６１０は、ＰＩＤに対応するスワロウパターンに従ってクロックパルスをスワロウし得る。ランプダウン中にクロックスワロワ６１０が各ＰＩＤに対して費やす時間量は、対応するスワロウパターンの所定の繰り返しの数又は所定の時間持続時間に対応し得る。ランプダウンシーケンス中のＰＩＤは、シーケンス中の各後続のＰＩＤがより大きい割合のクロックパルススワロウに対応するように順序付けられる。故に、クロックスワロワ６１０がシーケンス中のＰＩＤを連続して通過すると、クロックスワロワ６１０は、クロックパルスの増加割合をスワロウする。
【００５７】
[0073]一実施形態では、コントローラ１１５は、メモリ中にテーブルを含み得、ここでは、テーブルは、各入力クロック信号Clk_a〜Clk_dのためのランプダウンシーケンスを備える。各入力クロック信号のためのランプダウンシーケンスは、上述したように、出力クロック信号Clk_outの周波数をランプダウンするためにクロックスワロワ６１０によって使用されることとなるパルススワロウパターンのシーケンスを識別するＰＩＤのシーケンスを備え得る。出力クロック信号Clk_outを、クロック信号Clk_a〜Clk_dのうちの現在のクロック信号のものから、クロック信号Clk_a〜 Clk_bのうちの新たなものに切り替えるとき、コントローラ１１５は、テーブルから現在の入力クロック信号のためのランプダウンシーケンスを取り出し、取り出されたランプダウンシーケンスに従って出力クロック信号の周波数をランプダウンするようクロックスワロワ６１０に命令し得る。
【００５８】
[0074]一実施形態では、各入力クロック信号のためのランプダウンシーケンスは、各入力クロック信号をＰＩＤのうちの１つにマッピングするクロックインデックスによって定義され得る。この実施形態では、各入力クロック信号のためのランプダウンシーケンスは、ランプダウンシーケンスの第１のステップでＰＩＤ０からマッピングされたＰＩＤにジャンプし得る。ランプダウンシーケンス中の残りのステップは、ランプダウン方向で残りのＰＩＤによって定義される。これは、図９に関連して例を用いて説明され得る。
【００５９】
[0075]図９は、例示的なクロックインデックスを示し、ここでは、各入力クロック信号Clk_a〜Clk_dは、ＰＩＤにマッピングされる。この例では、各入力クロック信号のためのランプダウンシーケンスは、ランプダウンシーケンスの第１のステップでＰＩＤ０からマッピングされたＰＩＤにジャンプする。ランプダウンシーケンス中の残りのステップは、図９の下向きの矢印によって示されるランプダウン方向で残りのＰＩＤによって定義される。
【００６０】
[0076]図９の例では、入力クロック信号Clk_bは、ＰＩＤ２にマッピングされる。故に、入力クロック信号Clk_bのためのランプダウンシーケンスは、次のように示され得る：
ＰＩＤ０→ＰＩＤ２→ＰＩＤ３→ＰＩＤ４→ＰＩＤ５→ＰＩＤ６→ＰＩＤ７。  
また、この例では、入力クロック信号Clk_cは、ＰＩＤ４にマッピングされる。故に、入力クロック信号Clk_cのためのランプダウンシーケンスは、次のように示され得る：
ＰＩＤ０→ＰＩＤ４→ＰＩＤ５→ＰＩＤ６→ＰＩＤ７。  
更に、この例では、入力クロック信号Clk_dは、ＰＩＤ６にマッピングされる。故に、入力クロック信号Clk_dのためのランプダウンシーケンスは、次のように示され得る：
ＰＩＤ０→ＰＩＤ６→ＰＩＤ７。  
最後に、この例では、入力クロック信号Clk_aがＰＩＤ０にマッピングされる。故に、入力クロック信号Clk_aのためのランプダウンシーケンスは、次のように示され得る：
ＰＩＤ０→ＰＩＤ１→ＰＩＤ２→ＰＩＤ３→ＰＩＤ４→ＰＩＤ５→ＰＩＤ６→ＰＩＤ７。  
この例では、入力クロック信号Clk_aのためのランプダウンシーケンスは、ランプダウン方向で図９中のＰＩＤの全てを通過する。
【００６１】
[0077]一実施形態では、ランプアップシーケンスは、ＰＩＤの対応するシーケンスによって、入力クロック信号ごとに定義され得る。入力クロック信号のＰＩＤのシーケンスは、出力クロック信号Clk_outが入力クロック信号によってもたらされる（ソースされる）とき、出力クロック信号Clk_outの周波数をランプアップするためにクロックスワロワ６１０によって使用されることとなるパルススワロウパターンのシーケンスを識別する。
【００６２】
[0078]この実施形態では、クロックスワロワ６１０は、シーケンス中の各ＰＩＤに従ってクロックスワロウを連続して実行することで、ＰＩＤのシーケンスに従ってランプアップを実行し得る。シーケンス中のＰＩＤごとに、クロックスワロワ６１０は、ＰＩＤに対応するスワロウパターンに従ってクロックパルスをスワロウし得る。ランプアップ中にクロックスワロワ６１０が各ＰＩＤに対して費やす時間量は、対応するスワロウパターンの所定の繰り返しの数又は所定の時間持続時間に対応し得る。ランプアップシーケンス中のＰＩＤは、シーケンス中の各後続のＰＩＤがより小さい割合のクロックパルススワロウに対応するように順序付けられる。故に、クロックスワロワ６１０がＰＩＤのシーケンス中のＰＩＤを連続して通過するため、クロックスワロワ６１０は、クロックパルスの減少割合をスワロウする。
【００６３】
[0079]一実施形態では、コントローラ１１５はメモリ中に、テーブルを含み得、ここでは、テーブルは、各入力クロック信号Clk_a〜Clk_dのためのランプアップシーケンスを備える。各入力クロック信号のためのランプアップシーケンスは、上述したように、出力クロック信号Clk_outの周波数をランプアップするためにクロックスワロワ６１０によって使用されることとなるパルススワロウパターンのシーケンスを識別するＰＩＤのシーケンスを備える。出力クロック信号Clk_outを、クロック信号Clk_a〜Clk_dのうちの現在のクロック信号のものから、クロック信号Clk_a〜Clk_ｂのうちの新たなものに切り替えるとき、コントローラ１１５は、新たな入力クロック信号のためのランプアップシーケンスをテーブルから取り出し、取り出されたランプアップシーケンスに従って新たな入力クロック信号がイネーブルにされると、出力クロック信号の周波数をランプアップするようクロックスワロワ６１０に命令し得る。
【００６４】
[0080]一実施形態では、各入力クロック信号のためのランプアップシーケンスは、各入力クロック信号をＰＩＤのうちの１つにマッピングするクロックインデックスによって定義され得る。この実施形態では、各入力クロック信号のためのランプアップシーケンスは、マッピングされたＰＩＤより高い割合のクロックパルススワロウを有する各ＰＩＤを介してランプアップ方向に順序付けし得る。マッピングされたＰＩＤに到達した後、ランプアップシーケンスは、マッピングされたＰＩＤからＰＩＤ０にジャンプし得る。これは、図９の例を使用して説明され得る。
【００６５】
[0081]この例では、各入力クロック信号のためのランプアップシーケンスは、ＰＩＤ７からマッピングされたＰＩＤへと、図９の上向きの矢印によって示されるランプアップ方向に順序付けられる。それぞれのマッピングされたＰＩＤに到達した後、各ランプアップシーケンスは、マッピングされたＰＩＤからＰＩＤ０にジャンプし得る。
【００６６】
[0082]図９の例では、入力クロック信号Clk_bは、ＰＩＤ２にマッピングされる。故に、入力クロック信号Clk_bのためのランプアップシーケンスは、次のように示され得る：
ＰＩＤ７→ＰＩＤ６→ＰＩＤ５→ＰＩＤ４→ＰＩＤ３→ＰＩＤ２→ＰＩＤ０。  
また、この例では、入力クロック信号Clk_cは、ＰＩＤ４にマッピングされる。故に、入力クロック信号Clk_cのためのランプアップシーケンスは、次のように示され得る：
ＰＩＤ７→ＰＩＤ６→ＰＩＤ５→ＰＩＤ４→ＰＩＤ０。  
更に、この例では、入力クロック信号Clk_dがＰＩＤ６にマッピングされる。故に、入力クロック信号Clk_dのためのランプアップシーケンスは、次のように示され得る：
ＰＩＤ７→ＰＩＤ６→ＰＩＤ０。  
最後に、この例では、入力クロック信号Clk_aは、ＰＩＤ０にマッピングされる。故に、入力クロック信号Clk_aのためのランプアップシーケンスは、次のように示され得る：
ＰＩＤ７→ＰＩＤ６→ＰＩＤ５→ＰＩＤ４→ＰＩＤ３→ＰＩＤ２→ＰＩＤ１→ＰＩＤ０。  
この例では、入力クロック信号Clk_aのためのランプアップシーケンスは、ランプアップ方向で図９中のＰＩＤの全てを通過する。この例では、ランプダウン及びランプアップに対して同じクロックインデックスが使用されるため、各入力クロック信号のためのランプアップシーケンスは、入力クロック信号のためのランプダウンシーケンスの逆である。
【００６７】
[0083]ランプダウン及びランプアップのためのクロックインデックスが異なり得ることは認識されるべきである。これに関連して、図１０は、ランプダウンのためのクロックインデックス及びランプアップのための別個のクロックインデックスの例を示す。この例では、ランプダウンのためのクロックインデックスは、図９のクロックインデックスと同じである。従って、図９及び１０についてのランプダウンシーケンスは、同じである。この例では、ランプアップのためのクロックインデックスは、入力クロック信号Clk_a、Clk_b、及びClk_cの各々をＰＩＤ０にマッピングし、入力クロック信号Clk_dをＰＩＤ２にマッピングする。故に、この例では、入力クロック信号Clk_a、Clk_b、及びClk_cの各々のためのランプアップシーケンスは次のように示され得る：
ＰＩＤ７→ＰＩＤ６→ＰＩＤ５→ＰＩＤ４→ＰＩＤ３→ＰＩＤ２→ＰＩＤ１→ＰＩＤ０。  
入力クロック信号Clk_dのためのランプアップシーケンスは、次のように示され得る：
ＰＩＤ７→ＰＩＤ６→ＰＩＤ５→ＰＩＤ４→ＰＩＤ３→ＰＩＤ２→ＰＩＤ０。
【００６８】
[0084]本開示の実施形態がクロック切替えに限られないことは認識されるべきである。例えば、本開示の実施形態は、電力を節減するために、プロセッサ１１０がアクティブモードからアイドルモードに遷移するとき出力クロック信号の周波数をランプダウンし、プロセッサ１１０がアクティブモードに遷移し戻るとき出力クロック信号の周波数をランプアップするために使用され得る。
【００６９】
[0085]これに関連して、図１１は、プロセッサ１１０の電力を管理するように構成された電力マネジャ１１１０と、プロセッサ１１０へのクロック信号を選択的にゲート制御するように構成されたクロックゲート回路１１１５とを更に備える例示的なシステム１１００を示す。一態様では、電力マネジャ１１１０は、プロセッサが使用されてないとき、電力を節減するためにプロセッサ１１０をアイドルモードにするように構成され得る。そのために、電力マネジャ１１００は、クロックゲート回路１１１５を使用してクロック信号をゲート制御し得る。クロック信号をゲート制御することは、プロセッサ１１０における大半の又は全ての切替えアクティビティを停止し、従って、プロセッサ１１０による動的電力消費を大幅に低減し得る。プロセッサ１１０が（例えば、命令を実行するために）後に必要とされるとき、電力マネジャ１１１０は、クロックゲート回路１１１５を使用してクロック信号をゲート解除することでプロセッサ１１０をアクティブモードに遷移し戻し得る。クロックゲート回路１１１５が、プロセッサ１１０中にあり、プロセッサ１１０がアイドルモードであるとき、プロセッサ１１０において内部クロック経路をゲート制御するように構成され得ることは認識されるべきである。
【００７０】
[0086]一実施形態では、電力マネジャ１１１０がプロセッサ１１０をアイドルモードにすると、電力マネジャ１１１０は、プロセッサ１１０への出力クロック信号Clk_outの周波数をランプダウンするようクロックコントローラ１１５に命令するアイドルモード信号をクロックコントローラ１１５に送り得る。電力マネジャ１１１０は、クロックゲート回路１１１５がプロセッサ１１０においてクロック信号をゲート制御する前にこれを行い得る。クロックコントローラ１１５は、出力クロック信号をもたらす（ソースする）入力クロック信号に対応するランプダウンシーケンスに従って出力クロック信号Clk_outの周波数をランプダウンし得る。ランプダウンシーケンスは、１つ又は複数のステップを備え得、ここでは、出力クロック信号の周波数が、各後続ステップで増加量だけ低減される。ランプ回路４１０は、上述したように、選択されたクロック信号Clk_selのクロック周波数を分周すること又は選択されたクロック信号Clk_selのパルスをスワロウすることで出力クロック信号の周波数をランプダウンし得る。
【００７１】
[0087]この実施形態では、クロックコントローラ１１５は、出力クロック信号Clk_outの周波数を、略ゼロヘルツまでずっと又は出力クロック信号Clk_outをもたらす（ソースする）入力クロック信号より低い周波数にランプダウンするようランプ回路４１０に命令し得る。ランプダウンが完了すると、クロックコントローラ１１５は、周波数がランプダウンされたことを電力マネジャ１１１０に知らせ得る。それに応じて、電力マネジャ１２０は、プロセッサ１１０をアイドルモードにするように、プロセッサ１１０へのクロック信号をゲート制御し得る。
【００７２】
[0088]出力クロック信号Clk_outの周波数をランプダウンすることは、プロセッサ１１０がアイドルモードにされるときのＰＤＮ上の電圧オーバシュートを低減し得る。これは、周波数をランプダウンすることが、全周波数（すなわち、出力クロック信号をソースする入力クロック信号の周波数）でプロセッサ１１０へのクロックをゲート制御することと比べてＰＤＮ上の電流負荷をより低いレートで減少させるためである。
【００７３】
[0089]この実施形態では、クロックコントローラ１１５は、プロセッサ１１０がアイドルモードであるとき出力クロック信号をディセーブルにし得る。例えば、クロックコントローラ１１５は、ランプダウンの終わりに、選択されたクロック信号Clk_selをディセーブルにし得る。
【００７４】
[0090]電力マネジャ１１１０がプロセッサ１１０をアクティブモードに遷移し戻すと、電力マネジャ１１１０は、出力クロック信号Clk_outの周波数を全周波数（すなわち、出力クロック信号をソースする入力クロック信号の周波数）にランプアップするようクロックコントローラ１１５に命令するアクティブモード信号をクロックコントローラ１１５に送り得る。電力マネジャ１１１０は、プロセッサ１１０へのクロック信号がゲート解除された後、周波数をランプアップし得る。クロックコントローラ１１５は、出力クロック信号をもたらす（ソースする）入力クロック信号に対応するランプアップシーケンスに従って出力クロック信号Clk_outの周波数をランプアップし得る。ランプアップシーケンスは、１つ又は複数のステップを備え得、ここでは、出力クロック信号の周波数が、各後続ステップで、より高い周波数へと増加される。ランプ回路４１０は、上述したように、時間と共に減少量だけ選択されたクロック信号Clk_selのクロック周波数を分周すること又は時間と共に選択されたクロック信号Clk_selのパルスの減少割合をスワロウすることで出力クロック信号の周波数をランプアップし得る。
【００７５】
[0091]出力クロック信号Clk_outの周波数をランプアップすることは、プロセッサ１１０がアクティブモードにされるときのＰＤＮ上の電圧ドループを低減し得る。これは、周波数をランプアップすることが、全周波数（すなわち、出力クロック信号をソースする入力クロック信号の周波数）でプロセッサ１１０へのクロックをゲート解除することと比べてＰＤＮ上の電流負荷をより低いレートで増加するためである。
【００７６】
[0092]一実施形態では、電力マネジャ１１１０は、プロセッサ１１０が割込み待ち（ＷＦＩ）命令、イベント待ち（ＷＦＥ）命令、又は他の命令を実行するとき、プロセッサ１１０をアイドルモードにし得る。プロセッサ１１０がアイドルモードにされた後、電力マネジャ１１１０は、電力マネジャ１１１０が割込み信号を受けるか特定のイベントが発生したときに、プロセッサ１１０をアクティブモードに遷移し戻す。割込み信号は、プロセッサを必要とするデバイス（例えば、周辺デバイス）から到来し得る。別の例では、割込み信号は、タイマから到来し得る。この例では、タイマは、プロセッサ１１０がアイドルモードにされると、カウンタをトリガし、カウンタのカウント値が予め決められ値に達すると、割込み信号を出力し得る。
【００７７】
[0093]別の例では、プロセッサ１１０（例えば、ＧＰＵ）は、複数の時間フレームにおいてデータを処理し得る。この例では、プロセッサ１１０は、次の時間フレームについてのデータが受信される前に、現在の時間フレームについてのデータを処理し終わり得る。このケースでは、プロセッサ１１０が現在の時間フレームについてのデータを処理し終わると、プロセッサ１１０は、現在のフレームについての処理が終了したことを電力マネジャ１１１０に知らせ得る。それに応じて、電力マネジャ１１１０は、電力を節減するためにプロセッサ１１０をアイドルモードにし得る。電力マネジャ１１１０は、次の時間フレームの開始時にプロセッサ１１０をアクティブモードに遷移し戻し得る。この例では、電力マネジャ１１１０は、時間フレームの境界を追跡するタイマを有し得る。これにより、電力マネジャ１１１０は、次の時間フレームの開始を決定すること、そして、次の時間フレームの開始時にプロセッサ１１０をアクティブモードに遷移し戻すことができる。
【００７８】
[0094]図１２は、アクティブモードとアイドルモードとの間でプロセッサを遷移するための例示的なプロシージャ１２００を示す。方法は、電力マネジャ１１１０、クロックコントローラ１１５、マルチプレクサ１２０、クロックゲート回路１１１５、及び／又はランプ回路４１０によって実行され得る。
【００７９】
[0095]ステップ１２１０では、クロック信号は、プロセッサに供給され、ここにおいて、プロセッサは、アクティブモードのプロセッサにおけるタイミング動作のためにクロック信号を使用する。例えば、クロック信号は、複数の入力クロック信号のうちの選択された１つをプロセッサ（例えば、プロセッサ１１０）に出力するマルチプレクサ（例えば、マルチプレクサ１２０）によって供給され得る。
【００８０】
[0096]ステップ１２２０では、クロック信号の周波数は、プロセッサがアイドルモードにされることとなると、ランプダウンされる。例えば、クロック信号の周波数は、時間と共にクロック信号のパルスの増加割合をスワロウすること又は時間と共にクロック信号の周波数を増加量で分周することでランプダウンされ得る。クロック信号は、略ゼロヘルツまでずっと又はより低い周波数にランプダウンされ得る。
【００８１】
ステップ１２３０では、クロック信号は、クロック信号の周波数をランプダウンした後にゲート制御される。例えば、クロック信号は、クロックゲート回路（例えば、クロックゲート回路１１１５）によってゲート制御され得る。
【００８２】
[0097]方法は、オプションで、プロセッサがアクティブモードに戻されることとなるときクロック信号をゲート解除することを含み得る。例えば、プロセッサは、上述したように、割込み信号に応答してアクティブに戻され得る。方法はまた、クロック信号がゲート解除された後にクロック信号の周波数をランプアップすることを備え得る。例えば、クロック信号の周波数は、時間と共にクロック信号のパルスの減少割合をスワロウすること又は時間と共に減少量だけクロック信号の周波数を分周することでランプアップされ得る。
【００８３】
[0087]一実施形態では、出力クロック信号は、プロセッサ１１０がアイドルモードである間マルチプレクサ１２０に出力クロック信号をディセーブルにさせることで、プロセッサ１１０がアイドルモードの間ゲート制御され得る。この実施形態では、クロックコントローラ１１５は、出力クロック信号Clk_outをディセーブルにするために、ランプダウンの終わりに、選択されたクロック信号Clk_selをディセーブルにするようマルチプレクサ１２０に命令し得る。クロックコントローラ１１５は、例えば、入力クロック信号の全てを選択解除することでこれを行い得る。プロセッサ１１０がアクティブモードに遷移し戻ると、クロックコントローラ１１５は、出力クロック信号Clk_outをイネーブルにするために、選択されたクロック信号Clk_selをイネーブルにするようマルチプレクサ１２０に命令し、選択されたクロック信号Clk_selがイネーブルにされると、ランプアップを開始し得る。クロックコントローラ１１５は、例えば、入力クロック信号のうちの１つを選択することでこれを行い得る。選択された入力クロック信号は、プロセッサ１１０が最後にアクティブモードであったときに選択された入力クロック信号と同じであり得る。この実施形態では、クロックゲート回路１１１５は、省略され得る。また、クロック信号は、マルチプレクサ１２０にクロック信号の出力をディセーブルにさせることで、方法１２００のステップ１２３０においてゲート制御され得る。
【００８４】
[0099]一実施形態では、周波数ランプ回路４１０は、温度緩和のために出力クロック信号Clk_outの周波数をスケーリング（スロットル）するために使用され得る。これに関連して、図１３は、温度コントローラ１３１０と、１つ又は複数の温度センサ１３２０とを更に備える例示的なシステム１３００を示す。
【００８５】
[0100]温度センサ１３２０は、プロセッサ１１０の温度を測定し、測定された温度を温度コントローラ１３１０に出力するように構成される。温度センサ１３２０は、プロセッサ１１０の正確な温度読み取りを得るために、プロセッサ１１０の近くに又はプロセッサ１１０内に位置し得る。温度コントローラ１３１０は、以下で更に説明されるように、測定された温度に基づいて、出力クロック信号Clk_outの周波数を制御するように構成される。
【００８６】
[0101]一実施形態では、温度コントローラ１３１０は、測定された温度を温度閾値と周期的に比較し得る。測定された温度が閾値を下回るとき、温度コントローラ１３１０は、出力クロック信号の周波数をそのままにし得る。測定された温度が閾値を上回るとき、温度コントローラ１３１０は、温度を下げるために温度緩和を始め得る。例えば、温度コントローラ１３１０は、出力クロック信号Clk_outの周波数を低減するよう求めるコマンドをクロックコントローラ１１５に出力し得る。それに応じて、クロックコントローラ１１５は、選択されたクロック信号Clk_selの周波数を特定量で分周すること又は選択されたクロック信号Clk_selのクロックパルスの特定の割合をスワロウすることで周波数を低減するよう周波数ランプ回路４１０に命令し得る。
【００８７】
[0102]周波数が低減された後、温度コントローラ１３１０は、測定された温度を温度閾値と周期的に比較し続け得る。測定された温度が依然として閾値を上回る場合、温度コントローラ１３１０は、出力クロック信号の周波数を更に低減するよう求めるコマンドをクロックコントローラ１１５に送り得る。出力クロック信号の周波数の低減は、プロセッサ１１０における動的電力散逸（dynamic power dissipation）を低減することで、プロセッサ１１０の温度を下げる。
【００８８】
[0103]測定された温度が温度閾値を下回るとき、温度コントローラ１３１０は、出力クロック信号の周波数がターゲット周波数（例えば、出力クロック信号をソースする入力クロック信号の周波数）を下回る場合、出力クロック信号Clk_outの周波数を増加するようクロックコントローラ１１５にコマンドし得る。それに応じて、クロックコントローラ１１５は、選択されたクロック信号Clk_selの周波数をより小さい量で分周するよう又は選択されたクロック信号Clk_selのクロックパルスのより小さい割合をスワロウするようランプ回路４１０に命令することで、周波数を増加し得る。出力クロック信号の周波数は、出力クロック信号の周波数低減により失われる性能を取り戻すために、温度が閾値を下回るとき増加される。
【００８９】
[0104]一般に、測定された温度が閾値を超えるとき、温度コントローラ１３１０は、上述したように、プロセッサ１１０の温度を低減するために、出力クロック信号の周波数を低減し得る。測定された温度が温度閾値を下回り、出力クロック信号の周波数がターゲット周波数を下回るとき、温度コントローラ１３１０は、プロセッサ１１０の性能を高めるために出力クロック信号の周波数を増加し得る。
【００９０】
[0105]上述したように、ランプ回路４１０は、選択されたクロック信号Clk_selのパルスを選択的にスワロウすることで、出力クロック信号の周波数をスケーリングするクロックスワロワを備え得る。この例では、クロックコントローラ１１５は、複数のパルススワロウパターンのうちの１つに従ってクロックパルスをスワロウするようランプ回路４１０に命令し得る。これに関連して、図１４は、熱緩和のためにクロックコントローラ１１５によって使用され得る８つのパルススワロウパターンの例を示す。この例では、各スワロウパターンは、一意的なＰＩＤに対応し得る。図１４に示される熱緩和のためのスワロウパターンは、図８に示されたクロック切替えのためのスワロウパターンに類似しているが、これに限られる必要がないことは認識されるべきである。スワロウパターンごとに、図１４は、出力クロック信号の対応する周波数を、出力クロック信号をソースする入力クロック信号のある割合として示す。
【００９１】
[0106]熱緩和が始まる前、クロックコントローラ１１５は、ＰＩＤ０をランプ回路４１０に入力し得、このケースでは、出力クロック信号Clk_outは、全周波数（すなわち、出力クロック信号をソースする入力クロック信号の周波数）である。測定された温度が閾値を超えると、温度コントローラ１３１０は、熱緩和を始め、出力クロック信号の周波数を低減するようクロックコントローラ１１５にコマンドし得る。それに応じて、制御コントローラ１１５は、ランプ回路４１０のスワロウパターンをＰＩＤ１に変更し得る。これは、図１４の例において、出力クロック信号の周波数を入力クロック信号の周波数の８７．５％に低減することをランプ回路４１０に行わせる。測定された温度が温度閾値を超え続ける場合、クロックコントローラ１１５は、出力クロック信号の周波数を更に低減するよう求める後続のコマンドを温度コントローラ１３１０から受け得る。クロックコントローラ１１５が、出力クロック信号の周波数を低減するよう求めるコマンドを受けるたびに、クロックコントローラ１１５は、ランプ回路４１０によって使用されている現在のスワロウパターンを、（図１４において下向きの矢印で示される）下向きの方向で、図１４に示される次のスワロウパターンに変更し得る。例えば、現在のスワロウパターンがＰＩＤ１に対応する場合、クロックコントローラ１１５は、ランプ回路４１０を、ＰＩＤ２に対応するスワロウパターンに変更し得る。
【００９２】
[0107]測定された温度が温度閾値を下回る場合、温度コントローラ１３１０は、出力クロック信号Clk_outの周波数を増加するようクロックコントローラ１１５にコマンドし得る。それに応じて、クロックコントローラ１１５は、現在のスワロウパターンを、（図１４において上向きの矢印で示される）上向きの方向で、図１４に示される次のスワロウパターンに変更し得る。例えば、現在のスワロウパターンがＰＩＤ３に対応する場合、クロックコントローラ１１５は、ランプ回路４１０を、ＰＩＤ２に対応するスワロウパターンに変更し得る。
【００９３】
[0108]故に、クロックコントローラ１１５は、温度コントローラ１３１０の制御下で、ランプ回路４１０のスワロウパターンを変更して、出力クロック信号の周波数を低減又は増加し得る。図１４に示されるスワロウパターンが例示的でしかないことは認識されるべきである。例えば、スワロウパターンは、より大きい数のビットを使用して定義され得る。これは、ランプ回路４１０によって使用され得る可能なスワロウパターンの数を増加し、故に、クロックコントローラが、出力クロック信号の周波数をより細かい粒度で調整することを可能にする。
【００９４】
[0109]一態様では、クロックコントローラ１１５は、所与の入力クロック周波数（すなわち、出力クロック信号をソースする入力クロック信号の周波数）について、１つ又は複数のスワロウパターンを省略し得る。これは、所与の入力クロック周波数について、特定のスワロウパターンが、ＰＤＮの共振を励振する、及び／又は、１つ又は複数の構成要素（例えば、受信機）に影響を及ぼす放射を引き起こす出力クロック周波数をもたらし得るためである。例えば、ＰＩＤ２に対応するスワロウパターンが、入力クロック信号Clk_aについてＰＤＮの共振を励振する出力クロック信号をもたらす場合、クロックコントローラ１１５は、出力クロック信号が入力クロック信号Clk_aによってソースされるときの熱緩和中は、このスワロウパターンを省略し得る。
【００９５】
[0110]所与の入力クロック信号について熱緩和のために省略されるスワロウパターンは、この所与の入力クロック信号についてのクロック切替え中、ランプダウン又はランプアップに対して使用され得る。これは、出力クロック信号が、ランプダウン又はランプアップ中、非常に短い時間期間の間、ＰＤＮ共振を励起する周波数のままであり得、従って、ランプダウン又はランプアップに対してそれほど重要ではないためである。
【００９６】
[0111]一実施形態では、クロックコントローラ１１５は、熱緩和中に入力クロック信号を切り替えるよう求める要求を受け得る。より具体的には、クロックコントローラ１１５は、クロックコントローラ１１５が熱緩和により出力クロック信号の周波数をスケーリング（スロットル）している間に、出力クロックを入力クロック信号Clk_a〜Clk_dのうちの現在のものから入力クロック信号のうちの新たなものに切り替えるよう求める要求をプロセッサ１１０から受け得る。要求を受けた時点では、ランプ回路４１０は、ＰＩＤ０の代わりに温度コントローラ１３１０によって設定されたＰＩＤに対応するスワロウパターンに従ってクロックパルスをスワロウしている可能性がある。このケースでは、クロックコントローラ１１５は、ＰＩＤ０の代わりに温度コントローラ１３１０によって現在設定されているスワロウパターンから開始する出力クロック信号をランプダウンし得る。
【００９７】
[0112]故に、現在の入力クロック信号のためのランプダウンシーケンスは、温度コントローラ１３１０によって現在設定されているＰＩＤに対応するスワロウパターンから開始し得る。換言すると、ランプダウンシーケンスは、全周波数（すなわち、現在の入力クロック信号の周波数）から開始するのではなく、温度コントローラ１３１０によって現在設定されている出力クロック周波数から開始し得る。例えば、温度コントローラ１３１０によって現在設定されているスワロウパターンがＰＩＤ２に対応する場合、クロックコントローラ１１５は、ＰＩＤ２に対応するスワロウパターンから開始する出力クロック信号をランプダウンし得る。図１０の例を使用して、現在の入力クロック信号が入力クロック信号Clk_cである場合、ランプダウンシーケンスは、熱緩和のない場合のＰＩＤ０→ＰＩＤ４→ＰＩＤ５→ＰＩＤ６→ＰＩＤ７の代わりにＰＩＤ２→ＰＩＤ４→ＰＩＤ５→ＰＩＤ６→ＰＩＤ７である。現在の入力クロック信号が入力クロック信号Clk_bである場合、ランプダウンシーケンスは、熱緩和のない場合のＰＩＤ０→ＰＩＤ２→ＰＩＤ３→ＰＩＤ４→ＰＩＤ５→ＰＩＤ６→ＰＩＤ７の代わりにＰＩＤ２→ＰＩＤ３→ＰＩＤ４→ＰＩＤ５→ＰＩＤ６→ＰＩＤ７である。
【００９８】
[0113]新たな入力クロック信号に切り替わった後、新たな入力クロック信号のためのランプアップシーケンスは、（全周波数に対応する）ＰＩＤ０の代わりに温度コントローラ１３１０によって現在設定されているＰＩＤに対応するスワロウパターンで終了し得る。例えば、温度コントローラ１３１０によって現在設定されているスワロウパターンがＰＩＤ２に対応する場合、クロックコントローラ１１５は、ＰＩＤ２に対応するスワロウパターンに出力クロック信号をランプアップし得る。図１０の例を使用して、現在の入力クロック信号が入力クロック信号Clk_aである場合、ランプアップシーケンスは、熱緩和のない場合のＰＩＤ７→ＰＩＤ６→ＰＩＤ５→ＰＩＤ４→ＰＩＤ３→ＰＩＤ２→ＰＩＤ１→ＰＩＤ０の代わりに、ＰＩＤ７→ＰＩＤ６→ＰＩＤ５→ＰＩＤ４→ＰＩＤ３→ＰＩＤ２である。
【００９９】
[0114]上の実施形態では、ランプダウンのための開始スワロウパターンは、ランプアップのための最終スワロウパターンと同じである。これは、温度コントローラ１３１０の実施を簡略化するために行われ得る。別の実施形態では、同じスワロウパターンが、入力クロック周波数によって異なる出力クロック周波数に対応し得るため、ランプアップのための最終スワロウパターンは異なり得る。この実施形態では、クロックコントローラ１１５は、現在の入力クロック信号のＰＩＤを新たな入力クロック信号のＰＩＤにマッピングするクロックテーブルをメモリ中に含み得る。例えば、現在の入力クロック信号が２ＧＨｚの周波数を有し、新たな入力クロック信号が１ＧＨｚの周波数を有する場合、テーブルは、現在の入力クロック信号のＰＩＤ６を、新たな入力クロック信号のＰＩＤ４にマッピングし得る。これは、２ＧＨｚの２５％が１ＧＨｚの５０％に略等しいためである。この例では、クロックテーブルはまた、現在の入力クロック信号のＰＩＤ２を、新たな入力クロック信号のＰＩＤ０にマッピングし得る。
【０１００】
[0115]この実施形態では、クロックコントローラ１１５が、熱緩和中に出力クロックを現在の入力クロック信号から新たな入力クロック信号に切り替えるよう求める要求を受けると、クロックコントローラ１１５は、ＰＩＤ０の代わりに温度コントローラ１３１０によって現在設定されているスワロウパターンから出力クロック信号の周波数をランプダウンし得る。クロックコントローラ１１５はまた、クロックテーブルを使用して、温度コントローラ１３１０によって設定された現在の入力クロック信号のＰＩＤにマッピングされる新たな入力クロック信号のＰＩＤを決定し得る。次いで、クロックコントローラ１１５は、新たな入力クロック信号をイネーブルにし、出力クロック信号の周波数をマッピングされたＰＩＤにランプアップし得る。故に、この例では、温度コントローラ１３１０によって設定されたＰＩＤは、マルチプレクサ１２０が、入力クロック信号間の周波数差を考慮するために入力クロック信号を切り替えるとき更新される。
【０１０１】
[0116]一実施形態では、クロック切替えのための周波数ランプダウン／アップに対して使用されるのとは異なるスワロウパターンのセットが温度緩和に対して使用され得る。この実施形態では、温度緩和に対して使用されるスワロウパターンのセットは、対応するＰＩＤを有し得、周波数ランプダウン／アップに対して使用されるスワロウパターンのセットは、対応するＰＩＤを有し得る。クロックコントローラ１１５は、温度緩和のためのＰＩＤを周波数ランプダウン／アップのためのＰＩＤにマッピングするリンクテーブルを含み得る。例えば、温度緩和のためのＰＩＤは、同様の割合のクロックパルススワロウに対応するランプダウン／アップのためのＰＩＤにマッピングされ得る。
【０１０２】
[0117]この実施形態では、クロックコントローラ１１５が、熱緩和中に入力クロック信号を切り替えるよう求める要求を受けると、クロックコントローラ１１５は、リンクテーブルを使用して、温度コントローラ１３１０によって設定された現在のＰＩＤを、ランプダウン／アップのための対応するＰＩＤにマッピングし得る。次いで、クロックコントローラ１１５は、マッピングされたＰＩＤに対応するスワロウパターンから出力クロック信号をランプダウンし得る。故に、現在の入力クロック信号のためのランプダウンシーケンスは、マッピングされたＰＩＤ（すなわち、温度コントローラ１３１０によって現在設定されている熱緩和のためのＰＩＤに対応するランプダウン／アップのためのＰＩＤ）に対応するスワロウパターンから開始し得る。
【０１０３】
[0118]出力クロック信号が新たな入力クロック信号でイネーブルにされると、クロックコントローラ１１５は、出力クロック信号を、マッピングされたＰＩＤに対応するスワロウパターンにランプアップし得る。故に、新たな入力クロック信号のためのランプアップシーケンスは、マッピングされたＰＩＤに対応するスワロウパターンで終了し得る。次いで、クロック信号コントローラ１１５は、温度コントローラ１３１０によって設定されたスワロウパターン（すなわち、温度コントローラ１３１０によって現在設定されているＰＩＤ）で熱緩和を継続し得る。
【０１０４】
[0119]一実施形態では、クロックコントローラ１１５はまた、上述したクロックテーブルを使用して入力クロック信号を切り替えるとき、熱緩和のためのＰＩＤを更新し得る。この実施形態では、クロックコントローラ１１５が、熱緩和中に入力クロック信号を切り替えるよう求める要求を受けると、クロックコントローラ１１５は、リンクテーブルを使用して、温度コントローラ１３１０によって設定された現在のＰＩＤを、ランプダウン／アップのための対応するＰＩＤにマッピングし得る。温度コントローラ１３１０によって現在設定されている熱緩和のためのＰＩＤに対応するランプダウン／アップのためのＰＩＤは、ランプダウンのための開始ＰＩＤと呼ばれ得る。次いで、クロックコントローラ１１５は、開始ＰＩＤに対応するスワロウパターンから出力クロック信号をランプダウンし得る。
【０１０５】
[0120]クロックコントローラ１１５はまた、クロックテーブルを使用して現在の入力クロック信号の開始ＰＩＤにマッピングされる新たな入力クロック信号のＰＩＤを決定し得る。現在の入力クロック信号の開始ＰＩＤにマッピングされる新たな入力クロック信号のＰＩＤは、ランプアップのための最終ＰＩＤと呼ばれ得る。クロックコントローラ１１５はまた、リンクテーブルを使用して最終ＰＩＤにマッピングされる熱緩和のためのＰＩＤを決定し得る。
【０１０６】
[0121]出力クロック信号が新たな入力クロック信号でイネーブルにされると、クロックコントローラ１１５は、最終ＰＩＤに対応するスワロウパターンに出力クロック信号をランプアップし得る。故に、新たな入力クロック信号のためのランプアップシーケンスは、最終ＰＩＤに対応するスワロウパターンで終了し得る。次いで、クロック信号コントローラ１１５は、最終ＰＩＤに対応する熱緩和のためのＰＩＤ（すなわち、最終ＰＩＤにマッピングされる熱緩和のためのＰＩＤ）において熱緩和を継続し得る。
【０１０７】
[0122]上の例では、クロック回路１４０は、マルチプレクサを使用して選択可能なクロック周波数を有する複数の入力クロックClk_a〜Clk_dから選択することで、選択されたクロック信号Clk_selを複数の選択可能なクロック周波数間で切り替える。しかしながら、本開示の実施形態がこの例に限られないことは認識されるべきである。これに関連して、図１５は、クロック回路１５５０が、選択可能なクロック周波数を有するＰＬＬ１５４０を備えるシステム１５００の例を示す。
【０１０８】
[0123]この例では、ＰＬＬ１５４０は、位相周波数検出器（ＰＦＤ）１５１０と、電荷ポンプ１５１５と、ループフィルタ１５２０と、電圧制御型発振器（ＶＣＯ）１５２５と、フィードバック分周器１５３０とを備える。ＶＣＯ１５２５の出力は、選択されたクロック信号Clk_selをランプ回路４１０に供給する。クロック信号Clk_selは、フィードバック信号を作り出すために、クロック信号の周波数を調節可能な除数Ｎで分周する分周器１５３０を通してＰＦＤ１５１０にフィードバックされる。
【０１０９】
[0124]ＰＦＤ１５１０は、入力として、フィードバック信号及び基準クロック信号を受ける。基準クロック信号は、水晶発振器又は別の安定クロック源から到来し得る。ＰＦＤ１５１０は、フィードバック信号と基準信号との間の位相差（誤差）を検出し、検出された位相差（誤差）を電荷ポンプ１５１５に出力する。電荷ポンプ１５１５及びループフィルタ１５２０は、検出された位相差を、ＶＣＯ１４０の周波数、故に、選択されたクロック信号Clk_selの周波数を制御する制御電圧へと変換する。制御電圧は、基準クロック信号とフィードバック信号との間の位相差（誤差）を低減する方向でＶＣＯ１５２５の周波数を調整する。ＰＬＬ１５４０がロックされているとき、クロック信号Clk_selの周波数は、Ｎ×基準クロック信号の周波数に略等しいであろう。故に、クロック信号Clk_selの周波数は、分周器１５３０の除数Ｎを調整することで調整されることができる。
【０１１０】
[0125]この例では、クロックコントローラ１１５は、分周器１５３０の除数Ｎを適宜調整することで、クロック信号Clk_selを、複数の選択可能なクロック周波数のうちの任意の１つに切り替え得る。例えば、クロックコントローラ１１５は、除数Ｎを現在の選択されたクロック周波数に対応する除数値から新たな選択されたクロック周波数に対応する除数値に変更することで、選択されたクロック信号Clk_selを現在の選択されたクロック周波数から新たな選択されたクロック周波数へと切り替え得る。この例では、クロックコントローラ１１５は、現在の選択されたクロック周波数がディセーブルにされる前に出力クロック信号Clk_outの周波数をランプダウンするようランプ回路４１０に命令し得る。ランプ回路４１０は、時間と共に選択されたクロック信号Clk_selのパルスの増加割合をスワロウすること又は時間と共に増加量だけ選択されたクロック信号Clk_selの周波数を分周することで、出力クロック信号Clk_outの周波数をランプダウンし得る。ランプダウンシーケンスを決定するためにクロックインデックス（例えば、図９のクロックインデックス）が使用される例の場合、クロックインデックスは、選択可能なクロック周波数の各々をインデックス中のＰＩＤのうちの１つにマッピングし得る。
【０１１１】
[0126]選択されたクロック信号Clk_selが、新たな選択されたクロック周波数に切り替えられた後、クロックコントローラ１１５は、出力クロック信号Clk_outの周波数をランプアップするようランプ回路４１０に命令し得る。ランプ回路４１０は、時間と共に選択されたクロック信号Clk_selのパルスの減少割合をスワロウすること又は時間と共に減少量だけ選択されたクロック信号Clk_selの周波数を分周することで、出力クロック信号Clk_outの周波数をランプアップし得る。ランプアップシーケンスを決定するためにクロックインデックス（例えば、図９のクロックインデックス）が使用される例の場合、クロックインデックスは、選択可能なクロック周波数の各々をインデックス中のＰＩＤのうちの１つにマッピングし得る。
【０１１２】
[0127]一態様では、クロック回路１５５０は、ＰＬＬ１５４０の出力とランプ回路４１０との間にゲート制御回路（図示されない）を含み得る。ゲート制御回路は、ＰＬＬが現在の選択されたクロック周波数から新たな選択されたクロック周波数に切り替わる短時間期間の間ＰＬＬの出力をゲート制御するように構成され得る。短時間期間は、新たな選択されたクロック周波数において、選択されたクロック信号Clk_outの出力をイネーブルにする前に、新たな選択されたクロック周波数で安定するのに十分な時間をＰＬＬに供給するために使用され得る。選択されたクロック信号Clk_selがクロック回路１１５０から出力されない短時間期間は、上述したアイドル期間に類似する。この態様では、出力クロック信号Clk_outは、クロック回路１５５０がクロック周波数を切り替えるとき、電圧オーバシュート及び／又は電圧ドループを低減するためにランプダウン及び／又はランプアップされ得る。
【０１１３】
[0128]上述した実施形態のうちの任意のものに係るクロックコントローラが、汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又は他のプログラマブル論理デバイス、ディスクリートゲート又はトランジスタ論理、ディスクリートハードウェア構成要素、又は本明細書で説明された機能を実行するように設計されたこれらの任意の組み合わせで実施され得ることは認識されるべきである。汎用プロセッサは、マイクロプロセッサであり得るが、代替的に、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであり得る。プロセッサは、本明細書で説明された遅延コントローラの機能を実行するためのコードを備えるソフトウェアを実行することで、これらの機能を実行し得る。ソフトウェアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、光ディスク、及び／又は磁気ディスクのようなコンピュータ読取可能な記憶媒体に記憶され得る。
【０１１４】
[0129]本開示の先の説明は、当業者による本開示の実行又は使用を可能にするために提供される。本開示に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義された包括的な原理は、本開示の精神又は範囲から逸脱せずに、他の変形に適用され得る。故に、本開示は、本明細書で説明された例に限られるよう意図されず、本明細書に開示された原理及び新規な特徴に合致する最も広い範囲が与えられるべきである。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
システムであって、
第１のクロック信号を生成するように構成されたクロック回路と、
前記クロック回路から前記第１のクロック信号を受け、前記第１のクロック信号に基づいて第２のクロック信号を提供し、前記第２のクロック信号の周波数を調整するように構成された周波数ランプ回路と、
前記第２のクロック信号の前記周波数をランプダウンするよう前記周波数ランプ回路に命令するように構成されたクロックコントローラと
を備えるシステム。
［Ｃ２］
前記周波数ランプ回路は、前記第１のクロック信号のパルスを選択的にスワロウすることで、前記第２のクロック信号の前記周波数を調整するように構成される、Ｃ１に記載のシステム。
［Ｃ３］
前記周波数ランプ回路は、複数のステップの各後続ステップで、前記第１のクロック信号のパルスのより高い割合をスワロウすることで、前記複数のステップで前記第２のクロック信号の前記周波数をランプダウンするように構成される、Ｃ２に記載のシステム。
［Ｃ４］
前記周波数ランプ回路は、前記第１のクロック信号の周波数を分周することで、前記第２のクロック信号の前記周波数を調整するように構成される、Ｃ１に記載のシステム。
［Ｃ５］
前記周波数ランプ回路は、複数のステップの各後続ステップで前記第１のクロック信号の前記周波数をより大きい量で分周することで、前記複数のステップで前記第２のクロック信号の前記周波数をランプダウンするように構成される、Ｃ４に記載のシステム。
［Ｃ６］
前記第２のクロック信号は、プロセッサに供給され、前記クロックコントローラは、前記プロセッサが割込み待ち（ＷＦＩ）命令又はイベント待ち（ＷＦＥ）命令を実行することに応答して、前記第２のクロック信号の前記周波数をランプダウンするよう前記周波数ランプ回路に命令するように構成される、Ｃ１に記載のシステム。
［Ｃ７］
前記クロック回路は、複数の入力クロック信号を受け、前記入力クロック信号のうちの１つを選択し、前記入力クロック信号のうちの前記選択された１つを前記第１のクロック信号として出力するように構成されたマルチプレクサを備える、Ｃ１に記載のシステム。
［Ｃ８］
前記クロック回路は、前記第１のクロック信号を第１のクロック周波数から第２のクロック周波数に切り替えるように構成され、前記クロックコントローラは、前記切替えの前に前記第２のクロック信号の前記周波数をランプダウンするよう前記ランプ回路に命令するように構成される、Ｃ１に記載のシステム。
［Ｃ９］
前記クロックコントローラは、前記切替えの後に前記クロック信号の前記周波数をランプアップするよう前記ランプ回路に命令するように構成される、Ｃ８に記載のシステム。
［Ｃ１０］
前記周波数ランプ回路は、複数のステップの各後続ステップで前記第１のクロック信号のパルスのより小さい割合をスワロウすることで、前記複数のステップで前記第２のクロック信号の前記周波数をランプアップするように構成される、Ｃ９に記載のシステム。
［Ｃ１１］
前記周波数ランプ回路は、複数のステップの各後続ステップで前記第１のクロック信号の周波数をより小さい量で分周することで、前記複数のステップで前記第２のクロック信号の前記周波数をランプアップするように構成される、Ｃ９に記載のシステム。
［Ｃ１２］
前記第２のクロック信号は、プロセッサに供給され、前記クロックコントローラは、前記プロセッサがアクティブモードからアイドルモードに遷移することとなることを示すインジケーションに応答して、前記第２のクロック信号の前記周波数をランプダウンするよう前記周波数ランプ回路に命令するように構成される、Ｃ１に記載のシステム。
［Ｃ１３］
前記第２のクロック信号の前記周波数のランプダウンの後に、前記第２のクロック信号をゲート制御するように構成されたゲート回路を更に備える、Ｃ１２に記載のシステム。
［Ｃ１４］
前記ゲート回路は、前記プロセッサが前記アクティブモードに戻されこととなるとき前記第２のクロック信号をゲート解除するように構成され、前記クロックコントローラは、前記第２のクロック信号がゲート解除された後に、前記第２のクロック信号の前記周波数をランプアップするよう前記ランプ回路に命令するように構成される、Ｃ１３に記載のシステム。
［Ｃ１５］
クロック周波数切替えのための方法であって、
第２のクロック信号の周波数をランプダウンすることと、ここにおいて、前記第２のクロック信号は、第１のクロック信号からもたらされる、
前記第２のクロック信号をディセーブルにすることと、
前記第２のクロック信号がディセーブルにされた後に、前記第１のクロック信号を第１のクロック周波数から第２のクロック周波数に切り替えることと、
前記第１のクロック信号が前記第２のクロック周波数に切り替えられた後に、前記第２のクロック信号をイネーブルにすることと、
前記第２のクロック信号の前記周波数をランプアップすることと
を備える方法。
［Ｃ１６］
前記第２のクロック信号の前記周波数をランプダウンすることは、時間と共に前記第１のクロック信号のパルスの増加割合をスワロウすることを備える、Ｃ１５に記載の方法。
［Ｃ１７］
前記第２のクロック信号の前記周波数をランプダウンすることは、時間と共に前記第１のクロック信号の周波数を増加量だけ分周することを備える、Ｃ１５に記載の方法。
［Ｃ１８］
前記第２のクロック信号の前記周波数をランプアップすることは、時間と共に前記第１のクロック信号のパルスの減少割合をスワロウすることを備える、Ｃ１５に記載の方法。
［Ｃ１９］
前記第２のクロック信号の前記周波数をランプアップすることは、時間と共に前記第１のクロック信号の周波数を減少量だけ分周することを備える、Ｃ１５に記載の方法。
［Ｃ２０］
前記第２のクロック信号は、プロセッサに入力され、前記第２のクロック信号の前記周波数をランプダウンすることは、前記第１のクロック周波数から前記第２のクロック周波数に切り替えることを求める前記プロセッサからの要求に応答して実行される、Ｃ１５に記載の方法。
［Ｃ２１］
クロック周波数切替えのための装置であって、
第２のクロック信号の周波数をランプダウンするための手段と、ここにおいて、前記第２のクロック信号は、第１のクロック信号からもたらされる、
前記第２のクロック信号をディセーブルにするための手段と、
前記第２のクロック信号がディセーブルにされた後に、前記第１のクロック信号を第１のクロック周波数から第２のクロック周波数に切り替えるための手段と、
前記第１のクロック信号が前記第２のクロック周波数に切り替えられた後に、前記第２のクロック信号をイネーブルにするための手段と、
前記第２のクロック信号の前記周波数をランプアップするための手段と
を備える装置。
［Ｃ２２］
前記第２のクロック信号の前記周波数を前記ランプダウンするための手段は、時間と共に前記第１のクロック信号のパルスの増加割合をスワロウするための手段を備える、Ｃ２１に記載の装置。
［Ｃ２３］
前記第２のクロック信号の前記周波数を前記ランプダウンするための手段は、時間と共に前記第１のクロック信号の周波数を増加量だけ分周するための手段を備える、Ｃ２１に記載の装置。
［Ｃ２４］
前記第２のクロック信号の前記周波数を前記ランプアップするための手段は、時間と共に前記第１のクロック信号のパルスの減少割合をスワロウするための手段を備える、Ｃ２１に記載の装置。
［Ｃ２５］
前記第２のクロック信号の前記周波数を前記ランプアップするための手段は、時間と共に前記第１のクロック信号の周波数を減少量だけ分周するための手段を備える、Ｃ２１に記載の装置。
［Ｃ２６］
前記第２のクロック信号は、プロセッサに入力され、前記第２のクロック信号の前記周波数を前記ランプダウンするための手段は、前記第１のクロック周波数から前記第２のクロック周波数に切り替えることを求める前記プロセッサからの要求に応答して、前記第２のクロック信号の前記周波数をランプダウンする、Ｃ２１に記載の装置。
【図１Ａ】
0006595092.tif 000002
【図１Ｂ】
0006595092.tif 000003
【図１Ｃ】
0006595092.tif 000004
【図２】
0006595092.tif 000005
【図３】
0006595092.tif 000006
【図４】
0006595092.tif 000007
【図５】
0006595092.tif 000008
【図６】
0006595092.tif 000009
【図７Ａ】
0006595092.tif 000010
【図７Ｂ】
0006595092.tif 000011
【図８】
0006595092.tif 000012
【図９】
0006595092.tif 000013
【図１０】
0006595092.tif 000014
【図１１】
0006595092.tif 000015
【図１２】
0006595092.tif 000016
【図１３】
0006595092.tif 000017
【図１４】
0006595092.tif 000018
【図１５】
0006595092.tif 000019