TW202232333A - 高處理量儲存加密 - Google Patents

高處理量儲存加密 Download PDF

Info

Publication number
TW202232333A
TW202232333A TW110141652A TW110141652A TW202232333A TW 202232333 A TW202232333 A TW 202232333A TW 110141652 A TW110141652 A TW 110141652A TW 110141652 A TW110141652 A TW 110141652A TW 202232333 A TW202232333 A TW 202232333A
Authority
TW
Taiwan
Prior art keywords
key
soc
engine
encryption
encrypted
Prior art date
Application number
TW110141652A
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 TW202232333A publication Critical patent/TW202232333A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • 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
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • User Interface Of Digital Computer (AREA)
  • Storage Device Security (AREA)

Abstract

一種範例的系統單晶片(SoC)是包含一安全處理器,其被配置以儲存和所述SoC的子系統相關的複數個密鑰對至一密鑰保管庫;以及一加密引擎,其被配置以:根據一儲存裝置的一第一區段位址來判定一第一微調值;根據和一子系統相關的密鑰對的第二密鑰來加密所述第一微調值;根據所述密鑰對的第一密鑰以及所述加密的第一微調值來加密所述來源資料的第一部分;根據所述儲存裝置的第二區段位址來判定第二微調值,並且在完成所述來源資料的所述第一部分的加密之前,根據所述第二密鑰來加密所述第二微調值;以及根據所述第一密鑰以及所述加密的第二微調值來加密所述來源資料的第二部分。

Description

