CN117751348A - 电子设备和虚拟机操作系统 - Google Patents

电子设备和虚拟机操作系统 Download PDF

Info

Publication number
CN117751348A
CN117751348A CN202280052538.XA CN202280052538A CN117751348A CN 117751348 A CN117751348 A CN 117751348A CN 202280052538 A CN202280052538 A CN 202280052538A CN 117751348 A CN117751348 A CN 117751348A
Authority
CN
China
Prior art keywords
scvm
soc
service
container
mode
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
CN202280052538.XA
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.)
Snap Inc
Original Assignee
Snap Inc
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 Snap Inc filed Critical Snap Inc
Publication of CN117751348A publication Critical patent/CN117751348A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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
    • 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/0176Head mounted characterised by mechanical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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/017Head mounted
    • G02B2027/0178Eyeglass type
    • 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/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Optics & Photonics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Eye Examination Apparatus (AREA)
  • Eyeglasses (AREA)

Abstract

操作系统和电子设备,诸如包括操作系统的眼睛佩戴设备。操作系统包括容器化虚拟机,其中每个虚拟机包括操作系统并提供服务。这种方法在利用计算资源、设施开发和兼容性方面提供了灵活性,并且在热容量包络有限的诸如眼镜之类的设备中实现了改善的热平衡。

Description

