CN108292233B - 开启虚拟机的应用处理器 - Google Patents
开启虚拟机的应用处理器 Download PDFInfo
- Publication number
- CN108292233B CN108292233B CN201680067913.2A CN201680067913A CN108292233B CN 108292233 B CN108292233 B CN 108292233B CN 201680067913 A CN201680067913 A CN 201680067913A CN 108292233 B CN108292233 B CN 108292233B
- Authority
- CN
- China
- Prior art keywords
- processor
- virtual machine
- application processor
- start state
- application
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Abstract
本文公开了与虚拟机应用处理器启动相关联的装置、方法和存储介质。在实施例中,用于计算的装置可以包括多个处理器核心;以及OS的多个OS模块。OS模块可以包括BSP模块和AP模块。BSP模块可以被配置为在VM被启动时将VM的AP的开始状态写入存储区域;并且AP模块可以被配置为在开始状态处直接以保护执行模式来开启AP,而无需首先经过实执行模式。可以描述和/或要求保护其他实施例。
Description
相关申请
本申请要求于2015年12月21日提交的题为“STARTING APPLICATION PROCESSORSOF AVIRTUAL MACHINE”的美国专利申请14/976,990的优先权。
技术领域
本公开涉及计算领域。更具体地,本公开涉及开启虚拟机的应用处理器。
背景技术
本文提供的背景描述是出于总体上呈现本公开的上下文的目的。除非在本文中另有说明,否则本部分中描述的材料不是本申请中的权利要求的现有技术,并且不因包含在本部分中而被认为是现有技术。
典型地,在启动虚拟机(VM)期间,VM的客体操作系统(OS)首先引导VM的虚拟引导启动(boot strap)处理器(BSP),BSP继而以指定的次序按顺序引导VM的所有虚拟应用处理器(AP)。对于Intel x86执行环境,虚拟BSP(下文中简称为BSP)发送INIT-SIPI-SIPI IPI序列以开启虚拟AP(下文中简称为AP)。每个唤醒的AP将在x86实模式下开始执行,并且随后切换到保护模式,例如,32位保护模式。因此,要求虚拟机监视器(VMM)(也称为管理程序)来支持AP启动期间的实模式执行,这增加了VMM的复杂度。(INIT=初始化,IPI=处理器间中断,SIPI=启动IPI。)
附图说明
通过以下具体实施方式,结合附图,将容易理解实施例。为了有助于本说明书,相同的附图标记表示相同的结构元素。在附图的图中通过示例的方式而非通过限制的方式来说明实施例。
图1示出了根据各种实施例的具有本公开的虚拟机应用处理器启动技术的计算设备。
图2示出了根据各种实施例的BSP启动模块的示例过程。
图3示出了根据各种实施例的VMM的示例过程。
图4示出了根据各种实施例的AP启动模块的示例过程。
图5示出了根据各种实施例的适合用于实施本公开的方面的示例计算机系统。
图6示出了根据各种实施例的具有用于实施参照图2-4描述的方法的指令的存储介质。
具体实施方式
本文公开了与虚拟机应用处理器启动相关联的装置、方法和存储介质。在实施例中,用于计算的装置可以包括多个处理器核心;以及操作系统的多个操作系统模块。操作系统模块可以包括:BSP启动模块,其由多个处理器核心中的被选择作为VM的BSP的第一处理器核心在VM被启动时进行操作,以将VM的AP的开始状态写入存储区域;以及AP启动模块,其由多个处理器核心中的被选择作为AP的第二处理器核心进行操作,以在开始状态处直接以保护执行模式来开启AP,而无需首先经过实执行模式。
在下面的具体实施方式中,参考形成其一部分的附图,在附图中相同的附图标记始终表示相同的部分,并且附图通过可以实施的说明性实施例的方式示出。应该理解,在不脱离本公开的范围的情况下可以利用其他实施例并且可以进行结构或逻辑改变。因此,以下具体实施方式不应被视为具有限制意义,并且实施例的范围由所附权利要求及其等同物限定。
在所附说明书中公开了本公开的方面。可以在不脱离本公开的精神或范围的情况下设计本公开的替代实施例及其等同物。应该注意,下面公开的相同元素在附图中由相同的附图标记指示。
各种操作可以以最有助于理解所要求保护的主题的方式依次描述为多个离散的动作或操作。然而,描述的次序不应被解释为暗指这些操作必须是次序相关的。特别地,这些操作可以不按照呈现的次序执行。所描述的操作可以以与所描述的实施例不同的次序来执行。在附加实施例中可以执行各种附加操作和/或可以省略所描述的操作。
出于本公开的目的,短语“A和/或B”意指(A)、(B)或(A和B)。出于本公开的目的,短语“A、B和/或C”意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
说明书可以使用短语“在一个实施例中”或“在实施例中”,其可以各自指代相同或不同实施例中的一个或多个。此外,如关于本公开的实施例使用的术语“包括”、“包含”、“具有”等是同义的。
如本文所使用的,术语“模块”可以指代以下各项,是以下各项的一部分或包括以下各项:专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的(共享、专用或群组)处理器和/或(共享、专用或群组)存储器、组合逻辑电路和/或提供所描述的功能的其他合适的组件。
现在参考图1,其中示出了根据各种实施例的具有本公开的虚拟机应用处理器启动技术的计算设备。如所示出的,在实施例中,计算设备100可以包括如所示出地彼此可操作地耦合的硬件101、固件(FW)/基本输入/输出服务(BIOS)106、VMM 120和一个或多个VM122。硬件101可以包括具有多个处理器核心的一个或多个处理器102。VM 122可以包括虚拟BSP 111和多个虚拟AP 110,其中虚拟BSP 111映射到处理器102的处理器核心中的选定的一个核心,多个虚拟AP 110映射到处理器102的处理器核心中的选定的对应核心。VM 122还可以包括OS 112和多个应用114。OS 112可以包括多个服务和/或实用程序130,其可以包括BSP启动模块132和AP启动模块134。应用114可以是本领域中已知的任何应用。如下面将更详细地描述的,BSP启动模块132、AP启动模块134和VMM 130可以与本公开的虚拟机AP启动技术合并,以在保护执行模式下直接开启AP 110而无需首先经过实执行模式。与应用执行飞地管理有关的这些方面和其他方面将在下面参照图2-4进一步描述。
(多个)处理器102可以是本领域已知的多个处理器中的任何一个,其具有一个或多个处理器核心。在实施例中,硬件101还可以包括存储器104、I/O设备108或其他元件(未示出)。存储器104可以是适用于存储数据的、本领域中任何已知的易失性或非易失性存储器。存储器104可以包括高速缓冲存储器和系统存储器的层级。高速缓存和系统存储器两者都可以分别组织成高速缓存页和存储器页。I/O设备108的示例可以包括诸如以太网、WiFi、3G/4G、近场通信、通用串行总线(USB)等的通信或联网接口,诸如固态驱动器、磁性驱动器和/或光学驱动器的存储设备,诸如键盘、鼠标、触敏屏幕等的输入设备以及诸如显示设备、打印机等的输出设备。
FW/BIOS 106可以是本领域已知的多种FW/BIOS中的任何一种。除了虚拟机应用处理器启动技术之外,OS 112同样可以是本领域已知的多种OS中的任何一种,例如,来自公司的Windows OS。应用114同样可以是本领域已知的多种应用中的任何一种。
现在参考图2,其中示出了根据各种实施例的BSP模块的示例过程。如所示出的,过程200可以包括在框202-208处执行的操作。框202-208处的操作可以例如由图1的BSP模块132来执行,由映射到处理器102的处理器核心中的选定的一个处理器核心的虚拟BSP 111来操作。
过程200可以在框202处开始。在框202处,可以对是否仍然存在更多要开启以用于正在开启的VM的AP进行确定。该确定可以例如由BSP模块132在VM 122启动时针对由OS 112进行的引导来执行。
如果仍然存在更多的AP要开启,则在框204处,可以建立要开启的下一AP的启动状态。在实施例中,要开启的下一AP的启动状态可以在VM的BSP的通用寄存器中建立。启动状态可以包括启动时的各种执行控制值,例如,下一个指令指针、堆栈指针值、存储器参数等。在实施例中,例如在X86执行环境中,启动状态可以包括(扩展的)指令指针(IP或EIP)寄存器的值、各种分段寄存器(即,全局描述符表(GDT)和CS、DS、ES、FS寄存器)的值等。在实施例中,控制寄存器可以是VM的BSP的型号特定寄存器(MSR)。
接下来,在框206处,在设置要开启的下一AP的启动状态时,可以将执行控制转移到VMM。对执行控制的转移可以明确地或隐含地包括启动状态的数据的位置。在实施例中,写入BSP的控制寄存器(例如,MSR)可能导致从控制寄存器陷入VMM。
接下来,在框208处,过程200可以等待来自被开启的AP的启动完成信号或消息。最终,在接收到来被开启的AP的启动完成信号或消息时,过程200可以返回到框202,并且从其继续,如较早描述的。
最后,当正在开启的VM的所有AP已经开启时,过程200可以从框202结束(与前进到框204相反)。
图3示出了根据各种实施例的VMM的示例过程。如所示出的,过程300可以包括在框302-306处执行的操作。框302-306处的操作可以例如由由图1的VMM 120来执行,由处理器102的处理器核心中的一个或多个处理器核心来操作。
过程300可以在框302处开始。在框302处,可以取回要开启以用于正在开启的VM的下一AP的启动状态(如由VM的BSP模块建立的)。例如,在接收到执行控制(如从VM的控制寄存器陷入的)时,VMM 120可以从(陷入来自于的)对应BSP的通用寄存器中取回要开启的下一AP的启动状态。
接下来,在框304处,可以将取回的要开启的下一AP的启动状态编程到要开启的AP可访问的VM的控制结构中。
接下来,在框306处,可以(例如,由VMM)开启AP,以便在被编程到VM的控制结构中的开始状态处执行。
图4示出了根据各种实施例的应用处理器启动模块的示例过程。如所示出的,过程400可以包括在框402-406处执行的操作。框402-406处的操作可以例如由图1的AP模块134来执行,由映射到处理器102的处理器核心中的选定的一个处理器核心的虚拟AP 110中的一个来操作。
过程400可以在框402开始。在402处,在如编程到VM的控制结构中的开始状态处,AP的执行可以直接在保护模式下开始,而无需首先经过实执行模式。在实施例中,可以利用存储器分页来开始保护执行模式。
在框404处,在取回如编程到VM的控制结构中的开始状态时,AP可以被初始化。
在框406处,在初始化完成时,可以用信号通知BSP,以通知BSP初始化完成,或者可以发送完成消息。
因此,已经描述了开启VM的AP的改进方法。本公开的虚拟机AP启动技术的优点可以包括通过在AP启动期间不要求VMM支持实执行模式来加速虚拟机AP启动过程和/或降低VMM的复杂度。优点可能是显著的,特别是当VM配置有多个要开启的AP时。
图5示出了可以适用于实施本公开的选定方面的示例计算机系统。如所示出的,计算机500可以包括具有多个处理器核心的一个或多个处理器502、只读存储器(ROM)503和系统存储器504。另外,计算机系统500可以包括大容量存储设备506。大容量存储设备506的示例可以包括但不限于磁带驱动器、硬盘驱动器、压缩盘只读存储器(CD-ROM)等。此外,计算机系统500可以包括输入/输出设备508(例如,显示器、键盘、光标控件等)和通信接口510(例如,网络接口卡、调制解调器等)。这些元件可以经由系统总线512彼此耦合,系统总线512可以代表一条或多条总线。在多条总线的情况下,多条总线可以通过一个或多个总线桥(未示出)进行桥接。
这些元件中的每个元件都可以执行本领域已知的其常规功能。特别地,ROM 503可以包括基本输入/输出系统服务(BIOS)505。系统存储器504和大容量存储设备506可以用于存储统称为计算逻辑522的、实现与如较早描述的BSP启动模块132、AP启动模块134和/或VMM 120相关联的操作的编程指令的工作副本和永久副本。各种元件可以由(多个)处理器502支持的汇编指令或例如可以编译成这样的指令的高级语言(例如,C)来实现。
这些元件510-512的数量、能力和/或容量可以取决于计算机系统500是用作诸如可穿戴设备、智能电话、计算机平板电脑、膝上型计算机等的移动设备还是用作诸如台式计算机、服务器、游戏控制台、机顶盒、信息娱乐控制台等的静止设备而变化。以其他方式,元件510-512的构成是已知的,并且因此将不再进一步描述。
如本领域技术人员将理解的,本公开可以体现为方法或计算机程序产品。因此,本公开除了如较早描述的以硬件来体现之外,还可以采取完全软件实施例(包括固件、驻留软件、微代码等)或者对可以全部总体称为“电路”、“模块”或“系统”的软件方面和硬件方面进行组合的实施例的形式。此外,本公开可以采取体现在任何有形或非暂时性表达介质中的计算机程序产品的形式,该有形或非暂时性表达介质具有体现在介质中的计算机可用程序代码。图6示出了可以适用于存储指令的示例计算机可读非暂时性存储介质,该指令响应于装置执行指令而使得装置实施本公开的选定方面。如所示出的,非暂时性计算机可读存储介质602可以包括多个编程指令604。编程指令604可以被配置为响应于编程指令的执行而使得设备(例如,计算机500)能够实现BSP启动模块132、AP启动模块134和/或VMM 120(的方面)。在替代实施例中,编程指令604可以替代地布置在多种计算机可读非暂时存储介质602上。在其他实施例中,编程指令604可以布置在计算机可读暂时性存储介质602上,例如,信号。
可以使用一种或多种计算机可用或计算机可读介质的任何组合。计算机可用或计算机可读介质可以是例如但不限于电子、磁性、光学、电磁、红外或半导体系统、装置、设备或传播介质。计算机可读介质的更具体的示例(非穷尽列表)将包括以下各项:具有一条或多条电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式压缩盘只读存储器(CD-ROM)、光存储设备、诸如支持互联网或内联网介质之类的传输介质、或磁存储设备。注意,计算机可用或计算机可读介质甚至可以是纸张或在其上打印程序的另一合适介质,因为程序可以经由例如对纸张或其他介质进行光学扫描而被电子地捕获,然后编译、解释或以其他方式以合适方式处理(如果需要),并且然后存储在计算机存储器中。在本文档的上下文中,计算机可用或计算机可读介质可以是能够包含、存储、传达、传播或传输程序以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备相结合地使用的任何介质。计算机可用介质可以包括或者在基带中或者作为载波的一部分的、其中体现有计算机可用程序代码的传播数据信号。计算机可用程序代码可以使用任何适当的介质来传输,包括但不限于无线、有线、光纤电缆、RF等。
用于执行本公开的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,编程语言包括面向对象的编程语言(例如,Java、Smalltalk、C++等)以及常规的过程编程语言(例如,“C”编程语言或类似的编程语言)。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机上且部分在远程计算机上、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。
参照根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开。应该理解,流程图图示和/或框图中的每个框以及流程图图示和/或框图中的框的组合可以通过计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以用于产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的框或多个框中指定的功能/动作的单元。
这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指导计算机或其他可编程数据处理装置以特定方式运行,使得存储在计算机可读介质中的指令产生包括实现在流程图和/或框图的框或多个框中指定的功能/动作的指令单元的制品。
计算机程序指令还可以被加载到计算机或其他可编程数据处理装置上,以使得在计算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图的框或多个框中指定的功能/动作的过程。
附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。就这一点而言,流程图或框图中的每个框可以表示包括用于实现指定的(多个)逻辑功能的一个或多个可执行指令的模块、段或代码部分。还应该注意,在一些替代实现方式中,框中指出的功能可以不按照附图中指出的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行。还应注意到,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作的、基于专用硬件的系统或专用硬件和计算机指令的组合来实现。
本文使用的术语仅用于描述特定实施例的目的,而不旨在限制公开内容。如本文所使用的,除非上下文另外清楚地指出,否则单数形式“一”、“一个”和“该”旨在也包括复数形式。应进一步理解,术语“包括”和/或“包含”当在本说明书中使用时,指定所陈述的特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、组件和/或其组的存在或添加。
实施例可以实现为计算机进程、计算系统或者诸如计算机可读介质的计算机程序产品之类的制品。计算机程序产品可以是计算机系统可读的并且编码有用于执行计算机进程的计算机程序指令的计算机存储介质。
所附权利要求中的所有单元或步骤加功能元素的对应结构、材料、动作和等同物旨在包括用于与特别要求保护的其他要求保护的元素相结合地执行功能的任何结构、材料或动作。对本公开的描述出于说明和描述的目的呈现,但是并非旨在穷尽性的或限于以所公开的形式的公开内容。在不脱离本公开的范围和精神的情况下进行许多修改和变化对于普通技术人员将是显而易见的。选择并描述实施例以便于最好地解释本公开的原理和实际应用,并且使本领域的其他普通技术人员能够理解针对具有适于设想的特定用途的各种修改的实施例的公开内容。
返回参考图5,对于一个实施例,处理器602中的至少一个可以与具有BSP启动模块132、AP启动模块134和/或VMM 120的方面的存储器封装在一起。对于一个实施例,处理器602中的至少一个可以与具有BSP启动模块132、AP启动模块134和/或VMM 120的方面的存储器封装在一起以形成系统封装(SiP)。对于一个实施例,处理器602中的至少一个可以与具有BSP启动模块132、AP启动模块134和/或VMM 120的方面的存储器集成在同一管芯上。对于一个实施例,处理器602中的至少一个可以与具有BSP启动模块132、AP启动模块134和/或VMM 120的方面的存储器封装在一起以形成片上系统(SoC)。对于至少一个实施例,SoC可以用于例如但不限于可穿戴设备、智能电话或计算平板电脑。
因此,已经描述了本公开的各种示例实施例,包括但不限于:
示例1可以是一种用于计算的装置,包括:多个处理器核心;以及操作系统的多个操作系统模块,其包括:引导启动处理器启动模块,其由多个处理器核心中的被选择作为虚拟机的引导启动处理器的第一处理器核心在虚拟机被启动时进行操作,以将虚拟机的应用处理器的开始状态写入存储区域;以及应用处理器启动模块,其由多个处理器核心中的被选择作为应用处理器的第二处理器核心进行操作,以在开始状态处直接以保护执行模式来开启应用处理器,而无需首先经过实执行模式。
示例2可以是示例1,其中,引导启动处理器启动模块在将应用处理器的开始状态写入存储区域时,还可以将执行控制转移到装置的虚拟机管理器。
示例3可以是示例2,其中,对执行控制的转移可以包括向虚拟机管理器明确地或隐含地提供存储区域的位置。
示例4可以是示例2,其中,存储区域可以是引导启动处理器的控制寄存器,并且执行控制可以经由来自控制寄存器的陷阱而转移到虚拟机管理器。
示例5可以是示例2-4中的任何一个,还包括虚拟机管理器,其中,虚拟机管理器可以由一个或多个处理器核心进行操作,以从存储区域中取回应用的开始状态,将应用处理器的开始状态编程到应用处理器可访问的虚拟机的控制结构中,并且在接收到执行控制时将应用处理器设置为在被编程到控制结构中的开始状态处开始执行。
示例6可以是示例5,其中,应用处理器启动模块还可以利用存储器分页来直接以保护执行模式开启应用处理器。
示例7可以是示例5,其中,应用处理器启动模块还可以:初始化应用处理器,并且在完成初始化时用信号通知引导启动处理器启动模块。
示例8可以是示例7,其中,引导启动处理器启动模块还可以:在执行另一次将虚拟机的另一应用处理器的另一开始状态写入存储区域之前,等待完成信号。
示例9可以是一种用于计算的方法,包括:在虚拟机可以被启动时,由引导启动处理器启动模块将虚拟机的应用处理器的开始状态写入装置的存储区域,引导启动处理器启动模块由装置的多个处理器核心中的被选择作为虚拟机的引导启动处理器的第一处理器核心进行操作;以及由应用处理器启动模块在开始状态处直接以保护执行模式来开启应用处理器,而无需首先经过实执行模式,应用处理器启动模块由多个处理器核心中的被选择作为应用处理器的第二处理器核心进行操作。
示例10可以是示例9,还包括:在将应用处理器的开始状态写入存储区域时,由引导启动处理器启动模块将执行控制转移到装置的虚拟机管理器。
示例11可以是示例10,其中,对执行控制进行转移可以包括向虚拟机管理器明确地或隐含地提供存储区域的位置。
示例12可以是示例10,其中,存储区域可以是引导启动处理器的控制寄存器,并且对执行控制进行转移包括从控制寄存器陷入虚拟机管理器。
示例13可以是示例10-12中的任何一个,还包括:由虚拟机管理器从存储区域中取回应用的开始状态,将应用处理器的开始状态编程到应用处理器可访问的虚拟机的控制结构中,并且在接收到执行控制时将应用处理器设置为在被编程到控制结构中的开始状态处开始执行。
示例14可以是示例13,还包括:由应用处理器启动模块利用存储器分页来直接以保护执行模式开启应用处理器。
示例15可以是示例13,还包括:由应用处理器启动模块初始化应用处理器,并且在完成初始化时用信号通知引导启动处理器启动模块。
示例16可以是示例15,还包括:由引导启动处理器启动模块,在执行另一次将虚拟机的另一应用处理器的另一开始状态写入存储区域之前,等待完成信号。
示例17可以是一种或多种计算机可读介质,其包括指令,该指令响应于计算设备的多个处理器核心执行指令而使计算设备提供:引导启动处理器启动模块,其由多个处理器核心中的被选择作为虚拟机的引导启动处理器的第一处理器核心在虚拟机可以被启动时进行操作,以将虚拟机的应用处理器的开始状态写入计算设备的存储区域;以及应用处理器启动模块,其由多个处理器核心中的被选择作为应用处理器的第二处理器核心进行操作,以在开始状态处直接以保护执行模式来开启应用处理器,而无需首先经过实执行模式。
示例18可以是示例17,其中,引导启动处理器启动模块在将应用处理器的开始状态写入存储区域时,还可以将执行控制转移到装置的虚拟机管理器。
示例19可以是示例18,其中,对执行控制的转移可以包括向虚拟机管理器明确地或隐含地提供存储区域的位置。
示例20可以是示例18,其中,存储区域可以是引导启动处理器的控制寄存器,并且执行控制可以经由来自控制寄存器的陷阱而转移到虚拟机管理器。
示例21可以是示例18-20中的任何一个,还包括虚拟机管理器,其中,虚拟机管理器可以由一个或多个处理器核心进行操作,以从存储区域中取回应用的开始状态,将应用处理器的开始状态编程到应用处理器可访问的虚拟机的控制结构中,并且在接收到执行控制时将应用处理器设置为在被编程到控制结构中的开始状态处开始执行。
示例22可以是示例21,应用处理器启动模块还可以利用存储器分页来直接以保护执行模式开启应用处理器。
示例23可以是示例21,其中,应用处理器启动模块还可以:初始化应用处理器,并且在完成初始化时用信号通知引导启动处理器启动模块。
示例24可以是示例23,其中,引导启动处理器启动模块还可以:在执行另一次将虚拟机的另一应用处理器的另一开始状态写入存储区域之前,等待完成信号。
示例25可以是一种用于计算的装置,包括:引导启动处理器单元,其用于在装置中的虚拟机可以被启动时将虚拟机的应用处理器的开始状态写入虚拟机的引导启动处理器的存储区域;以及应用处理器单元,其用于在开始状态处直接以保护执行模式来开启应用处理器,而无需首先经过实执行模式。
示例26可以是示例25,其中,引导启动处理器单元可以包括用于在将应用处理器的开始状态写入存储区域时将执行控制转移到装置的虚拟机管理器的单元。
示例27可以是示例26,其中,对执行控制进行转移可以包括向虚拟机管理器明确地或隐含地提供存储区域的位置。
示例28可以是示例26,其中,存储区域可以是引导启动处理器的控制寄存器,并且对执行控制进行转移包括从控制寄存器陷入虚拟机管理器。
示例29可以是示例26-28,其中,虚拟机管理器可以包括:用于从存储区域中取回应用的开始状态的单元,用于将应用处理器的开始状态编程到应用处理器可访问的虚拟机的控制结构中的单元,以及用于在接收到执行控制时将应用处理器设置为在被编程到控制结构中的开始状态处开始执行的单元。
示例30可以是示例29,其中,应用处理器单元包括用于利用存储器分页来直接以保护执行模式开启应用处理器的单元。
示例31可以是示例29,应用处理器单元可以包括:用于初始化应用处理器的单元,以及用于在完成初始化时用信号通知引导启动处理器启动模块的单元。
示例32可以是示例31,其中,引导启动处理器单元可以包括:用于在执行另一次将虚拟机的另一应用处理器的另一开始状态写入存储区域之前等待完成信号的单元
对于本领域技术人员显而易见的是,在不脱离本公开的精神或范围的情况下,可以在所公开的设备和相关联的方法的所公开的实施例中进行各种修改和变化。因此,本公开旨在覆盖上面公开的实施例的修改和变化,只要这些修改和变型落入任何权利要求及其等同物的范围内。
Claims (25)
1.一种用于计算的装置,包括:
多个处理器核心;以及
操作系统的多个操作系统模块,其包括:
引导启动处理器启动模块,其由所述多个处理器核心中的被选择作为虚拟机的引导启动处理器的第一处理器核心在所述虚拟机被启动时进行操作,以将所述虚拟机的应用处理器的开始状态写入存储区域;以及
应用处理器启动模块,其由所述多个处理器核心中的被选择作为所述应用处理器的第二处理器核心进行操作,以在所述开始状态处直接以保护执行模式来开启所述应用处理器,而无需首先经过实执行模式。
2.根据权利要求1所述的装置,其中,所述引导启动处理器启动模块在将所述应用处理器的开始状态写入所述存储区域时,还将执行控制转移到所述装置的虚拟机管理器。
3.根据权利要求2所述的装置,其中,对执行控制的所述转移包括向所述虚拟机管理器明确地或隐含地提供所述存储区域的位置。
4.根据权利要求2所述的装置,其中,所述存储区域是所述引导启动处理器的控制寄存器,并且所述执行控制是经由来自所述控制寄存器的陷阱而转移到所述虚拟机管理器的。
5.根据权利要求2-4中的任一项所述的装置,还包括所述虚拟机管理器,其中,所述虚拟机管理器由所述多个处理器核心进行操作,以从所述存储区域中取回所述应用的开始状态,将所述应用处理器的开始状态编程到所述应用处理器可访问的所述虚拟机的控制结构中,并且在接收到所述执行控制时将所述应用处理器设置为在被编程到所述控制结构中的所述开始状态处开始执行。
6.根据权利要求5所述的装置,其中,所述应用处理器启动模块还用于:利用存储器分页来直接以所述保护执行模式开启所述应用处理器。
7.根据权利要求5所述的装置,其中,所述应用处理器启动模块还用于:初始化所述应用处理器,并且在完成所述初始化时用信号通知所述引导启动处理器启动模块。
8.根据权利要求7所述的装置,其中,所述引导启动处理器启动模块还用于:在执行另一次将所述虚拟机的另一应用处理器的另一开始状态写入所述存储区域之前,等待完成信号。
9.一种用于计算的方法,包括:
在虚拟机被启动时,由引导启动处理器启动模块将所述虚拟机的应用处理器的开始状态写入装置的存储区域,所述引导启动处理器启动模块由所述装置的多个处理器核心中的被选择作为所述虚拟机的引导启动处理器的第一处理器核心进行操作;以及
由应用处理器启动模块在所述开始状态处直接以保护执行模式来开启所述应用处理器,而无需首先经过实执行模式,所述应用处理器启动模块由所述多个处理器核心中的被选择作为所述应用处理器的第二处理器核心进行操作。
10.根据权利要求9所述的方法,还包括:在将所述应用处理器的开始状态写入所述存储区域时,由所述引导启动处理器启动模块将执行控制转移到所述装置的虚拟机管理器。
11.根据权利要求10所述的方法,其中,对执行控制进行转移包括向所述虚拟机管理器明确地或隐含地提供所述存储区域的位置。
12.根据权利要求10所述的方法,其中,所述存储区域是所述引导启动处理器的控制寄存器,并且对所述执行控制进行转移包括从所述控制寄存器陷入所述虚拟机管理器。
13.根据权利要求10所述的方法,还包括:由所述虚拟机管理器从所述存储区域中取回所述应用的开始状态,将所述应用处理器的开始状态编程到所述应用处理器可访问的所述虚拟机的控制结构中,并且在接收到所述执行控制时将所述应用处理器设置为在被编程到所述控制结构中的所述开始状态处开始执行。
14.根据权利要求13所述的方法,还包括:由所述应用处理器启动模块利用存储器分页来直接以所述保护执行模式开启所述应用处理器。
15.根据权利要求13所述的方法,还包括:由所述应用处理器启动模块初始化所述应用处理器,并且在完成所述初始化时用信号通知所述引导启动处理器启动模块。
16.根据权利要求15所述的方法,还包括:由所述引导启动处理器启动模块,在执行另一次将所述虚拟机的另一应用处理器的另一开始状态写入所述存储区域之前,等待完成信号。
17.一种用于计算的装置,包括:
引导启动处理器单元,其用于由所述装置的多个处理器核心中的被选择作为所述装置中的虚拟机的引导启动处理器的第一处理器核心在所述虚拟机被启动时进行操作,以将所述虚拟机的应用处理器的开始状态写入所述虚拟机的引导启动处理器的存储区域;以及
应用处理器单元,其用于由所述多个处理器核心中的被选择作为所述应用处理器的第二处理器核心进行操作,以在所述开始状态处直接以保护执行模式来开启所述应用处理器,而无需首先经过实执行模式。
18.根据权利要求17所述的装置,其中,所述引导启动处理器单元包括用于在将所述应用处理器的开始状态写入所述存储区域时将执行控制转移到所述装置的虚拟机管理器的单元。
19.根据权利要求18所述的装置,其中,对执行控制进行转移包括向所述虚拟机管理器明确地或隐含地提供所述存储区域的位置。
20.根据权利要求18所述的装置,其中,所述存储区域是所述引导启动处理器的控制寄存器,并且对所述执行控制进行转移包括从所述控制寄存器陷入所述虚拟机管理器。
21.根据权利要求18-20中的任一项所述的装置,其中,所述虚拟机管理器包括:用于从所述存储区域中取回所述应用的开始状态的单元,用于将所述应用处理器的开始状态编程到所述应用处理器可访问的所述虚拟机的控制结构中的单元,以及用于在接收到所述执行控制时将所述应用处理器设置为在被编程到所述控制结构中的所述开始状态处开始执行的单元。
22.根据权利要求21所述的装置,其中,所述应用处理器单元包括用于利用存储器分页来直接以所述保护执行模式开启所述应用处理器的单元。
23.根据权利要求21所述的装置,所述应用处理器单元包括:用于初始化所述应用处理器的单元,以及用于在完成所述初始化时用信号通知所述引导启动处理器启动模块的单元。
24.根据权利要求23所述的装置,其中,所述引导启动处理器单元包括:用于在执行另一次将所述虚拟机的另一应用处理器的另一开始状态写入所述存储区域之前等待完成信号的单元。
25.一种或多种计算机可读介质,其包括指令,响应于计算设备的多个处理器核心执行所述指令,所述指令使所述计算设备执行根据权利要求9-16中的任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/976,990 | 2015-12-21 | ||
US14/976,990 US9898307B2 (en) | 2015-12-21 | 2015-12-21 | Starting application processors of a virtual machine |
PCT/US2016/061846 WO2017112126A1 (en) | 2015-12-21 | 2016-11-14 | Starting application processors of a virtual machine |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108292233A CN108292233A (zh) | 2018-07-17 |
CN108292233B true CN108292233B (zh) | 2021-11-09 |
Family
ID=59066291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680067913.2A Active CN108292233B (zh) | 2015-12-21 | 2016-11-14 | 开启虚拟机的应用处理器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9898307B2 (zh) |
CN (1) | CN108292233B (zh) |
DE (1) | DE112016005868T5 (zh) |
WO (1) | WO2017112126A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
US11829517B2 (en) * | 2018-12-20 | 2023-11-28 | Intel Corporation | Method and apparatus for trust domain creation and destruction |
US10924429B1 (en) * | 2019-11-29 | 2021-02-16 | Amazon Technologies, Inc. | Using edge-optimized compute instances to execute user workloads at provider substrate extensions |
US11915024B2 (en) * | 2020-07-16 | 2024-02-27 | International Business Machines Corporation | Pool management for in-vehicle device application startup |
CN112099914B (zh) * | 2020-09-03 | 2023-07-21 | 海光信息技术股份有限公司 | 一种虚拟机多核启动方法、虚拟机及处理器芯片 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1277387A (zh) * | 1999-06-10 | 2000-12-20 | 国际商业机器公司 | 监视和处理数据处理系统中相关线程事件的方法和设备 |
CN101042681A (zh) * | 2006-03-23 | 2007-09-26 | 联想(北京)有限公司 | 一种数据透明保护的安全读写系统和方法 |
CN101091161A (zh) * | 2004-12-31 | 2007-12-19 | 英特尔公司 | 用于协作访客固件的设备和方法 |
CN101093449A (zh) * | 2007-06-22 | 2007-12-26 | 浙江大学 | 基于处理器虚拟化技术的虚拟机系统及其实现方法 |
CN101097526A (zh) * | 2006-06-29 | 2008-01-02 | 联想(北京)有限公司 | 一种虚拟机系统及硬件设备的访问控制方法 |
CN101145684A (zh) * | 2006-09-15 | 2008-03-19 | 乐金电子(天津)电器有限公司 | 三相压缩机逆相缺相保护装置及方法 |
CN101226478A (zh) * | 2006-09-29 | 2008-07-23 | 英特尔公司 | 提高平台引导效率的系统和方法 |
CN101430649A (zh) * | 2008-11-19 | 2009-05-13 | 北京航空航天大学 | 基于虚拟机的虚拟计算环境系统 |
CN103092710A (zh) * | 2013-02-06 | 2013-05-08 | 浪潮电子信息产业股份有限公司 | 云计算操作系统中一种高可用虚拟机运行方法 |
CN103154891A (zh) * | 2010-10-01 | 2013-06-12 | 国际商业机器公司 | 虚拟机阶段检测 |
US8677187B2 (en) * | 2011-04-01 | 2014-03-18 | Vmware, Inc. | Performing network core dump without drivers |
CN103729233A (zh) * | 2013-12-20 | 2014-04-16 | 中电长城网际系统应用有限公司 | 一种多虚拟机管理方法和装置 |
CN103744725A (zh) * | 2013-12-24 | 2014-04-23 | 杭州华为数字技术有限公司 | 一种虚拟机管理方法及装置 |
CN103777996A (zh) * | 2006-12-29 | 2014-05-07 | 英特尔公司 | 用于基于活动性状态来控制虚拟机的设备、方法和系统 |
CN104298472A (zh) * | 2014-10-12 | 2015-01-21 | 张维加 | 一种分层实现计算虚拟化的方法与设备 |
CN104484231A (zh) * | 2014-12-31 | 2015-04-01 | 武汉邮电科学研究院 | 虚拟机切换系统及切换方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4928237A (en) * | 1987-03-27 | 1990-05-22 | International Business Machines Corp. | Computer system having mode independent addressing |
US5255379A (en) | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
US5596755A (en) | 1992-11-03 | 1997-01-21 | Microsoft Corporation | Mechanism for using common code to handle hardware interrupts in multiple processor modes |
US5764956A (en) * | 1994-11-07 | 1998-06-09 | Seiko Epson Conporation | Computer peripheral function emulator |
JPH08147173A (ja) * | 1994-11-18 | 1996-06-07 | Seiko Epson Corp | エミュレーション装置 |
US5710941A (en) * | 1995-02-28 | 1998-01-20 | Microsoft Corporation | System for substituting protected mode hard disk driver for real mode driver by trapping test transfers to verify matching geometric translation |
US5937185A (en) * | 1996-09-11 | 1999-08-10 | Creative Technology, Inc. | Method and system for device virtualization based on an interrupt request in a DOS-based environment |
US6397242B1 (en) * | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
US7603551B2 (en) | 2003-04-18 | 2009-10-13 | Advanced Micro Devices, Inc. | Initialization of a computer system including a secure execution mode-capable processor |
US7260702B2 (en) | 2004-06-30 | 2007-08-21 | Microsoft Corporation | Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor |
US7380095B2 (en) * | 2004-06-30 | 2008-05-27 | Intel Corporation | System and method for simulating real-mode memory access with access to extended memory |
US20060070065A1 (en) * | 2004-09-29 | 2006-03-30 | Zimmer Vincent J | Memory support for heterogeneous virtual machine guests |
US7747847B2 (en) * | 2005-03-25 | 2010-06-29 | Broadcom Corporation | Method and system for iSCSI boot in which an iSCSI client loads boot code from a host bus adapter and/or network interface card |
US7441113B2 (en) * | 2006-07-10 | 2008-10-21 | Devicevm, Inc. | Method and apparatus for virtualization of appliances |
US8151277B2 (en) * | 2007-05-15 | 2012-04-03 | Dynatrace Software Gmbh | Method and system for dynamic remote injection of in-process agents into virtual machine based applications |
US7673126B2 (en) * | 2006-09-19 | 2010-03-02 | Intel Corporation | Methods and apparatus to self-initialize a processor |
US8645965B2 (en) | 2007-12-31 | 2014-02-04 | Intel Corporation | Supporting metered clients with manycore through time-limited partitioning |
US8156211B2 (en) * | 2008-02-26 | 2012-04-10 | Sap Ag | Transitioning from dynamic cluster management to virtualized cluster management |
CN101770396B (zh) * | 2008-12-29 | 2012-12-19 | 鸿富锦精密工业(深圳)有限公司 | 实现Linux系统下擦写DMI数据的方法及装置 |
US20140059552A1 (en) * | 2012-08-24 | 2014-02-27 | International Business Machines Corporation | Transparent efficiency for in-memory execution of map reduce job sequences |
-
2015
- 2015-12-21 US US14/976,990 patent/US9898307B2/en active Active
-
2016
- 2016-11-14 CN CN201680067913.2A patent/CN108292233B/zh active Active
- 2016-11-14 WO PCT/US2016/061846 patent/WO2017112126A1/en active Application Filing
- 2016-11-14 DE DE112016005868.3T patent/DE112016005868T5/de active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1277387A (zh) * | 1999-06-10 | 2000-12-20 | 国际商业机器公司 | 监视和处理数据处理系统中相关线程事件的方法和设备 |
CN101091161A (zh) * | 2004-12-31 | 2007-12-19 | 英特尔公司 | 用于协作访客固件的设备和方法 |
CN101042681A (zh) * | 2006-03-23 | 2007-09-26 | 联想(北京)有限公司 | 一种数据透明保护的安全读写系统和方法 |
CN101097526A (zh) * | 2006-06-29 | 2008-01-02 | 联想(北京)有限公司 | 一种虚拟机系统及硬件设备的访问控制方法 |
CN101145684A (zh) * | 2006-09-15 | 2008-03-19 | 乐金电子(天津)电器有限公司 | 三相压缩机逆相缺相保护装置及方法 |
CN101226478A (zh) * | 2006-09-29 | 2008-07-23 | 英特尔公司 | 提高平台引导效率的系统和方法 |
CN103777996A (zh) * | 2006-12-29 | 2014-05-07 | 英特尔公司 | 用于基于活动性状态来控制虚拟机的设备、方法和系统 |
CN101093449A (zh) * | 2007-06-22 | 2007-12-26 | 浙江大学 | 基于处理器虚拟化技术的虚拟机系统及其实现方法 |
CN101430649A (zh) * | 2008-11-19 | 2009-05-13 | 北京航空航天大学 | 基于虚拟机的虚拟计算环境系统 |
CN103154891A (zh) * | 2010-10-01 | 2013-06-12 | 国际商业机器公司 | 虚拟机阶段检测 |
US8677187B2 (en) * | 2011-04-01 | 2014-03-18 | Vmware, Inc. | Performing network core dump without drivers |
CN103092710A (zh) * | 2013-02-06 | 2013-05-08 | 浪潮电子信息产业股份有限公司 | 云计算操作系统中一种高可用虚拟机运行方法 |
CN103729233A (zh) * | 2013-12-20 | 2014-04-16 | 中电长城网际系统应用有限公司 | 一种多虚拟机管理方法和装置 |
CN103744725A (zh) * | 2013-12-24 | 2014-04-23 | 杭州华为数字技术有限公司 | 一种虚拟机管理方法及装置 |
CN104298472A (zh) * | 2014-10-12 | 2015-01-21 | 张维加 | 一种分层实现计算虚拟化的方法与设备 |
CN104484231A (zh) * | 2014-12-31 | 2015-04-01 | 武汉邮电科学研究院 | 虚拟机切换系统及切换方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170177377A1 (en) | 2017-06-22 |
DE112016005868T5 (de) | 2018-10-11 |
WO2017112126A1 (en) | 2017-06-29 |
CN108292233A (zh) | 2018-07-17 |
US9898307B2 (en) | 2018-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292233B (zh) | 开启虚拟机的应用处理器 | |
US20230161615A1 (en) | Techniques for virtual machine transfer and resource management | |
US8966477B2 (en) | Combined virtual graphics device | |
US10162655B2 (en) | Hypervisor context switching using TLB tags in processors having more than two hierarchical privilege levels | |
CN107015862B (zh) | 用于具有不同能力的核心的线程和/或虚拟机调度 | |
CN107924325B (zh) | 用于多级虚拟化的设备和方法 | |
JP6458959B2 (ja) | 協調設計されたプロセッサ用動的言語アクセラレータ | |
Goto | Kernel-based virtual machine technology | |
US10915348B2 (en) | Technologies for duplicating virtual machine states | |
US9740519B2 (en) | Cross hypervisor migration of virtual machines with VM functions | |
US10162657B2 (en) | Device and method for address translation setting in nested virtualization environment | |
KR101673299B1 (ko) | 운영 시스템 복구 방법 및 장치, 그리고 단말기기 | |
EP3336696A1 (en) | Implementing device models for virtual machines with reconfigurable hardware | |
CN111209080A (zh) | 一种图形处理器透传的方法 | |
US10162616B2 (en) | System for binary translation version protection | |
US9164788B2 (en) | Apparatus and method for automatic para-virtualization of OS kernel | |
CN114691300A (zh) | 一种虚拟机实例的热迁移方法 | |
WO2015088374A1 (en) | Systems and methods for cross-architecture container virtualization | |
US10318278B2 (en) | Power management data package provision method and apparatus | |
CN114461290A (zh) | 数据处理的方法、实例以及系统 | |
US10241821B2 (en) | Interrupt generated random number generator states | |
US10203977B2 (en) | Lazy timer programming for virtual machines | |
US20170097836A1 (en) | Information processing apparatus |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |