CN114731198A - 具有码分离的无线通信 - Google Patents

具有码分离的无线通信 Download PDF

Info

Publication number
CN114731198A
CN114731198A CN202080078300.5A CN202080078300A CN114731198A CN 114731198 A CN114731198 A CN 114731198A CN 202080078300 A CN202080078300 A CN 202080078300A CN 114731198 A CN114731198 A CN 114731198A
Authority
CN
China
Prior art keywords
memory
wireless
microcontroller
application data
packet
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202080078300.5A
Other languages
English (en)
Inventor
迪内希·帕蒂尔
沃伊切赫·史蒂凡·帕维尔托夫斯基
尼拉吉·乌帕沙尼
苏希尔·萨特帕蒂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Technologies LLC
Original Assignee
Facebook Technologies LLC
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 Facebook Technologies LLC filed Critical Facebook Technologies LLC
Publication of CN114731198A publication Critical patent/CN114731198A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G02B27/0172Head mounted characterised by optical features
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/24Radio transmission systems, i.e. using radiation field for communication between two or more posts
    • H04B7/26Radio transmission systems, i.e. using radiation field for communication between two or more posts at least one of which is mobile
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • H04W28/14Flow control between communication endpoints using intermediate storage
    • 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/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • 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/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • 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
    • G02B2027/0178Eyeglass type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Optics & Photonics (AREA)
  • Mathematical Physics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本公开描述了无线通信系统。一种无线通信系统包括第一存储器、第二存储器、第一微控制器和第二微控制器。第一微控制器管理用于无线收发器的驱动器,并引导无线收发器和第一存储器之间的数据移动。第二微控制器与生成将要被无线传输的应用数据的其他系统通信。将要被无线传输的应用数据存储在第二存储器中。另外,第二微控制器引导第二存储器和第一存储器之间的数据移动。

Description