电子设备和虚拟机操作系统
相关申请的交叉引用
本申请要求于2021年7月28日提交的美国临时申请序列号63/226,527的优先权,其内容通过引用完全并入本文。
技术领域
本公开中阐述的示例涉及电子设备领域,并且更具体地,涉及包括具有虚拟机的操作系统的电子设备,其中每个虚拟机具有其自己的操作系统并且被配置为提供服务。
背景技术
当今可用的许多类型的电子设备,诸如移动设备(例如智能手机、平板电脑和膝上型计算机)、手持设备和可佩戴设备(例如,智能眼镜、数字眼镜、头饰、头套和头戴式显示器),包括支持各种相机、传感器、无线收发器,输入系统(例如,触敏表面、指针)、外围设备、显示器和图形用户界面(GUI)的操作系统,用户可以通过它们与显示的内容进行交互。
增强现实(AR)将物理环境中的真实对象与虚拟对象组合起来并且向用户显示该组合。所组合的显示给人的印象是虚拟对象真实地存在于环境中,尤其是当虚拟对象看起来和表现得像真实对象时。
附图说明
所描述的各种示例的特征从参照附图的以下详细描述中将容易地理解。在描述和整个附图的若干个视图中,每个元件都使用参考数字。当存在多个相似元件时,单个参考数字可以被分配给类似的元件,其中附加的字母指代具体的元件。当提到多于一个的元件或元件中的非特定一个时,可以去掉字母。
图中显示的各个元件除非另有指示,否则不按比例绘制。为了清楚起见,各个元件的尺寸可以放大或缩小。这几幅图描绘了一个或多个实施方式,并仅通过示例的方式呈现,而不应被解释为限制性的。附图中包括以下各图:
图1A是适用于眼镜系统的眼睛佩戴设备的示例硬件配置的(右)侧视图;
图1B是图1A的眼睛佩戴设备的右镜腿部分的透视局部剖视图,描绘了右可见光相机和电路板;
图1C是图1A的眼睛佩戴设备的示例硬件配置的(左)侧视图,其示出了左可见光相机;
图1D是图1C的眼睛佩戴设备的左镜腿部分的透视局部剖视图,描绘了左可见光相机和电路板;
图2A和2B是眼镜系统中使用的眼睛佩戴设备的示例硬件配置的后视图;
图2C示出了检测眼睛注视方向;
图2D示出了检测眼睛位置;
图3是三维场景、由左可见光相机捕获的左原始图像和由右可见光相机捕获的右原始图像的图示;
图4是包括经由各种网络连接到移动设备和服务器系统的眼睛佩戴设备的示例眼镜系统的功能框图;
图5是图4的眼镜系统的移动设备的示例硬件配置的图示;
图6是具有与一个镜腿相邻的第一片上系统和与另一镜腿相邻的第二片上系统的眼睛佩戴设备的部分框图;
图7是用于用第一片上系统和第二片上系统对眼镜执行操作的示例步骤的流程图;
图8是在第一片上系统和第二片上系统之间平衡眼睛佩戴设备上的处理工作负载的方法的示例步骤的流程图;
图9是在第一片上系统和第二片上系统之间平衡眼睛佩戴设备上的处理工作负载的另一方法的示例步骤的流程图;
图10A、10B和10C描绘了用于在第一片上系统和第二片上系统之间划分处理工作负载的三种相应策略;
图11A是示出具有已知类型操作系统的增强现实耳机的框图。
图11B是示出具有虚拟机操作系统的增强现实耳机的框图;以及
图12A、12B和12C是由虚拟机操作系统执行的示例步骤的流程图。
具体实施方式
包括虚拟机操作系统(OS)的电子设备(诸如眼睛佩戴设备)具有虚拟机,其中每个虚拟机包括其自己的OS并提供服务。这种方法在利用计算资源方面提供了更大的灵活性,促进了开发和兼容性,并且在热容量包络有限的设备(诸如眼镜)中实现了改善的热平衡。
以下详细描述包括说明本公开中阐述的示例的系统、方法、技术、指令序列和计算机器程序产品。许多细节和示例被包括在内,出于提供对所公开主题及其相关教导的透彻理解的目的。然而,相关领域技术人员可以理解在没有这些细节的情况下如何应用相关教导。所公开主题的各方面不局限于所描述的具体设备、系统和方法,因为相关教导可以以各种方式应用或实践。本文中使用的术语和命名仅是出于描述特定方面的目的,并非旨在是限制性的。一般而言,众所周知的指令实例、协议、结构和技术不一定详细显示。
在一个示例中,电子设备包括至少一个处理系统、系统隔离管理器(例如,用于管理虚拟机的虚拟机监视器或者用于管理容器的诸如开源实用程序Docker之类的容器管理器)和自包含虚拟机(SCVM)。系统隔离管理器被配置为在至少一个处理系统中的每一个上运行并且运行监督OS(supervisor OS)。具有第一OS的第一SCVM提供第一服务。具有第二OS的第二SCVM提供第二服务。SCVM另外被配置为经由由监督OS、第一OS和第二OS支持的进程间通信(IPC)协议进行通信。计算系统可以被结合在眼睛佩戴设备的镜框中,其被配置为佩戴在用户的耳朵上,其中至少一个SoC中的第一SoC被定位在该镜框的第一部分中并且至少一个SoC中的第二SoC被定位在该镜框的第二部分中。
在另一示例中,用于使用容器化操作系统的方法包括:在至少一个处理系统中的每一个上运行系统隔离管理器(其中系统隔离管理器具有监督OS),衍生(spawn)具有提供第一服务的第一OS的第一SCVM,衍生具有提供第二服务的第二OS的第二SCVM,并且在第一SCVM和第二SCVM之间发送通信。通信可以经由由监督OS、第一OS和第二OS支持的IPC协议来发送。
在另一示例中,非暂时性计算机可读介质包括用于在计算系统上操作的指令。该指令在由计算系统执行时,将计算系统配置为:在至少一个处理系统中的每一个上运行系统隔离管理器(其中系统隔离管理器具有监督OS),衍生具有被配置为提供第一服务的第一OS的第一SCVM,衍生具有被配置为提供第二服务的第二OS的第二SCVM,并且在第一SCVM和第二SCVM之间发送通信。通信可以经由由虚拟机监视器的监督OS、第一OS和第二OS支持的IPC协议来发送。
术语“片上系统(system on a chip)”或“SoC”在本文中被用于指代将电子系统的部件集成在单个基板或微芯片上的集成电路(也被称为“芯片”)。这些部件包括中央处理单元(CPU)、图形处理单元(GPU)、图像信号处理器(ISP)、存储器控制器、视频解码器和用于连接到另一SoC的系统总线接口。通过非限制性示例的方式,SoC的部件可以另外包括用于惯性测量单元(IMU;例如,I2C、SPI、I3C等)的接口、视频编码器、收发器(TX/RX;例如,Wi-Fi、或其组合)以及数字、模拟、混合信号和射频信号处理功能中的一个或多个。
术语“虚拟机”或“VM”在本文中被用于指代计算机的软件表示。VM可以以硬件、软件或其组合来实施。
术语“自包含虚拟机(self-contained virtual machine)”或“SCVM”在本文中被用于指代具有被配置为提供至少一个服务的OS的虚拟机。在一个示例中,SCVM调节其使用的资源(例如,根据资源预算),其中其操作所在的电子设备被供应为具有那些可用资源。SCVM可以具有多于一组的资源(例如,多个资源预算),其中SCVM响应于例如SCVM所存在于的电子设备的操作模式来选择该组资源。在SCVM提供多于一个的服务的情况下,每个服务都在SCVM的相应容器中运行。每个容器在SCVM的相应分区中运行,其中SCVM的内核实施容器之间的隔离。
术语系统隔离管理器在本文中被用于指代对虚拟机、容器或其组合的集合进行管理以支持虚拟机/容器之间的隔离和通信的计算机软件、固件或硬件(或其组合)。在虚拟机被管理以支持隔离的情况下,系统隔离管理器可以是虚拟机监视器。在容器被管理以支持隔离的情况下,系统隔离管理器可以是容器管理器,诸如可从美国加利福尼亚州帕洛阿托的Docker股份有限公司获得的Docker。
术语虚拟机监视器(hypervisor)在本文中被用于指代创建和运行虚拟机的计算机软件、固件或硬件(或其组合)。虚拟机监视器在其上运行一个或多个虚拟机的计算系统(例如,SoC)可以被称为主机,并且每个虚拟机可以被称为客户机。虚拟机监视器以虚拟操作平台呈现客户机的OS,并管理客户OS的执行。
术语“操作系统”和“OS”在本文中被用于指代支持计算机(真实或虚拟;例如,虚拟机)的基本功能(诸如调度任务、执行应用和控制外围设备)的软件。在一个示例中,在虚拟机监视器中实施监督OS,并且在SCVM中的每一个中实施各自的OS。
如本文中使用的术语“被耦合”或“被连接”是指包括链路或类似物的任何逻辑连接、光学连接、物理连接或电气连接,通过该连接,由一个系统元件产生或供应的电信号或磁信号被传递到另一个被耦合或被连接的系统元件。除非另有描述,否则被耦合或被连接的元件或设备不一定直接彼此连接,并且可以由中间部件、元件或通信介质分隔开,其中的一个或多个可以修改、操纵或携带电信号。术语“在……上”意味着由一个元件直接支撑,或者由元件通过被集成到该元件中或被其支撑的另一个元件间接支撑。
术语“近侧”被用于描述位于物体或人附近、邻近或旁边的项或项的一部分;或者相对于项的其他部分更近,其该其他部分可以被描述为“远侧”。例如,最靠近物体的项的一端可以被称为近端,而通常相对的一端可以称为远端。
出于说明和讨论目的,仅通过示例的方式给出眼睛佩戴设备、其他移动设备、相关部件以及结合诸如任何附图中所示的相机、惯性测量单元或两者的任何其他设备的取向。在操作中,眼睛佩戴设备可以在适合眼睛佩戴设备的特定应用的任何其他方向上取向;例如,向上、向下、侧向或任何其他取向。此外,在本文所使用的范围内,任何方向术语,诸如前、后、内、外、朝向、左、右、横向、纵向、上、下、上方、下方、顶、底、侧、水平、竖直和对角线,仅作为示例而使用,并且不限制如所构造或如本文以其他方式所述的任何相机或惯性测量单元的方向或取向。
示例的额外目的、优点和新颖特征将在以下描述中部分地阐述,并且在检查以下内容和附图时,部分地将对本领域技术人员而言变得显而易见,或者可以通过示例的生产或操作获知。本主题的目的和优点可以借助于所附权利要求中特别指出的方法、工具和组合来实现或达到。
现在详细参照附图中示出和下面讨论的示例。
图1A是包括触敏输入设备或触摸板181的眼睛佩戴设备100的示例硬件配置的(右)侧视图。如图所示,触摸板181可以具有不易察觉的且不容易看到的边界;可替选地,边界可以是明显可见的,或者包括凸起或其他触觉边缘,用于向用户提供关于触摸板181的位置和边界的反馈。在其他实施方式中,眼睛佩戴设备100可以包括位于左侧的触摸板。
触摸板181的表面被配置为检测手指触摸、轻敲和手势(例如,移动触摸),以便与眼睛佩戴设备在图像显示器上显示的GUI一起使用,从而允许用户以直观的方式浏览和选择菜单选项,这增强并简化了用户体验。
对触摸板181上的手指输入的检测能够实现多种功能。例如,触摸触摸板181上的任何位置可以使得GUI在图像显示器上显示或高亮项目,该项目可以被投射到光学组件180A、180B中的至少一个上。双击触摸板181可以选择项目或图标。在特定方向滑动或轻扫手指(例如,从前到后、从后到前、从上到下或下到)可致使项目或图标在特定方向上滑动或滚动;例如,移动到下一个项目、图标、视频、图像、页面或幻灯片。在另一个方向上滑动手指则可在相反的方向上滑动或滚动;例如,移动到上一个项目、图标、视频、图像、页面或幻灯片。触摸板181能够虚拟地在眼睛佩戴设备100上的任何地方。
在一个示例中,所识别的触摸板181上的单次轻敲的手指手势发起了对在光学组件180A、180B的图像显示器上呈现的图像中的图形用户界面元素的选择或按压。基于所识别的手指手势对光学组件180A、180B的图像显示器上呈现的图像的调整可以是主要动作,其选择或提交光学组件180A、180B的图像显示器上的图形用户界面元素以供进一步显示或执行。
如图1A所示,眼睛佩戴设备100包括右可见光相机114B。如本文中进一步描述的,两个相机114A、114B从两个分离的视点捕获场景的图像信息。两个所捕获的图像可被用于将三维显示器投射到图像显示器上以供在3D眼镜上观看或用3D眼镜观看。
眼睛佩戴设备100包括具有图像显示器的右光学组件180B,以呈现图像,诸如深度图像。如图1A和1B所示,眼睛佩戴设备100包括右可见光相机114B。眼睛佩戴设备100能够包括多个可见光相机114A、114B,其形成被动类型的三维相机,诸如立体相机,其中右可见光相机114B位于右镜腿部分110B上。如图1C-D所示,眼睛佩戴设备100还包括位于左镜腿部分110A上的左可见光相机114A。
左可见光相机114A和右可见光相机114B对可见光范围波长敏感。可见光相机114A、114B中的每一个都具有不同的朝前面向的视场,该视场被重叠以实现三维深度图像的生成。右可见光相机114B捕获右视场111B并且左可见光相机114A捕获左视场111A。通常,“视场”是通过相机在空间中的特定位置和取向上可见的场景的一部分。视场111A和111B具有重叠的视场304(图3)。当可见光相机捕获图像时,视场111A、111B之外的对象或对象特征不会被记录在原始图像(例如,照片或图片)中。视场描述了可见光相机114A、114B的图像传感器在给定场景的所捕获的图像中拾取给定场景的电磁辐射的角度范围或程度。视场能够表示为视锥的角度大小;即,视角。视角能够是水平、竖直或对角测量的。
在一个示例中,可见光相机114A、114B具有视角在15°到30°之间(例如24°)的视场,并且具有480x 480像素或更高的分辨率。在另一示例中,视场可以宽得多,诸如100°或更大。“覆盖角”描述了可见光相机114A、114B或红外相机410(见图2A)的透镜能够有效成像的角度范围。通常,相机透镜产生像圆(image circle),其足够大以完全覆盖相机的胶片或传感器,可能性地包括一些渐晕(例如,与中心相比,图像朝向边缘变暗)。如果相机镜头的覆盖角没有填满传感器,则像圆将是可见的,通常朝向边缘具有较强的渐晕,并且有效视角将被限于覆盖角。
此类可见光相机114A、114B的示例包括高分辨率互补金属氧化物半导体(CMOS)图像传感器和能够实现分辨率为640p(例如,640x 480像素,总计0.3兆像素)、720p或1080p的数字VGA相机(视频图形阵列)。可见光相机114A、114B的其他示例,能够捕获高清晰度(HD)静态图像并以1642乘1642像素(或更高)的分辨率存储它们;或以高帧率(例如,每秒30到60帧或更高)录制高清晰度视频,并以1216乘1216像素(或更高)的分辨率存储录像。
眼睛佩戴设备100可以捕获来自可见光相机114A、114B的图像传感器数据以及由图像处理器数字化的地理位置数据,以存储在存储器中。可见光相机114A、114B在二维空间域中捕获包括二维坐标系上的像素矩阵的相应的左和右原始图像,该二维坐标系包括用于水平位置的X轴和用于竖直位置的Y轴。每个像素都包括颜色属性值(例如,红色像素光值、绿色像素光值或蓝色像素光值);以及位置属性(例如,X轴坐标和Y轴坐标)。
为了捕获立体图像以便稍后显示为三维投影,图像处理器412(如图4所示)可以被耦合到可见光相机114A、114B以接收和存储视觉图像信息。图像处理器412或另一处理器控制可见光相机114A、114B的操作以充当模拟人类双眼视觉的立体相机,并且可以向每个图像添加时间戳。每对图像上的时间戳允许将图像作为三维投影的一部分一起显示。三维投影产生了一种沉浸式的、栩栩如生的体验,这在各种情境(包括虚拟现实(VR)和视频游戏)中都是理想的。
图1B是图1A的眼睛佩戴设备100的右镜腿部分110B的透视剖视图,描绘了相机系统的右可见光相机114B和电路板。图1C是图1A的眼睛佩戴设备100的示例硬件配置的(左)侧视图,其示出了相机系统的左可见光相机114A。图1D是图1C的眼睛佩戴设备的左镜腿部分110A的透视剖视图,描绘了三维相机的左可见光相机114A和电路板。左可见光相机114A的构造和放置基本上类似于右可见光相机114B,除了连接和耦合在左横向侧170A上。
如图1B的示例中所示,眼睛佩戴设备100包括右可见光相机114B和电路板140B,电路板可以是柔性印刷电路板(PCB)。右铰链126B将右镜腿部分110B连接到眼睛佩戴设备100的右镜腿125B。在一些示例中,右可见光相机114B、柔性PCB 140B或其他电连接器或触点的部件可以位于右镜腿125B、右铰链126B、右镜腿部分110B、镜框105或其组合上。这些部件(或其子集)可以被并入SoC中。
如图1D的示例中所示,眼睛佩戴设备100包括左可见光相机114A和电路板140A,电路板140A可以是柔性印刷电路板(PCB)。左铰链126A将左镜腿部分110A连接到眼睛佩戴设备100的左镜腿125A。在一些示例中,左可见光相机114A、柔性PCB 140A或其他电连接器或触点的部件可以位于左镜腿125A、左铰链126A、左镜腿部分110A、镜框105或其组合上。这些部件(或其子集)可以被并入SoC中。
左镜腿部分110A和右镜腿部分110B包括镜腿部分主体190和镜腿部分帽,其中在图1B和图1D的剖面图中省略了镜腿部分帽。设置在左镜腿部分110A和右镜腿部分110B内部的是各种互连电路板,诸如PCB或柔性PCB,其包括用于相应的左可见光相机114A和右可见光相机114B的控制器电路、一个或多个麦克风130、扬声器132、低功率无线电路(例如,用于经由BluetoothTM进行无线短程网络通信),高速无线电路(例如,用于经由Wi-Fi进行无线局域网通信)。每个镜腿部分110中的部件和电路(或其子集)可以被并入SoC中。
右可见光相机114B被耦合到柔性PCB 140B或被设置在柔性PCB 140B上,并由可见光相机盖透镜覆盖,该可见光相机盖透镜通过在镜框105中形成的一个或多个开口瞄准。例如,如图2A所示,镜框105的右镜缘107B被连接到右镜腿部分110B,并且包括用于可见光相机盖透镜的一个或多个开口。镜框105包括前侧,该前侧被配置为面朝外并且远离用户的眼睛。用于可见光相机盖透镜的开口形成在镜框105的前侧或面朝外一侧上并穿过镜框105的前侧或面朝外一侧。在该示例中,右可见光相机114B具有面朝外的视场111B(如图3所示),其视线或视角与眼睛佩戴设备100的用户的右眼相关联。可见光相机盖透镜也可以粘附到右镜腿部分110B的前侧或面朝外的表面,其中开口形成为具有面朝外的覆盖角,但在朝外方向上不同。耦合也可以通过介入部件而是间接的。尽管示出为形成在右镜腿部分110B的电路板上,但是右可见光相机114B可以形成在左镜腿125B的电路板或镜框105上。
左可见光相机114A被耦合到柔性PCB 140A或设置在柔性PCB 140A上,并由可见光相机盖透镜覆盖,该可见光相机透镜通过形成在镜框105中的一个或多个开口瞄准。例如,如图2A所示,镜框105的左镜缘107A被连接到左镜腿部分110A,并且包括用于可见光相机盖透镜的一个或多个开口。镜框105包括前侧,该前侧被配置为面朝外并且远离用户的眼睛。用于可见光相机盖透镜的开口形成在镜框105的前侧或面朝外一侧上并穿过镜框105的前侧或面朝外一侧。在该示例中,左可见光相机114A具有面朝外的视场111A(如图3所示),其视线或视角与眼睛佩戴设备100的用户的左眼相关。可见光相机盖透镜也能够粘附到左镜腿部分110A的前侧或面朝外的表面,其中开口形成有面朝外的覆盖角,但在朝外方向上不同。耦合也可以通过介入部件而是间接的。尽管示出为形成在左镜腿部分110A的电路板上,但是左可见光相机114A可以形成在左镜腿125A的电路板或镜框105上。
图2A和2B是包括两种不同类型的图像显示器的眼睛佩戴设备100的示例硬件配置的从后方观看的透视图。眼睛佩戴设备100的尺寸和形状被构造成供用户佩戴的形式;在该示例中示出了眼镜的形式。眼睛佩戴设备100能够采用其他形式,并且可以包括其他类型的框架;例如,头套、耳机或头盔。
在眼镜示例中,眼睛佩戴设备100包括镜框105,镜框105包括左镜缘107A,其经由适于由用户的鼻子支撑的鼻梁架106连接到右镜缘107B。左镜缘107A和右镜缘107B包括相应的孔径175A、175B,其保持相应的光学元件180A、180B,诸如透镜和显示设备。如本文所用,术语“透镜”意指包括透明或半透明的玻璃片或塑料片,其具有致使光会聚/发散或致使很少或没有会聚或发散的弯曲或平坦的表面。
尽管示出为具有两个光学元件180A、180B,但是取决于眼睛佩戴设备100的应用或预期用户,眼睛佩戴设备100能够包括其他布置,诸如单个光学元件(或者它可以不包括任何光学元件180A、180B)。如进一步所示,眼睛佩戴设备100包括与镜框105的左横向侧170A相邻的左镜腿部分110A和与镜框105的右横向侧170B相邻的右镜腿部分110B。镜腿部分110A、110B可以在相应横向侧170A、170B上被集成到镜框105中(如图所示),或者实施为在相应横向侧170、170B附接到镜框105的单独部件。可替选地,镜腿部分110A、110B可以被集成到附接到镜框105的镜腿(未示出)中。
在一个示例中,光学组件180A、180B的图像显示器包括集成图像显示器177。如图2A所示,每个光学组件180A、180B包括合适的显示矩阵177,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示器或任何其他此类显示器。每个光学组件180A、180B还包括一个或多个光学层176,该光学层176可以包括透镜、光学涂层、棱镜、反射镜、波导、光学条带以及任何组合的其他光学部件。光学层176A、176B……176N(如图2A和本文中的176A-N所示)能够包括棱镜,该棱镜具有合适的尺寸和构造,并包括用于从显示矩阵接收光线的第一表面和用于向用户眼睛发射光线的第二表面。光学层176A-N的棱镜可以在左镜缘和右镜缘107A、107B中形成的相应的孔径175A、175B的全部或至少一部分上方延伸,以允许用户在用户眼睛透过对应的左镜缘和右镜缘107A、107B观看时看到棱镜的第二表面。光学层176A-N的棱镜的第一表面从镜框105面向上,并且显示矩阵177覆盖在棱镜上,以便由显示矩阵177发射的光子和光线撞击第一表面。棱镜被设计尺寸和形状成使得光线在棱镜内折射,并由光学层176A-N的棱镜的第二表面引导朝向用户的眼睛。在这方面,光学层176A-N的棱镜的第二表面可以是凸面,以将光线引导朝向眼睛的中心。棱镜可以可选地被设计尺寸和形状以放大由显示矩阵177投射的图像,并且光线行进穿过棱镜,以便从第二表面观看到的图像在一个或多个维度上大于从显示矩阵177发射的图像。
在一个示例中,光学层176A-N可以包括LCD层,其是透明(保持透镜打开)除非并且直到施加使该层不透明的电压(关闭或阻挡透镜)。眼睛佩戴设备100上的图像处理器412可以执行编程以将电压施加到LCD层,以便产生主动快门系统,使得眼睛佩戴设备100适合于在显示为三维投影时观看视觉内容。除了LCD之外的技术可被用于主动快门模式,包括对电压或另一类型输入做出响应的其他类型的反应层。
在另一个示例中,光学组件180A、180B的图像显示设备包括如图2B所示的投影图像显示器。每个光学组件180A、180包括激光投影仪150,该投影仪150是使用扫描镜或振镜的三色激光投影仪。在操作期间,光源(诸如激光投影仪150)被设置在眼睛佩戴设备100的镜腿125A、125B一个中或其上。在本示例中的光学组件180B包括一个或多个光学条带155A、155B……155N(如图2B中的155A-N所示),其跨每个光学组件180A、180B的透镜宽度或跨透镜的前表面和后表面之间的透镜深度间隔开。
在由激光投影仪150投射的光子行进穿过每个光学组件180A、180B的透镜时,光子遇到光学条带155A-N。当特定光子遇到特定光学条带时,该光子转向用户的眼睛、或传到下一个光学条带。对激光投影仪150的调制和对光学条带的调制的组合可以控制具体的光子或光束。在示例中,处理器通过发出机械信号、声学信号或电磁信号来控制光学条带155A-N。尽管显示为具有两个光学组件180A、180B,但是眼睛佩戴设备100能够包括其他布置(诸如单个或三个光学组件),或者取决于眼睛佩戴设备100的应用或预期用户,光学组件180A、B还可以布置有不同的布置。
在另一示例中,图2B所示的眼睛佩戴设备100可以包括两个投影仪,左投影仪(未示出)和右投影仪(示出为投影仪150)。左光学组件180A可以包括左显示矩阵(未示出)或左边组的光学条带(未示出),它们被配置为与来自左投影仪的光相互作用。在该示例中,眼睛佩戴设备100包括左显示器和右显示器。
如图2A和2B中进一步所示,眼睛佩戴设备100包括与镜框105的左横向侧170A相邻的左镜腿部分110A和与镜框105的右横向侧170B相邻的右镜腿部分110B。镜腿部分110A、110B可以在相应的横向侧170A、170B上被集成到镜框105中(如图所示),或者可以被实施为在相应的横向侧170A、170B上附接到镜框105的单独部件。可替选地,镜腿部分110A、110B可以被集成到被附接到镜框105的镜腿125A、125B中。
参考图2A,镜框105或者左镜腿和右镜腿110A-B中的一个或多个包括红外发射器215和红外相机220。红外发射器215和红外相机220可以通过例如焊接被连接到柔性PCB140B。可以实施红外发射器215和红外相机220的其他布置,包括其中红外发射器215和红外相机220都在右镜缘107B上的布置,或者在镜框105上的不同位置(例如红外发射器215在左镜缘107A上而红外相机220在右镜缘107B上)的布置。在另一示例中,红外发射器215在镜框105上并且红外相机220在镜腿110A-B中的一个上,或者反之亦然。红外发射器215可以基本上连接在镜框105、左镜腿110A或右镜腿110B上的任何地方,以发射红外光的图案。类似地,红外相机220可以基本上连接在镜框105、左镜腿110A或右镜腿110B上的任何地方,以捕获所发射的红外光的图案中的至少一个反射变化。
红外发射器215和红外相机220被布置为面朝内朝向用户的眼睛,具有眼睛的部分或全部视场,以便识别相应的眼睛位置和注视方向。例如,红外发射器215和红外相机220被直接定位在眼睛的前方、镜框105的上部部分或镜框105的两端处的镜腿110A-B中。
在一个示例中,处理器432利用眼睛跟踪器213来确定如图2C所示的佩戴者的眼睛234的眼睛注视方向230,以及如图2D所示的佩戴者的眼睛234在眼盒内的眼睛位置236。在一个示例中,眼睛跟踪器213是扫描仪,其使用红外光照明(例如,近红外、短波长红外、中波长红外、长波长红外或远红外)来捕获来自眼睛234的红外光的反射变化的图像以确定眼睛234的瞳孔232的注视方向230,以及还有相对于显示器180D的眼睛位置236。
图3是三维场景306、由左可见光相机114A捕获的左原始图像302A和由右可见光相机114B捕获的右原始图像302B的图示。如图所示,左视场111A可以与右视场111B重叠。重叠视场304表示由两个相机114A、114B捕获的那部分图像。当涉及视场时,术语“重叠”意指所生成的原始图像中的像素矩阵重叠百分之三十(30%)或更多。“基本重叠”意指所生成的原始图像或场景的红外图像中的像素矩阵重叠百分之五十(50%)或更多。如本文所述,两个原始图像302A、302B可以被处理为包括时间戳,该时间戳允许将图像作为三维投影的一部分一起显示。
对于立体图像的捕获,如图3所示,在给定时间的时刻捕获真实场景306的一对原始红色、绿色和蓝色(RGB)图像——由左相机114A捕获的左原始图像302A和由右相机114B捕获的右原始图像302B。当这对原始图像302A、302B被处理时(例如,由图像处理器412),深度图像被生成。所生成的深度图像可以在眼睛佩戴设备的光学组件180A、180B上、在另一显示器(例如,移动设备401上的图像显示器580)上或在屏幕上观看。
所生成的深度图像在三维空间域中,并且能够包括三维位置坐标系上的顶点矩阵,该坐标系包括用于水平位置的X轴(例如,长度)、用于竖直位置的Y轴(例如,高度)和用于深度的Z轴(例如,距离)。每个顶点可以包括颜色属性(例如,红色像素光值、绿色像素光值或蓝色像素光值);位置属性(例如,X位置坐标、Y位置坐标和Z位置坐标);纹理属性;反射属性;或它们的组合。纹理属性量化了深度图像的感知纹理,诸如深度图像的顶点区域中的颜色或强度的空间排列。
在一个示例中,眼镜系统400(图4)包括眼睛佩戴设备100,眼睛佩戴设备100包括镜框105、从镜框105的左横向侧170A延伸的左镜腿110A以及从镜框105的右横向侧170B延伸的右镜腿125B。眼睛佩戴设备100还可以包括具有重叠视场的至少两个可见光相机114A、114B。在一个示例中,眼睛佩戴设备100包括具有左视场111A的左可见光相机114A,如图3所示。左相机114A被连接到镜框105、左镜腿125A或左镜腿部分110A,以从场景306的左侧捕获左原始图像302A。眼睛佩戴设备100还包括具有右视场111B的右可见光相机114B。右相机114B被连接到镜框105、右镜腿125B或右镜腿部分110B,以从场景306的右侧捕获右原始图像302B。
图4是示例眼镜系统400的功能框图,该系统包括可穿戴设备(例如,眼睛佩戴设备100)、移动设备401和经由诸如互联网之类的各种网络495连接的服务器系统498。眼镜系统400包括眼睛佩戴设备100和移动设备401之间的低功率无线连接425和高速无线连接437。
如图4所示,眼睛佩戴设备100包括一个或多个可见光相机114A、114B,如本文所述,该一个或多个可见光相机114A、114B捕获静态图像、视频图像或静态图像和视频图像两者。相机114A、114B可以具有对高速电路430的直接存储器访问(DMA),并且用作立体相机。相机114A、114B可被用于捕获可被渲染成三维(3D)模型的初始深度图像,三维模型是红色、绿色和蓝色(RGB)成像场景的纹理映射图像。
眼睛佩戴设备100还包括两个光学组件180A、180B(一个与左横向侧170A相关联,并且一个与右横向侧170B相关联)。眼睛佩戴设备100还包括图像显示驱动器442、图像处理器412、低功率电路420和高速电路430(所有这些都可以被复制并结合到一对SoC中)。每个光学组件180A、180B的图像显示器177用于呈现图像,包括静态图像、视频图像或静态和视频图像。图像显示驱动器442被耦合到每个光学组件180A、180B的图像显示器,以便控制图像的显示。
眼睛佩戴设备100另外包括一个或多个麦克风130和扬声器132(例如,每种中的一个与眼睛佩戴设备的左侧相关联,并且另一个与眼睛佩戴设备的右侧相关联)。麦克风130和扬声器132可以结合到眼睛佩戴设备100的镜框105、镜腿125或镜腿部分110中。一个或多个扬声器132在低功率电路420、高速电路430或两者的控制下由音频处理器443(其可以被复制并结合到一对SoC中)驱动。扬声器132用于呈现包括例如节拍音轨(beat track)的音频信号。音频处理器443被耦合到扬声器132,以便控制声音的呈现。
图4中所示的用于眼睛佩戴设备100的部件位于位于镜缘或镜腿中的一个或多个电路板上,例如印刷电路板(PCB)或柔性印刷电路(FPC)。可替选地或附加地,所描绘的部件能够位于眼睛佩戴设备100的镜腿部分、镜框、铰链或鼻梁架中。左可见光相机114A和右可见光相机114B能够包括数码相机元件,诸如互补金属氧化物半导体(CMOS)图像传感器、电荷耦合器件、透镜或可被用于捕获数据的任何其他相应的可见光或光捕获元件,包括具有未知物体的场景的静态图像或视频。
如图4所示,高速电路430包括高速处理器432、存储器434和高速无线电路436。在该示例中,图像显示驱动器442被耦合到高速电路430并且由高速处理器432操作,以便驱动每个光学组件180A、180B的左图像显示器和右图像显示器。高速处理器432可以是能够管理眼睛佩戴设备100所需的任何通用计算系统的高速通信和操作的任何处理器。高速处理器432包括使用高速无线电路436来管理高速无线连接437到无线局域网(WLAN)的高速数据传输所需的处理资源。
在一些示例中,高速处理器432执行眼睛佩戴设备100的诸如LINUX OS或其他此类OS之类的OS,并且该OS被存储在存储器434中以供执行。除了任何其他职责之外,高速处理器432还执行眼睛佩戴设备100的软件架构,该软件架构被用于管理与高速无线电路436的数据传输。在一些示例中,高速无线电路436被配置为实施电气和电子工程师协会(IEEE)802.11通信标准,在本文中也称为Wi-Fi。在其他示例中,可以通过高速无线电路436来实施其他高速通信标准。
低功率电路420包括低功率处理器422和低功率无线电路424。眼睛佩戴设备100的低功率无线电路424和高速无线电路436能够包括短程收发器(BluetoothTM或蓝牙低能耗(BLE))和无线广域网、局域网或广域网收发器(例如,蜂窝或Wi-Fi)。移动设备401,包括经由低功率无线连接425和高速无线连接437进行通信的收发器,可以使用眼睛佩戴设备100的架构的细节来实施,网络495的其他元件也是如此。
存储器434包括能够存储各种数据和应用的任何存储设备,除其他事项外,包括由左可见光相机114A和右可见光相机114B、一个或多个红外相机220、图像处理器412生成的相机数据,以及由图像显示驱动器442在每个光学组件180A、180B的图像显示器上为显示器177生成的图像。尽管存储器434被示为与高速电路430集成,但是在其他示例中,存储器434可以是眼睛佩戴设备100的独立的、单独的元件。在某些此类示例中,电气路由线路可以通过包括有高速处理器432的芯片来提供从图像处理器412或低功率处理器422到存储器434的连接。在其它示例中,高速处理器432可管理存储器434的寻址,使得低功率处理器422将在需要涉及存储器434的读取或写入操作的任何时间启动高速处理器432。
如图4所示,眼睛佩戴设备100的高速处理器432能够被耦合到相机系统(可见光相机114A、114B)、图像显示驱动器442、用户输入设备491和存储器434。如图5所示,移动设备401的CPU 530可被耦合到相机系统570、移动显示驱动器582、用户输入层591和存储器540A。
服务器系统498可以是作为服务或网络计算系统的一部分的一个或多个计算设备,例如,其包括处理器、存储器和网络通信接口,以通过网络495与一个或多个眼睛佩戴设备100和移动设备401通信。
眼睛佩戴设备100的输出部件包括视觉元件,诸如与图2A和2B中所描述的每个透镜或光学组件180A、180B相关联的左图像显示器和右图像显示器(例如,诸如液晶显示器(LCD)、等离子体显示面板(PDP)、发光二极管(LED)显示器、投影仪或波导管的显示器)。眼睛佩戴设备100可以包括面向用户的指示器(例如,LED、扬声器或振动致动器),或者面朝外的信号(例如,LED、扬声器)。每个光学组件180A、180B的图像显示器由图像显示驱动器442驱动。在一些示例配置中,眼睛佩戴设备100的输出部件还包括附加指示器,诸如可听元件(例如,扬声器)、触觉部件(例如,致动器,诸如振动马达,以生成触觉反馈)和其他信号发生器。例如,设备100可以包括面向用户的一组指示器和面朝外的一组信号。面向用户的一组指示器被配置为由设备100的用户看到或以其他方式感测到。例如,设备100可以包括被定位成使得用户能够看到的LED显示器、被定位成生成用户能够听到的声音的一个或多个扬声器,或者被定位成提供用户能够感觉到的触觉反馈的致动器。面朝外的一组信号被配置为由设备100附近的观察者看到或以其他方式感测到。类似地,设备100可以包括被配置和定位成由观察者感测到的LED、扬声器或致动器。
眼睛佩戴设备100的输入部件可以包括输入部件(例如,被配置为接收字母数字输入的触摸屏或触摸板181、光电键盘或其他字母数字配置元件)、基于指针的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指示仪器)、触觉输入部件(例如,按钮开关、感测触摸或触摸手势的位置、力或位置和力的触摸屏或触摸板,或其他触觉配置元件)和音频输入部件(例如,麦克风)等。移动设备401和服务器系统498可以包括字母数字、基于指针、触觉、音频和其他输入部件。
在一些示例中,眼睛佩戴设备100包括被称为惯性测量单元472的运动感测部件的集合(其可以被复制并结合到一对SoC中)。运动感测部件可以是具有微小运动部件的微机电系统(MEMS),该微小运动部件通常小到足以成为微芯片的一部分。在一些示例配置中,惯性测量单元(IMU)472包括加速度计、陀螺仪和磁力计。加速度计感测设备100相对于三个正交轴(x,y,z)的线性加速度(包括由于重力引起的加速度)。陀螺仪感测设备100围绕三个旋转轴(俯仰、滚转、偏航)的角速度。加速度计和陀螺仪能够共同提供关于设备相对于六个轴(x、y、z、俯仰、滚转、偏航)的位置、取向和运动数据。磁力计(如果存在)感测设备100相对于磁北的航向。设备100的位置可以由位置传感器(诸如GPS单元473)、用于生成相对位置坐标的一个或多个收发器、高度传感器或气压计以及其他取向传感器(其可以被复制并结合到一对SoC中)来确定。此类位置系统坐标还能够通过无线连接425、437经由低功率无线电路424或高速无线电路436从移动设备401接收。
IMU 472可以包括数字运动处理器或编程或者与它们协作,其从部件收集原始数据并计算关于设备100的位置、取向和运动的多个有用值。例如,能够对从加速度计收集的加速度数据进行积分,以获得相对于每个轴(x,y,z)的速度;并且再次积分以获得设备100的位置(在线性坐标x、y和z中)。来自陀螺仪的角速度数据能够被积分以获得设备100的位置(在球面坐标中)。用于计算这些有用值的编程可被存储在存储器434中,并由眼睛佩戴设备100的高速处理器432执行。
眼睛佩戴设备100可以可选地包括附加的外围传感器,诸如生物特征传感器、专业传感器或与眼睛佩戴设备100集成的显示元件。例如,外围设备元件可以包括任何I/O部件,包括输出部件、运动部件、位置部件或本文所述的任何其他此类元件。例如,生物特征传感器可以包括用于检测表情(例如,手部表情、面部表情、声音表情、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗液或脑波)、或识别人(例如基于语音、视网膜、面部特征、指纹或生物电信号诸如脑电图数据的识别)等的部件。
移动设备401可以是智能手机、平板电脑、膝上型计算机、接入点,或者能够使用低功率无线连接425和高速无线连接437与眼睛佩戴设备100连接的任何其他此类设备。移动设备401被连接到服务器系统498和网络495。网络495可以包括有线和无线连接的任何组合。
如图4所示,眼镜系统400包括通过网络495耦合到眼睛佩戴设备100的计算设备,诸如移动设备401。眼镜系统400包括用于存储指令的存储器和用于执行指令的处理器。处理器432对眼镜系统400的指令的执行将眼睛佩戴设备100配置为与移动设备401协作,并且还通过网络495与另一眼睛佩戴设备100协作。眼镜系统400可以利用眼睛佩戴设备100的存储器434或移动设备401的存储器元件540A、540B、540C(图5)。
如本文所述,本文针对眼睛佩戴设备100、移动设备401和服务器系统498描述的任何功能都能够被体现在一个或多个计算机软件应用或编程指令集中。根据一些示例,“功能”、“多个功能”和“应用”、“多个应用、”指令、“多个指令”或“多个编程”是执行程序中定义的功能的一个或多个程序。各种编程语言可以被采用来开发以各种方式结构化的一个或多个应用,诸如面向对象编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如,C或汇编语言)。在具体示例中,第三方应用(例如,由除特定平台的供应商以外的实体使用ANDROIDTM或IOSTM软件开发工具包(software development kit,SDK)开发的应用)可以包括运行在移动OS(诸如IOSTM、ANDROIDTMPhone或其他移动OS)上的移动软件。在本示例中,第三方应用可以调用由OS提供的API调用,以促进本文中描述的功能。
因此,机器可读介质可以采用多种形式的有形存储介质。非易失性存储介质包括例如光盘或磁盘,诸如任何计算机设备中的任何存储设备或诸如此类,诸如可被用于实施如图所示的客户端设备、介质网关、转码器等。易失性存储介质包括动态存储器,诸如此类计算机平台的主存储器。有形传输介质包括同轴电缆;铜线和光纤,包括包含计算机系统内总线的电线。载波传输介质可以采用电信号或电磁信号的形式,或者声波或光波的形式,诸如在射频(RF)和红外(IR)数据通信期间生成的那些。因此,计算机可读介质的常见形式包括例如:软盘、软磁盘、硬盘、磁带、任何其他磁介质、CD-ROM、DVD或DVD-ROM、任何其他光学介质、穿孔卡纸带、具有孔图案的任何其他物理存储介质、RAM、PROM和EPROM、FLASH-EPROM、任何其他存储芯片或盒式存储器,传输数据或指令的载波、传输这种载波的电缆或链路,或者计算机可以从中读取编程代码或数据的任何其他介质。这些形式的计算机可读介质中的许多可以涉及将一个或多个指令的一个或更多序列携带到处理器以供执行。
图5是示例移动设备401的高级功能框图。移动设备401包括闪存540A,闪存540A存储将由CPU 530执行的编程以执行本文所述功能的全部或子集。
移动设备401可以包括相机570,相机570包括至少两个可见光相机(具有重叠视场的第一和第二可见光相机)或者至少一个可见光相机和具有基本重叠视场的深度传感器。闪存540A还可以包括经由相机570生成的多个图像或视频。
如图所示,移动设备401包括图像显示器580、用于驱动图像显示器580的移动显示驱动器582以及用于控制图像显示器580的显示控制器584。在图5的示例中,图像显示器580包括用户输入层591(例如,触摸屏),该用户输入层591被层叠在图像显示器580所使用的屏幕顶部或以其他方式集成到该屏幕中。
可以使用的触摸屏型移动设备的示例包括(但不限于)智能手机、个人数字助理(PDA)、平板计算机、膝上型计算机或其他便携式设备。然而,触摸屏型设备的结构和操作是通过示例的方式提供的;本文所描述的主题技术并不旨在限于此。因此,为了讨论的目的,图5提供了具有用户界面的示例移动设备401的框图,该用户界面包括用于接收输入(通过通过手、触控笔或其他工具的触摸、多点触摸或手势等)的触摸屏输入层591和用于显示内容的图像显示器580。
如图5所示,移动设备401包括至少一个数字收发器(XCVR)510,如WWAN XCVR所示,用于经由广域无线移动通信网络进行数字无线通信。移动设备401还包括附加的数字或模拟收发器,诸如用于短程网络通信的短程收发器(XCVR)520,诸如经由NFC、VLC、DECT、ZigBee、BluetoothTM,或Wi-Fi。例如,短程XCVR 520可以采用任何可用的双向无线局域网(WLAN)收发器的形式,该收发器的类型与在无线局域网中实施的一个或多个标准通信协议兼容,诸如IEEE 802.11下的Wi-Fi标准之一。
为了生成用于定位移动设备401的位置坐标,移动设备401能够包括全球位置系统(GPS)接收器。可替选地或附加地,移动设备401能够利用短程XCVR 520和WWAN XCVR 510中的一个或两个来生成用于定位的位置坐标。例如,蜂窝网络、Wi-Fi或BluetoothTM基于定位系统能够生成非常精确的位置坐标,特别是在组合使用时。这样的位置坐标能够经由XCVR510、520通过一个或多个网络连接传输到眼睛佩戴设备。
收发器510、520(即,网络通信接口)符合由现代移动网络利用的各种数字无线通信标准中的一个或多个。WWAN收发器510的示例包括(但不限于)被配置为根据码分多址(CDMA)和第三代合作伙伴计划(3GPP)网络技术操作的收发器,该网络技术包括但不限于例如3GPP类型2(或3GPP2)和LTE,有时被称为“4G”。例如,收发器510、520提供信息的双向无线通信,该信息包括数字化音频信号、静态图像和视频信号、用于显示的网页信息以及与网络相关的输入,以及到/来自移动设备401的各种类型的移动消息通信。
移动设备401还包括用作中央处理单元(CPU)530的微处理器。处理器是具有被构造和布置为执行一个或多个处理功能(通常是各种数据处理功能)的元件的电路。尽管可以使用分立的逻辑部件,但是这些示例利用形成可编程CPU的部件。例如,微处理器包括一个或多个集成电路(IC)芯片,集成电路芯片结合电子元件以执行CPU的功能。例如,CPU 530可以基于任何已知或可用的微处理器架构,诸如使用ARM架构的精简指令集计算(RISC),如目前在移动设备和其他便携式电子器件中常用的。当然,处理器电路的其他布置可被用于在智能手机、膝上型计算机和平板电脑中形成CPU 530或处理器硬件。
CPU 530通过将移动设备401配置为例如根据可由CPU 530执行的指令或编程来执行各种操作,以用作移动设备401的可编程主机控制器。例如,此类操作可以包括移动设备的各种一般操作,以及与移动设备上的应用的编程相关的操作。尽管可以通过使用硬连线逻辑来配置处理器,但是移动设备中的典型处理器是通过执行编程来配置的通用处理电路。
移动设备401包括用于存储编程和数据的存储器或存储系统。在该示例中,存储器系统可以根据需要包括闪存540A、随机存取存储器(RAM)540B和其他存储器部件540C。RAM540B用作由CPU 530正在处理的指令和数据的短期存储器,例如,作为工作数据处理存储器。闪存540A通常提供较长期的存储。
因此,在移动设备401的示例中,闪存540A被用于存储由CPU 530执行的编程或指令。取决于设备的类型,移动设备401存储并运行移动OS,通过该移动OS执行特定应用。移动OS的示例包括Google Android、Apple iOS(用于iPhone或iPad设备)、Windows Mobile、Amazon Fire OS、RIM BlackBerry OS等。
眼睛佩戴设备100内的处理器432可以构建眼睛佩戴设备100周围的环境的地图,确定眼睛佩戴设备在所映射的环境内的位置,并确定眼睛佩戴设备与所映射的环境中的一个或多个对象的相对位置。处理器432可以使用应用于从一个或多个传感器接收的数据的同步位置和映射(SLAM)算法来构建地图并确定位置和定位信息。在增强现实的情境下,SLAM算法被用于构建和更新环境的地图,同时跟踪和更新设备(或用户)在所映射的环境中的位置。能够使用各种统计方法对数学解进行近似,诸如粒子滤波器、卡尔曼滤波器、扩展卡尔曼滤波器和协方差交集。
传感器数据包括从相机114A、114B中的一个或两个接收的图像、从激光测距仪接收的一个或多个距离、从GPS单元473接收的位置信息、或者两个或更多个此类传感器数据的组合、或者从其他传感器提供的对确定位置信息中有用的数据。
图6是根据一个示例的包括第一SoC 602A和第二SoC 602B的眼睛佩戴设备100的部分框图。第一SoC 602A与存储器604A(例如,闪存)、电池606A、IMU 472A、相机114A和显示部件608A一起定位在左镜腿部分110A内。第二SoC 602B与存储器604B(例如,闪存)、电池606B、IMU 472B、相机114B和显示部件608B一起定位在右镜腿部分110B内。第一SoC 602A被耦合到第二SoC,用于在其间进行通信。
尽管在左镜腿部分110A中示出,但是第一SoC 602A、存储器604A、电池606A和显示部件608A中的一个或多个可以被定位在与左镜腿部分110A相邻的镜框105中(即,在左横向侧170A上)或定位在镜腿125A中。另外,尽管在右镜腿部分110B中示出,但是第二SoC 602B、存储器604B、电池606B和显示部件608B中的一个或多个可以被定位在与右镜腿部分110B相邻的镜框105中(即,在右横向侧170B上)或定位在镜腿125B中。此外,尽管示出了两个存储器604A、604B、电池606A、606B和显示部件608A、608B,但是可以结合更少或更多的存储器、电池和显示部件。例如,单个电池606可以为SoC 602A、602B两者供电,并且SoC 602A、602B可以访问三个或更多个存储器604以执行各种操作。
在一个示例中,两个SoC 602包含相同或基本相似的部件和部件布局。因此,它们的总处理资源是相等的。根据该示例,第一SoC 602A至少基本上与第二SoC相同(即,它们相同或具有95%或更大的部件或处理资源重叠)。通过使用双SoC 602(一个定位在眼睛佩戴设备100的一侧,并且另一个定位在眼睛佩戴设备的另一侧),冷却有效地分布在整个眼睛佩戴设备100中,其中眼睛佩戴设备的一侧为一个SoC 602提供被动冷却,并且眼睛佩戴设备的另一侧为另一个SoC 602提供被动冷却。
在一个示例中,眼睛佩戴设备100每镜腿大约3瓦的热被动冷却能力。每一侧上的显示器608(例如投影LED显示器)利用大约1-2瓦。每个SoC 602被设计为在小于大约1.5瓦(例如,800-1000mW;不同于通常用于移动电话中的SoC的大约5瓦)下工作,这使得能够利用通过镜框105、镜腿部分110A、镜腿125A或其组合的被动冷却来对眼睛佩戴设备105的每一侧上的电子器件进行适当的冷却。通过结合两个SoC 602(定位在眼睛佩戴设备100的相对侧以利用眼睛佩戴设备100所呈现的独特的被动冷却能力),计算能力满足或超过常规移动设备(其利用以功率耗散为5瓦工作的SoC)中可用的计算能力是可实现的。
在每个SoC中结合相同或相似的部件和部件布局,实现了在两个SoC 602之间分布处理工作负载(workload)的灵活性。在一个示例中,处理工作负载基于相邻部件被分布。根据该示例,每个SoC可以驱动各自的相机和显示器,这从电学的角度来看可能是期望的。在另一个示例中,处理工作负载基于功能被分布。根据该示例,一个SoC 602可以充当传感器集线器(例如,执行所有计算机视觉(CV)和机器学习(ML)、处理加视频编码),并且另一个SoC 602可以运行应用逻辑、音频和视频渲染功能,和通信(例如,Wi-Fi、4G/5G等)。从隐私的角度来看,基于功能来分布处理工作负载可能是可取的。例如,用一个SoC处理传感器信息以及用另一个SoC处理Wi-Fi,这实现了其中诸如相机图像之类的私人数据可以通过不允许将这样的传感器信息从进行传感器处理的SoC发送到管理通信的SoC而防止不被注意地离开眼睛佩戴设备的实施方式。在另一个示例中,如下面进一步详细描述的,处理工作负载可以基于处理工作负载(例如,由SoC温度或每秒指令确定)进行转移。
图7-图9是用于在眼睛佩戴设备中实施双SoC的流程图700/800/900。尽管参考眼睛佩戴设备100描述了这些步骤,但是本领域技术人员将从本文的描述中理解其中可以实践流程图700/800/900的一个或多个步骤的其他合适的眼睛佩戴设备。另外,可以设想,图7-图9中所示的并且在本文描述的步骤中的一个或多个可以被省略,同时执行或者串联执行,以不同于图示和描述的顺序执行,或者结合附加步骤执行。
图7是用于用第一SoC和第二SoC对眼镜执行操作的示例步骤的流程图700。在框702处,第一SoC(例如,SoC 602A)执行第一组操作。在框704处,第二SoC(例如,SoC 602B)执行第二组操作。第一组操作和第二组操作可以分布于其间,以基于相邻部件、功能、当前工作负载处理(例如,如基于如流程图700的示例步骤中所述的温度或每秒指令确定的)或其组合在相应SoC上执行。
在框706处,眼睛佩戴设备100监测第一和第二SoC的温度。在一个示例中,每个SoC包括用于测量温度的集成热敏电阻。根据该示例,一个SoC可以被指定为主SoC,并且另一个SoC可以被指定为副本SoC。主SoC可以经由相应的集成热敏电阻监测其自身温度,并且可以通过周期性地从副本SoC(其经由相应的集成热敏电阻监测其自身温度)请求温度读数来监测副本SoC温度。
在框708处,眼睛佩戴设备100在相应SoC上执行的第一组操作和第二组操作之间转移处理工作负载,以平衡温度(这有效地分布了处理工作负载)。在包括主SoC和副本SoC的示例中,主SoC管理工作负载到其自身和副本SoC的分配,以保持SoC之间相对均匀的分布。在一个示例中,当一个SoC的温度高于另一个SoC的温度的10%时,主SoC将处理工作负载从具有较高温度的SoC重新分配到具有较低温度的SoC,直到温度差小于5%为止。由每个SoC执行的处理指令可以被分配从1到10的可分配性值,其中1永远是不可分配的,并且10总是可分配的。当转移处理工作负载时,主SoC最初转移可分配性值为10、然后是9、8等的指令。连续重复框706和708的步骤以保持均匀的热分布。
图8是用于在第一SoC和第二SoC之间平衡眼睛佩戴设备上的处理工作负载的方法的示例步骤的流程图800。在框802处,第一SoC执行计算机视觉、机器学习和视频编码。在框804处,第二SoC运行应用逻辑,执行渲染功能,并且管理无线通信。
图9是在第一SoC和第二SoC之间平衡眼睛佩戴设备上的处理工作负载的另一种方法的示例步骤的流程图900。在框902处,第一SoC驱动第一相机和第一显示器。在框904处,第二SoC驱动第二相机和第二显示器。
图10A描绘了用于在眼睛佩戴设备100的第一SoC 602A和第二SoC 602B之间划分处理工作负载的客户端-服务器策略。该策略平衡了从眼睛佩戴设备100的第一侧(例如,左侧)到眼睛佩戴设备100第二侧(例如右侧)的功率,降低了互连复杂性(例如,与由第二SoC602B管理的无线子系统的互连复杂性),并且可以基于热负载、处理要求或其组合在左侧和右侧之间动态分配。
第一SoC 602A例如通过诸如PCI Express、SDIO、USB等的处理器间通信总线被连接到第二SoC 602B。与每个SoC的通信以及SoC之间的通信根据IPC协议。第一存储器604A被结合到第一SoC 602A中,并且第二存储器604B被结合到第二SoC 602B中。在图示的示例中,眼睛佩戴设备的第一相机114A、第二相机114B、第一显示器608A和第二显示器608B被方向耦合到第一SoC602A。第二SoC 602B被耦合到低功率微处理器422和无线电路424/436。
每个SoC在大约1.5瓦或更小功率(例如800-850mW)下工作。在一个示例中,第一SoC 602A负责在CPU上运行OS(100mW),用ISP/DSP捕获图像(200mW),在GPU上渲染静态图像和视频图像(200mW),并且在CPU、专用硬件加速逻辑块(例如,视差映射器)和DSP上运行各种算法(350mW),总共850mW的功率分配给眼睛佩戴设备的第一侧。第二SoC 602B负责在CPU上运行OS(100mW),使用CPU进行无线连接(100mW),在CPU和DSP上运行各种算法(300mW),并且在CPU、GPU和DSP上运行各种算法(300W),总共800mW的功率分配给眼睛佩戴设备的第二侧。这种实施方式远低于眼睛佩戴设备100的每侧大约2-3W的被动热分布的目标。
图10B描绘了用于在眼睛佩戴设备100的第一SoC 602A和第二SoC 602B之间划分处理工作负载的分割图像捕获和渲染策略。第一SoC 602A被直接耦合到第一相机和第二相机114A、114B,并且第二SoC 602B被直接耦合到第一显示器和第二显示器608A、608B、低功率微处理器422和无线电路424/436。第一SoC 602A可以通过诸如PCI Express、SDIO、USB等的处理器间通信总线连接到第二SoC 602B,并且可以基于热负载、处理要求或其组合在左侧和右侧之间动态地分配功率。该策略包括通过将相机114A、114B直接耦合到第一SoC602A而不直接耦合到第二SoC 602B或无线电路424/436的安全层。
每个SoC在大约1.5瓦或更小功率(例如950-1000mW)下工作。在一个示例中,第一SoC 602A负责在CPU上运行OS(100mW),用ISP/DSP捕获图像(200mW),在CPU、专用硬件加速逻辑块(例如,视差映射器)和DSP上运行各种算法(350mW),并且在CPU、GPU和DSP上运行各种算法(300mW),总共950mW的功率分配给眼睛佩戴设备的第一侧。第二SoC 602B负责在CPU上运行OS(100mW),使用CPU进行无线连接(100mW),在GPU上渲染图像(200mW),在CPU和DSP上运行各种算法(300mW),并且在CPU、GPU和DSP上运行各种算法(300mW),总共1000mW的功率分配给眼睛佩戴设备的第二侧。这种实施方式远低于眼睛佩戴设备100的每侧大约2-3W的被动热分布的目标。
图10C描绘了用于在眼睛佩戴设备100的第一SoC 602A和第二SoC 602B之间划分处理工作负载的左右部件策略。第一SoC 602A被直接耦合到第一相机114A和第一显示器608A,并且第二SoC 602B被直接耦合到第二相机114B和第二显示器608B、低功率微处理器422和无线电路424/436。第一SoC 602A可以通过诸如PCI Express、SDIO、USB等的处理器间通信总线连接到第二SoC602B,并且可以基于热负载、处理要求或其组合在左侧和右侧之间动态地分配功率。
每个SoC在大约1.5瓦或(例如950-1000mW)下工作。在一个示例中,第一SoC 602A负责在CPU上运行OS(100mW),用ISP/DSP捕获图像(100mW),在GPU上渲染图像(100mW),在CPU、专用硬件加速逻辑块(例如,视差映射器)和DSP上运行各种算法(350mW),并且在CPU、GPU和DSP上运行各种算法(300mW),总共950mW的功率分配给眼睛佩戴设备的第一侧。第二SoC602B负责在CPU上运行OS(100mW),使用CPU进行无线连接(100mW),用ISP/DSP捕获图像(100mW),在GPU上渲染图像(100mW),在CPU和DSP上运行各种算法(300mW),并且在CPU、GPU和DSP上运行各种算法(300mW),总共1000mW的功率分配给眼睛佩戴设备的第二侧。这种实施方式远低于眼睛佩戴设备100的每侧大约2-3W的被动热分布的目标。
图11A描绘了在电子设备(例如所示示例中的AR耳机)中使用的计算系统1100A上实施的常规OS的示例。常规OS协调过程。计算系统1100A包括诸如应用处理器1102(例如本文所述的SoC的处理器)的处理系统。在应用处理器1102上运行的内核1104实施OS1106。
应用服务1108(例如,社交媒体应用)在OS1106上运行以提供服务。其他软件部件在OS1106上运行以提供支持并启用应用服务1108的功能的服务。在一些示例中,这些部件包括以下一个或多个:透镜核心服务1110(包括用于创建覆盖(在所示示例中为三个透镜覆盖1112A、B和C)的软件)、虚拟输入/输出服务1114、超级终端模拟器服务1116和扫描服务1118。扫描服务1118协调对诸如数字信号处理器(例如,aDSP 1120a和cDSP 112b;诸如,可从CA,San Diego,Qualcomm获得的Snapdragon移动平台DSP)之类的硬件资源的访问。应用服务1108从相机114A、114B接收图像,并且经由投影仪180A、180B呈现图像。部件/服务使用IPC协议(诸如Android部件的Binder)和其他ad-hoc通信协议进行通信。
计算机系统1100A另外包括具有实时OS1124的通信协处理器1122,诸如可从USA,California,Cupertino的Nordic Semiconductor公司获得的协处理器。
图11B描绘了在电子设备(例如所示示例中的AR耳机)中使用的计算系统1100B上实施的容器化OS的示例。与传统OS不同,容器化OS协调服务而不是过程。计算系统1100B包括第一处理系统(第一应用处理器1152A,诸如本文所述的第一SoC)和第二处理系统(第二应用处理器1152B,诸如本文所述的第二SoC)。虽然参考具有两个应用处理器1152A、1152B的处理系统来描述该示例,但是本领域技术人员将理解如何将容器化OS方法应用于具有更多(例如,四个)或更少(例如,一个)处理系统的系统。虽然图11B中描绘的并且在本文描述的示例容器化OS利用虚拟机监视器作为系统隔离管理器来支持虚拟机之间的隔离和通信,但是本领域技术人员将理解如何使用利用诸如Docker的容器管理器支持容器级别的隔离和通信的系统隔离管理器来实施隔离和通信。
每个应用处理器1152包括各自的虚拟机监视器1154(例如,运行在应用处理器1152A上的虚拟机监视器1154A和运行在应用处理器1152B上的虚拟机监视器1154B)。在一个示例中,虚拟机监视器1154A和虚拟机监视器1154B至少基本上相同,使得SCVM可在任一应用处理器1152上的虚拟机监视器1154上运行。在一个示例中,虚拟机监视器1154被配置为启动(衍生)和停止每个SCVM,将外设访问委派给SCVM,仲裁对共享资源的访问,迫使对共享资源的访问的带宽限制,或其组合。
一个或多个SCVM 1156在相应应用处理器1152的虚拟机监视器1154上运行。每个SCVM 1156包括其自己的OS并且被配置为提供至少一个服务。另外,监督OS(未示出)在虚拟机监视器1154中的每一个上运行。
在所示示例中,在第一应用处理器1152A上,第一SCVM 1156A包括OS 1158A,并且被配置为提供应用服务1160A1(例如,社交媒体应用)和蓝牙同步服务1160A2。第二SCVM1156B包括OS1158B并且被配置为提供转码服务1160B。第三SCVM 1156C包括被配置为提供透镜核心服务1160C1的第一OS 1158C1和被配置为提供合成器服务1160C2的第二OS1158C2。在SCVM提供多于一个服务的情况下,内核由提供这些服务的容器共享,以管理SCVM上容器的处理。
在第二应用处理器1152B上,第四SCVM 1156D包括OS1158D,并且被配置为提供VIO服务1160D。第五SCVM 1156E包括OS1158E并且被配置为提供扫描服务1160D。第六SCVM1156F包括OS1158F,并且被配置为提供手动跟踪服务1160F。第七SCVM 1156G包括OS1158G并且被配置为提供相机服务1160G。
在一个示例中,每个SCVM包括至少一个资源预算(未示出)。资源预算指定SCVM可请求/利用的特定资源的最大数量。示例资源包括,通过非限制性示例的方式,存储器434的分配、处理器432的带宽等(例如,为VIO服务使用预留200MB的RAM,在服务级别5处不过量使用,保证CPU、存储器、网络和IO带宽)。
在每个SCVM包括两个或更多个资源预算的示例中,SCVM可以选择适当的资源预算(例如,响应于电子设备或应用处理器的当前操作模式)。例如,操作模式中的一种可以针对图像获取模式(其中相机服务1160G和VIO服务1160D需要更多的资源),并且另一种操作模式可以针对图像渲染模式(其中透镜核心服务1160C1和合成器服务1160C2需要更多的资源)。
服务1160A2和B-F提供了支持和启用应用服务1160A1的功能的服务。应用处理器1152可以与一个或多个数字信号处理器相关联(例如,应用处理器1152A与aDSP 1162A1和cDSP 1162B1相关联,并且应用处理器1152B与aDSP 1162A2和cDSP 1162B2相关联)。扫描服务1160E协调对诸如数字信号处理器(例如aDSP 1162A2和cDSP 1162B2)之类的硬件资源的访问。应用服务1160A1从相机114A、B接收图像(例如,经由相机服务1160G),并且经由投影仪180A、B呈现图像(例如,经由透镜核心服务1160C1和合成器服务1160C2)。
计算机系统1100B另外包括具有实时OS1124的通信协处理器1122,诸如可从USA,California,Cupertino的Nordic Semiconductor公司获得的协处理器。
部件/服务使用由监督OS和OS1158支持的IPC协议彼此通信(应用间处理器和应用内处理器)。IPC协议对每个服务的物理位置进行提取。换言之,从服务的角度来看,无论被调用者驻留在调用者的SoC、不同的SoC,还是像Nordic单元或Snapdragon xDSP单元这样的协处理器上,IPC调用都以相同的方式工作。
在一个示例中,IPC协议是数据交换格式协议,如可从sandstorm.io获得的Cap’nProto、protobuf或其他数据交换格式。连接的子集在图11B中示出,然而,基本上任何服务/部件都可以使用IPC协议而与任何其他服务/部件通信。除了应用间处理器/SoC和应用内处理器/SoC之外,服务还可以通过利用IPC协议发送消息来与其他资源(例如,aDSP 1162A、cDSP 1162B和Nordic 1122)进行通信。
图12A-12C是用于在计算设备(例如眼睛佩戴设备)中的诸如单SoC或双SoC的计算设备的处理系统上实施OS的流程图1200/1220/1240。尽管参考眼睛佩戴设备100描述了这些步骤,但是本领域技术人员将从本文的描述中理解其中可以实践流程图1200/1220/1240的一个或多个步骤的其他合适的设备。另外,可以设想,图12A-12C中所示的并且在本文描述的步骤中的一个或多个可以被省略,同时执行或者串联执行,以不同于图示和描述的顺序执行,或者结合附加步骤执行。此外,虽然图12A-12C中描绘的并且在本文描述的示例方法利用虚拟机监视器作为系统隔离管理器来支持虚拟机之间的隔离和通信,但是本领域技术人员将理解如何使用利用诸如Docker的容器管理器支持容器级别的隔离和通信的系统隔离管理器来实施隔离和通信。
图12A是用于在计算系统上执行操作的示例步骤的流程图1200。在框1202处,处理系统运行虚拟机监视器。系统虚拟机监视器具有监督OS。虚拟机监视器在至少一个处理系统中的每一个上(例如,在第一SoC 602A和第二SoC 602B中的每一个上)运行。
在框1204处,虚拟机监视器衍生具有被配置为在虚拟机监视器上运行的第一OS的第一SCVM。第一SCVM被配置为提供第一服务(例如,应用服务)。在一个示例中,第一SCVM包括第一容器,并且第一服务在第一容器中运行。在至少一个处理器是一个或多个SoC的情况下,SoC衍生第一SCVM。
在一个示例中,虚拟机监视器被配置为在特定SoC上衍生特定SCVM/服务。在其他示例中,虚拟机监视器被配置为在SoC上动态衍生SCVM,例如,分配处理和平衡热负载。
在框1206处,虚拟机监视器衍生具有被配置为在虚拟机监视器上运行的第二OS的第二SCVM。第二SCVM被配置为提供第二服务(例如,合成器服务)。在一个示例中,第二SCVM包括第二容器,并且第二服务在第二容器中运行。在至少一个处理器是一个或多个SoC的情况下,SoC衍生第二SCVM。
在框1208处,第一SCVM与第二SCVM通信。SCVM经由由虚拟机监视器的监督OS、第一OS和第二OS支持的IPC协议彼此通信。另外,SCVM可以与其他部件/资源进行通信。
在框1210处,计算系统管理SCVM的计算资源。在一个示例中,计算机系统通过IPC协议来管理计算资源。例如,每个SCVM可以包括资源预算(其在计算系统内被分配/计划)。在操作期间,SCVM监测其资源预算,并且仅在资源预算内时(经由IPC协议)从计算系统请求资源。计算系统调度所请求的服务(例如,通过使用具有优先级方案的轮询调度(round-robin))。在一个示例中,计算资源满足或超过来自所有SCVM的组合的资源预算。由于SCVM只在它们资源预算内请求资源,因此将有足够的资源可用于满足所有SCVM的请求,而无需拒绝或限制对服务的访问。
在一个示例中,排他地与硬件交互的服务(例如,合成器服务、相机服务)被提供有经由虚拟机(VM)直通的对该硬件的直接访问,这消除了对半虚拟化和设备模拟开销的需要。
图12B是用于在计算系统上执行操作的示例步骤的流程图1220。在框1222处,计算系统以第一模式(例如,图像获取模式)操作。在一个示例中,计算系统具有多个操作模式,并且一个或多个(例如,所有)SCVM具有对应的操作模式。根据该示例的每个SCVM的操作模式具有相关联的经限定资源预算(例如,保持在SCVM可访问的查找表中)。
在框1224处,SCVM以第一模式操作。当处于第一操作模式时,每个SCVM在由该模式下操作的该SCVM的相应资源预算施加的约束内利用资源。SCVM可以在衍生时默认为第一模式,或者虚拟机监视器可以在衍生时向SCVM提供标识第一模式的通信(例如,经由IPC协议)。
在框1226处,计算系统通知SCVM其正在转换到第二模式(例如,图像投影模式)。当计算系统从第一模式改变到第二模式时,计算系统向SCVM通知转换(例如,经由IPC协议),使得SCVM可以为转换做准备。
在框1228处,计算系统转换到第二模式。
在框1230处,SCVM以第二模式操作。当处于第二操作模式时,每个SCVM在由该模式下操作的该SCVM的相应资源预算施加的约束内利用资源。SCVM可以响应于来自计算系统(例如经由IPC协议)的其正在转换到第二模式的通知而转换到以第二模式操作。
图12C是用于在虚拟机监视器上执行操作的示例步骤的流程图1240。在框1242处,虚拟机监视器启动和停止第一SCVM和第二SCVM。在一个示例中,虚拟机监视器根据配置和设备状态的变化按需启动和停止SoC中节点上的虚拟机服务。在框1244处,虚拟机监视器将外设访问委派给第一SCVM和第二SCVM。在框1246处,虚拟机监视器仲裁对共享资源的访问。在框1248处,虚拟机监视器迫使对共享资源的访问的带宽限制。
除了上面刚刚陈述的,已经陈述或示出的任何内容都不旨在或不应该被解释为致使将任何部件、步骤、特征、目的、益处、优点或等同物奉献给公众,无论其是否在权利要求中被陈述。
将理解,本文中使用的术语和表述具有如这样的术语和表述相对于其对应的各自探究和研究领域所赋予的普通含义,除非本文中另外已经阐述了其中的具体含义。关系术语(诸如第一和第二等)可以仅用于将一个实体或动作与另一个实体或动作区分开,而不一定要求或暗示这样的实体或动作之间的任何实际的这种关系或顺序。术语“包括”、“包含”、“含有”、“涵盖”或其任何其他变型旨在涵盖非排他性的包含,使得包括或包含一系列元素或步骤的过程、方法、物品或装置不仅包括那些元素或步骤,还可以包括未明确列出的或这样的过程、方法、物品或装置固有的其他元素或步骤。在没有进一步约束的情况下,以“一”或“一个”开头的元素并不排除在包括该元素的过程、方法、物品或装置中存在额外的相同元素。
除非另有说明,否则本说明书(包括随后的权利要求)中阐述的任何及所有测量结果、值、额定值、位置、幅值、尺寸和其他规格都是近似的,而不是精确的。这些量旨在具有合理的范围,即与它们所涉及的功能以及它们所属领域的惯例一致。例如,除非另有明确说明,否则参数值或类似值可能与所述量或范围相差多达正负百分之十。
此外,在前面的详细描述中,可以看到,出于精简本公开的目的,各个特征在各种示例中被组合在一起。这种公开的方法不应当被解释为反映这样的意图,即所要求保护的示例要求比每个权利要求中明确陈述的特征更多。相反,正如以下权利要求所反映的,要被保护的主题在于少于任何单个所公开示例的所有特征。因此,以下权利要求由此并入详细描述中,其中每项权利要求作为单独所要求保护的主题独立存在。
尽管前面已经描述了被认为是最佳模式和其他示例的内容,但是可以理解的是,可以在其中进行各种修改,并且本文中公开的主题可以以各种形式和示例实施,并且它们可以应用于众多应用中,本文中仅已经描述了其中的一些应用。以下权利要求旨在要求保护属于本概念的真实范围内的任何及所有修改和变型。

