掌桥专利:专业的专利平台
掌桥专利
首页

针对虚拟化的处理器特征ID响应

文献发布时间:2023-06-19 09:29:07


针对虚拟化的处理器特征ID响应

背景技术

虚拟化技术在很多种上下文中被采用。例如,虚拟化技术可以被采用以从访客分区中提取物理计算资源、以提高物理计算资源的利用率、以支持访客分区跨物理设备的可移植性、以保护物理计算资源免受在访客分区中运行的恶意代码和/或错误代码的侵害、以保护机密、以实施安全性要求或策略等。在先前的虚拟化技术中,访客退出(例如,处理器的控制从访客分区向诸如管理程序的监督分区的传递)可以响应于某些操作而发生。例如,访客退出可以响应于对处理器特征ID信息的请求而发生。

发明内容

本“发明内容”被提供以简化的形式介绍概念的选集,这些概念的选集将会在下面的“具体实施方式”中进一步地描述。本“发明内容”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

简单来说,所公开的技术通常涉及虚拟化技术。所公开的技术包括由处理器提供由或从虚拟机(VM)、虚拟化应用、基于虚拟化的安全(VBS)用户模式过程、VBS内核模式过程或其他访客分区请求的处理器特征ID信息。这样的信息可以基于(例如,由诸如管理程序的监督分区)先验地(a priori)提供给处理器的信息而被提供。所公开的技术还包括例如向处理器提供这样的信息的监督分区,并且包括接收这样的信息的访客分区。

在阅读和理解所附附图和描述之后,将理解针对所公开技术的其他方面和应用。

附图说明

参考以下附图描述了本公开的非限制性和非详尽的示例。在附图中,除非另有指定,否则在遍及各个附图中,相同的附图标记指代相同的部分。这些附图不一定按比例绘制。

为了更好地理解本公开,将参考以下的“具体实施方式”,该“具体实施方式”将结合附图来被阅读,其中:

图1是图示了根据所公开技术的方面的适当的计算设备的一个示例的物理视图的框图;

图2是图示了根据所公开技术的方面的示例计算设备的逻辑视图的框图;

图3图示了根据所公开技术的方面的示例过程;

图4图示了根据所公开技术的附加的方面的另一示例过程;以及

图5图示了根据所公开技术的其他方面的又一示例过程。

具体实施方式

以下描述提供了具体的细节,以彻底理解该技术的各种示例并且使针对该技术的各种示例得以描述。本领域技术人员将会理解,在没有这些细节中的很多细节的情况下,该技术可以被实践。在一些实例中,公知的结构和功能没有被详细示出或描述,以避免不必要地导致该技术的示例的描述不清楚。尽管在此公开中所使用的术语与该技术的某些示例的详细描述结合使用,该术语旨在以最宽泛的合理方式来被解释。尽管以下可能会强调某些术语,但是以任何受限制的方式解释的任何术语都将在此“具体实施方式”部分中被公开地并且明确地定义。在整个说明书和权利要求书中,除非上下文另有规定,否则以下术语至少具有本文中明确关联的含义。以下所标识的含义不一定限制该术语,但仅仅提供了针对该术语的说明性示例。例如,术语“基于(based on)”和“基于(based upon)”中的每一个不是排他的,并且等价于术语“至少部分地基于”,并且包括基于附加因素的选项,其中这些附加因素中的一些在本文可能没有被描述。作为另一例子,术语“经由”不是排他的,并且等价于术语“至少部分地经由”,并且包括经由附加的因素的选项,其中一些因素本文可能没有描述。“在(in)”的含义包括“在…中”和“在…上”。本文中所使用的短语“在一个实施例中”或“在一个示例中”尽管可以指代相同的实施例或示例,但是不一定指代相同的实施例或示例。特定的文本数字标记的使用并不意味着存在较小值的数字标记。例如,“从由第三‘foo’和第四‘bar’组成的组中选择的小部件”的记载本身并不意味着存在至少三个‘foo’元素,也不意味着存在至少四个‘bar’元素。单数形式的引用仅是为了阅读的清楚,并且除非特别地排除了复数引用,单数形式的引用包括复数引用。除非另外特别指出,否则术语“或”是包含性的“或”运算符。例如,短语“A或B”意味着“A、B或A和B”。如本文所使用的,术语“部件”或“系统”旨在包含硬件、软件、或硬件和软件的各种组合。因此,例如,系统或部件可以是过程、在计算设备上执行的过程、计算设备、或其一部分。