具有码分离的无线通信
本申请要求2020年4月28日提交的序列号为16/860,991的美国非临时申请、2020年4月2日提交的第63/004,315号美国临时申请、2020年4月2日提交的第63/004,170号美国临时申请、2019年11月26日提交的第62/940,780号美国临时申请和2019年11月15日提交的第62/935,964号美国临时申请的权益。以上所有专利申请的公开内容由此通过引用并入本文。
技术领域
总体上,本公开涉及无线通信系统。
背景
设备使用一个或更多个无线协议进行无线通信。无线协议包括WiFi标准(IEEE802.11和随后的修改,例如,802.11a、802.11b、802.11g、802.11ad等)、蓝牙、LorRa、Zigbee等。无线通信涉及使用无线物理层链路在空中将分组数据从源设备传输到目的地设备。
概述
如下所述,无线通信系统包括多个微控制器,以管理共享存储器和一个或更多个无线收发器之间的数据传输。无线通信系统包括无线微控制器(WMCU),该无线微控制器(WMCU)管理用于无线收发器的驱动器,并协调与无线收发器相关联的I/O端口和物理存储器之间的数据移动,该物理存储器包括例如传输缓冲器和接收缓冲器(有时称为“无线存储器”或“WMEM”)。无线通信系统包括隔离微控制器(IMCU),该隔离微控制器与无线通信系统的其他存储器管理部件通信,例如以准备好用于由无线收发器传输的分组。共享存储器是可被设备的多个子系统(例如,不同的片上系统(SoC)集成电路等)经由存储器数据总线(例如,片上网络(NoC)数据总线)访问的存储器。共享存储器可以与无线存储器物理隔离,例如,是不同的存储器设备。虽然隔离微控制器可以访问共享存储器和无线存储器,但隔离微控制器控制对共享存储器的访问,使得无线微控制器不可以直接访问共享存储器。
具有将要通过无线收发器传输的应用数据的子系统将要传输的数据和报头(统称为“应用数据”)放置到共享存储器中。子系统然后向隔离微控制器提供应用数据的位置。隔离微控制器从应用数据创建分组和对应的分组报头,并且隔离微控制器协调共享存储器和无线存储器之间的数据移动。以这种方式,隔离微控制器介导(mediate)微控制器或处理接收到的无线分组的其它处理电路对共享存储器的访问。
在一些示例中,无线微控制器执行用于无线收发器的一个或更多个驱动器的完整集合,但是隔离微控制器可以执行更有限的代码来协调数据移动和管理分组化(packetization)。此外,无线微控制器仅可以访问无线存储器。由于畸形分组(malformedpacket)可能被用来利用由无线微控制器执行的驱动器的漏洞(vulnerability),使在隔离微控制器和无线微控制器之间的数据移动和无线收发器控制进行分叉(bifurcating)可以通过减少并且在某些情况下消除引擎和隔离微控制器对由无线收发器接收并存储到无线存储器的畸形分组的漏洞来提高无线通信系统的安全性。
在一些示例中,无线通信系统包括内联(in-line)加密/解密引擎,用于在共享存储器和无线收发器之间由隔离微控制器管理的数据路径上加密和解密分组。例如,隔离微控制器在无线存储器中为将从应用数据形成的分组创建加密报头,该应用数据由包括无线通信系统的设备的其他引擎生成。隔离微控制器可以(例如,经由控制和状态寄存器写等)对直接存储器存取(DMA)控制器进行编程,以将来自共享存储器的分组连同来自无线存储器的对应分组报头引导到加密/解密引擎。加密/解密引擎生成加密的分组,然后编程的DMA控制器将加密的分组写入无线存储器。即,隔离微控制器与生成用于无线传输的应用数据的子系统通信,从共享存储器中的应用数据创建报头和分组,并使用DMA控制器引导共享存储器和无线存储器之间的数据移动。隔离微控制器还管理用于由无线通信系统接收的加密分组的数据路径,以确保由加密/解密引擎进行内联解密。然后,当加密的分组准备好要进行传输时,隔离微控制器向无线微控制器发出信号。
执行用于无线收发器的驱动器的无线微控制器向隔离微控制器发送信号,指示新接收的加密分组。作为响应,隔离微控制器可对DMA控制器进行编程,以将从无线存储器接收的加密分组引导到加密/解密引擎,该加密/解密引擎从加密的分组中解密具有报头的分组,并且编程的DMA控制器将分组数据写入在共享存储器中分配的应用有效载荷目的地存储器。以这种方式,应用有效载荷以与应用有效载荷在发送方设备的共享存储器中的映像(image)相同的方式存储到目的地设备的共享存储器中。
在某些情况下,用于无线通信系统的加密/解密引擎对由该引擎加密的每个分组递增加密分组计数器。然后在报头中与分组一起传输分组计数器值。在接收器侧,对应的加密/解密引擎从报头中读取分组计数器,并使用nonce的本地副本和接收的分组计数器初始化本地解密。通过这种方式,每个分组可以单独解密和验证,并且分组的丢失对未来或过去的分组没有影响。
因此,本发明涉及根据权利要求1所述的无线通信系统、根据权利要求6所述的方法和根据权利要求12所述的系统。有利的实施例可以包括从属权利要求的特征。
在这个意义上,根据本发明的无线通信系统包括第一存储器、第二存储器、第一微控制器和第二微控制器。第一微控制器管理用于无线收发器的驱动器,并引导无线收发器和第一存储器之间的数据移动。第二微控制器与生成将要被无线传输的应用数据的其他系统通信。将要被无线传输的应用数据存储在第二存储器中。另外,第二微控制器引导第二存储器和第一存储器之间的数据移动。
在一个实施例中,第一微控制器和第二微控制器可以包括在被配置成输出人工现实内容的头戴式设备(HMD)或被配置成生成人工现实内容的外围设备中的一个中。
在另一个实施例中,第二微控制器可另外被配置成:基于存储在第二存储器中的应用数据确定要创建的应用数据分组的数量;为每个应用数据分组生成相应的传输报头;并将传输报头存储在第一存储器中。
可选地,第二微控制器还可被配置成创建报头表(header table)并将其存储在第一存储器中,报头表引用传输报头在第一存储器中的位置。
此外,可选地,第二微控制器可被配置成用描述符表对直接存取存储器控制器进行编程,以引导第二存储器和第一存储器之间的数据移动,描述符表指定相应传输报头在第一存储器中的位置和应用数据分组在第二存储器中的位置。在这种情况下,描述符表可以指定第一存储器中用于存储传输分组的位置。
在一个实施例中,为了引导第二存储器和第一存储器之间的数据移动,第二微控制器可以被配置成管理存储器管理电路和加密电路,该存储器管理电路和加密电路对从应用数据创建的应用数据分组进行加密,并将加密的应用数据分组与对应的传输报头一起存储到第一存储器。可选地,加密应用数据分组中的每一个能够独立于从相同应用数据创建的其他加密应用数据分组被解密。
根据一个实施例,无线通信系统还可以包括交叉开关(crossbar switch),其中第二微控制器经由交叉开关通信耦合到第一存储器和第二存储器,并且其中第一微控制器经由交叉开关通信耦合到第一存储器,而不通信耦合到第二存储器。
在另一个实施例中,第一微控制器可另外配置成:
生成无线分组,每个无线分组包括传输报头和从应用数据生成的加密的应用数据分组;以及
将无线分组存储到通信耦合到无线收发器的数据总线接口的传输缓冲器。
根据本发明的一种方法包括,响应于接收到指示应用数据被保存到第一存储器的第一信号,由第一微控制器确定要生成的用来无线传输该应用数据的应用数据分组的数量。该方法还包括:由第一微控制器为每个应用数据分组生成传输报头,并将传输报头存储在第二存储器中。另外,该方法包括由第一微控制器对直接存储器存取控制器进行编程,以使用传输报头和应用数据分组生成传输分组,并将传输分组存储在第二存储器中。该方法包括由与第一微控制器分离的第二微控制器将传输分组从第二存储器移动到通信耦合到无线收发器的无线数据总线接口的传输缓冲器。
在该方法的一个实施例中,第一微控制器和第二微控制器可以包括在被配置成输出人工现实内容的头戴式设备(HMD)或被配置成生成人工现实内容的外围设备中的一个中。
在另外的实施例中,将传输报头存储在第二存储器中还可以包括在第二存储器中创建和存储报头表,报头表引用传输报头在第二存储器中的位置。
根据一个实施例,对直接存取存储器控制器进行编程还可以包括生成用于生成传输分组的描述符表,描述符表指定(a)传输报头在第一存储器中的位置,(b)对应的应用数据分组在第二存储器中的位置,以及(c)存储传输分组在第一存储器中的位置。
在一个实施例中,对直接存储器存取控制器进行编程可以使加密电路:
加密应用数据分组,每个加密的应用数据分组能够独立于从相同应用数据创建的其他加密的应用数据分组被解密;以及
通过将加密的应用数据分组与对应的传输报头一起存储到第二存储器来生成传输分组。
在另一个实施例中,第二微控制器可以经由交叉开关通信耦合到第一存储器和第二存储器,其中第一微控制器经由交叉开关通信耦合到第一存储器,而不通信耦合到第二存储器。
根据本发明的一种系统包括无线微控制器和隔离微控制器。无线微控制器将由无线收发器接收的传输分组放置到无线存储器中的第一位置中。隔离微控制器从无线微控制器接收指定第一位置的第一消息,并对直接存储器存取(DMA)控制器进行编程,以解密传输分组中的加密的应用数据分组,并将解密的应用数据分组存储在共享存储器中的第二位置。共享存储器与无线存储器分离。当解密的应用数据分组在共享存储器中时,隔离微控制器向子系统处理器发送指示应用数据分组在共享存储器中可用的第二消息。
在一个实施例中,系统还可以包括交叉开关,其中交叉开关将隔离微控制器通信耦合到共享存储器和无线存储器,并且将无线控制器通信耦合到无线存储器而不耦合到共享存储器。
在另一个实施例中,系统可以另外包括DMA控制器和耦合到DMA控制器的内联加密引擎,该加密引擎用于当DMA控制器从无线存储器将加密的应用数据分组拉取到该加密引擎时,对加密的应用数据分组进行解密。
根据一个实施例,隔离控制器还被配置成向DMA控制器提供第一位置和第二位置,以便用从子系统处理器接收的第二位置对DMA控制器进行编程。
本公开的技术的一个或更多个示例的细节在附图和下面的描述中阐述。本技术的其他特征、目的和优点将从说明书和附图以及权利要求中显而易见。
附图简述
图1A是描绘根据本公开的方面的示例多设备人工现实系统的图示,该系统实现为无线通信提供改进的安全性和数据移动的无线通信系统。
图1B是描绘根据本公开的方面的另一示例多设备人工现实系统的图示,该系统实现为无线通信提供改进的安全性和数据移动的无线通信系统。
图2是描绘根据本公开的技术的被配置成提供用于无线通信的改进的安全性和数据移动的示例HMD的图示。
图3是示出根据本公开的技术的用于多设备人工现实系统的分布式架构的示例实现的框图,其中一个或更多个设备使用每个设备内的一个或更多个片上系统(SoC)集成电路来实现,并且具有无线通信系统。
图4是示出根据本公开的技术的无线通信系统的框图。
图5A-图5E是示出根据本公开中描述的技术的由隔离微控制器对应用数据的示例管理以经由无线收发器传输应用数据的框图。
图6是示出根据本公开中描述的技术的用于形成无线分组的数据结构和设备的示例的框图。
图7是根据本公开中描述的技术的经由无线收发器传输存储在共享存储器中的应用数据的示例方法的流程图。
图8是根据本公开中描述的技术的对将要经由无线收发器传输的应用数据执行内联加密的示例方法的流程图。
图9是根据本公开中描述的技术的将经由无线收发器接收的应用数据存储在共享存储器中的示例方法的流程图。
图10是根据本公开中描述的技术的对经由无线收发器接收的应用数据执行内联解密的示例方法的流程图。
在整个文本和附图中,相似的参考字符表示相似的元素。
详细描述
多设备系统有时包括内容保护或数字版权管理技术,诸如数据加密和解密,作为系统内设备间通信的一部分。在系统内发起加密通信的源设备可以根据各种标准化加密机制实现数字数据加密。接收用于处理简单中继以外的加密通信的目的地设备通常根据数据被加密所依据的相应标准中指定的逆步骤,执行关于加密机制的互逆(reciprocal)或“逆”步骤。
加密的设备间通信通常以分组的方式执行。分组的通信被打包为离散的数据单元(或“分组”),每个分组符合格式/结构。设备间加密数据流的分组在本文中被称为“加密分组(crypto packet)”。每个加密分组都符合一种格式,在这种格式中,加密的有效载荷被封装在“加密报头”中。关于多设备的人工现实系统的两个设备之间的对等(P2P)单播数据流描述了本公开的各种非限制性示例。
人工现实系统正变得越来越普遍,应用于许多领域,例如计算机游戏、健康和安全、工业领域和教育。作为几个示例,人工现实系统被合并到移动设备、游戏机、个人计算机、电影院和主题公园中。通常,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,并且可以包括虚拟现实(VR)、增强现实(VR)、混合现实(MR)、混杂现实或它们的某种组合和/或衍生物中的一个或更多个。
典型人工现实系统包括用于渲染和向用户显示内容的一个或更多个设备。作为一个示例,本公开的多设备人工现实系统可以包括由用户佩戴并被配置成向用户输出人工现实内容的头戴式设备(HMD),以及当与HMD配对时作为协同处理设备操作的外围设备。人工现实内容可包括完全生成的内容或与捕获内容(例如,真实世界视频和/或真实世界图像)组合的生成内容。外围设备和HMD可以各自包括一个或更多个SoC集成电路(本文中简单地称为“SoC”),这些SoC被共同配置成提供人工现实应用执行环境。
因为HMD和外围设备彼此传送安全数据(例如,认证数据),所以HMD和外围设备的相应SoC以加密分组的形式彼此发送数据。为了进一步增强发送加密分组时的安全性,HMD可以包括无线通信系统,该无线通信系统可以在隔离微控制器和无线微控制器之间对数据移动和无线收发器控制进行分叉,这可以通过减少并且在某些情况下消除引擎和隔离微控制器对由无线收发器接收并存储到无线存储器的畸形分组的漏洞来提高无线通信系统的安全性。
图1A是描绘多设备人工现实系统100的图示,该多设备人工现实系统100的部件被配置成为无线通信提供改进的安全性和数据移动。如下面进一步描述的,HMD 102可以包括无线通信系统,该无线通信系统具有多个微控制器,以管理存储将要被无线传输的应用数据的共享存储器与一个或更多个无线收发器之间的数据传输,该一个或更多个无线收发器存储用于无线接收和传输操作的分组报头、描述符和加密的有效载荷。
多设备人工现实系统100包括头戴式设备(HMD)102和外围设备104。如图所示,HMD102通常由用户106佩戴,并且包括用于向用户106呈现人工现实内容108的电子显示器和光学组件。另外,HMD 102包括用于跟踪HMD 102的运动的一个或更多个传感器(例如,加速度计)。HMD 102可以包括一个或更多个图像捕获设备110,例如相机、线扫描仪、眼底摄影(fundal photography)硬件等。图像捕获设备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可以包括有线网络和/或无线网络,诸如局域网(LAN)、广域网(WAN)、基于Wi-FiTM的网络或5G网络、
Figure BDA0003636989840000091
网络、网状网络、短程无线(例如,
Figure BDA0003636989840000092
)通信介质和/或各种其他计算机互连基础设施和标准。网络112可以支持各种级别的网络接入,例如接入到公共网络(例如,因特网),接入到专用网络(例如,如可以由教育机构、企业、政府机构等实现的网络)或者使用公共网络的基础设施实现的专用网络(例如,通过因特网隧道传输的虚拟专用网络或“VPN”)。
图1A还示出了可包括在多设备人工现实系统100中或经由网络112耦合到多设备人工现实系统100的各种可选设备。这些设备的可选性在图1A中通过虚线边框的方式示出。图1A中所示的可选设备的一个示例是控制台114。在包括控制台114的实现中,控制台114可与外围设备104通信(并由此间接地与HMD 102通信)以处理HMD 102输出到用户106的人工现实内容。图1A中示出的可选硬件的另一个示例由外部传感器116表示。多设备人工现实系统100可以使用外部传感器116和/或外部相机硬件来捕获用户8所处的真实世界物理环境内的三维(3D)信息。
通常,多设备人工现实系统100使用从真实世界、3D物理环境捕获的信息来渲染人工现实内容108以显示给用户106。在图1A的示例中,用户106观看由在HMD 102和外围设备104的组合上执行的人工现实应用构建和渲染的人工现实内容108。在一些示例中,人工现实内容108可以包括真实世界影像(imagery)(例如,以外围设备表示104'形式的外围设备104、用户106当前所处的物理环境中的墙的表示、用户106握持外围设备104的手的表示等)与虚拟对象(例如,虚拟内容项118A和118B、虚拟用户界面120等)覆盖的组合,以产生经由HMD 102的显示硬件显示给用户106的增强现实体验或混合现实体验。
在一些示例中,虚拟内容项118A和118B(统称为虚拟内容项118)可以映射到人工现实内容108内的特定位置。作为示例,虚拟内容项118可以被钉扎(pinned)、锁定或放置到/在人工现实内容108内的一个或更多个特定位置。作为示例,虚拟内容项的位置可以相对于人工现实内容108中再现的真实世界影像的墙之一或相对于地表固定。作为非限制性示例,虚拟内容项的位置可以相对于外围设备表示104’或用户106的跟踪凝视或视场(FoV)是可变的。在一些示例中,虚拟内容项在人工现实内容108中的特定位置与用户106当前所处的真实世界物理环境中的位置相关联(例如,在物理对象的表面上)。
在该示例中,外围设备104是具有表面的物理真实世界设备,在多设备人工现实系统100的计算平台上执行的人工现实应用在该表面上覆盖虚拟用户界面120。外围设备104可以包括一个或更多个存在敏感(presence-sensitive)表面,用于通过检测触摸或悬停在存在敏感表面的位置上的一个或更多个对象(例如,手指、触笔)的存在来检测用户输入。在一些示例中,外围设备104可以包括一个或更多个输出设备,诸如集成到存在敏感表面以形成外围设备104的输入/输出(I/O)部件的显示器。
在一些示例中,外围设备104可以具有各种便携式设备(诸如智能手机、平板计算机、个人数字助理(PDA)或其他手持设备)的形状因子。在其他示例中,外围设备104可以具有各种可佩戴设备(诸如所谓的“智能手表”、“智能环(smart ring)”或其他可佩戴设备)的形状因子。在一些示例中,外围设备104可以是信息亭(kiosk)或其他固定或移动系统的一部分。尽管在上面被描述为集成显示硬件,但外围设备不必在所有实现中包括显示硬件。
在图1A中示出的示例人工现实体验中,虚拟内容项118被映射到用户106所处的真实世界物理环境的墙的可视表示上的位置。图1A的示例还示出了虚拟内容项118仅在人工现实内容108内部分地出现在墙的可视表示上,说明了该虚拟内容项118不表示存在于用户106所处的真实世界物理环境中的任何项。虚拟用户界面120被映射到如外围设备表示104’所表示的外围设备104的表面。多设备人工现实系统100在相对于外围设备104的特定表面的位置被锁定的用户界面位置处,渲染虚拟用户界面120以经由HMD 102显示,作为人工现实内容108的一部分。
图1A示出了虚拟用户界面120看起来覆盖在外围设备表示104’上(并且因此仅在人工现实内容108内),说明了在虚拟用户界面120中表示的虚拟内容不存在于用户所处的真实世界物理环境中。多设备人工现实系统100可以响应于确定虚拟内容项的位置的至少一部分在用户106的FoV中来渲染一个或更多个虚拟内容项。例如,仅当外围设备104在用户106的FoV内时,多设备人工现实系统100才可以在外围设备104上渲染虚拟用户界面120。
多设备人工现实系统100的各种设备可以在人工现实环境中联合操作,使得每个设备可以是一个或更多个物理设备内的单独的物理电子设备和/或单独的集成电路。在该示例中,外围设备104在操作上与HMD 102配对,以联合操作,从而提供人工现实体验。例如,外围设备104和HMD 102可以作为协同处理设备彼此通信。作为一个示例,当用户在虚拟环境中在与覆盖在外围设备表示104’上的虚拟用户界面120的虚拟用户界面元素之一相对应的位置处执行用户界面触发手势时,多设备人工现实系统100检测用户界面并执行经由HMD102渲染和显示的动作。
外围设备104和HMD 102中的每一个可以包括被配置成支持上述人工现实应用的各方面的一个或更多个SoC集成电路,诸如作为协同应用处理器、加密引擎、解密引擎、传感器聚合器、显示控制器等操作的SoC。尽管外围设备104和HMD 102中的每一个可以包括多个SoC,但图1A仅示出了HMD 102的HMD SoC 122和外围设备104的外围SoC 124,以便于说明和讨论。为了维护安全性和数字版权,HMD SoC 122和外围SoC 124被配置成使用加密的数据流彼此通信,诸如通过在使用HMD 102的HMD SoC 122和外围SoC 124的相应外围部件接口(PCI)扩展(PCIe)总线形成的无线链路上发送加密分组流。仅作为一个示例,HMD SoC 122可加密用户106的面部图像、视网膜扫描、虹膜扫描等(例如,如由图像捕获设备110的面向内的相机硬件和/或眼底摄影硬件捕获的),并将加密数据发送到外围SoC 124,用于认证目的,以及可选地也用于其他目的。在该示例中,外围SoC 124可解密从HMD SoC 122接收的加密数据,并使用面部识别技术、视网膜血管模式识别技术等处理解密的数据,以向用户106授予/拒绝生物认证。
作为非限制性示例,本文将HMD SoC 122和外围SoC 124描述为执行符合由美国国家标准和技术研究所(NIST)建立的高级加密标准(AES)中描述的标准化加密和解密机制的加密和解密操作。应当理解,在其他示例中,HMD SoC 122和外围SoC 124可以实现本公开的基于流量约束的增强,同时符合其他密码标准,诸如SM4(以前的SMS4,在中国无线LAN WAPI国家标准中阐述的分组密码标准)、Camellia(由日本三菱电机和NTT公司开发)等。
如本文所述,HMD 102可包括无线通信系统,当从HMD SoC 122向外围SoC 124发送或接收加密分组时,该无线通信系统改进了加密和解密操作的性能。
在该示例中,HMD SoC 122和外围SoC 124中的每一个包括多个子系统,每个子系统专门用于支持特定功能,诸如用于人工现实体验的音频处理、用于人工现实体验的移动图片处理、用于用户106或其他的安全性信息等。另外,HMD SoC 122和外围SoC 124实现存储用于该特定SoC的所有相应子系统的数据的共享存储器(SMEM)。关于SMEM访问,HMD SoC122的各个子系统被配置成相互不信任,并且外围SoC 124的各个子系统被配置成相互不信任。因此,HMD SoC 122和外围SoC 124中的每一个被配置成将对它们各自的SMEM单元的离散地址空间的访问限制到特定的单个子系统。
在该示例中,HMD 102可包括无线通信系统,该无线通信系统包括第一微控制器(“无线微控制器”),该第一微控制器管理用于HMD 102的无线收发器的驱动器并协调与无线收发器相关联的I/O端口和第一物理存储器(“无线存储器”)之间的数据移动。无线存储器可以存储用于无线接收和传输操作的分组报头、描述符和加密的有效载荷。外围设备104可以包括类似的无线通信系统。HMD 102和外围设备104的无线通信系统促进HMD 102和外围设备104之间的无线通信。更具体地,HMD SoC 122可包括HMD 102的无线通信系统,且外围SoC 124可包括外围设备104的无线通信系统。
在一些示例中,无线通信系统包括与无线通信系统的其他引擎通信的第二微控制器(“隔离微控制器”,未在图1A中示出),该其他引擎生成被该其他引擎存储到共享存储器中的要被无线传输的应用数据。共享存储器可以与无线存储器物理隔离,例如是不同的存储器设备。隔离微控制器从应用数据创建分组和对应的分组报头,隔离微控制器协调共享存储器和无线存储器之间的数据移动。以这种方式,隔离微控制器介导微控制器或处理接收到的无线分组的其它处理电路对共享存储器的访问。
在一些情况下,无线微控制器执行用于无线收发器的一个或更多个驱动器的完整集合,但是隔离微控制器可以执行更有限的代码来协调数据移动和管理分组化。此外,无线微控制器仅可以访问无线存储器。由于畸形分组可能被用来利用由无线微控制器执行的驱动器的漏洞,在隔离微控制器和无线微控制器之间对数据移动和无线收发器控制进行分叉可以通过减少并且在某些情况下消除引擎和隔离微控制器对由无线收发器接收并存储到无线存储器的畸形分组的漏洞来提高无线通信系统的安全性。
在一些情况下,无线通信系统包括内联加密/解密引擎(在图1A中未示出),用于在共享存储器和无线收发器之间由隔离微控制器管理的数据路径上加密和解密分组。例如,隔离微控制器在无线存储器中为将从应用数据形成的分组创建加密报头,该应用数据由包括无线通信系统的设备的其他引擎生成。隔离微控制器可以对直接存储器存取(DMA)控制器进行编程,以将来自共享存储器的分组连同来自无线存储器的对应分组报头引导到加密/解密引擎,加密/解密引擎生成加密的分组,被编程的DMA控制器将该加密的分组写入无线存储器。也就是说,隔离微控制器与生成用于无线传输的应用数据的内部引擎通信,从共享存储器中的应用数据创建报头和分组,并使用DMA控制器协调共享存储器和无线存储器之间的数据移动。隔离微控制器还管理用于由无线通信系统接收的加密的分组的数据路径,以确保由加密/解密引擎进行内联解密。执行用于无线收发器的驱动器的无线微控制器向隔离微控制器发送信号,指示新接收的加密分组。作为响应,隔离微控制器可以对DMA控制器进行编程,以将从无线存储器接收的加密分组引导到加密/解密引擎,该加密/解密引擎从加密的分组中解密具有报头的分组,并且编程的DMA控制器将分组数据写入在共享存储器中分配的应用有效载荷目的地存储器。以这种方式,应用有效载荷以与应用有效载荷在发送方设备的共享存储器中的映像相同的方式存储到目的地设备的共享存储器中。
在某些情况下,用于无线通信系统的加密/解密引擎对由该引擎加密的每个分组递增加密分组计数器。然后在报头中与分组一起传输该分组计数器值。在接收器侧,对应的加密/解密引擎从报头中读取分组计数器,并使用nonce的本地副本和接收的分组计数器初始化本地解密。以这种方式,每个分组可以单独解密,并且分组的丢失对未来或过去的分组没有影响。
图1B是描绘根据本公开中描述的技术的另一示例多设备人工现实系统20的图示,该系统包括为无线通信提供改进的安全性和数据移动的无线通信系统。类似于图1A的多设备人工现实系统10,HMD SoC 2可以包括无线通信系统,该无线通信系统具有多个微控制器,以管理存储将要被无线传输的应用数据的共享存储器与存储用于无线接收和传输操作的分组报头、描述符和加密的有效载荷的一个或更多个无线收发器之间的数据传输。
在图1B的示例中,多设备人工现实系统126包括外部相机128A和128B(统称为“外部相机28”)、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 102实现相应的面向用户的人工现实平台(或与协同处理设备共同实现该平台,如在HMD 102A与外围设备104的情况中那样),并且输出相应的人工内容,尽管在图1B中仅示出了由HMD 102A输出的人工现实内容108,但这纯粹是为了便于说明。如图1B所示,两个或更多个HMD 102可以但不必须符合相同的形状因子。在图1B中示出了HMD 102的各种形状因子,包括护目镜形状因子和眼镜形状因子。在一些用例场景中,HMD 102B和/或HMD 102C还可以配对到(例如,无线耦合或系留到)便携式设备,该便携式设备实现与关于外围设备104描述的特征大致对应的特征。
类似于图1A中描述的示例,HMD 102C(或HMD 102中的任何一个)可以包括无线通信系统,当从HMD SoC 122向外围SoC 124发送或接收加密分组时,该无线通信系统改进了加密和解密操作的性能。
在该示例中,HMD SoC 122和外围SoC 124中的每一个包括多个子系统,每个子系统专门用于支持特定功能,诸如用于人工现实体验的音频处理、用于人工现实体验的移动图片处理、用于用户106或其他的安全性信息等。另外,HMD SoC 122和外围SoC 124实现存储用于该特定SoC的相应子系统的数据的共享存储器(SMEM)。关于SMEM访问,HMD SoC 122的各个子系统被配置成相互不信任,并且外围SoC 124的各个子系统被配置成相互不信任。因此,HMD SoC 122和外围SoC 124中的每一个被配置成将对它们各自的SMEM单元的离散地址空间的访问限制到特定的单个子系统。
在该示例中,HMD 102C可以包括如本文别处所述的无线通信系统。此外,外围设备104可以包括如本文别处所述的无线通信系统。更具体地,HMD SoC 122可以包括HMD 102的无线通信系统,且外围SoC 124可以包括外围设备104的无线通信系统。
图2是描绘根据本公开的数据通信方面的与外围设备104通信的HMD 102的示例的图示。图2的HMD 102可以是图1A和图1B的任何HMD 102的示例。在一些示例中,HMD 102和外围设备104可以是人工现实系统的一部分,该人工现实系统包括了诸如在图1A和图1B中示出的人工现实系统100和126的示例中的其他设备和网络中介。在其他示例中,HMD 102和外围设备104可以作为被配置成实现本文所述的抗DMA数据通信技术的串联移动人工现实系统操作。
在该示例中,HMD 102包括前刚性主体和两个杆,以将HMD 102固定到用户106,例如通过搁在用户106的耳朵上。此外,HMD 102包括面向内部的电子显示器200,该电子显示器被配置成向用户106呈现人工现实内容。电子显示器200可以包括、可以是任何合适的显示技术,诸如液晶显示器(LCD)、量子点显示器、点阵显示器、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、阴极射线管(CRT)显示器、电子墨水、或单色、彩色或能够生成视觉输出的任何其他类型的显示器,或者可以是任何合适的显示技术的一部分。在一些示例中,电子显示器200包括用于向用户106的每只眼睛提供单独图像的立体显示器。在一些示例中,当跟踪HMD 102的位置和取向以用于根据HMD 102和用户106的当前观看视角渲染人工现实内容时,显示器200相对于HMD 102的前刚性主体的已知取向和位置被用作参考系,也被称为局部原点(local origin)。
在图2的示例中,HMD 102采用眼镜的形状因子。在一些示例中,电子显示器200可以被分成多个段(诸如分成两个段),每个段对应于设置在HMD 102的前刚性主体上的单独镜片。在根据图2的其他示例中,电子显示器200可以形成跨越HMD 102的前刚性主体的镜片和镜片连接梁架(bridge)(即,鼻上部分)的连续表面。在根据图2所示的形状因子的一些示例中,电子显示器200还可以包括HMD 102的将前刚性主体的镜片连接到杆的部分,或者可选地,包括杆本身的部分。在图2所示的HMD 102的形状因子的情况下,电子显示器200的这些不同设计改善了针对具有不同视觉能力、眼动特性等的用户的可访问性。在其他示例中,HMD 102可以采用其他形状因子,诸如配备有带以将HMD 102固定到用户106头部的头戴式装置或护目镜的一般形状因子。
在图2所示的示例中,HMD 102还包括一个或更多个运动传感器202,诸如输出指示HMD 102的当前加速度的数据的一个或更多个加速度计(也称为惯性测量单元或“IMU”)、输出指示HMD 102的位置的数据的GPS传感器、输出指示HMD 102与各种对象相距的距离的数据的雷达或声纳、或提供HMD 102或物理环境内的其他对象的位置或取向的指示的其他传感器。在图2所示的示例中,HMD 102包括集成的图像捕获设备110A和110B(统称为“图像捕获设备110”)。图像捕获设备110可以包括静止图像相机硬件、视频相机硬件、激光扫描仪、
Figure BDA0003636989840000171
雷达扫描仪、眼底摄影硬件、红外成像相机、深度扫描仪等。图像捕获设备110可以包括面向外和/或面向内的图像捕获硬件,并且包括被配置成捕获表示周围物理环境的图像数据以及可选地对捕获的图像数据进行预处理和/或后处理的任何硬件。图像捕获设备14的面向外的相机硬件可以捕获HMD 102外部的物理环境(诸如但不限于用户106所处的真实世界环境)的图像数据。图像捕获设备14的面向内的相机硬件可以捕获HMD 102的佩戴者的图像数据,诸如用户106的面部图像和/或视网膜扫描和/或温度信息。
同样,在图2的示例中,HMD 102与示例外围设备104通信。外围设备104可以以多种方式(诸如通过无线通信链路(例如,Wi-FiTM、诸如
Figure BDA0003636989840000181
的短程无线通信的近场通信等)或有线通信链路或系留连接,或其任何组合)通信耦合到HMD 102。外围设备104可以通过网络112接收和发送数据,因此可以用作人工现实系统的网络接口,该人工现实系统包括外围设备104与HMD 102的组合,或者由外围设备104与HMD 102的组合形成。外围设备104的表面204表示外围设备104的输入部件或组合的输入/输出部件。表面204可以包括感测能力,诸如触摸屏(例如,电容式触摸屏、电阻式触摸屏、表面声波(SAW)触摸屏、红外触摸屏、光学成像触摸屏、声学脉冲识别触摸屏或任何其他触摸屏)、触摸板、按钮、轨迹球、滚轮或使用电容、导电、电阻、声学或其他技术来检测触摸和/或悬停输入的其他存在敏感硬件的感测能力。
表面204可使外围设备6能够在不直接接触表面204的情况下接收触摸输入或手势输入。用户106可以向外围设备104提供这些触摸或手势输入,以直接向外围设备104提供指令,或者间接向HMD 102和/或其中部署了HMD 102的人工现实系统的其他部件提供指令。在一些示例中,HMD102的处理电路可以利用图像捕获设备110来分析外围设备104的构形、位置、移动和/或取向,以及用户106的手或手指的构形、位置、移动和/或取向,以使得能够使用诸如经由图形键盘提供的绘图手势或键入手势的手势来提供输入。
以这种方式,外围设备104可以从HMD 102卸下各种硬件和资源负担,这能够实现HMD 102的低轮廓(low-profile)形状因子设计。外围设备104还经由网络112充当HMD 102和远程位置处的设备之间的通信中介。外围设备104的附加细节在美国专利申请第16/506,618号(于2019年7月9日提交)中描述,该美国专利申请的全部内容通过引用并入本文。HMD102包括HMD SoC 122,且外围设备104包括外围SoC 124。HMD SoC 122和外围SoC 124通过HMD 102和外围设备104之间的通信连接进行通信耦合。本公开的其余部分将HMD SoC 122和外围SoC 124之间的通信描述为通过HMD 102和外围设备104之间的无线链路进行,尽管应该理解HMD 102和外围设备104也可以经由其他类型的通信连接耦合。
图3是示出多设备人工现实系统100或126的一部分的分布式架构的更详细示例实现的框图,其中使用每个设备内相应的SoC集成电路来实现两个或更多个设备。图3示出了其中HMD 102与外围设备104联合操作的示例。同样,外围设备104表示具有表面的物理真实世界设备,多设备人工现实系统100或126在该表面上覆盖虚拟内容。外围设备104可以包括一个或更多个存在敏感表面204,用于通过检测触摸或悬停在存在敏感表面204的位置上方的一个或更多个对象(例如,手指、触笔等)的存在来检测用户输入。在一些示例中,外围设备104可以具有类似于智能手机、平板计算机、个人数字助理(PDA)或其他手持设备中的任一个的形状因子。在其他示例中,外围设备104可以具有智能手表、所谓的“智能环”或其他可佩戴设备的形状因子。外围设备104也可以是信息亭或其他固定或移动系统的一部分。存在敏感表面204可以包括输出部件,诸如用于将视觉内容输出到屏幕的显示设备。如上所述,HMD 102被架构并被配置成使得能够执行人工现实应用。
一般来说,图3所示的SoC代表以分布式架构排列的专用集成电路的集合,其中每个SoC集成电路包括被配置成提供人工现实应用的操作环境的各种专用功能块。图3仅仅是SoC集成电路的一个示例布置。多设备人工现实系统的分布式架构可以包括SoC集成电路的任何集合和/或布置。
在该示例中,HMD 102的SoC 300A包括功能块,该功能块包括跟踪子系统304和各种其他子系统306A-306C。子系统304和子系统306A-306C是向SoC 300A提供一个或更多个定义功能的集成电路组。SoC 300A可以是HMD SoC 122的示例实例。在一些示例中,子系统304和子系统306A-306C被配置成使得子系统内的集成电路可以例如被一起通电和断电。另外,在一些示例中,子系统304和子系统306A-306C可以各自通过数据总线(有时称为“片上网络”或“NoC”)通信耦合到共享存储器(SMEM)308。在一些示例中,子系统304和子系统306A-306C可以使用处理器间通信(IPC)(例如,基于邮箱的IPC等)进行通信。
在所示示例中,跟踪子系统304提供用于眼睛跟踪310、手跟踪312、深度跟踪314和/或同时定位和映射(SLAM)316的功能块。例如,HMD 102可以接收来自输出指示HMD 102当前加速度的数据的一个或更多个加速度计(也称为惯性测量单元或“IMU”)、输出指示HMD102位置的数据的GPS传感器、输出指示HMD 102与各种对象的距离的数据的雷达或声纳或提供HMD 102或物理环境内其他对象的位置或取向的指示的其他传感器的输入。HMD 102还可以从一个或更多个图像捕获设备110接收图像数据。图像捕获设备110可以包括摄像机、激光扫描仪、多普勒雷达扫描仪、深度扫描仪等,其被配置成输出表示物理环境的图像数据。更具体地,图像捕获设备捕获表示在图像捕获设备的视场内的物理环境中的对象(包括外围设备104和/或手)的图像数据,图像捕获设备的视场通常对应于HMD 102的观看视角。基于感测到的数据和/或图像数据,跟踪子系统304确定例如HMD 102的参考系的当前姿势,并且根据当前姿势,渲染人工现实内容。
子系统306A-306C为HMD 102提供专用功能。子系统306A-306C可以包括例如安全处理、图形处理、界面处理、音频处理和/或显示处理等。安全处理子系统可以提供当外围设备104与在AR环境内联合使用的设备(例如,HMD 102)配对时的安全设备证明(attestation)和相互认证。例如,安全处理子系统可以认证外围设备104的一个或更多个SoC。图形处理子系统可包括各种处理器,诸如视频处理单元、图形处理单元、数字信号处理器、编码器和/或解码器等,以处理从外围设备104接收的表面和纹理数据。例如,界面处理子系统可以处理由跟踪子系统304和/或图像捕获设备104生成的信号,以提供手势识别,从而向用户106提供基于手势的界面。例如,音频处理子系统可以包括编解码器(codecs)和/或驱动器,以处理声音并将声音输出到包括在HMD 102中的音频输出设备。例如,显示处理子系统可以提供用于在HMD 102的SoC之间传送纹理和表面数据的界面。当子系统304和子系统306A-306C具有要传输到外围设备104的数据时,子系统304和子系统306A-306C可以(a)创建具有应用报头的应用有效载荷,以使目的地能够解包(unpack)和使用该有效载荷,(b)将具有应用报头的应用有效载荷放置在共享存储器308中,以及(c)向无线通信系统318A发信号表示具有应用报头的应用有效载荷准备好要进行传输。
SoC 300A包括无线通信系统318A。无线通信系统318A负责连接和管理系统外部的界面。无线通信系统318A使用软件信道的概念提供外围接口和其他子系统之间的抽象。一旦建立了信道,该信道上的任何消息/有效载荷就由无线通信系统318A以最小开销传递到另一设备(例如,外围设备104)的对应无线通信系统(例如,无线通信系统318B)。如下面在图4和图5A-图5E中所述,无线通信系统318A经由无线通信单元320A发送和接收数据。无线通信系统318A协调与无线通信单元320A的无线收发器相关联的I/O端口和SMEM 308之间的数据移动。具体地,无线通信系统318A使以下动作在不同处理器之间分离:(i)协调SMEM308和内部无线存储器(WMEM)322之间的数据,和(ii)驱动无线通信单元320A协调与无线收发器相关联的I/O端口和WMEM 322之间的数据。另外地或可替代地,无线通信系统318A在数据进入WMEM之前以这样的方式对来自SMEM 308的数据进行加密,使得每个数据分组可以在其目的地被单独验证,以确定该分组是否被篡改。这些技术无论是单独使用还是组合使用,都降低了无线通信单元320A的驱动器能够损坏SMEM 308中的数据的可能性。
SoC 300B和SoC 300C(有时称为“显示器SoC”)各自表示用于在相应显示器(例如显示器324A和324B(统称为“显示器324”))上输出人工现实内容的显示控制器。在该示例中,显示器SoC 300B可以包括用于显示器324A的显示控制器326A,以向用户(例如,图1A和图1B的用户106)的左眼328A输出人工现实内容。例如,显示器SoC 300B包括解密块328A、解码器块330A和/或用于在显示器324A上输出人工现实内容的像素驱动器332A。类似地,显示器SoC 300C可以包括用于显示器324B的显示控制器326B,以向用户的右眼328B输出人工现实内容。例如,显示器SoC 300C包括解密块328B、解码器块330B和/或像素驱动器332B,用于生成和在显示器324B上输出人工现实内容。显示器324可以包括发光二极管(LED)显示器、有机LED(OLED)、量子点LED(QLED)、电子纸(电子墨水)显示器、液晶显示器(LCD)或用于显示AR内容的其他类型的显示器。
外围设备104包括被配置成支持人工现实应用的SoC 334A和334B。在该示例中,SoC 334A包括功能块,该功能块包括跟踪子系统336和各种其他子系统338A-338C。子系统336和子系统338A-338C是向SoC 334A提供一个或更多个定义功能的集成电路组。SoC 334A可以是外围SoC 124的示例实例。在一些示例中,子系统336和子系统338A-338C被配置成使得子系统内的集成电路可以例如被一起通电和断电。另外,在一些示例中,子系统336和子系统338A-338C可以各自通过数据库(有时称为“片上网络”或“NoC”)通信耦合到共享存储器(SMEM)340。在一些示例中,子系统336和子系统338A-338C可以使用处理器间通信(IPC)(例如,基于邮箱的IPC等)进行通信。
跟踪子系统336是提供眼睛跟踪342、手跟踪344、深度跟踪346和/或同时定位和映射(SLAM)348的功能块。例如,外围设备136可以从输出指示外围设备104的当前加速度的数据的一个或更多个加速度计(也称为惯性测量单元或“IMU”)、输出指示外围设备104的位置的数据的GPS传感器、输出指示外围设备104与各种对象的距离的数据的雷达或声纳、或者提供外围设备104或物理环境内的其他对象的位置或取向的指示的其他传感器接收输入。在一些示例中,外围设备104还可以从一个或更多个图像捕获设备接收图像数据,该图像捕获设备例如是摄像机、激光扫描仪、多普勒雷达扫描仪、深度扫描仪等,其被配置成输出表示物理环境的图像数据。基于所感测的数据和/或图像数据,跟踪子系统336确定例如外围设备104的参考系的当前姿势,并且根据当前姿势,将人工现实内容渲染到HMD 102。
子系统338A-338C为外围设备104提供专用功能。子系统338A-338C可以包括例如安全处理子系统、显示子系统、图形子系统和/或音频子系统。安全处理子系统可以认证HMD102的一个或更多个SoC。图形处理子系统可包括各种处理器,诸如视频处理单元、图形处理单元、数字信号处理器、编码器和/或解码器等,以处理从SoC 334B接收到的表面和纹理数据。例如,界面处理子系统可以处理由跟踪子系统336生成的信号和/或用户106的界面204至界面120。例如,音频处理子系统可以包括数字信号处理器、编码器和/或解码器等,以处理传输到HMD 102的声音。例如,显示处理子系统可以提供用于在外围设备104的SoC之间传送纹理和表面数据的界面。当子系统336和子系统338A-338C具有要传输到HMD 102的数据时,子系统336和子系统338A-338C可以(a)创建具有应用报头的应用有效载荷,以使目的地能够解包和使用该有效载荷,(b)将具有应用报头的应用有效载荷放置在共享存储器340中,以及(c)向无线通信系统318B发信号表示具有应用报头的应用有效载荷已准备好要进行传输。
SoC 334A包括无线通信系统318B。如下面在图4和图5A-图5E中所述,无线通信系统318B经由无线通信单元320B发送和接收数据。无线通信系统318B协调与无线通信单元320B的无线收发器相关联的I/O端口和SMEM 340之间的数据移动。具体地,无线通信系统318A使以下动作在不同处理器之间分离:(i)协调SMEM 340和内部无线存储器(WMEM)350之间的数据,以及(ii)驱动无线通信单元320B协调与无线收发器相关联的I/O端口和WMEM350之间的数据。另外地或可替代地,无线通信系统318B在数据进入WMEM 350之前以这样方式对来自SMEM 340的数据进行加密,使得每个数据分组可以在其目的地被单独验证,以确定分组是否被篡改。这些技术无论是单独使用还是组合使用,都降低了无线通信单元320B的驱动器可损坏SMEM 340中的数据的可能性。
SoC 334B包括一个或更多个应用协同处理器352和一个或更多个应用处理器354。在该示例中,协同应用处理器352包括各种处理器,例如视觉处理单元(VPU)、图形处理单元(GPU)和/或中央处理单元(CPU)。应用处理器354可以包括处理单元,用于执行一个或更多个人工现实应用,以生成例如虚拟用户界面并将其渲染到外围设备104的表面和/或检测用户相对于外围设备104执行的手势。
图4是示出根据本公开的技术的无线通信系统400的框图。无线通信系统400可以是图3的无线通信系统318A和318B的示例。无线通信系统400经由共享存储器片上网络(NoC)404通信耦合到共享存储器(SMEM)402。共享存储器402可以是图3的共享存储器308和340的示例。一个或更多个子系统406经由共享存储器NoC 404通信耦合到共享存储器402。另外,一个或更多个子系统406经由系统NoC 408通信耦合到无线通信系统400。共享存储器NoC 404和系统NoC 5408可以支持总线协议,该总线协议包括高级可扩展接口(AXI)、高级外围总线(APB)、开放核心协议(OCP)和TileLink(TL)。子系统406可以是图3的子系统306A-306C和子系统338A-338C的示例。
在图4的示例中,无线通信系统400包括无线微控制器(WMCU)410、隔离微控制器(IMCU)412、直接存储器存取(DMA)控制器414、加密引擎416、无线存储器(WMEM)418、一个或更多个无线数据总线接口420B和420B,以及在一些示例中,包括交换结构(switch fabric)422(有时称为“交叉开关”)。在一些示例中,无线通信系统400可以包括在例如无线通信单元320A和320B不可用时可以使用的有线数据总线。
无线微控制器410管理连接到无线数据总线接口420A和420B的无线通信单元320A和320B的驱动器(例如,无线基带驱动器)或无线收发器。如下所述,无线微控制器410协调与无线收发器相关联的I/O端口和无线存储器416之间的数据移动。例如,无线微控制器410可以生成用于无线数据总线接口420A和420B的描述符表,并将指向无线存储器506中的表的指针发送到无线数据总线接口420A和420B。无线微控制器410可以对无线存储器416进行访问,但不能对共享存储器402进行访问。无线微控制器410与共享存储器402隔离,使得无线微控制器410不能直接访问共享存储器402(例如,不能从共享存储器402检索数据)。
隔离微控制器412提供无线微控制器412与共享存储器402之间的隔离。隔离微控制器412与生成将要被无线传输的应用数据的子系统406通信,该应用数据由其他子系统406存储到共享存储器402。隔离微控制器412可以从应用接收消息(例如,进程间通信(IPC)消息),该消息包括例如源-目的地id和指向应用有效载荷和报头(统称为“应用数据”)的指针。隔离微控制器412基于传输分组大小确定应用有效载荷可以被拆分成的分组的数量。隔离微控制器412定义来自应用数据的分组的边界。例如,隔离微控制器412可创建对应于共享存储器402中每个分组的起始位置的起始地址列表。隔离微控制器412然后创建对应的分组报头(有时称为“传输报头”)以存储在无线存储器418中。传输报头包括应用数据和分组的参数(例如,128位块中分组的长度、分组号等)以及空加密块。如下所述,隔离微控制器412协调共享存储器402和无线存储器418之间的数据移动。隔离处理器412对DMA控制器414进行编程,以创建分组(有时称为“传输分组”),以存储在无线存储器418中,以由无线通信单元320A和320B经由无线数据总线接口420A和420B传输。
无线通信系统400可以包括用于无线微控制器410和隔离微控制器412之间的IPC的门铃寄存器(doorbell register)。例如,当入口(ingress)分组(例如,从无线数据库接口420A和420B接收的分组)存储在无线存储器418中时,无线微控制器412可以将数据写入门铃寄存器以通知隔离微控制器410无线存储器506中的数据可用于处理。作为另一示例,然后将传输分组存储在无线存储器418中,隔离微控制器412可将数据写入门铃寄存器以通知无线微控制器410传输分组已准备好要进行传输。通过写入门铃寄存器,触发目标处理器的中断,以指示数据可供处理。
以这种方式,隔离微控制器412介导微控制器或处理接收到的无线分组的其它处理电路对共享存储器的访问。在一些情况下,无线微控制器410执行用于无线收发器的一个或更多个驱动器的完整集合,但是隔离微控制器412可以执行更有限的代码来协调数据移动和管理分组化。
为了对DMA控制器414进行编程,隔离微控制器412提供共享存储器402中的分组的地址和部分填充的传输报头在无线存储器416中的地址。DMA控制器414从无线存储器506拉取(pull)部分填充的传输报头,并从共享存储器402拉取实际应用数据分组,以组合并存储在无线存储器418中。当数据从共享存储器402遍历到无线存储器418时,加密引擎416对数据进行内联加密。加密引擎416通过在空加密块中插入初始向量(有时称为“加密向量”)来修改部分填充的传输报头,以便于接收引擎解密分组。在一些示例中,加密引擎416是多上下文加密/解密引擎。在一些这样的示例中,加密引擎416是具有八个可选择密钥和用于选择密钥和加密模式的内联报头解析器的展开的AES-128加密引擎。加密引擎416是呈现给交换结构422的DMA主信道的扩展。从数据流的观点来看,加密引擎416在数据通过引擎时对数据进行加密的同时向DMA等待时间增加几个时钟周期。
无线存储器418可以与无线共享存储器402物理隔离,例如是不同的存储器设备。无线存储器506可以包括SRAM或具有数据接口和功率门限(power-gate)和深度休眠功率支持的其他类型的存储器。
无线数据总线接口420A和420B可以包括外围部件互连扩展(PCIe)插槽。无线数据总线接口420A和420B可以基于由无线微控制器410生成的描述符表从无线存储器418拉取传输分组。
在所示示例中,交换结构422通信耦合无线通信系统400的部件。交换结构422包括布置在例如矩阵配置中的开关阵列。到交换结构422的输入可以通过使连接输入和输出的配置中开关闭合而连接到输出。隔离微控制器412经由交叉开关422通信耦合到共享存储器402和无线存储器418。无线微控制器410经由交叉开关422通信耦合到无线存储器418,并且不通信耦合到共享存储器402(例如,无线微控制器422与共享存储器402隔离)。也就是说,在一些示例中,交换结构422被配置成不在无线微控制器422和共享存储器402之间创建数据路径。
图5A-图5E是示出根据本公开的技术的由隔离微控制器412对应用数据的示例管理以经由无线收发器传输应用数据500的框图。在图5A中,子系统406将应用数据500(例如,应用有效载荷和应用报头)放置到共享存储器402中。子系统406(例如,经由IPC门铃寄存器)向隔离微处理器412发信号表示将要传输的应用数据500在共享存储器402。该信号可以包括源-目的地ID(其指示服务质量(QoS)级别,该服务质量(QoS)级别确定将要通过其发送该有效载荷的传输队列)和共享存储器402内应用数据500所在的地址。
在图5B中,隔离微处理器412基于传输分组大小确定应用数据500将被划分成的传输分组的数量。隔离微控制器500然后生成部分填充的传输报头502,并将部分填充的传输报头502存储在无线存储器418中。隔离微控制器412用共享存储器402中的应用数据500内的分组的位置和无线存储器418中的对应传输报头502的位置对DMA控制器414进行编程。在一些示例中,隔离微控制器412通过单独的数据总线通信耦合到DMA控制器414。
在图5C中,DMA控制器414通过内联的加密引擎416拉取应用数据500的分组和部分填充的传输报头502。内联的加密引擎416对应用数据分组进行加密。内联的加密引擎416通过将加密向量插入到部分填充的传输分组中来生成填充的传输分组。内联的加密引擎416通过将加密的应用数据分组与对应的填充的传输报头配对来创建传输分组504,然后将传输分组放置到无线存储器418中。
在图5D中,隔离微处理器412(例如,经由门铃寄存器)发送信号指示将要传输的传输分组504在无线存储器418中。该信号包括无线存储器418中传输分组504所在的地址。隔离处理器412向共享存储器402发送信号以通知共享存储器402可以释放应用数据500所占用的地址。
在图5E中,无线微控制器410WMCU然后为无线数据总线接口420A和420B创建描述符表,用于从无线存储器418拉取传输分组504,并将信号发送到无线数据总线接口420A和420B。无线数据总线接口420A和420B首先从无线存储器418拉取描述符表,并基于嵌入在表中的QoS信息,将队列分配给无线数据总线接口420A和420B内对DMA控制器的各种请求。在一些示例中,如果存在多个不同的应用有效载荷被一起处理,则无线数据总线接口420A和420B可以发起多个同时的DMA请求。例如,分散-收集DMA控制器可以从无线存储器418收集传输分组504。
图6是示出根据本公开中描述的技术的用于形成无线分组的数据结构和设备的示例的框图。最初,子系统406将应用数据500放置到共享存储器402中,并向隔离处理器412发送包括应用数据500的位置的信号。在所示示例中,应用数据500包括应用报头600和应用有效载荷602。应用报头600包括信息(例如,源-目的地ID、有效载荷的长度等)(有时称为“元数据”),以使目的地子系统能够解包并使用应用有效载荷602。在一些示例中,当128位是加密引擎416的粒度时,应用报头600和应用有效载荷602的组合的总大小是128位的倍数。在一些这样的示例中,当总大小不是加密引擎416的粒度(例如,128位等)的倍数时,应用有效载荷602用虚拟位(dummy bit)604填充。
隔离处理器412确定应用数据500要被划分成的应用数据分组606的数量。为了定义应用数据分组,隔离处理器412(a)为每个分组606确定存储器中的起始地址,并且(b)为每个分组606创建传输报头502以存储在无线存储器418中。在一些示例中,初始应用数据分组606包括应用报头600。在一些示例中,应用数据分组606的数量由加密引擎416的粒度和/或无线通信单元320A和320B的MTU确定。
在接收到应用数据分组606在共享存储器402中的位置和无线存储器418中的传输报头502的位置之后,DMA控制器414通过加密引擎416从共享存储器402拉取应用数据分组606,以进行加密,并从无线存储器414拉取传输报头502,以通过加密引擎416来填充加密块。DMA 414通过将加密的应用数据分组608与对应的传输报头502组合来创建传输分组504,并将传输分组504放置在无线存储器418中。
无线微控制器410驱动无线接口总线420A和420B中的一个以从无线存储器418检索传输分组504,并添加无线报头610以创建无线分组612。无线微控制器410驱动无线数据总线接口420A和420B以传输无线分组612。
图7是根据本公开的技术的用于经由无线收发器传输存储在共享存储器402中的应用数据500的示例方法的流程图。最初,子系统406将应用数据500存储到共享存储器402(702)。子系统406向隔离控制器412提供应用数据500在共享存储器402中的位置(704)。
隔离微处理器412基于应用数据500的大小确定将被生成的传输分组504的数量,并生成初始传输报头502(706)。隔离微处理器412将传输报头504存储在无线存储器418中(708)。隔离微处理器412利用应用数据500在共享存储器402中的地址和传输报头502在无线存储器418中的地址对DMA 414进行编程(710)。DMA 414生成用于传输的传输分组504(712)。下面在图8中描述了生成传输分组504的示例方法。
当传输分组504被生成时,隔离微处理器412向共享存储器402发送信号以释放被应用数据500占用的空间(714)。隔离微处理器412向无线微控制器410发送信号,该信号具有传输分组504在无线存储器418中的地址(716)。无线微控制器410驱动无线数据总线接口420A和420B以传输传输分组504(例如,经由无线分组612)(718)。
图8是根据本公开的技术的用于对要经由无线收发器传输的应用数据500进行内联加密的示例方法的流程图。DMA控制器414从无线存储器418拉取传输报头502中的一个(802)。DMA控制器414从共享存储器402拉取应用数据分组606中的一个(804)。加密引擎416完成传输报头502的加密块,并通过对拉取的应用数据分组606加密来生成加密的应用数据分组608(806)。DMA控制器414通过将传输报头502和加密的应用数据分组608一起存储在无线存储器418中来生成传输分组504(808)。DMA控制器414确定是否有另一个传输分组504要生成(810)。例如,DMA控制器414可能已经从隔离控制器412接收到更多地址。当有更多的传输分组504要生成时(在810处为是),DMA控制器414从无线存储器418拉取传输报头502中的一个(802)。否则,当没有更多的传输分组504要生成时(在810处为否),DMA控制器414向隔离控制器412发送信号表示传输分组504在无线存储器418中已准备好。
图9是根据本公开的技术的将经由无线收发器接收的应用数据500存储在共享存储器402中的示例方法的流程图。首先,无线微控制器410经由无线数据总线接口420A和420B接收无线分组612(902)。无线分组612包括无线报头610和传输分组504(具有传输报头502和加密的应用数据分组608)。无线数据总线接口420A和420B的DMA控制器将接收的传输分组504放置到无线存储器418中(904)。无线微控制器410向隔离控制器410发送信号表示传输分组504在无线存储器418中(906)。隔离微控制器412为传输分组504中包括的应用数据500确定在共享存储器402中的位置(908)。隔离微控制器412对DMA控制器414进行编程以使用确定的位置进行放置(910)。DMA控制器414和加密引擎416对加密的应用数据分组608进行解密,并将解密的应用数据分组606放置到共享存储器402中的指定位置处(912)。下面在图10中描述了一种解密入口分组的示例方法。当在共享存储器402中重构应用数据500时,DMA控制器414向隔离控制器412发送信号(914)。隔离微控制器412向子系统406发送信号表示应用数据500在共享存储器402中(916)。
图10是对经由无线收发器接收的应用数据500进行内联解密的示例方法的流程图。DMA控制器414从无线存储器418拉取传输分组504中的一个(1002)。加密引擎416基于传输分组504的传输报头502检查分组的完整性(1006)。加密引擎416确定传输分组504何时有效(1006)。在一些示例中,传输分组504中的加密块提供用于确定传输分组504是否有效的值。例如,传输分组504可以在加密引擎416检测到传输分组504的内容已被篡改时是无效。当传输分组504有效(在1006处为是)时,加密引擎416对传输分组504内加密的应用数据分组608进行解密(1008)。DMA控制器414将解密的应用数据分组606存储在共享存储器402中的指定位置(1010)。否则,当入口分组无效(在1006处为否)时,加密引擎416向隔离处理器412发送信号,指示传输分组504是无效的(1012)。DMA控制器414确定无线存储器418中是否存在另一传输分组504(1014)。当存在另一个传输分组504(在1014处为是)时,DMA控制器414从无线存储器418拉取下一个传输分组504(1002)。否则,当不存在另一个传输分组504(在1014处为否)时,DMA控制器414向隔离微控制器412发送应用数据500在共享存储器402中被重构的信号(1016)。
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任何组合实现。例如,所述技术的各个方面可在一个或更多个处理器内实现,该处理器包括一个或更多个微处理器、DSP、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或任何其他等效的集成或离散逻辑电路,以及此类部件的任何组合。术语“处理器”或“处理电路”一般可指前述逻辑电路、固定功能电路、可编程电路中的任一种(无论是单独或与其他逻辑电路组合),或任何其他等效电路。包括硬件的控制单元也可执行本公开的一种或更多种技术。
此类硬件、软件和固件可在相同的设备内或在单独的设备内实现以支持本公开中描述的各种操作和功能。此外,所述单元、模块或部件中的任一个可一起或单独地实现为离散的但可互操作的逻辑设备。将不同特征描述为模块或单元旨在突出不同的功能方面,并不一定意味着此类模块或单元必须由单独的硬件或软件部件实现。相反,与一个或更多个模块或单元相关联的功能可以由单独的硬件或软件部件执行,或者集成在公共或单独的硬件或软件部件内。
在本公开中描述的技术还可在含指令的计算机可读介质(例如计算机可读存储介质)中体现或编码。嵌入或编码在计算机可读存储介质中的指令可以例如在执行指令时致使可编程处理器或其他处理器执行方法。计算机可读存储介质可包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM)、闪存存储器、硬盘、CD-ROM、软盘、盒式磁带、磁介质、光学介质或其他计算机可读介质。
如本文通过各种示例所描述的,本公开的技术可包括人工现实系统或结合人工现实系统来实现。如所描述的,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,其可包括例如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混杂现实、或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈、或其某种组合,且其中任何一个都可以在单个通道中或在多个通道中被呈现(例如向观看者产生三维效果的立体视频)。另外,在一些实施例中,人工现实可以与应用、产品、附件、服务或其某种组合相关联,这些应用、产品、附件、服务或其某种组合例如用于在人工现实中创建内容和/或在人工现实中被使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式设备(HMD)、独立的HMD、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台。

