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

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

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

特許7592200プローブフィルタ保持ベースの低電力状態
<>
  • 特許-プローブフィルタ保持ベースの低電力状態 図1
  • 特許-プローブフィルタ保持ベースの低電力状態 図2
  • 特許-プローブフィルタ保持ベースの低電力状態 図3
  • 特許-プローブフィルタ保持ベースの低電力状態 図4
  • 特許-プローブフィルタ保持ベースの低電力状態 図5
  • 特許-プローブフィルタ保持ベースの低電力状態 図6
  • 特許-プローブフィルタ保持ベースの低電力状態 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-21
(45)【発行日】2024-11-29
(54)【発明の名称】プローブフィルタ保持ベースの低電力状態
(51)【国際特許分類】
   G06F 12/0831 20160101AFI20241122BHJP
   G06F 12/00 20060101ALI20241122BHJP
【FI】
G06F12/0831
G06F12/00 550E
【請求項の数】 19
(21)【出願番号】P 2023577544
(86)(22)【出願日】2022-06-07
(65)【公表番号】
(43)【公表日】2024-07-10
(86)【国際出願番号】 US2022032544
(87)【国際公開番号】W WO2022271445
(87)【国際公開日】2022-12-29
【審査請求日】2024-01-25
(31)【優先権主張番号】17/357,104
(32)【優先日】2021-06-24
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ベンジャミン チェン
(72)【発明者】
【氏名】アミット ピー. アプテ
【審査官】北村 学
(56)【参考文献】
【文献】特表2013-521556(JP,A)
【文献】特表2021-507412(JP,A)
【文献】米国特許出願公開第2017/0010655(US,A1)
【文献】国際公開第2008/152790(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F 12/00 - 12/128
(57)【特許請求の範囲】
【請求項1】
データプロセッサであって、
複数のリクエスタと、
複数のレスポンダと、
前記複数のリクエスタと前記複数のレスポンダとの間で要求をルーティングするためのデータファブリックと、を備え、
前記データファブリックは、
クロスバールータと、
前記クロスバールータに結合されたコヒーレントスレーブコントローラと、
前記コヒーレントスレーブコントローラに結合され、メモリのキャッシュされたラインの状態を追跡するプローブフィルタと、
プローブフィルタ保持低電力状態に適した条件に応じて、前記プローブフィルタを、前記プローブフィルタへの電力が維持されている間に前記プローブフィルタへのクロック信号がゲートされる保持低電力状態に入らせる電力状態制御回路構造と、を含み、
前記保持低電力状態に入ることは、処理中のプローブフィルタルックアップの全てが完了した場合に実行される、
データプロセッサ。
【請求項2】
前記コヒーレントスレーブコントローラは、処理中のプローブフィルタルックアップの全てが完了した場合に、新しいプローブフィルタルックアップ及び前記電力状態制御回路構造へのシグナリングを禁止又は無効にする、
請求項1のデータプロセッサ。
【請求項3】
前記プローブフィルタ保持低電力状態に適した条件は、プローブフィルタクライアントである全てのリクエスタがキャッシュをフラッシュし、アイドル電力状態に入ったという条件を含む、
請求項1のデータプロセッサ。
【請求項4】
前記プローブフィルタ保持低電力状態に適した条件は、前記データファブリックがアイドル低電力状態に入ったという条件を含む、
請求項1のデータプロセッサ。
【請求項5】
前記プローブフィルタ保持低電力状態に適した条件は、前記データプロセッサが、プライマリ非コヒーレントリクエスタのみがアクティブである低電力状態に入ったという条件を含む、
請求項1のデータプロセッサ。
【請求項6】
前記データプロセッサが、プライマリ非コヒーレントリクエスタのみがアクティブである低電力状態に入ったことを検出することは、プローブフィルタクライアントであるリクエスタに結合されたファブリックデータポートの切断条件を検出することを含む、
請求項4のデータプロセッサ。
【請求項7】
前記コヒーレントスレーブコントローラは、プライマリ非コヒーレントリクエスタからコヒーレントキャッシュ可能要求を受信すると、ウェイク信号を前記電力状態制御回路構造に送信し、
前記電力状態制御回路構造は、前記ウェイク信号を受信することに応じて、前記プローブフィルタを前記保持低電力状態から出させる、
請求項4のデータプロセッサ。
【請求項8】
プローブフィルタ保持低電力状態の個別の適した条件は、プローブフィルタクライアントである全てのリクエスタがキャッシュをフラッシュする条件と、前記データプロセッサがアイドル電力状態に入る条件と、前記データプロセッサが、プライマリ非コヒーレントリクエスタのみがアクティブである低電力状態に入る条件と、のうち2つ以上を含む、
請求項1のデータプロセッサ。
【請求項9】
プローブフィルタクライアントであるリクエスタは、中央処理装置(CPU)コアを含み、
前記プライマリ非コヒーレントリクエスタは、ディスプレイコントローラ又はグラフィックスコントローラを含む、
請求項7のデータプロセッサ。
【請求項10】
方法であって、
データプロセッサのデータファブリックにおいて、複数のリクエスタと複数のレスポンダとの間で要求をルーティングすることと、
前記データファブリックに結合されたプローブフィルタにおいて、メモリのキャッシュされたラインの状態を追跡することと、
プローブフィルタ保持低電力状態に適した条件を検出し、それに応じて、コヒーレントスレーブコントローラに対して、新しいプローブフィルタルックアップを禁止又は無効にするように命令することと、
前記プローブフィルタに供給されるクロック信号をゲートすることと、を含む、
方法。
【請求項11】
前記コヒーレントスレーブコントローラへのコマンドが受信された場合に処理中であった全てのプローブフィルタルックアップが完了したことを示す信号を前記コヒーレントスレーブコントローラから受信することを含む、
請求項10の方法。
【請求項12】
前記プローブフィルタ保持低電力状態に適した条件は、プローブフィルタクライアントである全てのリクエスタがキャッシュをフラッシュし、アイドル電力状態に入ったことを含む、
請求項10の方法。
【請求項13】
前記プローブフィルタ保持低電力状態に適した条件は、前記データプロセッサが、プライマリ非コヒーレントリクエスタのみがアクティブである低電力状態に入ったことを含む、
請求項10の方法。
【請求項14】
前記データプロセッサが、プライマリ非コヒーレントリクエスタのみがアクティブである低電力状態に入ったことを検出することは、プローブフィルタクライアントに結合された前記データファブリックの複数のデータポートの切断条件を検出することを含む、
請求項13の方法。
【請求項15】
前記プローブフィルタ保持低電力状態にある間にプライマリ非コヒーレントリクエスタからコヒーレントキャッシュ可能要求を受信したことに応じて、前記コヒーレントスレーブコントローラからウェイク信号を送信することと、
前記ウェイク信号を受信したことに応じて、前記プローブフィルタの前記プローブフィルタ保持低電力状態を終了させ、前記コヒーレントキャッシュ可能要求を実行させることと、を含む、
請求項13の方法。
【請求項16】
データファブリックの電力状態を制御するための電力状態制御回路であって、
プローブフィルタ保持低電力状態に適した条件に応じて、前記データファブリックのプローブフィルタを、前記プローブフィルタへの電力が維持されている間に前記プローブフィルタへのクロック信号がゲーティングされる保持低電力状態に入らせるように動作可能な電力状態制御回路構造と、
前記プローブフィルタへの第1のクロック信号を選択的にゲーティングするために、前記電力状態制御回路構造に結合された第1のクロックゲーティング回路と、
前記データファブリックへの第2のクロック信号を選択的にゲーティングするために、前記電力状態制御回路構造に結合された第2のクロックゲーティング回路と、を備え、
ヒーレントスレーブコントローラは、処理中のプローブフィルタルックアップの全てが完了した場合に、新しいプローブフィルタルックアップ及び前記電力状態制御回路構造へのシグナリングを禁止又は無効にする、
電力状態制御回路。
【請求項17】
前記プローブフィルタ保持低電力状態に適した条件は、プローブフィルタクライアントである全てのリクエスタがキャッシュをフラッシュし、アイドル電力状態に入ったという条件を含む、
請求項16の電力状態制御回路。
【請求項18】
前記プローブフィルタ保持低電力状態に適した条件は、前記データファブリックがアイドル低電力状態に入ったという条件を含む、
請求項16の電力状態制御回路。
【請求項19】
前記プローブフィルタ保持低電力状態に適した条件は、ホストデータプロセッサが、プライマリ非コヒーレントリクエスタのみが前記データファブリックに接続される低電力状態に入ることを含む、
請求項16の電力状態制御回路。
【発明の詳細な説明】
【背景技術】
【0001】
コンピュータシステムは、異なる入力/出力及び通信機能のために様々な周辺構成要素を利用する。システムオンチップ(SOC)は、単一の集積回路チップ上で、中央処理装置(CPU)コア及びグラフィックス処理装置(GPU)等のデータ処理回路を周辺コントローラ及びメモリインターフェースと組み合わせ、携帯型の電池式動作によく適している。例えば、SOCは、ディスプレイコントローラ、画像信号プロセッサ(ISP)及びSOC上の他の周辺コントローラを組み込んで、コンピュータシステムへの情報の入力及びコンピュータシステムからの情報の出力を可能にし得る。そのような大規模で複雑なSOCでは、デバイスは、通常、大型のオンチップルーティング回路又は「データファブリック」を介してアクセスをルーティングすることによって、メモリ等のリソース間でデータを転送する。
【0002】
典型的なSOC上の回路の多様性は、省電力モードを実装するための問題を提示する。周辺コントローラの多くは、リアルタイムで動作し、等時性であり、ある期間にわたって共有メモリリソースにある量の帯域幅を必要とする。この要求は、チップ幅の低電力状態の実現を妨げてきた。例えば、CPUコア及びGPUがアイドルである場合に、周辺コントローラは、依然としてアクティブであり、バッファに記憶することができるデータを受信している場合があるが、バッファが一杯になる前にデータをメモリに送信しなければならない。
【0003】
一方、CPU及びGPUは、アイドル期間によって分離された高アクティビティの期間を有する傾向がある。アイドル期間が短いと予想される場合に、データファブリック、メモリコントローラ及びメモリは、通常、アクティブのままであり、したがって、より多くのデータを転送するために、周辺コントローラからの要求に迅速にサービスすることができる。
【図面の簡単な説明】
【0004】
図1】従来技術で知られているコンピュータシステム電力状態のための電力制御インターフェース(Advanced Configuration and Power Interface、ACPI)モデルのブロック図である。
図2】いくつかの実施形態による、データ処理システムのブロック図である。
図3】いくつかの実施形態による、図2のデータファブリックのブロック図である。
図4】例示的な実施形態による、保持低電力状態に入るためのプロセスを示すフローチャートである。
図5図4の保持低電力状態プロセスを出るためのプロセスを示すフローチャートである。
図6】別の例示的な実施形態による、保持低電力状態に入るための別のプロセスを示すフローチャートである。
図7】例示的な実施形態による、保持低電力状態を出て入るための別のプロセスを示すフローチャートである。
【発明を実施するための形態】
【0005】
以下の説明において、異なる図面における同一の符号の使用は、同様の又は同一のアイテムを示す。別段言及されなければ、「結合される」という単語及びその関連する動詞形は、当技術分野で知られている手段による直接接続及び間接電気接続の両方を含み、また、別段言及されなければ、直接接続の任意の記述は、好適な形態の間接電気接続を使用する代替の実施形態も意味する。
【0006】
データプロセッサは、複数のリクエスタと、複数のレスポンダと、データファブリックと、を含む。データファブリックは、複数のリクエスタと複数のレスポンダとの間で要求をルーティングするためのものであり、クロスバールータと、クロスバールータに接続されたコヒーレントスレーブコントローラと、コヒーレントスレーブコントローラに接続されたプローブフィルタと、電力状態制御回路構造と、を含む。プローブフィルタは、メモリのキャッシュされたラインの状態を追跡する。電力状態制御回路構造は、複数の指定された条件の何れかを検出することに応じて、プローブフィルタへの電力が維持されている間にプローブフィルタへのクロック信号がゲートされる保持低電力状態(retention low power state)にプローブフィルタを入らせるように動作可能である。保持低電力状態に入ることは、全ての処理中のプローブフィルタルックアップが完了した場合に実行される。
【0007】
本方法は、データプロセッサのデータファブリックにおいて、複数のリクエスタと複数のレスポンダとの間で要求をルーティングすることを含む。データファブリックに結合されたプローブフィルタにおいて、メモリのキャッシュされたラインの状態が追跡される。プローブフィルタ保持低電力状態に適した条件が検出され、それに応じて、コヒーレントスレーブコントローラは、新しいプローブフィルタルックアップを禁止又は無効にするように命令される。プローブフィルタに供給されるクロック信号はゲートされる。
【0008】
電力状態制御回路は、データファブリックの電力状態を制御する。電力状態制御回路は、電力状態制御回路構造、第1のクロックゲーティング回路、及び、第2のクロックゲーティング回路を含む。電力状態制御回路構造は、複数の指定された条件の何れかを検出することに応じて、データファブリックのプローブフィルタを、プローブフィルタへの電力が維持されている間にプローブフィルタへのクロック信号がゲートされる保持低電力状態に入らせるように動作可能である。第1のクロックゲーティング回路は、プローブフィルタへの第1のクロック信号を選択的にゲーティングするために電力状態制御回路構造に接続されている。第2のクロックゲーティング回路は、データファブリックへの第2のクロック信号を選択的にゲーティングするために電力状態制御回路構造に結合されている。保持低電力状態に入ることは、全ての処理中のプローブフィルタルックアップが完了した場合に実行される。
【0009】
図1は、従来技術で知られているコンピュータシステム電力状態のための電力制御インターフェース(Advanced Configuration and Power Interface、ACPI)モデル100のブロック図である。ACPIモデル100は、デバイス及びコンピュータシステム全体の両方のデバイス構成及び電力管理のための業界標準インターフェースを確立するために、様々なコンピュータシステム、ソフトウェア及びコンポーネントベンダによって開発されたAPCI仕様の一部である。
【0010】
ACPIモデル100は、「Working」状態として知られるG0(S0)状態110、「Sleeping」状態として知られるG1状態120、「Soft Off」状態として知られるG2(S5)状態130、及び、「Mechanical Off」状態として知られるG3状態140を含むグローバルシステム状態のセットの周りに編成されたコンピュータシステム内の様々なデバイスの状態の階層を定義する。さらに、ACPIモデル100は、ACPI互換オペレーティングシステムがロードされる前の基本入出力システム(BIOS)動作に対応する既存のBIOS電力管理インターフェースに対応する「レガシー」状態として知られる状態150を含む。また、ACPIモデル100は、中央処理装置(CPU)状態160のセットと、モデム、ハードディスクドライブ(HDD)及びコンパクトディスク読み出し専用メモリ(CDROM)等のデバイスのためのデバイス状態又は「D」状態170のセットと、を定義する。
【0011】
ACPIモデル100は周知であり、大部分の態様についてはこれ以上説明しない。しかしながら、中央処理装置の電力状態に関する特定の態様は、本開示を理解することに関連しており、ここで説明する。
【0012】
G0(S0)状態110では、周辺デバイスは、それらの電力状態を動的に変更させることができ、ユーザは、ソフトウェアシステムが所望の性能又はバッテリ寿命のためにコンピュータを最適化することができるように、ユーザインターフェースを介して、システムの様々な性能及び電力特性を選択することができる。この状態では、コンピュータシステムは外部イベントにリアルタイムで応答する。G0(S0)状態から、コンピュータシステムは、BIOS等のシステムファームウェアの制御下で、様々な省電力スリープ状態又は「S状態」を含むG1状態120に遷移し、ウェイクイベントに応じて動作状態に戻ることができる。
【0013】
G0(S0)状態110では、CPUは、プロセッサが命令を実行する「C0」状態、及び、「C1」から「Cn」とラベル付けされた様々な低電力又は「アイドル」状態を含む様々な状態で動作することができる。C0状態では、CPUは、様々な性能状態又は「P状態」で動作することが可能であり、動作周波数は、動的電圧及び周波数スケーリング(DVFS)を使用して現在実行中のアプリケーションプログラムのニーズをサポートするために増加又は抑制され得る。アイドル状態C1~Cnでは、CPUはアイドルであり、命令を実行しないが、電力消費及びウェイクアップレイテンシの様々な組み合わせを有し、より低い電力消費は、より長いウェイクアップレイテンシとトレードオフされる。したがって、例えば、C1状態では、電力消費が最も高いが、ウェイクアップレイテンシが最も短く、一方、Cn状態では、電力消費が最も低いが、ウェイクアップレイテンシが最も長い。
【0014】
ACPIモデル100を使用して、各特定のコンピュータシステムは、アプリケーション環境に適したP状態及びC状態の異なる組み合わせをサポートすることができる。ACPIモデル100によって指定されていない方法で、低減された電力消費と低レイテンシとの間のより良いトレードオフを達成することは、依然として望ましい目標である。
【0015】
図2は、いくつかの実施形態による、データ処理システム200のブロック図である。データ処理システム200は、SOC210の形態のデータプロセッサと、低電力ダブルデータレートシンクロナスダイナミックランダムアクセスメモリ(LPDDRx SDRAM)273及び283の形態の外部メモリと、を含む。実際のデータ処理システムの多くの他のコンポーネントが典型的に存在するが、本開示を理解することに関連せず、説明を容易にするために図2には示されていない。
【0016】
SOC210は、概して、システム管理ユニット(SMU)211と、システム管理ネットワーク(SMN)212と、「CCX」とラベル付けされた中央処理装置(CPU)コア複合体220と、「GFX」とラベル付けされたグラフィックスコントローラ230と、リアルタイムクライアントサブシステム240と、メモリ/クライアントサブシステム250と、データファブリック260と、メモリチャネル270及び280と、周辺コンポーネントインターフェースエクスプレス(PCIe)サブシステム290と、を含む。当業者によって理解されるように、SOC210は、全ての実施形態に存在するこれらの要素の全てを有していなくてもよく、さらに、その中に含まれる追加の要素を有してもよい。
【0017】
SMU211は、SMN212を介してSOC210内の主要構成要素に双方向に接続されている。SMN212は、SOC210のための制御ファブリックを形成する。SMU211は、SOC210上のリソースの動作を制御してそれらの間の通信を同期させるローカルコントローラである。SMU211は、SOC210上の様々なプロセッサのパワーアップシーケンシングを管理し、リセット、イネーブル及び他の信号を介して複数のオフチップデバイスを制御する。SMU211は、SOC210の構成要素のそれぞれにクロック信号を与えるために、位相ロックループ(phase locked loop、PLL)等の1つ以上のクロックソース(図示せず)を含む。また、SMU211は、様々なプロセッサ及び他の機能ブロックのための電力を管理し、適切なP状態を判定するためにCPUコア複合体220内のCPUコア及びグラフィックスコントローラ230から測定された電力消費値を受信することができる。
【0018】
CPUコア複合体220は、CPUコアのセットを含み、その各々は、SMN212を介してSMU211に双方向に接続されている。各CPUコアは、ラストレベルキャッシュのみを他のCPUコアと共有する単一コアであってもよいし、クラスタ内の他のコアの全てではないが一部と組み合わされてもよい。
【0019】
グラフィックスコントローラ230は、SMN212を介してSMU211に双方向に接続されている。グラフィックスコントローラ230は、頂点処理、フラグメント処理、シェーディング、テクスチャブレンディング等のグラフィックス処理を高度に統合された並列方式で実行することができる高性能グラフィックス処理ユニットである。グラフィックスコントローラ230は、その動作を実行するために、外部メモリへの周期的なアクセスを必要とする。図2に示される実施形態では、グラフィックスコントローラ230は、統合メモリアーキテクチャとして知られるアーキテクチャである、CPUコア複合体220内のCPUコアと共通メモリサブシステムを共有する。SOC210は、CPUとGPUの両方を含むので、加速処理ユニット(APU)とも呼ばれる。
【0020】
リアルタイムクライアントサブシステム240は、代表的なリアルタイムクライアント242及び243等のリアルタイムクライアントのセットと、「MM HUB」とラベル付けされたメモリ管理ハブ241と、を含む。各リアルタイムクライアントは、SMN212を介してSMU211に双方向接続されており、メモリ管理ハブ241に双方向接続されている。リアルタイムクライアントは、画像信号プロセッサ(ISP)、オーディオコーダ-デコーダ(コーデック)、モニタ上に表示するためにグラフィックスコントローラ230によって生成されたオブジェクトをレンダリング及びラスタ化するディスプレイコントローラ等のように、データの周期的な移動を必要とする任意のタイプの周辺コントローラであり得る。
【0021】
メモリ/クライアントサブシステム250は、代表的なメモリ/クライアントデバイス252及び253等のメモリ要素又は周辺コントローラのセットと、「SYSHUB/IOHUB」とラベル付けされたシステム及び入力/出力ハブ251と、を含む。各メモリ/クライアントデバイスは、SMN212を介してSMU211に双方向に接続されており、システム及び入力/出力ハブ251に双方向に接続されている。メモリ/クライアントデバイスは、不揮発性メモリ、スタティックランダムアクセスメモリ(SRAM)、シリアルアドバンストテクノロジーアタッチメント(SATA)インターフェースコントローラ等の外部ディスクコントローラ、ユニバーサルシリアルバス(USB)コントローラ、システム管理ハブ等のように、非周期的にデータを記憶するか又はデータへのアクセスを必要とする回路である。
【0022】
データファブリック260は、SOC210におけるトラフィックのフローを制御する相互接続である。データファブリック260は、SMN212を介してSMU211に双方向に接続されており、CPUコア複合体220、グラフィックスコントローラ230、メモリ管理ハブ241、システム及び入出力ハブ251に双方向に接続されている。データファブリック260は、SOC210における様々なデバイスの何れかの間にてメモリマップドアクセスの要求と応答をルーティングするためのクロスバースイッチを含む。データファブリックは、システム構成に基づいてメモリアクセスの送信先を判定するために、基本入出力システム(basic input/output system、BIOS)によって規定されるシステムメモリマップ、及び、各仮想接続のためのバッファも含む。
【0023】
メモリチャネル270及び280は、外部メモリ273及び283との間のデータの転送を制御する回路である。メモリチャネル270は、メモリコントローラ271と、外部メモリ273に接続された「PHY」とラベル付けされた物理インターフェース回路272と、によって形成される。メモリコントローラ271は、SMN212を介してSMU211に双方向に接続され、データファブリック260に双方向に接続されたアップストリームポートと、ダウンストリームポートと、を有する。物理インターフェース回路272は、メモリコントローラ271に双方向に接続されたアップストリームポートと、外部メモリ273に双方向に接続されたダウンストリームポートと、を有する。同様に、メモリチャネル280は、メモリコントローラ281と、外部メモリ283に接続された物理インターフェース回路282と、によって形成される。メモリコントローラ281は、SMN212を介してSMU211に双方向に接続され、データファブリック260に双方向に接続されたアップストリームポートと、ダウンストリームポートと、を有する。物理インターフェース回路282は、メモリコントローラ281に双方向に接続されたアップストリームポートと、外部メモリ283に双方向に接続されたダウンストリームポートと、を有する。
【0024】
周辺コンポーネントインターフェースエクスプレス(PCIe)サブシステム290は、PCIeコントローラ291及びPCIe物理インターフェース回路292を含む。PCIeコントローラ291は、SMN212を介してSMU211に双方向に接続され、システム及び入力/出力ハブ251に双方向に接続されたアップストリームポートと、ダウンストリームポートと、を有する。PCIe物理インターフェース回路292は、PCIeコントローラ291に双方向に接続されたアップストリームポートと、図2に示されていないPCIeファブリックに双方向に接続されたダウンストリームポートと、を有する。PCIeコントローラは、PCIeスイッチ、ルータ及びデバイスを含むPCIeネットワークへの接続のために、PCIeシステムのPCIeルート複合体を形成することができる。
【0025】
動作において、SOC210は、単一チップ上に、CPUコア複合体220及びグラフィックスコントローラ230を含むコンピューティングデバイス及びストレージデバイスの複雑な組み合わせを統合する。これらのコントローラのほとんどは周知であり、これ以上説明しない。また、SOC210は、SMU211及び/又はオペレーティングシステムソフトウェアの制御下で、P状態上昇及びスロットリング並びにC状態に入ること及び出ることを含む、種々のシステム監視及び電力節約機能を実装する。
【0026】
例えば、SOC210は、命令が実行されていないアイドル期間に基づいて、CPUコア複合体220及びグラフィックスコントローラ230の様々なアイドル状態へ入ること及びそこから出ることを制御する。知られているように、CPUコア複合体220及びグラフィックスコントローラ230が全てアイドル状態に入る場合に、SOC210の他の構成要素も、電力を節約するために適切なアイドル状態に置かれ得る。一例では、CPUコア複合体220は、浅いアイドル状態(C1)及び深いアイドル状態(C6)状態を含む2つのアイドル状態をサポートする。ACPIモードによれば、C1状態は、最も軽いC状態であり、SOC210がその状態を保持することを可能にするが、非常に低いレイテンシでアクティブ状態に戻ることも可能にするクロックゲーティング及び電源電圧の低減を単に伴い得る。一方、C6状態は、非常に深いC状態であり、様々なクロック信号及び電源電圧をゲーティングすることによって電力消費を低減するが、非常に長い終了レイテンシも有する。
【0027】
いくつかの既知のシステムでは、SOC210の他のコンポーネントも、データ処理要素のアイドル状態に対応するように様々なアイドル状態に置かれ得る。1つの特定の例では、各CPU及びGPUがC1状態に入る場合に、データファブリック及びメモリシステムは完全に動作可能なままであるが、それらが一般に必要とされない場合にかなりの電力を消費する。しかしながら、各CPU及びGPUがC6状態に入る場合に、データファブリック260も、パワーゲーティング又はクロックゲーティングを用いて対応するアイドル電力状態に置かれる。データファブリックは、このアイドル電力状態に入る前に、外部メモリをセルフリフレッシュ状態にし、メモリコントローラ及びPHYを同様の低電力状態にする。
【0028】
図3は、いくつかの実施形態による、図2のデータファブリック260のブロック図である。データファブリック260は、マスタポート310のセット、スレーブポート320のセット、クロスバールータ330、及び、電力コントローラ回路350を含む。
【0029】
マスタポート310は、代表的なコヒーレントマスタポート311及び312、並びに、代表的なマスタポート313及び314を含む、メモリアクセス要求を生成することができる各デバイスのためのポートを含む。ポート311、312、313、314の各々は、図2に示すように、対応する要求デバイスに双方向に接続されるように適合され、双方向ダウンストリームポートを有する。各マスタポートは、アクセスを一時的に記憶するための内部FIFOバッファを有する。コヒーレントマスタポート311及び312は、様々な実施形態において、CCX220、GFX230、又は、他のCPU又はGPUリクエスタ等のコヒーレントリクエスタにアップストリーム方向で接続する。マスタポート313及び314は、アップストリーム方向において、それぞれMMハブ241及びIOHUB251を介して、ディスプレイコントローラ又はマルチメディアコントローラ等のプライマリ非コヒーレントリクエスタ(primarily non-coherent requestors)に接続される。
【0030】
スレーブポート320は、代表的なスレーブポート321、並びに、代表的なコヒーレントスレーブポート322及び323を含む、メモリアクセス要求に応答することができる各デバイスのためのポートを含む。スレーブポート321、322、323の各々は、双方向アップストリームポートを有し、図2に示されるように、対応する応答デバイスに双方向に接続されるように適合される。各スレーブポートは、アクセスを一時的に記憶するための内部FIFOバッファを有する。コヒーレントスレーブポート322及び323の各々は、メモリのキャッシュされたラインの状態を追跡するために、それぞれのプローブフィルタ360に双方向に接続されている。各コヒーレントスレーブポートは、ポートのためのコヒーレントスレーブコントローラを含む。
【0031】
クロスバールータ330は、マスタポート310のダウンストリーム双方向接続への双方向接続と、スレーブポート320のアップストリーム双方向接続への双方向接続と、を有する。クロスバールータ330は、データファブリック260の心臓部であり、マスタポートと対応するスレーブポートとの間でアクセスをルーティングすることによって、リクエスタの宛先アドレスに基づいてマスタとスレーブとの間の仮想接続を形成する。
【0032】
電力コントローラ回路350は、ローカルC状態コントローラ351、クロックゲート回路352、パワーゲート(登録商標)回路353、及び、プローブフィルタクロックゲート345を含む。ローカルC状態コントローラ351は、「SOC STATE」とラベル付けされた信号を受信するための第1の入力と、プローブフィルタクロックゲート354に接続された第1の出力と、「Flushed」とラベル付けされた信号を搬送するコヒーレントスレーブポート322及び323に接続された第2の出力と、「Disable」とラベル付けされた信号を搬送するコヒーレントスレーブポート322及び323に接続された第3の出力と、「Wake」とラベル付けされた信号を搬送するコヒーレントスレーブポート322及び323に接続された第4の出力と、第5及び第6の出力と、を有する。クロックゲート回路352は、「FCLK」とラベル付けされたデータファブリッククロック信号を受信するための入力と、ローカルC状態コントローラ351の第5の出力に接続された制御入力と、選択的にゲートされたクロック信号をデータファブリック260に提供するための出力と、を有する。パワーゲート(登録商標)回路353は、「VDD」とラベル付けされたデータファブリック電源電圧を受信するための入力と、ローカルC状態コントローラ351の第6の出力に接続された制御入力と、選択的にゲート制御された電源電圧をデータファブリック260に提供するための出力と、を有する。
【0033】
プローブフィルタクロックゲート354は、クロックゲート回路352からクロック信号FCLKを受信する入力(図示せず)と、プローブフィルタ360に接続された出力と、を有する。プローブフィルタクロックゲート354は、C状態コントローラ351の制御下で選択的に動作して、プローブフィルタ360へのクロック信号をゲートして、保持低電力状態を提供する。保持低電力状態では、プローブフィルタ354へのクロック信号はゲートされるが、電力はプローブフィルタに維持され、これについては以下でさらに説明する。
【0034】
概して、データファブリック260は、リクエスタ(CPUコア、GPU、リアルタイムクライアントコントローラ等)とレスポンダ(メモリコントローラ及びPHYを介した外部メモリ、オンチップメモリ等)との間でメモリアクセス要求及び応答をルーティングする。いくつかのシナリオでは、データファブリック260は、プローブフィルタがクロックゲーティングされるが電力を保持する保持低電力状態を実装する。この保持低電力状態は、プローブフィルタ360がパワーゲート(登録商標)されないが、代わりにクロックゲートされるC状態とともに使用される。レベル3キャッシュ等のCCX220のためのキャッシュは、この保持低電力状態が採用されるいくつかのシナリオではフラッシュされるが、他のシナリオではフラッシュされない。
【0035】
電力コントローラ回路350は、複数の指定された条件の何れかを検出することに応じて、プローブフィルタ360への電力が維持されている間にプローブフィルタへのクロック信号がゲートされる保持低電力状態にプローブフィルタを入らせるように動作可能である。保持低電力状態に入ることは、コヒーレントスレーブコントローラ322及び323が、新しいプローブフィルタルックアップを禁止することと、全ての処理中のプローブフィルタルックアップが完了した場合に電力状態制御回路構造にシグナリングすることと、を含む。
【0036】
この実施形態では、C状態コントローラ351及びプローブフィルタクロックゲート354は、プローブフィルタの保持低電力状態を提供するように動作する電力状態制御回路構造を含む。この状態は、この実施形態のC状態の間の選択された時間、及び、データファブリック260がアクティブである選択された時間に使用される。この状態の使用は、プローブフィルタ360が、それらのクロック信号をゲーティングすることによって、使用されていない場合に電力を節約するが、プローブフィルタデータを保持するためにそれらの電力供給を維持することを可能にする。C状態コントローラ351の電力状態制御回路構造は、複数の指定された条件の何れかを検出することに応じて、プローブフィルタ360を保持低電力状態に入らせるように動作可能である。以下でさらに説明するように、保持低電力状態に入るプロセスは、コヒーレントスレーブポート322又は323内のもの等のコヒーレントスレーブコントローラが、新しいプローブフィルタルックアップを禁止し、全ての処理中のプローブフィルタルックアップが完了した場合に「ウェイク」信号をデアサートすることによって電力状態制御回路構造にシグナリングすることを含む。
【0037】
この実施形態では、3つの指定された条件の各々が、プローブフィルタ360を保持低電力状態に入らせることができる。これらは、プローブフィルタクライアントである全てのリクエスタがそれらのキャッシュをフラッシュした第1の状態、APU200若しくは他のホストデータプロセッサ又はデータファブリック260がアイドル電力状態に入った第2の状態、及び、データプロセッサが、プライマリ非コヒーレントリクエスタのみがアクティブである低電力状態に入った第3の状態を含む。いくつかの実施形態では、これらの条件のうち1つ又は2つのみがサポートされる。
【0038】
図4は、例示的な実施形態による、保持低電力状態に入るためのプロセスを示すフローチャート400である。図示したプロセスは、ローカルC状態コントローラ351の制御下にあるデータファブリック260又はプローブフィルタクロックゲーティング機能及びローカルC状態コントローラ351等と同様の適切な電力状態コントローラ電力状態制御回路構造を含む他の適切なデータファブリック回路による実装に適している。
【0039】
図示されたプロセスはブロック402で開始し、ローカル電力状態コントローラは、プローブフィルタクライアントリクエスタがそれらのキャッシュをフラッシュし、アイドル状態に入ったという指定された条件を検出する。いくつかの実施形態では、プローブフィルタクライアントは、CPUリクエスタのみ又はCPU及びGPUリクエスタのみを含む。この実施形態において指定された条件を検出することは、システムレベル電力状態コントローラから信号を受信することを含む。
【0040】
それに応じて、ブロック404において、ローカル電力状態コントローラは、「フラッシュ」信号(図3)をアサートして、コヒーレントスレーブコントローラに、プローブフィルタの保持低電力状態へ入ること(低電力状態保持へのエントリ)を開始するようにシグナリングする。示されたシナリオでは、この信号は、コヒーレントスレーブコントローラがプローブフィルタルックアップを禁止するためのコマンドとして機能する。この例では複数のコヒーレントスレーブコントローラが説明されているが、いくつかの実施形態では、プロセスは1つのコヒーレントスレーブコントローラのみとともに使用される。この信号を受信すると、ブロック406において、コヒーレントスレーブコントローラは、新しいプローブフィルタルックアップを禁止し始める。キャッシュがフラッシュされているので、ブロック405において、コヒーレントスレーブコントローラは、以前にキャッシュ可能であったメモリアドレスに対する全ての要求をキャッシュミスとして扱い、プローブフィルタルックアップを生成しないことが可能である。
【0041】
ブロック408で、コヒーレントスレーブコントローラは、新しいプローブフィルタルックアップを禁止するコマンドがブロック404で受信された場合に処理中であった全てのプローブフィルタルックアップを完了する。これらの処理中のルックアップが完了すると、ブロック410において、コヒーレントスレーブコントローラは、ウェイク信号をデアサートして、処理中のルックアップが完了したことを電力状態コントローラにシグナリングする。
【0042】
デアサートされたウェイク信号を受信すると、ローカル電力状態コントローラは、ブロック412において、少なくともローカル電力状態コントローラからコヒーレントスレーブコントローラへの往復シグナリング遅延の遅延時間だけ待機する。次いで、ブロック414において、ローカル電力状態コントローラは、ディセーブル信号をアサートすることによって全てのプローブフィルタルックアップをディセーブルするように、コヒーレントスレーブコントローラに信号を送る。また、それは、プローブフィルタへのクロック信号をゲートするためにクロックゲート354をアクティブ化することによって、プローブフィルタを保持低電力状態にする。保持低電力状態では、プローブフィルタ電源が維持され、プローブフィルタは、そこに保持されたキャッシュライン状態データを維持する。
【0043】
図5は、図4の保持低電力状態を出るためのプロセスを示すフローチャート500である。保持低電力状態に入ること及び保持低電力状態から出ることを制御するために使用されるフラッシュ信号、ディセーブル信号及びウェイク信号(図3)は、いくつかの指定された条件のうち何れが状態に入ることを促すかに従って、様々なシナリオにおいて保持低電力状態に入ること及び保持低電力状態から出ることを可能にする。図5のプロセスは、ブロック402(図4)のアイドル状態条件が保持低電力状態に入った場合の終了のために使用される。
【0044】
ブロック502で、プロセスは、CPUにアイドル状態を終了させるCPU割り込みに応じて開始される。この実施形態では、SOC STATE信号は、このステータスをローカルC状態コントローラ351に提供する。他の実施形態では、同様の信号がローカル電力状態コントローラに提供される。この信号を受信することに応じて、ローカル電力状態コントローラは、プローブフィルタへのクロック信号を復元し、ローカル電力状態コントローラからコヒーレントスレーブコントローラへの往復シグナリング遅延時間を待つ。
【0045】
次いで、ブロック506において、ローカル電力状態コントローラは、ディセーブル信号をデアサートすることによってプローブフィルタルックアップのサービス提供を再開するように、コヒーレントスレーブコントローラにシグナリングする。最後に、アイドル状態から出るCPUプロセスの一部として、コヒーレントマスタポートを開くことによってデータファブリックに再接続する。この接続に応じて、ローカル電力状態コントローラは、コヒーレントスレーブコントローラへのFlushed信号をデアサートし、コヒーレントスレーブコントローラにプローブフィルタルックアップの実行を再開させる。
【0046】
図6は、別の例示的な実施形態による、保持低電力状態に入るための別のプロセスのフローチャート600である。図示したプロセスは、ローカルC状態コントローラ351又は他の適切なデータファブリック回路の制御下にあるデータファブリック260を用いた実装に適している。
【0047】
ブロック602において、プロセスは、CPUのためのフラッシュされたキャッシュを含まないAPUのアイドル状態中に、上述したC状態等の低電力状態に入るための条件を検出する。CPUキャッシュがフラッシュされていないので、保持低電力状態に入るプロセスは、図4のプロセスとは異なる。
【0048】
ブロック604において、ローカル電力状態コントローラは、ウェイク信号がアサートされているかどうかを判定する。そうである場合、コヒーレントスレーブコントローラがプローブフィルタルックアップを処理していることを示し、プロセスはブロック605に進み、そこで、保持低電力状態に入ることを一時的に中止し、ウェイク信号がデアサートするのを待つ。ウェイク信号がブロック604においてアサートされない場合(又はブロック605においてデアサートされる場合)、プロセスはブロック606に進み、ここで、ディセーブル信号をアサートすることによってプローブフィルタルックアップをディセーブルするように、コヒーレントスレーブコントローラに信号を送る。
【0049】
次いで、ブロック608において、ローカル電力状態コントローラは、ローカル電力状態コントローラからコヒーレントスレーブコントローラへの往復シグナリング遅延時間を待つ。この待機に続いて、ブロック610においてウェイク信号がアサートされているかどうかを再びチェックする。そうでない場合、プロセスはブロック612に進む。そうである場合、ローカル電力状態コントローラは、ブロック611においてディセーブル信号をデアサートし、ブロック613においてウェイク信号がデアサートするのを待つために、保持低電力状態に入るプロセスをアボートする。次に、ブロック614において、データファブリックは、上述したC状態等の低電力状態にされる。
【0050】
図示されたシーケンスは、データファブリックがアイドル状態からC状態に移動することを可能にする一方で、コヒーレント要求が遷移プロセス中に発生した場合にコヒーレント要求がサービスされることを可能にするという追加の利点を有する。
【0051】
図7は、例示的な実施形態による、保持低電力状態を出て入るための別のプロセスを示すフローチャート700である。図示したプロセスは、ローカルC状態コントローラ351又は他の適切なデータファブリック回路の制御下にあるデータファブリック260を用いた実装に適している。好ましくは、図示されたプロセスは、スタッタリングクライアントからのコヒーレントな要求に対するプローブフィルタルックアップを提供する能力を提供するために、図6のプロセスと組み合わせてサポートされる。図4の開始プロセス及び図5の終了プロセスのサポートも、図6図7又はその両方のプロセスと組み合わせて使用するのに有利である。
【0052】
フローチャート700を参照すると、プロセスは、データファブリックがアイドル状態から出て、スタッタリングクライアントデータトラフィックをサービスする場合に、ブロック702で始まる。スタッタリングクライアントは、それらの要求の大部分がコヒーレント要求ではないので、データファブリック上のプライマリ非コヒーレントリクエスタであると考えられる。このシナリオの開始時に、CPUクライアントはアイドルであり、スタッタリングクライアントのみがアクティブである。この状態は、プローブフィルタクライアントであるリクエスタに結合されたファブリックデータポートの切断条件を検出することによって検出することができる。スタッタリングクライアントからのトラフィックは、典型的には非コヒーレントであるが、そのようなクライアントからのトラフィックのわずかな割合がコヒーレントであり得る。したがって、これらのクライアントは、プライマリ非コヒーレント(primarily non-coherent)と呼ばれる。そのようなコヒーレント要求は稀であるので、プローブフィルタは、有害な追加のレイテンシ性能ペナルティを被ることなく、そのような要求にサービスするために保持低電力状態を出ることができる。
【0053】
ブロック704において、コヒーレントスレーブコントローラは、プローブフィルタが保持低電力状態にある間にコヒーレント要求を受信する。このコヒーレント要求に応じて、コヒーレントスレーブコントローラは、ブロック706で、ローカル電力状態コントローラにウェイク信号をアサートする。
【0054】
次いで、ブロック708において、ローカル電力状態コントローラは、例えば、クロックゲート354(図3)を動作させることによって、プローブフィルタへのクロック信号を復元する。次に、ローカル電力状態コントローラからコヒーレントスレーブコントローラへの往復シグナリング遅延を待つ。待機の後、ブロック710において、ローカル電力状態コントローラは、コヒーレントスレーブコントローラに信号を送り、ディセーブル信号をデアサートすることによって、コヒーレント要求に対するプローブフィルタルックアップの生成及びサービス提供を再開する。ブロック702~710のシーケンスは、図6のプロセスに従って入った保持低電力状態から出るのにも適している。
【0055】
ブロック712において、ローカル電力状態コントローラは、要求がスタッタリングクライアントからのものであるかどうかを判定する。この決定は、データファブリックの状態と、要求が受信されるポートと、に基づくことが好ましい。そうでない場合、プロセスはブロック713に進み、ここでプローブフィルタは、プローブフィルタルックアップをサービスするために動作状態に維持される。そうである場合、プロセスはブロック714に進み、コヒーレントスレーブは、スタッタリングクライアントからのコヒーレント要求をサービスし、プローブフィルタルックアップを生成し、プローブフィルタから結果を受信する。スタッタクライアントがスタッタリングの現在のサイクルに対するデータ転送を完了すると、ブロック716において、スタッタクライアントは、ローカル電力状態コントローラにスタッタデータ転送が完了したことを知らせる。
【0056】
これに応じて、ブロック718において、ローカル電力状態コントローラは、コヒーレントスレーブコントローラに、ディセーブル信号をアサートすることによってプローブフィルタルックアップをディセーブルするように信号を送り、プローブフィルタへのクロック信号をゲートして、プローブフィルタを保持低電力状態に置く。次いで、ブロック720において、ローカル電力状態コントローラは、データファブリックをアイドル状態に再び入らせ、これは、スタッタークライアントデータ転送の次のサイクルまで続く。
【0057】
理解され得るように、スタッタリングクライアントが、ブロック704に示されるように、任意のコヒーレント要求を行わない場合、上述したC状態の間にしばしばそうであるように、プローブフィルタは、保持低電力状態を出ることを要求されず、さらなる電力節約が実現される。
【0058】
図2のSOC210又はデータファブリック260等のその任意の部分は、プログラムによって読み取られ、集積回路を製造するために直接的又は間接的に使用され得るデータベース又は他のデータ構造の形態のコンピュータアクセス可能データ構造によって記述又は表現され得る。例えば、このデータ構造は、Verilog又はVHDL等の高レベル設計言語(high-level design language、HDL)におけるハードウェア機能の挙動レベル記述又はレジスタ転送レベル(register-transfer level、RTL)記述であってもよい。記述は、合成ライブラリからゲートのリストを含むネットリストを生成するために記述を合成することができる合成ツールによって読み取ることができる。ネットリストは、集積回路を含むハードウェアの機能も表すゲートのセットを含む。ネットリストは、次いで、マスクに適用される幾何学的形状を記述するデータセットを生成するために配置され、ルーティングされ得る。次いで、マスクを様々な半導体製造工程で使用して、集積回路を製造することができる。代替的に、コンピュータアクセス可能記憶媒体上のデータベースは、所望に応じて、ネットリスト(合成ライブラリの有無にかかわらず)若しくはデータセット、又は、グラフィックデータシステム(Graphic Data System、GDS)IIデータであり得る。
【0059】
特定の実施形態を説明してきたが、これらの実施形態に対する様々な修正が当業者には明らかである。本明細書で開示されるプローブフィルタのための保持低電力状態とともに使用される様々な技術は、独立して又は他の技術とともに使用され得る。さらに、異なる技術及び回路を使用して、保持低電力状態に入る条件を検出することができる。
【0060】
したがって、添付の特許請求の範囲は、開示された実施形態の範囲に含まれる開示された実施形態の全ての変更を網羅することを意図している。
図1
図2
図3
図4
図5
図6
図7