简单来说,所公开的技术通常涉及虚拟化技术。所公开的技术包括由处理器提供由或从虚拟机(VM)、虚拟化应用、基于虚拟化的安全(VBS)用户模式过程、VBS核心模式过程、或其他访客分区请求的处理器特征ID信息。例如,这样的请求可以由访客分区内的访客虚拟处理器上执行的代码生成。这样的信息可以基于(例如,由诸如管理程序的监督分区)先验地提供给处理器的信息而被提供。所公开的技术还包括例如向处理器提供这样的信息的监督分区以及接收这样的信息的访客分区。

在一些示例中,所公开的技术可以在虚拟化/虚拟化的系统中被采用。例如,该技术可以结合管理程序、虚拟机、虚拟化应用、基于虚拟化的安全(VBS)用户模式过程、VBS内核模式过程等被采用。例如,该技术可以包括预计算或由管理程序或其他监督分区以其他方式确定处理器特征ID信息,并且响应于诸如来自访客分区的、针对处理器特征ID信息的请求而向计算设备的处理器提供所确定的处理器特征ID信息以供后续使用。例如,来自访客分区的针对这样的信息的请求可以随后被处理器处理,而无需监督分区的干预。

所公开的技术的用途可以用以减少和/或消除VM退出或以下其他访客退出的频率,在该其他访客退出中,系统从访客代码的执行退出以执行监督分区代码。作为访客退出的一个示例,响应于访客的、针对处理器特征ID信息的查询,监督分区过程可以从访客分区中取得对处理器的控制、构建处理器的处理器特征ID寄存器、然后将对处理器的控制返回给访客分区。

在某些现有虚拟化系统中,访客退出响应于从访客分区正被执行的某些操作而发生。例如,访客退出可以响应于从访客分区正被执行的操作而发生,在该访客分区中CPU ID或者其他处理器特征ID信息被请求。这样的退出通常在时间、功率和计算性能方面是“昂贵的”。例如,访客退出可以与针对监督分区代码(例如,开销)处理带宽的使用相关联,而不是访客分区代码(例如,预期的工作量)。由于用监督分区代码等对处理器数据和/或指令高速缓存位置的重写,访客退出也可能与附加的上下文切换花销相关联。

图1是图示了计算设备100的物理视图的一个示例的框图,本技术的方面可以在计算设备100中被实践。计算设备100实际上可以是任何类型的通用或专用计算设备。例如,计算设备100可以是用户设备,诸如台式计算机、膝上型计算机、平板计算机、显示设备、照相机、打印机或智能电话。类似地,计算设备100也可以是服务器设备,诸如应用服务器计算机、虚拟计算主机计算机或文件服务器计算机。计算设备100也可以是连接到网络以接收IoT服务的IoT设备。类似地,计算设备100可以是如下面更详细讨论的在图2-图5中示出或指代的任何设备的示例。如图1所示,计算设备100包括处理电路110、操作存储器120、存储器控制器130、数据存储存储器150、输入接口160、输出接口170和网络适配器180。计算设备100的这些前面列出的部件中的每一个部件包括至少一个硬件元件。

计算设备100包括至少一个处理电路110,该处理电路110被配置为执行指令,诸如用于实现本文所描述的工作负载、过程或技术的指令。处理电路110可以包括微处理器、微控制器、图形处理器、协处理器、现场可编程门阵列、可编程逻辑器件、信号处理器或适用于处理数据的任何其他电路。处理电路110是核心的示例。在计算设备100的运行时期间,前述指令和其他数据(例如,数据集、元数据、操作系统指令等)一起可以被存储在操作存储器120中。操作存储器120还可以包括各种数据存储设备/部件中的任何数据存储设备/部件,诸如易失性存储器、半易失性存储器、随机存取存储器、静态存储器、高速缓存、缓冲器或用于存储运行时信息的其他介质。在一个示例中,当计算设备100断电时,操作存储器120不保留信息。相反,计算设备100可以被配置为作为引导(booting)或其他加载过程的一部分,将指令从非易失性数据存储部件(例如,数据存储部件150)传递到操作存储器120。