高處理量儲存加密
此揭露內容大致是有關在各種類型的計算系統中所實施的資料加密及解密。
交互參照
此申請案是主張2020年12月31日申請的美國臨時專利申請案號63/133,080的益處,所述申請案的整體內容被納入於此作為參考。
許多計算系統是納入內容保護或數位版權管理技術,其包含資料加密及解密的硬體及軟體。此加密是保護安全資料以防未被授權的存取及利用,而所述安全資料潛在是敏感、私有且/或受到版權管理的,並且被儲存或使用在所述系統上。納入加密及解密的計算系統的例子是包含人工實境系統。一般而言,人工實境是一種形式的實境,其在呈現給使用者之前已經用某種方式調整,其例如可包含虛擬實境、擴增實境、混合實境、複合實境、或是其之某種組合及/或衍生。人工實境系統包含一或多個裝置以用於成像(render)及顯示內容給使用者。人工實境系統的例子可以納入頭戴式顯示器(head-mounted display;HMD),其是由使用者所穿戴並且被配置以輸出人工實境內容給所述使用者。在某些例子中,所述HMD可以耦接(例如,無線地或是用有線的方式)至週邊裝置,其執行一或多個人工實境相關的功能。
大致而言,此揭露內容是針對於一種加密引擎,其被配置以用於在高線速下(例如,高達1GB/s)的資料的線上式處理。所述加密引擎可被實施在一具有多個子系統的系統單晶片(system on a chip;SoC)上,所述子系統是利用子系統所特有的密鑰來加密/解密資料。在某些特點中,所述加密引擎可以接收和所述SoC上的不同子系統或應用程式相關的密鑰對,並且將所述密鑰對儲存在一密鑰保管庫中。所述加密引擎可以接收有關儲存裝置的配置資訊,例如區段大小、加密區塊大小等等。在此所述的加密引擎是提供用於資料傳輸以及用於提供程式化描述符的分開的介面。因此,如同在此所述的加密引擎可以接收排程元資料,所述排程元資料用於與現有資料傳輸並行的未來資料傳輸任務。所述加密引擎可以使用所述配置資訊以及傳輸任務元資料,以事先判定用於進階加密標準(Advanced Encryption Standard;AES)加密技術的加密參數。
此揭露內容的SoC提供數個技術的改善。如同在此所述的加密引擎可以在高資料速率以及低延遲下加密資料。再者,多個資料傳輸可以在無涉及其它子系統下被排程及執行。例如,一旦一傳輸被排程後,其它例如是安全處理器的處理器或是子系統微控制器單元(sub-system micro-controller unit;SMCU)並不需要牽涉於所述資料傳輸。
在一例子中,此揭露內容描述一種系統單晶片(SoC),其包含系統微控制器,所述系統微控制器包括被配置以協調在所述SoC上的操作的處理電路系統;安全處理器,其包括被配置以儲存複數個密鑰對至密鑰保管庫的處理電路系統,所述密鑰對的每一個具有第一密鑰以及第二密鑰,所述密鑰對的每一個是和所述SoC的複數個子系統中的一個相關的;直接記憶體存取(Direct Memory Access;DMA)引擎,其包括被配置以從所述複數個子系統中的一子系統接收儲存存取參數的電路,所述儲存存取參數識別來源資料、資料大小、針對於儲存裝置的目的地儲存位址,所述儲存裝置具有區段大小、以及識別一密鑰對的密鑰識別符(ID);以及耦接至所述DMA引擎的加密引擎,所述加密引擎包括處理電路系統,其被配置以:根據所述儲存裝置的第一區段位址來判定第一微調值,所述第一磁區位址是根據所述目的地儲存位址;根據和所述子系統相關的所述密鑰對的所述第二密鑰來加密所述第一微調值;根據和所述子系統相關的所述密鑰對的第一密鑰以及所述加密的第一微調值來加密所述來源資料的第一部分;根據所述儲存裝置的第二區段位址來判定第二微調值,並且根據所述第二密鑰來加密所述第二微調值,其中所述第二微調值是在完成所述來源資料的所述第一部分的加密之前被判定及加密的;以及根據所述第一密鑰以及所述加密的第二微調值來加密所述來源資料的第二部分。
在另一例子中,此揭露內容描述一種人工實境系統,其包括:儲存裝置;被配置以輸出人工實境內容的頭戴式顯示器(HMD),所述HMD包含至少一系統單晶片(SoC),其中所述至少一SoC包括:安全處理器,其包括被配置以儲存複數個密鑰對至密鑰保管庫的處理電路系統,所述密鑰對的每一個具有第一密鑰以及第二密鑰,所述密鑰對的每一個是和所述SoC的複數個子系統中的一個相關的;直接記憶體存取(DMA)引擎,其包括被配置以從所述複數個子系統中的一子系統接收儲存存取參數的電路系統,所述儲存存取參數識別來源資料、資料大小、以及針對於所述儲存裝置的目的地儲存位址;以及耦接至所述DMA引擎的加密引擎,所述加密引擎包括處理電路系統,其被配置以:根據所述儲存裝置的第一區段位址來判定第一微調值,所述第一磁區位址是根據所述目的地儲存位址;根據和所述子系統相關的所述密鑰對的所述第二密鑰來加密所述第一微調值;根據和所述子系統相關的所述密鑰對的所述第一密鑰以及加密的所述第一微調值來加密所述來源資料的第一部分;根據所述儲存裝置的第二區段位址來判定第二微調值,並且根據所述第二密鑰來加密所述第二微調值,其中所述第二微調值是在完成所述來源資料的所述第一部分的加密之前被判定及加密的;以及根據所述第一密鑰以及加密的所述第二微調值來加密所述來源資料的第二部分。
在另一例子中,此揭露內容描述一種方法,其包含藉由安全處理器來產生複數個密鑰對;藉由所述安全處理器來提供所述複數個密鑰對至加密引擎,其中所述加密引擎儲存所述複數個密鑰對至密鑰保管庫,所述密鑰對的每一個具有第一密鑰以及第二密鑰,所述密鑰對的每一個是和所述SoC的複數個子系統中的一個相關的;藉由DMA引擎並且從所述複數個子系統中的一子系統接收儲存存取參數,所述儲存存取參數識別來源資料、資料大小、以及針對於儲存裝置的目的地儲存位址,所述儲存裝置具有一區段大小;藉由所述加密引擎以根據所述儲存裝置的第一區段位址來判定第一微調值,所述第一磁區位址是根據所述目的地儲存位址;藉由所述加密引擎以根據和所述子系統相關的所述密鑰對的所述第二密鑰來加密所述第一微調值;藉由所述加密引擎以根據和所述子系統相關的所述密鑰對的第一密鑰以及所述加密的第一微調值來加密所述來源資料的第一部分;藉由所述加密引擎以根據所述儲存裝置的第二區段位址來判定第二微調值,並且根據所述第二密鑰來加密所述第二微調值,其中所述第二微調值是在完成所述來源資料的所述第一部分的加密之前被判定及加密的;以及藉由所述加密引擎以根據所述第一密鑰以及所述加密的第二微調值來加密所述來源資料的第二部分。
此揭露內容的技術的一或多個例子的細節是在以下所附的圖式及說明中被闡述。所述技術的其它特徵、目的及優點從所述說明及圖式、以及從請求項來看將會是明顯的。
圖1是描繪根據在此揭露內容中所述的技術的一範例人工實境系統的圖示,其包含被配置以實施高處理量的加密的SoC。所述人工實境系統可以是虛擬實境系統、擴增實境系統、或是混合實境系統。在圖1的例子中,人工實境系統100包含一頭戴式顯示器(HMD)112、一或多個控制器114A及114B(統稱「控制器114」),並且在某些例子中可以包含一或多個外部的感測器90及/或一控制台106。
HMD 112通常是使用者110所穿戴的,並且包含一電子顯示器及光學組件以用於呈現人工實境內容122給使用者110。此外,HMD 112包含一或多個感測器(例如,加速度計)以用於追蹤所述HMD 112的運動,並且可包含一或多個影像捕捉裝置138(例如,攝影機、線掃描器)以用於捕捉周圍的物理環境的影像資料。儘管被描繪為一頭戴式顯示器,AR系統100可以替代或額外包含眼鏡或其它顯示裝置,以用於呈現人工實境內容122給使用者110。
控制器114的每一個是一輸入裝置,使用者110可以使用來提供輸入至控制台106、HMD 112、或是AR系統100的另一構件。控制器114可包含一或多個駐留敏感的表面,以用於藉由偵測觸碰或盤旋在所述駐留敏感的表面的位置之上的一或多個物體(例如,手指、指示筆)的駐留來偵測使用者輸入。在某些例子中,控制器114可包含一輸出顯示器,其可以是駐留敏感的顯示器。在某些例子中,控制器114可以是一智慧型手機、平板電腦、個人資料助理(personal data assistant;PDA)、或是其它手持的裝置。在某些例子中,控制器114可以是一智慧型手錶、智慧戒指、或是其它可穿戴的裝置。控制器114亦可以是資訊站(kiosk)或是其它靜止或行動的系統的部分。替代或額外的是,控制器114可包含其它使用者輸入機構,例如是一或多個按鈕、板機、搖桿、十字鍵(d-pad)、或類似者,以致能使用者和藉由AR系統100所呈現給使用者110的人工實境內容122互動及/或控制其特點。
在此例子中,控制台106是被展示為單一計算裝置,例如一遊戲主機、工作站、一桌上型電腦、或是一膝上型電腦。在其它例子中,控制台106可被分散橫跨到複數個計算裝置,例如是一分散式計算網路、一資料中心、或是一雲端計算系統。如同在此例子中所示,控制台106、HMD 112,以及感測器90可以經由網路104來通訊地耦接,其可以是一有線或無線的網路,例如是Wi-Fi、網狀網路或短距離無線通訊媒體、或是其之組合。儘管HMD 112在此例子中被展示為和控制台106通訊(例如是有線或無線通訊),但是在某些實施方式中,HMD 112是運作為一獨立的行動AR系統,因而AR系統100可以省略控制台106。
一般而言,AR系統100成像人工實境內容122以用於在HMD 112顯示給使用者110。在圖1的例子中,使用者110觀看藉由在HMD 112及/或控制台106上執行的人工實境應用程式所建構及成像的人工實境內容122。在某些例子中,所述人工實境內容122可以是完全人工的,亦即影像並不相關使用者110所位在的環境。在某些例子中,人工實境內容122可包括真實世界的影像(例如,使用者110的手、控制器114、其它靠近使用者110的環境的物體)以及虛擬的物體120的混合,以產生混合實境及/或擴增實境。在某些例子中,虛擬內容的項目可以例如相對於真實世界的影像而被對映(例如,被固定、鎖定、設置)到人工實境內容122之內的一特定的位置。用於虛擬的內容項目的位置可以是固定的,例如是相對於牆壁或地面中之一。用於虛擬的內容項目的位置可以是可變的,例如是相對於控制器114或使用者。在某些例子中,一虛擬的內容項目在人工實境內容122之內的特定的位置,是和在所述真實世界的實體環境之內的一位置(例如,在一實體物體的一表面上)相關的。
在操作期間,所述人工實境應用程式是藉由追蹤並且計算針對於一參考座標系的姿態資訊,通常是HMD 112的一觀看視角的姿態資訊,來建構人工實境內容122以用於顯示給使用者110。利用HMD 112作為一參考座標系,並且根據由HMD 112的一目前的估計的姿態所判定的一目前的視野,所述人工實境應用程式成像3D人工實境內容,在某些例子中,所述人工實境內容可被(至少部分)覆蓋在使用者110的真實世界的3D實體環境之上。在此過程期間,所述人工實境應用程式利用從HMD 112及/或控制器114接收到的感測到的資料,例如是移動資訊及使用者命令、以及在某些例子中,來自例如是外部的攝影機的任何外部的感測器90的資料,以捕捉在所述真實世界的實體環境之內的3D資訊,例如是使用者110所做的運動及/或相關使用者110的特徵追蹤的資訊。根據所述感測到的資料,所述人工實境應用程式針對於HMD 112的參考座標系來判定一目前的姿態,並且根據所述目前的姿態來成像所述人工實境內容122。
AR系統10可以根據使用者110的一目前的視野130(如同可藉由所述使用者的即時的注視追蹤所判定的)或是其它狀況,來觸發虛擬的內容項目的產生及成像。更明確地說,HMD 112的影像捕捉裝置138捕捉代表在真實世界的實體環境中,在影像捕捉裝置138的一視野130之內的物體的影像資料。視野130通常對應HMD 112的觀看視角。在某些例子中,所述人工實境應用程式是呈現包括混合實境及/或擴增實境的人工實境內容122。所述人工實境應用程式可以成像在視野130之內的真實世界的物體的影像,例如是週邊裝置、使用者110的手及/或手臂的部分,以及例如是在人工實境內容122之內的虛擬的物件。在其它例子中,所述人工實境應用程式可以在人工實境內容122之內成像在視野130之內的週邊裝置、使用者110的手及/或手臂的部分之虛擬的表示(例如,把真實世界的物體成像為虛擬的物件120)。在任一例子中,使用者110都能夠在人工實境內容122之內觀看在視野130之內的其手、手臂、週邊裝置及/或任何其它真實世界的物體的部分。在其它例子中,所述人工實境應用程式可以不成像使用者110的手或手臂的表示。
為了單獨提供虛擬的內容、或是在一場景中被覆蓋真實世界的物體,HMD 112可包含一顯示器系統。例如,所述顯示器可包含一投影器以及波導,其被配置以轉換藉由所述投影器輸出的影像至一使用者的一眼或兩眼可見的一位置。所述投影器可包含一顯示器以及一投影器透鏡。所述波導可包含一輸入光柵耦合器,以將來自所述投影器的光重定向到所述波導中,並且所述波導可以經由全內反射(total internal reflection;TIR)來「捕陷」所述光。例如,所述顯示器可包含紅光、綠光及藍光LED的陣列。在某些例子中,一彩色影像可以經由組合器來組合來自所述紅光、綠光及藍光LED陣列的每一個的紅光、綠光及藍光來加以形成。所述波導可包含一輸出光柵以將光重定向離開所述波導,例如是朝向一眼動範圍(eyebox)。在某些例子中,所述投影器透鏡可以準直來自所述顯示器的光,例如,所述顯示器可以是實質位在所述投影器透鏡的一焦點處。所述光柵耦合器可以重定向來自所述顯示器的準直的光到所述波導中,並且所述光可以經由在所述波導的表面的TIR而在所述波導之內傳遞。所述波導可包含一輸出結構,例如是孔洞、凸塊、點、一全息光學元件(holographic optical element;HOE)、一繞射光學元件(diffractive optical element;DOE)等等,以將來自所述波導的光重定向至一使用者的眼睛,其是將來自所述投影器的顯示器的準直的光聚焦在所述使用者的視網膜上,藉此在所述使用者的視網膜上重建所述顯示器影像。在某些例子中,所述波導的TIR是作用為反射鏡,因而並不顯著地影響所述顯示器的影像品質,例如所述顯示器的使用者的視野等同於用反射鏡來觀看所述顯示器。
如同在此進一步敘述的,人工實境系統100的一或多個裝置,例如是HMD 112、控制器114及/或一控制台106可包含一或多個SoC。再者,根據在此所述的技術,所述SoC中的一或多個可包括被配置以執行秘密(例如,秘密資料)的線上式加密及解密的一SoC,所述秘密是與作業系統隔離開的。如同在此所用的,所述術語「隔離開」是意味所述秘密並非以明碼文字(例如,未加密的形式)可供作業系統的構件利用的,但並不一定意味所述作業系統無法存取所述秘密資料。例如,所述秘密資料可被儲存在所述作業系統可存取的記憶體中,但是所述秘密資料無法被所述作業系統解密。
圖2A是描繪根據在此揭露內容中所述的技術的一範例HMD的圖示,其包含一被配置以實施高處理量加密的SoC。圖2A的HMD 212A可以是圖1的HMD 112的一個例子。如同在圖2A中所示,HMD 212A可以具有眼鏡的形式。HMD 212A可以是一人工實境系統(例如圖1的AR系統100)的部分、或是可以運作為一被配置以實施在此所述技術的獨立的行動人工實境系統。
在此例子中,HMD 212A是包括一前鏡框的眼鏡,其包含一容許所述HMD 212A擱在一使用者的鼻子上的鼻樑架、以及延伸在所述使用者的耳朵上以將HMD 212A固定至所述使用者的鏡腳(或是「臂」)。此外,圖2A的HMD 212A包含一或多個波導203A及203B(統稱「波導203」)以及一或多個波導輸出結構205A及205B(統稱「波導輸出結構205」),其被配置以將光重定向離開所述波導203A及203B。在所展示的例子中,投影器248A及248B(統稱「投影器248」)可以經由一光柵耦合器(未顯示)來輸入光(例如,準直的光)至波導203A及203B中,所述光柵耦合是將來自所述投影器248的光重定向到波導203中,使得所述光經由全內反射(TIR)而「被捕陷」在所述波導之內。例如,投影器248A及248B可包含一顯示器以及一投影器透鏡。在某些例子中,波導203可以是透明的,並且在以下可替代地被稱為「視窗203」。在某些例子中,當追蹤HMD 212A的位置及方位以用於根據HMD 212A以及使用者的一目前的觀看視角來成像人工實境內容時,視窗203相對於HMD 212A的前鏡框的已知的方位及位置是被使用作為一參考座標系,亦被稱為一本地的原點。在某些例子中,投影器248可以提供一立體的顯示器以用於提供分開的影像至使用者的每一個眼睛。
在所展示的例子中,波導輸出結構205是覆蓋所述視窗203的一部分,其對向使用者110透過所述視窗203可見的視野230的一部分。在其它例子中,所述波導輸出結構205可以覆蓋所述視窗203的其它部分、或是所述視窗203的整個區域。
如同在圖2A中進一步所示,在此例子中,HMD 212進一步包含一或多個運動感測器206、一或多個整合的影像捕捉裝置238A及238B(統稱「影像捕捉裝置238」)、一內部的控制單元210,其可包含一內部的電源以及一或多個印刷電路板,其具有一或多個處理器、記憶體以及硬體,以提供一操作環境來用於執行可程式化的操作以處理感測到的資料,並且在波導輸出結構205上呈現人工實境內容。內部的控制單元210可包含根據本揭露內容的一SoC,其是從感測器206、影像捕捉裝置238、控制器(例如是如同在圖1中所示的控制器114)、及/或其它感測器中的一或多個接收資訊,並且根據本揭露內容,其構成一計算系統的部分以處理所感測到的資料,並且在波導輸出結構205上呈現人工實境內容。在某些特點中,所述SoC可以執行在所述SoC的記憶體中接收到的資料的線上式加密,使得所述加密的資料是與所述SoC的一子系統上所載有的一作業系統隔離開。
影像捕捉裝置238A及238B(統稱「影像捕捉裝置238」)可包含例如視訊攝影機、雷射掃描器、都卜勒雷達掃描器、深度掃描器、或類似者的裝置,其被配置以輸出代表所述實體環境的影像資料。更明確地說,影像捕捉裝置238是捕捉代表在所述實體環境中的在影像捕捉裝置238的一視野230A、230B之內的物體的影像資料,所述視野通常對應HMD 112的觀看視角。
圖2B是描繪根據在此揭露內容中所述的技術的另一範例HMD的圖示,其包含一被配置以實施高處理量加密的SoC。HMD 212B可以是一人工實境系統(例如圖1的人工實境系統100)的部分、或是可以運作為一被配置以實施在此所述技術的獨立的行動人工實境系統。
在此例子中,HMD 212B包含一前剛性主體以及一鬆緊帶以固定HMD 212B至一使用者。此外,HMD 212B包含一波導203(或替代的是一視窗203),其被配置以經由一波導輸出結構205來呈現人工實境內容給所述使用者。在所展示的例子中,投影器248可以經由一輸入光柵耦合器(未顯示)來將光(例如準直的光)輸入到波導203中,所述輸入光柵耦合器是將來自投影器248的光重定向到波導203中,使得所述光經由全內反射(TIR)而「被捕陷」在波導203之內。例如,投影器248可包含一顯示器以及一投影器透鏡。在某些例子中,當追蹤HMD 212B的位置及方位以用於根據HMD 212B以及使用者的一目前的觀看視角來成像人工實境內容時,波導203相對於HMD 212B的前剛性主體的已知的方位及位置是被使用作為一參考座標系,亦被稱為一本地的原點。在其它例子中,HMD 212B可以具有其它可穿戴的頭戴式顯示器的形式,例如是眼鏡或是護目鏡。
類似於圖2A的HMD 212A,在圖2B中所示的範例HMD 212B進一步包含一或多個運動感測器206、一或多個整合的影像捕捉裝置238A及238B、一內部的控制單元210,其可包含一內部的電源以及一或多個印刷電路板,其具有一或多個處理器、記憶體以及硬體,以提供一操作環境來用於執行可程式化的操作以處理感測到的資料,並且在波導輸出結構205上呈現人工實境內容。內部的控制單元210可包含根據本揭露內容的一SoC,其是從感測器206、影像捕捉裝置238、控制器(例如是如同在圖1中所示的控制器114)、及/或其它感測器中的一或多個接收資訊,並且根據本揭露內容,其構成一計算系統的部分以處理所感測到的資料,並且在波導輸出結構205上呈現人工實境內容。在某些特點中,所述SoC可以執行在所述SoC的記憶體中接收到的資料的線上式加密,使得所述加密的資料是與所述SoC的一子系統上所載有的一作業系統隔離開。
圖3是展示根據在此揭露內容中所述的技術的圖1的人工實境系統的一控制台以及一HMD的範例實施方式的方塊圖。在圖3的例子中,控制台106是根據感測到的資料,例如是從HMD 112及/或外部的感測器接收到的運動資料及影像資料,來執行姿態追蹤、姿勢偵測、以及用於HMD 112的使用者介面的產生及成像。
在此例子中,HMD 112包含一或多個處理器302以及記憶體304,其在某些例子中是提供一電腦平台以用於執行一作業系統305,所述作業系統305譬如可以是一內嵌即時的多任務業系統、或是其它類型的作業系統。於是,作業系統305提供一多工操作環境以用於執行一或多個軟體構件307,其包含應用程式引擎340。如同相關圖2A及2B的例子所論述的,處理器302是耦接至電子顯示器203、運動感測器206、影像捕捉裝置138,並且在某些例子中是耦接至光學系統306。在某些例子中,處理器302以及記憶體304可以是分開的離散的構件。在其它例子中,記憶體304可以是在例如一SoC的單一積體電路之內,與處理器302位在一起的晶片上的記憶體。在某些例子中,用於匯總及處理感測到的資料的處理器302及/或記憶體304的功能可被實施為根據本揭露內容所配置的一SoC/SRAM積體電路構件。
在某些例子中,如上相關圖2A及2B所述,光學系統306可包含投影器以及波導以用於呈現虛擬的內容給使用者。例如,光學系統306可包含一投影器,其包含電子顯示器303以及一投射透鏡。
一般而言,控制台106是一計算裝置,其處理從影像捕捉裝置138接收到的影像及追蹤資訊,以執行姿勢偵測以及用於HMD 112的使用者介面及/或虛擬的內容的產生。在某些例子中,控制台106是單一計算裝置,例如是一工作站、一桌上型電腦、一膝上型電腦、或是遊戲系統。在某些例子中,控制台106的至少一部分(例如處理器312及/或記憶體314)可以橫跨一雲端計算系統、一資料中心、或是橫跨一網路,例如是網際網路、另一公共或私人通訊網路,譬如寬頻、蜂巢式、Wi-Fi、及/或用於在計算系統、伺服器、以及計算裝置之間發送資料的其它類型的通訊網路來分散的。
在圖3的例子中,控制台106包含一或多個處理器312以及記憶體314,其在某些例子中是提供一電腦平台以用於執行一作業系統316,所述作業系統316譬如可以是內嵌即時的多任務業系統、或是其它類型的作業系統。於是,作業系統316提供一多工操作環境以用於執行一或多個軟體構件317。處理器312是耦接至一或多個I/O介面315,其提供一或多個I/O介面以用於和外部的裝置,例如是鍵盤、遊戲控制器、顯示裝置、影像捕捉裝置、HMD、週邊裝置、與類似者通訊。再者,所述一或多個I/O介面315可包含一或多個有線或無線的網路介面控制器(NIC),以用於和一網路(例如網路104)通訊。
控制台106的軟體構件317是操作以提供一整體的人工實境應用程式。在此例子中,軟體構件317包含應用程式引擎320、成像引擎322、姿勢偵測器324、姿態追蹤器326、以及使用者介面引擎328。
一般而言,應用程式引擎320包含功能以提供及呈現一人工實境應用程式,例如是一電話會議應用程式、一遊戲應用程式、一瀏覽應用程式、一教育應用程式、訓練或模擬應用程式、與類似者。應用程式引擎320例如可包含一或多個套裝軟體、軟體函式庫、硬體驅動程式、及/或應用程式介面(API),以用於在控制台106上實施一人工實境應用程式。響應於藉由應用程式引擎320的控制,成像引擎322是產生3D人工實境內容以用於藉由HMD 112的應用程式引擎340來顯示給使用者。
應用程式引擎320以及成像引擎322是根據針對於一參考座標系,通常是HMD 112的一觀看視角的如同藉由姿態追蹤器326所判定的目前的姿態資訊,來建構所述人工內容以用於顯示給使用者110。根據目前的觀看視角,成像引擎322建構所述3D人工實境內容,其在某些情形中可以(至少部分)覆蓋在使用者110的真實世界的3D環境之上。在此過程期間,姿態追蹤器326是在從HMD 112接收到的例如是移動資訊的感測的資料及使用者命令、以及在某些例子中的來自例如是外部攝影機的任何外部的感測器90(圖1)的資料上運算,以捕捉在真實世界環境之內的3D資訊,例如是使用者110所做的運動及/或相關使用者110的特徵追蹤資訊。根據所述感測到的資料,姿態追蹤器326針對於HMD 112的參考座標系判定一目前的姿態,並且根據所述目前的姿態來建構所述人工實境內容,以用於經由所述一或多個I/O介面315通訊至HMD 112以用於顯示給使用者110。
姿態追蹤器326可以針對於HMD 112判定一目前的姿態,並且根據所述目前的姿態來觸發和任何成像的虛擬的內容相關的某種功能(例如,將一虛擬的內容項目設置到一虛擬的表面之上、操縱一虛擬的內容項目、產生且成像一或多個虛擬的標記、產生且成像一雷射指標)。在某些例子中,姿態追蹤器326偵測所述HMD 112是否接近對應於一虛擬的表面(例如,一虛擬的紙板)的一實體位置,以觸發虛擬的內容的成像。
使用者介面引擎328是被配置以產生虛擬使用者介面,以用於成像在一人工實境環境中。使用者介面引擎328產生一虛擬使用者介面以包含一或多個虛擬使用者介面元素329,例如是一虛擬的繪圖介面、一可選的功能表(例如,下拉式功能表)、虛擬的按鈕、一十字鍵(directional pad)、一鍵盤、或是其它使用者可選的使用者介面元件、字符(glyphs)、顯示元素、內容、使用者介面控制等等。
控制台106可以經由一通訊通道來輸出此虛擬使用者介面以及其它人工實境內容至HMD 112,以用於顯示在HMD 112。
根據來自所述影像捕捉裝置138或是其它感測器裝置的任一個的感測到的資料,姿勢偵測器324分析控制器114及/或使用者110的物體(例如,手、手臂、手腕、手指、手掌、拇指)的被追蹤的運動、配置、位置、及/或方位,以識別由使用者110所執行的一或多個姿勢。更明確地說,姿勢偵測器324是分析在由HMD 112的影像捕捉裝置138及/或感測器90所捕捉的影像資料之內所辨認的物體,以識別控制器114及/或使用者110的一手及/或手臂,並且追蹤所述控制器114、手及/或手臂相對於HMD 112的移動,以識別由使用者110所執行的姿勢。在某些例子中,姿勢偵測器324可以根據所捕捉的影像資料來追蹤控制器114、手、手指、及/或手臂的移動(其包含位置及方位的改變),並且比較所述物體的運動向量與姿勢函式庫330中的一或多個項目,以偵測由使用者110所執行的一姿勢或是姿勢的組合。在某些例子中,姿勢偵測器324可以接收藉由控制器114的駐留敏感的表面偵測到的使用者輸入,並且處理所述使用者輸入以偵測藉由使用者110相關控制器114所執行的一或多個姿勢。
圖4是描繪根據在此揭露內容中所述的技術的圖1的人工實境系統的一範例HMD 112的方塊圖。在圖4所示的例子中,HMD 112是一獨立的人工實境系統。在此例子中,類似圖3,HMD 112包含一或多個處理器302以及記憶體304,其在某些例子中是提供一電腦平台以用於執行一作業系統305,所述作業系統305譬如可以是一內嵌即時的多任務業系統、或是其它類型的作業系統。於是,作業系統305提供一多工操作環境以用於執行一或多個軟體構件417。再者,處理器302是耦接至電子顯示器203、變焦光學系統306、運動感測器206、以及影像捕捉裝置138。在某些例子中,用於匯總及處理感測到的資料的處理器302及/或記憶體304的功能可被實施為根據本揭露內容所配置的一SoC積體電路構件。
在某些例子中,如上相關圖2A-2B所述,光學系統306可包含投影器以及波導以用於呈現虛擬的內容給使用者。例如,光學系統306可包含一投影器,其包含電子顯示器303以及一投射透鏡。所述投射透鏡可以進一步包含一多功能的DOE,其作用為一光柵耦合器以將光重定向到一波導內並且作用為一透鏡元件,其改善所述投影器透鏡的成像品質。
在圖4的例子中,軟體構件417是操作以提供一整體人工實境應用程式。在此例子中,軟體構件417包含應用程式引擎440、成像引擎422、姿勢偵測器424、姿態追蹤器426、以及使用者介面引擎428。在各種的例子中,軟體構件417是類似於圖3的控制台106的對應構件(例如,應用程式引擎320、成像引擎322、姿勢偵測器324、姿態追蹤器326、以及使用者介面引擎328)來操作,以建構被覆蓋在所述人工內容上、或是作為所述人工內容的部分之虛擬使用者介面,以用於顯示給使用者110。
類似於相關圖3所述的例子,根據來自例如是影像捕捉裝置138、238或102的影像捕捉裝置、控制器114及/或其它感測器裝置的任一個的感測到的資料,姿勢偵測器424分析控制器114及/或使用者110的物體(例如,手、手臂、手腕、手指、手掌、拇指)的被追蹤的運動、配置、位置、及/或方位,以識別由使用者110所執行的一或多個姿勢。
圖5是描繪根據在此揭露內容中所述的技術的一種用於多裝置的人工實境系統之分散式架構的一範例實施方式的方塊圖,其中一或多個裝置(例如,一週邊裝置536以及HMD 112)是利用在每一個裝置之內的一或多個系統單晶片(SoC)積體電路來實施的,並且具有無線通訊系統。圖5是描繪其中HMD 112結合週邊裝置536來操作的一個例子。週邊裝置536是代表一實體真實世界的裝置,其具有多裝置的人工實境系統(例如系統100)覆蓋虛擬的內容在其上的一表面。週邊裝置536可包含一介面554,其具有一或多個駐留敏感的表面,以用於藉由偵測觸碰或盤旋在所述駐留敏感的表面的位置之上的一或多個物體(例如,手指、指示筆等等)的駐留來偵測使用者輸入。在某些例子中,週邊裝置536可以具有類似於一智慧型手機、一平板電腦、一個人數位助理(personal digital assistant;PDA)、或是其它手持的裝置的任一者的一形狀因數。在其它例子中,週邊裝置536可以具有一智慧型手錶、一所謂的「智慧型戒指」、或是其它可穿戴的裝置的形狀因數。週邊裝置536亦可以是一資訊站或是其它靜止或行動系統的部分。介面554可以納入輸出構件(例如一或多個顯示裝置),以用於輸出視覺的內容至一螢幕。如上所述,HMD 112是被建構及配置以致能人工實境應用程式的執行。
在此例子中,HMD 112以及週邊裝置136是分別包含SoC 530A、510A,其代表一群組的專用的積體電路,其是以一分散式架構而被安排並且配置以提供一用於人工實境應用程式的操作環境。舉例而言,SoC積體電路可包含專用的功能區塊,其運作為共同應用程式處理器、感測器的聚合器、加密/解密引擎、安全處理器、手/眼睛/深度追蹤及姿態計算元件、視訊編碼及成像引擎、顯示器控制器以及通訊控制構件。圖5僅僅是SoC積體電路的一範例配置而已。用於多裝置的人工實境系統的分散式架構可包含任意群組及/或配置的SoC積體電路。
在圖5的例子中,HMD 112包含根據本揭露內容的技術的一SoC/SRAM積體電路構件566。尤其,SoC/SRAM積體電路構件566包含SoC 530A以及一SRAM 564。SRAM 564是和SoC 530A的處理器以及其它晶粒上的電路分開的、或是在其外部的(例如,不在晶粒上)。在此例子中,週邊裝置536是利用一傳統的SoC架構來實施的,其中SoC 510A包含一晶粒上的SRAM 556以及外部的(晶粒外的)非揮發性本地記憶體514。相對地,根據本揭露內容的技術,SoC 530A並不包含外部非揮發性本地記憶體;而是SoC/SRAM積體電路構件566的SRAM 564具有充足的記憶體容量,以執行傳統晶粒上的SRAM(例如SRAM 556)以及外部非揮發性本地記憶體(例如NVM 514)兩者的功能。
頭戴式顯示器(例如,如同在此所述的用於AR/VR系統的HMD 112)可以受益於所述SoC/SRAM積體電路構件566所提供的尺寸上的縮減、增高的處理速度以及降低的功率消耗。例如,由根據本揭露內容的技術的SoC/SRAM積體電路構件566所提供的益處可以產生增大的舒適度給穿戴者、以及更完全沈浸且逼真的AR/VR體驗。
此外,應該理解到的是SoC 510及/或530的任一個都可以利用根據本揭露內容的技術的SoC/SRAM積體電路構件來實施,因而本揭露內容此方面並未受到限制。所述SoC 510及/或530的任一個都可以受益於SoC/SRAM積體電路構件566所提供的縮小的尺寸、增高的處理速度以及降低的功率消耗。此外,根據本揭露內容的技術的堆疊的SoC/SRAM構件所提供的益處不僅有利於AR/VR系統,而且在許多應用中亦可以是有利的,例如是自動駕駛、基於邊緣的人工智慧、物聯網、以及其它需要根據來自大量的感測器輸入的資料分析的高度響應、即時決策的功能的應用。
在此例子中,HMD 112的SoC 530A包括功能區塊,其包含安全處理器224、追蹤570、一加密/解密580、協同處理器582、以及一介面584。追蹤570是提供一功能區塊,以用於眼睛追蹤572(「眼睛572」)、手追蹤574(「手574」)、深度追蹤576(「深度576」)、及/或同時定位與地圖構建(SLAM)578(「SLAM 578」)。例如,HMD 112可以從一或多個輸出指出HMD 112的目前的加速的資料的加速度計(亦被稱為慣性量測單元或「IMU」)、輸出指出HMD 112的位置的資料的GPS感測器、輸出指出HMD 112相隔各種物體的距離的資料的雷達或聲納、或是其它提供指出HMD 112或其它物體在一實體環境之內的位置或方位的感測器接收輸入。HMD 112亦可以從一或多個影像捕捉裝置588A–588N(統稱「影像捕捉裝置588」)接收影像資料。影像捕捉裝置可包含視訊攝影機、雷射掃描器、都卜勒雷達掃描器、深度掃描器、或類似者,其被配置以輸出代表所述實體環境的影像資料。更明確地說,影像捕捉裝置是捕捉代表在所述實體環境中的在影像捕捉裝置的一視野之內的物體(包含週邊裝置536及/或手)的影像資料,所述視野通常對應HMD 112的觀看視角。根據所感測到的資料及/或影像資料,追蹤570例如是判定針對於HMD 112的參考座標系的一目前的姿態,並且根據所述目前的姿態來成像所述人工實境內容。
SoC 530A的加密/解密580是一功能區塊,以加密被傳遞至週邊裝置536或安全伺服器的向外的資料,並且解密從週邊裝置536或安全伺服器被傳遞的進入的資料。協同處理器582是包含一或多個用於執行指令的處理器,例如是一視訊處理單元、圖形處理單元、數位信號處理器、編碼器及/或解碼器、AR/VR應用程式及/或其它。
SoC 530A的介面584是一功能區塊,其包含一或多個介面以用於連接至SoC 530B及/或530C的功能區塊。舉例而言,介面584可包含週邊元件互連快遞(PCIe)槽。SoC 530A可以利用介面584來和SoC 530B、530C連接。SoC 530A可以利用介面584來和一通訊裝置(例如,無線電發送器)連接,以用於和其它裝置(例如,週邊裝置536)通訊。
HMD 112的SoC 530B及530C分別代表顯示器控制器,以用於在個別的顯示器,例如是顯示器586A、586B(統稱「顯示器586」)上輸出人工實境內容。在此例子中,SoC 530B可包含一用於顯示器568A的顯示器控制器,以輸出用於一使用者的左眼587A的人工實境內容。例如,SoC 530B包含一解密區塊592A、解碼器區塊594A、顯示器控制器596A、及/或一像素驅動器598A,以用於在顯示器586A上輸出人工實境內容。類似地,SoC 530C可包含一用於顯示器568B的顯示器控制器,以輸出用於所述使用者的右眼587B的人工實境內容。例如,SoC 530C包含解密592B、解碼器594B、顯示器控制器596B、及/或一像素驅動器598B,以用於在顯示器586B上產生及輸出人工實境內容。顯示器568可包含發光二極體(LED)顯示器、有機LED(OLED)、量子點LED(QLED)、電子紙(E-ink)顯示器、液晶顯示器(LCD)、或是其它類型的顯示器,以用於顯示AR內容。
在此例子中,週邊裝置536是包含SoC 510A及510B,其被配置以支援人工實境應用程式。在此例子中,SoC 510A包括功能區塊,其包含安全處理器226、追蹤區塊540、一加密/解密區塊550、一顯示器處理器552、以及一介面554。追蹤區塊540是一功能區塊,其提供眼睛追蹤542(「眼睛542」)、手追蹤544(「手544」)、深度追蹤546(「深度546」)、及/或同時定位與地圖構建(Simultaneous Localization and Mapping;SLAM)548(「SLAM 548」)。例如,週邊裝置536可以從一或多個輸出指出週邊裝置536的目前的加速的資料的加速度計(亦被稱為慣性量測單元或是「IMU」)、輸出指出週邊裝置536的位置的資料的GPS感測器、輸出指出週邊裝置536相隔各種物體的距離的資料的雷達或聲納、或是其它提供指出週邊裝置536或其它物體在一實體環境之內的位置或方位的感測器接收輸入。週邊裝置536在某些例子中亦可以從一或多個影像捕捉裝置,例如是視訊攝影機、雷射掃描器、都卜勒雷達掃描器、深度掃描器、或類似者接收影像資料,其被配置以輸出代表所述實體環境的影像資料。根據所感測到的資料及/或影像資料,追蹤區塊540例如是判定針對於週邊裝置536的參考座標系的一目前的姿態,並且根據所述目前的姿態來成像所述人工實境內容至HMD 112。
SoC 510A的加密/解密區塊550是加密被傳遞至HMD 112或安全伺服器的向外的資料,並且解密從HMD 112或安全伺服器被傳遞的進入的資料。加密/解密區塊550可以支援對稱密鑰加密,以利用一對話密鑰(例如,秘密對稱的密鑰)來加密/解密資料。SoC 510A的顯示器處理器552包含一或多個處理器,例如是一視訊處理單元、圖形處理單元、編碼器及/或解碼器、及/或其它,以用於成像人工實境內容至HMD 112。SoC 510A的介面554包含一或多個介面,以用於連接至SoC 510A的功能區塊。舉例而言,介面584可包含週邊元件互連快遞(PCIe)槽。SoC 510A可以利用介面584來和SoC 510B連接。SoC 510A可以利用介面584來和一或多個通訊裝置(例如,無線電發送器)連接,以用於和其它裝置(例如,HMD 112)通訊。
週邊裝置136的SoC 510B包含協同處理器560以及應用程式處理器562。在此例子中,協同處理器560包含各種的處理器,例如是一視覺處理單元(vision processing unit;VPU)、一圖形處理單元(graphics processing unit;GPU)、及/或中央處理單元(central processing unit;CPU)。應用程式處理器562可以執行一或多個人工實境應用程式,以譬如產生及成像人工實境內容及/或偵測及解譯由一使用者相對於週邊裝置536所執行的姿勢。
圖6是描繪根據在此揭露內容中所述的技術的具有一加密引擎602的一範例SoC 600的方塊圖。如同在圖6中所示,SoC 600可包含系統微控制器單元(SMCU)606、本地記憶體608、直接記憶體存取(DMA)引擎604以及加密引擎602。SoC 600可以通訊地耦接至一儲存控制器612,其在儲存裝置614以及SoC 600或SoC 600的子系統之間傳輸資料。在某些特點中,儲存控制器612及儲存裝置614可被納入一eMMC 610中。在某些特點中,儲存控制器612、SMCU 606、本地記憶體608、DMA引擎604以及加密引擎602可以經由晶片內網路(Network on a Chip;NoC)620來和彼此通訊。其它通訊媒體可以額外或替代NoC 620來加以利用。此種媒體的例子包含匯流排、網路、交換結構等等。
SMCU 606可以協調在SoC 600上的各種操作。例如,SMCU 606可以協調韌體載入、開機處理、除錯子系統等等。此外,SMCU 606可以提供配置資料至加密引擎602。
DMA引擎604是管理本地記憶體608與在SoC 600外部的裝置(例如儲存裝置614)之間的資料傳輸。DMA引擎604可以接收DMA命令,其指明在本地記憶體608中的記憶體位址以及在外部的裝置(例如,儲存裝置614)上的儲存位址,並且可以與SoC 600上的其它處理器,例如SMCU 606、安全處理器(未顯示在圖6中)或是一般用途的處理器(未顯示在圖6中)無關地而如同在所述命令中指明地傳輸資料。
加密引擎602可耦接至DMA引擎604,並且可以加密及/或解密正在本地記憶體608以及其它裝置之間被傳輸的資料。有關加密引擎602的操作的進一步細節是在以下提出。如同在圖6中所示,DMA引擎604可以略過加密引擎,並且直接在本地記憶體608以及外部的裝置之間傳輸資料。例如,當來源資料並不需要被加密或解密時,DMA引擎604可以略過加密引擎602。
圖7是描繪根據在此揭露內容中所述的技術的一加密引擎602的進一步細節的方塊圖。在某些特點中,加密引擎602包含進階加密標準(AES)核心702、配置資料704、元資料先進先出(First-In, First-Out;FIFO)佇列710、密鑰保管庫708、以及有限狀態機706。
AES核心702實施AES的一或多個版本。在某些特點中,AES核心702可以實施AES-XTS(密文竊取)、AES-GCM(伽羅瓦(Galois)/計數器模式)及/或AES-CTR(計數器)加密/解密模式中的一或多個。有關這些加密/解密模式的細節可見於「用於區塊導向的儲存裝置上的資料的密碼保護的IEEE標準」,在2019年1月25日IEEE Std 1619-2018 (IEEE Std 1619-2007的修訂)1-41頁中,其藉此被納入作為參考。加密引擎602可以利用有限狀態機(FSM)706來管理在資料加密/解密的期間的狀態轉變。
密鑰保管庫708可以儲存用於藉由加密引擎602的加密及解密的密鑰對。在某些特點中,一密鑰對的每一個密鑰是一128位元的密鑰。在某些特點中,密鑰保管庫708可以儲存高達十六個密鑰對。一密鑰對可以是和SoC 600的不同子系統及/或在SoC 600的子系統上執行的應用程式相關的。在某些特點中,一密鑰索引是對於密鑰保管庫708的儲存一密鑰對的一槽的索引。子系統以及在所述子系統上執行的應用程式可以是和所述密鑰索引中之一相關的。
配置資料704可包含一或多個配置狀態暫存器(CSR),其可以儲存指明儲存裝置614的區段大小的資料,並且可以指明有關使用於儲存裝置614的特定區段的密鑰的限制。
在某些特點中,加密引擎602包含五個介面。狀態功能暫存器(SFR)匯流排720可被利用以程式化用於加密引擎602的特徵及模式。此種特徵及模式的例子包含儲存裝置614的區段大小、串流模式、加密模式(例如,XTS、GCM、CTR)、略過模式、旁道攻擊(SCA)致能等等。此外,SFR匯流排720可被利用以從加密引擎602讀回執行時間的錯誤記錄及狀態資訊。在某些特點中,SFR匯流排720是一高級週邊匯流排(APB)的32位元匯流排。
描述符匯流排724可被例如是SMCU 606的主機利用來排程傳輸任務,以用於藉由加密引擎602的處理。例如,SMCU 606可以透過描述符匯流排724來排程用於每一個傳輸的元資料。針對於XTS模式,此種元資料可包含區段位址、密鑰索引、以及傳輸大小。所述元資料可被置放在元資料FIFO佇列710中。在某些特點中,在元資料FIFO佇列710中的一項目可以是一元組(tuple),其包含區塊長度、區段位址、以及一密鑰ID。所述元組可被稱為針對於所述被排程的傳輸任務的一任務記錄。所述密鑰ID可以是針對於密鑰保管庫708中的一槽的一索引(或是一對映至此種索引),所述槽保持所述密鑰對以使用於加密/解密操作。所述密鑰ID可以是和一特定的子系統、或是執行在所述子系統上的一應用程式相關的。在某些特點中,元資料FIFO佇列710可以儲存用於64個傳輸的元資料。
在某些實施方式中,描述符匯流排724是一32位元匯流排,並且在FIFO佇列710中的一描述符項目是128位元。因此,透過描述符匯流排724的四次寫入是被用來插入一元資料元組到FIFO佇列710的一項目中。在某些特點中,描述符匯流排724可以和SFR匯流排720合併,以提供統一的APB目標。
安全密鑰匯流排722提供一介面給一例如是安全處理器730的處理器,以在密鑰保管庫708中儲存密鑰對。在某些特點中,安全密鑰匯流排722是一單向的匯流排。換言之,密鑰對可被提供以用於儲存在密鑰保管庫708中,但是所述密鑰對無法經由安全密鑰匯流排722來讀回。在某些特點中,安全密鑰匯流排722可以是一APB 128位元匯流排。
酬載介面726提供輸入資料給加密引擎602。加密的酬載資料可以經由酬載介面726來接收,可以經由資料輸出介面728而被解密及輸出。類似地,明碼文字資料可以經由酬載介面726來接收、藉由加密引擎602而被加密、並且加密的資料可以經由資料輸出介面728來提供。在某些特點中,酬載介面726以及資料輸出介面728可以是先進可擴展介面(AXI)128位元介面。在某些特點中,加密引擎602攔截所述AXI寫入資料通道,並且略過其它控制流資料的處理。
應注意的是,用於串流資料(AXI 128b)以及程式化描述符(APB 32b)的分開的介面,容許排程並行於現有傳輸之未來傳輸。
如上所提到的,加密引擎602可以實施所述AES-XTS加密/解密演算法。圖9是描繪利用密文竊取的AES-XTS加密,其是可被用在此揭露內容中敘述的各種特點的數個加密模式中之一。AES-XTS是使用兩個AES密鑰(Key 1及Key 2),其可以是128位元的密鑰。Key 1是被用來執行所述AES區塊加密;Key 2是被用來加密所謂的一"微調值"。在某些特點中,所述微調值可以是其中所述來源資料將被儲存的儲存裝置614的區段的區段號碼 i。此加密的微調值進一步利用一伽羅瓦多項式函數α來修改,並且與每一個區塊的明文及密文XOR兩者運算。所述資料的解密可以藉由反轉此過程來加以執行。
在某些特點中,一區段是512個位元組。AES區塊可以是16位元組。因此,32個16位元組的區塊 j可被儲存在一區段中。因此,對於單一區段 i,將會有32個利用相同的i的加密,但是為不同的j值(0至31)以判定α j
有關AES加密的進一步細節可見於「用於區塊導向的儲存裝置上的資料的密碼保護的IEEE標準」,在2019年1月25日IEEE Std 1619-2018 (IEEE Std 1619-2007的修訂)1-41頁中,其先前已被納入作為參考。
如同從上述將會體認到的,當一區塊的資料被寫入時,一新的α j被計算出。再者,當區塊被寫入時,一區段邊界可能會跨越(亦即,區段位址 i改變),因而一新的微調值被計算出。在某些情形中,區塊是16位元組,因此當32個區塊已經被寫入時,一新的區段邊界被跨越,因而一新的微調值被計算出。在某些特點中,藉由利用一交易的元資料來判定將會被用來寫入整個酬載的區段位址,加密引擎602是在後續的區段需要之前預先計算所述微調值。例如,加密引擎602可以判定將被寫入的資料的區塊長度,並且可以從配置資料704中的CSR 705獲得針對於所述儲存裝置的一區段大小,以判定在所述寫入期間將會跨越的區段邊界的數目、以及那些區段邊界的區段位址。當針對於一目前的區段的區塊正被加密時,加密引擎602可以使用此資訊來預先計算用於後續的區段的微調值。
回到圖7,加密引擎602的以上的構件的一範例實施方式的操作現在將會加以描述。
在一初始化階段(或是在一密鑰更新階段),安全處理器730可以產生密鑰對,並且提供所述密鑰對至加密引擎602以用於儲存在密鑰保管庫708中。此外,SMCU 606可以提供配置資料704至加密引擎602。
SMCU 606可以接收一處理器間的通訊(inter-processor communication;IPC)請求以排程一寫入至eMMC 610。SMCU 606可以分開針對於所述請求的資料傳輸成為多個子交易。SMCU 606對於每一個子交易產生一DMA描述符。SMCU 606亦對於每一個DMA描述符產生傳輸元資料。SMCU 606可以經由SFR匯流排720讀取所述SFR,以判定在元資料FIFO佇列710中可利用的槽數目。SMCU 606接著配置加密/解密操作模式,並且藉由在元資料FIFO佇列710中寫入可利用的元資料槽來排程所述子交易。SMCU 606接著載入一DMA描述符到DMA引擎604中,並且觸發所述傳輸的開始。
加密引擎602從元資料FIFO佇列710提取下一個元資料記錄,並且準備從DMA引擎604的巨量資料傳輸。一旦備妥接受資料後,加密引擎602發出「備妥」並且開始經由酬載介面726來接受酬載資料。在某些實施方式中,加密引擎602每四分之一時脈週期接受16位元組的區塊。
加密引擎602接受和所述元資料記錄中的元資料區塊長度參數所容許的一樣多的區塊。一旦到達區塊長度後,加密引擎602前進至下一個子交易,解除在其酬載介面726上的「備妥」,準備存在於元資料FIFO佇列710中的新的有效的元資料之新的資料傳輸。若此種元資料存在,則加密引擎602發出「備妥」以經由酬載介面726接受下一批次的酬載資料。
在某些特點中,在元資料FIFO佇列710中的一元資料項目包含一旗標,其指出其是否對應於在一傳輸中的最後一個子交易。若是的話,則加密引擎602在完成最後一個子交易之後觸發一中斷至SMCU 606。
如同從以上的說明將會體認到的,在已經做成一資料傳輸請求之後,資料可被加密及解密,並且除了所述DMA引擎及加密引擎之外,其在不涉及處理器及子系統下被傳輸往返於一儲存裝置614,此釋放它處理器及子系統來執行其它工作。
圖8是描繪根據在此揭露內容中所述的技術的一種用於加密資料之方法的範例操作的流程圖。一安全處理器可以產生複數個密鑰對(805)。接著,所述安全處理器可以提供所述複數個密鑰對至加密引擎,以用於儲存至所述加密引擎所維持的一密鑰保管庫(810)。接著,一DMA引擎可以從所述複數個子系統中的一子系統接收儲存存取參數,所述儲存存取參數識別來源資料、資料大小、以及針對於儲存裝置的目的地儲存位址(815)。此外,一密鑰識別符可被接收到。在某些特點中,所述密鑰識別符可以是一密鑰索引值,其識別在密鑰保管庫708中的一槽(圖7)。接著,所述加密引擎可以根據所述儲存裝置的第一區段位址來判定第一微調值(820)。接著,所述加密引擎可以根據和所述子系統相關的一密鑰對的一第二密鑰來加密所述第一微調值(825)。接著,所述加密引擎可以根據和所述子系統相關的所述密鑰對的第一密鑰以及所述加密的第一微調值來加密所述來源資料的第一部分(830)。接著,所述加密引擎可以根據所述儲存裝置的第二區段位址來判定第二微調值,並且根據所述第二密鑰來加密所述第二微調值,其中所述第二微調值是在完成所述來源資料的所述第一部分的加密之前被判定及加密的(835)。接著,所述加密引擎可以根據所述第一密鑰以及所述加密的第二微調值來加密所述來源資料的第二部分(840)。
在以上的說明中,加密已經被論述為施加至區塊的單元,所述區塊接著被組織成為區段。應注意到的是,其它術語可被用來描述加密的區塊以及由加密的區塊所構成的區段。例如,加密可被施加至一「加密的單元」,並且一區塊可以是由多個加密的單元所構成的。
此種硬體、軟體、以及韌體可以在相同的裝置之內或是在分開的裝置之內實施,以支援在此揭露內容中所述的各種操作及功能。此外,所述單元、模組或構件的任一個可以一起加以實施、或是分開加以實施為離散但可以共同操作的邏輯裝置。不同特點的描繪為模組或單元是欲強調不同的功能特徵,因而並不一定意指此種模組或單元必須藉由分開的硬體或軟體構件來加以實現。而是,和一或多個模組或單元相關的功能可以藉由分開的硬體或軟體構件來加以執行、或是被整合在共同或分開的硬體或軟體構件之內。
在此揭露內容中所述的技術亦可被體現或編碼在包含指令的一電腦可讀取的媒體中,例如是電腦可讀取的儲存媒體。被內嵌或編碼在一電腦可讀取的儲存媒體中的指令例如在所述指令被執行時,可以使得一可程式化的處理器或是其它處理器執行所述方法。電腦可讀取的儲存媒體可包含隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可程式化的唯讀記憶體(PROM),可抹除的可程式化的唯讀記憶體(EPROM)、電子式可抹除的可程式化的唯讀記憶體(EEPROM)、快閃記憶體、一硬碟、一CD-ROM、一軟碟片、一卡匣、磁性媒體、光學媒體、或是其它電腦可讀取的媒體。
如同藉由在此的各種例子所述,本揭露內容的技術可包含一人工實境系統、或是結合一人工實境系統來加以實施。如先前所述,人工實境是一種形式的實境,其在呈現給一使用者之前已經用某種方式調整,例如可包含一虛擬實境(virtual reality;VR)、一擴增實境(augmented reality;AR)、一混合實境(mixed reality;MR)、一複合實境、或是其之某種組合及/或衍生。人工實境內容可包含完全是所產生的內容,或是所產生的內容結合所捕捉的內容(例如,真實世界的照片)。所述人工實境內容可包含視訊、音訊、觸覺回授、或是其之某種組合,並且其之任一個都可以用單一通道或是多個通道來加以呈現(例如是產生三維效果給觀看者的立體視訊)。此外,在某些實施例中,人工實境亦可以是和應用程式、產品、配件、服務、或是其之某種組合相關的,其例如被用來在一人工實境中產生內容,且/或在一人工實境中被使用(例如,在人工實境中執行活動)。提供人工實境內容的人工實境系統可以在各種平台上加以實施,其包含連接至一主機電腦系統的一頭戴式裝置(HMD)、一獨立的HMD、一行動裝置或計算系統、或是任何其它能夠提供人工實境內容給一或多個觀看者的硬體平台。
90:感測器 100:人工實境系統 104:網路 106:控制台 110:使用者 112:頭戴式顯示器(HMD) 114、114A、114B:控制器 120:虛擬的物件 122:人工實境內容 130:視野 138:影像捕捉裝置 203、203A、203B:波導/視窗 205、205A、205B:波導輸出結構 206:運動感測器 210:控制單元 212A:HMD 212B:HMD 224:安全處理器 238、238A、238B:影像捕捉裝置 248、248A、248B:投影器 302:處理器 303:電子顯示器 304:記憶體 305:作業系統 306:光學系統 307:軟體構件 312:處理器 314:記憶體 315:I/O介面 316:作業系統 317:軟體構件 320:應用程式引擎 322:成像引擎 324:姿勢偵測器 326:姿態追蹤器 328:使用者介面引擎 329:虛擬使用者介面元素 330:姿勢函式庫 340:應用程式引擎 417:軟體構件 422:成像引擎 424:姿勢偵測器 426:姿態追蹤器 428:使用者介面引擎 440:應用程式引擎 510、510A、510B:SoC 514:本地記憶體 530、530A、530B、530C:SoC 536:週邊裝置 540:追蹤區塊 542:眼睛追蹤 544:手追蹤 546:深度追蹤 548:同時定位與地圖構建(SLAM) 550:加密/解密區塊 552:顯示器處理器 554:介面 556:晶粒上的SRAM 560:協同處理器 562:應用程式處理器 564:SRAM 566:SoC/SRAM積體電路構件 568:SRAM 570:追蹤 572:眼睛追蹤 574:手追蹤 576:深度追蹤 578:同時定位與地圖構建(SLAM) 580:加密/解密 582:協同處理器 584:介面 586、586A、586B:顯示器 587A:左眼 587B:右眼 588、588A–588N:影像捕捉裝置 592A:解密區塊 592B:解密 594A:解碼器區塊 594B:解碼器 596A:顯示器控制器 596B:顯示器控制器 598A:像素驅動器 598B:像素驅動器 600:SoC 602:加密引擎 604:直接記憶體存取(DMA)引擎 606:系統微控制器單元(SMCU) 608:本地記憶體 610:eMMC 612:儲存控制器 614:儲存裝置 620:晶片內網路(NoC) 702:進階加密標準(AES)核心 704:配置資料 705:配置狀態暫存器(CSR) 706:有限狀態機 708:密鑰保管庫 710:元資料先進先出(FIFO)佇列 720:狀態功能暫存器(SFR)匯流排 722:安全密鑰匯流排 724:描述符匯流排 726:酬載介面 728:資料輸出介面 730:安全處理器 805-840:步驟
[圖1]是描繪根據在此揭露內容中所述的技術的一範例人工實境系統的圖示,其包含被配置以實施高處理量加密的SoC。
[圖2A]是描繪根據在此揭露內容中所述的技術的一範例HMD的圖示,其包含被配置以實施高處理量加密的SoC。
[圖2B]是描繪根據在此揭露內容中所述的技術的另一範例HMD的圖示,其包含被配置以實施高處理量加密的SoC。
[圖3]是展示根據在此揭露內容中所述的技術的圖1的人工實境系統的一控制台以及一HMD的範例實施方式的方塊圖。
[圖4]是描繪根據在此揭露內容中所述的技術的圖1的人工實境系統的一範例HMD的方塊圖。
[圖5]是描繪根據在此揭露內容中所述的技術的用於一多裝置的人工實境系統的一分散式架構的一範例實施方式的方塊圖,其中一或多個裝置是在每一個裝置之內利用一或多個系統單晶片(SoC)積體電路來實施的,並且具有無線通訊系統。
[圖6]是描繪根據在此揭露內容中所述的技術的一具有加密引擎的範例SoC的方塊圖。
[圖7]是描繪根據在此揭露內容中所述的技術的一加密引擎的進一步細節的方塊圖。
[圖8]是描繪根據在此揭露內容中所述的技術的一種用於加密資料之方法的範例操作的流程圖。
[圖9]是根據在此揭露內容中所述的技術的描繪AES加密的概念圖。
600:SoC
602:加密引擎
604:直接記憶體存取(DMA)引擎
606:系統微控制器單元(SMCU)
608:本地記憶體
610:eMMC
612:儲存控制器
614:儲存裝置
620:晶片內網路(NoC)