Claims (20)

1.一种电子设备,包括:
至少一个处理系统;
系统隔离管理器,被配置为在所述至少一个处理系统中的每一个上运行,所述系统隔离管理器运行监督操作系统(OS);
具有第一OS的第一自包含虚拟机(SCVM),所述第一SCVM由所述系统隔离管理器管理并且被配置为提供第一服务;
具有第二OS的第二SCVM,所述第二SCVM由所述系统隔离管理器管理并且被配置为提供第二服务,并且经由由所述监督OS、所述第一OS和所述第二OS支持的进程间通信(IPC)协议与所述第一SCVM通信。
2.根据权利要求1所述的电子设备,其中,所述至少一个处理系统包括第一SoC和第二SoC,并且其中所述第一SCVM和第二SCVM每个在所述第一SoC或所述第二SoC上衍生。
3.根据权利要求1所述的电子设备,其中,所述系统隔离管理器是虚拟机监视器。
4.根据权利要求1所述的电子设备,其中,所述第一SCVM是第一容器,所述第二SCVM是第二容器,并且所述系统隔离管理器是管理第一容器和第二容器的容器管理器。
5.根据权利要求1所述的电子设备,还包括:
由所述第一SCVM和所述第二SCVM共享的计算资源;
其中所述计算资源通过IPC协议来管理。
6.根据权利要求1所述的电子设备,其中,所述第一SCVM包括第一容器和第二容器,并且还被配置为提供第三服务,其中所述第一服务在所述第一容器中运行,并且所述第三服务在所述第二容器中运行。
7.根据权利要求6所述的电子设备,其中,所述第一SCVM包括由第一SCVM共享的第一容器和所述第二容器所共享的内核。
8.根据权利要求1所述的电子设备,其中,所述第一服务具有第一经限定资源预算,并且所述第二服务具有第二经限定资源预算。
9.根据权利要求8所述的电子设备,其中,所述至少一个处理系统具有第一操作模式和第二操作模式,所述第一经限定资源预算和所述第二经限定资源预算是针对所述第一操作模式的,所述第一服务具有针对所述第二操作模式的第三经限定资源预算,并且所述第二服务具有针对所述第二操作模式的第四经限定资源预算。
10.根据权利要求1所述的电子设备,其中,所述系统隔离管理器被配置为执行以下中的至少一项:
启动和停止所述第一SCVM和所述第二SCVM;
将外设访问委派给所述第一SCVM和所述第二SCVM;
仲裁对共享资源的访问;或
迫使对共享资源的访问的带宽限制。
11.一种眼镜,包括:
镜框,被配置为佩戴在用户的头部上;
结合到所述眼镜的镜框中的根据权利要求1所述的电子设备;
其中,所述至少一个处理系统包括第一SoC和第二SoC;并且
其中,所述第一SoC被定位在所述镜框的第一部分中,并且至少一个SoC中的第二SoC被定位在所述镜框的第二部分中。
12.根据权利要求11所述的眼镜,其中,所述第一部分与所述镜框的第一侧相邻,并且所述镜框的第二部分与所述镜框的第二侧相邻。
13.一种用于与电子设备一起使用的方法,所述方法包括:
运行系统隔离管理器,所述系统隔离管理器具有监督操作系统(OS);
衍生具有第一OS的第一自包含虚拟机(SCVM),所述第一SCVM由所述系统隔离管理器管理并且被配置为提供第一服务;
衍生具有第二OS的第二SCVM,所述第二SCVM由所述系统隔离管理器管理并且被配置为提供第二服务;并且
经由由所述监督OS、所述第一OS和所述第二OS支持的进程间通信(IPC)协议,在所述第一SCVM和所述第二SCVM之间发送通信。
14.根据权利要求13所述的方法,其中,衍生步骤包括:
在第一SoC上衍生所述第一SCVM;并且
在第一SoC上衍生所述第二SCVM。
15.根据权利要求13所述的方法,其中,衍生步骤包括:
在第一SoC上衍生所述第一SCVM;并且
在第二SoC上衍生所述第二SCVM。
16.根据权利要求13所述的方法,还包括:
通过IPC协议管理由所述第一SCVM和所述第二SCVM使用的计算资源。
17.根据权利要求13所述的方法,其中,所述第一SCVM包括第一容器和第二容器,并且还被配置为提供第三服务,其中所述方法还包括:
在所述第一容器中运行所述第一服务;并且
在所述第二容器中运行所述第三服务。
18.根据权利要求13所述的方法,其中,所述第一服务具有第一经限定资源预算并且所述第二服务具有第二经限定资源预算,至少一个处理系统具有第一操作模式和第二操作模式,所述第一经限定资源预算和所述第二经限定资源预算是针对所述第一操作模式的,所述第一服务具有针对所述第二操作模式的第三经限定资源预算,所述第二服务具有针对所述第二操作模式的第四经限定资源预算,并且所述方法还包括:
以所述第一操作模式操作所述至少一个处理系统,其中在处于第一模式时所述第一SCVM在所述第一经限定资源预算内操作,并且所述第二SCVM以所述第二经限定资源预算操作;
向在所述第一经限定资源预算内操作的所述第一SCVM和以所述第二经限定资源预算操作的所述第二SCVM通知:所述至少一个处理系统正在切换到第二模式;并且
以所述第二操作模式操作所述至少一个处理系统,其中在处于第二模式时所述第一SCVM在所述第三经限定资源预算内操作,并且所述第二SCVM以所述第四经限定资源预算操作。
19.根据权利要求13所述的方法,其中,所述系统隔离管理器是虚拟机监视器,并且所述方法还包括所述虚拟机监视器执行以下中的至少一个:
启动和停止所述第一SCVM和所述第二SCVM;
将外设访问委派给所述第一SCVM和所述第二SCVM;
仲裁对共享资源的访问;或
迫使对共享资源的访问的带宽限制。
20.一种包括用于操作至少一个处理系统的指令的非暂时性计算机可读介质,所述指令在由所述至少一个处理系统执行时将所述至少一个处理系统配置为:
运行系统隔离管理器,所述系统隔离管理器具有监督操作系统(OS);
衍生具有第一OS的第一自包含虚拟机(SCVM),所述第一SCVM由所述系统隔离管理器管理并且被配置为提供第一服务;
衍生具有第二OS的第二SCVM,所述第二SCVM由所述系统隔离管理器管理并且被配置为提供第二服务;并且
经由由所述监督OS、所述第一OS和所述第二OS支持的进程间通信(IPC)协议,在所述第一SCVM和所述第二SCVM之间发送通信。
CN202280052538.XA 2021-07-28 2022-07-15 电子设备和虚拟机操作系统 Pending CN117751348A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163226527P 2021-07-28 2021-07-28
US63/226,527 2021-07-28
PCT/US2022/037349 WO2023009334A1 (en) 2021-07-28 2022-07-15 Electronic device and virtual machine operating system