Claims (15)

1.一种无线通信系统,包括:
第一存储器;
第二存储器;
第一微控制器,其被配置成管理用于无线收发器的驱动器并引导所述无线收发器和所述第一存储器之间的数据移动;和
第二微控制器,其被配置成与生成将要被无线传输的应用数据的其他系统通信,其中,将要被无线传输的应用数据存储在所述第二存储器中,
其中,所述第二微控制器被配置成引导所述第二存储器和所述第一存储器之间的数据移动。
2.根据权利要求1所述的无线通信系统,其中,所述第二微控制器还被配置成:
基于存储在所述第二存储器中的应用数据来确定要创建的应用数据分组的数量;
为每个所述应用数据分组生成相应的传输报头;以及
将所述传输报头存储在所述第一存储器中,
其中,可选地,所述第二微控制器还被配置成在所述第一存储器中创建报头表并存储所述报头表,所述报头表引用所述传输报头在所述第一存储器中的位置,或者
其中,可选地,为了引导所述第二存储器和所述第一存储器之间的数据移动,所述第二微控制器被配置成用描述符表对直接存取存储器控制器进行编程,所述描述符表指定相应的传输报头在所述第一存储器中的位置以及所述应用数据分组在所述第二存储器中的位置,其中,进一步可选地,所述描述符表指定所述第一存储器中用于存储传输分组的位置。
3.根据权利要求1所述的无线通信系统,其中,为了引导所述第二存储器和所述第一存储器之间的数据移动,所述第二微控制器被配置成管理存储器管理电路和加密电路,所述存储器管理电路和所述加密电路对从所述应用数据创建的应用数据分组进行加密,并将加密的应用数据分组与对应传输报头一起存储到所述第一存储器,
其中,可选地,所述加密的应用数据分组中的每一个能够独立于从相同应用数据创建的其他加密的应用数据分组被解密。
4.根据权利要求1所述的无线通信系统,还包括交叉开关,其中,所述第二微控制器经由所述交叉开关通信耦合到所述第一存储器和所述第二存储器,并且其中,所述第一微控制器经由所述交叉开关通信耦合到所述第一存储器,而不通信耦合到所述第二存储器。
5.根据权利要求1所述的无线通信系统,其中,所述第一微控制器还被配置成:
生成无线分组,每个无线分组包括传输报头和从所述应用数据生成的加密的应用数据分组;以及
将所述无线分组存储到通信耦合到所述无线收发器的数据总线接口的传输缓冲器。
6.一种方法,包括:
响应于接收到指示应用数据被保存到第一存储器的第一信号,由第一微控制器确定要生成用来无线传输所述应用数据的应用数据分组的数量;
由所述第一微控制器为所述应用数据分组中的每一个生成传输报头,并将所述传输报头存储在第二存储器中;
由所述第一微控制器对直接存储器存取控制器进行编程,以使用所述传输报头和应用数据分组生成传输分组,并将所述传输分组存储在所述第二存储器中;
由与所述第一微控制器分离的第二微控制器将所述传输分组从所述第二存储器移动到通信耦合到无线收发器的无线数据总线接口的传输缓冲器。
7.根据权利要求6所述的方法或根据权利要求1所述的无线通信系统,其中,所述第一微控制器和所述第二微控制器包括在被配置成输出人工现实内容的头戴式设备(HMD)或被配置成生成人工现实内容的外围设备中的一个中。
8.根据权利要求6所述的方法,其中,将所述传输报头存储在第二存储器中还包括在所述第二存储器中创建并存储报头表,所述报头表引用所述传输报头在所述第二存储器中的位置。
9.根据权利要求6所述的方法,其中,对所述直接存取存储器控制器进行编程还包括生成用于生成所述传输分组的描述符表,所述描述符表指定(a)所述传输报头在所述第一存储器中的位置、(b)对应的应用数据分组在所述第二存储器中的位置以及(c)所述第一存储器中的用于存储所述传输分组的位置。
10.根据权利要求6所述的方法,其中,对所述直接存储器存取控制器编程使加密电路:
加密所述应用数据分组,每个加密的应用数据分组能够独立于从相同的应用数据创建的其他加密的应用数据分组被解密;以及
通过将加密的应用数据分组与对应的传输报头一起存储到第二存储器来生成所述传输分组。
11.根据权利要求6所述的方法,其中,所述第二微控制器经由交叉开关通信耦合到所述第一存储器和所述第二存储器,并且其中,所述第一微控制器经由所述交叉开关通信耦合到所述第一存储器,而不通信耦合到所述第二存储器。
12.一种系统,包括:
无线微控制器,其被配置成将由无线收发器接收的传输分组放置到无线存储器中的第一位置中;以及
隔离微控制器,其被配置成:
从所述无线微控制器接收指定所述第一位置的第一消息;
对直接存储器存取(DMA)控制器进行编程,以解密所述传输分组中加密的应用数据分组,并将解密的应用数据分组存储在共享存储器中的第二位置,所述共享存储器与所述无线存储器分离;以及
当所述解密的应用数据分组在所述共享存储器中时,向子系统处理器发送指示应用数据分组在所述共享存储器中可用的第二消息。
13.根据权利要求12所述的系统,还包括交叉开关,其中,所述交叉开关将所述隔离微控制器通信耦合到所述共享存储器和所述无线存储器,并且将所述无线控制器通信耦合到所述无线存储器而不通信耦合到所述共享存储器。
14.根据权利要求12所述的系统,还包括所述DMA控制器和耦合到所述DMA控制器的内联的加密引擎,所述加密引擎用于当所述DMA控制器从所述无线存储器拉取加密的应用数据分组到所述加密引擎时,对所述加密的应用数据分组进行解密。
15.根据权利要求12所述的系统,其中,为了对所述DMA控制器进行编程,所述隔离控制器还被配置成向所述DMA控制器提供所述第一位置和第二位置,所述第二位置从所述子系统处理器接收。
CN202080078300.5A 2019-11-15 2020-10-17 具有码分离的无线通信 Pending CN114731198A (zh)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201962935964P 2019-11-15 2019-11-15
US62/935,964 2019-11-15
US201962940780P 2019-11-26 2019-11-26
US62/940,780 2019-11-26
US202063004170P 2020-04-02 2020-04-02
US202063004315P 2020-04-02 2020-04-02
US63/004,315 2020-04-02
US63/004,170 2020-04-02
US16/860,991 US11601532B2 (en) 2019-11-15 2020-04-28 Wireless communication with code separation
US16/860,991 2020-04-28
PCT/US2020/056195 WO2021096642A1 (en) 2019-11-15 2020-10-17 Wireless communication with code separation

