(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-22
(45)【発行日】2022-12-01
(54)【発明の名称】マルチクライアントシステムにおけるリアルタイムストリームの動的アービトレーションの方法
(51)【国際特許分類】
G06F 1/3215 20190101AFI20221124BHJP
G06F 15/78 20060101ALI20221124BHJP
【FI】
G06F1/3215
G06F15/78 517
G06F15/78 516
(21)【出願番号】P 2019555970
(86)(22)【出願日】2018-07-20
(86)【国際出願番号】 US2018043131
(87)【国際公開番号】W WO2019023068
(87)【国際公開日】2019-01-31
【審査請求日】2021-05-06
(32)【優先日】2017-07-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ソヌ アローラ
(72)【発明者】
【氏名】アレクサンダー ブラノーバー
(72)【発明者】
【氏名】ベンジャミン チェン
【審査官】白石 圭吾
(56)【参考文献】
【文献】国際公開第2016/069284(WO,A1)
【文献】国際公開第2016/167915(WO,A1)
【文献】特開2011-198286(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/26-1/3296
G06F 15/78
G06F 9/455-9/54
(57)【特許請求の範囲】
【請求項1】
電力イベント要求信号に応じて電力イベント深度信号を提供する電力マネージャ(116/212)であって、前記電力イベント深度信号は、電力イベントの継続時間に対応する、電力マネージャ(116/212)と、
前記電力マネージャに接続された複数のリアルタイムクライアント(126/130/132/210/230)であって、各リアルタイムクライアントは、データを記憶するための複数のエントリを有するクライアントバッファ(406)と、前記電力イベント深度信号に応じてウォーターマーク閾値を提供するクライアントコントローラ(402)であって、各リアルタイムクライアントは、前記クライアントバッファ内のエントリの数を前記ウォーターマーク閾値と比較する、クライアントコントローラと、前記クライアントコントローラが前記クライアントバッファ内のエントリの数を前記ウォーターマーク閾値と比較したことに応じて、許可信号を提供するロジック(410)と、を含む、複数のリアルタイムクライアント(126/130/132/210/230)と、
前記複数のリアルタイムクライアントの各々に接続された電力管理状態マシン(155/214/500)であって、前記複数のリアルタイムクライアントの全てが許可信号を提供したことに応じて、電力イベント開始信号を提供する電力管理状態マシン(155/214/500)と、を備える、
データ処理システム(100)。
【請求項2】
前記クライアントバッファに関するウォーターマーク閾値(330/356)を記憶するレジスタ(416)をさらに備え、前記レジスタは、前記電力イベント深度信号に応じて、前記複数のリアルタイムクライアントの各々の帯域幅容量を動的に構成する、
請求項1のデータ処理システム(100)。
【請求項3】
クライアントコントローラ(402)は、前記電力イベント深度信号に応じて、前記複数のリアルタイムクライアントの全てについて前記ウォーターマーク閾値を選択する、
請求項1のデータ処理システム(100)。
【請求項4】
電力管理状態マシン(155/214/500)と、
前記電力管理状態マシンに接続された結合された電力マネージャ(116/212)であって、電力イベント要求を受信する電力マネージャ(116/212)と、
前記電力管理状態マシン及び前記電力マネージャに接続された複数のリアルタイムクライアント(126/130/132/210/230)であって、電力イベントの深度を受信する複数のリアルタイムクライアント(126/130/132/210/230)と、を備え、
前記複数のリアルタイムクライアント(126/130/132/210/230)は、
前記電力イベントの深度に応じて、ウォーターマークレジスタ(416)の帯域幅を動的に構成することと、
前記ウォーターマークレジスタに関連するクライアントバッファ(406)内のエントリの数を前記ウォーターマークレジスタの値と比較することと、
前記電力イベント要求が許可可能な要求であるかどうかを判別することと、
前記電力イベント要求が許可可能な要求であると判別したことに応じて、許可信号をアサートして、前記電力イベントの開始を有効にすることと、
を行うように構成されている、
データ処理システム(100)。
【請求項5】
前記電力マネージャは、前記複数のリアルタイムクライアントの各々のマスク値(510/520/530)を前記電力管理状態マシンに提供する、
請求項4のデータ処理システム(100)。
【請求項6】
前記電力管理状態マシンは、前記複数のリアルタイムクライアントの各々から前記許可信号及び前記マスク値を受信したことに応じて、前記電力イベントの開始を有効にする、
請求項5のデータ処理システム(100)。
【請求項7】
前記電力管理状態マシンは、各リアルタイムクライアントからバッファ状態(320/350/406)を受信する、
請求項4のデータ処理システム(100)。
【請求項8】
各リアルタイムクライアントは、個別のウォーターマークレジスタに関連付けられている、
請求項4のデータ処理システム(100)。
【請求項9】
各リアルタイムクライアントは、少なくとも1つの共有リソース(160/170/180)に接続されている、
請求項4のデータ処理システム(100)。
【請求項10】
電力マネージャが、共有リソース(160/170/180)のリアルタイム電力イベント中にクライアントを動的に管理する方法(600)であって、
前記電力マネージャが、電力イベント要求を受信すること(602)と、
前記電力マネージャが、前記電力イベント要求に関連するクライアント毎にウォーターマーク閾値を決定すること(604)と、
クライアント毎に、クライアントバッファ内のエントリの数を各々のウォーターマーク閾値と比較すること(606)と、
電力管理状態マシンが、クライアント毎に比較したことに応じて、許可信号及び非許可信号のうち少なくとも1つを検出することと、
前記電力管理状態マシンが、前記電力イベント要求に関連する各クライアントからの許可信号を検出したことに応じて、電力イベントの開始を有効にすること(612)と、
前記電力管理状態マシンが、前記電力イベント要求に関連する少なくとも1つのクライアントからの少なくとも1つの不許可信号を検出したことに応じて(612)、前記電力イベントの開始を無効にすること(616)と、を含む、
方法(600)。
【請求項11】
各クライアントが、前記電力イベント要求の電力イベントの深度に応じて、前記ウォーターマーク閾値を動的に決定することであって、前記電力イベントの深度は、低電力状態から高電力状態への前記共有リソースの終了レイテンシに関連付けられている、ことと、
各クライアントが、クライアントバッファ(406)に関連する後続の電力イベント要求の前記ウォーターマーク閾値を更新することと、をさらに含む、
請求項10の方法(600)。
【請求項12】
前記電力マネージャ(116/212)は、許可、不許可及びマスクが、いつ電力イベント毎にクライアントに関連付けられるかを決定し、前記マスクは、指定されたクライアントが、対応する電力イベントの共有リソースに関連付けられていない場合に返される、
請求項10の方法(600)。
【請求項13】
クライアントのクライアントコントローラが、読み出しクライアントバッファ(320)のウォーターマーク閾値(330)を動的に決定することであって、前記読み出しクライアントバッファの前記ウォーターマーク閾値は、電力イベント深度に対応するアンダーフローまでの時間である、ことと、
前記クライアントが、前記読み出しクライアントバッファが前記ウォーターマーク閾値を下回ってドレインしたことに応じて、非アクティブ状態の許可信号をアサートすることと、をさらに含む、
請求項10の方法(600)。
【請求項14】
クライアントのクライアントコントローラが、書き込みクライアントバッファ(350)のウォーターマーク閾値(356)を動的に決定することであって、前記書き込みクライアントバッファの前記ウォーターマーク閾値は、電力イベント深度に対応するオーバーフローまでの時間である、ことと、
前記書き込みクライアントバッファが前記ウォーターマーク閾値を下回ってフィルされたのを検出したことに応じて、非アクティブ状態の許可信号をアサートすることと、をさらに含む、
請求項10の方法(600)。
【請求項15】
前記電力管理状態マシンが、マスクされていないクライアントに関連する複数のウォーターマークレジスタの各々から許可信号を受信したことに応じて、前記電力イベントを有効にすることをさらに含む、
請求項10の方法(600)。
【発明の詳細な説明】
【背景技術】
【0001】
コンピュータシステムは、周辺コンポーネントを利用して、コンピューティングエクスペリエンスの間の機能を向上させる。システムオンチップ(SoC)は、いくつかの周辺デバイスの制御を提供する。例えば、いくつかの例を挙げると、ディスプレイ、カメラ、及び、複数のメディアエンジン等は、周辺コンポーネントとしてSoCに接続し、コンピュータシステムへの情報の入力及びコンピュータシステムからの情報の出力を可能にするリアルタイムクライアントである。リアルタイムクライアントは、殆どのコンピュータシステムの重要なコンポーネントであり、ユーザの日常的なコンピューティングエクスペリエンスに価値を付加する。しかしながら、多くのリアルタイムクライアントは、過度なレイテンシの影響を受け易いので、帯域幅及びレイテンシの要求が満たされない場合に、可視的な効果をユーザにもたらす。
【0002】
省電力を目的として、SoC相互接続は、複数の性能及び低電力状態を実行し、外部メモリコンポーネントを低電力状態に置くことができる。また、いくつかのSoCは、メモリの定期的な再トレーニングを可能にする。これらの電力管理及びメモリ再トレーニングイベントによって、時間遅延が増大し、メモリインタフェースが数10マイクロ秒間利用できなくなる。いくつかのリアルタイムクライアントでは、ピークレイテンシ期間中に、これらの中断によって、エンドユーザには明らかなフレームドロップが発生することがある。
【0003】
SoCは、接続されたリアルタイムクライアントの数を増やし続けている。リアルタイムクライアントは、電力管理及び再トレーニングイベントの間に共有リソースの帯域幅について競合する。電力管理及びメモリ再トレーニングイベントの間のシステムの帯域幅及びレイテンシを上手く管理できないこと及び/又は制限することによって、コンピューティングシステムのサービス品質を損なう。
【図面の簡単な説明】
【0004】
【
図1】いくつかの実施形態による、データ処理システムでの使用に適したアクセラレーテッド処理ユニット(APU)のブロック図である。
【
図2】いくつかの実施形態による、電力イベント要求を分配する電力管理システムのブロック図である。
【
図3】いくつかの実施形態による、リアルタイムクライアントバッファに関連するウォーターマーク(watermark)閾値のブロック図である。
【
図4】いくつかの実施形態による、
図1のAPUでの使用に適したリアルタイムクライアント及び関連するラッチシステムのブロック図である。
【
図5】いくつかの実施形態による、
図1のAPUでの使用に適した電力管理状態マシンの一部ブロック図及び一部回路図である。
【
図6】いくつかの実施形態による、
図5の電力管理状態マシンによって使用され得るフローチャートである。
【発明を実施するための形態】
【0005】
以下の説明において、異なる図面における同じ符号の使用は、類似又は同一のアイテムを示している。特に断りのない限り、「接続される(coupled)」という用語及びこれに関連する動詞の形態は、当該技術分野で知られている手段による直接接続及び間接的電気接続の両方を含み、特に断りのない限り、直接接続の説明は、間接的電気接続の適切な形態を使用する代替の実施形態も同様に意味する。
【0006】
以下に一形態で説明するように、データ処理システムは、電力イベント要求信号に応じて電力イベント深度信号(power event depth signal)を提供する電力マネージャを含む。複数のリアルタイムクライアントは、電力マネージャに接続されている。各リアルタイムクライアントは、データを記憶するための複数のエントリを有するクライアントバッファを含む。また、リアルタイムクライアントは、クライアントバッファのウォーターマーク閾値を記憶するレジスタと、クライアントバッファ内の有効なエントリの数がウォーターマーク閾値を超える場合に許可信号を提供するロジックと、を含む。電力管理状態マシンは、複数のリアルタイムクライアントの各々に接続されている。電力管理状態マシンは、複数のリアルタイムクライアントの全てが許可信号を提供したことに応じて、電力イベント開始信号を提供する。
【0007】
別の形態では、データ処理システムは、電力管理状態マシンと、電力イベント要求信号を受信するために電力管理状態マシンに接続された電力マネージャと、電力イベントの深度(depth)を受信するために電力管理状態マシン及び電力マネージャに接続された複数のリアルタイムクライアントと、を含む。複数のリアルタイムクライアントは、電力イベントの深度に応じて、ウォーターマークレジスタの帯域幅を動的に構成するように構成されている。複数のリアルタイムクライアントは、ウォーターマークレジスタに関連するクライアントバッファ内のエントリの数をウォーターマークレジスタの値と比較し、電力イベント要求が許容可能な要求であるかどうかを判別する。電力イベント要求が許容可能な要求であると判別したことに応じて、複数のリアルタイムクライアントは、電力イベントの開始を有効にする許可信号をアサートする。
【0008】
更に別の形態では、共有リソースに対するリアルタイム電力イベント中にクライアントを動的に管理する方法を説明する。電力イベント要求を受信し、電力イベント要求を受信したことに応じて、電力イベント要求に関連するクライアント毎にウォーターマーク閾値を決定する。クライアント毎に、クライアントバッファ内のエントリの数を、各々のウォーターマーク閾値と比較する。許可信号及び不許可信号のうち少なくとも1つを検出する。電力イベント要求に関連する各クライアントからの許可信号を検出したことに応じて、電力イベントの開始を有効にする。電力イベント要求に関連する少なくとも1つのクライアントから少なくとも1つの不許可信号を検出したことに応じて、電力イベントの開始を無効にする。
【0009】
図1は、アクセラレーテッド処理ユニット(APU)100のブロック図である。APU100は、データ処理システムでの使用に適している。APU100は、概して、中央処理装置(CPU)コア複合体120と、ウォーターマークレジスタ126のセットと、リアルタイムクライアント130と、メモリ管理ハブ134(又は、いくつかの実施形態ではマルチメディアハブ)と、相互接続150と、クライアントコントローラ136と、クライアントバスコントローラ138と、入出力ハブ140と、システム管理ユニット(SMU)108と、システム管理ネットワークバス110と、メモリコントローラ152,156のセットと、いくつかの共有リソース160,170,180と、を含み、いくつかの共有リソース160,170,180は、通常、共有メモリチャネル又は入出力インタフェース/リンクに関連付けられている。
【0010】
CPUコア複合体120は、CPUコア122及びCPUコア124を含む。この例では、CPUコア複合体120は、2つのCPUコアを含むが、他の実施形態では、CPUコア複合体120は、任意の数のCPUコアを含むことができる。CPUコア122,124の各々は、制御ファブリックを形成するシステム管理ネットワーク(SMN)及び相互接続150に双方向に接続されており、メモリアクセス要求を相互接続150に提供することができる。CPUコア122,124の各々は、単一コアであってもよいし、キャッシュ等の特定のリソースを共有する複数の単一コアを有するコア複合体であってもよい。
【0011】
リアルタイムクライアント130のセットは、バッファ132を有するリアルタイムクライアントを含む。バッファ132を有するリアルタイムクライアントは、読み出しクライアントバッファ及び/又は書き込みクライアントバッファを含む。読み出しクライアントバッファは、例えば、マルチメディアコントローラ及びディスプレイエンジンに有用である。読み出しクライアントバッファは、メモリからの読み出しを記憶する。書き込みクライアントバッファは、ディスプレイ無線エンジン、マルチメディアエンジン、カメラコントローラ、グラフィックス処理ユニット等のRTクライアントに有用である。書き込みクライアントバッファは、通常、メモリに記憶されるデータを送信する。バッファ132を有するリアルタイムクライアントは、メモリシステム内の適切なアドレスに均一に変換するために、共通メモリ管理ハブ134に双方向に接続されており、メモリ管理ハブ134は、メモリアクセスを生成し、メモリシステムから返された読み出しデータを受信するために、相互接続150に双方向に接続されている。また、バッファ132を有するリアルタイムクライアントは、SMN110及び相互接続150に双方向に接続されている。さらに、バッファ132を有するリアルタイムクライアントのバッファは、メモリアクセス要求に関するデータを、メモリ管理ハブ134を介して、相互接続150に提供し又は相互接続150から受信することができる。この点に関して、APU100は、CPUコア複合体120及びバッファ132を有するリアルタイムクライアントが、メモリへの同じアクセス、同じメモリ空間、又は、メモリ空間の一部を共有する統合メモリアーキテクチャをサポートしてもよい。
【0012】
ウォーターマークレジスタ126は、リアルタイムクライアントバッファ毎に追加される動的に構成可能なウォーターマークレジスタである。ウォーターマークレジスタ126の各々は、リアルタイムクライアント130の対応するクライアントバッファに接続されており、リアルタイム電力管理イベントに対応するリアルタイムウォーターマークレベルを提供する。
【0013】
相互接続150は、電力管理状態マシン155を含む。電力管理状態マシン155は、電力イベント要求毎にリアルタイムクライアントウォーターマークレベル状態を受信し、システム100内の共有リソース(例えば、共有メモリ等)に対する電力イベント要求を選択的に生成する。また、相互接続150は、メモリアクセスエージェントとメモリコントローラ152,156との間でメモリアクセス要求及びメモリ応答をルーティングするためのクロスバースイッチを含む。さらに、相互接続150は、BIOSによって定義され、システム構成に基づいてメモリアクセスの宛先を決定するためのシステムメモリマップと、仮想接続毎のバッファと、を含む。代替的な実施形態では、電力管理状態マシン155及び相互接続150は別々である。
【0014】
クライアントコントローラ136は、例えば、USBコントローラ、SATA(Serial Advanced Technology Attachment)インタフェースコントローラ、及び、ソリッドステートドライブ(SSD)コントローラを含み、これらの各々が、システムハブ140及びSMNバス110に双方向に接続されている。これらの2つのコントローラは、APU100で使用され得る周辺機器コントローラの例示に過ぎない。
【0015】
クライアントバスコントローラ138は、システムコントローラ及びPCIeコントローラを含むことができる周辺機器コントローラである。クライアントバスコントローラ138は、入出力(I/O)ハブ140及びSMNバス110に双方向に接続されている。I/Oハブ140は、相互接続150にも双方向に接続されている。よって、例えば、CPUコア122は、相互接続150がI/Oハブ140を介してルーティングするアクセスを通じて、クライアントコントローラ136に関連する各クライアントコントローラ内のレジスタをプログラムすることができる。
【0016】
SMU108は、APU100上のリソースの動作を制御し、これらの間の通信を同期させるローカルコントローラである。SMU108は、電力マネージャ116及び電力管理ファームウェア112を含む。SMU108は、APU100上の様々なプロセッサの電源投入シーケンスを管理し、リセット、イネーブル及び他の信号を介して複数のオフチップデバイスを制御する。SMU108は、APU100の各コンポーネントにクロック信号を提供するために、例えば位相ロックループ(PLL)等のように、
図1に示されていない1つ以上のクロックソースを含む。電力マネージャ116は、様々なプロセッサ、リアルタイムクライアント及び他の機能ブロックの電力を管理し、CPUコア122,124及びコア複合体120から測定された電力消費値を受信して、適切な電力状態を判別することができる。電力管理ファームウェア112は、リアルタイムウォーターマークレジスタ126に双方向に接続されている。電力管理ファームウェア112は、APU100の現在の電力要件に対応するウォーターマークレベル設定をリアルタイムウォーターマークレジスタ126に動的に割り当てる。
【0017】
また、APU100は、様々なシステム監視及び電力管理イベントを実施する。特に、1つのシステム監視機能は、温度監視である。例えば、APU100が高温になる場合、SMU108は、CPUコア122,124及び/又はリアルタイムクライアント130の周波数及び電圧を低減することができる。APU100が非常に高温になる場合、これを完全にシャットダウンすることができる。SMU108によって、熱イベントを、SMNバスを介して外部センサから受信することができ、SMU108は、これに応じて、クロック周波数及び/又は電源電圧を低減することができる。
【0018】
図2は、電力イベント要求を分配する電力管理システムのブロック図である。電力管理システム200は、電力マネージャ212と、リアルタイムクライアントA210と、リアルタイムクライアントN230と、電力管理状態マシン214と、共有リソース216と、を含む。
【0019】
電力マネージャ212は、複数のリアルタイムクライアントの各々のリアルタイムクライアントに接続された出力を有し、リアルタイムクライアントに関連する電力イベント要求を受信するための入力を有する。
【0020】
リアルタイムクライアントA210及びリアルタイムクライアントN230は、複数のリアルタイムクライアントを表す。リアルタイムクライアントA210及びリアルタイムクライアントN230は、例えば、ディスプレイコントローラ、画像信号プロセッサ/コントローラ、USBコントローラ、カメラコントローラ、又は、マルチメディアコントローラであってもよい。各リアルタイムクライアントは、関連する読み出し及び/又は書き込みクライアントバッファと、クライアントバッファのウォーターマーク閾値を記憶するレジスタと、クライアントバッファ内の有効なエントリの数がウォーターマーク閾値を超えた場合に許可信号を提供するロジックと、を有する。
【0021】
電力管理状態マシン214は、複数のリアルタイムクライアント(リアルタイムクライアントA210及びリアルタイムクライアントN230)に接続された入力と、共有リソース216に接続された出力と、を有する。共有リソース216は、例えば、メモリインタフェース(ダブルデータレート物理インタフェース)であってもよい。
【0022】
動作中、電力マネージャ212は、電力イベント要求を受信する。電力イベント要求は、APU100によって消費される電力を中断させる。例えば、電力イベント要求は、低電力状態に移行するため又は外部メモリコンポーネントを低電力状態に置くための1つ以上の共有リソースに対する要求であってもよい。電力マネージャ212は、電力イベント要求の深度を複数のリアルタイムクライアント(210,230)に提供する。電力イベントの深度は、電力イベントの継続時間に対応する。電力イベント要求に関連する各リアルタイムクライアントは、電力イベントの深度に対応するウォーターマークレジスタ値を動的に構成する。リアルタイムクライアントは、ウォーターマークレジスタに関連するクライアントバッファ内のエントリの数をウォーターマークレジスタの値と比較して、電力イベント要求が許可可能な要求であるかどうかを判別する。複数のリアルタイムクライアントの各リアルタイムクライアント(210及び230)が、電力イベント要求が許可可能な要求であると判別したことに応じて、許可信号が電力管理状態マシン214にアサートされる。この例では、共有リソース216に接続された電力管理状態マシン214は、電力イベントの開始を有効にする。しかしながら、電力管理状態マシン214は、電力イベント要求に関連する各リアルタイムクライアントから許可信号を受信しない場合、対応する電力イベントの開始を許可しない。
【0023】
各リアルタイムクライアント(210,230)は、リアルタイムクライアントの帯域幅要件及び全体的に利用可能なシステム帯域幅に応じて、電力イベント要求の深度に対応するウォーターマーク閾値を選択的に設定する。一実施形態では、総システム帯域幅は、最大システム帯域幅、リアルタイム及び非リアルタイムクライアントの総数、並びに、相互接続トポロジによって部分的に動的に決定される。各リアルタイムクライアントは、確立されたウォーターマーク閾値に関するリアルタイムクライアントのバッファの現在の状態に基づいて、許可信号又は不許可信号を電力管理状態マシン214に提供する。バッファが電力イベントの期間中に情報の処理を継続可能な場合、リアルタイムクライアントA210及びリアルタイムクライアントN230は、許可信号をアサートする。選択されたウォーターマーク閾値が、対応する電力イベントの完了前にバッファを空にすること(読み出し)又はフィルすること(filling)(書き込み)に対応する場合、各リアルタイムクライアントは、許可信号を電力状態マシン214に提供しない。したがって、電力状態マシン214は、電力イベント要求に関連する各リアルタイムクライアントから許可信号が提供された場合に、電力イベントの開始を有効にする。
【0024】
別の実施形態では、電力マネージャ212は、SMU108及び電力管理ファームウェア112(
図1)と共同で、APU100に接続されたアクティブリアルタイムクライアントの各々に関するウォーターマーク閾値の選択及び設定を有効にする。電力マネージャ212及び電力管理ファームウェア112を、リアルタイムクライアント毎にウォーターマーク閾値を動的に選択するために、集合的に又は別々に使用することができる。或いは、別々のハードウェアデバイスインタフェースを使用して、電力イベント毎にウォーターマーク設定を設定することができる。ハードウェアデバイスは、リアルタイムクライアント210~230のコントローラと電力マネージャ212との間で統合されると、受信した電力イベント要求に従ってウォーターマーク閾値を動的に設定する。
【0025】
リアルタイムクライアント毎に及び電力管理イベント毎にウォーターマーク閾値を処理することにより、電力管理状態マシン214は、リソース帯域幅を不必要に犠牲にすることなく、及び/又は、望ましくないレイテンシを生じさせることなく、各電力管理イベントを一意に処理することができる。
【0026】
図3は、いくつかの実施形態による、リアルタイムクライアントバッファに関連するウォーターマーク閾値のブロック図である。
図3は、リアルタイム読み出しクライアントバッファ320と、リアルタイム書き込みクライアントバッファ350と、を含む。
【0027】
読み出しクライアントバッファ320は、フィルするための読み出し時間(read time to fill)322と、読み出し帯域幅ランプ(ramp)時間324と、読み出しイベントレイテンシ326と、読み出しウォーターマーク閾値330と、を含む。フィルするための読み出し時間322は、読み出しクライアントバッファ内の所定の保証された帯域幅を占有するのに必要な期間に関連する。読み出し帯域幅ランプ時間324は、保証された読み出し帯域幅に到達することに関連する時間である。読み出しイベントレイテンシ326は、電力管理イベントの期間に関連する時間である。読み出しウォーターマーク閾値330は、電力イベントが開始するときの時間を定義する。読み出しウォーターマーク閾値330は、フィルするための時間322と、読み出し帯域幅ランプ時間324と、読み出しイベントレイテンシ326と、の合計から導出され、電力管理イベントが読み出しクライアントバッファ320をアンダーフローさせる前に読み出しクライアントバッファ320が動作可能な最大時間を定義する。これにより、リアルタイムクライアントによって提供されるサービス品質の中断が発生する。
【0028】
書き込みクライアントバッファ350は、書き込みイベントレイテンシ352と、ランプへの書き込み時間354と、書き込みウォーターマーク閾値356と、を含む。書き込みイベントレイテンシ352は、電力管理イベント中に必要とされる保証された書き込み帯域幅に到達するために書き込みクライアントバッファが必要とする時間である。ランプへの書き込み時間354は、保証された書き込み帯域幅に到達することに関連する時間である。書き込みウォーターマーク閾値356は、書き込みイベントレイテンシ352及びランプへの書き込み時間354の合計から導出され、電力管理イベントの開始によって書き込みクライアントバッファ350をオーバーフローさせ、電力管理イベントに関連する共有リソースの使用を必要とする前に、書き込みクライアントバッファ350が、利用可能な帯域幅に関して動作可能な最大時間を定義する。
【0029】
動作中、複数のクライアントが電力マネージャに接続される。各リアルタイムクライアントは、データを記憶するための複数のエントリを有する少なくとも1つのクライアントバッファと、リアルタイムクライアントのウォーターマーク閾値を記憶するための各クライアントバッファに関連するレジスタと、を含む。読み出しクライアントバッファ320及び書き込みクライアントバッファ350のウォーターマークレジスタは、電力イベントの深度に応じて複数のリアルタイムクライアントの各々の利用可能な帯域幅容量に相関するように、各リアルタイムクライアントによって動的に構成される。クライアントバッファ(320,350)には、電力管理イベント毎にウォーターマークレジスタが設けられている。読み出しウォーターマーク閾値330は、読み出しクライアントバッファ320が、読み出しリアルタイムクライアントの評価された電力管理イベントの間に、メモリを読み出すための利用可能なエントリでアンダーフローしないことを保証するように、動的に構成される。書き込みウォーターマークレジスタ356は、書き込みクライアントバッファ350が、書き込みリアルタイムクライアントの評価された電力管理イベントの間に、メモリに書き込むためのエントリでオーバーフローしないことを保証するように、動的に構成される。各クライアントバッファに関連するロジックは、クライアントバッファ内のエントリの状態に基づいて、信号を電力管理状態マシンに提供する。
【0030】
例えば、読み出しクライアントバッファ320内のエントリが、提供されたウォーターマーク閾値を満たし及び/又は超える場合(バッファをアンダーフローさせない)、読み出しクライアントバッファ320に関連するロジックは、許可信号を電力管理状態マシンに提供する。したがって、読み出しクライアントバッファ320が、電力イベント期間中にウォーターマーク閾値を下回る読み出しクライアントバッファ320のドレイン(draining)を回避するのに十分なデータを有していることに応じて、リアルタイム読み出しクライアントは、許可信号を非アクティブ状態の電力管理状態マシンに提供する。
【0031】
別の例では、書き込みクライアントバッファ350内のエントリが、提供されたウォーターマーク閾値を超えない場合(バッファをオーバーフローさせない)、書き込みクライアントバッファ350に関連するロジックは、許可信号を電力管理状態マシンに提供する。したがって、リアルタイムクライアントは、電力イベント深度信号に対応するオーバーフローまでの時間に基づいて、書き込みクライアントバッファ350の書き込みウォーターマーク閾値356を設定する。書き込みクライアントバッファ350が電力イベント中にウォーターマーク閾値を下回ってフィルしたことに応じて、リアルタイム書き込みクライアントは、非アクティブ状態の許可信号を提供する。
【0032】
一例では、リアルタイムクライアント毎に、SoCのインスタンス毎及び電力管理イベント毎にウォーターマークレジスタが追加される。SoCは、4つのディスプレイと、2つのカメラと、4つのUSBポートと、を含む。ウォーターマークレジスタは、リアルタイムクライアント毎に追加される。ディスプレイコントローラ用に4つの読み出しウォーターマークレジスタが追加される。カメラコントローラ用に2つの書き込みウォーターマークレジスタが追加される。USB用に4つの書き込みウォーターマークレジスタが追加される。一実施形態では、別々のウォーターマークレジスタが、電力管理イベント(又は、メモリ再トレーニングイベント)毎に追加される。各クライアントは、各々のウォーターマーク閾値の状態を検出し、電力管理イベントを通じて動作する各バッファの能力に応じて、許可信号又は不許可信号を電力管理状態マシンに提供する。電力管理状態マシンは、電力管理又はメモリ再トレーニングイベントをコミットする前に、各リアルタイムクライアントからのウォーターマーク許可状態を確認する必要がある。
【0033】
読み出しウォーターマーク閾値330及び書き込みウォーターマーク閾値356は、電力管理イベント中に品質サービスを維持するために、リアルタイムクライアントの推奨バッファレベルを定義する。電力管理イベントの前に、各リアルタイムクライアントのバッファにウォーターマークレジスタを提供し、ウォーターマーク閾値を動的に設定することによって、電力マネージャは、SoCのサービス品質の改善を保証することができる。電力管理イベント毎のバッファ毎のウォーターマーク閾値は、電力管理イベント及び/又はメモリ再トレーニングイベント中に、書き込みクライアントバッファがオーバーフローせず、読み出しクライアントバッファがアンダーフローしないことを保証するための処理を提供する。
【0034】
図4は、いくつかの実施形態による、
図1のAPUでの使用に適したリアルタイムクライアント及び関連するラッチシステムのブロック図である。
図4は、概して、クライアントコントローラ402と、クライアントバッファ406と、ラッチ410と、を含む。
【0035】
クライアントコントローラ402は、電力管理イベント深度を受信するための入力を有する。クライアントコントローラ402は、クライアントバッファ406に接続し、電力管理イベント深度の各々についてHIGH信号及びLOW信号をクライアントバッファ406に提供する。クライアントコントローラは、例えば、ディスプレイコントローラ、カメラコントローラ、USBコントローラ、マルチメディアコントローラ等とすることができる。
【0036】
クライアントバッファ406は、ウォーターマークレジスタ416を含む。ウォーターマークレジスタ416は、クライアントコントローラ402からHIGH閾値及びLOW閾値を受信する。ウォーターマークレジスタ416は、電力イベント又は再トレーニングイベントに耐えるためのバッファ帯域幅容量を定義する。クライアントバッファ406は、電力管理状態マシン155への第1出力と、第2出力と、を提供する。
【0037】
ラッチ410は、第1入力及び第2入力をクライアントバッファ406から受信する。ラッチ410は、ALLOW信号を電力管理状態マシン155に提供する。ラッチ410は、セットリセットラッチであり、セットの場合にはALLOW信号を論理ハイのアクティブ状態で提供し、リセットの場合にはALLOW信号を論理ローの非アクティブ状態で提供する。
【0038】
動作中、クライアントコントローラ402は、電力イベント深度信号を受信する。電力イベント深度信号は、電力イベント要求に関連するクライアントバッファ406の帯域幅容量の計算された消費によって部分的に決定される。電力イベント深度信号は、クライアントコントローラ402が、検出された電力管理イベントの継続時間を判別することを可能にし、これにより、電力管理イベント中にストールすることなく動作を維持するのに必要なバッファエントリの数を決定することを可能にする。ウォーターマークレジスタ416には、電力イベント要求毎にHIGHウォーターマーク閾値及びLOWウォーターマーク閾値が提供される。ラッチ410は、ウォーターマークレジスタ416が、対応するクライアントバッファのBELOW LOW信号及びABOVE HIGH信号のうち一方を検出するまで、ALLOW信号を電力状態マシン155に返す。このようにして、ラッチ410は、クライアントバッファ406の状態を電力管理状態マシン155に継続的に提供する。
【0039】
例えば、クライアントコントローラ402は、関連するリアルタイムクライアントが、電力イベント中にAPUによって提供されるサービスの中断を経験しないように、いくつのバッファエントリが必要か(読み出しクライアントバッファの場合)、又は、いくつの空きエントリを利用可能にする必要があるか(書き込みクライアントバッファの場合)を決定する。電力管理イベントの深さが深いほど終了レイテンシが長くなり、これにより、電力管理イベントの奥行を維持するために、より多くのエントリが、必要になる(受信バッファ)か、電力管理イベントの深さを維持するためにクライアントバッファによって利用可能になる必要がある(書き込みクライアントバッファ)。各クライアントコントローラは、電力イベント深度信号に応じて、自身のウォーターマーク閾値を動的に選択する。クライアントバッファ406が電力管理イベントを受信すると、リアルタイムクライアントコントローラ402は、各ウォーターマークレジスタを、クライアントバッファの現在の状態と比較する。バッファが各ウォーターマーク閾値のABOVE HIGH及びBELOW LOWの何れかである場合、許可信号が取り消され、低電力状態から高電力状態への少なくとも1つの共有リソースの遷移をトリガする。そうでない場合には、ラッチ410は、ALLOW信号を電力管理状態マシン155に提供し続ける。
【0040】
図4の例示的な実施形態では、ALLOW信号は、ラッチ410によって電力管理状態マシン155に提供される。HIGHウォーターマーク及びLOWウォーターマークは、ほぼフル又は空のクライアントバッファに対応する。リアルタイムクライアントがLOWウォーターマーク閾値容量を検出すると、ラッチ410は、電力管理状態マシンが許可信号を無効にすることを可能にし、低電力状態から高電力状態への共有リソースの遷移をトリガする。HIGHウォーターマーク及びLOWウォーターマークは、ラッチ410と共に、バッファが動的にドレイン(drained)及びフィル(filled)されている間にALLOW信号を確実に提供するために、クライアントバッファ406とラッチ410との間にヒステリシスを提供する。
【0041】
図5は、いくつかの実施形態による、
図1のAPUでの使用に適した電力管理状態マシンの一部ブロック図及び一部回路図である。電力管理状態マシン500は、リアルタイムクライアント信号515と、リアルタイムクライアント信号525と、リアルタイムクライアント信号535と、マスク信号510と、マスク信号520と、マスク信号530と、ORゲート540のセットと、AND論理ゲート550と、を含む。
【0042】
相互接続150は、電力管理状態マシン500を含む。複数のリアルタイムクライアントの各々は、AND論理ゲート550に接続されている。
【0043】
電力マネージャ212は、マスク信号510,520,530をアクティブ状態で各リアルタイムクライアントに提供する。マスク信号510,520,530は、リアルタイムクライアントが、現在のユースケースについて、対応する電力管理イベント(又は、メモリ再トレーニングイベント)に関連する共有リソースにリンクされていない場合のリアルタイムクライアントの値に対応する。
【0044】
動作中、マスク信号510,520,530は、電力イベント要求の期間のリアルタイムクライアントに関連する共有リソースの割り当ての値に対応する。例えば、マスク信号は、電力イベント要求の期間のリアルタイムクライアントに関連する共有リソースの割り当ての値に対応する。したがって、マスク信号がHIGHである場合、対応するALLOW信号はHIGHである(リアルタイムクライアントが、対応する電力イベントに対して「don’t-care」であるため)。マスク信号510,520及び/又は530が各々のORゲート540に対してLOWである場合、出力は、リアルタイムバッファの状態をウォーターマーク閾値と比較することによって送信されたALLOW信号の状態に依存する。POWER EVENT START信号を提供するために、マスクされていないリアルタイムクライアントの全ては、ALLOW状態をANDゲート550に報告する必要がある。ALLOW信号は、ワイヤ信号及び仮想ワイヤ信号のうち少なくとも一方として提供される。
【0045】
一実施形態では、マスク信号510,520,530は、重み係数又は値として実装される。重み係数は、電力イベント要求信号に対するリアルタイムクライアント毎の電力消費割り当てを選択的に優先する。重み係数を実装することにより、電力管理状態マシンは、リアルタイムクライアントの許可信号又は不許可信号(若しくは、許可信号の不存在)の重要性を優先付けることができる。
【0046】
別の実施形態では、電力マネージャは、リアルタイムクライアントバッファが電力イベント要求信号に関連していない場合に、リアルタイムクライアントバッファをマスクする。電力マネージャは、マスク信号510,520,530が、1つ以上のリアルタイムクライアントに対して許可信号をマスクすることを可能にし、電力管理状態マシンは、アサートされマスクされた許可信号に応じて、対応する電力イベント要求に対するリアルタイムクライアントからの応答をバイパスする。したがって、電力管理状態マシンは、リアルタイムクライアント信号515,525,535を提供している全ての有効なリアルタイムクライアントから許可信号を受信したことに応じて、電力イベントの開始を有効にする。
【0047】
図6は、
図5の電力管理状態マシンによって使用され得る方法600のフローチャートである。ブロック602において、電力マネージャは、電力イベント要求を受信する。ブロック604において、電力マネージャは、電力イベント要求に関連するクライアント毎にウォーターマーク閾値を決定する。ブロック606において、クライアント毎に、クライアントバッファ内のエントリの数が各々のウォーターマーク閾値(ウォーターマークレジスタに関連する)と比較され、電力イベントが継続して許可されるかどうかが判別される。ブロック608において、電力管理状態マシンが許可信号を検出したかどうかが判別される。電力管理状態マシンが許可信号を検出した場合、処理はブロック612に続く。電力管理状態マシンが許可信号を検出しなかった場合、処理はブロック610に続く。ブロック610において、電力管理状態マシンが不許可信号を検出したかどうかが判別される。電力管理状態マシンが不許可信号を検出しない場合、処理は終了する。電力管理状態マシンが不許可信号を検出した場合、処理はブロック614に続く。ブロック612において、電力管理状態マシンは、HIGH信号をアサートし、電力管理状態マシンを開始することを可能にする。電力管理状態マシンは、不許可信号を検出したことに応じて、ブロック614において、低電力状態から高電力状態への少なくとも1つの共有リソースの遷移をトリガする。ブロック616において、電力マネージャは、電力イベント要求の開始を無効にする。処理は、終了ブロックにおいて終了する。
【0048】
APU100又はそのコンポーネントの何れかは、ハードウェア及びソフトウェアの様々な組み合わせで実装されてもよい。
図6に示すこれらのコンポーネント又は方法の一部又は全ては、コンピュータ可読記憶媒体に記憶され、少なくとも1つのプロセッサによって実行される命令によって制御されてもよい。
図6に示す動作の各々は、非一時的なコンピュータメモリ又はコンピュータ可読記憶媒体に記憶された命令に対応することができる。様々な実施形態では、非一時的なコンピュータ可読記憶媒体は、磁気若しくは光ディスク記憶装置、例えばフラッシュメモリ等のソリッドステート記憶装置、又は、他の不揮発性メモリデバイスを含む。非一時的なコンピュータ可読記憶媒体に記憶されたコンピュータ可読命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈及び/若しくは実行可能な他の命令フォーマットであってもよい。
【0049】
さらに、
図1のAPU100又はその任意の部分は、プログラムによって読み取ることができ、集積回路を製造するために直接又は間接的に使用することができるデータベース又は他のデータ構造の形態のコンピュータアクセス可能なデータ構造によって記述又は表現されてもよい。例えば、このデータ構造は、Verilog又はVHDL等の高レベル設計言語(HDL)におけるハードウェア機能の動作レベル記述又はレジスタ転送レベル(RTL)記述とすることができる。記述は、合成ライブラリからゲートのリストを含むネットリストを生成するために記述を合成することができる合成ツールによって読み出されてもよい。ネットリストは、集積回路を含むハードウェアの機能も表すゲートのセットを含む。次に、ネットリストを配置し、配線して、マスクに適用される幾何学的形状を記述するデータセットを生成することができる。次いで、マスクを様々な半導体製造工程で使用して、集積回路を製造することができる。或いは、コンピュータアクセス可能記憶媒体上のデータベースは、ネットリスト(合成ライブラリを伴う若しくは伴わない)若しくはデータセットあってもよいし、又は、必要に応じて、グラフィックデータシステム(GDS)IIデータであってもよい。
【0050】
特定の実施形態を説明してきたが、これらの実施形態に対する様々な変更が当業者に明らかであろう。メモリコントローラ500は、高帯域幅メモリ(HBM)、RAMbus DRAM(RDRAM)等のように、DDRxメモリ以外の他のタイプのメモリにインタフェースすることができる。
【0051】
したがって、添付の特許請求の範囲は、開示された実施形態の範囲に属する開示された実施形態の全ての修正をカバーすることを意図している。