操作存储器120可以包括第四代双倍数据速率(DDR4)存储器、第三代双倍数据速率(DDR3)存储器、其他动态随机存取存储器(DRAM)、高带宽存储器(HBM)、混合存储器立方体存储器、3D-堆叠存储器、静态随机存取存储器(SRAM)或其他存储器,并且这样的存储器可以包括被集成到DIMM、SIMM、SODIMM或其他封装上的一个或多个存储器电路。这样的操作存储器模块或设备可以根据通道、等级(rank)和库(bank)来被组织。例如,操作存储器设备可以经由存储器控制器130而在通道中被耦合到处理电路110。计算设备100的一个示例可以包括每个通道一个或两个DIMM,每个通道具有一个或两个等级。等级内的操作存储器可以使用共享时钟以及共享地址和命令总线来进行操作。而且,操作存储器设备可以被组织为几个库,其中库可以被认为是由行和列寻址的阵列。基于操作存储器的这种组织,操作存储器内的物理地址可以由通道、等级、库、行和列的元组来指代。

尽管进行了上述讨论,但是操作存储器120特别地不包括或不包含通信介质、任何通信介质或任何信号本身。

存储器控制器130被配置为将处理电路110接合到操作存储器120。例如,存储器控制器130可以被配置为在操作存储器120和处理电路110之间接合命令、地址和数据。存储器控制器130还可以被配置为从处理电路110或者针对处理电路110来提取或以其他方式管理存储器管理的某些方面。尽管存储器控制器130被图示为与处理电路110分离的单个存储器控制器,但是在其他示例中,可以采用多个存储器控制器,可以将(多个)存储器控制器与操作存储器120集成在一起,等等。此外,存储器控制器可以被集成到处理电路110中。这些和其他变形是可能的。

在计算设备100中,数据存储存储器150、输入接口160、输出接口170和网络适配器180由总线140接合到处理电路110。尽管图1将总线140图示为单个无源总线,但是其他配置(诸如总线的集合、点对点链路的集合、输入/输出控制器、桥、其他接口电路或其任何集合)也可以适用于被采用以将数据存储存储器150、输入接口160、输出接口170或网络适配器180接合到处理电路110。

在计算设备100中,数据存储存储器150被用于长期非易失性数据存储。数据存储存储器150可以包括各种非易失性数据存储设备/部件中的任何非易失性数据存储设备/部件,诸如非易失性存储器、磁盘、磁盘驱动器、硬盘驱动器、固态驱动器或可以被用于信息的非易失性存储的任何其他介质。然而,数据存储存储器150特别地不包括或不包含通信介质、任何通信介质或任何信号本身。与操作存储器120相比,数据存储存储器150由计算设备100采用以用于非易失性长期数据存储,而不是用于运行时数据存储。

此外,计算设备100可以包括或被耦合到任何类型的处理器可读介质,诸如处理器可读存储介质(例如,操作存储器120和数据存储存储器150)和通信介质(例如,通信信号和无线电波)。尽管术语处理器可读存储介质包括操作存储器120和数据存储存储器150,在整个说明书和权利要求中,无论是单数还是复数使用的术语“处理器可读存储介质”都在本文中定义,以使得术语“处理器可读存储介质”特别地排除并且不包含通信介质、任何通信介质或任何信号本身。然而,术语“处理器可读存储介质”包含处理器高速缓存、随机存取存储器(RAM)、寄存器存储器等。