Publications (1)

Publication Number Publication Date
CN114731198A true CN114731198A (zh) 2022-07-08

Family

ID=75908296

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202080079313.4A Pending CN114731269A (zh) 2019-11-15 2020-10-15 分组数据的内联加密
CN202080078300.5A Pending CN114731198A (zh) 2019-11-15 2020-10-17 具有码分离的无线通信

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202080079313.4A Pending CN114731269A (zh) 2019-11-15 2020-10-15 分组数据的内联加密

Country Status (4)

Country Link
US (3) US11196846B2 (zh)
EP (2) EP4059182A1 (zh)
CN (2) CN114731269A (zh)
WO (2) WO2021096632A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11861136B1 (en) * 2017-09-29 2024-01-02 Apple Inc. Systems, methods, and graphical user interfaces for interacting with virtual reality environments
US11409671B2 (en) 2019-09-19 2022-08-09 Facebook Technologies, Llc Artificial reality system having multi-bank, multi-port distributed shared memory
US11520707B2 (en) 2019-11-15 2022-12-06 Meta Platforms Technologies, Llc System on a chip (SoC) communications to prevent direct memory access (DMA) attacks
US11196846B2 (en) * 2019-11-15 2021-12-07 Facebook Technologies, Llc Inline encryption of packet data in a wireless communication system
US11928349B2 (en) * 2021-04-23 2024-03-12 Qualcomm Incorporated Access control configurations for shared memory
CN116522382B (zh) * 2023-04-17 2023-11-21 广州市安洛网络有限责任公司 一种应用程序用户信息保护方法和系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7983419B2 (en) 2001-08-09 2011-07-19 Trimble Navigation Limited Wireless device to network server encryption
AU2004297923B2 (en) 2003-11-26 2008-07-10 Cisco Technology, Inc. Method and apparatus to inline encryption and decryption for a wireless station
US6954450B2 (en) 2003-11-26 2005-10-11 Cisco Technology, Inc. Method and apparatus to provide data streaming over a network connection in a wireless MAC processor
JP4750480B2 (ja) 2005-06-14 2011-08-17 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ 記憶装置及び記憶装置のアクセス制御方法
JP4347350B2 (ja) 2007-02-15 2009-10-21 富士通株式会社 データ暗号転送装置、データ復号転送装置、データ暗号転送方法およびデータ復号転送方法
US7849342B2 (en) 2007-05-01 2010-12-07 Nvidia Corporation Method and system for implementing generalized system stutter
US8244305B2 (en) * 2007-06-04 2012-08-14 Telefonaktiebolaget Lm Ericsson (Publ) Efficient, secure digital wireless voice telephony via selective encryption
US8375173B2 (en) 2009-10-09 2013-02-12 Qualcomm Incorporated Accessing a multi-channel memory system having non-uniform page sizes
US8589851B2 (en) 2009-12-15 2013-11-19 Memoir Systems, Inc. Intelligent memory system compiler
CN103842975B (zh) 2011-09-19 2016-12-14 马维尔国际贸易有限公司 用于监视和管理存储器块以改善节电的系统和方法
US8984203B2 (en) 2012-10-09 2015-03-17 Sandisk Technologies Inc. Memory access control module and associated methods
KR20150060275A (ko) * 2013-11-26 2015-06-03 삼성전자주식회사 전자장치 및 전자장치의 데이터서비스 제공방법
US9395754B2 (en) 2014-06-04 2016-07-19 Grandios Technologies, Llc Optimizing memory for a wearable device
US10156908B2 (en) * 2015-04-15 2018-12-18 Sony Interactive Entertainment Inc. Pinch and hold gesture navigation on a head-mounted display
US9773432B2 (en) 2015-06-27 2017-09-26 Intel Corporation Lightweight cryptographic engine
US10241941B2 (en) 2015-06-29 2019-03-26 Nxp Usa, Inc. Systems and methods for asymmetric memory access to memory banks within integrated circuit systems
US10395428B2 (en) 2016-06-13 2019-08-27 Sony Interactive Entertainment Inc. HMD transitions for focusing on specific content in virtual-reality environments
US10372656B2 (en) * 2016-11-21 2019-08-06 Intel Corporation System, apparatus and method for providing trusted input/output communications
KR102599536B1 (ko) * 2017-01-26 2023-11-08 삼성전자 주식회사 생체 센서를 갖는 전자 장치
JP7243193B2 (ja) * 2019-01-10 2023-03-22 セイコーエプソン株式会社 表示システム、表示システムの制御方法、情報処理装置、及び情報処理装置の制御プログラム
US11801446B2 (en) * 2019-03-15 2023-10-31 Sony Interactive Entertainment Inc. Systems and methods for training an artificial intelligence model for competition matches
US20210011556A1 (en) 2019-07-09 2021-01-14 Facebook Technologies, Llc Virtual user interface using a peripheral device in artificial reality environments
US11474970B2 (en) 2019-09-24 2022-10-18 Meta Platforms Technologies, Llc Artificial reality system with inter-processor communication (IPC)
US11196846B2 (en) * 2019-11-15 2021-12-07 Facebook Technologies, Llc Inline encryption of packet data in a wireless communication system
US10840917B1 (en) 2019-12-09 2020-11-17 Bae Systems Information And Electronic Systems Integration Inc. Clock alignment system having a dual-loop delay-locked loop