Claims (20)

  1. 一種系統單晶片(SoC),其包括: 系統微控制器,其包括被配置以協調在所述SoC上的操作的處理電路系統; 安全處理器,其包括被配置以儲存複數個密鑰對至密鑰保管庫的處理電路系統,所述密鑰對的每一個具有第一密鑰以及第二密鑰,所述密鑰對的每一個是和所述SoC的複數個子系統中的一個相關的; 直接記憶體存取(DMA)引擎,其包括被配置以從所述複數個子系統中的一子系統接收儲存存取參數的電路系統,所述儲存存取參數識別來源資料、資料大小、以及針對於儲存裝置的目的地儲存位址;以及 耦接至所述DMA引擎的加密引擎,所述加密引擎包括處理電路系統,其被配置以: 根據所述儲存裝置的第一區段位址來判定第一微調值,所述第一磁區位址是根據所述目的地儲存位址; 根據和所述子系統相關的所述密鑰對的所述第二密鑰來加密所述第一微調值; 根據和所述子系統相關的所述密鑰對的所述第一密鑰以及加密的所述第一微調值來加密所述來源資料的第一部分; 根據所述儲存裝置的第二區段位址來判定第二微調值,並且根據所述第二密鑰來加密所述第二微調值,其中所述第二微調值是在完成所述來源資料的所述第一部分的加密之前被判定及加密的;以及 根據所述第一密鑰以及加密的所述第二微調值來加密所述來源資料的第二部分。
  2. 如請求項1之SoC,其中所述DMA引擎進一步被配置以接收密鑰識別符(ID),其識別所述密鑰對在所述密鑰保管庫中的位置。
  3. 如請求項2之SoC,其進一步包括被配置以儲存複數個任務記錄的先進先出(FIFO)佇列,所述任務記錄的每一個包括區塊長度、區段位址、以及所述密鑰ID,其中所述加密引擎從所述FIFO佇列獲得一任務記錄以判定所述第一區段位址以及所述密鑰對。
  4. 如請求項1之SoC,其進一步包括和所述儲存裝置相關的配置狀態暫存器,所述配置狀態暫存器定義用於所述儲存裝置的區段大小,其中所述加密引擎利用所述區段大小來判定所述第二微調值。
  5. 如請求項1之SoC,其中所述加密引擎是被配置以響應於所述來源資料並未透過先進可擴展介面(AXI)寫入通道而被接收到的判定而略過所述來源資料的加密。
  6. 如請求項1之SoC,其中所述加密引擎包括複數個介面,其包含第一介面以接收所述來源資料、第二介面以輸出加密的來源資料、以及第三介面以接收描述所述來源資料的DMA傳輸的元資料,所述元資料包括區塊長度、區段位址、以及密鑰ID。
  7. 如請求項6之SoC,其中所述複數個介面包含單向的介面,以接收一密鑰對以用於儲存在所述密鑰保管庫中。
  8. 如請求項6之SoC,其中所述第一介面是通訊地耦接至所述DMA引擎,並且所述第三介面是通訊地耦接至所述系統微控制器。
  9. 如請求項1之SoC,其中所述SoC是被配置以支援人工實境應用程式。
  10. 如請求項1之SoC,其中所述SoC是被整合到週邊裝置中,所述週邊裝置是通訊地耦接至頭戴式裝置(HMD)。
  11. 一種人工實境系統,其包括: 儲存裝置; 被配置以輸出人工實境內容的頭戴式顯示器(HMD),所述HMD包含至少一系統單晶片(SoC),其中所述至少一SoC包括: 安全處理器,其包括被配置以儲存複數個密鑰對至密鑰保管庫的處理電路系統,所述密鑰對的每一個具有第一密鑰以及第二密鑰,所述密鑰對的每一個是和所述SoC的複數個子系統中的一個相關的; 直接記憶體存取(DMA)引擎,其包括被配置以從所述複數個子系統中的一子系統接收儲存存取參數的電路系統,所述儲存存取參數識別來源資料、資料大小、以及針對於所述儲存裝置的目的地儲存位址;以及 耦接至所述DMA引擎的加密引擎,所述加密引擎包括處理電路系統,其被配置以: 根據所述儲存裝置的第一區段位址來判定第一微調值,所述第一磁區位址是根據所述目的地儲存位址; 根據和所述子系統相關的所述密鑰對的所述第二密鑰來加密所述第一微調值; 根據和所述子系統相關的所述密鑰對的所述第一密鑰以及加密的所述第一微調值來加密所述來源資料的第一部分; 根據所述儲存裝置的第二區段位址來判定第二微調值,並且根據所述第二密鑰來加密所述第二微調值,其中所述第二微調值是在完成所述來源資料的所述第一部分的加密之前被判定及加密的;以及 根據所述第一密鑰以及加密的所述第二微調值來加密所述來源資料的第二部分。
  12. 如請求項11之人工實境系統,其中所述DMA引擎進一步被配置以接收密鑰識別符(ID),其識別所述密鑰對在所述密鑰保管庫中的位置。
  13. 如請求項12之人工實境系統,其中所述SoC進一步包括被配置以儲存複數個任務記錄的先進先出(FIFO)佇列,所述任務記錄的每一個包括區塊長度、區段位址、以及所述密鑰ID,其中所述加密引擎從所述FIFO佇列獲得一任務記錄以判定所述第一區段位址以及所述密鑰對。
  14. 如請求項11之人工實境系統,其中所述SoC進一步包括和所述儲存裝置相關的配置狀態暫存器,所述配置狀態暫存器定義用於所述儲存裝置的區段大小,其中所述加密引擎利用所述區段大小來判定所述第二微調值。
  15. 如請求項11之人工實境系統,其中所述加密引擎包括複數個介面,其包含第一介面以接收所述來源資料、第二介面以輸出加密的來源資料、以及第三介面以接收描述所述來源資料的DMA傳輸的元資料,所述元資料包括區塊長度、區段位址、以及密鑰ID。
  16. 一種方法,其包括: 藉由安全處理器來產生複數個密鑰對; 藉由所述安全處理器來提供所述複數個密鑰對至加密引擎,其中所述加密引擎儲存所述複數個密鑰對至密鑰保管庫,所述密鑰對的每一個具有第一密鑰以及第二密鑰,所述密鑰對的每一個是和所述SoC的複數個子系統中的一個相關的; 藉由DMA引擎並且從所述複數個子系統中的一子系統接收儲存存取參數,所述儲存存取參數識別來源資料、資料大小、以及針對於儲存裝置的目的地儲存位址; 藉由所述加密引擎以根據所述儲存裝置的第一區段位址來判定第一微調值,所述第一磁區位址是根據所述目的地儲存位址; 藉由所述加密引擎以根據和所述子系統相關的所述密鑰對的所述第二密鑰來加密所述第一微調值; 藉由所述加密引擎以根據和所述子系統相關的所述密鑰對的所述第一密鑰以及所述加密的第一微調值來加密所述來源資料的第一部分; 藉由所述加密引擎以根據所述儲存裝置的第二區段位址來判定第二微調值,並且根據所述第二密鑰來加密所述第二微調值,其中所述第二微調值是在完成所述來源資料的所述第一部分的加密之前被判定及加密的;以及 藉由所述加密引擎以根據所述第一密鑰以及加密的所述第二微調值來加密所述來源資料的第二部分。
  17. 如請求項16之方法,其進一步包括藉由所述DMA引擎來接收密鑰識別符(ID),其識別所述密鑰對在所述密鑰保管庫中的位置。
  18. 如請求項17之方法,其進一步包括藉由所述加密引擎來獲得區段位址以及所述密鑰ID,其中所述加密引擎從所述加密引擎的FIFO佇列獲得任務記錄以判定所述第一區段位址以及所述密鑰對。
  19. 如請求項16之方法,其進一步包括: 藉由所述加密引擎以從和所述儲存裝置相關的配置狀態暫存器獲得用於所述儲存裝置的區段大小;以及 利用所述區段大小來判定所述第二微調值。
  20. 如請求項16之方法,其進一步包括: 響應於所述來源資料並未透過先進可擴展介面(AXI)寫入通道而被接收到的判定來略過所述來源資料的加密。