计算设备100还包括输入接口160,该输入接口160可以被配置为支持计算设备100从用户或从其他设备接收输入。另外,计算设备100包括输出接口170,该输出接口170可以被配置为提供来自计算设备100的输出。在一个示例中,输出接口170包括帧缓冲器、图形处理器、图形处理器或加速器,并且被配置为绘制显示以用于在单独的视觉显示设备(诸如监视器、投影仪、虚拟计算客户端计算机等)上呈现。在另一示例中,输出接口170包括虚拟现实设备,并且被配置为绘制并且呈现显示以用于查看。在又一示例中,输入接口160和/或输出接口170可以包括通用异步接收器/发送器(“UART”)、串行外围设备接口(“SPI”)、内部集成电路(“I1C”),通用输入/输出(GPIO)等。此外,输入接口160和/或输出接口170可以包括或者被接合到任何数量或类型的外围设备。

在所图示的示例中,计算设备100被配置为经由网络适配器180与其他计算设备或实体通信。网络适配器180可以包括有线网络适配器,例如,以太网适配器、令牌环适配器或数字用户线(DSL)适配器。网络适配器180还可以包括无线网络适配器,例如,Wi-Fi适配器、蓝牙适配器、ZigBee适配器、长期演进(LTE)适配器或5G适配器。

尽管计算设备100被图示为具有以特别布置而被配置的某些部件,但是这些部件和布置仅仅是在其中该技术可以被采用的计算设备的一个示例。在其他示例中,数据存储存储器150、输入接口160、输出接口170、或网络适配器180可以被直接耦合到处理电路110,或者经由输入/输出控制器、桥、或其他接口电路而被耦合到处理电路110。该技术的其他变形是可能的。

计算设备100的一些示例包括至少一个适用于存储运行时数据的存储器(例如,操作存储器120)和至少一个适用于执行处理器可执行代码的处理器(例如,处理单元110),响应于执行该处理器可执行代码,使计算设备100能够执行动作。

图2是图示了可以在其中实践本技术的方面的计算设备200的逻辑视图的一个示例的框图。计算设备200可以是图1的计算设备100的示例。在图2的图示中,计算设备200的逻辑部件包括访客分区211-213、监督分区230、物理资源241-243和处理器特征ID 250。

物理资源241-243可以包括任何各种的物理部件,诸如处理器部件、输入/输出(I/O)部件和/或其他部件或设备。例如,物理资源241-243可以包括物理部件的任何适当组合,诸如结合图1所讨论的那些。尽管物理资源241-243被图示为计算设备200的部分,但是物理资源241-243中的一个或多个(例如,一个或多个数据存储存储器)可以在计算设备200外部被实施。在计算设备200上运行的各种部件或模块(包括监督分区230)可以直接地和/或经由其他部件或模块间接地访问经由物理资源241-243提供的(多个)功能。

监督分区230可以生成任何数量的访客分区,例如,访客分区211-213。访客分区211-213中的每一个访客分区可以是VM、虚拟化应用、VBS执行环境、用户模式过程等。例如,访客分区211被图示为具有操作系统(OS)221和应用222的VM,访客分区212被图示为虚拟化应用223,并且访客分区224被图示为具有从其执行的过程224。

访客分区211-213中的每一个访客分区是隔离的逻辑单元,操作系统和/或其他软件从该隔离的逻辑单元被执行。访客分区211-213中的每一个访客分区还可以包括访客虚拟处理器。访客分区211-213中的每一个访客分区内执行的软件与在其他的访客分区中的每一个访客分区中执行的软件相隔离。例如,访客分区211-213中的每一个访客分区中执行的软件不能访问并且不需要知晓在其他的访客分区中的每一个访客分区中执行的软件。物理资源241-243被虚拟化为访客分区211-213,并且对物理资源241-243的访问由监督分区230管理。

如所图示的,计算设备100包括监督分区230。监督分区230可以包括诸如虚拟机监视器的管理程序,该管理程序管理对由物理资源241-243提供的功能的访问。在另一示例中,监督分区230是内核或OS的内核模式过程,诸如采用VBS的OS。

