TW202203001A - 用於人工實境系統的記憶體之階層式電力管理 - Google Patents

用於人工實境系統的記憶體之階層式電力管理 Download PDF

Info

Publication number
TW202203001A
TW202203001A TW110120274A TW110120274A TW202203001A TW 202203001 A TW202203001 A TW 202203001A TW 110120274 A TW110120274 A TW 110120274A TW 110120274 A TW110120274 A TW 110120274A TW 202203001 A TW202203001 A TW 202203001A
Authority
TW
Taiwan
Prior art keywords
memory
memory block
power
controller
state machine
Prior art date
Application number
TW110120274A
Other languages
English (en)
Inventor
西林朗 瑪德哈夫 亞爾帝
格雷戈里 愛德華 埃曼
恩尼奧 薩萊米
喬治 史帕茲
傑佛瑞 瑞登
Original Assignee
美商菲絲博克科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商菲絲博克科技有限公司 filed Critical 美商菲絲博克科技有限公司
Publication of TW202203001A publication Critical patent/TW202203001A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)

Abstract

本發明描述用於一人工實境系統之記憶體之階層式電力管理以減少該記憶體的電力消耗之技術。一實例裝置可為組態成產生人工實境內容以供顯示之一周邊裝置或組態成輸出人工實境內容以供顯示之一頭戴式顯示器單元(HMD)。該裝置包括記憶體,其經劃分為可組態成在複數個電力模式中操作的多個記憶體區塊。該裝置亦包括控制記憶體區塊之記憶體區塊控制器。每一記憶體區塊控制器控制對應記憶體區塊將在哪一電力模式中獨立於其他記憶體區塊中之任一者進行操作。該裝置包括一記憶體電力控制器,其組態成將該等記憶體區塊控制器之控制暫存器組態成引導該等記憶體區塊控制器在該等記憶體區塊未經存取時選擇用於該等記憶體區塊之該複數個電力模式中的一者。

Description