Also Published As

Publication number Publication date
US20210149830A1 (en) 2021-05-20
EP4045994A1 (en) 2022-08-24
EP4059182A1 (en) 2022-09-21
US11601532B2 (en) 2023-03-07
US20210152673A1 (en) 2021-05-20
WO2021096642A1 (en) 2021-05-20
US11637916B2 (en) 2023-04-25
US20220094770A1 (en) 2022-03-24
US11196846B2 (en) 2021-12-07
CN114731269A (zh) 2022-07-08
WO2021096632A1 (en) 2021-05-20

Similar Documents

Publication Publication Date Title
US11637916B2 (en) Inline encryption of packet data in a wireless communication system
US11412050B2 (en) Artificial reality system with virtual wireless channels
US11474970B2 (en) Artificial reality system with inter-processor communication (IPC)
US11777711B1 (en) Encryption and decryption engines with selective key expansion skipping
US11430141B2 (en) Artificial reality system using a multisurface display protocol to communicate surface data
US11775448B2 (en) System on a chip (SOC) communications to prevent direct memory access (DMA) attacks
US11615576B2 (en) Artificial reality system using superframes to communicate surface data
US20210184832A1 (en) Multi-key encryption and decryption for side channel attack prevention
US11755747B2 (en) High throughput storage encryption
US11487594B1 (en) Artificial reality system with inter-processor communication (IPC)
US11470061B2 (en) Parallel scheduling of encryption engines and decryption engines to prevent side channel attacks
US11941131B1 (en) Isolation of secrets from an operating system
WO2022147349A1 (en) High throughput storage encryption

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan Platform Technology Co.,Ltd.

Address before: California, USA

Applicant before: Facebook Technologies, LLC

CB02 Change of applicant information
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination