(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-05
(45)【発行日】2025-02-14
(54)【発明の名称】電源電圧ドループ中の性能管理
(51)【国際特許分類】
G06F 1/3206 20190101AFI20250206BHJP
G06F 1/324 20190101ALI20250206BHJP
G06F 1/3296 20190101ALI20250206BHJP
G06F 1/3234 20190101ALI20250206BHJP
【FI】
G06F1/3206
G06F1/324
G06F1/3296
G06F1/3234
(21)【出願番号】P 2024526593
(86)(22)【出願日】2022-10-27
(86)【国際出願番号】 US2022048058
(87)【国際公開番号】W WO2023081054
(87)【国際公開日】2023-05-11
【審査請求日】2024-06-21
(32)【優先日】2021-11-08
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】エリック ジェイ. チャップマン
(72)【発明者】
【氏名】ステファン ヴィクトル コソノキー
(72)【発明者】
【氏名】コーシク マジュムダール
(72)【発明者】
【氏名】ヴィドヒャナサン カリヤナスンダラム
(72)【発明者】
【氏名】サミュエル ナフザイガー
(72)【発明者】
【氏名】エリック エム. スコット
【審査官】漆原 孝治
(56)【参考文献】
【文献】米国特許出願公開第2023/0031415(US,A1)
【文献】米国特許出願公開第2019/0377405(US,A1)
【文献】米国特許第9477586(US,B1)
【文献】米国特許出願公開第2017/0212579(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/3206
G06F 1/324
G06F 1/3296
G06F 1/3234
(57)【特許請求の範囲】
【請求項1】
データ処理システムを制御するための方法であって、
プログラム可能なドループ閾値よりも大きい、前記データ処理システムの機能回路の電源電圧におけるドループを検出することと、
前記ドループを検出したことに応じて、1つ以上のスロットルレジスタの出力によって特定された、プログラム可能なステップサイズ、プログラム可能なアサート時間、及び、プログラム可能なデアサート時間に従って、前記データ処理システムの動作をスロットルすることと、を含む、
方法。
【請求項2】
前記スロットルすることは、
データファブリックを介して、メモリアクセスエージェントとメモリアクセスレスポンダとの間のメモリアクセス要求のフローをスロットルすることを含む、
請求項1の方法。
【請求項3】
前記スロットルすることは、
前記メモリアクセスエージェントに結合されたコヒーレントマスタポートと、ファブリックトランスポート層を介して前記メモリアクセスレスポンダに結合されたコヒーレントスレーブポートと、を使用して、前記メモリアクセス要求のフローをスロットルすることを含む、
請求項2の方法。
【請求項4】
前記スロットルすることは、
メモリコントローラにおいて、メモリアクセスエージェントから外部メモリへのメモリアクセス要求のフローをスロットルすることを含む、
請求項1の方法。
【請求項5】
前記メモリコントローラによってアクセスされるメモリのタイプに応じて、
前記データ処理システムが、前記プログラム可能なドループ閾値を設定することを含む、
請求項4の方法。
【請求項6】
前記スロットルすることは、
前記ドループを検出したことに応じて、前記プログラム可能なステップサイズに従ってスロットル量を設定することと、
前記電源電圧が、前記プログラム可能なアサート時間の間、前記プログラム可能なドループ閾値を下回ったままである場合に、前記プログラム可能なステップサイズだけスロットル量を増加させることと、
前記電源電圧が、前記プログラム可能なデアサート時間の間、前記プログラム可能なドループ閾値を上回る場合に、前記プログラム可能なステップサイズだけ前記スロットル量を減少させることと、を含む、
請求項1の方法。
【請求項7】
前記データ処理システムの少なくとも1つのプロセッサコアを、公称クロック周波数及び公称電圧によって定義されるそれぞれの動作電力状態で動作させることと、
前記スロットルの間、前記少なくとも1つのプロセッサコアの各々の公称クロック周波数及び公称電圧を維持することと、を含む、
請求項1の方法。
【請求項8】
データ処理システムであって、
複数のメモリアクセスエージェントと、
複数のメモリアクセスレスポンダと、
前記複数のメモリアクセスエージェントと前記複数のメモリアクセスレスポンダとの間でメモリアクセス要求とメモリアクセス応答とを結合するためのデータファブリックと、
前記データ処理システムの電源電圧におけるドループがドループ閾値を下回ることに応じてドループ信号をアクティブにするドループ検出器と、を備え、
前記データファブリックは、前記ドループ信号に応じて、バックプレッシャを用いて、前記複数のメモリアクセスエージェントと前記複数のメモリアクセスレスポンダとの間のメモリアクセス要求のフローをスロットルする、
データ処理システム。
【請求項9】
前記データファブリックは、プログラム可能なステップサイズ、プログラム可能なアサート時間、及び、プログラム可能なデアサート時間に従って、前記メモリアクセス要求のフローをスロットルする、
請求項8のデータ処理システム。
【請求項10】
前記データファブリックは、
前記複数のメモリアクセスエージェントのそれぞれに結合された複数のコヒーレントマスタポートと、
前記複数のメモリアクセスレスポンダのそれぞれに結合された複数のコヒーレントスレーブポートと、
前記複数のコヒーレントマスタポートと前記複数のコヒーレントスレーブポートとの間でメモリアクセス要求及びメモリアクセス応答をルーティングするためのファブリックトランスポート層と、
前記ドループ信号に応じて、前記複数のコヒーレントマスタポート及び前記複数のコヒーレントスレーブポートに総スロットル量を提供するためのコントローラと、を備える、
請求項8のデータ処理システム。
【請求項11】
前記コントローラは、
プログラム可能なステップサイズ、プログラム可能なアサート時間、及び、プログラム可能なデアサート時間を記憶するための少なくとも1つのレジスタと、
前記少なくとも1つのレジスタに結合されており、前記プログラム可能なステップサイズ、前記プログラム可能なアサート時間、及び、前記プログラム可能なデアサート時間に応じて第1のスロットル量を提供する第1のスロットル状態機械と、を備える、
請求項10のデータ処理システム。
【請求項12】
前記第1のスロットル状態機械は、
前記ドループ信号がアクティブになるのに応じて、第1のスロットル量を前記プログラム可能なステップサイズに設定し、
前記プログラム可能なアサート時間の間、前記ドループ信号がアクティブのままである場合に、前記第1のスロットル量を増加させ、
前記プログラム可能なデアサート時間の間、前記ドループ信号が非アクティブである場合に、前記第1のスロットル量を減少させる、
請求項11のデータ処理システム。
【請求項13】
データ処理システムであって、
複数のメモリアクセスエージェントと、
外部メモリに結合されるように適合され、対応するメモリアクセスプロトコルを使用して前記外部メモリへのアクセスを制御するためのメモリコントローラと、
前記複数のメモリアクセスエージェントを前記メモリコントローラに結合するためのデータファブリックと、
前記メモリコントローラに結合され、前記データ処理システムの電源電圧におけるドループ閾値を下回るドループを検出し、前記ドループを検出したことに応じてドループ信号を提供するドループ検出器と、を備え、
前記データ処理システムは、前記ドループ信号に応じて、1つ以上のスロットルレジスタの出力によって特定された、プログラム可能なステップサイズ、プログラム可能なアサート時間、及び、プログラム可能なデアサート時間に従って、前記データ処理システムの動作をスロットルする、
データ処理システム。
【請求項14】
前記メモリコントローラは、
前記ドループ信号がアクティブになるのに応じて、第1のスロットル量を前記プログラム可能なステップサイズに設定し、
前記プログラム可能なアサート時間の間、前記ドループ信号がアクティブのままである場合に、前記第1のスロットル量を増加させ、
前記プログラム可能なデアサート時間の間、前記ドループ信号が非アクティブである場合に、前記第1のスロットル量を減少させる、
請求項13のデータ処理システム。
【請求項15】
前記データ処理システムは、前記外部メモリのタイプに従って前記ドループ閾値を設定する、
請求項14のデータ処理システム。
【発明の詳細な説明】
【背景技術】
【0001】
現代のデータプロセッサは、いくつかの利用可能な性能状態、すなわち、何れかの「P状態」で動作することによって電力消費を最適化するように設計されている。各P状態は、動作周波数及び動作電圧の両方によって定義される。例えば、比較的高い処理負荷の期間中により高い動作周波数で適切に機能するためには、概してより高い電源電圧が必要とされる。逆に、比較的低い処理負荷の期間中に電力を節約するために、当該動作周波数での適切な動作を保証したままで電源電圧を下げることができる。相補型金属酸化膜半導体(complementary metal-oxide-semiconductor、CMOS)集積回路の動的電力消費は、次式によって電源電圧及びクロック周波数に関連付けられる。
P=C’V2’f [1]
式中、Pは電力消費、Cはデータプロセッサの動的静電容量、Vは電源電圧、fは動作周波数である。Cは所定の設計に対して固定されるが、V及びfは選択されたP状態によって決定される。
【0002】
データプロセッサは、通常、パフォーマンスカウンタを監視すること等によってプロセッサ利用率を測定するか又は推定することによって、適切なP状態を選択する。例えば、ファームウェアは、データプロセッサがアイドル状態である時間量に対する、データプロセッサが動作する相対時間量としてプロセッサ利用率を測定することができ、パーセンテージとして表すことができる。P状態を変化させる場合、Vの値を設定する電圧レギュレータ及びfの値を設定するクロック発生器は、それらの新しい動作点で安定するのに時間を要する。これらの時間要件のために、P状態機構は、プロセッサ動作周波数がギガヘルツ(GHz)範囲にある場合にマイクロ秒又はミリ秒の時間スケール等のように、プロセッサ動作周波数よりも数桁遅く動作することがある。
【0003】
しかしながら、時には、データプロセッサの電源電圧が、「ドループ」として知られる状態を経験することがある。電圧ドループは、電源が変動負荷を駆動する場合の所望の電圧レベルからの電圧の低下を指す。調整されたシステムでは、負荷が突然急増すると、出力電圧が低下することがあり得る。例えば、過渡負荷状態が発生して電圧ドループを引き起こすことがある。ドループが大きすぎる場合、回路故障が生じる。一方、P状態が、所定の動作周波数が予想されるドループに適応するのに十分高い公称電圧レベルを定義する場合、平均して多くの電力が浪費される。
【図面の簡単な説明】
【0004】
【
図1】先行技術で知られている、加速処理ユニット(accelerated processing unit、APU)及びメモリシステムのブロック図である。
【
図2】いくつかの実施形態による、データプロセッサのブロック図である。
【
図3】いくつかの実施形態による、
図2のコントローラで使用するのに好適なコントローラの一部のブロック図である。
【
図4】
図3のコントローラの動作の一例を示すタイミング図である。
【
図5】様々なスロットル量についての
図3のデータファブリックスロットリングシステムの反応時間を示すタイミング図である。
【発明を実施するための形態】
【0005】
以下の説明において、異なる図面における同一の符号の使用は、同様のアイテム又は同一のアイテムを示す。別段の言及がなければ、「連結される(coupled)」という単語及びその関連する動詞形は、当該技術分野で周知の手段による直接接続及び間接電気接続の両方を含み、また、別段の言及がなければ、直接接続の任意の記述は、好適な形態の間接電気接続を使用する代替の実施形態も同様に意味する。
【0006】
データ処理システムを制御するための方法は、プログラム可能なドループ閾値よりも大きい、データ処理システムの機能回路の電源電圧におけるドループを検出することを含む。データ処理システムの動作は、ドループを検出することに応じて、プログラム可能なステップサイズ、プログラム可能なアサート時間、及び、プログラム可能なデアサート時間に従ってスロットルされる。
【0007】
データ処理システムは、複数のメモリアクセスエージェントと、複数のメモリアクセスレスポンダと、データファブリックと、ドループ検出器と、を含む。データファブリックは、複数のメモリアクセスエージェントと複数のメモリアクセスレスポンダとの間でメモリアクセス要求とメモリアクセス応答とを結合する。ドループ検出器は、ドループ閾値を下回る、データ処理システムの電源電圧におけるドループに応じて、ドループ信号をアクティブ化する。データファブリックは、ドループ信号に応じて、複数のメモリアクセスエージェントと複数のメモリアクセスレスポンダとの間のメモリアクセス要求のフローをスロットルする。
【0008】
データ処理システムは、複数のメモリアクセスエージェントと、メモリコントローラと、データファブリックと、ドループ検出器と、を備える。メモリコントローラは、外部メモリに結合されるように適合され、対応するメモリアクセスプロトコルを使用して外部メモリへのアクセスを制御する。データファブリックは、複数のメモリアクセスエージェントをメモリコントローラに結合する。ドループ検出器はメモリコントローラに結合され、ドループ閾値を下回る、データ処理システムの電源電圧におけるドループを検出し、それに応じてドループ信号を提供する。メモリコントローラは、ドループ信号に応じて外部メモリへのメモリアクセス命令の速度をスロットルする。
【0009】
図1は、従来技術において既知の加速処理ユニット(accelerated processing unit、APU)100及びメモリシステム130のブロック図である。APU100は、ホストデータ処理システムにおけるプロセッサとして使用するのに好適な集積回路であり、概して、中央処理ユニット(central processing unit、CPU)コア複合体110と、グラフィックスコア120と、ディスプレイエンジン122のセットと、メモリ管理ハブ124と、データファブリック125と、周辺コントローラ160のセットと、周辺バスコントローラ170のセットと、システム管理ユニット(system management unit、SMU)180と、を含む。
【0010】
CPUコア複合体110は、CPUコア112及びCPUコア114を含む。この例では、CPUコア複合体110は2つのCPUコアを含むが、他の実施形態では、CPUコア複合体110は任意の数のCPUコアを含むことができる。CPUコア112及び114の各々は、制御ファブリックを形成するシステム管理ネットワーク(system management network、SMN)、及び、データファブリック125に双方向に接続され、データファブリック125にメモリアクセス要求を提供することができる。CPUコア112及び114の各々は、単体のコアであってもよいし、更にキャッシュ等の特定のリソースを共有する2つ以上の単体のコアを有するコア複合体であってもよい。
【0011】
グラフィックスコア120は、頂点処理、フラグメント処理、シェーディング、テクスチャブレンディング等のグラフィックス処理を高度に統合された並列方式で実行することができる高性能グラフィックス処理ユニット(graphics processing unit、GPU)である。グラフィックスコア120は、SMN及びデータファブリック125に双方向に接続され、メモリアクセス要求をデータファブリック125に提供することができる。これに関して、APU100は、CPUコア複合体110とグラフィックスコア120とが同じメモリ空間を共有する統合メモリアーキテクチャ、又は、CPUコア複合体110とグラフィックスコア120とがメモリ空間の一部を共有する一方でグラフィックスコア120がCPUコア複合体110によりアクセスできないプライベートグラフィックスメモリも使用するメモリアーキテクチャの何れかをサポートすることができる。
【0012】
ディスプレイエンジン122は、モニタ上に表示するために、グラフィックスコア120によって生成されたオブジェクトをレンダリング及びラスタライズする。グラフィックスコア120及びディスプレイエンジン122は、メモリシステム130内の適切なアドレスへの均一な変換のためにメモリ管理ハブ124に双方向で接続され、メモリ管理ハブ140は、そのようなメモリアクセスを生成してメモリシステムから戻される読み取りデータを受信するためにデータファブリック125に双方向で接続される。
【0013】
データファブリック125は、任意のメモリアクセスエージェントとメモリ管理ハブ140との間でメモリアクセス要求及びメモリ応答をルーティングするためのクロスバースイッチを含む。また、データファブリックは、システム構成に基づいてメモリアクセスの送信先を判定するための、基本入出力システム(basic input/output system、BIOS)によって規定されるシステムメモリマップ、及び、各仮想接続のためのバッファも含む。
【0014】
周辺コントローラ160は、ユニバーサルシリアルバス(universal serial bus、USB)コントローラ162及びシリアルアドバンストテクノロジーアタッチメント(Serial Advanced Technology Attachment、SATA)インターフェースコントローラ164を含み、これらのそれぞれは、システムハブ166及びSMNバスに対して双方向で接続される。これらの2つのコントローラは、APU100で使用され得る周辺コントローラの単なる典型例である。
【0015】
周辺バスコントローラ170は、システムコントローラ又は「サウスブリッジ」(Southbridge、SB)172と、周辺構成要素相互接続エクスプレス(Peripheral Component Interconnect Express、PCIe)コントローラ174と、を含み、これらのそれぞれは、入出力(input/output、I/O)ハブ176及びSMNバスに対して双方向で接続される。また、I/Oハブ176は、システムハブ166及びデータファブリック125に対して双方向で接続される。したがって、例えば、CPUコアは、データファブリック125がI/Oハブ176を介してルーティングするアクセスにより、USBコントローラ162、SATAインターフェースコントローラ164、SB172又はPCIeコントローラ174内のレジスタをプログラムすることができる。APU100のためのソフトウェア及びファームウェアは、リードオンリーメモリ(read-only memory、ROM)、フラッシュ電気的消去可能プログラマブルROM(electrically erasable programmable ROM、EEPROM)等の様々な不揮発性メモリタイプの何れかであり得るシステムデータドライブ又はシステムBIOSメモリ(図示せず)に記憶される。概して、BIOSメモリは、PCIeバスを介してアクセスされ、システムデータドライブは、SATAインターフェースを介してアクセスされる。
【0016】
SMU180は、APU100上のリソースの動作を制御してそれらの間の通信を同期させるローカルコントローラである。SMU180は、APU100上の様々なプロセッサのパワーアップシーケンシングを管理し、リセット、イネーブル及び他の信号を介して複数のオフチップデバイスを制御する。SMU180は、APU100の構成要素のそれぞれにクロック信号を与えるために、位相ロックループ(phase locked loop、PLL)等の1つ以上のクロックソース(図示せず)を含む。また、SMU180は、様々なプロセッサ及び他の機能ブロックのための電力を管理し、適切な電力状態を判定するためにCPUコア112及び114並びにグラフィックスコア120から測定された電力消費値を受信することができる。
【0017】
メモリ管理ハブ140、並びに、その関連する物理インターフェース(physical interface、PHY)151及び152は、この実施形態では、APU100と統合される。メモリ管理ハブ140は、メモリチャネル141及び142と、パワーエンジン149と、を含む。メモリチャネル141は、ホストインターフェース145と、メモリチャネルコントローラ143と、物理インターフェース147と、を含む。ホストインターフェース145は、メモリチャネルコントローラ143を、シリアルプレゼンス検出リンク(serial presence detect、SDP)を介してデータファブリック125に対して双方向で接続する。物理インターフェース147は、メモリチャネルコントローラ143をPHY151に対して双方向で接続し、DDR PHYインターフェース(DDR PHY Interface、DFI)仕様に準拠する。メモリチャネル142は、ホストインターフェース146、メモリチャネルコントローラ144、及び、物理インターフェース148を含む。ホストインターフェース146は、別のSDPを介してメモリチャネルコントローラ144をデータファブリック125に対して双方向で接続する。物理インターフェース148は、メモリチャネルコントローラ144をPHY152に対して双方向で接続し、DFI仕様に準拠する。パワーエンジン149は、SMNバスを介してSMU180に対して、APBを介してPHY151及び152に対して双方向で接続されると共に、メモリチャネルコントローラ143及び144に対して双方向で接続される。PHY151は、メモリチャネル131への双方向接続を有する。PHY152は、メモリチャネル133への双方向接続を有する。
【0018】
メモリ管理ハブ140は、2つのメモリチャネルコントローラを有するメモリコントローラのインスタンス化であり、共有パワーエンジン149を使用して、以下で更に説明する態様でメモリチャネルコントローラ143及びメモリチャネルコントローラ144の両方の動作を制御する。メモリチャネル141及び142の各々は、DDRバージョン5(DDR version five、DDR5)、低電力DDR4(low power DDR4、LPDDR4)、グラフィックスDDRバージョン6(graphics DDR version six、gDDR6)、及び、高帯域幅メモリ(high bandwidth memory、HBM)等の最新技術DDRメモリに接続することができ、将来のメモリ技術に適合させることができる。これらのメモリは、高いバス帯域幅及び高速動作をもたらす。同時に、それらのメモリは、ラップトップコンピュータ等のバッテリ駆動用途のための電力を節約するための低電力モードを提供すると共に、内蔵熱監視も行う。
【0019】
メモリシステム130は、メモリチャネル131及びメモリチャネル133を含む。メモリチャネル131は、ダブルデータレート(double data rate、DDRx)バス132に接続されるデュアルインラインメモリモジュール(dual inline memory module、DIMM)のセットを含み、これには、本例では別のランクに対応する代表的なDIMM134、136、138が含まれる。同様に、メモリチャネル133は、代表的なDIMM135、137、139を含む、DDRxバス129に接続されるDIMMのセットを含む。
【0020】
APU100は、ホストデータ処理システムの中央処理ユニット(CPU)として動作し、最新のコンピュータシステムにおいて有用な様々なバス及びインターフェースを与える。これらのインターフェースは、2つのDDRxメモリチャネル、PCIeリンクへの接続のためのPCIeルート複合体、USBネットワークへの接続のためのUSBコントローラ、及び、SATA大容量記憶デバイスへのインターフェースを含む。
【0021】
また、APU100は、様々なシステム監視機能及び節電機能も実装する。特に、1つのシステム監視機能は、熱監視である。例えば、APU100が高温になる場合、SMU180は、CPUコア112及び114並びに/又はグラフィックスコア120の周波数及び電圧を低減することができる。APU100が高温になりすぎる場合、SMUを完全にシャットダウンすることができる。SMNバスを介してSMU180によって外部センサから熱イベントを受けることもでき、SMU180は、それに応じてクロック周波数及び/又は電力供給電圧を低減することができる。
【0022】
図2は、いくつかの実施形態による、データ処理システム200のブロック図である。データ処理システム200は、概して、メモリアクセスエージェント210のセットと、データファブリック220と、メモリアクセスレスポンダ230のセットと、外部メモリリソース240のセットと、を含む。
【0023】
図2の実施形態では、メモリアクセスエージェント210は、CPUコア複合体211と、CPUコア複合体212と、グラフィックス処理ユニット(GPU)213と、を含む。CPUコア複合体211及び212の各々は複数のCPUコアを含み、各々が自身の専用上位レベルキャッシュを有し、ラストレベルキャッシュ(last level cache、LLC)は、CPUコア複合体内の全CPUコアによって共有される。GPU213は、シェーディング、レンダリング、ラスタ化等の機能を実行する高性能グラフィックス処理ユニットである。GPU213の典型的な実施形態は、超並列単一命令複数データ(single-instruction, multiple-data、SIMD)プロセッサを使用して実行されるOpenGLコマンド等高レベルのグラフィックスプリミティブコマンドに応答するデータプロセッサである。計算強度のために、GPU213は、多数のメモリ参照を行い、自身の内部キャッシュ階層を含む。
【0024】
データファブリック220は、ファブリックトランスポート層223によって相互接続されている、各々「CM」とラベル付けされたコヒーレントマスタポート221のセット及び各々「CS」とラベル付けされたコヒーレントスレーブポート222のセットと、コントローラ224と、を含む。本明細書で使用される場合、コヒーレントポートは、メモリアクセス要求が読み取りアクセスであるか書き込みアクセスであるかにかかわらず、メモリアクセス要求を開始することができるメモリアクセスエージェントに接続され得るので、マスタポートであると見なされる。同様に、コヒーレントスレーブポートは、メモリアクセス要求が読み取りアクセスであるか書き込みアクセスであるかにかかわらず、メモリアクセス要求に応答することができるメモリアクセスレスポンダに接続するので、スレーブポートであると見なされる。
【0025】
データファブリック220は、メモリアクセスエージェント210ごとにコヒーレントマスタポートを有するように構成される。各コヒーレントマスタポート221は、双方向アップストリームポート、双方向ダウンストリームポート、制御入力、及び、コヒーレントマスタから受信したアクセス及びファブリックトランスポート層223を介してコヒーレントスレーブから受信した応答の両方のための自身の内部バッファリングを有する。また、各コヒーレントマスタポート221は、そのアップストリームポートに接続された制御インターフェースを有し、対応するメモリアクセスエージェントにバックプレッシャシグナリングを提供して、その限られたバッファ空間のオーバーランを回避する。データファブリック220は、同様に、メモリアクセスレスポンダ230ごとにコヒーレントスレーブポートを有するように構成される。各コヒーレントスレーブポート222は、メモリアクセス要求が、方向に応じて、ファブリックトランスポート層223を介して処理される前後に記憶されることを可能にするバッファリングを有する。コントローラ224は、「DROOP」とラベル付けされた信号を受信するための入力と、各コヒーレントマスタポート221及び各コヒーレントスレーブポート222の制御入力に接続され、「THROTTLE」とラベル付けされた信号をそこに提供するための出力と、を有する。
【0026】
また、データファブリック220は、高速ドループ検出器(fast droop detector、FDD)が関連付けられた電源モニタ225を有する。電源モニタ225は、「VDDINT」とラベル付けされた、データファブリック220及びメモリアクセスエージェント210に関連付けられた電源電圧を受信するための入力と、コントローラ224の入力にDROOP信号を提供するための出力と、を有する。電源モニタ225は、データファブリック220と一体的に設計され得るか又は別の要素であり、他の電源モニタ回路と一体的に設計され得るが、何れの場合も、データファブリック220及びメモリアクセスエージェント210と関連付けられ、それらを動作させる電源電圧、すなわち、VDDINTを監視する。
【0027】
メモリアクセスレスポンダ230は、「UMC」とラベル付けされた統合メモリコントローラ231と、統合メモリコントローラ232と、「CCIX CONT」とラベル付けされたCCIX(cache coherent interconnect for accelerator)コントローラ233と、を含む。統合メモリコントローラ231及び232の各々は、対応するコヒーレントスレーブポート222を介してデータファブリック220に接続されたアップストリームポートと、対応するメモリデバイスに接続されたダウンストリームポートと、制御入力と、を有する。CCIXコントローラ223は、対応するコヒーレントスレーブポート222に接続されたアップストリームポートと、対応するメモリデバイスに接続されたダウンストリームポートと、を有する。
【0028】
また、統合メモリコントローラ231及び232は、それらに関連付けられた高速ドループ検出器を有する電源モニタ234を有する。電源モニタ234は、「VDDUMC」とラベル付けされた、統合メモリコントローラ231及び232に関連付けられた電源電圧を受信するための入力と、統合メモリコントローラ231及び232の制御入力に異なるDROOP信号を提供するための出力と、を有する。電源モニタ234は、統合メモリコントローラ231及び232と一体的に設計され得るか又は別の要素であり、他の電源モニタ回路と一体的に設計され得るが、何れの場合も、統合メモリコントローラ231及び232と関連付けられ、それらを動作させる電源電圧、すなわちVDDUMCを監視する。
【0029】
外部メモリリソース240は、「HBM」とラベル付けされた高帯域幅メモリ241と、「HBM」とラベル付けされた高帯域幅メモリ242と、「SCM」とラベル付けされたストレージクラスメモリ243と、を含む。高帯域幅メモリ241及び242は、統合メモリコントローラ231及び232のダウンストリームポートにそれぞれ双方向に接続される。ストレージクラスメモリ243は、CCIXコントローラ233のダウンストリームポートに双方向に接続される。
【0030】
データ処理システム200は、パーソナルコンピュータ、ワークステーション、ファイルサーバ等に関連する機能の多くを実行する、高度に統合された高性能デジタルデータプロセッサである。これは、システム内の全メモリが各メモリアクセスエージェント210に潜在的に可視である統合メモリ空間を実装する。データファブリック220は、メモリアクセスエージェントによって開始されたアクセスをメモリアクセスレスポンダに提供し、メモリアクセスレスポンダからの応答を開始したメモリアクセスエージェントに返す媒体である。データファブリック220は、システムアドレスマップに基づいて、中央ファブリックトランスポート層223を使用して、対応するマスタポートとスレーブポートとの間のアクセス及び応答を多重化する。メモリアクセスエージェント210の動作は、従来のものであり、当技術分野で周知であり、これ以上は説明しない。同様に、メモリアクセスレスポンダ230の動作は周知であり、典型的には、Joint Electron Devices Engineering Council(JEDEC)によって公開されたダブルデータレート(DDR)シンクロナスダイナミックランダムアクセスメモリ(synchronous dynamic random-access memory、SDRAM)規格及びHBM規格のうち1つ以上等の公開規格によって指定されており、これ以上は説明しない。
【0031】
本明細書に記載の様々な実施形態によると、データファブリック220は、それ自身及びメモリアクセスエージェント210に関連付けられ、少なくとも閾値量のVDDINT電源の電源ドループに応じてDROOP信号を提供する電源モニタ225を含む。電源モニタ225は、過渡電源ドループを捕捉し、ドループが閾値量を超えると、DROOP信号を提供する。コントローラ224は、次いで、THROTTLE信号をコヒーレントマスタポート221及びコヒーレントスレーブポート222に提供して、場合によっては、関連付けられたメモリアクセスエージェント又はメモリアクセスレスポンダに対して受け入れられるアクセスの速度を低下させる。したがって、現在の動作速度で誤動作を生じさせ得るDROOP信号に応じて、コントローラ224は、データファブリック220に、そこを通って移動するデータトラフィックの量をスロットルさせる(すなわち、強制的に低減させる)。いくつかの実施形態では、ドループスロットリングは、メモリアクセスエージェント及びコヒーレントマスタポートの既存のスロットリング機構と協働してデータフローを低減させ、メモリアクセスエージェントにおいてストールを引き起こし、それらの作業負荷を低減させ、電源ドループを迅速に緩和する。
【0032】
同様に、統合メモリコントローラ231及び232は、少なくとも閾値量のVDDUMC電源の電源ドループに応じて、そのDROOP信号を提供する、それらに関連付けられた電源モニタ234を含む。電源モニタ234は、過渡電源ドループを捕捉し、ドループが閾値量を超えると、DROOP信号を提供する。DROOP信号は、データファブリック220を介して関連するメモリアクセスエージェントから受け入れられるアクセスの速度を低下させる。したがって、現在の動作速度で誤動作を生じさせ得るDROOP信号に応じて、統合メモリコントローラ231及び232は、高帯域幅メモリ241及び高帯域幅メモリ242に送信されるメモリアクセス要求の数をスロットルする。この例では、ドループスロットリングは、統合メモリコントローラ231及び232、データファブリック220、並びに、メモリアクセスエージェント210の既存のバックプレッシャ機構と協働して、データフローを低減させる。データフローの低減は、最終的に、メモリアクセスエージェントにおいてストールを引き起こし、それらの作業負荷を低減させ、それによって、電源ドループを緩和する。
【0033】
これらの2つの機構の何れか又は両方を使用して、データ処理システム200は、対応するクロック周波数に必要とされるレベルよりも危険なほどに電源を低下させる、突発的な高処理アクティビティ期間中の機能障害のリスクを防止するか又は低減する。更に、電源ドループを引き起こさない、より低いレベルに作業負荷が達するとすぐに、スロットルを除去することを可能にする。この点において、電源モニタ225及び234内の高速ドループ検出器はヒステリシスを実装しており、DROOP信号をアサートする前に電源電圧が下回らなければならない閾値は、DROOP信号をデアサートするために電源電圧が上回らなければならない閾値よりも低い。
【0034】
以下でより詳細に説明するいくつかの実施形態では、電源モニタ225及び234の高速ドループ検出器は、現在のスロットリングの量に従ってスロットリングの量が段階的に変化する、より広範な制御機構を実装する。このタイプのスロットリングの場合、THROTTLE信号は、各コヒーレントマスタポート及びコヒーレントスレーブポートのアクティビティをスロットルするコマンドだけでなく、スロットル量も含む。このようにして、より長期の過剰な作業負荷は、現在のP状態を脱することなく作業負荷が低減されるまで、持続可能なレベルに減速される。
【0035】
図3は、いくつかの実施形態による、
図2のコントローラ224で使用するのに好適なコントローラ300の一部のブロック図である。コントローラ300は、概して、第1の状態機械310と、第1のスロットルレジスタセット320と、第2の状態機械330と、第2のスロットルレジスタセット340と、スロットル論理回路360と、を含む。
【0036】
第1の状態機械310は、「THROTTLE SOURCE1」とラベル付けされた第1のスロットル入力を受信するための第1の入力と、第2の入力と、出力と、を有する。コントローラ300において、状態機械310は、電源モニタ225からのスロットルソースとしてのDROOP信号に応答する。状態機械310の第2の入力は、電源ドループ状態に関連するスロットル動作のパラメータを指定するスロットルレジスタセット320の出力を受信する。いくつかの実施形態では、パラメータは、初期ステップサイズ、エントリタイマ値、及び、エグジットタイマ値を含む。電源ドループ状態に応じて状態機械310がこれらのパラメータを使用する方法については、以下で更に説明する。状態機械310は、スロットル動作を指定する制御信号を提供するための出力を有する。
【0037】
第2のスロットル状態機械330は、「THROTTLE SOURCEn」とラベル付けされた第1のスロットル入力を受信するための第1の入力と、第2の入力と、出力と、を有する。コントローラ300において、状態機械310は、「T」とラベル付けされた温度信号形式の温度センサの出力等のような、スロットルソースとしての別のDROOP信号に応答する。状態機械330の第2の入力は、電源ドループ状態に関連するスロットル動作のパラメータを指定する、1つ以上のスロットルレジスタ340の出力を受信する。いくつかの実施形態では、これらのパラメータは、初期ステップサイズ、エントリタイマ、及び、エグジットタイマを含み得るが、他の実施形態では、温度スロットリングに特有の異なるパラメータを含んでもよく、これらのパラメータは、ドループスロットリングに使用されるものと異なり得る。状態機械330は、スロットル動作を指定する制御信号を提供するための出力を有する。
【0038】
スロットル論理360は、状態機械310及び330等各々の状態機械の出力に接続された入力と、THROTTLE信号を適切な機能回路に提供するための出力と、を有する。
【0039】
コントローラ300は、本明細書に記載のドループベースの性能スロットル機構が、
図3に示される温度ベースのスロットル等の1つ以上のスロットル機構と統合され、その存在を活用することができる方法の一例である。スロットル論理回路360は、様々な方法で実装され、様々なスロットルポリシーを実施することができる。いくつかの実施形態によると、コントローラ300は、電源ドループに応答する状態機械310及び過大温度に応答する状態機械330等のスロットリング状態機械によって示される最も深いスロットリング量を選択することができる。
【0040】
図4は、電源ドループに応答する場合の
図3のコントローラ300の動作の一例を示すタイミング
図400である。タイミング
図400において、水平軸は時間をナノ秒(ns)で表し、垂直軸はDROOP信号をボルトで表し、スロットル量をパーセントで表す。具体的には、タイミング
図400は、DROOP信号をボルトで表す波形410、及び、スロットル量を利用可能な帯域幅のパーセンテージとして示す波形420を示す。
【0041】
波形410で示されるように、DROOP信号は、比較的低い電圧において非アクティブ状態を有し、比較的高い電圧においてアクティブ状態を有し、経時的なDROOP信号の状態を表す。したがって、DROOP信号が論理低電圧にある場合、DROOP信号は、電源電圧が高閾値を超えて上昇したことを表し、DROOP信号が論理高電圧にある場合、DROOP信号は、電源電圧が低閾値を下回ったことを表す。
【0042】
また、タイミング
図400は、「t
0」~「t
12」と連続してラベル付けされた様々な関心時点を示す。時間t
0の前に、状態機械310は、論理低(デアサート)状態でDROOP信号を受信し、関連回路の動作をスロットルしない(「ステップ0」として既知の状態)。時間t
0において、高速ドループ検出器は、関連付けられた電源電圧が低閾値を下回ったことを検出し、DROOP信号をアサートする。DROOP信号がアサートされると、コントローラ300は、初期ステップ量による割合だけデータファブリック220の性能を低下させるスロットル動作を実施する。状態機械310内のタイマは、DROOP信号がアクティブである時間量を決定するためにカウントし、時間t
1でタイムアウトすると、状態機械310は、スロットル量が「ステップ2」に増加するように、追加の初期ステップ量だけスロットル量を増加させる。タイマが時間t
2において再びタイムアウトすると、状態機械310は、スロットル量が「ステップ3」に増加するように、追加の初期ステップ量だけスロットル量を更に増加させる。
【0043】
時間t1の後、スロットリングは、VDDINTが一時的に高閾値を超えて上昇し、タイマをリセットさせるように、VDDINTドメイン上のデバイスのアクティビティを低減させるのに十分である。DROOP信号はエグジットタイマ量の満了前の時間t4において再びアサートされるので、スロットルは、タイマがt4の直後にエントリタイマ値に達するまでステップ3に留まり、その時点で、スロットル量は別の初期ステップ量だけ増加して、スロットル量は「ステップ4」に達する。
【0044】
しかしながら、t5において、性能スロットリング機構は、DROOPがより持続した期間にわたって除去されるように、十分にドループを緩和し始めている。時間t6において、エグジットタイマはタイムアウトし、スロットル量をステップ3まで減少させる。その後間もなく、エグジットタイマが再びタイムアウトして、スロットル量をステップ2まで更に減少させる。しかしながら、スロットリングにおけるこの低減は、高速ドループ検出器にDROOP信号を再びアサートさせ、その結果、時間「t7」において、状態機械310は、スロットルパーセンテージをステップ3に再び増加させる。エントリタイマ(ENTY TIMER)が再びタイムアウトした後、状態機械310は再びスロットルパーセンテージを増加させてステップ4に戻す。特定のソフトウェアプログラムによって開始された作業負荷が比較的高く、一定のままである場合、スロットル量のこれらの周期的な変化が、2つ以上の隣接するステップ量の間で変化する定常状態に達することがある。
【0045】
時間t8の後、プロセッサの作業負荷は減少し、THROTTLE信号はその後デアサートされる。最終的に時間t12においてステップ0に戻り、その後ステップ0に留まるまで、時間t9、t10、t11、t12において、状態機械310が、ステップ3、ステップ2及びステップ1を通してスロットル量を連続的に減少させるように、エグジットタイマ値が繰り返し経過する。
【0046】
本明細書に記載の様々な実施形態において電源電圧ドループによってトリガされる性能スロットリングを含めることによって、データ処理システムは、性能を迅速に低下させるが、これは、ドループを緩和するのに必要な量だけである。したがって、
図4に示すように、応答性は、比較的遅いP状態機構とは対照的に、ナノ秒の時間スケールである。P状態電圧-周波数対の電圧成分にはより小さいマージンの組み込みが必要であるため、プロセッサは、非ドループ状態中の電力消費を減少させる。
【0047】
状態機械310によって使用されるスロットリングパラメータ及びドループ閾値は、スロットリングの影響を受ける回路ブロックの特性に従って設定され、電源ドループによるプログラム障害を回避するのに十分な応答性を有する必要がある。ある態様では、スロットリングは、メモリコントローラにおいて、メモリアクセスエージェントから外部メモリへのメモリアクセス要求のフローをスロットリングすることと、メモリコントローラによってアクセスされるメモリのタイプに応じて、データ処理システムが、プログラム可能なドループ閾値を設定することと、をさらに含む。別の態様では、メモリコントローラは、ドループ信号がアクティブになるのに応じて、第1のスロットル量をプログラム可能なステップサイズに設定し、プログラム可能なアサート時間の間、ドループ信号がアクティブのままである場合に、第1のスロットル量を増加させ、プログラム可能なデアサート時間の間、ドループ信号が非アクティブである場合に、第1のスロットル量を減少させ、データ処理システムは、外部メモリのタイプに従ってドループ閾値を設定する。これらの考慮事項の例を、メモリコントローラスロットリング機構に関してここで説明する。
【0048】
図5は、様々なスロットル量についての、総データプロセッサ電流消費に対する
図3のデータファブリックスロットリングシステムの反応時間を示すタイミング
図500である。タイミング
図500において、水平軸は時間をnsで表し、垂直軸はデータ処理システム電流をアンペア(A)で表す。タイミング
図500は、「t
0」、「t
1」、「t
2」とラベル付けされた、3つの関心時点を示す。タイミング
図500は、メモリコントローラが電流を消費しないt
0から、メモリコントローラが「I
MAX」とラベル付けされた電流で飽和し、DROOPがその最大値に達するt
2までの均一な電流ランプを示す。データファブリック220及びV
DDINTドメイン上の接続された、その全構成要素の初期反応時間、すなわち、システムがスロットル及びより低いアクティビティ及び電力消費に対する反応を開始する前の時間量は、t
1とt
2との間であり、DROOPは、t
2における飽和点の前の当該時間量で検出される必要がある。したがって、電源モニタ225は、ドループを検出し、時間t
1に対応する閾値でDROOP信号をアサートする必要がある。
図5に示すように、電流がその飽和値に達するのとほぼ同じ時点で、スロットル機構は、電源電圧ドループ及び電流を低減し始める。しかしながら、既存のバックプレッシャ機構は、データファブリック220を介してメモリアクセスエージェントまでずっと戻って伝搬しなければならないので、ステップサイズによるデータプロセッサ内の電流の低減には、より長い時間がかかる。25%のスロットル量において、スロットルは、25%の電流減少において収束するまでの低減を開始する。同様に、50%、75%及び100%のスロットル量では、全電流が、ほぼ同じ時間量の後に収束する。したがって、メモリコントローラトラフィックをスロットリングすることによって、チップの総作業負荷も、既存のバックプレッシャ機構を介して低減される。
【0049】
飽和電流、反応時間、パイプライン深さ等の具体的な値は、実施形態ごとに異なる。しかしながら、本明細書に示され、記載される特定のデータ処理システムについて
図5に関して記載された分析技術は、データ処理システム構成要素のこれらの異なる実施形態に相応に適用することができる。
【0050】
本明細書に記載のスロットル機構又はその任意の部分を含む集積回路は、プログラムによって読み取られて使用され得るデータベース又はその他のデータ構造の形態で、コンピュータアクセス可能なデータ構造によって記述又は表され、直接的に又は間接的に集積回路を製造し得る。例えば、本データ構造は、Verilog又はVHDL等の高位設計言語(HDL)におけるハードウェア機能の挙動レベル記述又はレジスタ転送レベル(RTL)記述であってもよい。記述は、合成ライブラリからゲートのリストを含むネットリストを生成するために記述を合成することができる合成ツールによって読み取ることができる。ネットリストは、集積回路を含むハードウェアの機能を表すゲートのセットを含む。ネットリストは、次に、マスクに適用される幾何学的形状を記述するデータセットを生成するために配置され、ルーティングされてもよい。次に、マスクを、様々な半導体製造工程で使用して、集積回路を製造してもよい。代替的に、コンピュータアクセス可能記憶媒体上のデータベースは、所望の場合、ネットリスト(合成ライブラリの有無にかかわらず)若しくはデータセット、又は、グラフィック・データ・システム(Graphic Data System、GDS)IIデータであってもよい。
【0051】
特定の実施形態を説明してきたが、これらの実施形態に対する様々な修正が当業者には明らかであろう。例えば、本願は、データファブリック及びメモリコントローラにおける機能的スロットリングについて説明しているが、他の実施形態では、スロットリングは、メモリアクセスエージェント自体、それらのキャッシュ等に直接等のように、データプロセッサのアーキテクチャ内の他の場所で適用され得る。各スロットリングステップで出入りする時間量及びスロットリングステップサイズは、固定され得るか又はプログラムされ得る。高速ドループ検出器を有する各電源モニタは、回路がスロットリングされるように設計され得るか又は別であり得る。
【0052】
したがって、添付の特許請求の範囲は、開示された実施形態の範囲に含まれる開示された実施形態の全ての変更を網羅することを意図している。