计算设备200还包括一个或多个处理器特征ID 250。例如,处理器特征ID250可以表示物理处理器的物理硬件ID寄存器(或一组寄存器),诸如包含x86 CPU ID叶信息的寄存器(或一组寄存器)、针对高级精简指令集计算机(ARM)处理器的ID寄存器等。处理器特征ID250也可以表示由处理器支持的特征、由处理器支持的特征集、处理器的物理特性等。例如,处理器特征ID 250可以表示处理器频率、支持的物理地址宽度、时钟倍频器、功率设置、指令的可用性、步进数(stepping number)、序列号等。

为了清楚,关于由系统的特定设备或部件以特定的顺序执行的操作来描述本文所描述的过程。然而,应当注意,其他过程不限于所描述的顺序、设备或部件。例如,某些动作可以以不同顺序被执行、并行地执行,被省略,或者可以由附加的动作或特征来补充,而无论本文是否描述了这样的顺序、并行性、动作或特征。同样,本公开中所描述的任何技术可以被结合到所描述的过程或其他过程中,而无论该技术是否与该过程相结合地具体地描述。无论本文是否描述了其他设备、部件或系统,所公开的过程还可以在这样的设备、部件或系统上执行或者由这样的设备、部件或系统执行。这些过程也可以以多种方式实施。例如,它们可以实施在制品(例如,作为被存储在处理器可读存储介质中的处理器可读指令)上,或者作为计算机实现的过程来执行。作为备选的示例,这些过程可以被编码为处理器可执行指令并且经由通信介质被传送。

图3图示了示例过程300,该示例过程300是从计算设备的处理器(例如,图1的处理电路110或者图2的物理资源241、242或243)的角度所示出的。过程300在381处开始,其中针对处理器特征ID的请求被接收。例如,此请求可以由物理处理器接收,并且此请求可能已经来自访客分区。例如,此请求可以由在访客分区内的访客虚拟处理器上执行的代码生成。

过程从381进行到382,在382处,例如,处理器查找处理器特征ID。在一个示例中,处理器从处理器特征ID寄存器、从处理器可访问的存储器结构、从处理器特征ID查找表等中查找处理器特征ID。此查找还可以基于由管理程序或其他监督分区先验地(a priori)提供给处理器的信息,例如,如结合图4的过程400进一步讨论的。

然后,过程进行到383,其中处理器特征ID被提供,例如,而不发生访客退出。这可以包括处理器将所请求的处理器特征ID提供给访客分区,诸如提供到来自访客分区的请求过程。所提供的处理器特征ID可以是基于先验地被提供给处理器的信息。在383之后,过程返回到其他操作。

图4图示了示例过程400,该示例过程400是从监督分区(例如,管理程序)的角度被图示的。例如,过程400从图2的监督分区230的角度被图示。

过程400在481处开始,其中针对处理器特征ID的值被获得。此值可以由监督分区结合或响应于针对访客分区、访客虚拟处理器或访客虚拟处理器虚拟信任级别中的至少一个的设置(setup)操作来获得。例如,这样的设置操作可以包括对访客分区、访客虚拟处理器或访客虚拟处理器虚拟信任级别的生成、实例化或启动中的至少一项。例如,可以通过读取计算设备的物理处理器的相应硬件寄存器的值来获得该值。作为一个示例,所获得的处理器特征ID值可以是由物理处理器的制造商分配的值(例如,片上值)、和/或表示和/或指示由该处理器支持的特征/特征集的值。

过程可选地进行到482,其中要存储的处理器特征ID被计算或以其他方式被确定。例如,482可以包括确定所获得的处理器功能ID值是否在不改变的情况下被存储,或者是否不同的值要被存储。例如,如果监督分区要向访客分区“提供”与由处理器本身支持的所不同的一组处理器特征,例如,针对增强的访客分区可移植性、性能和/或其他原因,则不同的值可以被存储。在482处,针对所获得的处理器功能ID值的多个值也可以被确定,例如,每个值与不同的访客分区和/或访客虚拟处理器和/或信任级别上下文相关联,和/或每个值被针对不同的访客分区和/或访客虚拟处理器和/或信任级别上下文而被指定。在一些示例中,不同的处理器功能ID值可以在每个虚拟处理器上下文或虚拟处理器的虚拟信任级别上下文上被采用。每个虚拟处理器上下文或虚拟处理器的虚拟信任级别上下文的示例是虚拟机控制结构(VMCS)、虚拟机控制模块(VMCB)、包含访客上下文的一组系统寄存器或访客上下文的其他虚拟化指令集架构特定的集合。

