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

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

▶ オキュラス ブイアール,エルエルシーの特許一覧

特表2023-531928人工現実システムのためのメモリの階層型電力管理
<>
  • 特表-人工現実システムのためのメモリの階層型電力管理 図1A
  • 特表-人工現実システムのためのメモリの階層型電力管理 図1B
  • 特表-人工現実システムのためのメモリの階層型電力管理 図2
  • 特表-人工現実システムのためのメモリの階層型電力管理 図3
  • 特表-人工現実システムのためのメモリの階層型電力管理 図4
  • 特表-人工現実システムのためのメモリの階層型電力管理 図5A
  • 特表-人工現実システムのためのメモリの階層型電力管理 図5B
  • 特表-人工現実システムのためのメモリの階層型電力管理 図5C
  • 特表-人工現実システムのためのメモリの階層型電力管理 図6A
  • 特表-人工現実システムのためのメモリの階層型電力管理 図6B
  • 特表-人工現実システムのためのメモリの階層型電力管理 図6C
  • 特表-人工現実システムのためのメモリの階層型電力管理 図7
  • 特表-人工現実システムのためのメモリの階層型電力管理 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-26
(54)【発明の名称】人工現実システムのためのメモリの階層型電力管理
(51)【国際特許分類】
   G06F 12/00 20060101AFI20230719BHJP
   G06F 1/3225 20190101ALI20230719BHJP
   G06F 1/3234 20190101ALI20230719BHJP
   G06F 12/06 20060101ALI20230719BHJP
