保护共享的互连以用于虚拟机的制作方法

文档序号:9238146阅读:203来源:国知局
保护共享的互连以用于虚拟机的制作方法
【技术领域】
[0001] 本发明的各实施例一般涉及处理系统,更具体而言,涉及保护执行虚拟机的处理 系统的共享的互连。
[0002] 背景
[0003] 处理系统可包括共享的互连,通过该共享的互连,处理单元(诸如中央处理单元 (CPU)和图形处理单元(GPU))、主控设备(在下文中,被称为总线主控器)以及从属设备 (在下文中,被称为总线受控器)可以相互进行通信。总线受控器可包括外围设备和存储 器。外围设备和存储器可以通过互连与处理系统和总线主控器进行通信。处理单元可以执 行可包括一个或多个虚拟机的虚拟化系统,以提供进一步的资源共享。然而,共享的互连可 能使总线受控器暴露于来自隐秘的总线主控器的恶意攻击。进一步,虚拟化系统会使总线 受控器遭受来自隐秘的虚拟机的恶意攻击。
[0004] 附图简述
[0005] 通过下面给出的详细描述以及本发明的各实施例的各个附图,将可更加完全地理 解本发明。然而,附图不应该被理解为将本发明限制于特定实施例,而只是为了说明和理解 的目的。
[0006] 图1示出了根据本发明的一实施例的处理系统。
[0007] 图2A示出了根据本发明的一实施例的用于保护存储器的防火墙规则。
[0008] 图2B示出了根据本发明的一实施例的用于保护外围设备的防火墙规则。
[0009] 图3A示出了根据本发明的一实施例的设置处理系统的操作。
[0010] 图3B示出了根据本发明的一实施例的CPU事务和总线主控器事务的访问控制。
[0011] 图4是示出了根据本发明的一实施例的如图1所示的处理系统的方法的流程图。
[0012] 图5A是示出了其中可以使用本发明的一个实施例的处理器的微架构的框图。
[0013] 图5B是示出了根据本发明的至少一个实施例实现的有序流水线和寄存器重命名 级、无序发布/执行流水线的框图。
[0014] 图6示出了根据本发明的一个实施例的处理器的微架构的框图。
[0015] 图7是示出了其中可以使用本发明的实施例的系统的框图。
[0016]图8是示出了本发明的实施例可以在其中操作的系统的框图。
[0017]图9是示出了本发明的实施例可以在其中操作的系统的框图。
[0018] 图10是根据本发明的一个实施例的芯片上系统(SoC)的框图。
[0019] 图11是根据本发明的SoC设计的实施例的框图。
[0020] 图12示出了计算机系统的一个实施例的框图。
【具体实施方式】
[0021] 为通过共享的互连保护总线受控器免受恶意攻击,本发明的各实施例包括处理系 统,该处理系统将访问总线受控器的每一事务与标识执行该事务所针对的虚拟机的标识符 相关联。进一步,各实施例可以提供到互连的一个或多个防火墙,以使用该虚拟机的标识符 来验证打算访问该总线受控器的事务。
[0022] 虽然可以参考特定集成电路(诸如在计算平台或微处理器中)来描述下列实施 例,但其他实施例也适用于其他类型的集成电路和逻辑设备。可以将此处所描述的各实施 例的类似的技术和原理应用于其他类型的电路或半导体器件。例如,所公开的各实施例不 仅限于台式计算机系统或超极本(Ultrabooks?)。也可以用于诸如手持式设备、平板、其他 薄的笔记本、芯芯片上系统(S0C)设备以及嵌入式应用之类的其他设备中。手持式设备的 某些示例包括蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)以及手持式PC。嵌 入式应用通常包括微控制器、数字信号处理器OSP)、芯芯片上系统、网络计算机(NetPC)、 机顶盒、网络集线器、广域网(WAN)交换机或能够执行下面教导的功能和操作的任何其他 系统。
[0023] 虽然将处理器参考来描述下列各实施例,但是,其他实施例也适用于其他类型的 集成电路和逻辑设备。可以将本发明的各实施例的类似的技术和原理应用于可以得益于较 高流水线吞吐量和改善的性能的其他类型的电路或半导体器件。本发明的各实施例的原理 适用于执行数据操纵的任何处理器或机器。然而,本发明不仅限于执行512位、256位、128 位、64位、32位或16位数据操作的处理器或机器,并可以应用于其中执行对数据的操纵或 管理的任何处理器和机器。另外,下列描述提供了示例,为便于说明,各个附图示出了各种 示例。然而,这些示例不应该以限制的方式来解释,因为它们只是提供本发明的各实施例的 示例,而并非提供本发明的各实施例的所有可能的实现的详细清单。
[0024] 图1示出了根据本发明的一实施例的处理系统100。在一个实施例中,处理设备 100可以是可以在单一半导体封装内的单一管芯(同一衬底)上实现的芯片上系统硬件电 路。处理系统可包括中央处理单元(CPU)模块102、总线主控器(#1到_) 106、总线受控 器(#1到#M) 108、存储器设备110以及互连112。
[0025]CPU模块102还可以包括中央处理单元(CPU) (#1到#K) 104,每一CPU都可包括一 个或多个处理核(未示出)。CPU104和/或处理核可以执行虚拟化系统114,以允许一个 或多个操作系统的多个实例在被称为主机处理设备("主机")的处理系统1〇〇上运行。如 此,处理系统100可以是主控虚拟化系统114的主机。虚拟化系统114可以在硬件中实现 (也称为硬件辅助的虚拟化)。CPU104的指令集可以被扩展,以包括启动和退出虚拟机的 指令,以便虚拟化系统114可以以硬件辅助的方式来实现。在硬件辅助的虚拟化中,被称为 虚拟机管理器("VMM",也被称为系统管理程序)118的软件模块可以被用来创建和管理一 个或多个虚拟机116(也被称为"访客机")。VMM118可以给每一虚拟机呈现访客操作系 统,并管理访客操作系统的执行。应用程序软件(也被称为"访客软件")可以在虚拟机116 上执行。如此,通过经由虚拟化系统114来共享处理系统100的硬件资源,应用程序软件的 多个实例可以在虚拟机116上执行。
[0026]VMM118可以通过控制处理系统100的硬件组件来直接在主机的硬件上运行,并 管理虚拟机116的访客操作系统。这通常被称为类型-IVMM。可另选地,VMM118可以在 处理系统100的操作系统(也被称为主机操作系统)内运行。这通常被称为类型-IIVMM。 在任一类型的VMM下,在虚拟机上执行的访客操作系统和访客应用程序软件的指令可以被 转换为CPU104的指令并由这些CPU执行。
[0027] CPU104中的每一个都可包括执行指令的处理核(未示出)和本地存储指令和与 指令相关联的数据用于快速存储和检索的缓存存储器("缓存")。通常,每一CPU都可以具 有不同级别的缓存。通常,每一处理核都可以具有其自己的L1和L2缓存,虽然L1缓存比 L2缓存较小并且更快,多个核可以共享比L1或L2缓存较大并且较慢的L3缓存。CPU104 可以在VMM或主机操作系统的控制下代表虚拟机来执行操作。由CPU104执行的将数据和 指令移进和移出CPU模块102到互连112、然后到外围设备108或到存储器110的操作被称 为CPU事务。由L1/L2缓存来缓存的CPU事务被称为被缓存的事务。例如,如果缓存的事 务将访问外围设备108和/或存储器110,则它们也可以被称为缓存的CPU访问。相比之 下,不由L1/L2缓存来缓存的CPU事务被称为未被缓存的事务。
[0028] 互连112可以是总线系统,通过该总线系统,不同的硬件组件(诸如处理单元104、 总线主控器106、外围设备108、存储器110)相互进行通信。通信的内容可以包括指向存 储器110和外围设备108的CPU事务。CPU事务可包括指令和与要为虚拟机执行的指令相 关联的数据。除提供链接这些硬件组件的共享的通信织状结构之外,互连112也可以包括 控制器120以控制共享的通信链路上的通信量。例如,响应于接收到指向访问存储器110 的CPU事务,控制器120可以解析CPU事务以标识存储器的地址范围,并通过存储器控制器 128写入或该读取地址范围处的内容。进一步,CPU也可以通过外围控制器(未示出)将事 务传输到外围设备108。在一个实施例中,每一外围设备都可包括控制器,而在另一个实施 例中,多个外围设备可以共享控制器。
[0029] 总线主控器106可包括被利用可执行代码编程以将通信流引向互连112,然后到 外围设备108和/或存储器110的控制器和微处理器。在一种实现中,总线主控器可以是 代表CPU来访问存储器的直接存储器访问(DMA)控制器。如此,总线主控器106可以在CPU 的指示下获取对互连112的访问权限,还生成总线主控器事务,S卩,将指令和数据移进和移 出总线主控器的那些操作(在下文中,被称为BM事务)。BM事务可以通过旁路CPU来执 行。在虚拟化系统的情况下,CPU(或处理核)可以将虚拟机的某些CPU事务分摊到总线主 控器,以便总线主控器可以通过互连112将指定到虚拟机的BM事务引向外围设备108和/ 或存储器110。进一步,互连112的控制器120可以解析BM事务以访问(写入或读取)合 适的外围设备108上的和/或存储器110的存储器范围的内容。
[0030] 互连112可以接收CPU事务和BM事务,而不知道哪一个虚拟机产生特定事务。由 于没有这些事务的所有者的上下文意识,因此在CPU104上运行的任何虚拟机都可以访问 存储器110的任何部分和任何外围设备108。进一步,任何总线主控器106都可以访问存储 器110的任何部分和任何外围设备108。如此,传输事务而不会标识这些事务的所有权的共 享的互连112和虚拟化系统114使存储器110和外围设备108易受恶意攻击。
[0031] 本发明的各实施例可包括处理系统,该处理系统包括用于将事务(CPU或BM事务) 与为其执行事务的虚拟机的标识符相关联的处理逻辑。在一个实施例中,标识符是在创建 虚拟机之前自动地生成的并存储在CPU的内部寄存器中的虚拟机标识(VMID)。每一VMID 都唯一地标识虚拟机。可另选地,标识符可以是可以指派给虚拟机以标识虚拟机的任何字 母一数字字符串。因此,与虚拟机的标识符相关联的事务可以被跟踪到虚拟机。为简单化 和简洁,虚拟机的标识符和VMID可互换地使用,而不会将虚拟机的标识符限制到特定类型 的标识符,除标识符唯一地标识虚拟机之外。进一步,各实施例可以在互连112中提供处理 逻辑,以使用虚拟机的标识符和/或向虚拟机分配的存储器范围来验证接收到的事务。如 此,可以防止外围设备108和存储器110受到不需要的访问或恶意攻击,尽管事务仍通过共 享的互连112并从虚拟化系统114传输。
[0032] 图1更详细地示出了根据本发明的各实施例的处理系统100。参考图1,可以利用 标识符(例如,VMID)来标识虚拟机116中的每一个。标识符可以是能够唯一地标识虚拟机 的位序列。在一个实施例中,标识符可以是当虚拟机被通电或复位时指派给虚拟机的通用 唯一标识符(UUID)。在一个实施例中,标识符可以是N位整数(其中,N可以是任何长度), 并可以存储在执行虚拟机的CPU的内部寄存器中。可以通过VMM118的系统实用程序来访 问标识符。
[0033] 在一个实施例中,CPU104中的每一个都可包括用于确定从其中产生了操作的虚 拟机的标识符的处理逻辑122。标识符可以由VMM118提供(当它从虚拟机向CPU模块102 传输操作时)。在一个实施例中,可以以硬件辅助的方式使用虚拟化技术来实现虚拟化,该 虚拟化技术可以具有额外指令集(例如,x86处理器的虚拟机扩展或VMX)以创建VMM和虚 拟机。例如,使用VMX作为示例,CPU可以通过执行VMM开始命令(例如,VMXON)以在根操 作中启动VMM118,进入虚拟模式。在根操作下,VMM118可以与为根操作预留的标识符相 关联,例如,VMID= 0。在根操作下,VMM118可以使用根标识符来设置硬件组件,如下面几 节所描述的。随后,在虚拟模式下,VMM118可以使用虚拟机进入命令(例如,VM_ENTRY)来 创建虚拟机。在创建虚拟机时,虚拟机上下文切换行为可以跟随。例如,可以创建标识虚拟 机的VMID,并将其存储在CPU的内部寄存器中。虚拟机在非根操作下操作。由虚拟机产生 的每一随后的事务都可以由处理逻辑122用VMID进行标记。然而,当虚拟机退出(例如, 使用VM_EXIT命令)时,存储在内部寄存器中的标识符以及VM上下文可以被移除,在虚拟 机退出时,VMM的根操作模式可以返回。
[0034] 由虚拟机所请求的操作可包括CPU事务通过互连112访问存储器110或外围设备 108。如此,对于由所进入的虚拟机对共享的互连112作出的每一个事务,处理逻辑122可 以读取存储VMID的内部寄存器,并用标识符来标记事务。如此,CPU事务与从其中生成
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1