Publications (1)

Publication Number Publication Date
CN117751348A true CN117751348A (zh) 2024-03-22

Family

ID=82851605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280052538.XA Pending CN117751348A (zh) 2021-07-28 2022-07-15 电子设备和虚拟机操作系统

Country Status (5)

Country Link
US (1) US20230034649A1 (zh)
EP (1) EP4377790A1 (zh)
KR (1) KR20240034852A (zh)
CN (1) CN117751348A (zh)
WO (1) WO2023009334A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509466B1 (en) * 2011-05-11 2019-12-17 Snap Inc. Headwear with computer and optical element for use therewith and systems utilizing same
EP3314423B1 (en) * 2015-06-26 2023-03-01 Intel Corporation Techniques to run one or more containers on virtual machine
US10255147B2 (en) * 2016-04-14 2019-04-09 Vmware, Inc. Fault tolerance for containers in a virtualized computing environment
US10977066B2 (en) * 2018-04-06 2021-04-13 Red Hat, Inc. Virtual machine to container conversion and optimization
US11327780B2 (en) * 2018-09-18 2022-05-10 Vmware, Inc. Network-efficient isolation environment redistribution
US11645400B2 (en) * 2019-10-04 2023-05-09 Vmware, Inc. Secured interprocess communication

Also Published As

