(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-02
(45)【発行日】2024-08-13
(54)【発明の名称】切換式適応クロッキングのための方法及び装置
(51)【国際特許分類】
G06F 1/324 20190101AFI20240805BHJP
G06F 1/3206 20190101ALI20240805BHJP
G06F 1/08 20060101ALI20240805BHJP
【FI】
G06F1/324
G06F1/3206
G06F1/08 510
(21)【出願番号】P 2021570203
(86)(22)【出願日】2020-04-03
(86)【国際出願番号】 US2020026695
(87)【国際公開番号】W WO2020263378
(87)【国際公開日】2020-12-30
【審査請求日】2023-03-28
(32)【優先日】2019-06-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】マジュムデル,タルボ
(72)【発明者】
【氏名】チョウ,ミンキ
(72)【発明者】
【氏名】トクナガ,カルロス
(72)【発明者】
【氏名】モサリカンティ,プラヴィーン
(72)【発明者】
【氏名】クルド,ナセル エー.
(72)【発明者】
【氏名】ケラー,ムハンマド エム.
【審査官】豊田 真弓
(56)【参考文献】
【文献】米国特許第09628089(US,B1)
【文献】特開2007-095052(JP,A)
【文献】米国特許出願公開第2017/0300080(US,A1)
【文献】特開平10-275023(JP,A)
【文献】国際公開第2004/095240(WO,A2)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/324
G06F 1/3206
G06F 1/08
(57)【特許請求の範囲】
【請求項1】
装置であって、
切換式適応クロッキング回路を有し、当該切換式適応クロッキング回路は、
デジタル制御発振器クロックを生成するデジタル制御発振器と、
メインクロックを生成するクロック発生器と、
ドループ検出信号の状態に基づいて、前記メインクロック又は前記デジタル制御発振器クロックの一方を出力クロックとして出力する、グリッチフリーマルチプレクサと、
を有
し、
基準クロックが前記デジタル制御発振器及び前記クロック発生器の双方に入力され、第1のクロック比が前記クロック発生器に入力され、第2のクロック比が前記デジタル制御発振器に入力され、前記第2のクロック比が前記第1のクロック比よりも低いことで、前記クロック発生器によって出力される前記メインクロックよりも低い周波数を持つデジタル制御発振器クロックを提供する、
装置。
【請求項2】
電圧ドループの検出を受けて、前記デジタル制御発振器クロックが前記出力クロックとして出力される、請求項1に記載の装置。
【請求項3】
前記デジタル制御発振器クロックは、前記電圧ドループの検出時にドループ伸長可能である、請求項2に記載の装置。
【請求項4】
前記電圧ドループからの回復を受けて、前記メインクロックが前記出力クロックとして出力される、請求項2に記載の装置。
【請求項5】
前記メインクロックを提供する前記クロック発生器は、通常動作中及びドループ発生中にロックされる位相ロックループを含む、請求項1に記載の装置。
【請求項6】
前記切換式適応クロッキング回路は、動的電圧周波数スケーリング(DVFS)回路である、請求項1に記載の装置。
【請求項7】
クロッキング回路にて実行される方法であって、
デジタル制御発振器により、デジタル制御発振器クロックを生成し、
クロック発生器により、メインクロックを生成し、
グリッチフリーマルチプレクサにより、ドループ検出信号の状態に基づいて、前記メインクロック又は前記デジタル制御発振器クロックの一方を出力クロックとして出力する、
ことを有
し、
基準クロックが前記デジタル制御発振器及び前記クロック発生器の双方に入力され、第1のクロック比が前記クロック発生器に入力され、第2のクロック比が前記デジタル制御発振器に入力され、前記第2のクロック比が前記第1のクロック比よりも低いことで、前記クロック発生器によって出力される前記メインクロックよりも低い周波数を持つデジタル制御発振器クロックを提供する、
方法。
【請求項8】
電圧ドループの検出を受けて、前記デジタル制御発振器クロックが前記出力クロックとして出力される、請求項
7に記載の方法。
【請求項9】
前記デジタル制御発振器クロックは、前記電圧ドループの検出時にドループ伸長可能である、請求項
8に記載の方法。
【請求項10】
前記電圧ドループからの回復を受けて、前記メインクロックが前記出力クロックとして出力される、請求項
8に記載の方法。
【請求項11】
前記メインクロックを提供する前記クロック発生器は、通常動作中及びドループ発生中にロックされる位相ロックループを含む、請求項
7に記載の方法。
【請求項12】
前記クロッキング回路は、動的電圧周波数スケーリング(DVFS)回路である、請求項
7に記載の方法。
【請求項13】
請求項
7乃至
12のいずれか一項に記載の方法を実行する手段を有する装置。
【請求項14】
システムであって、
切換式適応クロッキング回路を有するプロセッサであり、
前記切換式適応クロッキング回路は、
デジタル制御発振器クロックを提供するデジタル制御発振器、
メインクロックを提供するクロック発生器、及び
ドループ検出信号の状態に基づいて、前記メインクロック又は前記デジタル制御発振器クロックの一方を出力クロックとして出力する、グリッチフリーマルチプレクサ、
を有する、プロセッサと、
前記プロセッサに通信可能に結合されたディスプレイと、
を有
し、
基準クロックが前記デジタル制御発振器及び前記クロック発生器の双方に入力され、第1のクロック比が前記クロック発生器に入力され、第2のクロック比が前記デジタル制御発振器に入力され、前記第2のクロック比が前記第1のクロック比よりも低いことで、前記クロック発生器によって出力される前記メインクロックよりも低い周波数を持つデジタル制御発振器クロックを提供する、
システム。
【請求項15】
電圧ドループの検出を受けて、前記デジタル制御発振器クロックが前記出力クロックとして出力される、請求項
14に記載のシステム。
【請求項16】
前記デジタル制御発振器クロックは、前記電圧ドループの検出時にドループ伸長可能である、請求項
15に記載のシステム。
【請求項17】
前記電圧ドループからの回復を受けて、前記メインクロックが前記出力クロックとして出力される、請求項
15に記載のシステム。
【請求項18】
前記メインクロックを提供する前記クロック発生器は、通常動作中及びドループ発生中にロックされる位相ロックループを含む、請求項
14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、METHOD AND APPARATUS FOR SWITCHED ADAPTIVE CLOCKINGと題されて2019年6月27日に出願された米国特許出願第16/455,162号に対する優先権を主張するものであり、それをその全体にてここに援用する。
【0002】
この開示は、適応クロッキング技術に関し、特に、電圧の一時的な低下に比例してクロック周波数を適応させることに関する。
【背景技術】
【0003】
回路の最大動作周波数は、回路のクリティカルパスの遅延によって決定される。最大動作周波数は、供給電圧により生成されるノイズ(交流(AC)及び直流(DC))によって影響を受ける。
【0004】
大きいスイッチング負荷は、供給電圧の一時的な低下(電圧ドループとも呼ばれる)につながる高速な電流勾配(電流のサージ)によって特徴付けられる。これらの条件下で回路の機能的精度を保証する従来の方法は、周波数保護バンド(ガードバンド)を使用しており、これは、供給電圧の下落中の不具合を防止するために、所与の動作電圧での最大許容周波数と同じ電圧での動作周波数との間にマージンを設けるものである。
【0005】
固定された控えめに選択される動作周波数は、スループット低下という代償の下で、供給電圧の一時的な低下に対する回路レジリエンシを提供する。あるいは、電力を犠牲にして最大許容周波数で回路を動作させことを可能にするよう、所与の動作電圧に電圧保護バンドが付加される。
【図面の簡単な説明】
【0006】
以下の詳細な説明が進むにつれて、そして、図面を参照することで、特許請求に係る事項の実施形態の特徴が明らかになる。図面において、同様の部分は似通った参照符号で示す。
【
図1】電源及び切換式適応クロッキングを実行するためのダイ上の機能ブロックを含むシステムのブロック図である。
【
図2】
図1に示す切換式適応クロッキング回路の一実施形態である。
【
図3】
図1に示す切換式適応クロッキング回路の他の一実施形態である。
【
図4】
図2に示す切換式適応クロッキング回路の初期化を示すフローグラフである;
【
図5】切換式適応クロッキング回路の初期化後の、
図2に示す切換式適応クロッキング回路の動作方法を示すフロー図である。
【
図6】切換式適応クロッキング回路の初期化後の、
図2に示す切換式適応クロッキング回路の他の動作方法を示すフロー図である。
【
図7】
図2に示すデジタル制御発振器を用いて動的電圧周波数スケーリングを実行する方法のフロー図である。
【
図8】切換式適応クロッキング回路を含むコンピュータシステムの一実施形態のブロック図である。
【0007】
以下の詳細な説明は、特許請求される事項の例示的な実施形態を参照しながら進められることになるが、その数多くの代替、変更、及び変形が当業者に明らかになる。従って、特許請求される事項は、広く見られて、添付の請求項に記載されるように定められることが意図される。
【発明を実施するための形態】
【0008】
性能を向上させるべく周波数保護バンドを減らすために、又は供給電圧の一時的な低下に対してレジリエントでありながら電力を低減させるべく電圧保護バンドを減らすために、様々な適応クロッキング技術が提案されてきた。それらの技術は、供給電圧の一時的な低下に応答してクロック周波数を低くすることに頼っている。しかしながら、それらは、(i)適応モードに入るのが遅いこと、(ii)供給電圧の一時的な低下の間の適応の粒度が粗いこと、及び/又は(iii)元のクロック周波数への回復が遅いことに起因して、多大な性能インパクトを被ることが多い。
【0009】
切換式適応クロッキング(switched adaptive clocking;SAC)は、供給電圧の一時的な低下に比例してクロック周波数を適応させる非常に高速な方法を提供する一方で、供給電圧の一時的な低下が終了したときに(すなわち、供給電圧が回復して通常の供給電圧になった後に)元のクロック周波数への高速な回復も実行する。
【0010】
以下に説明する詳細を参照して発明の様々な実施形態及び態様が記述され、添付の図面が様々な実施形態を示す。以下の説明及び図面は、発明の例示であり、発明を限定するものとして解釈されるべきでない。本発明の様々な実施形態の完全なる理解を提供するために、数多くの具体的詳細が記述される。しかしながら、場合により、本発明の実施形態の簡潔な説明を提供するために、周知の又は従来通りの詳細は記述されていない。
【0011】
明細書における“一実施形態”又は“ある実施形態”への言及は、その実施形態に関連して説明される特定の機構、構造、又は特性が、発明の少なくとも1つの実施形態に含まれ得ることを意味する。故に、本明細書の様々な箇所に“一実施形態において”という言い回しが現れることは、必ずしも全てが同一の実施形態について言及しているわけではない。
【0012】
図1は、切換式適応クロッキングを実行するためのダイ104上の機能ブロックを含むシステム100のブロック図である。負荷電流の大きい変化に応答して、ダイ104上の機能ブロックに電圧の一時的な低下(電圧ドループとも呼ばれる)が生じ得る。電圧ドループは、ダイ104にかかる供給電圧の、速くて、時には凸凹な、低下をもたらし得る。
【0013】
ダイ104上の電圧レギュレータ102は、固定電圧(Vcc-クロック発生器)を提供し、すなわち、“クリーンサプライ”と呼ばれることがあるノイズが非常に少ないレギュレートされた電力レールを提供する。電圧レギュレータ102はまた、固定電圧(Vcc-クロック発生器)と比較して、いっそう負荷誘起ノイズによる影響を受ける負荷電圧(Vcc-コア)を提供する。負荷電圧(Vcc-コア)は、“ノイジーサプライ”と呼ばれることがある負荷電源から流れ出る。
【0014】
負荷電圧(Vcc-コア)は、ダイ104内のコア(図示せず)における作業負荷に応じた電圧ドループを受ける。ドループ検出器回路108が、電圧ドループを検出し、そして、電圧ドループが検出されたことを、ドループ検出器信号120を介して指し示す。
【0015】
クロックソース回路106が、基準クロックRefCLK112と、クロック比1 114及びクロック比2 116なる2つのクロック比とを生成し、これらが切換式適応クロッキング回路110によって使用されて、供給電圧の一時的な低下に比例して出力クロック(出力CLK118)の周波数を適応させる非常に高速な方法を提供する。
【0016】
図2は、
図1に示す切換式適応クロッキング回路110の一実施形態である。切換式適応クロッキング回路110は、クロック発生器202、デジタル制御発振器(digitally controlled oscillator;DCO)204、及びグリッチフリー(glitch free)マルチプレクサ206を含む。クロック発生器202は、通常動作中にロックされる周波数ロックループ(Frequency Locked Loop;FLL)又は位相ロックループ(Phase locked loop;PLL)として実装され得る。
【0017】
クロック発生器には、電圧レギュレータ102からの固定電圧(Vcc-クロック発生器)によって、すなわち、“クリーンサプライ”と呼ばれることがあるノイズが非常に少ないレギュレートされた電力レールによって電力が供給される。クロック発生器202は、ジッタが低くて所望レベルの性能に通じるメインクロック(メインCLK216)のために安定したクロック周波数を維持することができる。
【0018】
デジタル制御発振器(DCO)204には、固定電圧(Vcc-クロック発生器)よりもノイズが多い負荷電圧(Vcc-コア)によって電力が供給される。負荷電圧(Vcc-コア)は、コア(図示せず)における作業負荷に応じた電圧ドループを受ける。デジタル制御発振器204は、電圧ドループに応答したクリティカルパスの遅延を追跡することができ、従って、電圧ドループの結果としての供給電圧変動に比例して伸長される(すなわち、クロック周期が長くなる(又は周波数が下がる))デジタル制御発振器クロック(DCOクロック214)を生成する。
【0019】
クロック発生器202は、タイミング違反を防止するために出力CLK118が伸長することを必要とするドループイベントにゆっくりと応答し得る。クロック発生器202はまた、電圧ドループが治まった後に、ターゲット周波数にゆっくりと回復し得る。
【0020】
切換式適応クロッキング回路110は、デジタル制御発振器204及びクロック発生器202を含むことで、電圧ドループの存在下でメインCLK216からDCO CLK214に適応的に切り換わり、そして、電圧ドループからの回復に際しメインCLK216に迅速に切り換わり戻る。
【0021】
切換式適応クロッキング回路110は、クロック発生器202によって提供される常時ロックされたメインCLK216と、デジタル制御発振器204によって提供されるドループ伸長可能なクロック(DCO CLK214)との間での、迅速で途切れのない切り換えを提供する。これは、保護バンドを減らし、性能を向上させ、出力CLK118の回復レイテンシを短縮する。さらに、切換式適応クロッキング回路110は、最小限の較正を必要とするのみである。
【0022】
図2に示すように、クロック発生器202及びデジタル制御発振器204の双方に基準クロックRefCLK112が入力される。メインCLK216の周波数及びDCO CLK214の周波数は、それぞれのクロック比及びRefCLK112に依存する。1つのクロック比信号(クロック比1 114)がクロック発生器202に入力されるとともに、別の1つのクロック比信号(クロック比2 116)がデジタル制御発振器204に入力され、メインCLK216(クロック発生器202の出力クロック)及びDCO CLK214(デジタル制御発振器204の出力クロックの周波数)を変更することができることを可能にする。ある実施形態において、デジタル制御発振器204は、クロック発生器202によって出力されるメインCLK216の周波数に等しい又は僅かに遅い周波数を有するDCO CLK214を出力するよう、閉ループ周波数ロックループを介して較正(“同調”)される。
【0023】
出力CLK118の周波数はクロック比信号に依存する。ある実施形態において、クロック比2 116はクロック比1 114よりも低く、メインCLK216の周波数よりも遅い周波数を有するDCO CLK214を出力する。例えば、クロック比2 116は、2.8GHzの周波数を有するDCO CLK214向けに選択されることができ、クロック比1 114は、3GHzクロックの周波数を有するメインCLK216向けに選択されることができ、ドループイベントの開始時にDCO CLK214が選択されるときに、より低い周波数(2.8GHz)を有する出力CLK118を提供する。電圧ドループに応答してDCO CLK214を伸長することに加えて、クロック比2 116をクロック比1 114よりも低く設定することは、電圧ドループを検出する際のレイテンシに起因した、電圧ドループの開始時の不具合を軽減させる。
【0024】
ドループ検出器信号120の状態を用いて、グリッチフリーマルチプレクサ206に入力される2つのクロック(メインCLK216、DCO CLK214)のうちの一方を選択する。例えば、ドループ検出器信号120は、論理‘1’又は論理‘0’なる2つの論理状態を持つことができ、論理‘1’がメインCLK216を選択することができるとともに、論理‘0’がDCO CLK214を選択することができ、その逆もまた然りである。電圧ドループが検出されないとき、ドループ検出器信号120の状態は、クロック比1でのロックされたメインCLK216が、出力CLK118としてグリッチフリーマルチプレクサ206から出力されるように選択する。電圧ドループが検出されると、電圧ドループ検出器信号120の状態は、電圧ドループが検出されている間、クロック比2 116(クロック比2≦クロック比1)で較正された、等しい又は僅かに低い周波数のDCO CLK214を選択する。電圧ドループが終了した(回復したとしても参照される)とき、ドループ検出器信号120の状態はメインCLK216を選択する。DCO CLK214は、Vcc-コア(負荷電源レールとも呼ばれ得る)によって電力供給され、従って、電圧ドループの間、比例して伸長する。DCO CLK214は、電圧ドループの検出時にドループ伸長可能である。
【0025】
図3は、
図1に示す切換式適応クロッキング回路110の他の一実施形態である。
図3は、クロック発生器202、デジタル制御発振器204、及びグリッチフリーマルチプレクサ206を含んでいる。出力CLK118を提供するのにデジタル制御発振器204が使用されていない間に電力を節約するために、デジタル制御発振器204は、DCOイネーブル/DCOバイパス信号304を介して無効にされる。
【0026】
電力センシティブな設計では、デジタル制御発振器204は、電圧ドループの検出に続く短いクロックゲーティング期間中を除いて、DCOイネーブル/DCOバイパス信号304を介して無効にされることができる。ゆっくりした変動を追跡するために閉ループ動作モードが使用される場合、DCO CLK214は、ドループが検出されたとき又はゆっくりした変動を追跡するためにその遅延を周期的に調整するときを除いて、無効にされることができる。
図3に示す実施形態では、第2のマルチプレクサ300が、DCOイネーブル/DCOバイパス信号304の状態に応じて、メインCLK216又はグリッチフリーマルチプレクサ206から出力されるクロック302のいずれかを、切換式適応クロッキング回路110に関する出力CLK118として選択する。電圧ドループの間のみ、DCO CLK214が、グリッチフリーマルチプレクサ206から出力され、且つ、グリッチフリーマルチプレクサ206及び第2のマルチプレクサ300を介した出力CLK118として選択される。
【0027】
グリッチフリーマルチプレクサ206は、クロック302のソースをメインCLK 216と開ループDCO CLK214との間で、電圧ドループ検出も基づいて(ドループ検出器信号120がアサートされたときにメインCLK216からDCO CLK214へとソースを切り換える)又は回復検出信号に基づいて(ドループ検出器信号120がアサート解除されたときにDCO CLK214からメインCLK216へとソースを切り換える)、途切れなく切り換えることができる。
【0028】
出力CLK118を提供するのにデジタル制御発振器204が使用されていない間に電力を更に節約するために、デジタル制御発振器204は、一実施形態において2入力ANDゲートとして実装され得る論理ゲート306を介してクロックゲーティングされる。論理ゲート306への入力は、イネーブル信号及びドループ検出器信号120である。
【0029】
図2に関連して説明した切換式適応クロッキングでは、最悪の場合の電圧ドループよりも遥かに小さいものであり得る電圧ドループの大きさに基づいて、ちょうど十分なだけDCO CLK214が伸びるので、電圧ドループ中に最適な性能が達成される。グリッチフリーマルチプレクサ206を用いると、ソークロックをメインCLK216に切り換え戻すことが、メインCLK216の安定性を損なうことなく高速であり、それにより、電圧ドループからのいっそう速い回復を提供する。
【0030】
図4は、
図2に示す切換式適応クロッキング回路110の初期化を示すフロー図である。デジタル制御発振器は、その発振周波数がプログラマブルカウンタによってデジタル制御される電子発振器である。出力CLK118のターゲット周波数が変化するたびに、デジタル制御発振器204は、選択されたクロック周波数に必要な周波数でデジタル制御発振器204が動作するようなプログラマブルカウンタの値を選択するように較正される。
【0031】
ブロック400にて、デジタル制御発振器204は、クロック比2 116≦クロック発生器202のクロック比1 114となるよう、閉ループ構成でVMINに較正される。
【0032】
ブロック402にて、デジタル制御発振器204は、電圧ドループを追跡するために開ループモードで動作する。デジタル制御発振器は、ターゲット周波数及びVcc-コアで動作する。
【0033】
ブロック404にて、電圧ドループが検出された場合、処理はブロック406を続ける。そうでない場合、処理はブロック404を続ける。
【0034】
ブロック406にて、ドループ検出器信号120がアサートされ、グリッチフリーマルチプレクサ206が、出力CLK118のソースをDCO CLK214に切り換える。ターゲット周波数及び電圧でテストが実行される。
【0035】
ブロック410にてテストが合格であった場合、処理はブロック412を続ける。そうでない場合、処理はブロック408を続ける。
【0036】
ブロック408にて、Vcc-コア電圧が所定の小さいステップだけ僅かに上昇され、処理はブロック410を続ける。
【0037】
ブロック412にて、較正コード(クロック比2)が記録される。
【0038】
図5は、切換式適応クロッキング回路の初期化後の、
図2に示す切換式適応クロッキング回路の動作方法を示すフロー図である。
【0039】
ブロック500にて、デジタル制御発振器が、
図6に関連して説明した初期化プロセスにおいて選択された較正コードを用いて、開ループモードで動作される。
【0040】
ブロック502にて、電圧ドループが検出された場合、処理はブロック504を続ける。そうでない場合、処理はブロック500を続ける。
【0041】
ブロック504にて、電圧ドループが検出され、ドループ検出器信号がアサートされ、グリッチフリーマルチプレクサが、出力CLK118のソースをDCO CLKに切り換える。
【0042】
ブロック506にて、電圧ドループが終了した場合、処理はブロック508を続ける。そうでない場合、処理は、電圧ドループが終わるまでブロック506を続ける。
【0043】
ブロック508にて、ドループ検出器信号がアサート解除され、グリッチフリーマルチプレクサが、出力CLK118のソースをメインCLKに切り換える。
【0044】
図6は、切換式適応クロッキング回路の初期化後の、
図2に示す切換式適応クロッキング回路の他の動作方法を示すフロー図である。
【0045】
ブロック600にて、デジタル制御発振器204が、
図6に関連して説明した初期化プロセスにおいて選択された較正コードを用いて、閉ループモードで動作される。較正コードは、初期化時の寿命初期(beginning-of-life)温度及び電圧ドループのないアイドル負荷に関連するコードとし得る。
【0046】
ブロック602にて、電圧ドループが検出された場合、処理はブロック604を続ける。そうでない場合、処理はブロック600を続ける。
【0047】
ブロック604にて、電圧ドループが検出され、ドループ検出器信号がアサートされ、グリッチフリーマルチプレクサが、出力CLK118のソースをDCO CLK214に切り換え、その後、回復を受けてメインCLK216に切り換え戻す。
【0048】
ブロック606にて、デジタル制御発振器204が、クロック周波数のゆっくりした変動を追跡するために閉モードで動作するように閉じられて再びロックされる。
【0049】
ブロック608にて、電圧ドループがクロック発生器202によって検出されており、デジタル制御発振器204が開ループに切り換えられる。デジタル制御発振器204は、ドループ電圧を追跡し、処理はブロック600を続ける。
【0050】
最適な性能及び電力効率のため、プロセッサは、コンピュータシステムにおける作業負荷に応じて一連の異なるクロック周波数及び関連付けられた電圧で動作するように構成されることができる。動的電圧周波数スケーリングは、プロセッサのクロック周波数及び関連付けられた電圧を動的に変更することによってコンピュータシステムの電力消費を管理するためにコンピュータシステムに実装される技術である。周波数及び電圧動作点を、コンピュータシステム上の作業負荷に基づいて動的に選択することができる。例えば、コンピュータシステム上の作業負荷は、ビデオ会議用のアプリケーション及び/又は文書を編集するためのアプリケーションであるとし得る。周波数及び電圧動作点は各々、性能状態(P状態)として参照され得る。0乃至nの電力状態を持つプロセッサでは、P状態0(P0)が最大の電力及び周波数を提供することができ、P状態n(Pn)が最低の電力及び周波数を提供することができる。
【0051】
典型的に、出力CLK118は、新たな電圧及び周波数が安定するまで、プロセッサのクロック周波数及び関連付けられた電圧が変更されている間、(例えば、論理ゲートを介して)無効にされる。クロックを無効にすることは、コンピュータシステムの性能を低下させることをもたらす。
【0052】
動的電圧周波数スケーリング(dynamic voltage frequency scaling;DVFS)を提供する回路の一実施形態において、動的電圧周波数スケーリングのための電圧-周波数遷移中に連続したクロックを提供するために、較正された
図2に示すデジタル制御発振器を補助クロック源として使用することができる。
【0053】
図7は、
図2に示すデジタル制御発振器を用いて動的電圧周波数スケーリングを行う方法のフロー図である。例えば、動的電圧周波数スケーリングは、第1の周波数-電圧ペア(F
TARGET_1,V
1)から第2の周波数-電圧ペア(F
TARGET_2,V
2)に変化させるものとし得る。
【0054】
ブロック700にて、第1の周波数-電圧ペア(F
TARGET_1,V
1)から第2の周波数-電圧ペア(F
TARGET_2,V
2)に変化させるように動的電圧周波数スケーリングを実行する要求に応答して、デジタル制御発振器が、
図6に示す方法に関連して説明したようなデジタル制御発振器の初期化において選択されたデジタル制御発振器コードを用いて、開ループモードで動作される。
【0055】
ブロック702にて、デジタル制御発振器が閉モードに切り換えられ、クロック源が主クロック源からデジタル制御発振器に切り換えられる。
【0056】
ブロック704にて、デジタル制御発振器がクロックを供給している間に、主クロック源の周波数、及び電圧が、第2の周波数-電圧ペア(FTARGET_2,V2)まで徐々に遷移(ランプアップ又はランプダウン)される。
【0057】
ブロック706にて、主クロック源及び電圧が第2の周波数-電圧ペア(FTARGET_2,V2)で安定した場合、処理はブロック706を続ける。そうでない場合、処理はブロック704を続け、第2の周波数-電圧ペア(FTARGET_2,V2)まで傾斜し続ける。
【0058】
ブロック708にて、クロック源が、デジタル制御発振器から主クロック源に切り換え戻される。
【0059】
図8は、切換式適応クロッキング回路110を含むコンピュータシステム800の一実施形態のブロック図である。コンピュータシステム800は、以下に限られないが、サーバ、ワークステーションコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、及び/又はタブレットコンピュータを含むコンピューティング装置に対応し得る。
【0060】
コンピュータシステム800は、プロセッサ、グラフィックス、メモリ、及び入力/出力(I/O)制御ロジックを1つのSoCパッケージへと組み合わせるシステム・オン・チップ(SOC又はSoC)804を含んでいる。SoC804は、少なくとも1つの中央演算処理ユニット(CPU)モジュール808、揮発性メモリコントローラ814、及びグラフィックスプロセッサユニット(GPU)810を含んでいる。他の実施形態において、揮発性メモリコントローラ814は、SoC804の外部にあってもよい。図示していないが、(1つ以上の)プロセッサコア802の各々が内部に、1つ以上の命令/データキャッシュ、実行ユニット、プリフェッチバッファ、命令キュー、分岐アドレス計算ユニット、命令デコーダ、浮動小数点ユニット、リタイアメントユニットなどを含み得る。CPUモジュール808は、一実施形態によれば、インテル(登録商標)社によって提供されるものなどの、シングルコア又はマルチコアの汎用プロセッサに対応し得る。
【0061】
グラフィックスプロセッサユニット(GPU)810は、1つ以上のGPUコアと、GPUコアのためのグラフィックス関連データを格納することができるGPUキャッシュとを含み得る。GPUコアは内部に、1つ以上の実行ユニット及び1つ以上の命令及びデータキャッシュを含み得る。さらに、グラフィックスプロセッサユニット(GPU)810は、例えば1つ以上の頂点処理ユニット、ラスタ化ユニット、メディア処理ユニット、及びコーデックなど、
図8に示されていない他のグラフィックス論理ユニットを含むことができる。
【0062】
切換式適応クロッキング回路110は、SoC804内の動的周波数スケーリング回路に含められ得る。動的周波数スケーリング回路は、より高いターゲットクロック周波数及び関連付けられたターゲット電圧に遷移するように動的電圧周波数スケーリングを実行し得る。動的電圧周波数スケーリングは、クロック周波数を徐々に上昇させる(周波数ウォークとも呼ばれる)一方で電流比に基づいて基準クロックを動的に変化させ、適宜に、より遅い基準クロックに切り換えることによって、マイクロ秒タイムフレームの状態変化で実行される。例えば、プロセッサコア802内の動的周波数スケーリング回路を用いて、クロック周波数を上昇させて、例えば映像再生関連の画像解凍などのタスクを実行し、その後、次のプロセッサタスクを待つ間、低電力モードでクロック周波数を低下させることができる。プロセッサタスクに基づくクロック周波数の変更は、“スプリント・トゥ・ストップ”として参照され得る。動的周波数スケーリング回路はまた、グラフィックスプロセッサユニット(GPU)810内のディスプレイエンジン若しくはグラフィックスエンジン、及びI/Oアダプタ816内のディスプレイエンジン若しくは画像処理ユニット内に含められることができる。
【0063】
一実施形態において、切換式適応クロッキング回路110は、出力CLK118を複数のコア802に提供することができる。他の一実施形態において、各コア802が、別個の出力CLK118を当該コア802に提供する切換式適応クロッキング回路110を有することができる。
【0064】
I/Oサブシステム812内に、(1つ以上の)プロセッサコア802内で利用されるホスト通信プロトコルを特定のI/O装置と互換性のあるプロトコルに変換する1つ以上のI/Oアダプタ816が存在する。変換のためにアダプタが利用され得るプロトコルの一部は、ペリフェラルコンポーネントインターコネクト(PCI)-エクスプレス(PCIe)、ユニバーサルシリアルバス(USB)、シリアルアドバンストテクノロジーアタッチメント(SATA)及び電気電子技術者協会(IEEE)1594“Firewire”を含む。
【0065】
(1つ以上の)I/Oアダプタ816は、外部のI/O装置824と通信することができ、I/O装置824は、例えば、ディスプレイ及び/又はタッチスクリーンディスプレイ840を含む(1つ以上の)ユーザインタフェース装置、プリンタ、キーパッド、キーボード、通信ロジック、有線及び/又は無線、ハードディスクドライブ(“HDD”)、ソリッドステートドライブ(“SDD”)、リムーバブル記憶媒体、デジタルビデオディスク(DVD)ドライブ、コンパクトディスク(CD)ドライブ、RAID(Redundant Array of Independent Disks)、テープドライブ、又は他のストレージ装置を含むことができる。複数のストレージ装置が、以下に限られないが、SAS(Serial Attached SCSI(Small Computer System Interface))、PCIe(Peripheral Component Interconnect Express)、NVMe(NVM Express)オーバーPCIe(Peripheral Component Interconnect Express)、及びSATA(Serial ATA(Advanced Technology Attachment))を含む多様なプロトコルのうちの1つ以上を用いる1つ以上のバスを介して、共に通信的及び物理的に結合されてもよい。
【0066】
また、1つ以上の無線プロトコルI/Oアダプタが存在することができる。無線プロトコルの例は、とりわけ、例えばIEEE802.15及びBluetooth(登録商標)4.0などのパーソナルエリアネットワーク、例えばIEEE802.11系の無線プロトコルなどの無線ローカルエリアネットワーク、及びセルラープロトコルで使用される。
【0067】
不揮発性メモリ(NVM)デバイスは、当該デバイスに対して電力が遮断されても状態が確定されるメモリである。一実施形態において、NVMデバイスは、例えばNAND技術、又はより具体的に、マルチ閾値レベルのNANDフラッシュメモリ(例えば、シングルレベルセル(“SLC”)、マルチレベルセル(“MLC”)、クワッドレベルセル(“QLC”)、トライレベルセル(“TLC”)、若しくは何らかの他のNAND)などのブロックアドレス可能メモリデバイスを有することができる。NVMデバイスはまた、バイトアドレス可能なライト・イン・プレース(write-in-place)3次元クロスポイントメモリデバイス、又は例えばシングルレベル若しくはマルチレベルの相変化メモリ(PCM)又は相変化メモリwithスイッチ(PCMS)、カルコゲナイド相変化材料(例えば、カルコゲナイドガラス)を使用するNVMデバイス、金属酸化物ベース、酸素空孔ベース及び導電ブリッジランダムアクセスメモリ(CB-RAM)を含むレジスティブメモリ、ナノワイヤメモリ、強誘電体ランダムアクセスメモリ(FeRAM、FRAM(登録商標))、反強誘電体メモリ、メモリスタテクノロジを組み込んだ磁気抵抗ランダムアクセスメモリ(MRAM)、スピントランスファトルク(STT)-MRAM、スピントロニクス磁気接合メモリベースのデバイス、磁気トンネル接合(MTJ)ベースのデバイス、DW(ドメインウォール)及びSOT(スピン軌道トランスファ)ベースのデバイス、サイリスタベースのメモリデバイス、又はこれらのいずれかの組み合わせなどの、他のバイトアドレス可能なライト・イン・プレースNVMデバイス(パーシステントメモリとしても参照される)、又は他のメモリをふくんでもよい。
【0068】
揮発性メモリと、当該デバイスに対して電力が遮断されるとその状態(従って、それに格納されたデータ)が確定されないメモリである。ダイナミック揮発性メモリは、状態を維持するために当該デバイスに格納されたデータをリフレッシュすることを必要とする。ダイナミック揮発性メモリの一例は、DRAM(Dynamic Random Access Memory)、又は例えば同期DRAM(SDRAM)などの何らかの変形を含む。ここに記載されるメモリサブシステムは、例えばDDR3(Double Data Rate version 3、JEDEC(Joint Electronic Device Engineering Council)による2007年6月27日のオリジナルリリース)、DDR4(DDR version 4、JEDECによって2012年9月に発行された初期仕様)、DDR4E(DDR version 4)、LPDDR3(Low Power DDR version3、JESD209-3B、JEDECによって2013年8月に発行)、LPDDR4(LPDDR version 4、JESD209-4、JEDECによって2014年8月にオリジナル発行)、WIO2(Wide Input/Output version 2、JESD229-2、JEDECによって2014年8月にオリジナル発行)、HBM(High Bandwidth Memory、JESD325、2013年10月にJEDECによってオリジナル発行)、DDR5(DDR version 5、JEDECによって現在議論中)、LPDDR5(JEDECによって現在議論中)、HBM2(HBM version 2、JEDECによって現在議論中)、又はその他若しくは複数のメモリ技術の組み合わせ、並びにこれらの仕様の派生又は拡張に基づく技術などの、多数のメモリ技術と互換性を持つことができる。JEDEC標準は、www.jedec.orgで入手可能である。
【0069】
オペレーティングシステム842は、メモリ割当て及びI/O装置へのアクセスを含め、コンピュータハードウェア及びソフトウェアを管理するソフトウェアである。オペレーティングシステムの例は、Microsoft(登録商標)Windows(登録商標)、Linux(登録商標)、iOS(登録商標)、及びAndroid(登録商標)を含む。
【0070】
ここに示したフロー図は、様々なプロセス動作のシーケンスの例を提供するものである。フロー図は、物理的動作だけでなく、ソフトウェア又はファームウェアルーチンによって実行される動作を示し得る。一実施形態において、あるフロー図は、ハードウェア及び/又はソフトウェアにて実装されることが可能な有限状態マシン(FSM)の状態を示すことができる。特定のシーケンス又は順序で示しているが、特に別段の断りがない限り、それらの動作の順序は変更されることができる。従って、図示した実施形態は、一例として理解されるべきであり、そのプロセスは異なる順序で実行されることができ、一部の動作は並行して実行されることができる。また、様々な実施形態において1つ以上のアクションを省略することができ、従って、全ての動作が全ての実施形態において必要とされるわけではない。他のプロセスフローが可能である。
【0071】
様々な処理又は機能がここに記載された範囲において、それらは、ソフトウェアコード、命令、コンフィギュレーション、及び/又はデータとして記述又は規定されることができる。コンテンツは、直接的に実行可能であってもよいし(“オブジェクト”又は“実行ファイル”形態)、ソースコード、又は差分コード(“デルタ”又は“パッチ”コード)であってもよい。ここに記載された実施形態のソフトウェアコンテンツは、そのコンテンツを格納した製造品を介して、又は通信インタフェースを操作して該通信インタフェースを介してデータを送信する方法を介して提供されることができる。機械読み取り可能記憶媒体が、記載された機能又は処理を機械に実行させることができ、また、例えば記録可能/非記録可能媒体(例えば、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、等々)など、機械によってアクセス可能な形態で情報を記憶する何らかの機構を含む。通信インタフェースは、例えばメモリバスインタフェース、プロセッサバスインタフェース、インターネット接続、ディスクコントローラなど、別の装置に通信するために有線媒体、無線媒体、光媒体などのいずれかにインタフェースする何らかの機構を含む。通信インタフェースは、ソフトウェアコンテンツを記述するデータ信号を提供するために、コンフィギュレーションパラメータを提供すること、及び/又は通信インタフェースを準備するための信号を送信することによって構成され得る。通信インタフェースは、通信インタフェースに送信される1つ以上のコマンド又は信号を介してアクセスされることができる。
【0072】
ここに記載された様々なコンポーネントは、記載された処理又は機能を実行するための手段とし得る。ここに記載された各コンポーネントが、ソフトウェア、ハードウェア、又はそれらの組み合わせを含む。コンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、特殊目的ハードウェア(例えば、特定用途向けハードウェア、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)など)、埋め込みコントローラ、ハードワイヤード回路などとして実装されることができる。
【0073】
ここに記載されたものの他にも、開示された実施形態及び発明の実装には、それらの範囲から逸脱することなく、様々な変更が為され得る。
【0074】
従って、ここでの説明及び例は、限定的な意味ではなく、例示的な意味で解釈されるべきである。本発明の範囲は、もっぱら、以下の特許請求の範囲を参照することによって測られるべきである。