TW110141652A 2020-12-31 2021-11-09 高處理量儲存加密 TW202232333A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063133080P 2020-12-31 2020-12-31
US63/133,080 2020-12-31
US17/248,886 2021-02-11
US17/248,886 US11755747B2 (en) 2020-12-31 2021-02-11 High throughput storage encryption

Publications (1)

Publication Number Publication Date
TW202232333A true TW202232333A (zh) 2022-08-16

Family

ID=82119155

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110141652A TW202232333A (zh) 2020-12-31 2021-11-09 高處理量儲存加密

Country Status (2)

Country Link
US (1) US11755747B2 (zh)
TW (1) TW202232333A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230117720A1 (en) * 2021-10-14 2023-04-20 Jason Heger Dual system on a chip eyewear
US20240031140A1 (en) * 2022-07-22 2024-01-25 Intel Corporation Efficient low-overhead side-channel protection for polynomial multiplication in post-quantum encryption
CN115913565B (zh) * 2022-10-19 2023-08-15 南方电网科学研究院有限责任公司 一种提高加密芯片通信传输安全性的方法及加密芯片

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009029842A1 (en) * 2007-08-31 2009-03-05 Exegy Incorporated Method and apparatus for hardware-accelerated encryption/decryption
US8762609B1 (en) * 2010-11-03 2014-06-24 Pmc-Sierra Us, Inc. System and method for multiengine operation with super descriptor in SAS/SATA controller wherein portion of super-descriptor is executed without intervention of initiator
US9614666B2 (en) * 2014-12-23 2017-04-04 Intel Corporation Encryption interface
US10164770B1 (en) * 2015-06-03 2018-12-25 Marvell International Ltd. Pipelined data cryptography device and method
US9954681B2 (en) * 2015-06-10 2018-04-24 Nxp Usa, Inc. Systems and methods for data encryption
US9893881B2 (en) * 2015-06-29 2018-02-13 Intel Corporation Efficient sharing of hardware encryption pipeline for multiple security solutions
KR102447476B1 (ko) * 2015-08-20 2022-09-27 삼성전자주식회사 암복호 장치, 그것을 포함하는 저장 장치 및 그것의 암복호 방법
TWI673991B (zh) * 2017-11-20 2019-10-01 財團法人工業技術研究院 金鑰儲存裝置、金鑰儲存裝置之交易方法、交易系統及交易方法
EP3584989B1 (en) 2018-06-18 2023-09-27 Secure-IC SAS Tweakable block ciphers for secure data encryption
DE102019128528A1 (de) * 2019-10-22 2021-04-22 Infineon Technologies Ag Datenkryptografievorrichtungen und speichersysteme
US20220141026A1 (en) * 2020-11-02 2022-05-05 Intel Corporation Graphics security with synergistic encryption, content-based and resource management technology

Also Published As

Publication number Publication date
US11755747B2 (en) 2023-09-12
US20220207156A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
TW202232333A (zh) 高處理量儲存加密
US11868281B2 (en) Artificial reality system having multi-bank, multi-port distributed shared memory
JP2023503222A (ja) 人工現実システムにおける階層電力管理
US20210089366A1 (en) Artificial reality system with inter-processor communication (ipc)
US11637916B2 (en) Inline encryption of packet data in a wireless communication system
CN114651435B (zh) 具有虚拟无线信道的人工现实系统
WO2019160699A3 (en) Using tracking of display device to control image display
US20210133991A1 (en) Artificial reality system using a multisurface display protocol to communicate surface data
TW202203023A (zh) 具有多階段開機處理之人工實境系統
US20210089642A1 (en) Artificial reality system having hardware mutex with process authentication
KR102547245B1 (ko) 가상 현실 디스플레이 시스템 및 방법
US11238159B1 (en) Artificial reality system with verified boot sequences
WO2022005861A1 (en) Hierarchical power management of memory for artificial reality systems
US20190042778A1 (en) Methods And Apparatus To Protect Digital Content With Computer-Mediated Reality
US11948654B1 (en) Distributed phased SRAM repair for systems on a chip
US11487594B1 (en) Artificial reality system with inter-processor communication (IPC)
US11941131B1 (en) Isolation of secrets from an operating system
WO2022147349A1 (en) High throughput storage encryption
US20240231091A1 (en) Artificial reality system having a system on a chip with an integrated reduced power microcontroller