用於人工實境系統的記憶體之階層式電力管理
一般而言,本發明係關於諸如擴增實境系統、混合實境系統及/或虛擬實境系統之人工實境系統之記憶體的電力管理。交互參考
本申請案主張2020年7月1日申請之美國臨時專利申請案第63/047,035號之權益,其全部內容以引用的方式併入本文中。本申請案亦主張2020年7月31日申請之美國非臨時專利申請案第16/947,432號之權益,其全部內容以引用的方式併入本文中。
人工實境系統在諸如電腦遊戲、健康及安全、工業及教育之許多領域中的應用正變得愈來愈普遍。作為幾個實例,人工實境系統正併入至行動裝置、遊戲控制台、個人電腦、電影院及主題公園中。一般而言,人工實境為在向使用者呈現之前已經以某一方式調整的實境形式,其可包括例如虛擬實境、擴增實境、混合實境、混雜實境或其某一組合及/或衍生物。
典型的人工實境系統包括用於向使用者顯現及顯示內容之一或多個裝置。此等裝置通常為電池供電的。作為一個實例,人工實境系統可併入由使用者穿戴且組態成將人工實境內容輸出至使用者之頭戴式顯示器(head-mounted display;HMD)。人工實境內容可完全包含由系統產生之內容或可包括與所擷取內容(例如,真實世界視訊及/或影像)組合之所產生內容。在操作期間,使用者典型地與人工實境系統互動以選擇內容、啟動應用程式、組態系統且(一般而言)體驗人工實境環境。
一般而言,本發明描述用於一人工實境(artificial reality;AR)系統之記憶體之階層式電力管理以減少該記憶體的電力消耗之技術。該人工實境系統可包括協作以提供AR體驗之不同裝置(例如,一頭戴式顯示器、一周邊裝置等)。此等裝置包括一或多個系統單晶片(Systems-on-a-Chip;SOC),該一或多個系統單晶片包括用以為AR系統提供各種功能性之子系統。此等SoC包括由該等子系統用來提供該等功能性之記憶體,諸如靜態隨機存取記憶體(static random-access memory;SRAM)。在一些實例中,該記憶體經劃分為可組態成彼此獨立地在不同電力模式中操作之記憶體區塊。此等電力模式包括可存取與該記憶體區塊相關聯之記憶體位址之一高電力模式(例如,一操作模式)及電力消耗低於該高電力模式且無法存取與該記憶體區塊相關聯之位址的一或多個低電力模式(例如,一保持模式、一電力關閉模式、一小憩模式等)。
在下文所描述之技術中,以一階層式方式控制此等記憶體區塊之該等電力模式。一RAM域控制器(RAM domain controller;RDC)(一「記憶體電力控制器」之一實例且有時稱為一「記憶體電力控制器」)實施多個RAM域塊(RAM domain block;RDB)(「記憶體區塊控制器」之實例且有時稱為「記憶體區塊」)的基於軟體之控制及基於硬體之控制。每一記憶體區塊之該電力模式由一對應RDB控制。利用該等RDC及該等RDB,一SoC之一電力管理系統可對該SoC的該記憶體應用精細或粗略電力控制。該等RDB各自包括經由一事件輸入端及控制暫存器及/或信號線來控制之一狀態機(SM)。該等RDB可用硬體控制及/或軟體控制來操作。該事件輸入端提供對該等記憶體電力模式之粗略硬體控制,而該等控制暫存器提供對該等記憶體電力狀態之更精細細微度的控制。該RDB基於該狀態機之當前狀態來控制相關聯的記憶體區塊之該電力模式。該狀態機之該當前狀態係基於該事件輸入端上之該信號及該等控制暫存器之內容或該等信號線之值。如本文中所使用,硬體控制係指在記憶體存取進程中基於由該記憶體硬體之組件(例如,一記憶體解碼器等)產生之信號來控制該等RDB。如本文中所使用,軟體控制係指由該RDC基於自例如在該等SoC上操作及/或在電力管理電路系統中操作之韌體接收到的輸入而經由(a)信號輸入及/或控制暫存器來控制該等RDB,及/或經由(b)自在該等SoC上操作及/或在電力管理電路系統中操作之韌體中所輸入至軟體暫存器中的信號輸入來控制該等RDB。該等技術可提供實現一或多個實際應用之一或多個技術優點。RDC及RBD之階層式控制結構有助於在以例如該系統之該SRAM之各種細微度(例如,自單獨記憶體區塊至較大記憶體「塊(chunk)」)來控制電力模式時的靈活性。舉例而言,使用硬體(例如,經由該事件線)及軟體(例如,經由該等控制暫存器)控制兩者對記憶體之該電力消耗的精細細微度控制可減少該人工實境系統之電力消耗。以此方式提供對記憶體之硬體及軟體控制對記憶體提供更高客制化及控制,同時改善在電力模式之間轉換記憶體之潛時。此可延長電池壽命且改良人工實境系統之回應性及改善一使用者體驗。
一種實例人工實境系統包括一裝置。該裝置可為組態成產生人工實境內容以供顯示之一周邊裝置或組態成輸出人工實境內容以供顯示之一頭戴式顯示器單元(head-mounted display unit;HMD)。該裝置包括:記憶體,其經劃分為各自可組態成彼此獨立地在複數個電力模式中操作之多個記憶體區塊;一或多個記憶體區塊控制器,其用於對應記憶體區塊;及一記憶體電力控制器。每一記憶體區塊控制器基於該記憶體區塊控制器之一控制暫存器來控制該對應記憶體區塊將在該複數個電力模式中之哪一者中獨立於其他記憶體區塊中的任一者進行操作。該記憶體電力控制器將該等記憶體區塊控制器之各別控制暫存器組態成引導該等記憶體區塊控制器在該等記憶體區塊未經存取時選擇用於該等記憶體區塊之該複數個電力模式中的一者。
一種用於一人工實境系統中的記憶體之階層式電力控制之實例方法包括由一第一記憶體區塊控制器控制一第一記憶體區塊將在複數個電力模式中之哪一者中進行操作。該記憶體經劃分為可組態成彼此獨立地在複數個電力模式中操作之該第一記憶體區塊及一第二記憶體區塊。該方法亦包括獨立於該第一記憶體區塊,由一第二記憶體區塊控制器控制該第二記憶體區塊將在該複數個電力模式中之哪一者中進行操作。另外,該方法包括由一記憶體電力控制器控制該第一記憶體區塊控制器及該第二記憶體區塊控制器之各別控制暫存器引導該第一記憶體區塊控制器及該第二記憶體區塊控制器,以在該第一記憶體區塊及該第二記憶體區塊未經存取時選擇用於該第一記憶體區塊及該第二記憶體區塊的該複數個電力模式中之一者。
一種包含指令之實例電腦可讀取媒體,該等指令在經執行時使一人工實境系統之一記憶體電力管理系統用一第一記憶體區塊控制器控制一第一記憶體區塊將在複數個電力模式中之哪一者中進行操作,記憶體經劃分為可組態成彼此獨立地在複數個電力模式中操作的該第一記憶體區塊及一第二記憶體區塊。該等指令進一步使該記憶體電力管理系統獨立於該第一記憶體區塊,用一第二記憶體區塊控制器控制該第二記憶體區塊將在該複數個電力模式中之哪一者中進行操作。另外,該等指令使該記憶體電力管理系統控制分別耦接至該第一記憶體區塊及該第二記憶體區塊之一第一記憶體區塊控制器及一第二記憶體區塊控制器的各別控制暫存器,以在該第一記憶體區塊及該第二記憶體區塊未經存取時選擇用於該第一記憶體區塊及該第二記憶體區塊的該複數個電力模式中之一者。
本發明之技術之一或多個實例的細節經闡述於隨附圖式及以下描述中。該等技術之其他特徵、目標及優點將自描述及圖式以及自申請專利範圍而顯而易見。
隨機存取記憶體(random-access memory;RAM)之電力管理可增加電池操作式系統之電荷之間的使用。RAM支援具有不同電力消耗特性之離散電力模式,諸如(i)記憶體可存取之操作(OPR)模式、(ii)時脈經停用之小憩(NAP)節點、(iii)維持所儲存資料的完整性但供應電壓低於指定用於讀取或寫入至記憶體之供應電壓且時脈經停用的保持(REN)模式及/或(iv)減少供應電壓以使得不能維持所儲存資料之完整性的電力切斷(PSO)模式。模式之間的轉換可能需要延遲作為供應電壓,且將時脈供應至待存取之記憶體。一般而言,以叢發(例如,高讀取/寫入活動之週期緊接著低活性之週期)且依序方式讀取記憶體。因而,記憶體之不同部分可取決於其使用情境而被選擇性地置於不同電力模式中,以提供在所消耗電力與由記憶體遞送之效能之間的取捨。
如本文中所使用,「電力模式」描述記憶體區塊之操作條件(例如,供應電壓、驅動時脈頻率等)。舉例而言,高電力模式可描述如下電力模式,其中記憶體區塊正接收足以實現對記憶體區塊之讀取及寫入存取的供應電壓及驅動時脈頻率且其中與其他電力模式相比,與記憶體區塊相關聯之電力消耗相對較高。作為另一實例,低電力模式可描述如下電力模式,其中記憶體區塊正接收供應電力及/或驅動時脈頻率以使得記憶體區塊效能降低及/或記憶體區塊不可存取且其中與記憶體區塊相關聯之電力消耗比高電力模式為相對更低的。如此處所使用,「電力狀態」係指狀態機之使記憶體區塊在對應電力模式中操作之狀態。
在混合實境系統中,不同裝置(例如,頭戴式顯示器、周邊裝置等)協作以提供混合實境體驗。此等裝置包括一或多個系統單晶片(SoC),該一或多個系統單晶片包括用以支援對應SoC之功能性之隨機存取記憶體(RAM)(例如,靜態RAM(static RAM;SRAM)等)。記憶體經組織成階層式結構以在支援更高細微度之電力控制以反映記憶體之使用情境的同時促進廣泛的電力管理策略。記憶體可經組織成一或多個片段,該一或多個片段可(例如,藉由SoC電力管理電路)控制成例如在未經存取時在預設電力狀態中操作。舉例而言,10百萬位元(Mb)記憶體可經劃分為10個1百萬位元記憶體片段。在此實例中,SoC電力管理電路可在其他片段保持關閉時向一些片段通電。一些片段可預設為NAP狀態,而其他片段可預設為REN狀態。記憶體片段可經劃分為可彼此獨立地在電力模式中操作之記憶體區塊。舉例而言,1百萬位元記憶體片段可經劃分為16個64千位元(kb)記憶體區塊。經由軟體及/或硬體控制,記憶體區塊可在經存取時被置於OPR狀態中,而在不經存取時被置於預設電力狀態中。記憶體電力模式可由將軟體輸入引導至記憶體來直接控制(例如,直接軟體控制)。然而,其直接軟體控制通常較慢(例如,與下文所描述之階層式結構相比)。舉例而言,用以判定哪些單獨記憶體區塊改變至哪些電力模式且定址單獨記憶體區塊以將其置於指示電力模式中之直接軟體控制需要可導致延遲之軟體無額外負擔(overhead)。此可導致記憶體存取延遲增加,或導致需要一次性通電以減少記憶體存取延遲之影響的記憶體區塊之數目增加。
如下文所描述,SoC之記憶體的電力模式由記憶體電力管理器(有時稱為「叢集管理器」)控制,該記憶體電力管理器可為亦例如管理SoC之子系統之電力狀態的電力管理電路之部分。記憶體片段由RAM域控制器(RDC)(有時稱為「記憶體電力控制器」)控制。記憶體區塊由RAM域塊(RDB)(「記憶體區塊控制器」之實例且有時稱為「記憶體區塊控制器」)控制。記憶體電力管理器可控制多個RDC,該多個RDC又可控制多個RDB。利用RDC及RDB,記憶體電力管理器可以階層式方式對SoC的SRAM應用精細或粗略電力控制。具有與硬體控制組合的間接軟體控制之此階層式結構在記憶體未經存取時取決於系統要求而促進用於不同記憶體細微度之系統設定電力模式,且在存取記憶體(經由硬體控制)時實施彼等電力模式。此可促進針對需要進行存取之記憶體區塊的較快記憶體存取,而無需實質上減慢記憶體存取或無需向比需必要時更多的記憶體區塊供電。因此,與直接軟體控制相比,RDC及RDB可提供減少的存取時間及/或更多的目標記憶體存取。
記憶體電力管理器可制定電力控制策略,該電力控制策略例如補充混合實境系統之電力管理狀態。舉例而言,記憶體管理及/或電力管理子系統可判定某些記憶體區塊比其他記憶體區塊受到更頻繁地存取。在此情境中,RDC可使用與頻繁存取之記憶體區塊相關聯的控制暫存器,使得RDB在不經存取時將其置於一個低電力模式中。RDC可使用與不太頻繁存取之記憶體區塊相關聯的控制暫存器,使得RDB在不經存取時將其置於另一低電力模式中。RDC寫入至控制暫存器及/或操作RDB之信號線以控制對應記憶體區塊之電力模式。在一些實例中,當RDB使用軟體控制進行操作時,RDC使用RDB控制暫存器及/或信號線(例如,RDC經由控制暫存器及/或信號線引起狀態轉換)以經由對應RDB來控制記憶體區塊之電力狀態。舉例而言,當SoC之子系統主動地指示某一記憶體區塊將被存取時,RDC可使用控制暫存器及/或信號線將RDB自RET狀態轉換至OPR狀態。另外或替代地,當RDB使用硬體控制進行操作時,RDC使用控制暫存器及/或信號線來規定對應記憶體區塊在經存取之後要進入的狀態(例如,RDC控制RDB將自OPR狀態轉換至的低電力狀態)。舉例而言,RDC可在硬體停止之後控制RDB返回至RET狀態以使RDB處於OPR狀態。
RDB各自包括狀態機、事件輸入端,及控制暫存器及/或信號線。控制暫存器及/或信號線通信耦接至RDC。事件輸入端通信耦接至記憶體解碼器。RDB基於狀態機之當前狀態來控制相關聯的記憶體區塊之電力模式。狀態機之當前狀態係基於事件輸入端上之信號及控制暫存器之內容或信號線之值。RDB可用硬體控制(由事件線觸發之狀態轉換)及/或軟體控制(由控制暫存器觸發之狀態轉換)操作。舉例而言,事件線上之事件信號可使狀態機轉換至OPR狀態。此使RDB將電壓及時脈信號供應至記憶體區塊以使得能夠存取與彼記憶體區塊相關聯之記憶體位址。當事件信號停止時,控制暫存器之內容可使狀態機轉換至RET狀態,此使RDB降低供應電壓且停用彼記憶體區塊之時脈。
圖1A為描繪包括頭戴式裝置(head-mounted device;HMD)102及周邊裝置104之多裝置人工實境系統100的圖示。如所展示,HMD 102典型地由使用者106穿戴且包括用於向使用者106呈現人工實境內容108之電子顯示器及光學總成。此外,HMD 102包括用於追蹤HMD 102之運動的一或多個感測器(例如,加速計)。HMD 102可包括一或多個影像擷取裝置110,例如照相機、線掃描器、眼底照相硬體(fundal photography hardware)等。影像擷取裝置110可組態以用於擷取周圍實體環境之影像資料。在一些實例中,影像擷取裝置110包括面向內部的照相機硬體及/或掃描硬體,其組態成擷取使用者106之面部影像、視網膜掃描、虹膜掃描等以用於使用者鑑認及其他目的。HMD 102在此實例中經展示為與周邊裝置104通信(例如,與周邊裝置104無線通信或繫連至周邊裝置104)。周邊裝置104表示與HMD 102通信之協同處理裝置。HMD 102及/或周邊裝置104可執行人工實境應用程式以建構人工實境內容108以供向使用者106顯示。舉例而言,HMD 102及/或周邊裝置104可基於參考座標之追蹤姿勢資訊及計算姿勢資訊(典型地,HMD 102之觀看視角)來建構人工實境內容。
如圖1A中所展示,多裝置人工實境系統100之一或多個裝置可連接至計算網路,諸如網路112。網路112可併入有有線網路及/或無線網路,諸如區域網路(local area network;LAN)、廣域網路(wide area network;WAN)、基於Wi-FiTM 之網路或5G網路、Ethernet®網路、網狀網路、短程無線(例如,Bluetooth®)通信媒體及/或各種其他電腦互連性之基礎設施及標準。網路112可支援諸如對公用網路(例如網際網路)、專用網路(例如,如可由教學機構、企業、政府機構等實施)或使用公用網路之基礎設施實施的專用網路(例如,虛擬專用網路或經由網際網路穿隧之「VPN」)的各種層級之網路存取。
圖1A亦示出各種視情況選用之裝置,該等裝置可包括於多裝置人工實境系統100中或經由網路112耦接至多裝置人工實境系統100。此等裝置之視情況選用之性質藉助於虛線邊框展示於圖1A中。圖1A中所展示之視情況選用之裝置的一個實例為控制台114。在包括控制台114之實施中,控制台114可與周邊裝置104通信(且從而與HMD 102間接通信)以對HMD 102輸出至使用者106之人工實境內容加以處理。圖1A中所展示之視情況選用之硬體的另一實例由外部感測器116表示。多裝置人工實境系統100可使用外部感測器116及/或外部照相機硬體來在使用者106所定位的真實世界之實體環境內擷取三維(three-dimensional;3D)資訊。
一般而言,多裝置人工實境系統100使用自真實世界之3D實體環境擷取的資訊來顯現人工實境內容108,以供向使用者106顯示。在圖1A之實例中,使用者106觀看由在HMD 102與周邊裝置104之組合上執行之人工實境應用程式所建構及顯現的人工實境內容108。在一些實例中,人工實境內容108可包含真實世界影像(例如,呈周邊裝置表示104'的形式之周邊裝置104、使用者106目前所定位的實體環境處的牆壁之表示、使用者106固持周邊裝置104所用的手之表示等)之組合,該真實世界影像與虛擬物件(例如,虛擬內容項118A及118B、虛擬使用者介面120等)重疊以產生經由HMD 102之顯示硬體向使用者106顯示的擴增實境體驗或混合實境體驗。
在一些實例中,可將虛擬內容項118A及118B(統稱為虛擬內容項118)映射至人工實境內容108內之特定位置。作為實例,虛擬內容項118可經釘駐(pinned)、鎖定或置放至人工實境內容108內之某一位置/經釘駐、鎖定或置放於人工實境內容108內之某一位置處。作為實例,虛擬內容項之位置可相對於在人工實境內容108中再現之真實世界影像的牆壁中之一者加以固定,或經固定至地面。作為非限制性實例,相對於周邊裝置表示104'或使用者106之經追蹤凝視或視野(field of view;FOV),虛擬內容項之位置可為可變的。在一些實例中,虛擬內容項在人工實境內容108內之特定位置與使用者106目前所定位的真實世界之實體環境內的位置(例如,在實體物件之表面上)相關聯。
在此實例中,周邊裝置104為具有如下表面之實體的真實世界裝置:在多裝置人工實境系統100之計算平台上執行之人工實境應用程式在該表面上與虛擬使用者介面120重疊。周邊裝置104可包括一或多個存在敏感表面,該一或多個存在敏感表面用於藉由偵測在存在敏感表面之方位上方觸摸或懸停之一或多個物件(例如,手指、觸控筆)之存在來偵測使用者輸入。在一些實例中,周邊裝置104可包括一或多個輸出裝置,諸如整合至存在敏感表面中以形成周邊裝置104之輸入/輸出(input/output;I/O)組件的顯示器。
在一些實例中,周邊裝置104可具有各種攜帶型裝置(諸如智慧型手機、平板電腦、個人數位助理(personal digital assistant;PDA)或其他手持式裝置)之外觀尺寸。在其他實例中,周邊裝置104可具有各種穿戴式裝置(諸如所謂的「智慧型手錶」、「智慧型戒指」或其他穿戴式裝置)之外觀尺寸。在一些實例中,周邊裝置104可為資訊站(kiosk)或其他靜止或移動系統之部分。雖然上文將周邊裝置104描述為整合式顯示硬體,但在所有實施中,該周邊裝置104不必包括顯示硬體。
在圖1A中所展示之實例人工實境體驗中,將虛擬內容項118映射至使用者106所定位之真實世界的實體環境之牆壁之視覺表示上的位置。圖1A中之實例亦展示虛擬內容項118在人工實境內容108內僅部分地出現在牆壁之視覺表示上,從而說明虛擬內容項118不表示存在於使用者106所定位的真實世界之實體環境中之任何項。將虛擬使用者介面120映射至周邊裝置104之表面,如在周邊裝置表示104'中所表示的。多裝置人工實境系統100在相對於周邊裝置104之特定表面之位置所鎖定的使用者介面位置處顯現虛擬使用者介面120以供經由HMD 102顯示為人工實境內容108之部分。
圖1A展示虛擬使用者介面120看似重疊在周邊裝置表示104'上(且因此,僅在人工實境內容108內),從而說明在虛擬使用者介面120中表示之虛擬內容不存在於使用者106所定位之真實世界的實體環境中。多裝置人工實境系統100可回應於虛擬內容項之方位之至少一部分處於使用者106之FoV中的判定而顯現一或多個虛擬內容項。舉例而言,多裝置人工實境系統100可僅在周邊裝置104處於使用者106之FoV內時才在周邊裝置104上顯現虛擬使用者介面120。
多裝置人工實境系統100之各種裝置可在人工實境環境中配合操作,使得每一裝置可為一或多個實體裝置內之個別實體電子裝置及/或個別積體電路。在此實例中,周邊裝置104與HMD 102操作性地配對以聯合地操作,從而提供人工實境體驗。舉例而言,周邊裝置104及HMD 102可彼此通信作為協同處理裝置。作為一個實例,當使用者在虛擬環境中的一方位處執行使用者介面觸發手勢(此方位對應於重疊在周邊裝置表示104'上的虛擬使用者介面120之虛擬使用者介面元件中之一者)時,多裝置人工實境系統100偵測使用者介面且執行經由HMD 102所顯現及顯示之動作。
根據本發明之所描述技術,周邊裝置104及HMD 102中之每一者可包括一或多個SoC積體電路,其組態成支援上文所描述的人工實境應用程式之態樣,諸如作為協同應用程式處理器、加密引擎、解密引擎、感測器聚合器、顯示控制器等操作之SoC。儘管周邊裝置104及HMD 102中之每一者可包括多個SOC,但為了易於說明及論述,圖1A僅示出HMD 102的HMD SoC 122及周邊裝置104的周邊SoC 124。為了促進裝置(例如,周邊裝置104、HMD 102)之功能性,HMD SoC 122及周邊SoC 124包括記憶體,諸如RAM。HMD SoC 122及周邊SoC 124中之任一者或兩者可操作電力管理技術以減少電力消耗,包括記憶體之電力消耗。
舉例而言,SoC 122之記憶體(例如)可經劃分為一或多個記憶體片段。舉例而言,10百萬位元之記憶體可經劃分為10個1百萬位元記憶體片段。記憶體片段中之每一者與不同RDC相關聯。每一記憶體片段經劃分為能夠在不同電力模式中獨立操作之記憶體區塊。舉例而言,每一1百萬位元記憶體片段可經劃分為64千位元記憶體區塊。記憶體區塊中之每一者與不同RDB相關聯。記憶體片段之RDC耦接至相關聯的記憶體區塊之RDB,以控制RDB之狀態機的狀態。當SoC 122之子系統存取與記憶體區塊中之一者相關聯的記憶體位址時,對應RDB轉換至OPR狀態以提供足以允許讀取及寫入存取之供應電壓。子系統可自若干記憶體位址讀取資料。當子系統不再需要存取記憶體位址(例如,該子系統之讀取操作完成,其開始存取與不同記憶體區塊相關聯之記憶體位址等)時,RDB的狀態機根據由相關聯的RDC(例如,經由控制暫存器或信號線)所提供的電力控制指令而轉換至更低電力狀態(例如,NAP狀態、REN狀態、PSO狀態等)。
以此方式,SoC 122、124可提供階層式電力管理,其中RDB基於例如對記憶體區塊之記憶體存取來提供對記憶體區塊之獨立的精細細微度控制,而RDC可基於例如來自在人工實境系統上執行之軟體的需求來提供對多個不同RDB(及對應記憶體區塊)之粗略細微度控制。此可減少系統中之記憶體的電力消耗以延長電池壽命且改善使用者體驗。
圖1B為描繪另一實例多裝置人工實境系統126之說明。在圖1B之實例中,多裝置人工實境系統126包括外部照相機128A及128B(統稱為「外部照相機128」)、HMD 102A至102C(統稱為「HMD 102」)、控制台114及外部感測器116。如圖1B中所展示,多裝置人工實境系統126表示多使用者環境,其中在控制台114及/或HMD 102上執行之人工實境應用程式基於各別使用者106之對應參考座標之當前觀看視角來向使用者106A至106C(統稱為「使用者106」)中之每一者呈現人工實境內容。亦即,在此實例中,人工實境應用程式藉由追蹤及計算HMD 102中之每一者之參考座標的姿勢資訊來建構人工實境內容。多裝置人工實境系統126使用自外部照相機128及/或HMD 102接收到的資料來擷取真實世界環境內之3D資訊(諸如使用者106之運動及/或關於使用者106的追蹤資訊),以用於計算HMD 102之對應參考座標之更新後的姿勢資訊。
HMD 102在多裝置人工實境系統126內同時操作。在圖1B之實例中,使用者106中之任一者可為人工實境應用程式中的「玩家」或「參與者」,且使用者106中之任一者可為人工實境應用程式中之「觀眾」或「觀察者」。圖1B之HMD 102可各自以與圖1A之HMD 102實質上類似的方式操作。舉例而言,HMD 102A可實質上類似於圖1A之HMD 102來操作,且可藉由追蹤使用者106A之手的移動來接收使用者輸入。HMD 102A包括整合影像擷取裝置110A。
HMD 102中之每一者實施面向各別使用者的人工實境平台(或以協同處理裝置來協同實施平台,如在具有周邊裝置104之HMD 102A的情況下),且輸出各別人工內容,但在圖1B中僅僅出於易於說明目的而展示僅由HMD 102A輸出的人工實境內容108。如圖1B中所展示,HMD 102中之兩者或更多者可(但不一定必須)符合相同外觀尺寸。在圖1B中展示HMD 102之各種外觀尺寸,包括護目鏡外觀尺寸及眼鏡外觀尺寸。在一些使用案例情境中,HMD 102B及/或102C亦可與攜帶型裝置配對(例如無線耦接或繫連至攜帶型裝置),其實施關於周邊裝置104所描述之特徵大體上對應之特徵繫連。
類似於圖1A中所描述之實例,HMD 102C(或HMD 102中之任一者)可包括無線通信系統,該無線通信系統在發送或接收自HMD SoC 122至周邊SoC 124的經加密封包時改良加密及解密操作之效能。
根據本發明之技術,HMD SoC 122及周邊SoC 124中之每一者包括多個子系統,其中每一子系統專用於支援某些功能性,諸如用於人工實境體驗之音訊處理、用於人工實境體驗之動畫處理、用於使用者106或其他之安全性資訊等。如上文所描述,HMD SoC 122及周邊SoC 124包括用以在此等子系統存取記憶體時提供記憶體之階層式電力管理之RDC及RDB。
圖2為描繪與周邊裝置104通信之HMD 102之實例的圖示。在此實例中,HMD 102包括前側剛體及用以例如藉由抵靠於使用者106之耳朵上方而將HMD 102固定至使用者106的兩個鏡桿。此外,HMD 102包括組態成向使用者106呈現人工實境內容之面向內部的電子顯示器200。電子顯示器200可包括任何合適的顯示技術、為任何合適的顯示技術,或為任何合適的顯示技術之部分,諸如液晶顯示器(liquid crystal display;LCD)、量子點顯示器、點矩陣顯示器、發光二極體(light emitting diode;LED)顯示器、有機發光二極體(organic light-emitting diode;OLED)顯示器、陰極射線管(cathode ray tube;CRT)顯示器、電子油墨,或能夠產生視覺輸出之單色、彩色或任何其他類型之顯示器。在一些實例中,電子顯示器200包括用於向使用者106之每只眼睛提供個別影像之立體顯示器。在一些實例中,當追蹤HMD 102之位置及定向以用於根據HMD 102及使用者106之當前觀看視角來顯現人工實境內容時,將顯示器200相對於HMD 102之前側剛體的已知定向及位置用作參考座標,亦稱為本地原點。
HMD 102採用圖2之實例中之眼鏡的外觀尺寸。在一些實例中,電子顯示器200可經拆分成多個片段,諸如拆分成兩個片段,其中每一片段對應於安置在HMD 102之剛性前側主體上的個別透鏡。在其他實例中,根據圖2,電子顯示器200可形成橫跨HMD 102之剛性前側主體之兩個透鏡及連接透鏡的橋(亦即,鼻部上方之部分)之連續表面。在根據圖2中所示出之外觀尺寸的一些實例中,電子顯示器200亦可涵蓋HMD 102之將前側剛體之透鏡連接至鏡桿的部分,或視情況涵蓋鏡桿本身之部分。在圖2中所展示之HMD 102的外觀尺寸之上下文中的電子顯示器200之此等各種設計改善具有不同視覺能力、眼動特質(eye movement idiosyncrasies)等的使用者之可接近性。在其他實例中,HMD 102可採用其他外觀尺寸,諸如配備有條帶以將HMD 102固定至使用者106之頭部的頭戴式器件(headset)或護目鏡之一般外觀尺寸。
在圖2中所說明之實例中,HMD 102進一步包括:一或多個運動感測器202,諸如一或多個加速計(亦稱為慣性量測單元或「IMU」),其輸出指示HMD 102之當前加速度的資料;GPS感測器,其輸出指示HMD 102之方位的資料;雷達或聲納,其輸出指示HMD 102相距各種物件之距離的資料;或其他感測器,其提供實體環境內之HMD 102或其他物件之方位或定向的指示。在圖2中所說明之實例中,HMD 102包括整合式影像擷取裝置110A及110B(統稱為「影像擷取裝置110」)。影像擷取裝置110可包括靜態影像照相機硬體、視訊照相機硬體、雷射掃描器、Doppler®雷達掃描器、眼底照相硬體、紅外光成像照相機、深度掃描器或類似者。影像擷取裝置110可包括面向外部及/或面向內部的影像擷取硬體,且包括組態成擷取表示周圍實體環境之影像資料且視情況對所擷取影像資料進行預處理及/或後處理之任何硬體。影像擷取裝置14之面向外部之照相機硬體可擷取HMD 102外部的實體環境(諸如但不限於使用者106所定位的真實世界環境)之影像資料。影像擷取裝置14之面向內部之照相機硬體可擷取HMD 102的穿戴者之影像資料,諸如使用者106之面部影像及/或視網膜掃描及/或溫度資訊。
此外,HMD 102與圖2的實例中之實例周邊裝置104通信。周邊裝置104可以多種方式通信耦接至HMD 102,諸如經由無線通信鏈路(例如,Wi-FiTM 、諸如Bluetooth®之短程無線通信的近場通信等)或有線通信鏈路或繫連(tethered)連接,或其任何組合。周邊裝置104可經由網路112接收及發送資料,且可藉此充當人工實境系統的網路介面,該人工實境系統包括周邊裝置104與HMD 102的組合或由周邊裝置104與HMD 102的組合來形成。周邊裝置104之表面204表示周邊裝置104之輸入組件或組合輸入/輸出組件。表面204可包括感測能力,諸如觸控式螢幕(例如,電容觸控式螢幕、電阻觸控式螢幕、表面聲波(surface acoustic wave;SAW)觸控式螢幕、紅外線觸控式螢幕、光學成像觸控式螢幕、聲波脈衝辨識觸控式螢幕或任何其他觸控式螢幕)、觸控板、按鈕、軌跡球、滾輪或使用電容、導電、電阻、聲學或其他技術偵測觸摸及/或懸停輸入之其他存在敏感硬體的感測能力。
表面204可使得周邊裝置104能夠在不與表面204直接接觸的情況下接收觸摸輸入或手勢輸入。使用者106可向周邊裝置104提供此等觸摸或手勢輸入以向周邊裝置104直接提供指令,或向HMD 102及/或部署有HMD 102之人工實境系統的其他組件間接提供指令。在一些實例中,HMD 102之處理電路系統可利用影像擷取裝置110來分析周邊裝置104之組態、位置、移動及/或定向、使用者106之手或其指頭的組態、位置、移動及/或定向,以使得能夠使用諸如經由圖形鍵盤提供之繪製手勢或打字手勢之手勢來提供輸入。
以此方式,周邊裝置104可自HMD 102卸載各種硬體及資源負擔,此實現了HMD 102之低剖面外觀尺寸設計。周邊裝置104亦可經由網路112充當在HMD 102與位於遠端方位處之裝置之間的中間通信。周邊裝置104之額外細節經描述於美國專利申請案第16/506,618號(在2019年7月9日申請的)中,該申請案的全部內容以引用方式併入本文中。
根據本發明之技術,周邊裝置104及HMD 102中之一者或兩者可包括一或多個SoC積體電路,其組態成支援上文所描述的人工實境應用程式(諸如作為協同應用程式處理器、加密引擎、解密引擎、感測器聚合器、顯示控制器等操作之SoC)之態樣。另外,HMD SoC 122及周邊SoC 124中之每一者可包括一或多個子系統,其中每一子系統專用於支援某些功能性,諸如音訊處理、影像及圖框處理、安全性管理、無線通信等。HMD SoC 122及周邊SoC 124中之每一者包括記憶體(例如,共用記憶體)以促進子系統之操作及合作。如上文所描述,HMD SoC 122及周邊SoC 124包括RDC及RDB以提供用於記憶體之階層式電力管理。
圖3為示出用於多裝置人工實境系統100或126之一部分之分布式架構的更詳細實例實施之方塊圖,在該多裝置人工實境系統中,使用每一裝置內之各別SoC積體電路來實施兩個或更多個裝置。圖3示出結合周邊裝置104操作之HMD 102的實例。此外,周邊裝置104表示具有一表面的實體的真實世界裝置,在該表面上,多裝置人工實境系統100或126與虛擬內容重疊。周邊裝置104可包括一或多個存在敏感表面204,其用於藉由偵測在存在敏感表面204之方位上方觸摸或懸停之一或多個物件(例如,手指、觸控筆等)之存在來偵測使用者輸入。在一些實例中,周邊裝置104可具有與智慧型手機、平板電腦、個人數位助理(PDA)或其他手持式裝置中之任一者類似之外觀尺寸。在其他實例中,周邊裝置104可具有智慧型手錶、所謂的「智慧型戒指」或其他穿戴式裝置之外觀尺寸。周邊裝置104亦可為資訊站或其他靜止或移動系統之部分。如上文所描述,HMD 102經架構且組態成使得能夠執行人工實境應用程式。
一般而言,圖3中所示出之SoC表示以分佈式架構配置之特定積體電路的集合,其中每一SoC積體電路包括組態成提供用於人工實境應用程式之操作環境的各種特定功能區塊。圖3僅僅為SoC積體電路之一個實例配置。用於多裝置人工實境系統之分佈式架構可包括SoC積體電路之任何集合及/或配置。
在此實例中,HMD 102之SoC 300A包含功能區塊,該等功能區塊包括追蹤子系統304以及各種其他子系統306A及306B。追蹤子系統304、子系統306A及306B為向SoC 300A提供一或多個定義功能之積體電路的群組。SoC 300A可為HMD SoC 122之實例例項。
作為一個實例,追蹤子系統304提供用於眼睛追蹤310、手追蹤312、深度追蹤314及/或同步定位與映射(Simultaneous Localization and Mapping;SLAM)316之功能區塊。舉例而言,HMD 102可自以下各者接收輸入:一或多個加速度計(亦稱為慣性量測單元或「IMU」),其輸出指示HMD 102之當前加速度的資料;GPS感測器,其輸出指示HMD 102之方位的資料;雷達或聲納,其輸出指示HMD 102相距各種物件之距離的資料;或其他感測器,其提供HMD 102或實體環境內之其他物件之方位或定向的指示。HMD 102亦可自一或多個影像擷取裝置110接收影像資料。影像擷取裝置110可包括組態成輸出表示實體環境之影像資料的視訊照相機、雷射掃描器、都卜勒(Doppler)雷達掃描器、深度掃描器或類似者。更具體而言,影像擷取裝置擷取表示實體環境中之位於影像擷取裝置之視野內的物件(包括周邊裝置104及/或手)的影像資料,該視野典型地與HMD 102之觀看視角一致。基於所感測資料及/或影像資料,追蹤子系統304判定例如HMD 102之參考座標的當前姿勢,且根據當前姿勢來顯現人工實境內容。
子系統306A及306B提供用於HMD 102之特定功能。子系統306A及306B可包括例如安全性處理、圖形處理、介面處理、音訊處理及/或顯示處理等。安全性處理子系統可在結合使用在AR環境內之周邊裝置104與裝置(例如,HMD 102)進行配對時提供安全裝置認證及相互鑑認。舉例而言,安全性處理子系統可鑑認周邊裝置104之SoC中之一或多者。圖形處理子系統可包括各種處理器,諸如視訊處理單元、圖形處理單元、數位信號處理器、編碼器及/或解碼器等,以處理自周邊裝置104接收到之表面及紋理資料。介面處理子系統可例如處理由追蹤子系統304及/或影像擷取裝置104產生之信號以提供手勢辨識,從而向使用者106提供基於手勢的介面。音訊處理子系統可例如包括用以處理及輸出至併入於HMD 102中之音訊輸出裝置的聲音之編解碼器及/或驅動器。顯示處理子系統可例如提供用於傳送在HMD 102之SoC之間的紋理及表面資料的介面。
根據本文中所描述之技術,SoC 300A包括隨機存取記憶體(RAM)318。在一些實例中,RAM 318為共用記憶體,其中追蹤子系統304、子系統306A及306B各自經由記憶體解碼器320藉由資料匯流排(其可為「網路單晶片」或「NoC」)以通信耦接至RAM 318。RAM 318經劃分為記憶體區塊(memory block;MB)322A至322N。記憶體區塊322A至322N可一起分組至記憶體片段中。為簡單起見,在所說明實例中,記憶體區塊322A至322N位於單個記憶體片段中。記憶體區塊322A至322N能夠處於不同電力模式中。每一記憶體區塊322A至322N與記憶體位址之連續區塊相關聯。當追蹤子系統304、子系統306A及306B存取(例如,執行讀取或寫入動作)記憶體位址時,記憶體解碼器320使用位址內之多個位元來判定將存取哪一記憶體區塊322A至322N。
SoC 300A包括電力管理器324。電力管理器324實施電力管理技術以控制SoC 300A(包括追蹤子系統304、子系統306A及306B)及RAM 318之電力消耗。在所說明實例中,為了控制RAM 318之電力消耗,電力管理器324包括RAM域控制器(RDC)326及RAM域塊(RDB)328A至328N。雖然所說明實例包括一個RDC 326,但電力管理器324可每記憶體片段包括一個RDC 326。如下文更詳細地描述,RAM域塊(RDB)328A至328N控制記憶體區塊322A至322N中之相關聯一者的電力模式。RDC 326控制RDB 328A至328N中之相關聯一者。
SoC 300B及300C(有時稱為「顯示器SoC」)各自表示用於在各別顯示器(例如,顯示器330A及330B(統稱為「顯示器330」)上輸出人工實境內容之顯示控制器。在此實例中,顯示器SoC 300B可包括用於供顯示器330A針對使用者(例如,圖1A及1B之使用者106)之左眼334A輸出人工實境內容的顯示控制器332A,以及用於在顯示器330A上輸出人工實境內容之解密塊336A、解碼器塊338A及/或像素驅動器340A。類似地,顯示器SoC 300C可包括用於供顯示器330B針對使用者之右眼334B輸出人工實境內容的顯示控制器332B,以及用於在顯示器330B上產生且輸出人工實境內容之解密塊336B、解碼器塊338B及/或像素驅動器340B。顯示器330可包括發光二極體(LED)顯示器、有機LED(OLED)、量子點LED(Quantum dot LED;QLED)、電子紙(電子油墨)顯示器、液晶顯示器(LCD)或用於顯示AR內容之其他類型之顯示器。雖然圖中未示,但SoC 300B及300C可包括記憶體及僅作為SoC 300A之電力管理器。
周邊裝置104包括組態成支援人工實境應用程式之SoC 342A及342B。在此實例中,SoC 342A包含功能區塊,該等功能區塊包括追蹤子系統344以及各種其他子系統346A及346B。追蹤子系統344以及子系統346A及346B為向SoC 342A提供一或多個定義功能之積體電路的群組。SoC 342A可為周邊SoC 124之實例例項。
追蹤子系統344為提供眼動追蹤348、手追蹤350、深度追蹤352及/或同步定位與映射(SLAM)354之功能區塊。舉例而言,周邊裝置104可自以下各者接收輸入:一或多個加速度計(亦稱為慣性量測單元或「IMU」),其輸出指示周邊裝置104之當前加速度的資料;GPS感測器,其輸出指示周邊裝置104之方位的資料;雷達或聲納,其輸出指示周邊裝置104相距各種物件之距離的資料;或其他感測器,其提供周邊裝置104或實體環境內之其他物件之方位或定向的指示。在一些實例中,周邊裝置104亦自諸如視訊照相機、雷射掃描器、都卜勒雷達掃描器、深度掃描器或類似者之一或多個影像擷取裝置接收影像資料,該一或多個影像擷取裝置組態成輸出表示實體環境之影像資料。基於所感測資料及/或影像資料,追蹤子系統336判定例如周邊裝置104之參考座標的當前姿勢,且根據當前姿勢來向HMD 102顯現人工實境內容。
子系統346A及346B提供用於周邊裝置104之特定功能。子系統346A及346B可包括例如安全性處理子系統、顯示子系統、圖形子系統及/或音訊子系統。安全性處理子系統可鑑認HMD 102之SoC中的一或多者。圖形處理子系統可包括各種處理器,諸如視訊處理單元、圖形處理單元、數位信號處理器、編碼器及/或解碼器等,以處理自SoC 342B接收到之表面及紋理資料。介面處理子系統可例如處理由追蹤子系統344及/或介面204產生之信號。音訊處理子系統可例如包括數位信號處理器、編碼器及/或解碼器等,以處理待傳輸至HMD 102之聲音。顯示處理子系統可例如提供用於傳送在周邊裝置104之SoC之間的紋理及表面資料的介面。
根據本文中所描述之技術且與上文所描述之SoC 300A類似,SoC 342A包括隨機存取記憶體(RAM)318。在一些實例中,RAM 318為共用記憶體,其中追蹤子系統344、子系統346A及346B各自經由記憶體解碼器320藉由資料匯流排(其可為「網路單晶片」或「NoC」)以通信耦接至RAM 318。RAM 318經劃分為記憶體區塊(memory block;MB)322A至322N。記憶體區塊322A至322N可一起分組至記憶體片段中。為簡單起見,在所說明實例中,記憶體區塊322A至322N位於單個記憶體片段中。記憶體區塊322A至322N能夠處於不同電力模式中。每一記憶體區塊322A至322N與記憶體位址之連續區塊相關聯。當追蹤子系統304、子系統306A及306B存取(例如,執行讀取或寫入動作)記憶體位址時,記憶體解碼器320使用位址內之多個位元來判定將存取哪一記憶體區塊322A至322N。
SoC 342A包括電力管理器324。電力管理器324實施電力管理技術以控制SoC 342A(包括追蹤子系統344、子系統346A及346B)及RAM 318之電力消耗。在所說明實例中,為了控制RAM 318之電力消耗,電力管理器324包括RAM域控制器(RDC)326及RAM域塊(RDB)328A至328N。雖然所說明實例包括一個RDC 326,但電力管理器324可每記憶體片段包括一個RDC 326。如下文更詳細地描述,RAM域塊(RDB)328A至328N控制記憶體區塊322A至322N中之相關聯一者的電力模式。RDC 326控制RDB 328A至328N中之相關聯一者。
SoC 342B包括一或多個應用程式協同處理器352及一或多個應用程式處理器354。在此實例中,協同應用程式處理器350包括各種處理器,諸如視覺處理單元(vision processing unit;VPU)、圖形處理單元(graphics processing unit;GPU)及/或中央處理單元(central processing unit;CPU)。應用程式協同處理器352可包括處理單元,該處理單元用於執行一或多個人工實境應用程式以產生及顯現例如至周邊裝置104之表面的虛擬使用者介面及/或偵測由使用者相對於周邊裝置104執行之手勢。雖然圖中未示,但SoC 342B可包括記憶體及僅作為SoC 342A之電力管理器。
圖4為根據本發明中所描述之技術的階層式電力管理系統400之方塊圖。在所說明實例中,階層式電力管理系統400包括電力管理器324、隨機記憶體318以及記憶體解碼器320。電力管理器324每記憶體片段402包括一個RDC 326且每記憶體區塊322A至322N包括一個RDB 328A至328N。如下文所描述,RDC 326通信耦接至與對應記憶體片段402中之記憶體區塊322A至322N相關聯之RDB 328A至328N。RDB 328A至328N控制其相關聯的記憶體區塊322A至322N之電力模式。在一些實例中,RDB 328A至328N藉由改變至記憶體區塊322A至322N之供應電壓及/或時脈信號來控制電力模式。
在一些實例中,電力管理器324包括叢集管理器404。叢集管理器404包括通信耦接至一或多個RDC 326以結合外送電力管理系統(諸如控制至子系統(例如,追蹤子系統304、子系統306A及306B等)之電力的電力域控制器(power domain controller;PDC))實施電力管理技術。在一些實例中,叢集管理器404控制RDC 326可啟用之低電力狀態中的哪一子集。另外或替代地,在一些實例中,叢集管理器404可請求RDC 326將RDB 328A至328N中之一或多者置於OPR狀態中。
在一些實例中,記憶體解碼器320通信耦接至RDB 328A至328N之事件線。當子系統(例如,追蹤子系統304、子系統306A及306B等)中之一者的應用程式處理器(CPU)406或圖形處理器(GPU)408請求經由資料匯流排410來讀取或寫入至記憶體區塊322A至322N中之一者時,記憶體解碼器320可在讀取/寫入存取之持續時間內在RDB 328A至328N中的對應一者之事件線上發送信號。舉例而言,若GPU 408請求自與記憶體區塊A 322A相關聯之連續位址進行讀取,則記憶體解碼器320可在由GPU 408進行存取的持續時間內向RDB A 328A之事件線提供信號(例如,對應於邏輯「啟用」之電壓位準)。在此情境中,當硬體控制經啟用(例如,藉由RDC 326)時,RDB A 328A可轉換至OPR狀態。
圖5A、5B及5C為根據本發明中所描述之技術的圖4之階層式電力管理系統的更詳細態樣之方塊圖。在圖5A之所說明實例中,RDB 328A至328N包括控制暫存器(control register;CR)502、電力控件(power control;PC)504、事件輸入端506及狀態機(SM)508。控制暫存器502接收來自RDC 326之輸入以控制RDB 328A至328N之功能性。在一些實例中,控制暫存器502可各自包括一或多個邏輯開關或信號輸入端,該一或多個邏輯開關或信號輸入端在被清除或設定時設定狀態機508之預設低電力狀態、引起狀態機508之轉換且/或啟用、停用及/或組態RDB 328A至328N之模式。舉例而言,RDC 326可寫入資料至控制暫存器502以啟用或停用硬體控制、將預設低電力狀態設定為REN狀態及/或使狀態機508轉換至OPR狀態。電力控制504根據狀態機之當前狀態來控制供應電壓(例如,經由控制至記憶體區塊322A至322N之供應電壓的本地域區塊(local domain block;LDB)等)及/或相關聯的記憶體區塊322A至322N之時脈頻率。當記憶體解碼器320在存取之持續時間內將與對應記憶體區塊322A至322N相關聯之記憶體位址解碼時,事件輸入端506接收信號(例如,啟用信號)。如下文所描述,事件線506上的啟用信號可將狀態機508轉換至OPR狀態中。
狀態機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可包括SDC啟用暫存器以基於來自其他控制暫存器(例如,OPR暫存器等)之輸入來啟用或停用轉換至一或多個狀態(例如,OPR狀態等)。在一些實例中,控制暫存器502可包括暫存器以提供來自叢集管理器404之輸入(例如,CM-OPR暫存器、CM-REN暫存器等),及CM啟用暫存器以基於來自CM相關聯暫存器之控制暫存器(例如,CM-OPR暫存器等)之輸入來啟用或停用轉換至一或多個狀態(例如,OPR狀態等)。
圖5B之所說明實例包括通信耦接至MB 512之RDB 510。RDB 510可為圖3之RDB 328的實例。在所說明實例中,RDB 510在不連接至SDC之情況下直接通信耦接至電力管理系統(諸如圖4之叢集管理器(CM)404)。舉例而言,一些SoC可具有有限量之記憶體及/或可具有有限實體空間以放置與記憶體管理相關之電路系統。在此等實例中,SoC仍然可受益於在可用空間內操作時提供階層式電力管理之軟體及硬體控制中的至少一些。
在圖5C之所說明實例中,RDB 328A至328N包括控制CR 502、PC 504、事件輸入端506、狀態機508及軟體暫存器514。軟體暫存器514自SoC上操作之軟體接收輸入以控制RDB 328A至328N之功能性。舉例而言,可將在SoC上操作之軟體寫入至軟體暫存器514以例如設定預設低電力狀態及/或使狀態機508轉換至OPR狀態等。在一些實例中,控制暫存器502可包括用以控制RDB 328何時可實施軟體暫存器514中之控制的軟體啟用暫存器。另外,在一些實例中,RDB 328可與RDC 326協調,使得當命令由軟體暫存器514接收時,命令鎖存直至命令實施且不允許在轉換期間進行任何其他軟體控制為止。在一些實例中,若軟體暫存器514、控制暫存器502及事件輸入端506中之命令衝突,則RDB 328可優先排序事件輸入端506、控制暫存器502且隨後軟體暫存器514來解決衝突。
圖6A、6B及6C為狀態機508之實例的方塊圖。圖6A示出狀態機600,其基於來自記憶體解碼器320之硬體控制(例如,經由事件線506)及來自RDC 326之軟體控制(例如,經由控制暫存器502)而在狀態之間轉換。狀態機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等)之情況下自一個低電力狀態(例如,NAP狀態604等)轉換至另一更低電力狀態(例如,REN狀態606及PSO狀態608等)。
狀態機600可在PSO狀態608中開始。舉例而言,當混合實境系統通電時,狀態機600可預設為PSO狀態608。當PSO控制暫存器(例如,控制暫存器502中之一者)經啟用時,狀態機600保持在PSO狀態608中(614)。當偵測到事件時,狀態機600轉換至延遲狀態612A。可經由控制暫存器502(例如,經由OPR暫存器、REN暫存器等)、事件輸入端506及/或軟體暫存器514來偵測事件(616)。
狀態機600在臨限數目的時脈週期(例如,8個、16個、24個、32個、40個、48個、56個、64個時脈週期等)內保持在延遲狀態612A中。時脈週期之數目可由RDC 326組態(經由控制暫存器502之PSO-OPR轉換定時器控制暫存器)。在臨限數目的週期之後,狀態機600轉換至OPR狀態602(618)。
當(a)OPR暫存器502經啟用或(b)啟用信號在事件輸入端506上為作用時,狀態機600保持在OPR狀態602中(620)。當OPR暫存器502經停用且(b)啟用信號在事件輸入端506上不作用時,狀態機600取決於控制暫存器502之內容而轉換至不同狀態。當NAP暫存器經啟用且REN暫存器及PSO暫存器未經啟用時,狀態機600轉換至NAP狀態604(622)。當REN暫存器經啟用且PSO暫存器未經啟用時,狀態機600轉換至延遲狀態610A(624)。當PSO暫存器經啟用時,狀態機600轉換至延遲狀態610B(626)。
當NAP暫存器經啟用且不滿足其他轉換準則時,狀態機600保持在NAP狀態604中(628)。當偵測到事件時,狀態機600轉換至OPR狀態602(630)。當REN暫存器經啟用且PSO暫存器經停用時,狀態機600轉換至延遲狀態610A(632)。當PSO暫存器經啟用時,狀態機600轉換至延遲狀態610B(634)。
狀態機600在臨限數目的時脈週期(例如,8個、16個、24個、32個、40個、48個、56個、64個時脈週期等)內保持在延遲狀態610A中。時脈週期之數目可由RDC 326組態(經由控制暫存器502之REN轉換定時器控制暫存器)。在臨限數目的週期之後,狀態機600轉換至REN狀態606(636)。
當REN暫存器經啟用且不滿足其他轉換準則時,狀態機600保持在REN狀態606中(638)。當偵測到事件時,狀態機600轉換至延遲狀態612B(640)。
狀態機600在臨限數目的時脈週期(例如,8個、16個、24個、32個、40個、48個、56個、64個時脈週期等)內保持在延遲狀態612B中。時脈週期之數目可由RDC 326組態(經由控制暫存器502之REN-OPR轉換定時器控制暫存器)。在臨限數目的週期之後,狀態機600轉換至OPR狀態602(642)。
狀態機600在臨限數目的時脈週期(例如,8個、16個、24個、32個、40個、48個、56個、64個時脈週期等)內保持在延遲狀態610B中。時脈週期之數目可由RDC 326組態(經由控制暫存器502之PSO轉換定時器控制暫存器)。在臨限數目的週期之後,狀態機600轉換至PSO狀態608(644)。
在實例情境中,當混合實境系統通電時,為了準備記憶體318,RDC 326可啟用OPR暫存器及REN暫存器,使得狀態機600轉換至延遲狀態612A。在延遲期間,RDC 326可停用OPR暫存器。狀態機轉換至OPR狀態602。因為OPR狀態經停用且REN狀態經啟用,所以狀態機600轉換至延遲狀態610A。在延遲之後,狀態機600轉換至REN狀態606。
圖6B示出狀態機646,其基於來自記憶體解碼器320之硬體控制(例如,經由事件線506)、來自RDC 326之軟體控制(例如,經由控制暫存器502)、經由軟體暫存器514之軟體控制及CM 404而在狀態之間轉換。CM 404可根據SoC電力管理策略來指示RDC 326轉換狀態機646之狀態,以接通或切斷SoC之各種子系統及其他組件。舉例而言,CM 404可回應於來自使用者之輸入而引導某些記憶體區塊322A至322N通電,以提供足夠數量之記憶體來對輸入作出反應。狀態機646為狀態機508之實例。CM 404可經由RCS 326直接控制RDB 328,以實施用於包括例如記憶體318、記憶體解碼器320、CPU 406及GPU 408等之SoC的電力控制策略。在圖6B中所說明之實例中,狀態機646包括OPR狀態602、NAP狀態604、REN狀態606及PSO狀態608。另外,在所說明實例中,狀態機646包括在狀態機600於高電力狀態(例如,OPR狀態602等)與低電力狀態(例如,NAP狀態604、REN狀態606及PSO狀態608等)之間進行轉換時狀態機646轉換經過之中間延遲狀態610A及610B以及612A及612B。在一些實例中,狀態機646可在不轉換至高電力狀態(例如,OPR狀態602等)之情況下自一個低電力狀態(例如,NAP狀態604等)轉換至另一更低電力狀態(例如,REN狀態606及PSO狀態608等)。狀態機646經由控制暫存器502(例如,包括CM相關聯的暫存器等)及事件輸入端506來接收輸入。
狀態機646可在PSO狀態608中開始。舉例而言,當混合實境系統通電時,狀態機600可預設為PSO狀態608。當啟用PSO控制暫存器時,狀態機646保持在PSO狀態608中(648)。當偵測到事件時,狀態機646轉換至延遲狀態612A。可經由控制暫存器502(例如,經由OPR暫存器、REN暫存器等)、事件輸入端506及/或軟體暫存器514來偵測事件(650)。
狀態機646在臨限數目的時脈週期(例如,8個、16個、24個、32個、40個、48個、56個、64個時脈週期等)內保持在延遲狀態612A中。時脈週期之數目可由RDC 326組態(經由控制暫存器502之PSO轉換定時器控制暫存器)。在臨限數目的週期之後,狀態機646轉換至OPR狀態602(652)。
當(a)OPR暫存器502經啟用或(b)在事件輸入端506上接收到啟用信號時,狀態機646保持在OPR狀態602中(654)。當OPR暫存器502經停用且(b)在事件輸入端506上並未接收到啟用信號時,狀態機646取決於控制暫存器502之內容而轉換至不同狀態。當NAP暫存器或CM-NAP暫存器經啟用且REN暫存器及PSO暫存器未經啟用時,狀態機600轉換至NAP狀態604(656)。當REN暫存器或CM-REN暫存器經啟用且PSO暫存器未經啟用時,狀態機646轉換至延遲狀態610A(658)。當PSO暫存器經啟用時,狀態機646轉換至延遲狀態610B(660)。
當NAP暫存器經啟用且不滿足其他轉換準則時,狀態機646保持在NAP狀態604中(662)。當偵測到事件時,狀態機646轉換至OPR狀態602(664)。當REN暫存器或CM-REN暫存器經啟用且PSO暫存器及CM-PSO暫存器經停用時,狀態機600轉換至延遲狀態610A(666)。當PSO暫存器或CM-PSO暫存器經啟用時,狀態機646轉換至延遲狀態610B(668)。
狀態機646在臨限數目的時脈週期(例如,8個、16個、24個、32個、40個、48個、56個、64個時脈週期等)內保持在延遲狀態610A中。時脈週期之數目可由RDC 326組態(經由控制暫存器502之REN轉換定時器控制暫存器)。在臨限數目的週期之後,狀態機646轉換至REN狀態606(670)。
當REN暫存器經啟用且不滿足其他轉換準則時,狀態機646保持在REN狀態606中(638)。當偵測到事件時,狀態機646轉換至延遲狀態612B(674)。
狀態機646在臨限數目的時脈週期(例如,8個、16個、24個、32個、40個、48個、56個、64個時脈週期等)內保持在延遲狀態612B中。時脈週期之數目可由RDC 326組態(經由控制暫存器502之OPR轉換定時器控制暫存器)。在臨限數目的週期之後,狀態機646轉換至OPR狀態602(676)。
狀態機646在臨限數目的時脈週期(例如,8個、16個、24個、32個、40個、48個、56個、64個時脈週期等)內保持在延遲狀態610B中。時脈週期之數目可由RDC 326組態(經由控制暫存器502之REN轉換定時器控制暫存器)。在臨限數目的週期之後,狀態機646轉換至PSO狀態608(678)。
圖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等)之情況下自一個低電力狀態(例如,NAP狀態604等)轉換至另一更低電力狀態(例如,REN狀態606及PSO狀態608等)。狀態機680經由控制暫存器502及事件輸入端506來接收輸入。
狀態機680可在PSO狀態608中開始。舉例而言,當混合實境系統通電時,狀態機600可預設為PSO狀態608。當偵測到事件時,狀態機600保持在PSO狀態608中。可經由控制暫存器502(例如,經由OPR暫存器、REN暫存器等)、事件輸入端506及/或軟體暫存器514來偵測事件(684)。
狀態機680在臨限數目的時脈週期(例如,8個、16個、24個、32個、40個、48個、56個、64個時脈週期等)內保持在延遲狀態612A中。時脈週期之數目可由RDC 326組態(經由控制暫存器502之PSO-OPR轉換定時器控制暫存器)。在臨限數目的週期之後,狀態機680轉換至OPR狀態602(686)。
當(a)OPR暫存器502經啟用或(b)在事件輸入端506上接收到啟用信號時,狀態機680保持在OPR狀態602中(688)。當OPR暫存器502經停用且(b)在事件輸入端506上並未接收到啟用信號時,狀態機600取決於控制暫存器502之內容而轉換至不同狀態。當REN暫存器經啟用且PSO暫存器未經啟用時,狀態機680轉換至延遲狀態610A(690)。當PSO暫存器經啟用時,狀態機600轉換至延遲狀態610B(692)。
狀態機680在臨限數目的時脈週期(例如,8個、16個、24個、32個、40個、48個、56個、64個時脈週期等)內保持在延遲狀態610A中。時脈週期之數目可由RDC 326組態(經由控制暫存器502之REN轉換定時器控制暫存器)。在臨限數目的週期之後,狀態機600轉換至REN狀態606(694)。
當REN暫存器經啟用且不滿足其他轉換準則時,狀態機680保持在REN狀態606中(696)。當偵測到事件時,狀態機680轉換至延遲狀態612B(697)。
狀態機680在臨限數目的時脈週期(例如,8個、16個、24個、32個、40個、48個、56個、64個時脈週期等)內保持在延遲狀態612B中。時脈週期之數目可由RDC 326組態(經由控制暫存器502之REN-OPR轉換定時器控制暫存器)。在臨限數目的週期之後,狀態機600轉換至OPR狀態602(698)。
狀態機600在臨限數目的時脈週期(例如,8個、16個、24個、32個、40個、48個、56個、64個時脈週期等)內保持在延遲狀態610B中。時脈週期之數目可由RDC 326組態(經由控制暫存器502之PSO轉換定時器控制暫存器)。在臨限數目的週期之後,狀態機680轉換至PSO狀態608(699)。
圖7為根據本發明中所描述之技術的用以使用硬體控制來控制記憶體區塊322A至322N之電力狀態的實例操作模式之流程圖。出於實例目的,關於RDB 328A及記憶體區塊322A來描述操作模式。初始地,RDB 328A自記憶體解碼器(例如,圖3及4之記憶體解碼器320)接收啟用信號(702)。啟用信號可為與邏輯真或啟用相關聯之電壓位準(例如,在3.3伏特系統中為3.3伏特)。當與記憶體區塊322A相關聯之記憶體位址由SoC之子系統存取時,記憶體解碼器可產生啟用信號。在狀態機508轉換至高電力狀態(例如,圖6A、6B及6C之OPR 602)之前(在702處為’是’),狀態機508在驅動記憶體區塊322之時脈的臨限數目之時脈週期內轉換至中間延遲狀態(例如,圖6A、6B及6C之中間延遲狀態612A及612B)(704)。
RDB 328A將記憶體區塊322A控制至操作電力模式(706)。在一些實例中,RDB 328A提供供應電壓及時脈頻率以使得能夠自記憶體區塊322A讀取及寫入至記憶體區塊322A。RDB 328A等待,直至其不再於事件輸入端506上接收到啟用信號為止(708)。當RDB 328A正接收啟用信號時(在708處為’是’),RDB 328A繼續在適合於自記憶體讀取及寫入至記憶體之操作模式中操作記憶體區塊322A(706)。當RDB 328A不再接收到啟用信號時(在708處為’否’),狀態機508對驅動記憶體區塊322之時脈的若干時脈週期進行遞減計數(710)。當遞減計數在事件輸入端506上之信號再次為作用之前達到零時(在712處為’是’),RDB 328A根據狀態機508之狀態來控制記憶體區塊322A。舉例而言,當啟用信號不再存在於事件線506上時,RDC 326可經由控制暫存器502指示狀態機508將轉換至REN狀態606(714)。RDB 328A隨後等待事件線506上之另一啟用信號(702)。當遞減計數在事件輸入端506上之信號再次為作用之前沒有達到零時(在712處為’否’),RDB 328A將記憶體區塊322A控制至操作電力模式(706)。
圖8為根據本發明中所描述技術之用以存取由階層式電力管理系統所控制之記憶體312之實例操作模式的流程圖。出於實例目的,關於RDB 328A及記憶體區塊322A來描述操作模式。初始地,叢集管理器404針對控制記憶體片段(例如,圖4的記憶體片段402)之RDC 326來設定電力切斷策略(802)。RDC 326設定RDB 328A之控制暫存器503以實施電力切斷策略(804)。通信耦接至RDC 326之RDB(例如,RDB 328A)以接收控制暫存器設定(806)。
稍後,CPU 406請求存取一或多個記憶體位址(808)。記憶體解碼器320解碼位址以判定哪一記憶體區塊(例如,記憶體區塊322A)與由CPU 406請求之記憶體位址相關聯(810)。在記憶體位址與記憶體區塊322A相關聯之情況下,記憶體解碼器320將啟用信號施加至RDB 328A之事件輸入端506(812)。RDB 328A之狀態機508直接或間接地轉換至OPR狀態以向記憶體區塊322A提供電力(814)。
CPU 406可存取記憶體區塊322A內之數個記憶體位址。CPU 406最終結束存取記憶體區塊322之記憶體位址(816)。記憶體解碼器320停止向事件輸入端506提供啟用信號(818)。RDB 328A根據狀態機508之電力狀態來控制至記憶體區塊322A的電力。狀態機508所轉換至之低電力狀態係基於由CM 404設定且由RDC 326(例如,藉由設定控制暫存器502)實施之電力切斷策略(820)。因為記憶體位址通常依序讀取且可自一個記憶體區塊開始並繼續進行至下一記憶體區塊,記憶體解碼器320繼續解碼記憶體位址且向對應RDC 328之事件線506提供啟用信號(822)。
本發明中所描述之技術可至少部分地實施於硬體、軟體、韌體或其任何組合中。舉例而言,所描述技術之各種態樣可實施於一或多個處理器內,包括一或多個微處理器、DSP、特殊應用積體電路(application specific integrated circuit;ASIC)、場可程式化閘陣列(field programmable gate array;FPGA)或任何其他等效積體或離散邏輯電路系統,以及此等組件之任何組合。術語「處理器」或「處理電路系統」通常可指前述邏輯電路系統、固定功能電路系統、可程式化電路系統中之任一者,無論係單獨的抑或與其他邏輯電路系統組合,或任何其他等效電路系統。包含硬體之控制單元亦可執行本發明之技術中之一或多者。
此類硬體、軟體及韌體可實施於同一裝置內或個別裝置內,以支援本發明中所描述之各種操作及功能。此外,可將所描述單元、模組或組件中之任一者一起實施或單獨實施為離散但可相互操作之邏輯裝置。將不同特徵描述為模組或單元意欲突出不同功能性態樣,且未必暗示此類模組或單元必須由個別硬體或軟體組件來實現。確切而言,與一或多個模組或單元相關聯之功能性可由個別硬體或軟體組件來執行,或整合於共同或個別硬體或軟體組件內。
本發明中所描述技術亦可體現或編碼於含有指令之電腦可讀取媒體(諸如,電腦可讀取儲存媒體)中。嵌入或編碼於電腦可讀取儲存媒體中之指令可例如在執行指令時使可程式化處理器或其他處理器執行方法。電腦可讀取儲存媒體可包括隨機存取記憶體(RAM)、唯讀記憶體(read only memory;ROM)、可程式化唯讀記憶體(programmable read only memory;PROM)、可抹除可程式化唯讀記憶體(erasable programmable read only memory;EPROM)、電子可抹除可程式化唯讀記憶體(electronically erasable programmable read only memory;EEPROM)、快閃記憶體、硬碟、CD-ROM、軟碟、卡匣、磁性媒體、光學媒體或其他電腦可讀取媒體。
如本文中藉助於各種實例所描述,本發明之技術可包括人工實境系統或結合人工實境系統來實施。如所描述,人工實境為在向使用者呈現之前已經以某一方式調整的實境形式,其可包括例如虛擬實境(virtual reality;VR)、擴增實境(AR)、混合實境(mixed reality;MR)、混雜實境或其某一組合及/或衍生物。人工實境內容可包括完全產生之內容或與所擷取內容(例如,真實世界相片)組合之所產生內容。人工實境內容可包括視訊、音訊、觸覺回饋或其某一組合,且其中之任一者可在單個頻道中或多個頻道中呈現(諸如對觀看者產生三維效應之立體視訊)。另外,在一些具體實例中,人工實境可與例如用於在人工實境中創建內容及/或使用於人工實境中(例如,在人工實境中執行活動)之應用程式、產品、附屬程式、服務或其某一組合相關聯。提供人工實境內容之人工實境系統可實施於各種平台上,包括連接至主電腦系統之頭戴式裝置(HMD)、獨立式HMD、行動裝置或計算系統,或能夠向一或多個觀看者提供人工實境內容之任何其他硬體平台。
100:多裝置人工實境系統 102:頭戴式裝置 102A:頭戴式裝置 102B:頭戴式裝置 102C:頭戴式裝置 104:周邊裝置 104':周邊裝置表示 106:使用者 106A:使用者 106B:使用者 106C:使用者 108:人工實境內容 110:影像擷取裝置 110A:整合影像擷取裝置 110B:整合影像擷取裝置 112:網路 114:控制台 116:外部感測器 118:虛擬內容項 118A:虛擬內容項 118B:虛擬內容項 120:虛擬使用者介面 122:HMD SoC 124:周邊SoC 126:多裝置人工實境系統 128A:外部照相機 128B:外部照相機 200:電子顯示器 202:運動感測器 204:表面 300A:SoC 300B:SoC 300C:SoC 304:追蹤子系統 306A:子系統 306B:子系統 310:眼動追蹤 312:手追蹤 314:深度追蹤 316:同步定位與映射 318:隨機存取記憶體(RAM) 320:記憶體解碼器 322A、322B、…、322N:記憶體區塊 324:電力管理器 326:RAM域控制器(RDC) 328: RAM域塊(RDB) 328A、328B、…、328N:RAM域塊(RDB) 330:顯示器 330A:顯示器 330B:顯示器 332A:顯示控制器 332B:顯示控制器 334A:左眼 334B:右眼 336:追蹤子系統 336A:解密塊 336B:解密塊 338A:解碼器塊 338B:解碼器塊 340A:像素驅動器 340B:像素驅動器 342A:系統單晶片(SoC) 342B:SoC 344:追蹤子系統 346A:子系統 346B:子系統 348:眼動追蹤 350:手追蹤/協同應用程式處理器 352:深度追蹤/應用程式協同處理器 354:同步定位與映射/應用程式處理器 400:階層式電力管理系統 402:記憶體片段 404:叢集管理器(CM) 406:應用程式處理器(CPU) 408:圖形處理器(GPU) 410:資料匯流排 502:控制暫存器(CR) 504:電力控件(PC) 506:事件輸入端/事件線 508:狀態機(SM) 510:RAM域塊(RDB) 512:記憶體區塊(MB) 514:軟體暫存器 600:狀態機 602:OPR狀態 604:NAP狀態 606:REN狀態 608:PSO狀態 610A:中間延遲狀態 610B:中間延遲狀態 612A:中間延遲狀態 612B:中間延遲狀態 614:步驟 616:步驟 618:步驟 620:步驟 622:步驟 624:步驟 626:步驟 628:步驟 630:步驟 632:步驟 634:步驟 636:步驟 638:步驟 640:步驟 642:步驟 644:步驟 646:狀態機 648:步驟 650:步驟 652:步驟 654:步驟 656:步驟 658:步驟 660:步驟 662:步驟 664:步驟 666:步驟 668:步驟 670:步驟 672:步驟 674:步驟 676:步驟 678:步驟 680:狀態機 684:步驟 686:步驟 688:步驟 690:狀態機 692:步驟 694:步驟 696:步驟 697:步驟 698:步驟 699:步驟 702:步驟 704:步驟 706:步驟 708:步驟 710:步驟 712:步驟 714:步驟 802:步驟 804:步驟 806:步驟 808:步驟 810:步驟 812:步驟 814:步驟 816:步驟 818:步驟 820:步驟 822:步驟
[圖1A]為描繪根據本發明中所描述之技術的實現隨機存取記憶體之階層式電力管理之實例多裝置人工實境系統的圖示。 [圖1B]為描繪根據本發明中所描述之技術的實現隨機存取記憶體之階層式電力管理之實例人工實境系統的圖示。 [圖2]為描繪根據本發明中所描述之技術的實現隨機存取記憶體之秒階層式電力管理之實例HMD及實例周邊裝置的圖示。 [圖3]為示出根據本發明中所描述之技術的用於多裝置人工實境系統之分佈式架構的實例實施的方塊圖,在該多裝置人工實境系統中,使用位於每一裝置內且具有隨機存取記憶體之階層式電力管理的一或多個系統單晶片(SoC)積體電路來實施一或多個裝置。 [圖4]為根據本發明中所描述之技術的階層式電力管理系統之方塊圖。 [圖5A、5B及5C]為根據本發明中所描述之技術的圖4之階層式電力管理系統的更詳細態樣之方塊圖。 [圖6A、6B及6C]為根據本發明中所描述之技術的階層式電力管理系統中之記憶體區塊控制器之實例狀態機的方塊圖。 [圖7]為根據本發明中所描述之技術的用以控制記憶體區塊之電力狀態之實例操作模式的流程圖。 [圖8]為根據本發明中所描述之技術的用以存取由階層式電力管理系統控制之記憶體之實例操作模式的流程圖。 貫穿正文及圖式,相同元件符號表示相同元件。
318:隨機存取記憶體(RAM)
320:記憶體解碼器
322A、322B、...、322N:記憶體區塊
324:電力管理器
326:RAM域控制器(RDC)
328A、328B、...、328N:RAM域塊
404:叢集管理器(CM)
406:應用程式處理器(CPU)
408:圖形處理器(GPU)

Claims (20)

  1. 一種人工實境系統,其包含: 裝置,其包含組態成產生人工實境內容以供顯示之周邊裝置或組態成輸出人工實境內容以供顯示之頭戴式顯示器單元(HMD)中的一者,該裝置包含: 記憶體,其經劃分為各自可組態成彼此獨立地在複數個電力模式中操作的多個記憶體區塊; 一或多個記憶體區塊控制器,其用於對應記憶體區塊,每一記憶體區塊控制器組態成基於該記憶體區塊控制器之控制暫存器來控制該對應記憶體區塊將在該複數個電力模式中之哪一者中獨立於其他記憶體區塊中的任一者進行操作;及 記憶體電力控制器,其組態成將該一或多個記憶體區塊控制器之各別控制暫存器組態成引導該一或多個記憶體區塊控制器,以在該多個記憶體區塊未經存取時選擇用於該多個記憶體區塊之該複數個電力模式中的一者。
  2. 如請求項1之人工實境系統,其中為了組態該一或多個記憶體區塊控制器之該控制暫存器,該記憶體電力控制器組態成控制暫存器引導該一或多個記憶體區塊控制器,以在該多個記憶體區塊未經存取時選擇用於所有相關聯的記憶體區塊的該複數個電力模式中之該一者。
  3. 如請求項1之人工實境系統,其中該一或多個記憶體區塊控制器中之每一記憶體區塊控制器操作狀態機,以控制該多個記憶體區塊中的對應一者在該複數個電力模式中之哪一者中進行操作。
  4. 如請求項3之人工實境系統,其中由該一或多個記憶體區塊控制器中之每一記憶體區塊控制器所操作的該狀態機包含各自對應於該複數個電力模式中之一者的複數個狀態,其中該一或多個記憶體區塊控制器中之每一記憶體區塊控制器基於由該記憶體區塊控制器所操作的該狀態機之當前狀態來控制該多個記憶體區塊中之該對應一者。
  5. 如請求項3之人工實境系統,其中由該一或多個記憶體區塊控制器中之每一記憶體區塊控制器所操作的該狀態機基於由該記憶體電力控制器提供之該控制暫存器的值來在狀態之間轉換,以對該記憶體區塊控制器提供該多個記憶體區塊中的該對應一者之該等電力模式之軟體控制。
  6. 如請求項5之人工實境系統,其中該一或多個記憶體區塊控制器中之每一記憶體區塊控制器各自包括事件輸入端,且其中該一或多個記憶體區塊控制器中的每一記憶體區塊控制器之該狀態機基於該事件輸入端上之信號而在狀態之間轉換,以對該記憶體區塊控制器提供該多個等記憶體區塊中之該對應一者之該等電力模式的硬體控制。
  7. 如請求項3之人工實境系統,其進一步包含: 記憶體解碼器, 其中該一或多個記憶體區塊控制器中之每一記憶體區塊控制器包括事件輸入端,且 其中該記憶體解碼器組態成: 解碼記憶體位址以判定該多個記憶體區塊中之哪一者與該記憶體位址相關聯;且 為與該記憶體位址相關聯之該記憶體區塊而在該一或多個記憶體區塊控制器中之該對應一者之事件線上施加啟用信號,以使該一或多個記憶體區塊控制器中的該對應一者之該狀態機轉換至對應於與該記憶體位址相關聯之該記憶體區塊的操作電力模式之高電力狀態。
  8. 如請求項3之人工實境系統,其中該一或多個記憶體區塊控制器中之每一記憶體區塊控制器包括事件輸入端,且其中該一或多個記憶體區塊控制器中的每一記憶體區塊控制器組態成: 回應於偵測到該事件輸入端上之啟用信號,將由該記憶體區塊控制器所操作之該狀態機轉換至對應於與該記憶體區塊控制器相對應的該記憶體區塊之操作電力模式的高電力狀態,以促進存取該記憶體區塊以自該記憶體區塊讀取資料;且 回應於不再偵測到該事件輸入端上之該啟用信號,將由該記憶體區塊控制器所操作之該狀態機轉換至對應於該複數個電力模式中的多個電力模式之複數個低電力狀態中之一者,在該多個電力模式中,對應於該記憶體區塊控制器之該記憶體區塊係不可存取的,該複數個低電力狀態中之該一者係基於該記憶體區塊控制器之該控制暫存器的值。
  9. 如請求項1之人工實境系統,其中該裝置進一步包含具有共用該記憶體之多個子系統的系統單晶片(SOC)。
  10. 如請求項1之人工實境系統,其中該記憶體電力控制器進一步組態成藉由引導該一或多個記憶體區塊控制器經由該控制暫存器來提供對該多個記憶體區塊之軟體控制,而向該多個記憶體區塊供電以促進對與該多個記憶體區塊相關聯的記憶體位址的存取。
  11. 如請求項1之人工實境系統,其中該一或多個記憶體區塊控制器進一步組態成回應於自該裝置之記憶體解碼器接收到命令來提供對該多個記憶體區塊之硬體控制,而藉由向該多個記憶體區塊供電以促進對與該多個記憶體區塊相關聯的記憶體位址的存取。
  12. 如請求項11之人工實境系統,其中該一或多個記憶體區塊控制器獨立於由該記憶體電力控制器提供之軟體控制而提供對該多個記憶體區塊的該硬體控制。
  13. 一種用於人工實境系統中的記憶體之階層式電力控制之方法,該方法包含: 由第一記憶體區塊控制器控制第一記憶體區塊將在複數個電力模式中之哪一者中進行操作,該記憶體經劃分為可組態成彼此獨立地在該複數個電力模式中操作的該第一記憶體區塊及第二記憶體區塊; 獨立於該第一記憶體區塊,由第二記憶體區塊控制器控制該第二記憶體區塊將在該複數個電力模式中之哪一者中進行操作;及 由記憶體電力控制器控制該第一記憶體區塊控制器及該第二記憶體區塊控制器之各別控制暫存器引導該第一記憶體區塊控制器及該第二記憶體區塊控制器,以在該第一記憶體區塊及該第二記憶體區塊未經存取時選擇用於該第一記憶體區塊及該第二記憶體區塊的該複數個電力模式中之一者。
  14. 如請求項13之方法,其進一步包含: 由該第一記憶體區塊控制器操作第一狀態機以控制該第一記憶體區塊在該複數個電力模式中之哪一者中進行操作;且 由該第二記憶體區塊控制器操作第二狀態機以控制該第二記憶體區塊在該複數個電力模式中之哪一者中進行操作。
  15. 如請求項14之系統,其中該第一狀態機包含各自對應於該複數個電力模式中之一者的複數個狀態,該方法進一步包含: 由該第一記憶體區塊控制器基於該第一狀態機之當前狀態來控制該第一記憶體區塊。
  16. 如請求項14之方法,其進一步包含: 由記憶體解碼器解碼記憶體位址以判定該第一記憶體區塊及該第二記憶體區塊中之哪一者與該記憶體位址相關聯;及 由該記憶體解碼器回應於判定該第一記憶體區塊與該記憶體位址相關聯而在對應於該第一記憶體區塊之該第一記憶體區塊控制器之事件線上施加啟用信號,以使該第一狀態機的狀態轉換至對應於該複數個電力模式中之電力模式之高電力狀態。
  17. 如請求項16之方法,其進一步包含: 由該第一記憶體區塊控制器回應於不再偵測到該事件線上之該啟用信號而將該第一狀態機轉換至對應於其中該第一記憶體區塊所處之該複數個電力模式中的多個電力模式之複數個低電力狀態中之一者,該複數個低電力狀態中之該一者係基於該第一記憶體區塊控制器之該控制暫存器的值。
  18. 如請求項13之方法,其進一步包含: 由該記憶體電力控制器藉由引導該第一記憶體區塊控制器及該第二記憶體區塊控制器經由該控制暫存器來提供對該第一記憶體區塊及該第二記憶體區塊之軟體控制,而向該第一記憶體區塊及該第二記憶體區塊供電以促進對與該第一記憶體區塊及該第二記憶體區塊相關聯的記憶體位址的存取。
  19. 如請求項13之方法,其進一步包含: 由該第一記憶體區塊控制器藉由回應於自記憶體解碼器接收到第一命令來提供對該第一記憶體區塊之硬體控制,而向該第一記憶體區塊供電以促進對該第一記憶體區塊之記憶體位址的存取;及 由該第二記憶體區塊控制器藉由回應於自該記憶體解碼器接收到第二命令來提供對該第二記憶體區塊之硬體控制,而向該第二記憶體區塊供電以促進對該第二記憶體區塊之記憶體位址的存取。
  20. 一種包含指令之電腦可讀取媒體,該指令在經執行時使人工實境系統之記憶體電力管理系統進行以下操作: 用第一記憶體區塊控制器控制第一記憶體區塊將在複數個電力模式中之哪一者中進行操作,記憶體經劃分為可組態成彼此獨立地在該複數個電力模式中操作的該第一記憶體區塊及一第二記憶體區塊; 獨立於該第一記憶體區塊,用第二記憶體區塊控制器控制該第二記憶體區塊將在該複數個電力模式中之哪一者中進行操作;且 控制分別耦接至該第一記憶體區塊及該第二記憶體區塊之第一記憶體區塊控制器及第二記憶體區塊控制器的各別控制暫存器,以在該第一記憶體區塊及該第二記憶體區塊未經存取時選擇用於該第一記憶體區塊及該第二記憶體區塊的該複數個電力模式中之一者。
TW110120274A 2020-07-01 2021-06-03 用於人工實境系統的記憶體之階層式電力管理 TW202203001A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063047035P 2020-07-01 2020-07-01
US63/047,035 2020-07-01
US16/947,432 US20220004328A1 (en) 2020-07-01 2020-07-31 Hierarchical power management of memory for artificial reality systems
US16/947,432 2020-07-31

Publications (1)

Publication Number Publication Date
TW202203001A true TW202203001A (zh) 2022-01-16

Family

ID=79166781

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110120274A TW202203001A (zh) 2020-07-01 2021-06-03 用於人工實境系統的記憶體之階層式電力管理

Country Status (7)

Country Link
US (1) US20220004328A1 (zh)
EP (1) EP4176331A1 (zh)
JP (1) JP2023531928A (zh)
KR (1) KR20230034301A (zh)
CN (1) CN116057497A (zh)
TW (1) TW202203001A (zh)
WO (1) WO2022005861A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2618596A (en) * 2022-05-12 2023-11-15 Sony Interactive Entertainment Inc Auxiliary sensing system and method
US11520499B1 (en) * 2022-05-18 2022-12-06 Ambiq Micro, Inc. On-demand activation of memory path during sleep or active modes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG48805A1 (en) * 1994-02-04 1998-05-18 Intel Corp Method and apparatus for control of power consumption in a computer system
GB2426360A (en) * 2005-05-18 2006-11-22 Symbian Software Ltd Reorganisation of memory for conserving power in a computing device
US8127153B2 (en) * 2008-07-29 2012-02-28 Oracle America, Inc. Memory power profiling
JP6030987B2 (ja) * 2013-04-02 2016-11-24 ルネサスエレクトロニクス株式会社 メモリ制御回路
WO2016064492A1 (en) * 2014-10-20 2016-04-28 Ambiq Micro, Inc. Adaptive voltage converter
US9818458B1 (en) * 2015-09-23 2017-11-14 Intel Corporation Techniques for entry to a lower power state for a memory device
JP6590718B2 (ja) * 2016-02-03 2019-10-16 キヤノン株式会社 情報処理装置及びその制御方法
US10347306B2 (en) * 2016-06-21 2019-07-09 Samsung Electronics Co., Ltd. Self-optimized power management for DDR-compatible memory systems
CN111316234B (zh) * 2017-09-12 2024-03-12 恩倍科微公司 极低功率微控制器系统
US11256319B2 (en) * 2019-11-22 2022-02-22 Facebook Technologies, Llc Hierarchical power management in artificial reality systems

Also Published As

Publication number Publication date
KR20230034301A (ko) 2023-03-09
EP4176331A1 (en) 2023-05-10
US20220004328A1 (en) 2022-01-06
JP2023531928A (ja) 2023-07-26
CN116057497A (zh) 2023-05-02
WO2022005861A1 (en) 2022-01-06

Similar Documents

Publication Publication Date Title
US10241470B2 (en) No miss cache structure for real-time image transformations with data compression
US11675415B2 (en) Hierarchical power management in artificial reality systems
CN110249317B (zh) 用于实时图像变换的无未命中高速缓存结构
EP3610356B1 (en) No miss cache structure for real-time image transformations with multiple late state reprojectons (lsr) processing engines
KR102308736B1 (ko) 삼차원 혼합 현실 뷰포트
US11868281B2 (en) Artificial reality system having multi-bank, multi-port distributed shared memory
US9146398B2 (en) Providing electronic communications in a physical world
TW202203001A (zh) 用於人工實境系統的記憶體之階層式電力管理
CN112527099A (zh) 低功率眼睛跟踪系统
US11009944B1 (en) Systems and methods for displaying foveated images
TW202232333A (zh) 高處理量儲存加密
US11670364B2 (en) Artificial reality system with reduced SRAM power leakage
JP2023546797A (ja) ピクセル強度のデジタル制御およびアナログ制御を含む人工現実システム
US11797451B1 (en) Dynamic memory management in mixed mode cache and shared memory systems
US11681627B1 (en) Distributed temporal cache for Systems on a Chip
US11941131B1 (en) Isolation of secrets from an operating system