IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドの特許一覧

<>
  • 特許-集積回路チップの電圧レギュレータ 図1
  • 特許-集積回路チップの電圧レギュレータ 図2
  • 特許-集積回路チップの電圧レギュレータ 図3A
  • 特許-集積回路チップの電圧レギュレータ 図3B
  • 特許-集積回路チップの電圧レギュレータ 図3C
  • 特許-集積回路チップの電圧レギュレータ 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-10
(45)【発行日】2023-05-19
(54)【発明の名称】集積回路チップの電圧レギュレータ
(51)【国際特許分類】
   H02M 3/155 20060101AFI20230511BHJP
   G06F 1/26 20060101ALI20230511BHJP
【FI】
H02M3/155 U
G06F1/26
【請求項の数】 19
(21)【出願番号】P 2020509423
(86)(22)【出願日】2018-08-21
(65)【公表番号】
(43)【公表日】2020-11-05
(86)【国際出願番号】 US2018047350
(87)【国際公開番号】W WO2019040510
(87)【国際公開日】2019-02-28
【審査請求日】2021-08-17
(31)【優先権主張番号】15/682,900
(32)【優先日】2017-08-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】トーマス ジェイ. ギブニー
(72)【発明者】
【氏名】ラリー ディー. ヒューイット
(72)【発明者】
【氏名】ダニエル エル. ブーヴィエ
【審査官】佐藤 匡
(56)【参考文献】
【文献】特開2011-229311(JP,A)
【文献】特開2011-216995(JP,A)
【文献】特表2011-509646(JP,A)
【文献】特開平05-127765(JP,A)
【文献】特表2017-505092(JP,A)
【文献】特開2005-168277(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H02M 3/155
G05F 1/56
G06F 1/26
(57)【特許請求の範囲】
【請求項1】
電圧を制御する装置であって、
回路セットを備える集積回路チップと、
前記集積回路チップとは別のスイッチング電圧レギュレータと、
前記集積回路チップに製造された複数の低ドロップアウト(LDO)レギュレータと、
コントローラと、を備え、
前記スイッチング電圧レギュレータは、前記複数のLDOレギュレータの各々によって入力電圧として受け取られる出力電圧を供給し、
前記複数のLDOレギュレータの各々はローカル出力電圧を供給し、各ローカル出力電圧は、前記回路セット内の回路の異なるサブセットによってローカル入力電圧として受け取られ、
前記コントローラは、
各LDOレギュレータによって供給される前記ローカル出力電圧を識別することであって、前記識別することは、LDOレギュレータによって供給される前記ローカル出力電圧を受け取る回路のサブセットに関連するアクティビティ情報を取得することと、前記アクティビティ情報に少なくとも部分的に基づいて、LDOレギュレータの前記ローカル出力電圧を識別することと、を含み、前記アクティビティ情報は、LDOレギュレータによって供給される前記ローカル出力電圧を受け取る前記回路のサブセット及び/又は前記回路の1つ以上の他のサブセットの現在又は推定される将来のアクティビティを特徴付けるために使用可能な情報を含む、ことと、
前記LDOレギュレータの各々によって供給される前記ローカル出力電圧に基づいて、前記スイッチング電圧レギュレータによって供給される前記出力電圧を識別することと、
前記出力電圧を供給するように前記スイッチング電圧レギュレータを構成し、前記ローカル出力電圧を供給するようにLDOレギュレータの各々を構成することと、
を行うように構成されている、
装置。
【請求項2】
前記アクティビティ情報を取得することは、
前記アクティビティ情報の一部を、前記LDOレギュレータによって供給される前記ローカル出力電圧を受け取る前記回路のサブセットから取得することと、
前記アクティビティ情報を、前記LDOレギュレータによって供給される前記ローカル出力電圧を受け取る前記回路のサブセット以外の回路の1つ以上のサブセットから取得することと、
のうち少なくとも1つを含む、
請求項1の装置。
【請求項3】
前記LDOレギュレータの各々によって供給される前記ローカル出力電圧に基づいて、前記スイッチング電圧レギュレータによって供給される前記出力電圧を識別することは、
前記複数のLDOレギュレータのうち所定のLDOレギュレータによって供給される最大ローカル出力電圧を決定することと、
前記出力電圧を、前記所定のLDOレギュレータが前記最大ローカル出力電圧を供給するのを可能にする電圧として識別することと、を含む、
請求項1の装置。
【請求項4】
前記回路の第1サブセットは、少なくとも1つの中央処理装置(CPU)を備え、
前記回路の第2サブセットは、少なくとも1つのグラフィックス処理ユニット(GPU)を備える、
請求項1の装置。
【請求項5】
実装デバイスをさらに備え、
前記スイッチング電圧レギュレータ及び前記集積回路チップは、前記実装デバイスに別々に接続されている、
請求項1の装置。
【請求項6】
前記集積回路チップがパッケージ化されたパッケージをさらに備え、
前記パッケージは電圧レギュレータ回路要素を含まない、
請求項1の装置。
【請求項7】
前記スイッチング電圧レギュレータはバックコンバータである、
請求項1の装置。
【請求項8】
回路セットを備える集積回路チップの電圧を制御する方法であって、
コントローラが、
前記集積回路チップ上に製造された複数の低ドロップアウト(LDO)レギュレータの各々によって供給される、対応するローカル出力電圧を識別することであって、前記複数のLDOレギュレータの各々は、前記回路セット内の回路の異なるサブセットによってローカル入力電圧として受け取られるローカル出力電圧を供給し、前記識別することは、LDOレギュレータ毎に、LDOレギュレータによって供給される前記ローカル出力電圧を受け取る回路のサブセットに関するアクティビティ情報を取得することと、前記アクティビティ情報に少なくとも部分的に基づいて、LDOレギュレータに対応する前記ローカル出力電圧を識別することと、を含み、前記アクティビティ情報は、LDOレギュレータによって供給される前記ローカル出力電圧を受け取る前記回路のサブセット及び/又は前記回路の1つ以上の他のサブセットの現在又は推定される将来のアクティビティを特徴付けるために使用可能な情報を含む、ことと、
前記LDOレギュレータの各々によって供給される前記ローカル出力電圧に基づいて、前記集積回路チップとは別のスイッチング電圧レギュレータによって供給される出力電圧を識別することであって、前記スイッチング電圧レギュレータによって供給される前記出力電圧は、前記複数のLDOレギュレータの各々によって入力電圧として受け取られる、ことと、
前記出力電圧を供給するように前記スイッチング電圧レギュレータを構成し、LDOレギュレータによって供給される前記ローカル出力電圧を供給するようにLDOレギュレータの各々を構成することと、を含む、
方法。
【請求項9】
前記ローカル出力電圧及び前記出力電圧を識別することと、
前記集積回路チップの動作中に1つ以上の機会において前記スイッチング電圧レギュレータ及び前記低ドロップアウトレギュレータを構成することと、
を含む動作の一部又は全てを実行することを含む、
請求項8の方法。
【請求項10】
前記1つ以上の機会は、
前記集積回路チップがスタートアップした場合、
特定のイベントが発生した後、
回路の1つ以上のサブセットによって実行される1つ以上のソフトウェアプログラムの実行状態に基づくこと、
の一部又は全てを含む、
請求項9の方法。
【請求項11】
前記アクティビティ情報に少なくとも部分的に基づいて、前記ローカル出力電圧を識別することは、
前記アクティビティ情報を用いて、ルックアップテーブル又は他のレコードにおける前記ローカル出力電圧のルックアップを実行することであって、前記ルックアップテーブル又は前記他のレコードは、様々なタイプのアクティビティ情報を、対応するローカル出力電圧に関連付ける、ことと、
前記アクティビティ情報を、前記ローカル出力電圧を示す結果を生成するアルゴリズムへの入力として使用することであって、前記アルゴリズムは、前記結果を生成する1つ以上の数学演算又は論理演算を含む、ことと、
のうち1つ以上を含む、
請求項8の方法。
【請求項12】
前記アクティビティ情報を取得することは、
前記アクティビティ情報を、前記LDOレギュレータによって供給される前記ローカル出力電圧を受け取る前記回路のサブセットから取得することと、
前記アクティビティ情報を、前記LDOレギュレータによって供給される前記ローカル出力電圧を受け取る前記回路のサブセット以外の回路の1つ以上のサブセットから取得することと、
のうち少なくとも1つを含む、
請求項8の方法。
【請求項13】
前記LDOレギュレータの各々によって供給される前記ローカル出力電圧に基づいて、前記スイッチング電圧レギュレータによって供給される前記出力電圧を識別することは、
前記複数のLDOレギュレータのうち所定のLDOレギュレータによって供給される最大ローカル出力電圧を決定することと、
前記出力電圧を、前記所定のLDOレギュレータが前記最大ローカル出力電圧を供給するのを可能にする電圧として識別することと、を含む、
請求項8の方法。
【請求項14】
前記出力電圧を供給するように前記スイッチング電圧レギュレータを構成し、LDOレギュレータによって供給される前記ローカル出力電圧を供給するようにLDOレギュレータの各々を構成することは、
前記スイッチング電圧レギュレータに関連する回路要素を、前記出力電圧の供給を開始するように構成することと、
低ドロップアウトレギュレータの各々に関連する回路要素を、前記対応するローカル出力電圧の供給を開始するように構成することと、を含む、
請求項8の方法。
【請求項15】
前記出力電圧を供給するように前記スイッチング電圧レギュレータを構成し、LDOレギュレータによって供給される前記ローカル出力電圧を供給するようにLDOレギュレータの各々を構成する場合に、
前記スイッチング電圧レギュレータ及び前記低ドロップアウトレギュレータを構成する順序を、前記低ドロップアウトレギュレータによって供給される前記ローカル出力電圧の乱れが減るように、前記出力電圧と、LDOの各々によって供給される前記ローカル出力電圧との関係に基づいて、選択することをさらに含む、
請求項8の方法。
【請求項16】
前記回路の第1サブセットは、少なくとも1つの中央処理装置(CPU)を備え、
前記回路の第2サブセットは、少なくとも1つのグラフィックス処理ユニット(GPU)を備える、
請求項8の方法。
【請求項17】
前記スイッチング電圧レギュレータはバックコンバータである、
請求項8の方法。
【請求項18】
前記アクティビティ情報は、
秒毎に実行される動作のカウントと、
処理中のソフトウェア又はハードウェアの負荷に関する識別子と、
のうち少なくとも1つの現在又は推定される将来の値を含む、
請求項1の装置。
【請求項19】
前記アクティビティ情報は、
アイドル時間又はビジー時間の割合と、
キューの命令又は動作の数と、
のうち少なくとも1つの現在又は推定される将来の値を含む、
請求項1の装置。
【発明の詳細な説明】
【背景技術】
【0001】
いくつかの集積回路システムでは、電圧レギュレータは、電力を、特定の電圧で集積回路の一部又は全てに供給するために使用される。例えば、電圧レギュレータを使用して、電力を、特定の電圧で、中央処理装置(CPU)コア及びグラフィックス処理ユニット(GPU)を含むチップ集積回路上のシステムに供給することができる。電圧レギュレータは、電力を集積回路に供給するために使用することができるが、電圧レギュレータの使用は、コストアップ及び複雑性をシステム設計にもたらす。また、電圧レギュレータを使用すると、電力効率が低下する可能性があり、これにより、電力を電池に依存するデバイスの電池寿命が短くなり、所定の電力範囲内での性能が低下する可能性がある。
【0002】
電圧レギュレータの1つの構成は、集積回路(例えば、CPUコア又はGPUコア等)の対応するパーティションに電力を供給するために外部バックレギュレータのセットの各々が割り当てられるバックレギュレータ(すなわち、バックコンバータ回路)の単段アレイ(single-stage array)からなる。例えば、「外部」バックレギュレータの各々は、集積回路が配置される集積回路チップを封入するチップパッケージと共に回路基板に実装され得る。パーティション毎に別個のバックレギュレータを設けることによって、この電圧レギュレータの構成は、パーティション毎の電圧の動的選択を可能にする。しかしながら、この構成の1つの欠点は、対応するパーティションに最大電力を供給可能なバックレギュレータを備える必要があることである。パーティションが最大電力を必要とすることは稀であるため、高電流(及び対応する電力レベル)で最も効率的に動作するバックレギュレータは、非効率な低電流で動作することが多い。また、説明したようなバックレギュレータを設けると、回路基板及びパッケージを、パーティション毎の最大電流の合計を処理するためのリソースで構成する必要があるため、回路基板及びパッケージのコストの増加をもたらす。
【0003】
電圧レギュレータの別の構成は、2段の電圧レギュレータからなり、外部の1段目のバックレギュレータは、固定中間電圧を、集積回路と共に集積回路チップ上に製造される2段目のバックレギュレータのアレイに供給する。2段目のバックレギュレータの各々は、選択可能な電圧を、集積回路(例えば、CPUコア又はGPUコア等)の特定のパーティションに動的に供給する。固定中間電圧は、一般的な集積回路の電圧要件と比較して比較的高い電圧レベルであるため、2段目のバックレギュレータは、固定中間電圧を、対応するパーティションの動作可能な集積回路電圧に変換/低減する。この電圧レギュレータの構成では、1段目のレギュレータ及び回路基板/パッケージリソースが2段目のバックレギュレータによって共有されるため、現実的な最大電流シナリオのために電流を供給することができる。しかしながら、この構成の1つの欠点は、2段目のバックレギュレータを集積回路チップ上に集積して製造することが複雑及び高価であることである。
【0004】
上述したように、電力を集積回路に供給するための電圧レギュレータの様々な既存の構成には、重大な欠点がある。したがって、電圧レギュレータの構成及び使用を改善することが重要である。
【図面の簡単な説明】
【0005】
図1】いくつかの実施形態による、システムを示すブロック図である。
図2】いくつかの実施形態による、電圧レギュレータの出力電圧と、2つ以上の低ドロップアウトレギュレータのローカル出力電圧と、を構成するためのプロセスを示すフローチャートである。
図3A】いくつかの実施形態による、システムワークロード設定、対応する電圧レギュレータ設定、及び、低ドロップアウトレギュレータ設定のブロック図である。
図3B】いくつかの実施形態による、システムワークロード設定、対応する電圧レギュレータ設定、及び、低ドロップアウトレギュレータ設定のブロック図である。
図3C】いくつかの実施形態による、システムワークロード設定、対応する電圧レギュレータ設定、及び、低ドロップアウトレギュレータ設定のブロック図である。
図4】いくつかの実施形態による、システムを製造するためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【0006】
図面及び説明を通じて、同様の符号は同じ図面要素を指す。
【0007】
以下の説明は、説明される実施形態を当業者が製造又は使用するのを可能にするために提示され、特定の用途及びその要件に関連して提供される。説明される実施形態に対する様々な変更が当業者には容易に明らかであり、本明細書に定義された一般的な原理を、他の実施形態及び用途に適用することができる。したがって、説明される実施形態は、示された実施形態に限定されることなく、本明細書で説明する原理及び特徴と一致する最も広い範囲が許容される。
【0008】
(用語)
以下の説明では、様々な用語が、実施形態を説明するために使用される。以下に、1つの用語の簡略化された一般的な説明を示す。用語は、明確及び簡潔にするために、本明細書に挙げられていない重要な追加の態様を有してもよく、これにより、この説明は、用語を限定することを意図していないことに留意されたい。
【0009】
供給電圧:供給電圧は、1つ以上の回路(例えば、個々のトランジスタ、様々な論理ゲート又は回路を形成するトランジスタの集合、ディスクリート回路要素、機能ブロック等)が動作するのを可能にするために当該回路に供給される電気信号である。場合によっては、供給電圧は、実質的に安定した電圧で供給されるが、例えば回路の過渡負荷等によって依存回路の電力需要が変化するのにつれて変化する電流で供給される。例えば、電圧レギュレータは、実質的に安定した電圧で供給電圧を供給する回路であるが、依存回路の需要に基づいて電流が変化する。「実質的に安定した」電圧とは、供給電圧が、可能な範囲で、構成された/所定の電圧で又は構成された/所定の電圧の近い値で維持されるが、例えば過渡負荷が依存回路で発生する場合等の特定の状況で電圧が変化し得ることを意味することに留意されたい。
【0010】
(概要)
説明される実施形態は、電力を、実質的に安定した電圧で集積回路チップ上の回路セットに供給するための電圧レギュレータの構成を含む。電圧レギュレータの構成は、集積回路チップの外部にある単一の電圧レギュレータ(又は、「1段目の」電圧レギュレータ)と、集積回路チップ上に製造された2つ以上の電圧レギュレータ(又は、「2段目の」電圧レギュレータ)と、を含む。1段目の電圧レギュレータは、2段目の電圧レギュレータの各々によって供給電圧として受け取られる出力電圧を供給する。2段目の電圧レギュレータの各々は、回路セット内の回路の異なるサブセットによって供給電圧として受け取られるローカル出力電圧を供給する。説明される実施形態では、1段目の電圧レギュレータはスイッチング電圧レギュレータであり、2段目の電圧レギュレータは低ドロップアウトレギュレータ(LDO)である。
【0011】
説明される実施形態では、1段目の電圧レギュレータ及び低ドロップアウトレギュレータは、様々な出力電圧を動的に供給するように構成されてもよい。例えば、いくつかの実施形態では、低ドロップアウトレギュレータは、0V~1.2V(又は、他の電圧値の範囲)で出力電圧を供給するように個別に且つ独立して構成されてもよい。例えば、低ドロップアウトレギュレータは、回路セット内の回路の対応するサブセットの動的供給電圧需要に応じて構成又は再構成されてもよい。この例を続けると、1段目の電圧レギュレータは、低ドロップアウトレギュレータの動的供給電圧需要に基づいて、0V~1.5V(又は、他の電圧値の範囲)で出力電圧を供給するように構成されてもよい。
【0012】
いくつかの実施形態では、1段目の電圧レギュレータは、最も高い供給電圧を必要とする低ドロップアウトレギュレータの供給電圧ニーズを満たすのに十分な高い出力電圧を供給するように構成されている。例えば、動作するための特定の供給電圧をそれぞれ必要とする3つの低ドロップアウトレギュレータが存在する場合に、1段目の電圧レギュレータは、全ての低ドロップアウトレギュレータが動作するのを可能にする最低出力電圧(又は、最低出力電圧の所定の閾値若しくはマージン内の電圧)を供給する。
【0013】
いくつかの実施形態では、コントローラ(例えば、システム管理コントローラ、電力コントローラ等)は、上述したような対応する出力電圧を供給するために、1段目の電圧レギュレータ及び低ドロップアウトレギュレータの一部又は全てを構成する。例えば、コントローラは、回路セット内の回路のサブセットを監視して、回路セット内の回路のサブセットのアクティビティ又は負荷を決定する(すなわち、現在又は将来の計算負荷、電力消費量等を決定する)ことができる。コントローラは、回路セット内の回路のサブセットのアクティビティ又は負荷に基づいて、対応する低ドロップアウトレギュレータによって回路セット内の回路の所定のサブセットに供給される供給電圧を決定する。例えば、コントローラは、回路セット内の回路のサブセットが演算処理に頻繁に使用されるか、使用されていることを判別することができ、これにより、高出力電圧(例えば、1.2V)が、対応する低ドロップアウトレギュレータによって供給されることを決定することができる。別の例として、コントローラは、回路内の回路のサブセットが演算処理に少ない頻度で使用されるか、使用されていることを判別することができ、これにより、低出力電圧(例えば、0.7V)が、対応する低ドロップアウトレギュレータによって供給されることを決定することができる。いくつかの実施形態では、コントローラは、回路のサブセットの一部又は全てのクロック又は他の要素の動作周波数を動的に決定する。
【0014】
上述した電圧レギュレータの構成を使用する場合、多くの利益が見出される。例えば、集積回路チップの回路セット内の回路のサブセットに供給電圧を供給するために低ドロップアウトレギュレータを使用し、低ドロップアウトレギュレータに可変供給電圧を供給するために外部の1段目の電圧レギュレータを使用することによって、説明される実施形態は、供給電圧を、回路セット内の回路のサブセットのリアルタイムの動作状態に適応させることが可能である。別の例として、単一の外部の1段目の可変出力電圧レギュレータと、集積回路チップ上に製造された低ドロップアウトレギュレータと、を使用することによって、説明される実施形態は、低コストでチップ回路を複雑にしない方法で電圧レギュレータに配電する。さらに別の例として、電圧レギュレータの或る既存の構成と比較して、電流が、より現実的な動作シナリオに従って電圧レギュレータの2つの段の間に供給されるので、集積回路チップが封入されるパッケージ及び当該パッケージが実装される回路基板のコストを節約することができる。さらに別の例として、1段目の電圧レギュレータから動的に選択された出力電圧を、低ドロップアウトレギュレータの特定の電圧要件を満たすように構成することができ、特定のワークロードシナリオにおいて電力効率の改善をもたらすことができるので、パッケージ及び集積回路チップに関するコストアップ及び設計の複雑さが避けられる。さらに別の例として、低ドロップアウトレギュレータはバックレギュレータよりも単純であるため、説明される実施形態の金銭的及び設計の複雑さのコストは、バックレギュレータが使用される既存の構成よりも低くなる。したがって、説明される実施形態は、集積回路チップ及び/又は当該集積回路が使用されるシステムの全体的な電力使用量及び一般的な機能を改善する。
【0015】
(システム)
図1は、いくつかの実施形態による、システム100を示すブロック図である。図1に示すように、システム100は、電力レギュレータ104(VREG104)に接続された集積回路チップ102を含む。電力レギュレータ104は、集積回路チップ102上の低ドロップアウトレギュレータのセット(及び、図示していない他の回路も可能である)に対する供給電圧となる出力電圧(VOUT132)で電力を供給するスイッチング電圧レギュレータである。例えば、電圧レギュレータ104は、バックコンバータ、ブーストコンバータ、又は、他のタイプのスイッチング電圧レギュレータであってもよい。以下により詳細に説明するように、電圧レギュレータ104は、システム100の動作中に様々な出力電圧を動的に供給するように構成及び再構成されてもよい。
【0016】
集積回路チップ102は、様々な回路要素(例えば、低ドロップアウトレギュレータ106~112(LDO106~112)、中央処理装置コア114~116(CPUコア114~116)、グラフィックス処理ユニット118(GPUコア118)、機能ブロック120~122、及び、コントローラ134を含む)が製造された半導体チップである。CPUコア114~116は、様々な演算処理を実行するマイクロプロセッサコアである。GPUコア118は、グラフィックス処理及び/又は様々な他の演算処理を実行するグラフィックスプロセッサコアである。機能ブロック120~122は、ネットワークプロセッサ、メモリコントローラ及び/又はメモリ等の動作等の対応する動作を実行する。
【0017】
CPUコア114~116、GPUコア118及び機能ブロック120~122は、集積回路チップ102上の回路「セット」の一部であり、CPUコア114~116、GPUコア118及び機能ブロック120~122の各々は、回路セット内の回路の異なる「サブセット」を含む。例えば、CPUコア114は、回路セット内の回路の第1サブセットであってもよく、CPUコア116は、回路セット内の回路の第2サブセットであってもよく、GPUコア118は、回路セット内の回路の第3サブセットであってもよく、機能ブロック120~122は、回路セット内の回路の第4サブセットであってもよい。以下に説明するように、個別の異なる供給電圧を、集積回路チップ102内の回路セット内の回路の各サブセットに供給することができる。
【0018】
低ドロップアウトレギュレータ106~112は、実質的に安定したローカル出力電圧で電力を供給するように構成された線形電圧レギュレータであり、これらの各々の出力電圧は、集積回路チップ102内の回路セット内の回路の対応するサブセットに対する供給電圧となる。例えば、低ドロップアウトレギュレータ106は、CPUコア114(すなわち、回路セット内の回路の第1サブセット)に対する供給電圧となるローカル出力電圧VOUT124を供給し、低ドロップアウトレギュレータ108は、CPUコア116に対する供給電圧となるローカル出力電圧VOUT126を供給し、低ドロップアウトレギュレータ110は、GPUコア118に対する供給電圧となるローカル出力電圧VOUT128を供給し、低ドロップアウトレギュレータ112は、機能ブロック120,122に対する供給電圧となるローカル出力電圧VOUT130を供給する。以下により詳細に説明するように、低ドロップアウトレギュレータ106~112を、システム100の動作中に様々なローカル出力電圧を供給するように動的且つ個別に構成及び再構成することができる。
【0019】
なお、ここでは、これらの出力電圧と電圧レギュレータ104の出力電圧とを区別するために、低ドロップアウトレギュレータ106~112によって供給される出力電圧を「ローカル」と呼ぶことに留意されたい。他の場合、ローカル出力電圧は、本明細書で説明するような回路セット内の回路のサブセットに供給される出力電圧である。
【0020】
上述したように、電圧レギュレータ104及び低ドロップアウトレギュレータ106~112を、様々な出力電圧を供給するように動的に構成することができる。いくつかの実施形態では、システム100は、先ず、低ドロップアウトレギュレータ106~112の各々によって供給されるローカル出力電圧を決定することによって、動的構成を実行する。例えば、回路セット内の回路の対応するサブセットの現在又は推定された将来のアクティビティ又は負荷(すなわち、回路のサブセットの現在又は推定された将来の電力需要)に基づいて、低ドロップアウトレギュレータ106~112毎のローカル出力電圧を決定することができる。上記の例を続けると、これにより、低ドロップアウトレギュレータ106のローカル出力電圧(VOUT124)を、CPUコア114のアクティビティ又は負荷に基づいて決定することができ、低ドロップアウトレギュレータ108の出力電圧を、CPUコア116のアクティビティ又は負荷に基づいて決定することができることを意味する。システムは、低ドロップアウトレギュレータ106~112の各々によって供給されるローカル出力電圧に基づいて、電圧レギュレータ104の出力電圧(これもまた、低ドロップアウトレギュレータ106~112の全てに供給される)を決定する。低ドロップアウトレギュレータ106~112の動作を可能にするために電圧レギュレータ104の出力電圧を十分に高くすべきであるが、一般的に、電圧レギュレータ104の出力電圧は、不要な電力消費や発熱等を避けるために、できるだけ低く維持される。したがって、最も要求の高い低ドロップアウトレギュレータ106~112(すなわち、最も高いローカル出力電圧を供給することになる低ドロップアウトレギュレータ106~112)に基づいて、電圧レギュレータ104の出力電圧を決定する。次に、システムは、出力電圧を供給するように電圧レギュレータ104を構成し、ローカル出力電圧を供給するように低ドロップアウトレギュレータ106~112を構成する(必ずしもこの順序ではない)。
【0021】
いくつかの実施形態では、出力電圧及びローカル出力電圧の上述した動的構成及び再構成を、システム100の動作中に何回も実行することができる。例えば、起動した場合、回路セットのサブセット(この場合、CPUコア114、CPUコア116等)のアクティビティ又は負荷が変化した場合、ソフトウェアプログラムがN(Nは数値)ミリ秒毎に実行フェーズを開始又は変更した場合、システム100が動作している間に特定のイベントが発生した場合、システム100の一部又は全ての物理的パラメータ(例えば、温度、音又は振動)が特定のレベルに達した場合等に、動的構成及び再構成が行われる。例えば、システム100は、過熱してアクティビティレベルが低下し、低ドロップアウトレギュレータのローカル出力電圧及び/又は電圧レギュレータ104の出力電圧の再構成/低下を引き起こすCPUコア114のクロックの動作周波数をスロットル又は低減することができる。いくつかの場合、周波数及び電圧をペアとして選択し、連携して(in tandem)調整する。別の例として、機能ブロック122は、より高いレベルのアクティビティを示すことができ、低ドロップアウトレギュレータ112のローカル出力電圧及び/又は電圧レギュレータ104の出力電圧の再構成/上昇を引き起こす。
【0022】
図1を参照すると、コントローラ134は、電圧レギュレータ104によって供給される出力電圧と、低ドロップアウトレギュレータ106~112によって供給されるローカル出力電圧とを構成するために、本明細書で説明する動作の一部又は全て(及び、可能な他の動作)を実行する機能ブロックである。例えば、いくつかの実施形態では、コントローラ134は、システムコントローラ、電力コントローラ、専用電圧レギュレータコントローラ、及び/又は、別の機能ブロックである。
【0023】
いくつかの実施形態では、コントローラ134は、回路セット内の回路のサブセット(すなわち、CPUコア114、機能ブロック120等)からアクティビティ、負荷又は他の動作情報(概して、「アクティビティ情報」)を受信し、引き出し、又は、取得する。この動作情報は、回路セット内の回路の一部又は全てのサブセットの現在又は推定される将来のアクティビティ又は負荷を決定するために使用され得る。例えば、コントローラ134は、アクティビティ情報として、アクティビティ信号136又は他のメカニズムを介して、毎秒実行されている若しくは実行される予定の動作のカウント若しくは推定、キューの命令若しくは動作の数のインジケータ、動作温度、アイドル時間若しくはビジー時間の割合、処理されているソフトウェア(例えば、アプリケーション、オペレーティングシステムルーチン等)若しくはハードウェア負荷の識別情報、及び/又は、回路セット内の回路のサブセットの一部若しくは全ての現在若しくは推定される将来のアクティビティ若しくは負荷を特徴付けるために使用され得る他の情報を受信することができる。これらの実施形態では、コントローラ134は、様々な方法でアクティビティ情報を受信し、引き出し、又は、取得することができる。例えば、回路セットのサブセット(例えば、CPUコア114)は、回路セットのサブセットで実行された、実行されている、又は、実行される予定の動作の数を示す値を、レジスタ又は共有メモリ位置に書き込むことができる。次に、コントローラ134は、レジスタ又は共有メモリ位置にアクセス/読み出しして、動作情報を判別することができる。別の例として、コントローラ134は、アクティビティ情報の要求を(例えば、システムバス、アクティビティ信号136等の信号線を介して)回路セット内の回路のサブセットに通信し、これに応じて、アクティビティ情報を有する回路セット内の回路のサブセットからリターン通信を受信することができる。別の例として、オペレーティングシステム、ハイパーバイザ及び/又は他のソフトウェアエンティティは、メモリ位置/レジスタ、パケット、命令、又は、他の通信メカニズムを使用して、アクティビティ情報をコントローラ134に通信してもよい。
【0024】
いくつかの実施形態では、コントローラ134は、回路セット自体のサブセットから受信したアクティビティ情報に基づいて、回路セットのサブセットの現在又は推定された将来の負荷又はアクティビティを「直接」決定する。例えば、CPUコア114の現在又は推定された将来の負荷又はアクティビティは、コントローラ134がCPUコア114から受信し、引き出し又は取得した情報に基づいて、コントローラ134によって決定されてもよい。いくつかの実施形態では、コントローラ134は、回路セットの1つ以上の異なるサブセットから受信したアクティビティ情報に基づいて、回路セットのサブセットの現在又は推定された将来の負荷又はアクティビティを「間接的に」決定する。例えば、コントローラ134は、機能ブロック120の現在又は推定された将来の負荷又はアクティビティを示すアクティビティ情報をCPUコア116から受信してもよい。例えば、機能ブロック120がメモリであると仮定すると、CPUコア116からのアクティビティ情報は、メモリ集約的な動作フェーズ(例えば、大量のメモリ読み出し又は書き込みを行うソフトウェアプログラムを実行する等)がCPU116によって入力されているか、将来的に入力されることを示し、機能ブロック120の負荷が増大することになる。いくつかの実施形態では、コントローラ134は、回路セットのサブセットの現在又は推定された将来の負荷又はアクティビティの直接的及び間接的な決定の組み合わせを実行する。
【0025】
いくつかの実施形態では、コントローラ134は、1つ以上のポリシー及び/又はルールに基づいて、例えば、制御信号138を介して、電圧レギュレータ104の出力電圧と、低ドロップアウトレギュレータ106~112のローカル出力電圧とを構成する。例えば、コントローラ134は、回路セット内の回路の1つ以上のサブセットに関する特定のアクティビティ又は負荷レベルが与えられると、所定のタイムフレームにおけるアクティビティ又は負荷レベル、平均アクティビティ又は負荷レベル、最小又は最大のアクティビティ又は負荷レベル等に適用される1つ以上のルールに基づいて、出力電圧及び/又はローカル出力電圧を構成することができる。いくつかの実施形態では、ポリシー及び/又はルールは、ポリシー及び/又はルールの一部又は全てを示すか制御する構成ファイル、レジスタ値、ルックアップテーブル、レコード、アルゴリズム等を更新することによって、動的に調整可能である。
【0026】
いくつかの実施形態では、コントローラ134は、電圧レギュレータ104及び/又は低ドロップアウトレギュレータ106~112の出力電圧を、回路セットのサブセットの一部又は全ての電圧/周波数を設定又は調整するための動作の一部として構成する。例えば、コントローラ134は、低電力モードに移行する場合に、電圧及び/又は周波数を、対応する低レベル(すなわち、低電圧及び低周波数)に設定することができる。
【0027】
いくつかの実施形態では、システム100は、安定性及び機械的サポートを提供するために、集積回路チップ102及び電圧レギュレータ104が(例えば、装着、ネジ止め、締め付け、プレス、接着等で)別々に接続された実装デバイス(図示省略)を含む。例えば、実装デバイスは、回路基板、アクティブ若しくは非アクティブな半導体インターポーザ、ソケット、ブラケット、及び/又は、別の機械的実装デバイスのうち1つ以上であってもよい。これらの実施形態では、実装デバイスは、トレース、ガイド、パッド、領域等を含むことができ、これらを介して、供給電圧(例えば、VOUT132等)及び他の電気信号(例えば、1つ以上の制御信号138等)が、電圧レギュレータ104と集積回路チップ102との間で通信される。
【0028】
いくつかの実施形態では、システム100は、集積回路チップ102が封入又は実装されるパッケージ(図示省略)を含む。例えば、パッケージは、ピングリッドアレイパッケージ、フラットパッケージ、スモールアウトラインパッケージ、ボールグリッドアレイパッケージ等であってもよい。このようなパッケージでは一般的であるように、集積回路チップ102とパッケージが実装されるデバイス(回路基板、インターポーザ、ソケット等)との間で電気信号を通信するために、様々なピン、リード、はんだバンプ、領域等及び対応するパッケージ内部配線が設けられている。いくつかの実施形態では、一部の既存のシステムとは異なり、パッケージは、電圧レギュレータ回路要素を含まない。換言すれば、パッケージを介して供給電圧を集積回路チップ102に送るのに使用されるピン、信号ルート、トレース、ガイド、領域等を含まない電圧レギュレータ及び低ドロップアウトレギュレータの回路要素は、電圧レギュレータ104内のように集積回路チップの完全に外部にあるか、又は、低ドロップアウトレギュレータ106~112内のように集積回路チップ上に完全に製造されるかの何れかである。
【0029】
集積回路チップ102には様々な要素が示されているが、いくつかの実施形態では、異なる要素が集積回路チップ102内に存在する。概して、集積回路チップ102は、2つ以上の低ドロップアウトレギュレータによって回路セット内の回路の異なるサブセットに供給されるローカル出力電圧と、外部電圧レギュレータによって2つ以上の低ドロップアウトレギュレータに供給される出力電圧と、を構成する動作を実行するのに十分な要素を含む。
【0030】
システム100は、演算処理を実行する任意の電子デバイスであってもよいし、この電子デバイス内に含まれてもよい。例えば、システム100は、デスクトップコンピュータ、ラップトップコンピュータ、ウェアラブルコンピューティングデバイス、タブレットコンピュータ、仮想現実若しくは拡張現実機器、スマートフォン、サーバ、ネットワーク機器、玩具、音響映像機器、家電製品、コントローラ、乗り物等、及び/又は、これらの組み合わせ等の電子デバイスであってもよいし、これらの電子デバイス内に含まれてもよい。
【0031】
(電圧レギュレータの電圧の構成)
上述したように、説明する実施形態は、電圧レギュレータ104の出力電圧と、低ドロップアウトレギュレータ106~112のローカル出力電圧と、を構成する動作を実行する。図2は、いくつかの実施形態による、電圧レギュレータの出力電圧と、2つ以上の低ドロップアウトレギュレータのローカル出力電圧と、を構成するプロセスを示すフローチャートである。図2に示す動作は、いくつかの実施形態によって実行される機能の一般的な例として示されることに留意されたい。他の実施形態によって実行される動作は、異なる動作、及び/又は、異なる順序で行われる動作を含む。また、プロセスを説明する際に特定のメカニズム(例えば、コントローラ134等)が使用されるが、いくつかの実施形態では、他のメカニズムが動作を実行することができる。
【0032】
図2に示すプロセスは、システム100の動作中にいつでも実行することができる。例えば、プロセスは、スタートアップしたとき若しくはそれに近いときに、1つ以上の特定の時間、周期的な時間若しくは繰り返し時間で、特定のイベントが発生した場合、1つ以上のエンティティ(オペレーティングシステム、CPUコア等)によって要求された場合、ソフトウェアプログラムが実行フェーズを開始若しくは変更した場合、特定の物理的状態(温度等)が発生した場合、及び/又は、他の場合に実行されてもよい。換言すれば、低ドロップアウトレギュレータ106~112のローカル出力電圧及び電圧レギュレータ104の出力電圧は、システム100が動作するときに動的に構成可能/選択可能である。以下に説明するように、アクティビティ情報は、ローカル出力電圧を受信する回路のローカル動作周波数を介して、出力電圧及びローカル出力電圧を構成/選択するために使用され、結果として、システム100のリアルタイムの動作状態に基づいて、電圧レギュレータ及び低ドロップアウトレギュレータ用に構成される出力電圧及びローカル出力電圧がもたらされる。これは、システム100が演算負荷に応じて処理することを確実にしながら、少ない電力を消費し、低温等で動作することを確実にするのに役立つ。
【0033】
図2に示すプロセスは、コントローラ134が、2つ以上の低ドロップアウトレギュレータ(例えば、低ドロップアウトレギュレータ112等)の各々によって供給されるローカル出力電圧を供給電圧として受け取る回路セット内の回路のサブセット(例えば、機能ブロック122等)のアクティビティ又は負荷を識別するアクティビティ情報を取得することによって開始する(ステップ200)。この動作中、コントローラ134は、回路セット内の回路のサブセットのアクティビティ又は負荷を計算、識別、又は、推定するのに使用可能な情報を受信、読み出し又は取得する。例えば、(供給電圧が1つの低ドロップアウトレギュレータによって供給される)CPUコアは、例えば、コントローラ134がアクセス可能なレジスタ又はメモリ位置において、1つ以上の性能カウンタを更新することができ、コントローラ134は、メモリ位置にアクセス/読み出して、アクティビティ情報を取得することができる。別の例として、コントローラ134は、メモリを含む機能ブロックからメモリ帯域幅の使用レポート又は使用予測を要求し、これに応じて、メモリ帯域幅を示す応答をアクティビティ情報として受信することができる。別の例として、コントローラ134は、回路セットのサブセットから、回路セット内の回路のサブセットの一部又は全てによって実行されるソフトウェアプログラムのオペレーティングシステム等から、既知の実行プロファイル(例えば、メモリアクセスが多い、グラフィックスが多い等)、識別可能な実行フェーズ(例えば、計算フェーズの後にメモリへの書き込みフェーズが続く)等をアクティビティ情報として含む指標を受信することができる。さらに別の例として、コントローラ134は、システム100のモニタから動作環境値(例えば、温度、ノイズ、ファン速度等)の指標を受信し、この値をアクティビティ情報として使用することができる。
【0034】
いくつかの実施形態では、コントローラ134は、アクティビティ情報を生成又は導出する。例えば、コントローラ134は、1つ以上のシステム値(CPUコアの負荷レベル、メモリバス帯域幅の使用量、温度等)を経時的に監視し、平均、割合、プロファイル、ヒストグラム等を計算することができる。別の例として、コントローラ134は、毎秒のCPUコア当たりの平均命令、システム全体の温度パターン等の複合統計又は値を計算又は生成することができる。概して、コントローラ134は、読み出した、受信した又は取得した1つ以上の値に基づいて、回路セット内のサブセットのアクティビティ又は負荷レベルを識別するアクティビティ情報を決定するための動作を実行する。
【0035】
次に、コントローラ134は、アクティビティ情報に基づいて、低ドロップアウトレギュレータの各々によって供給されるローカル出力電圧を受け取る回路のローカル動作周波数を決定する(ステップ202)。この動作中、コントローラ134は、アクティビティ情報、並びに、1つ以上のテーブル、基準値、アルゴリズム、論理演算及び/又は他の演算を使用して、アクティビティ情報に基づいて、低ドロップアウトレギュレータの各々によって供給されるローカル出力電圧を受け取る回路のローカル動作周波数を決定する。例えば、コントローラ134は、ルックアップテーブル又は他のレコードを使用して、アクティビティ情報が、指定された割合を超えるアイドル時間が対応する回路で発生したか発生していることを示す場合に、回路の一部又は全てのローカル動作周波数が、第1値(例えば、1.5GHz、900MHz、又は、別の値)として構成され、他の場合には、第2値(例えば、2.5GHz、3GHz、又は、別の値)として構成されることを決定することができる。別の例として、コントローラ134は、回路(又は、他のもの)の一部又は全てから取得した動作温度を使用して、回路の一部又は全てのローカル周波数を、1つ以上の数学演算、論理演算、及び/又は、ビット演算を有するアルゴリズムへの入力として計算することができる。例えば、コントローラ134は、アルゴリズムを使用して、回路の一部又は全ての現在のローカル動作周波数を、現在の動作温度に比例するように、新たなローカル動作周波数にスケーリングすることができる。
【0036】
いくつかの実施形態では、1つ以上のテーブル、基準値、アルゴリズム、論理演算、及び/又は、アクティビティ情報に基づいてローカル動作周波数を決定するのに使用される他の演算は、動的に構成可能である。例えば、1つ以上のテーブルを使用する実施形態では、1つ以上のテーブルは、システム100が動作するときに、オペレーティングシステム又はソフトウェアプログラム、ユーザ、コントローラ134、回路のサブセットの1つ等によって更新又は置換されてもよい。このようにして、ステップ202で決定されたローカル動作周波数を、経時的に変更又は調整することができ、これは、システムが、低ドロップアウトレギュレータの各々によって供給されるローカル出力電圧を受け取る回路に対して、所望のローカル動作周波数を使用することを確実にするのに役立つ。いくつかの実施形態では、1つ以上のテーブル、基準値、アルゴリズム、論理演算及び/又は他の演算の動的構成は、1つ以上の一般的なポリシー又はルールに従って、例えば、特定の演算処理の特定の平均完了時間を維持し、システム100内の平均温度を維持する等を行う。これらの実施形態では、動的構成は、所定の又は動的構成に基づいて、一般的なポリシー又はルールを満たしていることを確実にするために、頻繁に(例えば、Nミリ秒毎等)発生し得る。いくつかの実施形態では、回路毎のローカル動作周波数を異なる値に設定することができる。
【0037】
次に、コントローラ134は、低ドロップアウトレギュレータの各々によって供給されるローカル出力電圧を受け取る回路の決定されたローカル動作周波数に基づいて、低ドロップアウトレギュレータ毎のローカル出力電圧を決定する(ステップ204)。この動作中、コントローラ134は、対応するローカル動作周波数に基づいて低ドロップアウトレギュレータの各々のローカル動作周波数を決定するために、1つ以上のテーブル、基準値、アルゴリズム、論理演算及び/又は他の演算を使用する。例えば、コントローラ134は、対応するローカル動作周波数の各々に関連するローカル出力電圧を決定するために、1つ以上のルックアップテーブル又は他のレコードにおいてルックアップを実行することができる。例えば、1つの低ドロップアウトレギュレータによって供給されるローカル出力電圧を受け取る回路の決定されたローカル動作周波数が2.5GHzであると仮定すると、対応する低ドロップアウトレギュレータのローカル出力電圧は、1.2V、1.5V又は別の電圧値に設定され得る。このようにして、対応する回路のローカル動作周波数に基づいて、低ドロップアウトレギュレータ毎に個別のローカル出力電圧が決定される。
【0038】
いくつかの実施形態では、ローカル動作周波数に基づいてローカル出力電圧を決定するのに使用される1つ以上のテーブル、基準値、アルゴリズム、論理演算及び/又は他の演算は、動的に構成可能である。例えば、1つ以上のテーブルを使用する実施形態では、1つ以上のテーブルは、システム100が動作するときに、オペレーティングシステム又はソフトウェアプログラム、ユーザ、コントローラ134、回路のサブセットの1つ等によって更新又は置換されてもよい。このようにして、ステップ204で決定されたローカル出力電圧を経時的に変更又は調整することができ、これは、システムが、低ドロップアウトレギュレータの各々によって供給されるローカル出力電圧を受け取る回路に対して所望の電圧を使用することを確実にするのに役立つ。いくつかの実施形態では、1つ以上のテーブル、基準値、アルゴリズム、論理演算及び/又は他の演算の動的構成は、1つ以上の一般的なポリシー又はルールに従って、例えば、特定の演算処理の特定の平均完了時間を維持し、システム100内の平均温度を維持する等を行う。これらの実施形態では、動的構成は、所定の又は動的構成に基づいて、一般的なポリシー又はルールを満たしていることを確実にするために、頻繁に(例えば、Nミリ秒毎等)発生し得る。
【0039】
次に、コントローラ134は、低ドロップアウトレギュレータのローカル出力電圧に基づいて、電圧レギュレータ(例えば、電圧レギュレータ104等のスイッチング電圧レギュレータ)の出力電圧を決定する(ステップ206)。この動作中、コントローラ134は、ルックアップテーブル、アルゴリズム及び/又は他の演算を使用して、低ドロップアウトレギュレータの各々/全ての適切な動作を可能にするのに十分に高いが必要以上に高くない、電圧レギュレータによって供給される出力電圧を決定する。概して、低ドロップアウトレギュレータは、正しい動作を可能にするために、ローカル出力電圧以上の入力電圧を必要とする。したがって、いくつかの実施形態では、コントローラ134は、加算(例えば、0.2V、0.3V等のオフセット値を、最高の低ドロップアウトレギュレータ出力電圧に加える)又はスケーリング値を掛ける乗算(例えば、1.1、1.2等のスケーリング値を、最高の低ドロップアウトレギュレータ出力電圧に掛ける)等のアルゴリズムを使用して、電圧レギュレータの出力電圧を決定することができる。いくつかの実施形態では、コントローラ134は、使用可能/許容可能なローカル出力電圧値のセットの各々が、出力電圧を取得するために電圧レギュレータの対応する出力電圧に関連付けられているテーブルにおいて、ルックアップを実行することができる。また、コントローラ134は、単に、出力電圧を、ローカル出力電圧の最高値に等しく設定してもよい。
【0040】
いくつかの実施形態では、電圧レギュレータの出力電圧を決定するのに使用されるルックアップテーブル、アルゴリズム及び/又は他の演算は、動的に構成可能である。例えば、ルックアップテーブルを使用する実施形態では、ルックアップテーブルは、システム100が動作するときに、オペレーティングシステム又はソフトウェアプログラム、ユーザ、コントローラ134、回路のサブセットの1つ等によって更新又は置換されてもよい。このようにして、ステップ204で決定された出力電圧を経時的に変更又は調整することができ、これは、システムが、電圧レギュレータを構成するために所望の出力電圧を使用することを確実にするのに役立つ。いくつかの実施形態では、ルックアップテーブル、アルゴリズム及び/又は他の演算の動的構成は、1つ以上の一般的ポリシー又はルールに従って、例えば、特定の演算処理の特定の平均完了時間を維持し、システム100内の平均温度を維持する等を行う。これらの実施形態では、動的構成は、所定の又は動的構成に基づいて、一般的なポリシー又はルールを満たしていることを確実にするために、頻繁に(例えば、Nミリ秒毎等)発生し得る。
【0041】
次に、コントローラ134は、出力電圧を供給するように電圧レギュレータを構成する(ステップ208)。この動作中、コントローラ134は、例えば、対応する1つの制御信号138を介して、電圧レギュレータの回路要素を設定、調整し、又は、回路要素に出力電圧の供給/出力を開始させる。例えば、コントローラ134は、電圧レギュレータの回路要素に供給されるバイアス電圧又は基準電圧を設定又は調整し、これらの回路要素に出力電圧の供給を開始させることができる。別の例として、コントローラ134は、増幅器、抵抗器、キャパシタ、インダクタ等の電圧レギュレータの要素を構成して、電圧レギュレータに出力電圧の供給を開始させることができる。別の例として、コントローラ134は、電圧レギュレータの1つ以上の制御回路又は制御要素によって使用されるレジスタ又はメモリ要素の値を設定して、電圧レギュレータの出力電圧をどのように設定するかを決定し、これにより、電圧レギュレータに出力電圧の供給を開始させることができる。
【0042】
次に、コントローラ134は、低ドロップアウトレギュレータの各々を構成して、低ドロップアウトレギュレータのローカル出力電圧を供給する(ステップ210)。この動作中、コントローラ134は、例えば、対応する制御信号138を介して、低ドロップアウトレギュレータの回路要素を設定、調整し、又は、当該回路要素に対応するローカル出力電圧の供給/出力を開始させる。例えば、コントローラ134は、低ドロップアウトレギュレータの回路要素に供給されるバイアス電圧又は基準電圧を設定して、出力電圧の供給をこれらの回路要素に開始させることができる。別の例として、コントローラ134は、増幅器、抵抗器、キャパシタ等の低ドロップアウトレギュレータの要素を構成して、出力電圧の供給を低ドロップアウトレギュレータに開始させることができる。別の例として、コントローラ134は、低ドロップアウトレギュレータの1つ以上の制御回路又は制御要素によって使用されるレジスタ又はメモリ要素の値を設定して、低ドロップアウトレギュレータの出力電圧をどのように設定するか決定し、これにより、出力電圧の供給を低ドロップアウトレギュレータに開始させる。
【0043】
図2の例では、出力電圧を供給する電圧レギュレータの再構成(ステップ208)及び対応するローカル出力電圧を供給する低ドロップアウトレギュレータの再構成(ステップ210)は、構成動作中にローカル出力電圧の不要な乱れ(disruption)が回避されるように行われる。概して、これは、低ドロップアウトレギュレータがより低いローカル出力電圧を供給するように再構成されるまで、電圧レギュレータの出力電圧が、全ての低ドロップアウトレギュレータが以前のローカル出力電圧を供給し続けるのに十分な出力電圧未満に減らないことを意味する。例えば、再構成は、アトミックであってもよいし、電圧レギュレータ及び低ドロップアウトレギュレータに対して実質的に同時に行われてもよい。これにより、低ドロップアウトレギュレータは、再構成による悪影響(すなわち、ローカル出力電圧の遮断又はスパイク)が低減していることを示す。別の例として、ステップ208~210の順序は、電圧レギュレータの出力電圧が低減/構成される前に低ドロップアウトレギュレータのローカル出力電圧が低減/構成されるように、入れ替えられてもよい。
【0044】
次に、コントローラ134は、低ドロップアウトレギュレータの各々によって供給されるローカル出力電圧を受け取る回路のローカル動作周波数を構成する(ステップ212)。この動作中、コントローラ134は、回路のローカル動作周波数を直接的又は間接的に調整、更新又は構成する。例えば、コントローラ134は、回路内の動作が同期される又は動作が制御される1つ以上のクロックのクロック周波数を調整(すなわち、増加又は減少)することができ、別の制御回路(高周波数クロック又は低周波数クロック等)からの入力を受け入れるように回路を構成してもよく、及び/又は、回路のローカル動作周波数を更新してもよい。
【0045】
電圧及び周波数を「構成」する動作について説明しているが、構成することは、出力電圧、ローカル出力電圧及び周波数を変更しないことが望ましい場合には、変更しないままにすることを含む。例えば、出力電圧及び/又はローカル出力電圧が、ステップ200~206で決定された出力電圧及び/又はローカル出力電圧に従って適切に構成されている場合には、ステップ208及び/又はステップ210は、現在の出力電圧及び/又はローカル出力電圧を変更しない状態のままにすることからなってもよい。
【0046】
図3A図3Cは、いくつかの実施形態による、いくつかのシステムワークロード設定、対応する電圧レギュレータ設定、及び、低ドロップアウトレギュレータ設定のブロック図である。概して、図3A図3Cに示す例は、図2の動作が3つの異なるワークロードの各々に対して実行された後の出力電圧及び2つのローカル出力電圧を示している。特定の実施形態が図3A図3Cに示されているが、いくつかの実施形態では、異なる電圧を使用することができる。
【0047】
図3A図3Cの動作に関して、システムワークロードは、システムの動作中に特定の時点で発生する可能性があるワークロード及び選択された電圧を表している。しかしながら、これらは、システム100で発生する可能性がある唯一のワークロード及び/又は選択された電圧ではない。システム100の動作中、ワークロード及び選択された電圧は、システム100の特定の演算負荷及び/又は他の要因に応じて、刻々と変化し得る。本明細書で説明するように、コントローラ134は、ワークロードに少なくとも部分的に基づいて、出力電圧及びローカル出力電圧を動的に構成する。また、電圧レギュレータ(例えば、電圧レギュレータ104)の固定入力電圧が、図3A図3Cの全てに示されている。固定電圧は、電圧レギュレータに供給される(例えば、電源、電池、別のソースからの)供給電圧である。また、電圧レギュレータ及び低ドロップアウトレギュレータの最小出力電圧及び最大出力電圧は、横軸の下のラベルを使用して示される。例えば、電圧レギュレータの最小電圧には「VR MIN VOLTAGE」というラベルが付され、最大電圧には「VR MAX VOLTAGE」というラベルが付されている。固定電圧値、最小電圧値、最大電圧値は、単に例示として示されており、縮尺通りに示されていないことに留意されたい。
【0048】
図3AのCPU中心のワークロード300の場合、CPU(例えば、CPUコア114)はアクティブであり負荷が発生しているが、GPU(例えば、GPUコア118)の負荷は最小限に過ぎない。対応する低ドロップアウトレギュレータ(例えば、低ドロップアウトレギュレータ106,110)によって供給されるローカル出力電圧は、対応するアクティビティ/負荷に基づいているので、対応する低ドロップアウトレギュレータは、最大電圧(図3Aのバーの暗い部分によって示される)に近いローカル出力電圧をCPUに供給し、対応する低ドロップアウトレギュレータは、最小電圧に近いローカル出力電圧をGPUに供給する。図から分かるように、電圧レギュレータによって供給される出力電圧は、CPU低ドロップアウトレギュレータのローカル出力電圧に実質的に等しい(すなわち、等しくない場合には僅かに上回り)ので、CPU低ドロップアウトレギュレータを有効にするのに十分な供給電圧が供給される。GPU低ドロップアウトレギュレータは、より低いローカル出力電圧に設定され、これは、或る程度の電力損失(低ドロップアウトレギュレータの特性、及び、出力電圧とGPUローカル出力電圧との差に起因する)をもたらすが、電力損失は、GPUによって消費される低レベルの電流に起因して小さい。
【0049】
図3BのGPU中心のワークロード302の場合、GPUはアクティブであり負荷が発生しているが、CPUは十分に負荷がかかっていない。対応する低ドロップアウトレギュレータによって供給されるローカル出力電圧は、対応するアクティビティ/負荷に基づいており、これにより、対応する低ドロップアウトレギュレータは、最大電圧に近いローカル出力電圧をGPUに供給し、電圧範囲の中間のローカル出力電圧をCPUに供給する。図から分かるように、電圧レギュレータによって供給される出力電圧は、GPU低ドロップアウトレギュレータのローカル出力電圧と実質的に等しく、それによって、GPU低ドロップアウトレギュレータを有効にするのに十分な供給電圧を供給する。CPU低ドロップアウトレギュレータは、低ローカル出力電圧に設定され、これは、(この場合も、CPU低ドロップアウトレギュレータの特性と、出力電圧とCPUローカル出力電圧との差と、に起因して)ある程度の電力損失をもたらすが、電力損失は、CPUによって流れる電流が低レベルであることに起因して管理不能ではない。
【0050】
図3Cの低程度(low-intensity)のワークロード304の場合、CPU及びGPUの両方がアクティブであるが、負荷は最小限である。対応する低ドロップアウトレギュレータによって供給されるローカル出力電圧は、対応するアクティビティ/負荷に基づいており、これにより、対応する低ドロップアウトレギュレータは、最小電圧に近いローカル出力電圧をCPU及びGPUの両方に供給する。図から分かるように、電圧レギュレータによって供給される出力電圧も、GPU低ドロップアウトレギュレータを有効にするのに十分な供給電圧を供給する最小電圧に近い。
【0051】
(システムの製造)
図4は、いくつかの実施形態による、システム(例えば、図1に示すシステム100)を製造するためのプロセスを示すフローチャートである。図4に示す動作は、いくつかの実施形態によって実行される機能の一般的な例として示されることに留意されたい。他の実施形態によって実行される動作は、異なる動作、及び/又は、異なる順序で実行される動作を含む。
【0052】
図4に示すプロセスは、回路(すなわち、集積回路)セットが集積回路チップ上に製造されるときに開始する(ステップ400)。この動作中、様々な回路(例えば、CPUコア114、機能ブロック120等)が、ドーピング、イオン注入、エッチング、様々な材料の堆積、1つ以上のマスクを介したフォトリソグラフィパターニング等の周知の半導体製造プロセスを用いて、集積回路チップ上に製造される。集積回路チップは、新たな半導体ダイ、又は、既に存在する1つ以上の他のデバイス若しくはフィーチャ(features)を有する半導体ダイであってもよい。
【0053】
次に、2つ以上の低ドロップアウトレギュレータを集積回路チップ上に製造する(ステップ402)。ステップ400の回路と同様に、低ドロップアウトレギュレータは、周知の半導体製造プロセスを使用して、集積回路チップ上に製造される。
【0054】
次に、2つ以上の低ドロップアウトレギュレータの各々のローカル出力電圧は、回路セットの異なるサブセットに(供給電圧として)接続される(ステップ404)。この動作中、低ドロップアウトレギュレータの各々のローカル出力電圧のための出力ピンや接点等と、回路セットの対応するサブセットの供給電圧入力のための入力ピンや接点等との間に、信号線(例えば、1つ以上のトレース、ガイド等)が接続される。
【0055】
次に、スイッチング電圧レギュレータが、集積回路チップの外部に製造される(ステップ406)。この動作中、様々なディスクリート回路要素及び/又は集積回路要素が、例えば周知の半導体製造プロセスを用いて製造され、スイッチング電圧レギュレータを形成するように共に接続される。
【0056】
次に、スイッチング電圧レギュレータの電圧出力が、低ドロップアウトレギュレータの電圧入力に接続される(ステップ408)。この動作中、スイッチング電圧レギュレータの出力電圧ピン、コネクタ、リード等は、1つ以上のトレース、ワイヤ、ガイド等を介して、低ドロップアウトレギュレータの電圧入力のためのオフチップインタフェースとして機能する集積回路チップのピン、領域等に接続される。
【0057】
いくつかの実施形態では、コンピューティングデバイス(例えば、システム100及び/又はシステム100の一部)は、非一時的なコンピュータ可読媒体に記憶されたコード及び/又はデータを使用して、本明細書で説明する動作の一部又は全てを実行する。より具体的には、コンピューティングデバイスは、コード及び/又はデータをコンピュータ可読記憶媒体から読み出し、説明する動作を実行する場合に、当該コードを実行し及び/又は当該データを使用する。コンピュータ可読記憶媒体は、コンピューティングデバイスによって使用されるコード及び/又はデータを記憶する任意のデバイス、媒体又はこれらの組み合わせであってもよい。例えば、コンピュータ可読記憶媒体は、揮発性メモリ又は不揮発性メモリ(フラッシュメモリ、ランダムアクセスメモリ(eDRAM、RAM、SRAM、DRAM、DDR、DDR2/DDR3/DDR4 SDRAM等)、リードオンリメモリ(ROM)、及び/又は、磁気記憶媒体若しくは光学記憶媒体(例えば、ディスクドライブ、磁気テープ、CD、DVD等)を含む)を含むことができるが、これらに限定されない。
【0058】
いくつかの実施形態では、1つ以上のハードウェアモジュールが、本明細書に説明する動作を実行するように構成される。例えば、ハードウェアモジュールは、1つ以上のプロセッサ/コア/中央処理装置(CPU)、特定用途向け集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(FPGA)、演算ユニット、組み込みプロセッサ、グラフィックスプロセッサ(GPU)/グラフィックスコア、パイプライン、アクセラレーテッド処理ユニット(APU)、システム管理コントローラ、電力コントローラ、及び/又は、他のプログラマブルロジックデバイスを含むことができるが、これらに限定されない。このようなハードウェアモジュールが起動されると、当該ハードウェアモジュールは、動作の一部又は全てを実行する。いくつかの実施形態では、ハードウェアモジュールは、命令(プログラムコード、ファームウェア等)を実行して動作を実行することによって構成される1つ以上の汎用回路を含む。
【0059】
いくつかの実施形態では、本明細書に説明する構造及びメカニズムの一部又は全てを表すデータ構造(例えば、集積回路チップ102、コントローラ134、及び/又は、その一部)は、コンピューティングデバイスによって読み出され、構造及びメカニズムを備えるハードウェアを製造するために直接的又は間接的に使用され得るデータベース又は他のデータ構造を含む、非一時的なコンピュータ可読記憶媒体に記憶される。例えば、データ構造は、Verilog又はVHDL等の高レベル設計言語(HDL)におけるハードウェア機能の動作レベル記述又はレジスタ転送レベル(RTL)記述であってもよい。記述は、記述を合成して、上述した構造及びメカニズムを含むハードウェアの機能を表す合成ライブラリからゲート/回路要素のリストを含むネットリストを生成することができる合成ツールによって読み出されてもよい。次に、ネットリストを配置及びルーティングして、マスクに適用される幾何学的形状を記述するデータセットを生成することができる。次に、マスクを様々な半導体製造工程で使用して、上述した構造及びメカニズムに対応する1つ以上の半導体回路を製造することができる。或いは、コンピュータアクセス可能な記憶媒体上のデータベースは、ネットリスト(合成ライブラリを伴う若しくは伴わない)、必要に応じてデータセット、又は、グラフィックスデータシステム(GDS)IIデータであってもよい。
【0060】
この説明において、機能ブロックは、いくつかの実施形態を説明する際に言及され得る。概して、機能ブロックは、説明した動作を実行する1つ以上の相互に関連する回路要素を含む。例えば、回路要素は、集積回路、ディスクリート回路等を含むことができる。いくつかの実施形態では、機能ブロックの回路は、上記の動作を実行するために、プログラムコード(例えば、マイクロコード、ファームウェア、アプリケーション等)を実行する回路を含む。例えば、機能ブロックは、1つ以上の処理パイプライン、演算ユニット、専用処理回路等を含むことができる。
【0061】
この説明において、時間は、一般的な用語で参照される場合がある。例えば、「Nミリ秒毎」等である。変数としてNを繰り返し使用しているにもかかわらず、一般的な参照では、必ずしも、各ケースで同じ時間を説明しているわけではない。一般的な参照の一部又は全てについて異なる時間が意図され得る。
【0062】
実施形態の上記の説明は、例示及び説明目的だけのために提示されている。この説明は、網羅的であること、又は、開示された形態に実施形態を限定することを意図していない。したがって、当業者には、多くの修正及び変形が明らかである。また、上記の説明は、実施形態を限定することを意図していない。実施形態の範囲は、添付の特許請求の範囲によって定義される。
図1
図2
図3A
図3B
図3C
図4