【FI】
G06F12/00 550E
G06F1/3225
G06F1/3234
G06F12/06 515H
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022578794
(86)(22)【出願日】2021-06-24
(85)【翻訳文提出日】2023-02-08
(86)【国際出願番号】 US2021038832
(87)【国際公開番号】W WO2022005861
(87)【国際公開日】2022-01-06
(31)【優先権主張番号】63/047,035
(32)【優先日】2020-07-01
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/947,432
(32)【優先日】2020-07-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】ヤーディ, シュリラン マーダブ
(72)【発明者】
【氏名】エーマン, グレゴリー エドワード
(72)【発明者】
【氏名】サレーミ, エンニオ
(72)【発明者】
【氏名】スパッツ, ジョージ
(72)【発明者】
【氏名】ライデン, ジェフリー
【テーマコード(参考)】
5B011
5B160
【Fターム(参考)】
5B011DA01
5B011EA05
5B011EA06
5B011EB01
5B011EB09
5B011LL11
5B160AA02
5B160AC11
(57)【要約】
本開示は、メモリによる消費電力を低減する、人工現実システム(100)のメモリの階層型電力管理のための技術について記載する。一例のデバイスは、表示する人工現実コンテンツを生成するように構成された周辺デバイス(104)、または表示する人工現実コンテンツを出力するように構成されたヘッドマウントディスプレイユニット(HMD)であってもよい。デバイスは、複数の電力モードで動作するように構成可能な複数のメモリブロック(322A~322N)に分割されるメモリを含む。デバイス(104)はまた、メモリブロックを制御するメモリブロックコントローラを含む。各メモリブロックコントローラは、対応するメモリブロック(322A~322N)がどの電力モードで動作するかを、他のメモリブロック(322A~322N)のいずれからも独立して制御する。デバイス(104)は、メモリブロック(322A~322N)がアクセスされていないとき、メモリブロック(322A~322N)に対して複数の電力モードのうち1つを選択するようにメモリブロックコントローラに指示するように、メモリブロックコントローラの制御レジスタを構成するように構成された、メモリ電力コントローラを含む。
【選択図】図1B
【特許請求の範囲】
【請求項1】
表示する人工現実コンテンツを生成するように構成された周辺デバイス、または表示する人工現実コンテンツを出力するように構成されたヘッドマウントディスプレイユニット(HMD)のうち1つを備えたデバイスを備える、人工現実システムであって、前記デバイスが、
互いに独立して複数の電力モードで動作するようにそれぞれ構成可能な複数のメモリブロックに分割されたメモリと、
対応するメモリブロックに対する1つまたは複数のメモリブロックコントローラであって、前記メモリブロックコントローラの制御レジスタに基づいて、前記複数の電力モードのうち前記対応するメモリブロックが動作する電力モードを、他のメモリブロックのいずれからも独立して制御するようにそれぞれ構成された、メモリブロックコントローラと、
前記メモリブロックがアクセスされていないとき、前記メモリブロックに対して前記複数の電力モードのうち1つを選択するように前記メモリブロックコントローラに指示するように、前記メモリブロックコントローラのそれぞれの制御レジスタを構成するように構成された、メモリ電力コントローラとを備える、
人工現実システム。
【請求項2】
前記メモリブロックコントローラの前記制御レジスタを構成するため、前記メモリ電力コントローラが、前記メモリブロックがアクセスされていないとき、関連する前記メモリブロック全てに対して前記複数の電力モードのうち前記1つを選択するように前記メモリブロックコントローラに指示するように、レジスタを制御するよう構成された、請求項1に記載のシステム。
【請求項3】
前記メモリブロックコントローラの各メモリブロックコントローラが、前記複数の電力モードのうちどの電力モードで前記メモリブロックのうちの対応するメモリブロックが動作するかを制御するように、状態機械を操作する、請求項1または2に記載のシステム。
【請求項4】
前記メモリブロックコントローラの各メモリブロックコントローラによって操作される前記状態機械が、前記複数の電力モードのうち1つにそれぞれ対応する複数の状態を含み、前記メモリブロックコントローラの各メモリブロックコントローラが、前記メモリブロックコントローラによって操作される前記状態機械の現在の状態に基づいて、前記メモリブロックのうち対応するメモリブロックを制御する、請求項3に記載のシステム。
【請求項5】
前記メモリブロックコントローラの各メモリブロックコントローラによって操作される前記状態機械が、前記メモリ電力コントローラによって提供される前記制御レジスタの値に基づいて状態間を遷移して、前記メモリブロックのうち前記メモリブロックコントローラに対応するメモリブロックの前記電力モードのソフトウェア制御を提供する、請求項3または4に記載のシステム。
【請求項6】
前記メモリブロックコントローラの各メモリブロックコントローラが、イベント入力をそれぞれ含み、前記メモリブロックコントローラの各メモリブロックコントローラの前記状態機械が、前記イベント入力の信号に基づいて状態間を遷移して、前記メモリブロックのうち前記メモリブロックコントローラに対応するメモリブロックの前記電力モードのハードウェア制御を提供する、請求項5に記載のシステム。
【請求項7】
メモリデコーダをさらに備え、
前記メモリブロックコントローラの各メモリブロックコントローラがイベント入力を含み、
前記メモリデコーダが、
メモリアドレスを復号して、前記メモリブロックのうちどれが前記メモリアドレスと関連付けられるかを決定し、
前記メモリブロックコントローラのうち前記メモリアドレスと関連付けられたメモリブロックに対応するメモリブロックコントローラのイベントラインにイネーブル信号を適用して、前記メモリブロックコントローラのうち前記対応するメモリブロックコントローラの前記状態機械を、前記メモリアドレスと関連付けられた前記メモリブロックの動作電力モードに対応する高電力状態へと遷移させるように構成された、
請求項3から6のいずれか一項に記載のシステム。
【請求項8】
前記メモリブロックコントローラの各メモリブロックコントローラが、イベント入力を含み、前記メモリブロックコントローラの各メモリブロックコントローラが、
前記イベント入力におけるイネーブル信号の検出に応答して、前記メモリブロックコントローラによって操作される前記状態機械を、前記メモリブロックコントローラに対応する前記メモリブロックの動作電力モードに対応する高電力状態へと遷移して、前記メモリブロックにアクセスして前記メモリブロックからデータを読み取るのを容易にし、
前記イベント入力において前記イネーブル信号を検出しなくなったことに応答して、前記メモリブロックコントローラによって操作される前記状態機械を、複数の低電力状態のうち、前記複数の電力モードのうち前記メモリブロックコントローラに対応する前記メモリブロックがアクセス不能である電力モードに対応し、前記メモリブロックコントローラの前記制御レジスタの値に基づく1つの低電力状態へと遷移するように構成された、
請求項3から7のいずれか一項に記載のシステム。
【請求項9】
前記デバイスが、前記メモリを共有する複数のサブシステムを有するシステムオンチップ(SoC)をさらに備える、請求項1から8のいずれか一項に記載のシステム。
【請求項10】
前記メモリ電力コントローラが、前記メモリブロックに電力供給して前記メモリブロックと関連付けられたメモリアドレスへのアクセスを容易にするように、前記制御レジスタを介して前記メモリブロックコントローラに指示することによって、前記メモリブロックのソフトウェア制御を提供するようにさらに構成された、請求項1から9のいずれか一項に記載のシステム。
【請求項11】
前記メモリブロックコントローラが、前記デバイスのメモリデコーダからコマンドを受信したことに応答して、前記メモリブロックに電力供給して前記メモリブロックと関連付けられたメモリアドレスへのアクセスを容易にすることによって、前記メモリブロックのハードウェア制御を提供するようにさらに構成された、請求項1から10のいずれか一項に記載のシステム。
【請求項12】
前記メモリブロックコントローラが、前記メモリ電力コントローラによって提供されるソフトウェア制御とは独立して、前記メモリブロックの前記ハードウェア制御を提供する、請求項11に記載のシステム。
【請求項13】
人工現実システムにおけるメモリの階層型電力制御の方法であって、
第1のメモリブロックコントローラによって、複数の電力モードのうちどの電力モードで第1のメモリブロックが動作するかを制御することであって、前記メモリが、互いに独立して複数の電力モードで動作するように構成可能な前記第1のメモリブロックおよび第2のメモリブロックに分割される、どの電力モードで第1のメモリブロックが動作するかを制御することと、
前記第1のメモリブロックとは独立して第2のメモリブロックコントローラによって、前記複数の電力モードのうちどの電力モードで前記第2のメモリブロックが動作するかを制御することと、
前記第1および第2のメモリブロックがアクセスされていないとき、前記第1および第2のメモリブロックに対して前記複数の電力モードのうち1つを選択するように前記第1および第2のメモリブロックコントローラに指示するように、メモリ電力コントローラによって、前記第1および第2のメモリブロックコントローラのそれぞれの制御レジスタを制御することと
を含む、方法。
【請求項14】
前記第1のメモリブロックコントローラによって、前記複数の電力モードのうちどの電力モードで前記第1のメモリブロックが動作するかを制御するように、第1の状態機械を操作することと、
前記第2のメモリブロックコントローラによって、前記複数の電力モードのうちどの電力モードで前記第2のメモリブロックが動作するかを制御するように、第2の状態機械を操作することと
を含む、請求項13に記載の方法。
【請求項15】
前記第1の状態機械が、前記複数の電力モードの1つにそれぞれ対応する複数の状態を備え、前記方法が、
前記第1のメモリブロックコントローラによって、前記第1の状態機械の現在の状態に基づいて前記第1のメモリブロックを制御すること
をさらに含む、請求項14に記載の方法。
【請求項16】
メモリデコーダによって、メモリアドレスを復号して、前記第1および第2のメモリブロックのうちどれが前記メモリアドレスと関連付けられるかを決定することと、
前記第1のメモリブロックが前記メモリアドレスと関連付けられるという決定に応答して、前記メモリデコーダによって、前記第1のメモリブロックに対応する前記第1のメモリブロックコントローラのイベントラインにイネーブル信号を適用して、前記第1の状態機械の状態を、前記複数の電力モードのうちのある電力モードに対応する高電力状態に遷移させることと
をさらに含む、請求項14または15に記載の方法。
【請求項17】
前記イベントラインにおいて前記イネーブル信号を検出しなくなったことに応答して、前記第1のメモリブロックコントローラによって、前記第1の状態機械を、複数の低電力状態のうち、前記複数の電力モードのうち前記第1のメモリブロックの電力モードに対応し、前記第1のメモリブロックコントローラの前記制御レジスタの値に基づく1つの低電力状態に遷移すること
をさらに含む、請求項16に記載の方法。
【請求項18】
前記第1および第2のメモリブロックに電力供給して前記第1および第2のメモリブロックと関連付けられたメモリアドレスへのアクセスを容易にするように、前記制御レジスタを介して前記第1および第2のメモリブロックコントローラに指示することにより、前記メモリ電力コントローラによって、前記第1および第2のメモリブロックのソフトウェア制御を提供すること
をさらに含む、請求項13から17のいずれか一項に記載の方法。
【請求項19】
メモリデコーダから第1のコマンドを受信したことに応答して、前記第1のメモリブロックに電力供給して前記第1のメモリブロックのメモリアドレスへのアクセスを容易にすることにより、前記第1のメモリブロックコントローラによって、前記第1のメモリブロックのハードウェア制御を提供することと、
前記メモリデコーダから第2のコマンドを受信したことに応答して、前記第2のメモリブロックに電力供給して前記第2のメモリブロックのメモリアドレスへのアクセスを容易にすることにより、前記第2のメモリブロックコントローラによって、前記第2のメモリブロックのハードウェア制御を提供することと
をさらに含む、請求項13から18のいずれか一項に記載の方法。
【請求項20】
命令を含むコンピュータ可読媒体であって、前記命令が、実行されると、人工現実システムのメモリ電力管理システムに、
第1のメモリブロックコントローラを用いて、複数の電力モードのうちどの電力モードで第1のメモリブロックが動作するかを制御することであって、メモリが互いに独立して複数の電力モードで動作するように構成可能な前記第1のメモリブロックおよび第2のメモリブロックに分割される、どの電力モードで第1のメモリブロックが動作するかを制御することと、
前記第1のメモリブロックとは独立して、第2のメモリブロックコントローラを用いて、前記複数の電力モードのうちどの電力モードで前記第2のメモリブロックが動作するかを制御することと、
前記第1および第2のメモリブロックがアクセスされていないとき、前記第1および第2のメモリブロックに対して前記複数の電力モードのうち1つを選択するように、前記第1および第2のメモリブロックにそれぞれ結合された第1および第2のメモリブロックコントローラのそれぞれの制御レジスタを制御することと、を行わせる、
コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
概して、本開示は、拡張現実、複合現実、および/または仮想現実システムなど、人工現実システムのメモリの電力管理に関する。
【背景技術】
【0002】
人工現実システムは、コンピュータゲーミング、安全衛生、産業、および教育などの多くの分野で、アプリケーションによってユビキタス化が進んでいる。いくつかの例として、人工現実システムは、移動デバイス、ゲーミングコンソール、パーソナルコンピュータ、映画館、およびテーマパークに組み込まれてきている。概して、人工現実は、ユーザに提示する前に何らかの形で調節されている1つの形態の現実であり、例えば、仮想現実、拡張現実、複合現実、ハイブリッド現実、または上記の何らかの組み合わせおよび/もしくは派生物を含んでもよい。
【0003】
一般的な人工現実システムは、コンテンツをレンダリングし、ユーザに対して表示する、1つまたは複数のデバイスを含む。これらのデバイスは電池式である場合が多い。一例として、人工現実システムは、ユーザによって装着され、人工現実コンテンツをユーザに対して出力するように構成された、ヘッドマウントディスプレイ(HMD)を組み込んでもよい。人工現実コンテンツは、システムによって生成されたコンテンツを全体的に含んでもよく、またはキャプチャされたコンテンツ(例えば、実世界の映像および/または写真)と組み合わされた生成コンテンツを含んでもよい。動作中、ユーザは、一般的に、人工現実システムと対話して、コンテンツを選択し、アプリケーションを起動し、システムを構成し、また全体として人工現実環境を体験する。
【発明の概要】
【0004】
概して、本開示は、メモリによる消費電力を低減する、人工現実(AR)システムにおけるメモリの階層型電力管理のための技術について記載する。人工現実システムは、協働してAR体験を提供する、異なるデバイス(例えば、ヘッドマウントディスプレイ、周辺デバイスなど)を含んでもよい。これらのデバイスは、ARシステムのための様々な機能性を提供するサブシステムを含む、1つまたは複数のシステムオンチップ(SoC)を含む。これらのSoCは、機能性を提供するのにサブシステムによって使用される、スタティックランダムアクセスメモリ(SRAM)などのメモリを含む。いくつかの例では、メモリは、互いに独立して異なる電力モードで動作するように構成することができる、メモリブロックに分割される。これらの電力モードとしては、メモリブロックと関連付けられたメモリアドレスにアクセスすることができる、高電力モード(例えば、動作モード)、および消費電力が高電力モードよりも少なく、メモリブロックと関連付けられたアドレスにアクセスすることができない、1つまたは複数の低電力モード(例えば、保持モード、パワーオフモード、ナップモードなど)が挙げられる。
【0005】
後述する技術では、これらのメモリブロックの電力モードは階層型の方式で制御される。RAMドメインコントローラ(RDC)(「メモリ電力コントローラ」の一例であって場合によってはそのように呼ばれる)は、複数のRAMドメインブロック(RDB)(「メモリブロックコントローラ」の例であって場合によってはそのように呼ばれる)のソフトウェアベースおよびハードウェアベースの制御を実現する。各メモリブロックの電力モードは対応するRDBによって制御される。RDCおよびRDBにより、SoCの電力管理システムは、SoCのメモリに対して微調整または粗調整を適用してもよい。RDBはそれぞれ、イベント入力ならびに制御レジスタおよび/または信号線を介して制御される、状態機械を含む。RDBは、ハードウェア制御および/またはソフトウェア制御によって動作してもよい。イベント入力は、メモリ電力モードの粗いハードウェア制御を提供し、制御レジスタは、メモリ電力状態のより微細な制御を提供する。RDBは、状態機械の現在の状態に基づいて、関連するメモリブロックの電力モードを制御する。状態機械の現在の状態は、イベント入力時の信号、および制御レジスタのコンテンツ、または信号線の値に基づく。本明細書で使用するとき、ハードウェア制御とは、メモリアクセスのプロセス中に、メモリハードウェアの構成要素(例えば、メモリデコーダなど)によって生成される信号に基づいて、RDBを制御することを指す。本明細書で使用するとき、ソフトウェア制御とは、(a)例えば、SoCで動作する、および/もしくは電力管理回路で動作する、ファームウェアから受信した入力に基づいた、RDCによる信号入力および/もしくは制御レジスタを介して、ならびに/または(b)SoCで動作する、かつ/もしくは電力管理回路で動作する、ファームウェアからソフトウェアレジスタへの信号入力を介して、RDBを制御することを指す。該技術は、1つまたは複数の実用的用途を実現する、1つまたは複数の技術的利点を提供してもよい。RDCおよびRBDの階層型制御構造は、例えばシステムのSRAMの様々な粒度で(例えば、個々のメモリブロックからより大きいメモリ「チャンク」まで)、電力モードを制御する柔軟性を促進する。例えば、ハードウェア(例えば、イベントラインを介する)およびソフトウェア(例えば、制御レジスタを介する)の両方を使用する、メモリの消費電力の微細な制御は、人工現実システムの消費電力を低減してもよい。このような形でメモリのハードウェアおよびソフトウェア制御を提供することは、メモリのより一層のカスタム化および制御を提供するとともに、電力モード間でのメモリの移行におけるレイテンシを改善する。このことは、電池寿命を延ばし、人工現実システムの応答性を改善し、ユーザ体験を改善することができる。
【0006】
一例の人工現実システムはデバイスを含む。デバイスは、表示する人工現実コンテンツを生成するように構成された周辺デバイス、または表示する人工現実コンテンツを出力するように構成されたヘッドマウントディスプレイユニット(HMD)であってもよい。デバイスは、互いに独立して複数の電力モードで動作するようにそれぞれ構成可能な、複数のメモリブロックに分割されたメモリと、対応するメモリブロックに対する1つまたは複数のメモリブロックコントローラと、メモリ電力コントローラとを含む。各メモリブロックコントローラは、メモリブロックコントローラの制御レジスタに基づいて、複数の電力モードのうち対応するメモリブロックが動作する電力モードを、他のメモリブロックのいずれからも独立して制御する。メモリ電力コントローラは、メモリブロックがアクセスされていないとき、メモリブロックに対して複数の電力モードのうち1つを選択するようにメモリブロックコントローラに指示するように、メモリブロックコントローラのそれぞれの制御レジスタを構成する。
【0007】
人工現実システムにおけるメモリの階層型電力制御の一例の方法は、第1のメモリブロックコントローラによって、複数の電力モードのうち第1のメモリブロックが動作する電力モードを制御することを含む。メモリは、互いに独立して複数の電力モードで動作するように構成可能な、第1のメモリブロックおよび第2のメモリブロックに分割される。方法はまた、第1のメモリブロックとは独立して第2のメモリブロックコントローラによって、複数の電力モードのうち第2のメモリブロックが動作する電力モードを制御することを含む。加えて、方法は、第1および第2のメモリブロックがアクセスされていないとき、第1および第2のメモリブロックに対して複数の電力モードのうち1つを選択するように第1および第2のメモリブロックコントローラに指示するように、第1および第2のメモリブロックコントローラのそれぞれの制御レジスタを制御することを含む。
【0008】
一例のコンピュータ可読媒体は命令を含み、命令は、実行されると、人工現実システムのメモリ電力管理システムに、第1のメモリブロックコントローラを用いて、複数の電力モードのうち第1のメモリブロックが動作する電力モードを制御させ、メモリは、互いに独立して複数の電力モードで動作するように構成可能な、第1のメモリブロックおよび第2のメモリブロックに分割される。命令はさらに、メモリ電力管理システムに、第1のメモリブロックとは独立して、第2のメモリブロックコントローラを用いて、複数の電力モードのうち第2のメモリブロックが動作する電力モードを制御させる。加えて、命令は、メモリ電力管理システムに、第1および第2のメモリブロックがアクセスされていないとき、第1および第2のメモリブロックに対して複数の電力モードのうち1つを選択するように、第1および第2のメモリブロックにそれぞれ結合された第1および第2のメモリブロックコントローラのそれぞれの制御レジスタを制御させる。
【0009】
本開示の第1の態様によれば、表示する人工現実コンテンツを生成するように構成された周辺デバイス、または表示する人工現実コンテンツを出力するように構成されたヘッドマウントディスプレイユニット(HMD)の1つを含むデバイスを備える、人工現実システムが提供され、デバイスは、互いに独立して複数の電力モードで動作するようにそれぞれ構成可能な、複数のメモリブロックに分割されたメモリと、対応するメモリブロックに対する1つまたは複数のメモリブロックコントローラであって、各メモリブロックコントローラが、メモリブロックコントローラの制御レジスタに基づいて、複数の電力モードのうち対応するメモリブロックが動作する電力モードを、他のメモリブロックのいずれからも独立して制御する、メモリブロックコントローラと、メモリブロックがアクセスされていないとき、メモリブロックに対して複数の電力モードのうち1つを選択するようにメモリブロックコントローラに指示するように、メモリブロックコントローラのそれぞれの制御レジスタを構成するように構成された、メモリ電力コントローラと、を備える。
【0010】
メモリブロックコントローラの制御レジスタを構成するため、メモリ電力コントローラは、メモリブロックがアクセスされていないとき、関連するメモリブロック全てに対して複数の電力モードのうち1つを選択するようにメモリブロックコントローラに指示するように、レジスタを制御するよう構成されてもよい。
【0011】
メモリブロックコントローラの各メモリブロックコントローラは、複数の電力モードのうち、メモリブロックの対応するものが動作する電力モードを制御するように、状態機械を操作してもよい。
【0012】
メモリブロックコントローラの各メモリブロックコントローラによって操作される状態機械は、複数の電力モードのうち1つにそれぞれ対応する複数の状態を含んでもよく、メモリブロックコントローラの各メモリブロックコントローラは、メモリブロックコントローラによって操作される状態機械の現在の状態に基づいて、メモリブロックのうち対応するものを制御する。
【0013】
状態機械は、メモリ電力コントローラによって提供される制御レジスタの値に基づいて、メモリブロックコントローラの各メモリブロックコントローラによって操作されて状態間を移行して、メモリブロックのうちメモリブロックコントローラに対応するメモリブロックの電力モードのソフトウェア制御を提供してもよい。
【0014】
メモリブロックコントローラの各メモリブロックコントローラは、イベント入力をそれぞれ含んでもよく、メモリブロックコントローラの各メモリブロックコントローラの状態機械は、イベント入力の信号に基づいて状態間を移行して、メモリブロックのうちメモリブロックコントローラに対応するメモリブロックの電力モードのハードウェア制御を提供する。
【0015】
システムは、メモリデコーダをさらに備えてもよく、メモリブロックコントローラの各メモリブロックコントローラはイベント入力を含み、メモリデコーダは、メモリアドレスを復号して、メモリブロックのうちどれがメモリアドレスと関連付けられるかを決定し、メモリブロックコントローラのうちメモリアドレスと関連付けられたメモリブロックに対応するメモリブロックコントローラのイベントラインにイネーブル信号を適用して、メモリブロックコントローラのうち対応する1つに対する状態機械を、メモリアドレスと関連付けられたメモリブロックの動作電力モードに対応する高電力状態に移行させるように構成される。
【0016】
メモリブロックコントローラの各メモリブロックコントローラは、イベント入力を含んでもよく、メモリブロックコントローラの各メモリブロックコントローラは、
イベント入力におけるイネーブル信号の検出に応答して、メモリブロックコントローラによって操作される状態機械を、メモリブロックコントローラに対応するメモリブロックの動作電力モードに対応する高電力状態へと移行して、メモリブロックにアクセスしてメモリブロックからデータを読み取るのを容易にし、
イベント入力においてイネーブル信号を検出しなくなったことに応答して、メモリブロックコントローラによって操作される状態機械を、メモリブロックコントローラに対応するメモリブロックがアクセス不能である複数の電力モードに対応する複数の低電力状態のうち1つへと移行させ、複数の低電力状態のうち1つは、メモリブロックコントローラの制御レジスタの値に基づくように構成される。
【0017】
デバイスは、メモリを共有する複数のサブシステムを有するシステムオンチップ(SoC)をさらに備えてもよい。
【0018】
メモリ電力コントローラは、メモリブロックに電力供給してメモリブロックと関連付けられたメモリアドレスへのアクセスを容易にするように、制御レジスタを介してメモリブロックコントローラに指示することによって、メモリブロックのソフトウェア制御を提供するようにさらに構成されてもよい。
【0019】
メモリブロックコントローラは、デバイスのメモリデコーダからコマンドを受信したことに応答して、メモリブロックに電力供給してメモリブロックと関連付けられたメモリアドレスへのアクセスを容易にすることによって、メモリブロックのハードウェア制御を提供するようにさらに構成されてもよい。
【0020】
メモリブロックコントローラは、メモリ電力コントローラによって提供されるソフトウェア制御とは独立して、メモリブロックのハードウェア制御を提供してもよい。
【0021】
本開示の第2の態様によれば、人工現実システムにおけるメモリの階層型電力制御のための方法が提供され、方法は、第1のメモリブロックコントローラによって、複数の電力モードのうち第1のメモリブロックが動作する電力モードを制御することであって、メモリが、互いに独立して複数の電力モードで動作するように構成可能な第1のメモリブロックおよび第2のメモリブロックに分割されることと、第1のメモリブロックとは独立して、第2のメモリブロックコントローラによって、複数の電力モードのうち第2のメモリブロックが動作する電力モードを制御することと、メモリ電力コントローラによって、第1および第2のメモリブロックがアクセスされていないとき、第1および第2のメモリブロックに対して複数の電力モードのうち1つを選択するように第1および第2のメモリブロックコントローラに指示するように、第1および第2のメモリブロックコントローラのそれぞれの制御レジスタを制御することと、を含む。
【0022】
方法は、第1のメモリブロックコントローラによって、複数の電力モードのうち第1のメモリブロックが動作する電力モードを制御するように、第1の状態機械を操作することと、第2のメモリブロックコントローラによって、複数の電力モードのうち第2のメモリブロックが動作する電力モードを制御するように、第2の状態機械を操作することと、を含む。
【0023】
第1の状態機械は、複数の電力モードの1つにそれぞれ対応する複数の状態を備えてもよく、方法は、第1のメモリブロックコントローラによって、第1の状態機械の現在の状態に基づいて第1のメモリブロックを制御することをさらに含む。
【0024】
方法は、メモリデコーダによって、メモリアドレスを復号して、第1および第2のメモリブロックのうちどれがメモリアドレスと関連付けられるかを決定することと、第1のメモリブロックがメモリアドレスと関連付けられるという決定に応答して、メモリデコーダによって、第1のメモリブロックに対応する第1のメモリブロックコントローラのイベントラインにイネーブル信号を適用して、第1の状態機械の状態を、複数の電力モードのうちの電力モードに対応する高電力状態に移行させることと、をさらに含んでもよい。
【0025】
方法は、イベントラインにおいてイネーブル信号を検出しなくなったことに応答して、第1のメモリブロックコントローラによって、第1の状態機械を、複数の電力モードのうち第1のメモリブロックが動作する電力モードに対応する複数の低電力状態のうち1つに移行させることであって、複数の低電力状態のうち1つが、第1のメモリブロックコントローラの制御レジスタの値に基づくことをさらに含んでもよい。
【0026】
方法は、第1および第2のメモリブロックに電力供給して第1および第2のメモリブロックと関連付けられたメモリアドレスへのアクセスを容易にするように、制御レジスタを介して第1および第2のメモリブロックコントローラに指示することにより、メモリ電力コントローラによって、第1および第2のメモリブロックのソフトウェア制御を提供することをさらに含んでもよい。
【0027】
方法は、メモリデコーダから第1のコマンドを受信したことに応答して、第1のメモリブロックに電力供給して第1のメモリブロックのメモリアドレスへのアクセスを容易にすることにより、第1のメモリブロックコントローラによって、第1のメモリブロックのハードウェア制御を提供することと、メモリデコーダから第2のコマンドを受信したことに応答して、第2のメモリブロックに電力供給して第2のメモリブロックのメモリアドレスへのアクセスを容易にすることにより、第2のメモリブロックコントローラによって、第2のメモリブロックのハードウェア制御を提供することと、をさらに含んでもよい。
【0028】
本開示の第3の態様によれば、命令を含むコンピュータ可読媒体が提供され、命令は、実行されると、人工現実システムのメモリ電力管理システムに、第1のメモリブロックコントローラを用いて、複数の電力モードのうち第1のメモリブロックが動作する電力モードを制御させ、メモリが、互いに独立して複数の電力モードで動作するように構成可能な第1のメモリブロックおよび第2のメモリブロックに分割され、第1のメモリブロックとは独立して、第2のメモリブロックコントローラを用いて、複数の電力モードのうち第2のメモリブロックが動作する電力モードを制御させ、第1および第2のメモリブロックがアクセスされていないとき、第1および第2のメモリブロックに対して複数の電力モードのうち1つを選択するように、第1および第2のメモリブロックにそれぞれ結合された第1および第2のメモリブロックコントローラのそれぞれの制御レジスタを制御させる。
【0029】
本明細書に開示する方法はコンピュータ実装されてもよい。
【0030】
本開示の技術における1つまたは複数の例の詳細を、添付図面および以下の記載において説明する。技術の他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明白となるであろう。
【図面の簡単な説明】
【0031】
図1A】本開示に記載する技術による、ランダムアクセスメモリの階層型電力管理を可能にする一例のマルチデバイス人工現実システムを示す図である。
図1B】本開示に記載する技術による、ランダムアクセスメモリの階層型電力管理を可能にする一例の人工現実システムを示す図である。
図2】本開示に記載する技術による、ランダムアクセスメモリの階層型電力管理を可能にする一例のHMDおよび一例の周辺デバイスを示す図である。
図3】本開示に記載する技術による、1つまたは複数のデバイスが、各デバイス内の1つまたは複数のシステムオンチップ(SoC)集積回路を使用して、ランダムアクセスメモリの階層型電力管理を有して実現される、マルチデバイス人工現実システムの分散アーキテクチャの一実現例を示すブロック図である。
図4】本開示に記載する技術による、階層型電力管理システムのブロック図である。
図5A】本開示に記載する技術による、図4の階層型電力管理システムの態様をさらに詳細に示すブロック図である。
図5B】本開示に記載する技術による、図4の階層型電力管理システムの態様をさらに詳細に示すブロック図である。
図5C】本開示に記載する技術による、図4の階層型電力管理システムの態様をさらに詳細に示すブロック図である。
図6A】本開示に記載する技術による、階層型電力管理システムにおけるメモリブロックコントローラの一例の状態機械のブロック図である。
図6B】本開示に記載する技術による、階層型電力管理システムにおけるメモリブロックコントローラの一例の状態機械のブロック図である。
図6C】本開示に記載する技術による、階層型電力管理システムにおけるメモリブロックコントローラの一例の状態機械のブロック図である。
図7】本開示に記載する技術による、メモリブロックの電力状態を制御する一例の動作モードのフローチャートである。
図8】本開示に記載する技術による、階層型電力管理システムによって制御されているメモリにアクセスする一例の動作モードのフローチャートである。
【発明を実施するための形態】
【0032】
文書および図面全体を通して、同様の参照記号は同様の要素を指す。
【0033】
ランダムアクセスメモリ(RAM)の電力管理は、電池作動システムの充電間の使用量を増加させることができる。RAMは、(i)メモリがアクセス可能であるオペレーティング(OPR)モード、(ii)クロックが使用不能にされるナップ(NAP)モード、(iii)格納データの完全性は維持されるが、供給電圧がメモリの読取りもしくは書込みに対して指定された電圧を下回り、クロックが使用不能にされる保持(REN)モード、および/または(iv)格納データの完全性が維持されないように供給電圧が低減されるパワーダウン(PSO)モードなど、異なる電力消費特性を有する離散的な電力モードをサポートする。モード間の移行には供給電圧としての遅延を要することがあり、アクセスされるメモリにはクロックが供給される。概して、メモリはバースト(例えば、高い読取り/書込み活性の期間およびそれに続く低活性の期間)で読み取られる。そのため、メモリの使用シナリオに応じて、消費される電力とメモリが送達する性能とのトレードオフを提供するように、メモリの異なる部分を選択的に異なる電力モードにすることができる。
【0034】
本明細書で使用するとき、「電力モード」は、メモリブロックの動作条件(例えば、供給電圧、駆動クロック周波数など)を説明する。例えば、高電力モードは、メモリブロックが、メモリブロックに対する読取りおよび書込みアクセスを可能にするのに十分な供給電圧および駆動クロック周波数を受信しており、メモリブロックと関連付けられた消費電力が他の電力モードに比べて比較的高い、電力モードを説明してもよい。別の例として、低電力モードは、メモリブロックが、メモリブロック性能が低下する、および/またはメモリブロックがアクセス不能であるような、供給電力および/または駆動クロック周波数を受信しており、メモリブロックと関連付けられた消費電力が高電力モードよりも比較的低い、電力モードを説明してもよい。本明細書で使用するとき、「電力状態」は、メモリブロックが対応する電力モードで操作されるようにする、状態機械の状態を指す。
【0035】
複合現実システムでは、異なるデバイス(例えば、ヘッドマウントディスプレイ、周辺デバイスなど)が協働して、複合現実体験を提供する。これらのデバイスは、対応するSoCの機能性をサポートするランダムアクセスメモリ(RAM)(例えば、スタティックRAM(SRAM)など)を含む、1つまたは複数のシステムオンチップ(SoC)を含む。メモリは、階層構造へと組織化されて、広範囲の電力管理ポリシーを促進するとともに、メモリの利用シナリオを反映するように、より粒度の高い電力制御をサポートする。メモリは、例えば、アクセスしていないときのデフォルト電力状態で動作するように、(例えば、SoC電力管理回路によって)制御されてもよい、1つまたは複数のセグメントへと組織化されてもよい。例えば、10Mbのメモリが10個の1Mbのメモリセグメントに分割されてもよい。かかる例では、SoC電力管理回路は、一部のセグメントに電力投入し、他のセグメントはオフのままにしてもよい。一部のセグメントはNAP状態をデフォルト設定にし、他のセグメントはREN状態をデフォルト設定にしてもよい。メモリセグメントは、互いに独立した電力モードで動作することができる、メモリブロックに分割されてもよい。例えば、1Mbのメモリセグメントが10個の64kbのメモリブロックに分割されてもよい。ソフトウェアおよび/またはハードウェア制御を通して、メモリブロックは、アクセスされたときはOPR状態に置かれ、アクセスされないときはデフォルト電力状態に置かれてもよい。メモリ電力モードは、メモリに対する直接ソフトウェア入力(例えば、直接ソフトウェア制御)によって直接制御することができる。しかしながら、このソフトウェア制御は(例えば、後述する階層構造と比較して)低速である場合が多い。例えば、直接ソフトウェア制御が、個々のメモリブロックのどれがどの電力モードに変化するかを決定し、個々のメモリブロックをアドレスして指定の電力モードにすることは、ソフトウェアのオーバーヘッドを要し、そのことが遅延を引き起こすことがある。これにより、メモリアクセス遅延の影響を低減するため、メモリアクセス遅延の増加、または一度に電力投入する必要があるメモリブロックの数の増加がもたらされることがある。
【0036】
後述するように、SoCのメモリの電力モードは、例えば、SoCのサブシステムの電力状態をやはり管理する電力管理回路の一部であってもよい、メモリ電力マネージャ(「クラスタマネージャ」と呼ばれることがある)によって制御される。メモリセグメントは、RAMドメインコントローラ(RDC)(「メモリ電力コントローラ」と呼ばれることがある)によって制御される。メモリブロックは、RAMドメインブロック(RDB)(「メモリブロックコントローラ」の例であって場合によってはそのように呼ばれる)によって制御される。メモリ電力マネージャは複数のRDCを制御してもよく、複数のRDCが複数のRDBを制御してもよい。RDCおよびRDBにより、メモリ電力マネージャは、階層型の方式でSoCのSRAMに対して微調整または粗調整を適用してもよい。間接的なソフトウェア制御がハードウェア制御と組み合わされたこの階層構造により、メモリがアクセスされていない間、システム要件に応じてシステムが異なる粒度のメモリに対して電力モードを設定し、(ハードウェア制御を介して)メモリにアクセスする際にそれらの電力モードを実現することが容易になる。これにより、メモリアクセスを実質的に低速にすることなく、または必要以上の数のメモリブロックに電力投入することなく、アクセスする必要があるメモリブロックに対するより高速のメモリアクセスが容易にすることができる。したがって、RDCおよびRDBは、直接ソフトウェア制御と比較して、アクセス時間の低減、および/またはより標的を定めたメモリアクセスをもたらすことができる。
【0037】
メモリ電力マネージャは、例えば、複合現実システムの電力管理状態を補足する、電力制御ポリシーを設けてもよい。例えば、メモリ管理および/または電力管理サブシステムは、特定のメモリブロックが他のメモリブロックよりも高頻度でアクセスされると決定してもよい。かかるシナリオでは、RDCは、高頻度でアクセスされるメモリブロックと関連付けられた制御レジスタを使用して、RDBが、それらのメモリブロックがアクセスされていないときは1つの低電力モードに入れるようにしてもよい。RDCは、低頻度でアクセスされるメモリブロックと関連付けられた制御レジスタを使用して、RDBが、それらのメモリブロックがアクセスされていないときは別の低電力モードに入れるようにしてもよい。RDCは、制御レジスタに書き込んで、かつ/またはRDBの信号線を操作して、対応するメモリブロックの電力モードを制御する。いくつかの例では、RDBがソフトウェア制御を使用して動作するとき、RDCは、RDB制御レジスタおよび/または信号線を使用して、対応するRDBを介してメモリブロックの電力状態を制御する(例えば、RDCは、制御レジスタおよび/または信号線を介して状態遷移を行う)。例えば、SoCのサブシステムが、特定のメモリブロックがアクセスされる予定であることを積極的に示している場合、RDCは、制御レジスタおよび/または信号線を使用して、RDBをRET状態からOPR状態へと遷移してもよい。加えてまたは代わりに、RDBがハードウェア制御を使用して動作するとき、RDCは、制御レジスタおよび/または信号線を使用して、対応するメモリブロックがアクセスされた後にどの状態に入るかを規定する(例えば、RDCは、RDBがOPR状態から遷移する低電力状態を制御する)。例えば、RDCは、ハードウェアがRDBをOPR状態にするのを停止した後、RDBを制御してRET状態に戻してもよい。
【0038】
RDBはそれぞれ、状態機械、イベント入力、ならびに制御レジスタおよび/または信号線を含む。制御レジスタおよび/または信号線はRDCに通信可能に結合される。イベント入力はメモリデコーダに通信可能に結合される。RDBは、状態機械の現在の状態に基づいて、関連するメモリブロックの電力モードを制御する。状態機械の現在の状態は、イベント入力時の信号、および/または制御レジスタのコンテンツ、または信号線の値に基づく。RDBは、ハードウェア制御(イベントラインによってトリガされる状態遷移)および/またはソフトウェア制御(制御レジスタによってトリガされる状態遷移)で動作してもよい。例えば、イベントラインにおけるイベント信号は、状態機械をOPR状態へと遷移させてもよい。これにより、RDBが電圧およびクロック信号をメモリブロックに供給して、該メモリブロックと関連付けられたメモリアドレスにアクセスできるようになる。イベント信号が停止すると、制御レジスタのコンテンツが状態機械をRET状態へと遷移させてもよく、これによってRDBが供給電圧を低下させ、該メモリブロックに対してクロックを使用不能にする。
【0039】
図1Aは、ヘッドマウントデバイス(HMD)102および周辺デバイス104を含む、マルチデバイス人工現実システム100を示す図である。図示されるように、HMD102は、一般的に、ユーザ106によって装着され、人工現実コンテンツ108をユーザ106に対して提示するための、電子ディスプレイおよび光学アセンブリを含む。加えて、HMD102は、HMD102の運動を追跡する1つまたは複数のセンサ(例えば、加速度計)を含む。HMD102は、1つまたは複数の画像キャプチャデバイス110、例えばカメラ、ラインスキャナ、眼底撮影ハードウェアなどを含んでもよい。画像キャプチャデバイス110は、周囲の物理的環境の画像データをキャプチャするために構成されてもよい。いくつかの例では、画像キャプチャデバイス110は、ユーザ認証および他の目的のため、ユーザ106の顔画像、網膜スキャン、虹彩スキャンなどをキャプチャするように構成された、内側に面するカメラハードウェアおよび/またはスキャニングハードウェアを含んでもよい。HMD102は、この例では、(例えば、無線通信またはテザリングで)周辺デバイス104と通信するものとして示されている。周辺デバイス104は、HMD102と通信する共同処理デバイスを表す。HMD102および/または周辺デバイス104は、人工現実アプリケーションを実行して、ユーザ106に対して表示する人工現実コンテンツ108を構築してもよい。例えば、HMD102および/または周辺デバイス104は、一般的にはHMD102の視野である、基準フレームに対する追跡姿勢情報および計算姿勢情報に基づいて、人工現実コンテンツを構築してもよい。
【0040】
図1Aに示されるように、マルチデバイス人工現実システム100の1つまたは複数のデバイスは、ネットワーク112などのコンピューティングネットワークに接続されてもよい。ネットワーク112は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、Wi-Fi(商標)ベースのネットワークもしくは5Gネットワーク、Ethernet(登録商標)ネットワーク、メッシュネットワーク、短距離無線(例えば、Bluetooth(登録商標)通信媒体、ならびに/または他の様々なコンピュータ相互接続インフラストラクチャおよび規格などの、有線ネットワークおよび/または無線ネットワークを組み込んでもよい。ネットワーク112は、公衆ネットワーク(例えば、インターネット)へ、私設ネットワーク(例えば、教育機関、企業、政府機関などによって実装されることがあるものなど)へ、または公衆ネットワークのインフラストラクチャを使用して実装された私設ネットワーク(例えば、インターネットを通じてトンネルされる仮想私設ネットワーク「VPN」)など、様々なレベルのネットワークアクセスをサポートしてもよい。
【0041】
図1Aはまた、マルチデバイス人工現実システム100に含まれるか、またはネットワーク112を介してマルチデバイス人工現実システム100に結合されてもよい、様々な任意のデバイスを示している。これらのデバイスの任意の性質は、破線の境界線を用いて図1Aに示されている。図1Aに示される任意のデバイスの一例はコンソール114である。コンソール114を含む実現例では、コンソール114は、周辺デバイス104と、(またそれにより、間接的にHMD102と)通信して、HMD102がユーザ106に対して出力する人工現実コンテンツを処理してもよい。図1Aに示される任意のハードウェアの別の例は、外部センサ116によって表される。マルチデバイス人工現実システム100は、外部センサ116および/または外部カメラハードウェアを使用して、ユーザ106が位置する実世界の物理的環境内の三次元(3D)情報をキャプチャしてもよい。
【0042】
一般に、マルチデバイス人工現実システム100は、実世界の3D物理的環境からキャプチャされた情報を使用して、人工現実コンテンツ108を描画してユーザ106に対して表示する。図1Aの例では、ユーザ106は、HMD102および周辺デバイス104の組み合わせで実行する人工現実アプリケーションによって構築され描画される人工現実コンテンツ108を見る。いくつかの例では、人工現実コンテンツ108は、実世界像(例えば、周辺デバイス表現104’の形態の周辺デバイス104、ユーザ106が現在位置している物理的環境の壁の表現、ユーザ106が周辺デバイス104を持っている手の表現など)を、仮想オブジェクト(例えば、仮想コンテンツアイテム118Aおよび118B、仮想ユーザインターフェース120など)と重ね合わせた組み合わせを含んで、HMD102のディスプレイハードウェアを介してユーザ106に表示される拡張現実体験または複合現実体験を作成してもよい。
【0043】
いくつかの例では、仮想コンテンツアイテム118Aおよび118B(集合的に、仮想コンテンツアイテム118)は、人工現実コンテンツ108内の特定の位置にマッピングされてもよい。例として、仮想コンテンツアイテム118は、人工現実コンテンツ108内の特定の位置にピン止め、係止、または配置されてもよい。仮想コンテンツアイテムの位置は、例として、人工現実コンテンツ108で再現される実世界像の壁の1つに対して、または地面に対して固定されてもよい。仮想コンテンツアイテムの位置は、非現定例として、周辺デバイス表現104’に対して、またはユーザ106の追跡された視線もしくは視野(FoV)に対して可変であってもよい。いくつかの例では、人工現実コンテンツ108内における仮想コンテンツアイテムの特定の位置は、ユーザ106が現在位置している実世界の物理的環境内(例えば、物理的オブジェクトの表面上)の位置と関連付けられる。
【0044】
この例では、周辺デバイス104は、マルチデバイス人工現実システム100のコンピューティングプラットフォーム上で実行する人工現実アプリケーションが仮想ユーザインターフェース120を重ねる表面を有する、物理的な実世界デバイスである。周辺デバイス104は、存在感知表面に触れているかまたは存在感知表面の位置の上に浮いている1つまたは複数のオブジェクト(例えば、指、スタイラス)の存在を検出することによって、ユーザ入力を検出する、1つまたは複数の存在感知表面を含んでもよい。いくつかの例では、周辺デバイス104は、ディスプレイなど、周辺デバイス104の入出力(I/O)構成要素を形成する、存在感知表面に統合されたディスプレイなど、1つまたは複数の出力デバイスを含んでもよい。
【0045】
いくつかの例では、周辺デバイス104は、スマートフォン、タブレットコンピュータ、個人情報端末(PDA)、または他の手持ち式デバイスなど、様々なポータブルデバイスの形状因子を有してもよい。他の例では、周辺デバイス104は、いわゆる「スマートウォッチ」、「スマートリング」、または他のウェアラブルデバイスなど、様々なウェアラブルデバイスの形状因子を有してもよい。いくつかの例では、周辺デバイス104は、キオスクまたは他の定置もしくは移動システムの一部であってもよい。ディスプレイハードウェアを統合するものとして上述しているが、周辺デバイス104は、すべての実現例において必ずしもディスプレイハードウェアを含まなくてもよい。
【0046】
図1Aに示される例の人工現実体験では、仮想コンテンツアイテム118は、ユーザ106が位置する実世界の物理的環境の壁の視覚表現上における位置にマッピングされる。図1Aの例はまた、仮想コンテンツアイテム118が、人工現実コンテンツ108内でのみ壁の視覚表現上に部分的に見えることを示しており、仮想コンテンツアイテム118が、ユーザ106が位置する実世界の物理的環境に存在する任意のアイテムを表さないことを示している。仮想ユーザインターフェース120は、周辺デバイス表現104’に表されるような、周辺デバイス104の表面にマッピングされる。マルチデバイス人工現実システム100は、人工現実コンテンツ108の一部としてHMD102を介して表示する仮想ユーザインターフェース120を、周辺デバイス104の特定の表面の位置に対して係止されたユーザインターフェース位置に描画する。
【0047】
図1Aは、仮想ユーザインターフェース120が、周辺デバイス表現104’上に重ねられて(またしたがって、人工現実コンテンツ108内でのみ)見えることを示しており、仮想ユーザインターフェース120に表される仮想コンテンツが、ユーザ106が位置する実世界の物理的環境に存在しないことを示している。マルチデバイス人工現実システム100は、仮想コンテンツアイテムの位置の少なくとも一部分がユーザ106のFoV内にあるという決定に応答して、1つまたは複数の仮想コンテンツアイテムを描画してもよい。例えば、マルチデバイス人工現実システム100は、周辺デバイス104がユーザ106のFoV内にある場合のみ、周辺デバイス104上に仮想ユーザインターフェース120を描画してもよい。
【0048】
マルチデバイス人工現実システム100の様々なデバイスは、各デバイスが、1つまたは複数の物理的デバイス内の別個の物理的電子デバイスおよび/または別個の集積回路であってもよいように、人工現実環境内で併せて動作してもよい。この例では、周辺デバイス104はHMD102と動作がペアリングされて、人工現実体験を提供するように共同で動作してもよい。例えば、周辺デバイス104およびHMD102は、共同処理デバイスとして互いに通信してもよい。一例として、ユーザが、周辺デバイス表現104’上に重ねられた仮想ユーザインターフェース120の仮想ユーザインターフェース要素のうち1つに対応する位置において、仮想環境内でユーザインターフェースがトリガするジェスチャを実施すると、マルチデバイス人工現実システム100は、ユーザインターフェースを検出し、HMD102を介して描画され表示されるアクションを実施する。
【0049】
本開示に記載する技術によれば、周辺デバイス104およびHMD102はそれぞれ、コアプリケーションプロセッサ、暗号化エンジン、復号エンジン、センサアグリゲータ、ディスプレイコントローラなどとして動作するSoCなど、上述した人工現実アプリケーションの態様をサポートするように構成された、1つまたは複数のSoC集積回路を含んでもよい。周辺デバイス104およびHMD102はそれぞれ複数のSoCを含んでもよいが、図1Aは、例示および考察を簡単にするため、HMD102のHMD SoC122および周辺デバイス104の周辺SoC124のみを示している。デバイス(例えば、周辺デバイス104、HMD102)の機能性を促進するため、SoC122および124はRAMなどのメモリを含む。SoC122および124のどちらかまたは両方は、電力管理技術を運用して、メモリの消費電力を含む消費電力を低減してもよい。
【0050】
例えば、SoC122(例えば)のメモリは、1つまたは複数のメモリセグメントに分割されてもよい。例えば、10Mbのメモリが10個の1Mbのメモリセグメントに分割されてもよい。メモリセグメントはそれぞれ異なるRDCと関連付けられる。各メモリセグメントは、異なる電力モードで独立して動作することができるメモリブロックに分割される。例えば、1Mbの各メモリセグメントが64mbのメモリブロックに分割されてもよい。メモリブロックはそれぞれ異なるRDBと関連付けられる。メモリセグメントのRDCは、関連するメモリブロックのRDBに結合されて、RDBの状態機械の状態を制御する。SoC122のサブシステムがメモリブロックの1つと関連付けられたメモリアドレスにアクセスすると、対応するRDBはOPR状態へと遷移して、読取りおよび書込みアクセスを可能にするのに十分な供給電圧を提供する。サブシステムは、いくつかのメモリアドレスからデータを読み取ってもよい。サブシステムがメモリアドレスにアクセスする必要がなくなると(例えば、読取り動作が完了する、異なるメモリブロックと関連付けられたメモリアドレスへのアクセスを開始するなど)、RDBの状態機械は、(例えば、制御レジスタまたは信号線を介して)関連するRDCによって提供される電力制御命令にしたがって、より低電力の状態(例えば、NAP状態、REN状態、PSO状態など)へと遷移する。
【0051】
このように、SoC122、124は、RDBが、例えばメモリブロックへのメモリアクセスに基づいて、メモリブロックに対して独立した微細な制御を提供し、RDCが、例えば人工現実システムで実行するソフトウェアからの需要に基づいて、複数の異なるRDB(および対応するメモリブロック)に対して粗い制御を提供してもよい、階層型電力管理を提供してもよい。これは、システムのメモリによる消費電力を低減して、電池寿命を延長し、ユーザ体験を改善することができる。
【0052】
図1Bは、別の例のマルチデバイス人工現実システム126を示す図である。図1Bの例では、マルチデバイス人工現実システム126は、外部カメラ128Aおよび128B(集合的に、「外部カメラ128」)と、HMD102A~102C(集合的に、「HMD102」)と、コンソール114と、センサ116とを含む。図1Bに示されるように、マルチデバイス人工現実システム126は、それぞれのユーザ106に対応する基準フレームの現在の視点に基づいて、コンソール114および/またはHMD102で実行する人工現実アプリケーションが、ユーザ106A~106C(集合的に、「ユーザ106」)それぞれに対して人工現実コンテンツを提示する、マルチユーザ環境を表す。すなわち、この例では、人工現実アプリケーションは、HMD102それぞれに関して基準フレームに対する姿勢情報を追跡し計算することによって、人工現実コンテンツを構築する。マルチデバイス人工現実システム126は、外部カメラ128および/またはHMD102から受信した情報を使用して、ユーザ106による運動および/またはユーザ106に関する追跡情報など、実世界環境内の3D情報をキャプチャして、HMD102の対応する基準フレームに対する更新された姿勢情報を計算するのに使用する。
【0053】
HMD102は、マルチデバイス人工現実システム126内で同時に動作する。図1Bの例では、任意のユーザ106が、人工現実アプリケーションの「プレーヤー」または「参加者」であってもよく、任意のユーザ106が、人工現実アプリケーションの「観客」または「観察者」であってもよい。図1BのHMD102はそれぞれ、図1AのHMD102と実質的に類似の方式で動作してもよい。例えば、HMD102Aは、図1AのHMD102と実質的に同様に動作してもよく、ユーザ106Aの手の移動を追跡することによってユーザ入力を受信してもよい。HMD102Aは統合された画像キャプチャデバイス110Aを含む。
【0054】
HMD102はそれぞれ、それぞれのユーザに面する人工現実プラットフォームを実装し(または、周辺デバイス104を有するHMD102Aの場合のように、プラットフォームを共同処理デバイスと共実装し)、それぞれの人工コンテンツを出力するが、単に例示を簡単にする目的で、HMD102Aによって出力される人工現実コンテンツ108のみが図1Bに示される。図1Bに示されるように、必須ではないものの、HMD102の2つ以上が同じ形状因子に適合してもよい。ゴーグルの形状因子および眼鏡の形状因子を含む、HMD102の様々な形状因子が図1Bに示される。いくつかの使用例シナリオでは、HMD102Bおよび/または102Cは、周辺デバイス104に関して記載したのとほぼ対応する特徴を実現する、ポータブルデバイスともペアリング(例えば、無線結合またはテザリング)されてもよい。
【0055】
図1Aに記載した例と同様に、HMD102C(またはHMD102のいずれか)は、暗号化パケットをHMD SoC122から周辺SoC124へと送信または受信する際の暗号化および復号動作の性能を改善する、無線通信システムを含んでもよい。
【0056】
本開示の技術によれば、HMD SoC122および周辺SoC124はそれぞれ複数のサブシステムを含み、各サブシステムは、人工現実体験のための音声処理、人工現実体験のための動画処理、ユーザ106に対するセキュリティ情報、またはその他など、サポートしている特定の機能性専用である。上述したように、SoC122および124は、これらのサブシステムがメモリにアクセスする際にメモリの階層型電力管理を提供する、RDCおよびRDBを含む。
【0057】
図2は、周辺デバイス104と通信しているHMD102の一例を示す図である。この例では、HMD102は、前部の剛体と、例えばユーザ106の耳の上に載せることによって、HMD102をユーザ106に固定する2つのステムとを含む。加えて、HMD102は、人工現実コンテンツをユーザ106に提示するように構成された、内側に面する電子ディスプレイ200を含む。電子ディスプレイ200は、液晶ディスプレイ(LCD)、量子ドットディスプレイ、ドットマトリックスディスプレイ、発光ダイオード(LED)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、陰極線管(CRT)ディスプレイ、電子インク、または視覚的出力を生成することができる単色、カラー、もしくは他の任意のタイプのディスプレイなど、任意の好適な表示技術を含むか、該技術であるか、または該技術の一部であってもよい。いくつかの例では、電子ディスプレイ200は、ユーザ106の各目に対して別個の画像を提供する立体ディスプレイを含む。いくつかの例では、HMD102の前部の剛体に対するディスプレイ200の知られている向きおよび位置は、HMD102およびユーザ106の現在の視点にしたがって人工現実コンテンツを描画するため、HMD102の位置および向きを追跡するときの、ローカル原点とも呼ばれる基準フレームとして使用される。
【0058】
HMD102は、図2の例では眼鏡の形状因子をとっている。いくつかの例では、電子ディスプレイ200は、2つのセグメントなど、複数のセグメントに分けられてもよく、各セグメントは、HMD102の前部の剛体に配設された別個のレンズに対応する。図2による他の例では、電子ディスプレイ200は、HMD102の前部の剛体の両方のレンズおよびレンズを接続するブリッジ(即ち、鼻上部分)にわたる、連続する表面を形成してもよい。図2に示される形状因子によるいくつかの例では、電子ディスプレイ200はまた、前部の剛体のレンズをステムに、または任意にステム自体の部分に接続する、HMD102の部分を包含してもよい。図2に示されるHMD102の形状因子の文脈における、電子ディスプレイ200のこれらの様々な設計は、異なる視覚能力、眼球運動の特異性などを有するユーザに対してアクセス性を改善する。他の例では、HMD102は、HMD102をユーザ106の頭部に固定するバンドを備えたヘッドセットまたはゴーグルの一般的な形状因子など、他の形状因子をとってもよい。
【0059】
図2に示される例では、HMD102は、HMD102の現在の加速度を示すデータを出力する1つもしくは複数の加速度計(慣性測定装置「IMU」とも呼ばれる)、HMD102の場所を示すデータを出力するGPSセンサ、様々なオブジェクトからのHMD102の距離を示すデータを出力するレーダーもしくはソナー、または物理的環境内におけるHMD102もしくは他のオブジェクトの場所もしくは向きの指示を提供する他のセンサなど、1つまたは複数のモーションセンサ202をさらに含む。図2に示される例では、HMD102は、統合された画像キャプチャデバイス110Aおよび110B(集合的に「画像キャプチャデバイス110」)を含む。画像キャプチャデバイス110は、静止画像カメラハードウェア、ビデオカメラハードウェア、レーザースキャナ、Doppler(登録商標)レーダースキャナ、眼底撮影ハードウェア、赤外線イメージングカメラ、深度スキャナなどを含んでもよい。画像キャプチャデバイス110は、外側に面するおよび/または内側に面する画像キャプチャハードウェアを含んでもよく、周囲の物理的環境を表す画像データをキャプチャし、また任意に、キャプチャされた画像データを前処理および/または後処理するように構成された、任意のハードウェアを含んでもよい。画像キャプチャデバイス14の外側に面するハードウェアは、ユーザ106が位置する実世界環境などであるがそれに限定されない、HMD102外の物理的環境の画像データをキャプチャしてもよい。画像キャプチャデバイス14の内側に面するカメラハードウェアは、ユーザ106の顔画像および/または網膜スキャンおよび/または体温情報など、HMD102の着用者の画像データをキャプチャしてもよい。
【0060】
図2の例では、HMD102はやはり一例の周辺デバイス104と通信している。周辺デバイス104は、無線通信リンク(例えば、Wi-Fi(商標)、Bluetooth(登録商標)などの短距離無線通信の近距離通信など)、または有線通信リンクもしくはテザリング接続、あるいは無線および有線通信リンクの任意の組み合わせなどを通じて、多数の方式でHMD102に通信可能に結合されてもよい。周辺デバイス104は、ネットワーク112を通じてデータを受信しかつ送信してもよく、それにより、周辺デバイス104とHMD102とを含む、または周辺デバイス104とHMD102の組み合わせによって形成される、人工現実システムのネットワークインターフェースとして機能してもよい。周辺デバイス104の表面204は、周辺デバイス104の入力構成要素または組み合わされた入出力構成要素を表す。表面204は、タッチスクリーン(例えば、容量性タッチスクリーン、抵抗性タッチスクリーン、表面音響波(SAW)タッチスクリーン、赤外線タッチスクリーン、光学イメージングタッチスクリーン、音響パルス認識タッチスクリーン、または他の任意のタッチスクリーン)、タッチパッド、ボタン、トラックボール、スクロールホイール、または容量性、導電性、抵抗性、音響、もしくは他の技術を使用してタッチ入力および/もしくはホバー入力を検出する他の存在感知ハードウェアなどの感知能力を含んでもよい。
【0061】
表面204は、周辺デバイス104が、表面204と直接接触することなくタッチ入力またはジェスチャ入力を受信できるようにしてもよい。ユーザ106は、これらのタッチ入力またはジェスチャ入力を周辺デバイス104に提供して、周辺デバイス104に直接、またはHMD102が配備されている人工現実システムのHMD102および/もしくは他の構成要素に間接的に、命令を提供してもよい。いくつかの例では、HMD102の処理回路は、画像キャプチャデバイス110を利用して、周辺デバイス104、ユーザ106の手または指の構成、位置、移動、および/または向きを分析して、グラフィカルキーボードを介して提供される描画するジェスチャまたはタイプするジェスチャなどのジェスチャを使用して入力を提供できるようにしてもよい。
【0062】
このように、周辺デバイス104は、様々なハードウェアおよびリソース負担をHMD102から取り払って、HMD102の低プロファイルの形状因子を可能にしてもよい。周辺デバイス104はまた、ネットワーク112を介して、HMD102と遠隔位置にあるデバイスとの間の通信仲介装置としての役割を果たしてもよい。周辺デバイス104の追加の詳細は、米国特許出願第16/506,618号(2019年7月9日付)に記載されており、その内容全体を参照により本明細書に組み込む。
【0063】
本開示の技術によれば、周辺デバイス104およびHMD102の一方または両方は、コアプリケーションプロセッサ、暗号化エンジン、復号エンジン、センサアグリゲータ、ディスプレイコントローラなどとして動作するSoCなど、上述した人工現実アプリケーションの態様をサポートするように構成された、1つまたは複数のSoC集積回路を含んでもよい。加えて、HMD SoC122および周辺SoC124はそれぞれ、1つまたは複数のサブシステムを含んでもよく、各サブシステムは、音声処理、画像およびフレーム処理、セキュリティ管理、無線通信など、サポートしている特定の機能性専用である。HMD SoC122および周辺SoC124はそれぞれ、サブシステムの動作および協働を容易にするメモリ(例えば、共有メモリ)を含む。上述したように、SoC122および124は、メモリの階層型電力管理を提供する、RDCおよびRDBを含む。
【0064】
図3は、各デバイス内のそれぞれのSoC集積回路を使用して2つ以上のデバイスが実装される、マルチデバイス人工現実システム100または126の一部分に対する分散アーキテクチャのさらに詳細な一例の実装を示すブロック図である。図3は、HMD102が周辺デバイス104と併せて動作する一例を示している。やはり、周辺デバイス104は、マルチデバイス人工現実システム100または126が仮想コンテンツを重ねる表面を有する、物理的な実世界デバイスを表す。周辺デバイス104は、存在感知表面204に触れているかまたは存在感知表面204の位置の上に浮いている1つまたは複数のオブジェクト(例えば、指、スタイラスなど)の存在を検出することによって、ユーザ入力を検出する、1つまたは複数の存在感知表面204を含んでもよい。いくつかの例では、周辺デバイス104は、スマートフォン、タブレットコンピュータ、個人情報端末(PDA)、または他の手持ち式デバイスのいずれかに類似した形状因子を有してもよい。他の例では、周辺デバイス104は、スマートウォッチ、いわゆる「スマートリング」、または他のウェアラブルデバイスの形状因子を有してもよい。周辺デバイス104はまた、キオスクまたは他の定置もしくは移動システムの一部であってもよい。上述したように、HMD102は、人工現実アプリケーションの実行を可能にするように設計され構成される。
【0065】
概して、図3に示されるSoCは、分散アーキテクチャに配置される専用の集積回路の集合体を表し、各SoC集積回路は、人工現実アプリケーションの動作環境を提供するように構成された様々な専用の機能性ブロックを含む。図3は、SoC集積回路の単なる一例の配置である。マルチデバイス人工現実システムの分散アーキテクチャは、SoC集積回路の任意の集合および/または配置を含んでもよい。
【0066】
この例では、HMD102のSoC300Aは、追跡サブシステム304を含む機能性ブロックと、他の様々なサブシステム306Aおよび306Bとを備える。サブシステム304、306A、および306Bは、1つまたは複数の規定された機能をSoC300Aに提供する集積回路のグループである。SoC300AはHMD SoC122の一例であってもよい。
【0067】
一例として、追跡サブシステム304は、視線追跡310、手追跡312、深度追跡314、ならびに/または同時ローカリゼーションおよびマッピング(SLAM)316のための機能性ブロックを提供する。例えば、HMD102は、HMD102の現在の加速度を示すデータを出力する1つもしくは複数の加速度計(慣性測定装置「IMU」とも呼ばれる)、HMD102の場所を示すデータを出力するGPSセンサ、様々なオブジェクトからのHMD102の距離を示すデータを出力するレーダーもしくはソナー、または物理的環境内におけるHMD102もしくは他のオブジェクトの場所もしくは向きの指示を提供する他のセンサから、入力を受信してもよい。HMD102はまた、1つまたは複数の画像キャプチャデバイス110から画像データを受信してもよい。画像キャプチャデバイス110は、物理的環境を表す画像データを出力するように構成された、ビデオカメラ、レーザースキャナ、Dopplerレーダースキャナ、深度スキャナなどを含んでもよい。より具体的には、画像キャプチャデバイスは、HMD102の視点と一般的に対応する、画像キャプチャデバイスの視野内にある、物理的環境内のオブジェクト(周辺デバイス104および/または手を含む)を表す画像データをキャプチャする。感知データおよび/または画像データに基づいて、追跡サブシステム304は、例えば、HMD102の基準フレームに対する現在の姿勢を決定し、現在の姿勢にしたがって人工現実コンテンツを描画する。
【0068】
サブシステム306Aおよび306Bは、HMD102に対して専用の機能を提供する。サブシステム306Aおよび306Bは、例えば、セキュリティ処理、グラフィック処理、インターフェース処理、音声処理、および/またはディスプレイ処理などを含んでもよい。セキュリティ処理サブシステムは、周辺デバイス104を、AR環境内で併用されるHMD102などのデバイスとペアリングするとき、安全なデバイス証明および相互認証を提供してもよい。例えば、セキュリティ処理サブシステムは、周辺デバイス104のSoCのうち1つまたは複数を認証してもよい。グラフィック処理サブシステムは、ビデオ処理装置、グラフィック処理装置、デジタル信号プロセッサ、エンコーダ、および/またはデコーダなどの様々なプロセッサを含んで、周辺デバイス104から受信した表面データおよびテクスチャデータを処理してもよい。インターフェース処理サブシステムは、ジェスチャ認識を提供してジェスチャベースのインターフェースをユーザ106に提供するため、例えば、追跡サブシステム304および/または画像キャプチャデバイス104によって生成された信号を処理してもよい。音声処理サブシステムは、例えば、音声を処理し、HMD102に組み込まれた音声出力デバイスに音声を出力する、コーデックおよび/またはドライバを含んでもよい。ディスプレイ処理サブシステムは、例えば、HMD102のSoCの間でテクスチャデータおよび表面データを通信するインターフェースを提供してもよい。
【0069】
本明細書に記載する技術によれば、SoC300Aはランダムアクセスメモリ(RAM)318を含む。いくつかの例では、RAM318は共有メモリであって、サブシステム304、306A、および306Bがそれぞれ、メモリデコーダ320を介するデータバス(「ネットワークオンチップ(NoC)」であってもよい)を通して、RAM318に通信可能に結合される。RAM318はメモリブロック(MB)322A~322Nに分割される。メモリブロック322A~322Nはともにグループ化されてメモリセグメントとなる。単純にするため、図示される例では、メモリブロック322A~322Nは単一のメモリセグメントである。メモリブロック322A~322Nは異なる電力モードであることができる。各メモリブロック322A~322Nは、メモリアドレスの逐次ブロックと関連付けられる。サブシステム304、306A、および306Bが、メモリアドレスにアクセスすると(例えば、読取りまたは書込みアクションを実施すると)、メモリデコーダ320は、アドレス内の複数のビットを使用して、どのメモリブロック322A~322Nがアクセスされるかを決定する。
【0070】
SoC300Aは電力マネージャ324を含む。電力マネージャ324は、サブシステム304、306A、および306B、ならびにRAM318を含むSoC300Aの消費電力を制御する、電力管理技術を実現する。図示される例では、RAM318の消費電力を制御するため、電力マネージャ324は、RAMドメインコントローラ(RDC)326およびRAMドメインブロック(RDB)328A~328Nを含む。図示される例は1つのRDC326を含むが、電力マネージャ324は、メモリセグメントごとに1つのRDC326を含んでもよい。さらに詳細に後述するように、RAMドメインブロック(RDB)328A~328Nは、メモリブロック322A~322Nのうち関連する1つの電力モードを制御する。RDC326はRDB328A~328Nのうち関連するものを制御する。
【0071】
SoC300Bおよび300C(「ディスプレイSoC」と呼ばれることがある)はそれぞれ、人工現実コンテンツをそれぞれのディスプレイに、例えばディスプレイ330Aおよび330B(集合的に「ディスプレイ330」)に出力する、ディスプレイコントローラを表す。この例では、ディスプレイSoC300Bは、人工現実コンテンツをディスプレイ330A上に出力するための復号ブロック336A、デコーダブロック338A、および/またはピクセルドライバ340Aと併せて、ユーザ(例えば、図1Aおよび図1Bのユーザ106)の左目334Aに対して人工現実コンテンツを出力するディスプレイ330Aのディスプレイコントローラ332Aを含んでもよい。同様に、ディスプレイSoC300Cは、人工現実コンテンツをディスプレイ330B上に出力するための復号ブロック336B、デコーダブロック338B、および/またはピクセルドライバ340Bと併せて、ユーザの右目334Bに対して人工現実コンテンツを出力するディスプレイ330Bのディスプレイコントローラ332Bを含んでもよい。ディスプレイ330は、発光ダイオード(LED)ディスプレイ、有機LED(OLED)、量子ドットLED(QLED)、電子ペーパー(電子インク)ディスプレイ、液晶ディスプレイ(LCD)、またはARコンテンツを表示する他のタイプのディスプレイを含んでもよい。図示されないが、SoC300Bおよび300Cは、SoC300Aと同様のメモリおよび電力マネージャを含んでもよい。
【0072】
周辺デバイス104は、人工現実アプリケーションをサポートするように構成されたSoC342Aおよび342Bを含む。この例では、SoC342Aは、追跡サブシステム344を含む機能性ブロックと、他の様々なサブシステム346Aおよび346Bとを備える。サブシステム344ならびに346Aおよび346Bは、1つまたは複数の規定された機能をSoC342Aに提供する集積回路のグループである。SoC342Aは周辺SoC124の一例であってもよい。
【0073】
追跡サブシステム344は、視線追跡348、手追跡350、深度追跡352、ならびに/または同時ローカリゼーションおよびマッピング(SLAM)354を提供する機能性ブロックである。例えば、周辺デバイス104は、周辺デバイス104の現在の加速度を示すデータを出力する1つもしくは複数の加速度計(慣性測定装置「IMU」とも呼ばれる)、周辺デバイス104の場所を示すデータを出力するGPSセンサ、様々なオブジェクトからの周辺デバイス104の距離を示すデータを出力するレーダーもしくはソナー、または物理的環境内における周辺デバイス104もしくは他のオブジェクトの場所もしくは向きの指示を提供する他のセンサから、入力を受信してもよい。周辺デバイス104はまた、いくつかの例では、物理的環境を表す画像データを出力するように構成された、ビデオカメラ、レーザースキャナ、Dopplerレーダースキャナ、深度スキャナなどの、1つまたは複数の画像キャプチャデバイスから画像データを受信してもよい。感知データおよび/または画像データに基づいて、追跡システム336は、例えば、周辺デバイス104の基準フレームに対する現在の姿勢を決定し、現在の姿勢にしたがって人工現実コンテンツをHMD102に対して描画する。
【0074】
サブシステム346Aおよび346Bは、周辺デバイス104に対して専用の機能を提供する。サブシステム346Aおよび346Bは、例えば、セキュリティ処理サブシステム、ディスプレイサブシステム、グラフィックサブシステム、および/または音声サブシステムを含んでもよい。セキュリティ処理サブシステムは、HMD102のSoCのうち1つまたは複数を認証してもよい。グラフィック処理サブシステムは、ビデオ処理装置、グラフィック処理装置、デジタル信号プロセッサ、エンコーダ、および/またはデコーダなどの様々なプロセッサを含んで、SoC342Bから受信した表面データおよびテクスチャデータを処理してもよい。インターフェース処理サブシステムは、例えば、追跡サブシステム344および/またはインターフェース204によって生成された信号を処理してもよい。音声処理サブシステムは、例えば、デジタル信号プロセッサ、エンコーダ、および/またはデコーダなどを含んで、HMD102に送信される音声を処理してもよい。ディスプレイ処理サブシステムは、例えば、周辺デバイス104のSoCの間でテクスチャデータおよび表面データを通信するインターフェースを提供してもよい。
【0075】
本明細書に記載する技術によれば、上述のSoC300Aと同様に、SoC342Aはランダムアクセスメモリ(RAM)318を含む。いくつかの例では、RAM318は共有メモリであって、サブシステム344、346A、および346Bがそれぞれ、メモリデコーダ320を介するデータバス(「ネットワークオンチップ(NoC)」であってもよい)を通して、RAM318に通信可能に結合される。RAM318はメモリブロック(MB)322A~322Nに分割される。メモリブロック322A~322Nはともにグループ化されてメモリセグメントとなる。単純にするため、図示される例では、メモリブロック322A~322Nは単一のメモリセグメントである。メモリブロック322A~322Nは異なる電力モードであることができる。各メモリブロック322A~322Nは、メモリアドレスの逐次ブロックと関連付けられる。サブシステム304、306A、および306Bが、メモリアドレスにアクセスすると(例えば、読取りまたは書込みアクションを実施すると)、メモリデコーダ320は、アドレス内の複数のビットを使用して、どのメモリブロック322A~322Nがアクセスされるかを決定する。
【0076】
SoC342Aは電力マネージャ324を含む。電力マネージャ324は、サブシステム344、346A、および346B、ならびにRAM318を含むSoC342Aの消費電力を制御する、電力管理技術を実現する。図示される例では、RAM318の消費電力を制御するため、電力マネージャ324は、RAMドメインコントローラ(RDC)326およびRAMドメインブロック(RDB)328A~328Nを含む。図示される例は1つのRDC326を含むが、電力マネージャ324は、メモリセグメントごとに1つのRDC326を含んでもよい。さらに詳細に後述するように、RAMドメインブロック(RDB)328A~328Nは、メモリブロック322A~322Nのうち関連する1つの電力モードを制御する。RDC326はRDB328A~328Nのうち関連するものを制御する。
【0077】
SoC342Bは、1つまたは複数のアプリケーションコプロセッサ352と1つまたは複数のアプリケーションプロセッサ354とを含む。この例では、コアプリケーションプロセッサ350は、視覚処理装置(VPU)、グラフィック処理装置(GPU)、および/または中央処理装置(CPU)などの様々なプロセッサを含む。アプリケーションプロセッサ352は、1つまたは複数の人工現実アプリケーションを実行して、例えば、仮想ユーザインターフェースを生成し、周辺デバイス104の表面に描画する、かつ/または周辺デバイス104に対してユーザが行ったジェスチャを検出する、処理装置を含んでもよい。図示されないが、SoC342Bは、SoC342Aと同様のメモリおよび電力マネージャを含んでもよい。
【0078】
図4は、本開示に記載する技術による、階層型電力管理システム400のブロック図である。図示される例では、階層型電力管理システム400は、電力マネージャ324と、メモリ318と、メモリデコーダ320とを含む。電力マネージャ324は、メモリセグメント402ごとに1つのRDC326と、メモリブロック322A~322Nごとに1つのRDB328A~328Nとを含む。後述するように、RDC326は、対応するメモリセグメント402のメモリブロック322A~322Nと関連付けられたRDB328A~328Nに通信可能に結合される。RDB328A~328Nは、自身に関連付けられたメモリブロック322A~322Nの電力モードを制御する。いくつかの例では、RDB328A~328Nは、メモリブロック322A~322Nに対する供給電圧および/またはクロック信号を変更することによって、電力モードを制御する。
【0079】
いくつかの例では、電力マネージャ324はクラスタマネージャ404を含む。クラスタマネージャ404は、サブシステム(例えば、サブシステム304、306A、および306Bなど)に対する電力を制御する電力ドメインコントローラ(PDC)などの電力管理システムを併用せずに、1つまたは複数のRDC326に通信可能に結合して電力管理技術を実現する。いくつかの例では、クラスタマネージャ404は、低電力状態のどのサブセットをRDC326が使用可能にできるかを制御する。加えてまたは代わりに、いくつかの例では、クラスタマネージャ404は、RDC326がRDB328A~328Nのうち1つまたは複数をOPR状態に入れられることを要求してもよい。
【0080】
いくつかの例では、メモリデコーダ320はRDB328A~328Nのイベントラインに通信可能に結合される。サブシステム(例えば、サブシステム304、306A、および306Bなど)のうち1つのアプリケーションプロセッサ(CPU)406またはグラフィックプロセッサ(GPU)408が、データバス410を介してメモリブロック322A~322Nのうち1つに対する読取りまたは書込みを要求すると、メモリデコーダ320は、読取り/書込みアクセスの持続時間の間、RDB328A~328Nのうち対応する1つのイベントライン上で信号を送信してもよい。例えば、GPU408がメモリブロックA 322Aと関連付けられた逐次アドレスからの読取りを要求した場合、メモリデコーダ320は、GPU408によるアクセスの持続時間の間、信号(例えば、論理「イネーブル」に対応する電圧レベル)をRDB A 328Aのイベントラインに提供してもよい。かかるシナリオでは、ハードウェア制御が(例えば、RDC326によって)使用可能にされると、RDB A 328AはOPR状態へと遷移してもよい。
【0081】
図5A図5B、および図5Cは、本開示に記載する技術による、図4の階層型電力管理システムの態様のさらなる詳細のブロック図である。図5Aの図示される例では、RDB328A~328Nは、制御レジスタ(CR)502と、電力制御(PC)504、イベント入力506と、状態機械508とを含む。制御レジスタ502は、RDC326からの入力を受信して、RDB328A~328Nの機能性を制御する。いくつかの例では、制御レジスタ502はそれぞれ、消去もしくは設定されると、状態機械508のデフォルト低電力状態を設定する、状態機械508の遷移を行う、かつ/またはRDB328A~328Nのモードを使用可能にする、使用不能にする、かつ/もしくは構成する、1つまたは複数の論理スイッチまたは信号入力を含んでもよい。例えば、RDC326は、データを制御レジスタ502に書き込んで、ハードウェア制御を使用可能もしくは使用不能にし、デフォルト低電力状態をREN状態に設定し、ならびに/あるいは状態機械508をOPR状態へと遷移させてもよい。電力制御504は、状態機械の現在の状態にしたがって、関連するメモリブロック322A~322Nの供給電圧(例えば、メモリブロック322A~322Nへの供給電圧を制御するローカルドメインブロック(LDB)などを介する)および/またはクロック周波数を制御する。イベント入力506は、メモリデコーダ320が、アクセスの持続時間の間に、対応するメモリブロック322A~322Nと関連付けられたメモリアドレスを復号すると、信号(例えば、イネーブル信号)を受信する。後述するように、イベントライン506上のイネーブル信号は、状態機械508をOPR状態へと遷移させてもよい。
【0082】
状態機械508は、制御レジスタ502からの入力および/またはイベントライン506上の信号に基づいて、状態間で遷移する。状態機械508は制御レジスタ502からの入力を受信してもよく、制御レジスタは、(i)OPR状態602へと遷移するソフトウェア入力を提供するOPRレジスタ、(ii)NAP状態604へのソフトウェア入力を提供するNAPレジスタ、(iii)REN状態606へと遷移するソフトウェア入力を提供するRENレジスタ、(iv)PSO状態608へと遷移する入力を提供するPSOレジスタ、(v)遅延閾値を指定するPSO-OPR遷移タイマー制御レジスタ、(vi)遅延閾値を指定するREN-OPR遷移タイマー制御レジスタ、(vii)遅延閾値を指定するPSO遷移タイマー制御レジスタ、および(viii)遅延閾値を指定するREN遷移タイマー制御レジスタを含んでもよい。制御レジスタ502は、他の制御レジスタ(例えば、OPRレジスタなど)からの入力に基づいて、1つまたは複数の状態(例えば、OPR状態など)への遷移を使用可能または使用不能にするSDCイネーブルレジスタを含んでもよい。いくつかの例では、制御レジスタ502は、クラスタマネージャ404からの入力を提供するレジスタ(例えば、CM-OPRレジスタ、CM-RENレジスタなど)と、CMに関連する制御レジスタ(例えば、CM-OPRレジスタなど)からの入力に基づいて、1つまたは複数の状態(例えば、OPR状態など)への遷移を使用可能または使用不能にするCMイネーブルレジスタとを含んでもよい。
【0083】
図5Bの図示される例は、MB512に通信可能に結合されたRDB510を含む。RDB510は、図3のRDB328の一例であってもよい。図示される例では、RDB510は、SDCに接続されることなく、電力管理システム(図4の管理クラスタ404など)に直接通信可能に結合される。例えば、いくつかのSoCは、限定されたメモリ量を有してもよく、かつ/またはメモリ管理に関する回路を配置する限定された物理的空間を有してもよい。かかる例では、SoCは、利用可能な空間内で動作しながら階層型電力管理を所与として、ソフトウェアおよびハードウェア制御の少なくとも一部から依然として利益を得てもよい。
【0084】
図5Cの図示される例では、RDB328A~328Nは、制御CR502と、PC504と、イベント入力506と、状態機械508と、ソフトウェアレジスタ514とを含む。ソフトウェアレジスタ514は、SoCで動作するソフトウェアからの入力を受信して、RDB328A~328Nの機能性を制御する。例えば、SoCで動作するソフトウェアは、例えば、デフォルト低電力状態を設定する、かつ/または状態機械508にOPR状態へと遷移させるなど、ソフトウェアレジスタ514に書き込んでもよい。いくつかの例では、制御レジスタ502は、RDB328が制御をソフトウェアレジスタ514にいつ実装できるかを制御する、ソフトウェアイネーブルレジスタを含んでもよい。加えて、いくつかの例では、コマンドがソフトウェアレジスタ514によって受信されると、コマンドが実現されるまでコマンドがラッチし、遷移の間は他のいずれのソフトウェア制御も許可しないように、RDB328はRDC326と協調してもよい。いくつかの例では、ソフトウェアレジスタ514、制御レジスタ502、およびイベント入力506におけるコマンドが競合した場合、RDB328は、イベント入力506、制御レジスタ502、次にソフトウェアレジスタ514の順で優先して競合を解消してもよい。
【0085】
図6A図6B、および図6Cは、状態機械508の例のブロック図である。図6Aは、メモリデコーダ320からのハードウェア制御(例えば、イベントライン506を介する)およびRDC326からのソフトウェア制御(例えば、制御レジスタ502を介する)に基づいて、状態間で遷移する状態機械600を示している。状態機械600は状態機械508の一例である。図示される例では、状態機械600は、オペレーティング(OPR)状態602、ナップ(NAP)状態604、保持(REN)状態606、およびパワーオフ(PSO)状態608を含む。加えて、図示される例では、状態機械600は、状態機械600が高電力状態(例えば、OPR状態602など)と低電力状態(例えば、NAP状態604、REN状態606、およびPSO状態608など)との間で遷移する際に状態機械600が遷移する、中間の遅延状態610Aおよび610Bおよび612Aおよび612Bを含む。いくつかの例では、状態機械600は、高電力状態(例えば、OPR状態602など)へと遷移することなく、1つの低電力状態(例えば、NAP状態604など)から別の低電力状態(例えば、REN状態606およびPSO状態608など)へと遷移してもよい。
【0086】
状態機械600はPSO状態608で始まってもよい。例えば、複合現実システムが電力投入されると、状態機械600はデフォルトのPSO状態608になってもよい。PSO制御レジスタ(例えば、制御レジスタ502の1つ)が使用可能にされたとき、状態機械600はPSO状態608のままである(614)。状態機械600は、イベントが検出されると、遅延状態612Aへと遷移する。イベントは、制御レジスタ502(例えば、OPRレジスタ、RENレジスタなどを介する)、イベント入力506、および/またはソフトウェアレジスタ514を介して検出されてもよい(616)。
【0087】
状態機械600は、閾値数のクロックサイクル(例えば、8、16、24、32、40、48、56、64クロックサイクルなど)の間、遅延状態612Aのままである。クロックサイクルの数は、RDC326によって(制御レジスタ502のPSO-OPR遷移タイマー制御レジスタを介して)構成されてもよい。閾値数のサイクル後、状態機械600はOPR状態602へと遷移する(618)。
【0088】
状態機械600は、(a)OPRレジスタ502が使用可能にされるまで、または(b)イベント入力506においてイネーブル信号がアクティブになるまで、OPR状態602のままである(620)。状態機械600は、(a)OPRレジスタ502が使用不能にされると、また(b)イベント入力506においてイネーブル信号がアクティブでなくなると、制御レジスタ502のコンテンツに応じて異なる状態へと遷移する。NAPレジスタが使用可能にされ、RENレジスタおよびPSOレジスタが使用可能にされない場合、状態機械600はNAP状態604へと遷移する(622)。RENレジスタが使用可能にされ、PSOレジスタが使用可能にされない場合、状態機械600は遅延状態610Aへと遷移する(624)。PSOレジスタが使用可能にされると、状態機械600は遅延状態610Bへと遷移する(626)。
【0089】
NAPレジスタが使用可能にされ、他の遷移基準が満たされない場合、状態機械600はNAP状態604のままである(628)。イベントが検出されると、状態機械600はOPR状態602へと遷移する(630)。RENレジスタが使用可能にされ、PSOレジスタが使用不能にされると、状態機械600は遅延状態610Aへと遷移する(632)。PSOレジスタが使用可能にされると、状態機械600は遅延状態610Bへと遷移する(634)。
【0090】
状態機械600は、閾値数のクロックサイクル(例えば、8、16、24、32、40、48、56、64クロックサイクルなど)の間、遅延状態610Aのままである。クロックサイクルの数は、RDC326によって(制御レジスタ502のREN遷移タイマー制御レジスタを介して)構成されてもよい。閾値数のサイクル後、状態機械600はREN状態606へと遷移する(636)。
【0091】
RENレジスタが使用可能にされ、他の遷移基準が満たされない場合、状態機械600はREN状態606のままである(638)。イベントが検出されると、状態機械600は遅延状態612Bへと遷移する(640)。
【0092】
状態機械600は、閾値数のクロックサイクル(例えば、8、16、24、32、40、48、56、64クロックサイクルなど)の間、遅延状態612Bのままである。クロックサイクルの数は、RDC326によって(制御レジスタ502のREN-OPR遷移タイマー制御レジスタを介して)構成されてもよい。閾値数のサイクル後、状態機械600はOPR状態602へと遷移する(642)。
【0093】
状態機械600は、閾値数のクロックサイクル(例えば、8、16、24、32、40、48、56、64クロックサイクルなど)の間、遅延状態610Bのままである。クロックサイクルの数は、RDC326によって(制御レジスタ502のPSO遷移タイマー制御レジスタを介して)構成されてもよい。閾値数のサイクル後、状態機械600はPSO状態608へと遷移する(644)。
【0094】
一例のシナリオでは、複合現実システムが電力投入されると、メモリ318を準備するため、RDC326は、OPRレジスタおよびRENレジスタを使用可能にして、状態機械600を遅延状態612Aへと遷移させてもよい。遅延の間、RDC326はOPRレジスタを使用不能にしてもよい。状態機械はOPR状態602へと遷移する。OPR状態が使用不能にされ、REN状態が使用可能にされるので、状態機械600は遅延状態610Aへと遷移する。遅延後、状態機械600はREN状態606へと遷移する。
【0095】
図6Bは、メモリデコーダ320からのハードウェア制御(例えば、イベントライン506を介する)、RDC326からのソフトウェア制御(例えば、制御レジスタ502を介する)、ソフトウェア制御ライン514を介するソフトウェア制御、およびCM404に基づいて、状態間で遷移する状態機械646を示している。CM404は、SoC電力管理ポリシーにしたがって、SoCの様々なサブシステムおよび他の構成要素をオンまたはオフにするように、状態機械646の状態を遷移するようにRDC326に命令してもよい。例えば、CM404は、ユーザからの入力に応答して、入力に反応するのに十分なメモリ量を提供するように、特定のメモリブロック322A~322Nに電力投入するよう指示してもよい。状態機械646は状態機械508の一例である。CM404は、RCS326を介してRDB328を直接制御して、例えば、メモリ318、メモリデコーダ320、CPU406、およびGPU408などを含む、SoCに対する電力制御ポリシーを実現してもよい。図6Bに示される例では、状態機械646は、OPR状態602、NAP状態604、REN状態606、およびPSO状態608を含む。加えて、図示される例では、状態機械646は、状態機械646が高電力状態(例えば、OPR状態602など)と低電力状態(例えば、NAP状態604、REN状態606、およびPSO状態608など)との間で遷移する際に状態機械646が遷移する、中間の遅延状態610Aおよび610Bおよび612Aおよび612Bを含む。いくつかの例では、状態機械646は、高電力状態(例えば、OPR状態602など)へと遷移することなく、1つの低電力状態(例えば、NAP状態604など)から別の低電力状態(例えば、REN状態606およびPSO状態608など)へと遷移してもよい。状態機械646は、制御レジスタ502(例えば、CMに関連するレジスタなどを含む)を介する入力、およびイベント入力506を受信する。
【0096】
状態機械646はPSO状態608で始まってもよい。例えば、複合現実システムが電力投入されると、状態機械646はデフォルトのPSO状態608になってもよい。PSOレジスタが使用可能にされたとき、状態機械646はPSO状態608のままである(648)。状態機械646は、イベントが検出されると、遅延状態612Aへと遷移する。イベントは、制御レジスタ502(例えば、OPRレジスタ、RENレジスタなどを介する)、イベント入力506、および/またはソフトウェアレジスタ514を介して検出されてもよい(650)。
【0097】
状態機械646は、閾値数のクロックサイクル(例えば、8、16、24、32、40、48、56、64クロックサイクルなど)の間、遅延状態612Aのままである。クロックサイクルの数は、RDC326によって(制御レジスタ502のPSO遷移タイマー制御レジスタを介して)構成されてもよい。閾値数のサイクル後、状態機械646はOPR状態602へと遷移する(652)。
【0098】
状態機械646は、(a)OPRレジスタ502が使用可能にされるまで、または(b)イベント入力506においてイネーブル信号が受信されるまで、OPR状態602のままである(654)。状態機械646は、(a)OPRレジスタ502が使用不能にされると、また(b)イベント入力506においてイネーブル信号が受信されないと、制御レジスタ502のコンテンツに応じて異なる状態へと遷移する。NAPレジスタまたはCM-NAPレジスタが使用可能にされ、RENレジスタおよびPSOレジスタが使用可能にされない場合、状態機械646はNAP状態604へと遷移する(656)。RENレジスタまたはCM-RENレジスタが使用可能にされ、PSOレジスタが使用可能にされない場合、状態機械646は遅延状態610Aへと遷移する(658)。PSOレジスタが使用可能にされると、状態機械646は遅延状態610Bへと遷移する(660)。
【0099】
NAPレジスタが使用可能にされ、他の遷移基準が満たされない場合、状態機械646はNAP状態604のままである(662)。イベントが検出されると、状態機械646はOPR状態602へと遷移する(664)。RENレジスタまたはCM-RENレジスタが使用可能にされ、PSOレジスタおよびCM-PSOレジスタが使用不能にされると、状態機械646は遅延状態610Aへと遷移する(666)。PSOレジスタまたはCM-PSOレジスタが使用可能にされると、状態機械646は遅延状態610Bへと遷移する(668)。
【0100】
状態機械646は、閾値数のクロックサイクル(例えば、8、16、24、32、40、48、56、64クロックサイクルなど)の間、遅延状態610Aのままである。クロックサイクルの数は、RDC326によって(制御レジスタ502のREN遷移タイマー制御レジスタを介して)構成されてもよい。閾値数のサイクル後、状態機械646はREN状態606へと遷移する(670)。
【0101】
RENレジスタが使用可能にされ、他の遷移基準が満たされない場合、状態機械646はREN状態606のままである(638)。イベントが検出されると、状態機械646は遅延状態612Bへと遷移する(674)。
【0102】
状態機械646は、閾値数のクロックサイクル(例えば、8、16、24、32、40、48、56、64クロックサイクルなど)の間、遅延状態612Bのままである。クロックサイクルの数は、RDC326によって(制御レジスタ502のOPR遷移タイマー制御レジスタを介して)構成されてもよい。閾値数のサイクル後、状態機械646はOPR状態602へと遷移する(676)。
【0103】
状態機械646は、閾値数のクロックサイクル(例えば、8、16、24、32、40、48、56、64クロックサイクルなど)の間、遅延状態610Bのままである。クロックサイクルの数は、RDC326によって(制御レジスタ502のREN遷移タイマー制御レジスタを介して)構成されてもよい。閾値数のサイクル後、状態機械646はPSO状態608へと遷移する(678)。
【0104】
図6Cの状態機械680は状態機械508の一例である。図6Cに示される例では、状態機械680は、OPR状態602、REN状態606、およびPSO状態608を含む。加えて、図示される例では、状態機械680は、状態機械680が高電力状態(例えば、OPR状態602など)と低電力状態(例えば、NAP状態604、REN状態606、およびPSO状態608など)との間で遷移する際に状態機械680が遷移する、中間の遅延状態610Aおよび610Bおよび612Aおよび612Bを含む。いくつかの例では、状態機械680は、高電力状態(例えば、OPR状態602など)へと遷移することなく、1つの低電力状態(例えば、NAP状態604など)から別の低電力状態(例えば、REN状態606およびPSO状態608など)へと遷移してもよい。状態機械680は、制御レジスタ502およびイベント入力506を介して入力を受信する。
【0105】
状態機械680はPSO状態608で始まってもよい。例えば、複合現実システムが電力投入されると、状態機械680はデフォルトのPSO状態608になってもよい。イベントが検出されたとき、状態機械680はPSO状態608のままである(630)。イベントは、制御レジスタ502(例えば、OPRレジスタ、RENレジスタなどを介する)、イベント入力506、および/またはソフトウェアレジスタ514を介して検出されてもよい(684)。
【0106】
状態機械680は、閾値数のクロックサイクル(例えば、8、16、24、32、40、48、56、64クロックサイクルなど)の間、遅延状態612Aのままである。クロックサイクルの数は、RDC326によって(制御レジスタ502のPSO-OPR遷移タイマー制御レジスタを介して)構成されてもよい。閾値数のサイクル後、状態機械680はOPR状態602へと遷移する(686)。
【0107】
状態機械680は、(a)OPRレジスタ502が使用可能にされるまで、または(b)イベント入力506においてイネーブル信号が受信されるまで、OPR状態602のままである(688)。状態機械680は、(a)OPRレジスタ502が使用不能にされると、また(b)イベント入力506においてイネーブル信号が受信されないと、制御レジスタ502のコンテンツに応じて異なる状態へと遷移する。RENレジスタが使用可能にされ、PSOレジスタが使用可能にされない場合、状態機械680は遅延状態610Aへと遷移する(690)。PSOレジスタが使用可能にされると、状態機械680は遅延状態610Bへと遷移する(692)。
【0108】
状態機械680は、閾値数のクロックサイクル(例えば、8、16、24、32、40、48、56、64クロックサイクルなど)の間、遅延状態610Aのままである。クロックサイクルの数は、RDC326によって(制御レジスタ502のREN遷移タイマー制御レジスタを介して)構成されてもよい。閾値数のサイクル後、状態機械680はREN状態606へと遷移する(694)。
【0109】
RENレジスタが使用可能にされ、他の遷移基準が満たされない場合、状態機械680はREN状態606のままである(696)。イベントが検出されると、状態機械680は遅延状態612Bへと遷移する(697)。
【0110】
状態機械680は、閾値数のクロックサイクル(例えば、8、16、24、32、40、48、56、64クロックサイクルなど)の間、遅延状態612Bのままである。クロックサイクルの数は、RDC326によって(制御レジスタ502のREN-OPR遷移タイマー制御レジスタを介して)構成されてもよい。閾値数のサイクル後、状態機械680はOPR状態602へと遷移する(698)。
【0111】
状態機械680は、閾値数のクロックサイクル(例えば、8、16、24、32、40、48、56、64クロックサイクルなど)の間、遅延状態610Bのままである。クロックサイクルの数は、RDC326によって(制御レジスタ502のPSO遷移タイマー制御レジスタを介して)構成されてもよい。閾値数のサイクル後、状態機械680はPSO状態608へと遷移する(699)。
【0112】
図7は、本開示に記載する技術による、ハードウェア制御を使用してメモリブロック322A~322Nno電力状態を制御する一例の動作モードのフローチャートである。動作モードは、例示の目的で、RDB328Aおよびメモリブロック322Aに関して記載される。最初に、RDB328Aは、メモリデコーダ(例えば、図3および図4のメモリデコーダ320)からイネーブル信号を受信する(702)。イネーブル信号は、論理的真またはイネーブルと関連付けられた電圧レベル(例えば、3.3Vシステムの3.3V)であってもよい。メモリデコーダは、メモリブロック322Aと関連付けられたメモリアドレスがSoCのサブシステムによってアクセスされると、イネーブル信号を生成してもよい。状態機械508が高電力状態(例えば、図6A図6B、および図6CのOPR602)へと遷移する前に(702のはい)、状態機械508は、メモリブロック322を駆動するクロックの閾値数のクロックサイクルの間、中間遅延状態(例えば、図6A図6B、および図6Cの中間遅延状態612Aおよび612B)へと遷移する(704)。
【0113】
RDB328Aは、メモリブロック322Aを制御して動作電力モードにする(706)。いくつかの例では、RDB328Aは、メモリブロック322Aからの読取りおよびメモリブロック322Aへの書込みを可能にする、供給電圧およびクロック周波数を提供する。RDB328Aは、イベント入力506においてイネーブル信号を受信しなくなるまで待機する(708)。RDB328Aがイネーブル信号を受信しているとき(708のはい)、RDB328Aは、メモリからの読取りおよびメモリへの書込みに適した動作モードでメモリブロック322Aの動作を継続する(706)。RDB328Aがイネーブル信号を受信しなくなると(708のいいえ)、状態機械508は、メモリブロック322を駆動するクロックのクロックサイクル数をカウントダウンする(710)。イベント入力506における信号が再びアクティブになる前にカウントダウンがゼロに達した場合(712のはい)、RDB328Aは、状態機械508の状態にしたがってメモリブロック322Aを制御する。例えば、RDC326は、制御レジスタ502を介して、イネーブル信号がイベントライン506に存在しなくなると、状態機械508がREN状態606へと遷移することを示してもよい(714)。RDB328Aは次に、イベントライン506における別のイネーブル信号を待つ(702)。イベント入力506における信号が再びアクティブになる前にカウントダウンがゼロに達しなかった場合(712のいいえ)、RDB328Aは、メモリブロック322Aを制御して動作電力モードにする(706)。
【0114】
図8は、本開示に記載する技術による、階層型電力管理システムによって制御されているメモリ312にアクセスする一例の動作モードのフローチャートである。動作モードは、例示の目的で、RDB328Aおよびメモリブロック322Aに関して記載される。最初に、クラスタマネージャ404は、メモリセグメント(例えば、図4のメモリセグメント402)を制御するRDC326に対してパワーダウンポリシーを設定する(802)。RDC326は、パワーダウンポリシーを実現するように、RDB328Aの制御レジスタ503を設定する(804)。RDC326に通信可能に結合されたRDB(例えば、RDB328A)は、制御レジスタ設定を受信する(806)。
【0115】
その後、CPU406は、1つまたは複数のメモリアドレスにアクセスすることを要求する(808)。メモリデコーダ320は、アドレスを復号して、どのメモリブロック(例えば、メモリブロック322A)がCPU406によって要求されたメモリアドレスと関連付けられているかを決定する(810)。メモリアドレスがメモリブロック322Aと関連付けられている場合、メモリデコーダ320は、イネーブル信号をRDB328Aのイベント入力506に適用する(812)。RDB328Aの状態機械508は、直接または間接的にOPR状態へと遷移して、電力をメモリブロック322Aに提供する(814)。
【0116】
CPU406は、メモリブロック322A内の複数のメモリアドレスにアクセスしてもよい。CPU406は最終的に、メモリブロック322のメモリアドレスへのアクセスを終了する(816)。メモリデコーダ320は、イネーブル信号をイベント入力506に提供するのを停止する(818)。RDB328Aは、状態機械508の電力状態にしたがって、メモリブロック322Aへの電力を制御する。状態機械508が遷移する低電力状態は、CM404によって設定され、RDC326によって(例えば、制御レジスタ502を設定することによって)実現される、パワーダウンポリシーに基づく(820)。メモリアドレスは、連続して読み取られる場合が多く、1つのメモリブロックで始まって次のメモリブロックに進んでもよいので、メモリデコーダ320は、メモリアドレスを復号し、イネーブル信号を対応するRDC328のイベントライン506に提供し続ける(822)。
【0117】
本開示に記載する技術は、少なくとも部分的に、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせの形で実現されてもよい。例えば、記載する技術の様々な態様は、1つまたは複数のマイクロプロセッサ、DSP、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の任意の等価の集積もしくは離散論理回路類、ならびにかかる構成要素の任意の組み合わせを含む、1つまたは複数のプロセッサ内で実現されてもよい。「プロセッサ」または「処理回路類」という用語は、一般に、単独でまたは他の回路類との組み合わせで、上述の論理回路類、固定機能回路類、プログラマブル回路類のいずれか、あるいは他の任意の等価の回路類を指してもよい。ハードウェアを備える制御ユニットも、本開示の技術の1つまたは複数を実施してもよい。
【0118】
かかるハードウェア、ソフトウェア、およびファームウェアは、本開示に記載する様々な動作および機能をサポートするように、同じデバイス内に、または別個のデバイス内に実装されてもよい。それに加えて、記載するユニット、モジュール、または構成要素のいずれも、共にまたは離散的なものとして別個に実装されるが、相互運用可能な論理デバイスであってもよい。モジュールまたはユニットとしての異なる特徴の記載は、異なる機能的態様を強調するためのものであり、かかるモジュールまたはユニットが別個のハードウェアまたはソフトウェアコンポーネントとして実現されなければならないことを、必ずしも示唆するものではない。それよりもむしろ、1つまたは複数のモジュールまたはユニットと関連付けられた機能性は、別個のハードウェアもしくはソフトウェアコンポーネントによって実施されるか、または共通もしくは別個のハードウェアもしくはソフトウェアコンポーネントに統合されてもよい。
【0119】
本開示に記載する技術はまた、命令を収容した、コンピュータ可読記憶媒体などのコンピュータ可読媒体で具体化または符号化されてもよい。コンピュータ可読記憶媒体に埋め込まれるかまたは符号化された命令によって、例えば命令が実行されると、プログラマブルプロセッサまたは他のプロセッサが方法を実施してもよい。コンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、プログラマブル読出し専用メモリ(PROM)、消去可能プログラマブル読出し専用メモリ(EPROM)、電気消去可能プログラマブル読出し専用メモリ(EEPROM)、フラッシュメモリ、ハードディスク、CD-ROM、フロッピーディスク、カセット、磁気媒体、光学媒体、または他のコンピュータ可読媒体を含んでもよい。
【0120】
本明細書の様々な例を用いて記載したように、本開示の技術は、人工現実システムを含むか、またはそれと併せて実現されてもよい。上述したように、人工現実は、ユーザに提示する前に何らかの形で調節されている1つの形態の現実であり、例えば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、または上記の何らかの組み合わせおよび/もしくは派生物を含んでもよい。人工現実コンテンツは、全て生成されたコンテンツ、またはキャプチャされたコンテンツ(例えば、実世界写真)と組み合わされた生成コンテンツを含んでもよい。人工現実コンテンツは、映像、音声、触覚フィードバック、または上記の何らかの組み合わせを含んでもよく、それらのいずれかが、単一チャネルまたは複数チャネルで提示されてもよい(閲覧者に対する三次元効果を作成するステレオ映像など)。それに加えて、いくつかの実施形態では、人工現実は、アプリケーション、製品、アクセサリ、サービス、または例えば、人工現実でコンテンツを作り出すのに使用される、かつ/もしくは人工現実で使用される(例えば、アクティビティを実施する)、上記の何らかの組み合わせと関連付けられてもよい。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントデバイス(HMD)、スタンドアロンHMD、モバイルデバイスもしくはコンピューティングシステム、または人工現実コンテンツを1人もしくは複数の閲覧者に提供することができる他の任意のハードウェアプラットフォームを含む、様々なプラットフォームで実現されてもよい。
図1A
図1B
図2
図3
図4
図5A
図5B
図5C
図6A
図6B
図6C
図7
図8
【国際調査報告】