Publication number Publication date
EP4377790A1 (en) 2024-06-05
KR20240034852A (ko) 2024-03-14
WO2023009334A1 (en) 2023-02-02
US20230034649A1 (en) 2023-02-02

Similar Documents

Publication Publication Date Title
US11275453B1 (en) Smart ring for manipulating virtual objects displayed by a wearable device
US20230108121A1 (en) Reconciling events in multi-node systems using hardware timestamps
CN114531951A (zh) 自动视频捕捉和合成系统
WO2023027862A1 (en) System on a chip with simultaneous usb communications
US20230109476A1 (en) Synchronizing systems on a chip using time synchronization messages
CN116324679A (zh) 上下文相关的眼戴器遥控器
US20230034649A1 (en) Electronic device virtual machine operating system
US11994751B1 (en) Dual system on a chip eyewear
US11775005B2 (en) Synchronizing systems on a chip using a shared clock
US20230113076A1 (en) Synchronizing systems-on-chip using gpio timestamps
US11997249B2 (en) Dual system on a chip eyewear
US20230109916A1 (en) Dual system on a chip eyewear
US20230124748A1 (en) Dual system on a chip eyewear
US20230117720A1 (en) Dual system on a chip eyewear
US20230123344A1 (en) Dual system on a chip eyewear
US11784619B2 (en) Disciplining crystals to synchronize timing of independent nodes
US20230262207A1 (en) Dual system on a chip eyewear having a mipi bridge
KR20240070680A (ko) 공유 클럭을 사용한 칩 상 시스템들의 동기화
CN118119911A (zh) 双片上系统眼镜
KR20240073941A (ko) 독립 노드들의 타이밍을 동기화하기 위한 크리스털들의 규율화
WO2023129294A1 (en) Debug access of eyewear having multiple socs

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination