(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-14
(54)【発明の名称】インバンド通信インターフェースの電力管理フェンス
(51)【国際特許分類】
G06F 1/3287 20190101AFI20240806BHJP
G06F 1/3209 20190101ALI20240806BHJP
【FI】
G06F1/3287
G06F1/3209
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024500486
(86)(22)【出願日】2022-07-08
(85)【翻訳文提出日】2024-02-02
(86)【国際出願番号】 IB2022056343
(87)【国際公開番号】W WO2023281464
(87)【国際公開日】2023-01-12
(32)【優先日】2021-07-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】チ ヤン ハーバート シェック
(72)【発明者】
【氏名】コスタンティノス ダニー クリスティディス
【テーマコード(参考)】
5B011
【Fターム(参考)】
5B011EA02
5B011KK03
5B011KK12
5B011LL11
(57)【要約】
構成要素間のデータ転送プロトコルに効率的な電力管理を提供するための装置及び方法が開示される。ソースは、要求を生成し、デスティネーションは、要求をサービスする。ソース及びデスティネーションは、要求のタイプごとに転送チャネル及び1つ以上のトランザクションチャネルの両方を含む通信プロトコルをサポートする。ソース及びデスティネーションは、転送チャネルの有効信号及びレディ信号に依存して、電力消費を自律的に管理する。ソース及びデスティネーションは、外部電力管理への依存関係を全て除去し、電力管理をサポートするために通信プロトコルに信号拡張機能を追加する必要をなくす。
【選択図】
図5
【特許請求の範囲】
【請求項1】
装置であって、
複数の転送チャネルを管理するように構成されたインターフェースであって、各転送チャネルは、前記装置が要求を処理する準備ができているかどうかを示す第1の信号を含む、インターフェースと、
受信した要求を処理するように構成された処理ユニットと、
電力制御ユニットと、を備え、
前記電力制御ユニットは、
前記処理ユニットが要求を処理するか否かの変更を引き起こすイベントが発生したと判定したことに少なくとも部分的に基づいて、
前記処理ユニットの電源投入又は電源切断を自律的に実行することによって、前記処理ユニットの電力管理状態を調整することと、
前記複数の転送チャネルの各々の前記第1の信号を、前記処理ユニットの電力管理状態に基づいて、前記装置が要求を処理する準備ができているかどうかを示す状態に維持することと、
を行うように構成されている、
装置。
【請求項2】
前記インターフェースは、前記複数の転送チャネルとは異なる複数のトランザクションチャネル上で、要求の対象となる1つ以上のデータの転送及び前記要求の完了ステータスを管理するように構成されている、
請求項1の装置。
【請求項3】
前記電力制御ユニットは、
発生したイベントがアイドル条件を含むと判定したことに少なくとも部分的に基づいて、
前記処理ユニットを自律的に電源切断して、要求を処理するのを停止する非動作状態にすることと、
前記複数の転送チャネルの各々の前記第1の信号を、前記装置が要求を処理する準備ができていないことを示す状態に維持することと、
を行うように構成されている、
請求項1の装置。
【請求項4】
前記アイドル条件が発生したと判定することは、特定のタイプの要求が閾値期間にわたって受信されていないと判定したことを含む、
請求項3の装置。
【請求項5】
前記複数の転送チャネルの各々は、前記特定のタイプの要求を送信する準備ができているかどうかを示す第2の信号を含む、
請求項4の装置。
【請求項6】
前記電力制御ユニットは、
発生したイベントが電源投入条件を含むと判定したことに少なくとも部分的に基づいて、
前記処理ユニットを自律的に電源投入して、要求を処理するのを許可する動作状態にすることと、
前記複数の転送チャネルの各々の前記第1の信号を、前記装置が要求を処理する準備ができていることを示す状態に維持することと、
を行うように構成されている、
請求項1の装置。
【請求項7】
前記電源投入条件は、受信された要求の数が閾値を超えていると判定したことを含む、
請求項6の装置。
【請求項8】
方法であって、
デスティネーションが、複数の転送チャネルを管理することであって、各転送チャネルは、前記デスティネーションが要求を処理する準備ができているかどうかを示す第1の信号を含む、ことと、
前記デスティネーションが要求をサービスするか否かの変更を引き起こすイベントが発生したと判定したことに応じて、
前記処理ユニットの電源投入又は電源切断を自律的に実行することによって、前記処理ユニットの電力管理状態を調整することと、
前記複数の転送チャネルの各々の前記第1の信号を、前記処理ユニットの電力管理状態に基づいて、前記装置が要求を処理する準備ができているかどうかを示す状態に維持することと、を含む、
方法。
【請求項9】
前記複数の転送チャネルの各々の前記第1の信号が、閾値期間にわたって、前記デスティネーションが要求を処理する準備ができていないことを示すと判定したことに応じて、ソースが、前記デスティネーションによって処理される要求の生成を自律的に低減することを含む、
請求項8の方法。
【請求項10】
発生したイベントがアイドル条件を含むと判定したことに応じて、
前記処理ユニットを自律的に電源切断して、要求を処理するのを停止する非動作状態にすることと、
前記複数の転送チャネルの各々の前記第1の信号を、前記装置が要求を処理する準備ができていないことを示す状態に維持することと、を含む、
請求項8の方法。
【請求項11】
前記アイドル条件が発生したと判定することは、特定のタイプの要求が、閾値期間にわたって、ソースによって前記デスティネーションに送信される準備ができていないと判定することを含む、
請求項10の方法。
【請求項12】
前記複数の転送チャネルの各々は、前記特定のタイプの要求が処理のために前記デスティネーションに送信される準備ができているかどうかを示す第2の信号を含む、
請求項11の方法。
【請求項13】
発生したイベントが電源投入条件を含むと判定したことに応じて、
前記処理ユニットを自律的に電源投入して、要求を処理するのを許可する動作状態にすることと、
前記複数の転送チャネルの各々の前記第1の信号を、前記装置が要求を処理する準備ができていることを示す状態に維持することと、を含む、
請求項8の方法。
【請求項14】
前記電源投入条件は、受信された要求の数が閾値を超えていると判定したことを含む、
請求項13の方法。
【請求項15】
コンピューティングシステムであって、
デスティネーションと、
前記デスティネーションに結合された複数の転送チャネルであって、各転送チャネルは、前記デスティネーションが要求を処理する準備ができているかどうかを示す第1の信号を含む、複数の転送チャネルと、を備え、
前記デスティネーションは、
受信した要求を処理するように構成された処理ユニットと、
電力制御ユニットと、を備え、
前記電力制御ユニットは、
前記処理ユニットが要求を処理するか否かの変更を引き起こすイベントが発生したと判定したことに少なくとも部分的に基づいて、
前記処理ユニットの電源投入又は電源切断を自律的に実行することによって、前記処理ユニットの電力管理状態を調整することと、
前記複数の転送チャネルの各々の前記第1の信号を、前記処理ユニットの電力管理状態に基づいて、前記装置が要求を処理する準備ができているかどうかを示す状態に維持することと、
を行うように構成されている、
コンピューティングシステム。
【請求項16】
前記電力制御ユニットは、
発生したイベントがアイドル条件を含むと判定したことに少なくとも部分的に基づいて、
前記処理ユニットを自律的に電源切断して、要求を処理するのを停止する非動作状態にすることと、
前記複数の転送チャネルの各々の前記第1の信号を、前記デスティネーションが要求を処理する準備ができていないことを示す状態に維持することと、
を行うように構成されている、
請求項15のコンピューティングシステム。
【請求項17】
前記アイドル条件が発生したと判定することは、特定のタイプの要求が、閾値期間にわたって、ソースから前記デスティネーションに送信される準備ができていないと判定することを含む、
請求項16のコンピューティングシステム。
【請求項18】
前記複数の転送チャネルの各々は、前記特定のタイプの要求が処理のために前記デスティネーションに送信される準備ができているかどうかを示す第2の信号を含む、
請求項17のコンピューティングシステム。
【請求項19】
前記電力制御ユニットは、
発生したイベントが電源投入条件を含むと判定したことに少なくとも部分的に基づいて、
前記処理ユニットを自律的に電源投入して、要求を処理するのを許可する動作状態にすることと、
前記複数の転送チャネルの各々の前記第1の信号を、前記デスティネーションが要求を処理する準備ができていることを示す状態に維持することと、
を行うように構成されている、
請求項15のコンピューティングシステム。
【請求項20】
前記電源投入条件は、受信された要求の数が閾値を超えていると判定したことを含む、
請求項19のコンピューティングシステム。
【発明の詳細な説明】
【背景技術】
【0001】
(関連技術の説明)
現代の集積回路(integrated circuit、IC)の電力消費は、半導体チップの世代ごとに増大する設計課題となっている。電力消費が増加するにつれて、過剰な熱を除去してICの故障を防ぐために、より大型のファン及びヒートシンク等のより高価な冷却システムを利用しなければならない。しかしながら、冷却システムは、システムコストを増加させる。ICの電力損の抑制は、ポータブルコンピュータ及びモバイル通信デバイスにとって課題であるだけでなく、高性能マイクロプロセッサを利用するデスクトップコンピュータ及びサーバにとっても課題である。これらのマイクロプロセッサは、複数のプロセッサコア又はコア、及び、コア内の複数のパイプラインを含む。
【0002】
様々なサーバ等の様々なコンピューティングデバイスは、システム機能を提供するために複数のタイプのICを統合する異種統合(heterogeneous integration)を利用する。複数の機能は、オーディオ/ビデオ(audio/video、A/V)データ処理、医療及びビジネス分野のための他の高度なデータ並列アプリケーション、汎用命令セットアーキテクチャ(instruction set architecture、ISA)の命令処理、デジタル、アナログ、混成信号、及び、高周波(radio-frequency、RF)機能等を含む。複数のタイプのICを統合するためのシステムパッケージングについて、様々な選択が存在する。いくつかのコンピューティングデバイスでは、システムオンチップ(system-on-a-chip、SOC)が使用され、その一方で、他のコンピューティングデバイスでは、より小型でより高い歩留まりのチップが、マルチチップモジュール(multi-chip module、MCM)内の大型チップとしてパッケージングされる。更に、他の機構は、システムインパッケージ(system-in-package、SiP)内の2つ以上のダイを垂直に積層し、電気的に接続する。システムパッケージングの選択にかかわらず、コンピューティングシステムの電源切断がより複雑になる。
【0003】
上記の観点から、構成要素間のデータ転送プロトコルのための効率的な電力管理を実行するための効率的な方法及びシステムが望まれる。
【図面の簡単な説明】
【0004】
【
図1】通信インターフェースの一般化された図である。
【
図2】チャネルの通信プロトコルに従った書き込み動作の信号波形の一実施形態の一般化された図である。
【
図3】チャネルの通信プロトコルに従った読み取り動作の信号波形の一実施形態の一般化された図である。
【
図4】コンピューティングシステムの一実施形態の一般化された図である。
【
図5】デスティネーション回路の自律的電源切断を効率的に実行するための方法の一実施形態の一般化された図である。
【
図6】デスティネーション回路の自律的電源投入を効率的に実行するための方法の一実施形態の一般化された図である。
【
図7】ソース回路の自律的電源切断を効率的に実行するための方法の一実施形態の一般化された図である。
【
図8】ソース回路の自律的電源投入を効率的に実行するための方法の一実施形態の一般化された図である。
【発明を実施するための形態】
【0005】
本発明は、様々な修正及び代替形態の余地があるが、具体的な実施形態が例として図面に示されており、本明細書で詳細に説明される。しかしながら、図面及びその詳細な説明は、開示された特定の形態に本発明を限定することを意図するものではなく、逆に、本発明は、添付の特許請求の範囲によって定義される本発明の範囲に含まれる全ての修正、均等物及び代替物を包含するものであることを理解されたい。
【0006】
以下の説明では、本発明の十分な理解を提供するために、多数の具体的な詳細が記載されている。しかしながら、当業者は、これらの具体的な詳細なしに本発明が実施され得ることを認識すべきである。いくつかの例では、本発明を不明瞭にすることを避けるために、周知の回路、構造及び技術が詳細に示されていない。更に、説明の簡略性及び明確性のために、図に示される要素は、必ずしも縮尺どおりに描画されていないことが理解されよう。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている。
【0007】
構成要素間のデータ転送プロトコルに効率的な電力管理を提供する装置及び方法が企画される。ソースは要求を生成し、デスティネーションは要求を処理(services)する。一実施形態では、ソースはビデオデコーダであり、デスティネーションはメモリコントローラのハブである。他の実施形態では、コンピューティングシステムにおいて、ソースは、様々なタイプの処理ユニットのうち何れかであり、デスティネーションは、様々なタイプのエンドポイントのうち何れかである。ソース及びデスティネーションのインターフェースは、それらの間で転送される信号のための通信プロトコルをサポートする。いくつかの実施形態では、通信プロトコルは、アームアドバーンストマイクロコントローラバスアーキテクチャ(Arm Advanced Microcontroller Bus Architecture、AMBA)オンチップ相互接続仕様のアドバーンストエクステンシブルインターフェース(Advanced extensible Interface、AXI)プロトコルである。ソース及びデスティネーションが通信プロトコルの他の例をサポートすることが可能であり、企図される。
【0008】
様々な実施形態では、通信プロトコルには、アクセス要求(又は要求)のタイプごとに転送チャネル及び1つ以上のトランザクションチャネルの両方が含まれる。アクセス要求のタイプは、読み取りアクセス要求及び書き込みアクセス要求である。本明細書で使用される場合、「転送チャネル」とは、アクセス要求の対象となるデータがソースとデスティネーションの間で交換される前に、デスティネーションがアクセス要求を処理する準備ができているかどうかを判定するために使用される制御信号を含む、ソースとデスティネーションとの間のチャネルを指す。制御信号の例は、有効信号及びレディ信号である。有効信号は、ソースが、処理のためにデスティネーションに送信される準備ができている特定のタイプの要求を有するかどうかを指し示す。レディ信号は、デスティネーションが要求を処理する準備ができているかどうかを指し示す。一例では、書き込み転送チャネルの書き込み有効信号が、処理のためにソースからデスティネーションに送信する準備ができている書き込み要求をソースが有することを指し示す状態にある場合に、書き込み転送チャネルの書き込み有効信号がアサートされる。書き込み転送チャネルの書き込みレディ信号が、デスティネーションが書き込み要求を処理する準備ができていることを指し示す状態にある場合に、書き込み転送チャネルの書き込みレディ信号がアサートされる。読み取り転送チャネルの制御信号も同様の方式でアサートされる。
【0009】
本明細書で使用される場合、「トランザクションチャネル」とは、要求の対象となる1つ以上のデータと、対応する転送チャネルでデスティネーションが要求を処理する準備ができていることをデスティネーションが指し示した後に要求の完了ステータスを交換(転送)する、ソースとデスティネーションとの間のチャネルを指す。一例では、書き込み要求は、書き込み転送チャネル、書き込みデータトランザクションチャネル及び書き込み応答トランザクションチャネルを使用する。読み取り要求は、読み取り転送チャネル及び読み取り応答トランザクションチャネルを使用する。
【0010】
一実施形態では、ソース及びデスティネーションは、少なくとも動作状態及び非動作状態を含む複数の電力管理状態をサポートする。デスティネーションがソースによって生成された要求を処理する場合に、デスティネーションは動作状態を使用する。動作状態では、デスティネーションは、複数の電力性能状態(P-状態)のうち何れかを使用する。P-状態は、少なくとも動作電圧及び動作クロック周波数を含む。より高い性能のP-状態は、より大きい動作電圧及びより大きい動作クロック周波数を使用する。デスティネーションが要求を処理しない場合に、デスティネーションは非動作状態を使用する。非動作状態では、デスティネーションは、複数のP-状態のうち1つ以上の複数のスリープ状態の何れかを使用する。スリープ状態は、動作電圧又は動作クロック周波数がゼロであるかどうか、電源生成回路がオフか切断されているか、クロック生成回路がオフか切断されているか、特定の状態情報が維持されているかどうか等を指し示す。より深いスリープ状態では、デスティネーションは電力消費を更に低減するが、ウェイクアップして動作状態に移行して要求を再び処理する準備ができるようになるまでの時間が長くなる。いくつかの実施形態では、ソースとデスティネーションは、Advanced Configuration and Power Interface(ACPI)仕様の電力管理状態をサポートする。例えば、動作状態は、ACPI仕様のC0状態とすることができ、この場合、複数のP-状態のうち何れかが、要求を処理する間に使用される。非動作状態は、低性能P-状態であるように選択された複数のP-状態のうち何れかであり得る。付加的に、非動作状態は、ACPI仕様のC1、C2、...、Cnスリープ状態のうち何れかであり得る。
【0011】
デスティネーションが要求を処理するかどうかの変更を引き起こすイベントが発生したとデスティネーションが判定すると、デスティネーションは、デスティネーションの電源投入又は電源切断を自律的に実行することにより、動作状態と非動作状態の何れかを含むデスティネーションの状態を調整する。例えば、ソースからの要求を待っている間に、デスティネーションが、アイドル条件が発生したと判定すると、デスティネーションは、自律的に電源切断する(例えば、非動作状態に)。本明細書で使用される場合、電源切断又は電源投入等の動作を「自律」方式で実行することは、外部電力管理、集中コントローラ又は他の同様のユニットと対話することなく独立して動作を実行することを指す。例えば、デスティネーションは、外部の電力管理と対話することなく、ローカル回路にデスティネーションの1つ以上の構成要素の性能の低い電力性能状態(P-状態)を選択させることによって、自律電源切断を実行する。言い換えれば、デスティネーションは、外部電力管理に通知するか又は外部電力管理からの許可を待つことなく、この選択を実行する。デスティネーションは、外部電力管理に通知するか又は外部電力管理からの許可を待つことなく、複数のスリープ状態のうち何れかを選択することにより自律電源切断を実行することもできる。加えて、デスティネーションは、転送チャネルのレディ信号をネゲートされたままに維持する。言い換えれば、デスティネーションは、デスティネーションが要求を処理する準備ができていないことを指し示す状態でレディ信号を維持する。したがって、ソースは、デスティネーションが要求を処理する準備ができていないことを認識している。
【0012】
アイドル条件の一例は、転送チャネルの有効信号が閾値期間にわたってネゲートされているとデスティネーションが判定することである。ネゲートにされた有効信号は、ソースが処理に対する特定のタイプの要求を有していないことをデスティネーションに通知する。書き込み転送チャネルの書き込み有効信号の各々は、ソースが送信する書き込み要求を有しないことを指し示し、読み取り転送チャネルの読み取り有効信号は、ソースが送信する読み取り要求を閾値期間中に有しないことを指し示している場合、デスティネーションは、アイドル条件が発生したと判定する。
【0013】
ソースは、書き込み転送チャネルの書き込みレディ信号及び読み取り転送チャネルの読み取りレディ信号の両方がネゲートされたままである期間を測定する。測定された期間が閾値に達した場合、ソースは、デスティネーションに送信する要求の生成を自律的に低減する。本明細書で使用されるように、デスティネーションに送信するためのソース「フェンス」要求(source “fencing” requests)は、デスティネーションに送信するための要求の生成をソースが自律的に低減することを指す。言い換えれば、ソースは、外部電力管理又は他のコントローラと対話することなく、要求の生成を低減する。
【0014】
デスティネーションが非動作状態にあり、受信された要求の数が閾値を超えると判定する場合に、デスティネーションは、電源投入条件が発生したと判定する。電源投入条件は、デスティネーションが要求を処理するかどうかの変更を引き起こすイベントである。デスティネーションが、電源投入条件が発生したと判定すると、デスティネーションは、要求の処理を可能にする動作状態に自律的に電源投入する。例えば、デスティネーションは、スリープ状態又はより低い性能のP-状態からより高い性能のP-状態に移行する。加えて、デスティネーションは、転送チャネルのレディ信号をアサートされたままに維持する。言い換えれば、デスティネーションは、デスティネーションが要求を処理する準備ができていることを指し示す状態でレディ信号を維持する。電力消費を管理するために通信プロトコルの転送チャネルの有効信号及びレディ信号等の制御信号を使用することにより、ソース及びデスティネーションは、外部電力管理又は他の集中コントローラへの依存関係を除去し、電力管理をサポートするために通信プロトコルに信号拡張を追加する必要がなくなる。
【0015】
図1を参照すると、コンピューテーションインターフェース100の一実施形態の一般化したブロック図が示されている。示されるように、通信インターフェース100は、チャネル122~130を介してデスティネーション140に電気信号として情報を送信するソース110を含む。同様に、デスティネーション140は、チャネル122~130を介してソース110に電気信号として情報を送信することができる。したがって、ソース110のインターフェース116及びデスティネーション140のインターフェース146の各々は、電気信号をドライブするための複数の発信機、及び、電気信号を受信するための複数の受信機を含む。ソース110及びデスティネーション140の各々は、様々な機能ブロックのうち何れかを表す。場合によっては、ソース110及びデスティネーション140は同じダイ内にある。他の場合には、ソース110及びデスティネーション140は個別のダイ上にある。例えば、一実施形態では、ソース110及びデスティネーション140は、システムオンチップ(SOC)等の集積回路(IC)上の個々のダイである。他の実施形態では、ソース110及びデスティネーション140は、システムインパッケージ(system-in-package、SiP)又はマルチチップモジュール(multi-chip module、MCM)における個々のダイである。
【0016】
ソース110は、処理ユニット112及び電力制御ユニット114を含む。単一の処理ユニットが示されているが、ソースが複数の処理ユニットを含むことが可能であり、企図される。処理ユニット112は、汎用プロセッサコア及びオンダイキャッシュメモリサブシステムの回路を含む様々な処理ユニットを表す。処理ユニット112の別の例には、かなりの数の並列実行レーンを有する高並列データマイクロアーキテクチャの回路が挙げられる。処理ユニット112の他の例には、特定用途向け集積回路(application specific integrated circuit、ASIC)、デジタル信号プロセッサ(digital signa processor、DSP)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)等のための回路が挙げられる。同様に、処理ユニット142の例には、同様の回路、並びに、周辺デバイス及びメモリ管理ハブ及びモジュール用の回路が挙げられる。
【0017】
5つのチャネル122~130が通信インターフェース100内に示されているが、別の数のチャネルが可能であり、企図される。「チャネル」という用語は「バス」とも呼ばれ、各チャネルは複数の伝送線を含むことに留意されたい。本明細書で使用される場合、「伝送線」は、「レーン」、「トレース」又は「ワイヤ」と呼ばれることもある。チャネル122~130の各々は、複数の伝送線を含む。チャネル122~130の伝送線は、半導体製造中に様々な好適な金属源から構築され、様々な任意の好適な絶縁材料によって囲まれる。
【0018】
様々な実施形態では、ソース110は、トランザクション又は要求のイニシエータであり、デスティネーション140は、トランザクションのコンプリータである。チャネル122~130は、特定の伝送線上で信号をドライブできる複数のソースを伝送線が有するバスではなく、ソース110とデスティネーション140との間でポイントツーポイント伝送線を使用する。チャネル122~130のうち特定のチャネルの複数のワイヤのうち1つ以上は単方向であり、データは、ソース110からデスティネーション140にドライブされる。
【0019】
書き込みアクセス要求(又は書き込み要求若しくは書き込み動作)の場合、ソース110は、対象アドレス、書き込みデータ及び有効な書き込みデータが送信されるときを指し示す少なくとも有効信号等の制御信号を含む情報をデスティネーション140に送信する。デスティネーション140は、書き込み要求のステータスを伴う肯定応答等の応答を含む情報をソース110に送信する。ソース110とデスティネーション140との間で送信される情報のタイミングは、インターフェース116及び146によってサポートされる通信プロトコルに基づく。同様に、読み取りアクセス要求(又は読み取り要求若しくは読み取り動作)の場合、ソース110は、少なくとも対象アドレスを含む情報をデスティネーション140に送信する。デスティネーション140は、読み取り応答データ等の応答及び読み取り要求のステータスを有する肯定応答を含む情報をソース110に送信する。ソース110とデスティネーション140との間で送信される情報のタイミングは、インターフェース116及び146によってサポートされる通信プロトコルに基づく。
【0020】
インターフェース116及び146の各々は、処理要求及び対応する応答を記憶するためのキューを含む。また、インターフェース116及び146は、チャネル122~130上の信号の発信及び受信のための特定の通信プロトコルをサポートする回路等のハードウェアを含む。通信プロトコルは、クロックサイクルごとに送信されるデータ量、信号電圧レベル、信号のタイミング、信号及びクロックの位相、クロック周波数等の情報を送信するために使用される値を判定する。通信プロトコルの例は、アームアドバーンストマイクロコントローラバスアーキテクチャ(AMBA)オンチップ相互接続仕様のアドバーンストエクステンシブルインターフェース(AXI)プロトコルである。インターフェース116及び146は、通信プロトコルの他の例をサポートすることが可能であり、企図される。
【0021】
インターフェース116及び146は、書き込み動作のためのチャネルのセットと、読み取り動作のためのチャネルの個別のセットと、をサポートする。インターフェース116及び146が書き込み動作及び読み取り動作のための2つの独立したチャネルのセットをサポートすることにより、通信インターフェース100の帯域幅及びその結果として生じる性能が増大する。例えば、インターフェース116及び146は、書き込み動作及び個別の読み取り動作の同時実行をサポートする。示されるように、書き込み動作の場合、インターフェース116及び146は、書き込み転送チャネル122、書き込みデータトランザクションチャネル124及び書き込み応答トランザクションチャネル126をサポートする。読み取り動作の場合、インターフェース116及び146は、読み取り転送チャネル128及び読み取り応答トランザクションチャネル130をサポートする。本明細書で使用される場合、「転送」は、単一の情報交換を指すことができるが、「トランザクション」は、情報のアドレス交換、情報の1つ以上のデータ交換、及び、ステータス情報の1つ以上の応答交換を含む1つの情報のバースト全体を指すことができる。転送及び対応するトランザクションの使用の例は、(
図2及び
図3の)信号波形200及び300の次の説明において提供される。
【0022】
いくつかの実施形態では、デスティネーション140の電力制御ユニット144は、処理ユニット142の1つ以上の構成要素についてそれぞれの電力性能状態(P-状態)を選択するハードウェアを利用する。P-状態は、少なくとも動作電圧及び動作クロック周波数を含む。電力制御ユニット144は、収集された情報のステータスを判定することに基づいて、1つ以上のP-状態を選択する。収集された情報の例は、所定のサンプル間隔中の所定のサンプリングされた信号、並びに、オンダイ電流センサ及び温度センサからの測定値である。追加の例は、書き込み転送チャネル122及び読み取り転送チャネル128のうち1つ以上の信号のうち何れかである。電力制御ユニット144は、アイドル条件が発生したと判定したことに基づいて、処理ユニット142の1つ以上の構成要素の自律的な電源切断を開始する。例えば、電力制御ユニット144は、処理ユニット142の1つ以上の構成要素を、要求の処理を停止する非動作状態に自律的に電源切断する。アイドル条件の一例は、書き込み転送チャネル122の特定の信号を検出することであり、読み取り転送チャネル128は、時間の閾値持続時間(又は期間)にわたってネゲートされている。一実施形態では、この特定の信号は、特定のタイプの動作がデスティネーション140によって処理される準備ができていることを指し示す、書き込み転送チャネル122及び読み取り転送チャネル128のレディ信号である。
【0023】
いくつかの実施形態では、転送チャネル122及び128の各々は、ソース110がデスティネーション140によって処理される準備ができている要求又は動作を有することを指し示すために、第1の信号を使用する。いくつかの例では、この第1の信号は、有効信号である。例えば、書き込み転送チャネル122は、アサートされた場合にソース110がデスティネーション140によって処理される準備ができている書き込み動作を有することを指し示す書き込み有効信号を含む。同様に、読み取り転送チャネル128は、アサートされた場合にソース110がデスティネーション140によって処理される準備ができている読み取り動作を有することを指し示す読み取り有効信号を含む。デスティネーション140の処理ユニット142が動作を処理する準備ができている場合に、インターフェース146は、転送チャネル122及び128のそれぞれの1つの第2の信号をアサートして、デスティネーション40が動作を処理する準備ができていることを指し示す。例えば、書き込み転送チャネル122は、アサートされた場合にデスティネーション140がソース110からの書き込み動作を処理する準備ができていることを指し示す書き込みレディ信号を含む。同様に、読み取り転送チャネル128は、アサートされた場合にデスティネーション140がソース110からの読み取り動作を処理する準備ができていることを指し示す読み取りレディ信号を含む。
【0024】
ソース110が転送チャネル122及び128のうち何れかでアサートされたレディ信号を受信すると、ソース110は、対応する有効信号をネゲートする。付加的に、ソース110は、処理される動作に対応する情報をデスティネーション140に送信する。電力制御ユニット144は、書き込み転送チャネル122の書き込み有効信号及び読み取り転送チャネル128の読み取り有効信号のうち何れかが閾値時間期間にわたってネゲートされている場合を検出する。それに応じて、電力制御ユニット144は、処理ユニット142の1つ以上の構成要素を自律的に電源切断する。例えば、電力制御ユニット144は、処理ユニット142の1つ以上の構成要素について、より低い性能のP-状態を選択する。代替的に、電力制御ユニット144は、処理ユニット142の1つ以上の構成要素にアイドル又はスリープ状態に移行するように指示し、処理ユニット142によって使用される1つ以上のクロック信号をディセーブルする。
【0025】
電力制御ユニット144は、これらのステップを外部電力管理から独立して実行する。したがって、電力制御ユニット144は、集中的且つ依存的な方式ではなく、分散され独立した方式でデスティネーション140の電力管理を実行する。同様に、ソース110の電力制御ユニット114は、書き込み転送チャネル122の書き込みレディ信号及び読み取り転送チャネル128の読み取りレディ信号のうち一方が閾値期間にわたってネゲートされている場合を検出する。これに応じて、電力制御ユニット114は、デスティネーション140によって処理される要求の生成を自律的に低減する。いくつかの実施形態では、電力制御ユニット114は、処理ユニット112の1つ以上の構成要素を電源切断する。例えば、電力制御ユニット114は、処理ユニット112の1つ以上の構成要素について、より低い性能のP-状態を選択する。代替的に、電力制御ユニット144は、処理ユニット112の1つ以上の構成要素にアイドル又はスリープ状態に移行するように指示し、処理ユニット112によって使用される1つ以上のクロック信号をディセーブルする。外部電力管理に依存しないことにより、電力制御ユニット114は、集中的且つ依存的な方式ではなく、分散的且つ独立した方式でソース110の電力管理を実行する。
【0026】
図2に戻ると、チャネルのための通信プロトコルによる書き込み動作の信号波形200の一実施形態の一般化されたブロック図が示されている。信号波形200は、ソース(又はイニシエータ)とデスティネーション(又はコンプリータ)との間の書き込み動作を実施する通信プロトコルによってサポートされる信号タイプ及び信号遷移を例示する。クロック202は、通信プロトコルによって設定された周波数を有するクロック信号であり、対応するクロックサイクルは、イベント間のタイミングを制御するために使用される。信号波形200は、書き込み転送チャネル210、書き込みデータトランザクションチャネル220及び書き込み応答トランザクションチャネル230を含む。書き込み転送チャネル210の書き込みレディ216信号がアサートされるまで、書き込みデータトランザクションチャネル220及び書き込み応答トランザクションチャネル230のイベントが開始されない。
【0027】
本明細書で使用される場合、回路ノード又は信号線は、ノード又は線が、電圧レベルを受け取るトランジスタをイネーブルする電圧レベルを記憶する場合に、「アサート」される。例えば、n型トランジスタは、論理ハイレベル等のソース端子上の電圧レベルを超える少なくとも閾値電圧である正の非ゼロ電圧レベルをゲート端子で受け取ると、イネーブルされる。本明細書で使用される場合、ブール論理高(ハイ)レベルは、論理高(ハイ)レベルとも呼ばれる。同様に、ブール論理低(ロー)レベルは、論理低(ロー)レベルとも呼ばれる。様々な実施形態では、論理高レベルは電源基準レベルに等しく、論理低レベルは接地基準レベルに等しい。一例では、書き込み転送チャネルの書き込み有効信号が、処理のためにソースからデスティネーションに送信する準備ができている書き込み要求をソースが有することを指し示す状態にある場合に、書き込み転送チャネルの書き込み有効信号がアサートされる。書き込み転送チャネルの書き込みレディ信号が、デスティネーションが書き込み要求を処理する準備ができていることを指し示す状態にある場合に、書き込み転送チャネルの書き込みレディ信号がアサートされる。読み取り転送チャネルの制御信号も同様の方式でアサートされる。
【0028】
本明細書で使用される場合、回路ノード又は線は、ノード又は線が、電圧レベルを受けるトランジスタをディセーブルする電圧レベルを蓄える場合に、「ネゲート」される。n型トランジスタは、n型トランジスタが、論理ローレベル等のソース端子上の電圧レベルを下回る閾値電圧である電圧レベルをゲート端子で受け取ると、ディセーブルされる。同様に、p型トランジスタは、p型トランジスタが、論理ローレベル等のソース端子上の電圧レベルを下回る少なくとも閾値電圧である電圧レベルをゲート端子で受け取ると、イネーブルされる。p型トランジスタは、p型トランジスタが、論理ハイレベル等のソース端子上の電圧レベルを超える少なくとも閾値電圧である電圧レベルをゲート端子で受け取ると、ネゲートされる。一例では、書き込み転送チャネルの書き込み有効信号が、処理するためにソースからデスティネーションに送信する準備ができている書き込み要求をソースが有しないことを指し示す状態にある場合に、書き込み転送チャネルの書き込み有効信号がネゲートされる。書き込み転送チャネルの書き込みレディ信号が、デスティネーションが書き込み要求を処理する準備ができていないことを指し示す状態にある場合に、書き込み転送チャネルの書き込みレディ信号がネゲートされる。読み取り転送チャネルの制御信号も同様の方式でネゲートされる。
【0029】
以下の説明では、論理ハイレベルは、信号がアサートされるものとして説明するために使用され、論理ローレベルは、信号がネゲートされるものとして説明するために使用される。しかしながら、他の実施形態では、反対の極性を使用することができる。書き込み転送チャネル210は、ソースとデスティネーションとの間で書き込み動作をいつ開始することができるかを判定する。ソースは、書き込みアドレス212信号(又は書き込みアドレス212)及び書き込み有効214信号(又は書き込み有効214)をドライブする。デスティネーションは、書き込みレディ216をドライブする。いくつかの実施形態では、ソースは、書き込み有効214とともに書き込みアドレス212を送信する。他の実施形態では、ソースは、書き込みアドレス212を書き込みデータトランザクションチャネル220の一部として送信し、書き込み識別子(ID)を書き込み転送チャネル210の一部として送信する。
【0030】
デスティネーションが書き込み有効214のアサートされた値を受信すると、デスティネーション内の回路は、デスティネーションがいつ対応する書き込み動作を処理することができるかを判定する。例えば、デスティネーションは、処理されている現在の動作のステータス、及び、他の未処理の動作のステータスをチェックする。デスティネーションが対応する書き込み動作を処理することができる場合に、デスティネーションは、アサートされた書き込みレディ216をソースに送信する。示された例では、ソースは、クロックサイクル2において書き込み有効214をアサートする。付加的に、ソースは、クロックサイクル2において、対応する書き込みアドレス212をデスティネーションに送信する。デスティネーションは、クロックサイクル3において書き込みレディ216をアサートすることによって応答する。したがって、クロックサイクル4において、ソース及びデスティネーションの各々は、書き込みアドレス212、書き込み有効214及び書き込みレディ216上の値をネゲートすることができる。これらのステップは、書き込み動作を開始するためのソースとデスティネーションとの間のハンドシェイクシーケンスを完了する。
【0031】
上記のシーケンスが完了した後、ソースは、書き込みデータを書き込みデータトランザクションチャネル220上でデスティネーションに送信する。書き込み動作のための一連のイベントの第1のイベントは、デスティネーションが書き込みデータレディ226をアサートすることである。通信プロトコルに応じて、ソースは、アサートされた書き込みデータ有効224を書き込みデータ222上のデータ値とともに送信する前に、クロックサイクル(又は複数のサイクル)を待たないか、又は、所定の数のサイクルを待つ。ここで、デスティネーションは、サイクル5においてアサートされた書き込みデータレディ226を送信し、それに応じて、ソースは、サイクル6において、アサートされた書き込みデータ有効224及び第1のデータワードを送信する。この例では、ソースは、3つのデータワードを送信する。いくつかの実施形態では、ソースは、書き込みアドレス212とともに書き込み転送チャネル210内のデータワードの数の指標を送信する。他の実施形態では、ソースは、アサートされた書き込みデータ有効224とともに、メタデータ内のデータワードの数の指標を送信する。指標を送信することの全ての組み合わせが、可能であり、企図される。
【0032】
ソースは、サイクル7及び10で更に2つのデータワードを送信し、これらのサイクルで書き込みデータ有効224をアサートする。また、ソースは、最後のデータワードがデスティネーションに送信される間、サイクル10において書き込みデータラスト228をアサートする。デスティネーションは、書き込み応答トランザクションチャネル230を使用して、書き込み動作が完了したことを確認する。デスティネーションは、書き込み応答レディ236をアサートし、その後、デスティネーションは、書き込み応答有効234をアサートする。示されるように、デスティネーションは、サイクル10で書き込み応答レディ236をアサートし、サイクル11で書き込み応答有効234をアサートするが、後のサイクルも可能である。
【0033】
付加的に、サイクル11において、デスティネーションは、書き込み応答232で書き込み動作のステータスを送信する。ステータスの一例は、「OK」であり、又は、書き込み動作が正常に完了したことを指定する別の指標である。別の例は、「エラー」であり、又は、書き込み動作が不成功であったことを指定する別の指標である。エラーコードは、デスティネーションによってソースに送信することもできる。そのような書き込み動作では、ソースとデスティネーションとの間の通信プロトコルは、バースト長情報と関連付けられる単一のアドレスを使用して単一の書き込み動作で複数のデータワードを送信するバーストベースのプロトコルをサポートする。データワードの何れかがエラーを含むとデスティネーションが判定した場合、一実施形態では、デスティネーションがエラーのソースを知らせる前に、デスティネーションは、バースト全体が完了するまで待つ。
【0034】
書き込み転送チャネル210に戻ると、上記の例に示されるように、ソースは、サイクル2で書き込み有効214をアサートする。したがって、デスティネーションは、処理に対する保留中の書き込み動作を認識する。しかしながら、デスティネーションが、書き込み有効214が閾値期間にわたってネゲートされたままであると判定した場合に、デスティネーションは、デスティネーションの1つ以上の構成要素を自律的に電源切断して要求を処理することを停止する非動作状態にする。例えば、デスティネーションは、デスティネーションの1つ以上の構成要素に対してより低い性能のP-状態を選択する。代替的に、デスティネーションは、デスティネーションの1つ以上の構成要素を複数のスリープ状態のうち何れかに移行するように指示し、デスティネーションは、これらのスリープ状態の1つ以上でデスティネーションにより使用される1つ以上のクロック信号をディセーブルする。
【0035】
付加的に、デスティネーションは、書き込みレディ216でネゲートされた値を維持する。したがって、デスティネーションが低電力状態にあり、ソースが書き込み有効214をアサートしている場合、デスティネーションは、アサートされた書き込みレディ216で応答する前に、デスティネーションの1つ以上の構成要素に対してより高性能のP-状態を選択するのに長い時間がかかる可能性がある。その間、ソースは、保留中の書き込み動作に対応する情報を記憶し続ける。デスティネーションがコンピューティングシステムの電力消費を低減する間、データ破損が発生しない。更に、外部電力管理が使用されず、拡張又は側波帯信号等の追加信号が使用されない。むしろ、電力消費の低減は、書き込み有効214及び書き込みレディ216等の既存の信号を使用して達成される。様々な実施形態では、これらの2つの信号は、サポートされる通信プロトコル内に既に存在する。
【0036】
更に、書き込みレディ216が閾値期間にわたってネゲートされたままであるとソースが判定した場合、ソースは、デスティネーションによって処理される書き込み動作の生成を自律的に低減する。ソースは、デスティネーションに送信する要求の生成を低減し、電力消費も低減するために、デスティネーションについて上述したのと同様のステップを実行することができる。言い換えれば、ソースは、デスティネーションによって処理されるべき要求をフェンスする。ソース及びデスティネーションの各々は、互いに依存することなく再び電源投入する能力を含む。一例では、デスティネーションは他のソースから入力信号を受信する。一実施形態では、ソースは、ビデオデコーダであり、デスティネーションは、メモリコントローラとインターフェースするメモリ管理ハブ(又はハブ)である。メモリコントローラは、ハブが必要とされるとき、及び、メモリコントローラが電源切断しているときをハブに命令する。電源切断される場合に、ビデオデコーダがハブのための作業を有していない場合、閾値期間の後、ハブは、書き込み有効214及び書き込みレディ216を使用して自律的に電源切断する。いくつかの実施形態では、電源切断を判定する場合、デスティネーションは、書き込み有効214をソースからの同様の読み取り有効信号と組み合わせる。例えば、デスティネーションは、閾値期間にわたってソースから書き込み動作及び読み取り動作が受信されなくなるまで、電源切断しない。
【0037】
図3を参照すると、チャネルのための通信プロトコルによる読み取り動作の信号波形300の一実施形態の一般化されたブロック図が示されている。信号波形300は、ソース(又はイニシエータ)とデスティネーション(又はコンプリータ)との間の読み取り込み動作を実施する通信プロトコルによってサポートされる信号タイプ及び信号遷移を例示する。クロック302は、通信プロトコルによって設定された周波数を有するクロック信号であり、対応するクロックサイクルは、イベント間のタイミングを制御するために使用される。信号波形300は、読み取り転送チャネル310及び読み取り応答トランザクションチャネル320を含む。読み取り応答トランザクションチャネル320のイベントは、読み取り転送チャネル310の読み取りレディ316信号がアサートされるまで開始されない。
【0038】
デスティネーションが読み取り有効314のアサートされた値を受信すると、デスティネーション内の回路は、デスティネーションがいつ対応する読み取り動作を処理することができるかを判定する。デスティネーションが対応する読み取り動作を処理することができる場合、デスティネーションは、アサートされた読み取りレディ316をソースに送信する。示された例では、ソースは、サイクル2において読み取り有効314をアサートする。付加的に、ソースは、サイクル2において、対応する読み取りアドレス312をデスティネーションに送信する。デスティネーションは、サイクル3において読み取りレディ316をアサートすることによって応答する。したがって、サイクル4において、ソース及びデスティネーションの各々は、読み取りアドレス312、読み取り有効314及び読み取りレディ316上の値をネゲートすることができる。これらのステップは、読み取り動作を開始するためのソースとデスティネーションとの間のハンドシェイクシーケンスを完了する。
【0039】
上記のシーケンスが完了した後、デスティネーションは、読み取り応答トランザクションチャネル320上で読み取りデータをソースに送信する。先に説明した書き込み動作と同様に、デスティネーションは、アサートされた読み取りデータレディ326をサイクル5で送信し、アサートされた読み取りデータ有効324及び第1のデータワードをサイクル6で送信する。付加的に、デスティネーションは、読み取り応答330上で第1のデータワードに対する読み取り動作のステータスを送信する。この例では、ソースは、3つのデータワードを要求し、デスティネーションは、サイクル7及び10において次の2つのデータワードを送信する。デスティネーションは、サイクル10で読み取りデータラスト328をアサートし、サイクル11で読み取りデータレディ326をネゲートする。書き込み動作と同様に、通信プロトコルに応じて、特定の制御信号のアサートの間に所定数のサイクルが挿入され、読み出すデータワード数の指標が読み取り転送チャネル310及び読み取り応答トランザクションチャネル320の何れかに挿入される。
【0040】
読み取り転送チャネル310に戻ると、上記の例に示されるように、ソースは、サイクル2で読み取り有効314をアサートする。したがって、デスティネーションは、処理するための保留中の読み取り動作を認識される。しかしながら、デスティネーションが読み取り有効314が閾値期間にわたってネゲートされたままであると判定した場合、デスティネーションは、デスティネーションの1つ以上の構成要素を自律的に電源切断して要求を処理することを停止する非動作状態にする。例えば、デスティネーションは、デスティネーションの1つ以上の構成要素に対してより低い性能のP-状態を選択する。代替的に、デスティネーションは、デスティネーションの1つ以上の構成要素をアイドル又はスリープ状態に移行するように指示し、デスティネーションは、デスティネーションにより使用される1つ以上のクロック信号をディセーブルする。付加的に、デスティネーションは、読み取りレディ316上でネゲートされた値を維持する。ソースが、読み取りレディ316が閾値期間にわたってネゲートされたままであると判定した場合に、ソースは、デスティネーションによって処理される読み取り動作の生成を自律的に低減する。ソース及びデスティネーションの各々は、上述したように、1つ以上の関連する構成要素のP-状態を自律的に低減することができる。
【0041】
図4に戻ると、コンピューティングシステム400の一実施形態の一般化したブロック図が示されている。示されるように、コンピューティングシステム400は、クライアント410、メモリコントローラ480及びリンクインターフェース490の各々の間の通信ファブリック450を含む。いくつかの実施形態では、処理ノード400の構成要素は、システムオンチップ(SOC)等の集積回路(IC)上の個々のダイである。他の実施形態では、構成要素は、システムインパッケージ(system-in-package、SiP)又はマルチチップモジュール(multi-chip module、MCM)における個々のダイである。
【0042】
例示された実施形態では、クライアント410は、中央処理ユニット(central processing unit、CPU)420、グラフィックス処理ユニット(graphics processing unit、GPU)430、及び、ハブ440を含む。ハブ440は、マルチメディアエンジン446と通信するために使用される。CPU420、GPU430及びマルチメディアエンジン446は、アプリケーションを処理することができるコンピューティングリソースの例である。示されていないが、他の実施形態では、他のタイプのコンピューティングリソースがクライアント410に含まれる。CPU420内の1つ以上のプロセッサコアの各々は、所定の選択された命令セットアーキテクチャ(ISA)に従って命令を実行するための回路を含む。様々な実施形態では、CPU420内のプロセッサコアの各々は、所定のISAの命令を処理するために使用されるスーパースカラマルチスレッドマイクロアーキテクチャを含む。一実施形態では、GPU430は、かなりの数の並列実行レーンを有する高並列データマイクロアーキテクチャを含む。一実施形態では、マイクロアーキテクチャは、並列実行レーンのために、単一命令複数データ(SIMD)パイプラインを使用する。マルチメディアエンジン446は、マルチメディアアプリケーションのためのオーディオデータ及びビジュアルデータを処理するためのプロセッサを含む。
【0043】
単一のメモリコントローラ480が示されているが、他の実施形態では、コンピューティングシステム400において別の数のメモリコントローラが使用される。様々な実施形態では、メモリコントローラ480は、ファブリック450を介してクライアント410からメモリ要求を受信し、メモリ要求をスケジュールし、スケジュールされたメモリ要求をシステムメモリ及び主メモリのうち何れかに送信する。また、メモリコントローラ480は、システムメモリ及び主メモリからも応答を受信し、その応答を、クライアント410内の要求の対応するソースに送信する。様々な実施形態では、システムメモリは、I/Oコントローラ及びバス482並びにメモリバス482を介した主メモリからのデータで満たされる。元のメモリ要求を完了するために、要求されたブロックを有する対応するキャッシュフィルラインが主メモリからクライアント410のキャッシュメモリサブシステムの対応する何れかに搬送される。キャッシュフィルラインは、1つ以上のレベルのキャッシュ内に置かれる。
【0044】
いくつかの実施形態では、コンピューティングシステム400のアドレス空間は、少なくともCPU420、GPU430及びハブ440と、入力/出力(I/O)周辺デバイス(図示せず)及びリンクインターフェース(inteface)490を介してアクセスされる他のタイプの周辺デバイス等の1つ以上の他の構成要素と、の間で分割される。メモリマップは、何れのアドレスが何れの構成要素にマッピングされるか、したがって、特定のアドレスに対するメモリ要求がCPU420、GPU430及びハブ440の何れにルーティングされるべきかを判定するために維持される。一実施形態では、システムメモリは、様々なダイナミックランダムアクセスメモリ(DRAM)のうち何れかであり、対応するプロトコルは、メモリコントローラ480によってサポートされる。いくつかの実施形態では、主メモリは、様々なタイプの不揮発性ランダムアクセス二次データ記憶装置のうち何れかである。主メモリの例は、ハードディスクドライブ(hard disk drive、HDD)及びソリッドステートディスク(solid-state disk、SSD)である。マルチメディアエンジン446と通信するために使用されるハブ440と同様に、ハブ460及び470は、メモリコントローラ480と通信するために使用される。
【0045】
様々な実施形態では、通信ファブリック450(又はファブリック450)は、リンクインターフェース490を介して、クライアント410と、メモリコントローラ480と、他の周辺デバイスと、の間でデータを往復して転送する。ファブリック450を介して転送されるデータは、コマンド、メッセージ、プローブ、割込み、並びに、コマンド及びメッセージに対応するデータ等のデータを含む。いくつかの実施形態では、ファブリック450は、少なくとも、要求及び応答を記憶するためのキュー、内部ネットワークを介して要求を送信する前に受信した要求の間で調停するための選択ロジック、パケットを構築及びデコードするためのロジック、及び、パケットのルートを選択するためのロジックを含む。
【0046】
示されるように、クライアント410、ハブ460及び470、並びに、リンクインターフェース490は、それぞれの通信プロトコルをサポートするためのインターフェースを含む。例えば、CPU420はインターフェース422を含み、GPU430はインターフェース432を含み、ハブ440はインターフェース442を含む等である。いくつかの実施形態では、ファブリック450に接続されたこれらのインターフェースの伝送線は、ポイントツーポイント通信チャネルである。物理レベルにおいて、リンクは、1つ以上のレーンを含む。いくつかの実施形態では、インターフェース422、432、442、462、472、492は、アームアドバーンストマイクロコントローラバスアーキテクチャ(AMBA)オンチップ相互接続仕様のアドバーンストエクステンシブルインターフェース(AXI)プロトコルをサポートする。これらのインターフェースは、通信プロトコルの他の例をサポートすることが可能であり、企図される。いくつかの実施形態では、これらのインターフェースの各々は、各々がそれぞれのタイプのパケットを記憶するための複数のキューを含む。付加的に、各々が複数のキューのそれぞれから候補パケットを選択するための複数のキューアービタがある。
【0047】
加えて、クライアント410並びにハブ460及び470は、ローカル電力管理のための電力制御ユニット(すなわちpower control unit、PCU)を含む。例えば、CPU420は電力制御ユニット424(すなわちPCU424)を含み、GPU430はPCU434を含み、ハブ440はPCU444を含み、ハブ460はPCU464を含み、ハブ470はPCU474を含む。PCUは、対応するユニットのそれぞれの電力性能状態(P-状態)を選択し、及び/又は、アイドル又はスリープ状態を選択する。様々な実施形態において、PCUは、対応するインターフェースによってサポートされる転送チャネルの信号を監視する。例えば、PCUは、転送チャネルの有効信号及びレディ信号を監視する。再び、
図2及び
図3を簡単に参照すると、これらの信号の例は、書き込み転送チャネル210の書き込み有効214及び書き込みレディ216、並びに、読み取り転送チャネル310の読み取り有効314及び読み取りレディ316である。PCUは、これらの監視された信号に基づいて、対応するユニットのP-状態を自律的に選択する。PCUは、P-状態を選択するために集中電力管理と通信しない。一例では、マルチメディアエンジン446はビデオデコーダを含み、ハブ470を介してシステムメモリにアクセスする。インターフェース442は、
図1のソース110のインターフェース116等のソースに対するインターフェースとして機能し、インターフェース472は、デスティネーション140(
図1)のインターフェース146等のデスティネーションに対するインターフェースとして機能する。
【0048】
以下に説明する方法500~800は、ソース及びデスティネーションのインターフェースに使用される。ソースは要求を生成し、デスティネーションは要求を処理する。ソース及びデスティネーションのインターフェースは、それらの間で転送される信号のための通信プロトコルをサポートする。様々な実施形態では、通信プロトコルには、要求のタイプごとに転送チャネル及び1つ以上のトランザクションチャネルの両方が含まれる。例えば、書き込み要求は、書き込み転送チャネル、書き込みデータトランザクションチャネル及び書き込み応答トランザクションチャネルを使用する。読み取り要求は、読み取り転送チャネル及び読み取り応答トランザクションチャネルを使用する。いくつかの実施形態では、通信プロトコルの例は、アームアドバーンストマイクロコントローラバスアーキテクチャ(AMBA)オンチップ相互接続仕様のアドバーンストエクステンシブルインターフェース(AXI)プロトコルである。ソース及びデスティネーションが通信プロトコルの他の例をサポートすることが可能であり、企図される。先に説明した装置、処理ユニット及びシステムのうち何れかを使用して、方法500~800のステップを実施することができる。方法500~800は、電力消費を自律的に低減するためにソース及びデスティネーションによって実行されるステップを説明する。これらのステップの更なる説明が、以下の説明において提供される。
【0049】
図5を参照すると、デスティネーション回路の自律電源切断を効率的に実行するための方法500の一実施形態が示されている。説明のために、この実施形態(並びに
図6~
図8)におけるステップを順番に示す。しかしながら、他の実施形態では、いくつかのステップは、図示した順序とは異なる順序で起こり、いくつかのステップは、同時に実行され、いくつかのステップは、他のステップと組み合わされ、いくつかのステップは、存在しない。
【0050】
デスティネーションは、ソースからの要求が処理(サービス)される準備ができていることを示す状態にある有効信号を受信する(ブロック502)。例えば、有効信号がアサートされる。デスティネーションは、デスティネーションが要求を処理(サービス)する準備ができていることを指し示す状態でレディ信号をソースに送信する(ブロック504)。例えば、レディ信号がアサートされる。デスティネーションは、ソースからの有効信号がアサートされている状態からネゲートされている状態に移行したことを検出する(ブロック506)。デスティネーションは、ソースから受信した未処理の要求を処理(サービス)する(ブロック508)。未処理の処理要求がある場合(条件ブロック510:「はい」)、デスティネーションは、アイドル時間の測定値をリセットする(ブロック512)。
【0051】
未処理の処理要求がない場合(条件ブロック510:「いいえ」)、デスティネーションは、アイドル時間の期間を測定する(ブロック514)。アイドル時間が閾値に達したことをデスティネーションが検出しない場合(条件ブロック516:「いいえ」)、方法500の制御フローは条件ブロック510に戻り、未処理の処理(サービス)要求があるかどうかが判定される。デスティネーションが、期間が閾値に達したことを検出した場合(条件ブロック516:「はい」)、デスティネーションは、要求を処理(サービス)すること停止する非動作状態に自律的に電源切断するステップを実行する(ブロック518)。付加的に、デスティネーションは、レディ信号をネゲートされたままに維持する。
【0052】
図6に戻ると、デスティネーション回路の自律的電源投入を効率的に実行するための方法600の一実施形態が示されている。電源切断されたデスティネーションは、自律的に電源投入する条件を検出する(ブロック602)。いくつかの実施形態では、電源投入条件が発生したと判定することは、受信された要求の数が閾値を超えるか、又は、特定のタイプの要求がデスティネーションのインターフェースにおいて受信されたと判定することを含む。それに応じて、デスティネーションは、要求の処理(サービス)を可能にする動作状態に自律的に電源投入する。例えば、インターフェースは、デスティネーションの構成要素が低性能のP-状態又は複数のスリープ状態のうち何れかからより高い性能のP-状態に移行する必要があることを指定するデスティネーションのローカル電力制御ユニットに指標を送信する。デスティネーションは、要求の処理(サービス)を可能にするために、デスティネーションの動作パラメータを調整する(ブロック604)。動作パラメータは、少なくとも動作電圧及び動作クロック周波数を含む。デスティネーションは、要求が処理(サービス)される準備ができていることを指し示すソースからの有効信号を検出する(ブロック606)。デスティネーションは、デスティネーションが要求を処理(サービス)する準備ができていることを指し示すレディ信号をソースに送信する(ブロック608)。デスティネーションは、調整された動作パラメータを使用して、ソースから受信した未処理の要求を処理(サービス)する(ブロック610)。
【0053】
図7に戻ると、ソース回路の自律的電源切断を効率的に実行するための方法700の一実施形態が示されている。ソースは、転送チャネルの有効信号を要求がデスティネーションによって処理(サービス)される準備ができていることを指し示すデスティネーションに送信する(ブロック702)。例えば、ソースは、書き込み転送チャネルの書き込み有効信号及び読み取り転送チャネルの読み取り有効信号のうち1つ以上のアサートされた値をデスティネーションに送信する。ソースは、転送チャネルのレディ信号の何れかが、デスティネーションが要求を処理(サービス)する準備ができていることを指し示す状態に設定されるのを待つ(ブロック704)。ソースは、期間を測定する(ブロック706)。ソースが、アサートされるようになる転送チャネルの任意のレディ信号を検出した場合(条件ブロック708:「はい」)、ソースは、期間の測定をリセットする(ブロック710)。ソースは、1つ以上の要求をデスティネーションに送信し、対応する結果を受信するステップを実行する(ブロック712)。例えば、ソースは、サポートされる通信プロトコルの制御信号のタイミングに従う。
【0054】
ソースが、アサートされるようになる転送チャネルのレディ信号を検出しない場合(条件ブロック708:「いいえ」)、及び、ソースが、期間が閾値に達することを判定しない場合(条件付きブロック714:「いいえ」)、方法700の制御フローは、ソースが期間を測定するブロック706に戻る。ソースが、アサートされるようになる転送チャネルのレディ信号を検出しない場合(条件ブロック708:「いいえ」)、及び、ソースが、期間が閾値に達していると判定する場合(条件ブロック714:「はい」)、ソースは、デスティネーションによって処理(サービス)される要求の生成を低減するためのステップを実行する(ブロック716)。様々な実施形態では、ソースは、これらのステップを自律的に実行する。例えば、ソースは、外部電力管理に通知し、又は、外部電力管理からの許可を待たずに、1つ以上の構成要素のより低性能なP-状態を選択する。
【0055】
図8に戻ると、ソース回路の自律的電源投入を効率的に実行するための方法800の一実施形態が示されている。ソースは、動作パラメータ及び条件を更新して、デスティネーションによって処理(サービス)される要求の生成を低減する(ブロック802)。様々な実施形態では、ソースは、これらの更新を自律的に実行する。ソースは、デスティネーションが要求を処理(サービス)する準備ができていることを指し示す信号を待つ(ブロック804)。例えば、ソースは、転送チャネルのレディ信号の何れかが、デスティネーションが要求を処理する準備ができていることを指し示す状態に設定されるのを待つ。ソースがこの信号を受信しない場合(条件ブロック806:「いいえ」)、方法800の制御フローは、ブロック804に戻り、そこでソースは、更新された動作パラメータを使用して、他の未処理のタスク(存在する場合)を対処しながら待つ。
【0056】
デスティネーションが要求を処理(サービス)する準備ができていることを指し示す信号をソースが受信した場合(条件ブロック806:「はい」)、ソースは、要求をデスティネーションに送信する(ブロック808)。ソースは、動作パラメータを更新して、デスティネーションによって処理(サービス)される要求の生成を増加させる(ブロック810)。例えば、ソースは、外部電力管理に通知し、又は、外部電力管理からの許可を待たずに、1つ以上の構成要素のより高性能なP-状態を選択する。
【0057】
上述された実施形態のうち1つ以上は、ソフトウェアを含むことに留意されたい。そのような実施形態では、方法及び/又は機構を実装するプログラム命令は、コンピュータ可読媒体上に搬送又は記憶される。プログラム命令を記憶するように構成されている多数のタイプの媒体が利用可能であり、例えば、ハードディスク、フロッピー(登録商標)ディスク、CD-ROM、DVD、フラッシュメモリ、プログラマブルROM(Programmable ROM、PROM)、ランダムアクセスメモリ(random access memory、RAM)、及び、様々な他の形態の揮発性又は不揮発性記憶装置が挙げられる。一般的に言えば、コンピュータアクセス可能記憶媒体は、命令及び/又はデータをコンピュータに提供するために、使用中にコンピュータによってアクセス可能な任意の記憶媒体を含む。例えば、コンピュータアクセス可能記憶媒体としては、磁気又は光学媒体(例えば、ディスク(固定又は取り外し可能)、テープ、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW、Blu-Ray(登録商標)等)の記憶媒体が挙げられる。記憶媒体としては、RAM(例えば、同期ダイナミックRAM(synchronous dynamic RAM、SDRAM)、ダブルデータレート(double data rate、DDR、DDR2、DDR3等)SDRAM、低電力DDR(low-power DDR、LPDDR2等)SDRAM、ラムバスDRAM(Rambus DRAM、RDRAM)、スタティックRAM(static RAM、SRAM)等)、ROM、フラッシュメモリ等の揮発性又は不揮発性メモリ媒体、ユニバーサルシリアルバス(Universal Serial Bus、USB)インターフェース等の周辺インターフェースを介してアクセス可能な不揮発性メモリ(例えば、フラッシュメモリ)等が更に挙げられる。記憶媒体としては、微小電気機械システム(microelectromechanical system、MEMS)、並びに、ネットワーク及び/又はワイヤレスリンク等の通信媒体を介してアクセス可能な記憶媒体が挙げられる。
【0058】
付加的に、様々な実施形態では、プログラム命令は、C等の高レベルプログラミング言語、Verilog、VHDL等の設計言語(design language、HDL)、又は、GDSIIストリームフォーマット(GDSII)等のデータベースフォーマットでのハードウェア機能の動作レベル記述又はレジスタ転送レベル(register-transfer level、RTL)記述を含む。場合によっては、記述は、合成ライブラリからゲートのリストを含むネットリストを生成するために記述を合成する合成ツールによって読み出される。ネットリストは、システムを含むハードウェアの機能も表すゲートのセットを含む。ネットリストは、次いで、マスクに適用される幾何学的形状を記述するデータセットを生成するために、配置及びルーティングされ得る。次に、マスクは、システムに対応する半導体回路又は回路を生成するために、様々な半導体製作ステップで使用され得る。代替的に、コンピュータアクセス可能記憶媒体上の命令は、必要に応じて、ネットリスト(合成ライブラリを有する若しくは有しない)又はデータセットである。付加的に、命令は、Cadence(登録商標)、EVE(登録商標)及びMentor Graphics(登録商標)等のベンダからのハードウェアベースのタイプのエミュレータによるエミュレーションのために利用される。
【0059】
上記の実施形態は、かなり詳細に説明されているが、上記の開示が十分に理解されると、多数の変形及び修正が当業者には明らかになるであろう。以下の特許請求の範囲は、全てのそのような変形及び修正を包含すると解釈されることが意図されている。
【国際調査報告】