过程进行到483,在483处,482的处理器特征ID被提供给处理器。例如,监督分区可以将在482处确定的处理器特征ID提供给处理器,以供处理器响应于来自访客分区软件的、针对处理器特征ID信息的请求的后续使用。在483处,处理器还可以接收来自监督分区的此处理器特征ID信息。

然后,过程进行到484。在484处,所提供的处理器特征ID被存储。例如,484可以包括监督过程使处理器存储所提供的处理器特征ID的动作,和/或由处理器进行的执行存储的动作。例如,该存储可以包括将处理器特征ID存储在处理器特征ID寄存器中、存储在存储器中的处理器特征ID查找表中等。在又一个示例中,监督分区代码可以通过诸如ID_REGISTER_WRITE指令的处理器接口指令来存储处理器特征ID。

在又一个示例中,处理器特征ID可以被写入到处理器可访问的存储器结构中,并且该存储器结构的位置可以被编程到处理器寄存器中。在此示例和其他示例中,可以采用多个存储器结构,例如以支持针对不同的访客分区、针对不同的VMCS、虚拟处理器上下文、信任级别上下文等的不同处理器功能ID值的使用。在使用中,例如,响应于处理器的控制从一个访客分区、访客虚拟处理器或访客虚拟处理器虚拟信任级别切换到另一个,不同存储器结构之间的上下文切换可以由处理器或者由监督分区代码230执行。

可选地,484还可包括将条件表达式存储到处理器,该条件表达式将处理器引导至针对来自访客分区的给定请求的多个值/存储器结构的适当值/存储器结构。例如,表达式可以经由诸如ID_REGISTER_WRITE(VP_CONTEXT,REGISTER_NAME,CONDITIONAL,VALUE)的指令来被存储。

如上所述,此存储还可以支持处理器随后使用处理器特征ID来响应来自访客分区的请求,而不会引起访客退出。过程400可以针对附加的处理器功能ID而重复,或者在过程400的单次迭代中,多个处理器功能ID可以被获得、确定、提供和存储。在484之后,过程返回到其他操作。

图5图示了从访客分区(例如图2的访客分区211、212或213)的角度被图示的示例过程500。过程500在581处开始,其中确定处理器特征ID要被获得。例如,此确定可以响应于来自应用或从访客分区执行的其他过程的、针对处理器特征ID的请求而访客分区或在访客分区上做出。作为另一个示例,此确定可以表示由虚拟机作出的、处理器特征ID要被获得以供虚拟机使用的请求。

然后,过程进行到582,其中,针对处理器特征ID的请求从访客分区被发送。此请求可以被发送到处理器。响应于582的请求,在583处,可以从处理器接收处理器特征ID。如以上讨论的,接收到的处理器特征ID可以是根据由监督分区先验地提供给处理器的信息。从583,过程可以进行到584,其中,接收到的处理器特征ID被提供给请求者(例如,访客分区上的应用或其他过程)。在584之后,过程返回到其他操作。

尽管以上“具体实施方式”描述了该技术的某些示例,并且描述了预期的最佳模式,但是无论以上在文本中呈现的多么详细,该技术都可以以多种方式被实践。细节可以在实施中变化,同时仍然被本文描述的技术所涵盖。如上所述,当描述技术的某些特征或方面时所使用的特定的术语不应被认为意味着该术语在本文中被重新定义为限于与该术语相关联的任何特定的特性、特征或方面。通常,除非“具体实施方式”明确定义了这样的术语,否则不应将以下权利要求中使用的术语解释为将本技术限制于本文公开的特定的示例。因此,该技术的实际范围不仅涵盖所公开的示例,而且涵盖实践或实现该技术的所有等效方式。

技术分类

06120112181050