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

文档序号:9238146阅读:来源:国知局
CPU 事务的虚拟机相关联。
[0035] 在一个实施例中,CPU可以在给定时间将每一总线主控器106与一个虚拟机相关 联。可以使CPU将相关联的虚拟机的VMID存储到总线主控器106的寄存器128中。CPU 可以执行VMM118以在虚拟机启动时将VMID指派到总线主控器。在一个实施例中,与总 线主控器相关联的虚拟机可以在虚拟机系统114的运行时改变。对应于相关联的虚拟机 的改变,CPU可以相应地更新存储在寄存器128中的标识符,以包括当前相关联的虚拟机的 VMID。如此,当总线主控器向总线受控器(外围设备或存储器)发出BM事务时,总线主控 器的控制器可以首先用存储在寄存器128中的VMID来标记事务。如此,BM事务与为其执 行BM事务的虚拟机的VMID相关联。
[0036] 在一个实施例中,在创建时,每一虚拟机可以由VMM118指派使用存储器的特定 部分。例如,VMM118可以指定虚拟机访问存储器的一个地址范围,使得不同的虚拟机可以 访问存储器的不同的地址范围。在一个实施例中,CPU104的处理逻辑122也可以利用指 向共享的互连112的用于访问存储器110的每一CPU事务来标记虚拟机的存储器地址范围 (除虚拟机的VMID之外)。类似地,总线主控器也可以利用指向共享的互连112的用于访 问存储器110的每一BM事务来标记虚拟机的存储器地址范围(除虚拟机的标识符之外)。 如此,可以进一步利用存储器地址范围来标识访问存储器110的事务。
[0037] 在一个实施例中,互连112可包括一个或多个防火墙来检查穿过的事务。在一个 实施例中,互连可包括存储器防火墙124以控制指向互连112随后指向存储器110的那些 事务(存储器可以是RAM或块存储器,诸如嵌入式多媒体控制器(eMMC))。存储器防火墙 124可包括互连112的控制器120和用于控制对存储器110的访问的基于规则的策略。控 制器120可以实现一个或多个规则以判断是否可以根据存储器防火墙124的一个或多个规 则来执行接收到的事务(CPU事务或BM事务)。在一个实施例中,一个或多个规则可包括 可允许的一个或多个标识符和它们的对应的存储器地址范围。图2A示出了根据本发明的 一实施例的用于保护互连112的示例规则的表200。表200可以存储在可由控制器120访 问的寄存器中。参考图2A,表200的每一行都可以表示可以允许事务访问存储器110的一 部分的一个规则。如图2A所示,每一行都可包括第一部分(VMID)202以指出允许的虚拟机 的标识符,而第二204和第三206部分用于指出地址范围的开始和结束地址。响应于接收 到事务(从CPU104或从总线主控器106),控制器120可以从事务接收相关联的虚拟机的 标识符和地址范围。随后,控制器120可以将接收到的标识符和地址范围与允许的虚拟机 和对应的地址范围进行比较。如果它们满足规则中的一个(诸如区域0-2),则存储器防火 墙124可以允许事务的执行以由通过VMID所标识的虚拟机来访问该存储器地址范围。然 而,如果指向互连112的事务不满足表200中的规则中的任何一个,则可以由存储器防火 墙124拒绝访问存储器110的事务。例如,防火墙124可以允许包括虚拟机#1的标识符和 0x1000 -OxlFFF内的对应的存储器地址范围的事务的执行。然而,可以拒绝虚拟机#3的事 务,因为该事务不满足任何规则。如此,可以由防火墙124基于事务中的上下文内容来阻止 未经授权的访问(或恶意攻击)。
[0038] 在一个实施例中,互连也可以包括外围设备防火墙126以控制指向这些外围设备 108的那些事务访问。外围设备防火墙126可包括控制器126和用于控制对外围设备的访问 的基于规则的策略。控制器120可以将访问策略实现为一个或多个规则,以判断是否可以 根据外围设备防火墙126的一个或多个规则来执行接收到的事务(CPU事务或BM事务)。在 一个实施例中,外围设备防火墙126的一个或多个规则可包括虚拟机的一个或多个VMID。 在一个实施例中,外围设备防火墙126可以是可以检测允许的虚拟机的标识符的地址解码 电路逻辑。
[0039] 图2B示出了根据本发明的一实施例的用于保护外围设备的防火墙规则的表208。 表208可以存储在可由控制器120访问的寄存器中。如图2B所示,表202可包括虚拟机210 的标识符的列表以及它们的对应的对外围机器的访问权限212。如此,控制器120可以接 收事务,并将来自接收到的事务的虚拟机的VMID与存储在表208中的访问权限进行比较。 如果所标识的虚拟机具有访问权限,则外围设备防火墙126可以允许事务在外围设备上执 行。然而,如果外围设备防火墙126判断控制器没有访问权限,则外围设备防火墙126可以 拒绝事务访问总线受控器。例如,来自虚拟机#1的事务将被拒绝,而来自虚拟机#2的事务 将被允许访问外围设备。如此,外围设备也可以被保护以免受来自未经授权的虚拟机或总 线主控器的恶意攻击。在一个实施例中,存储器防火墙124和外围设备防火墙126是两个 单独的防火墙。在另一个实施例中,存储器防火墙124和外围设备防火墙126可以被实现 为控制对存储器110和外围设备108的访问的一个防火墙。
[0040] 在一个实施例中,防火墙124、126可包括根(超级用户)访问标识符,该根访问标 识符允许带有该根访问标识符的事务配置存储器防火墙124和外围设备防火墙126。根访 问可以有助于在总线主控器中设置寄存器128(寄存器128存储与总线主控器相关联的虚 拟机的VMID)、以及在处理系统100启动时或在运行时在进入虚拟机时设置存储器防火墙 124和外围设备防火墙126。根访问也可以对于调试硬件是有用的。在一个实施例中,可以 利用标识符"〇 "来标识根访问。在一个实施例中,可以给VMM118指派根访问标识符,以便 VMM可以在创建虚拟机时或在虚拟机退出时,在总线主控器106处设置虚拟机的标识符,并 在防火墙124、126中设置访问策略。例如,VMM118可以使用根访问来向被指派到带有虚 拟机的VMID的虚拟机的总线主控器的寄存器128写入。VMM118也可以使用根访问来更新 防火墙124、126的规则,以包括虚拟机的VMID以及用于存储器防火墙124的存储器地址范 围。如此,如图2A-2B所示的防火墙124、126规则包括VMM118的根访问权限。进一步,根 访问也可以被给予调试工具,以便它可以调试硬件错误。
[0041] 带有对总线主控器106的根访问的VMM118以及防火墙124、126可以在处理系统 100复位时配置总线主控器的寄存器128以及防火墙124、126的基于规则的策略。图3A示 出了根据本发明的一实施例的VMM118可以在处理系统100的复位时执行的用于保护共享 的互连112和总线受控器防止未经授权的访问的操作。参考图3A,当处理系统100被复位 时(例如,在通电时),处理系统100的CPU104可以首先启动VMM118。在开始时,VMM118 可以执行可包括允许虚拟机扩展(VMX)操作的指令(诸如VMXON指令)的起始码。起始码 (诸如VMXON指令)可以将一个或多个CPU104置于根访问的模式下(例如,VMX_ROOT)。
[0042] 利用根访问,VMM118可以具有对互连112、总线主控器106的完全访问权,以设置 每一总线主控器106与一个虚拟机、以及存储器防火墙124和外围设备防火墙126相关联。 例如,如图3A所示,VMM118可以执行虚拟机启动命令,以创建一个或多个虚拟机,每一虚 拟机都与相应的VMID相关联。随后,在302,VMM118可以设置总线主控器106。例如,VMM 118可以将一个虚拟机的VMID写入到总线主控器(例如,总线主控器#1)的内部寄存器,以 将总线主控器(BM#1)与虚拟机相关联。
[0043] 在304,VMM118可以为互连112中的存储器防火墙124设置(并更新)基于规则 的策略,以控制对存储器110的访问。例如,存储器110可以被分区为可以被虚拟机访问的 不同的范围(例如,MR#l-#3)。VMM118可以传输并将一个或多个规则输入到存储器防火 墙124的规则表(诸如规则表200)。每一规则都可包括具有访问存储器110的权限的虚拟 机的VMID以及这些虚拟机的对应的地址范围。存储器防火墙124可以被用来控制由事务 (TO事务或BM事务)对存储器110的区域的访问。例如,包括虚拟机的允许的标识符的并 在存储器110的对应的地址范围内的事务可以被执行以访问存储器地址范围。然而,不包 括允许的标识符或不在对应的存储器地址范围内的事务可以被拒绝。
[0044] 在306,VMM118也可以设置(并更新)外围设备108的外围设备防火墙126的基 于规则的策略,以控制对外围设备108的访问。例如,VMM118可以传输并将一个或多个规 则输入到外围设备防火墙126的规则表(诸如规则表208)。每一外围设备都可以具有相 应的规则表,每一规则都可包括具有访问外围设备的权限的虚拟机的VMID。外围设备防火 墙126可以被用来控制由事务(CPU事务或BM事务)对外围设备的访问。例如,包括虚拟 机的允许的标识符的事务可以被执行以访问外围设备。然而,不包括允许的标识符的事务 可以被拒绝。
[0045] -旦VMM118建立存储器防火墙124、外围设备防火墙126、以及总线主控器106 的寄存器128,可以根据与防火墙124、126中的CPU/BM事务相关联的VMID,检查并控制对 存储器110和外围设备108的CPU事务和BM事务。还可以根据与CPU/BM事务的虚拟机的 标识符相关联的存储器地址范围,进一步检查和控制通过互连112对存储器110的CPU/BM 事务。
[0046] 图3B示出了根据本发明的一实施例的CPU/BM事务的访问控制。虚拟机116可以 执行可能试图访问存储器110和/或访问外围设备108的CPU事务。进一步,总线主控器 (诸如与虚拟机#1相关联的总线主控器106)也可以执行可能试图访问存储器110和/或 访问外围设备108的BM事务。参考图3B,例如,虚拟机#1可以执行试图访问互连112以便 访问存储器110的地址范围的CPU事务310A- 310C。事务310A可包括虚拟机#1的标识符 (VMID1)和与标识符(VMID1)相关联的存储器地址范围(MR1)。响应于接收到事务310A的 请求,互连中的存储器防火墙124可以将标识符(VMID1)和存储器地址范围(MR1)与存储 器防火墙124的规则进行比较,以判断是否可以执行用于访问存储器110的地址范围的事 务310A。如果它可以,则存储器防火墙124可以允许事务310A访问存储器地址范围(MR1)。 如果它不能,则防火墙124可以拒绝访问存储器110的事务310A。类似地,可以分别用虚拟 机#2(VMID2)和存储器地址范围(MR2,MR3)对事务310B-310C进行标记。类似地,响应于 接收到事务310B、310C的请求,互连中的存储器防火墙124可将标识符(VMD2)和存储器地 址范围(MR2,MR3)与防火墙124的规则进行比较,以判断事务310B、310C是否可以执行以 访问存储器地址范围(MR2,MR3)。
[0047] 虚拟机#1也可以发出包括标识符(VMID1)的事务312A的访问外围设备#1以及 包括标识符(VMID1)的访问外围设备#2的事务312B的请求。外围设备防火墙126可以将 虚拟机#1的VMID与外围设备防火墙126中的外围设备#1的规则进行比较,以判断虚拟 机#1是否可以访问外围设备#1。如果事务312A可以,则外围设备防火墙126可以允许事 务312A访问外围设备#1。然而,如果事务312A不能,则外围设备防火墙126可以拒绝事 务312A访问外围设备# 1。类似地,外围设备防火墙126可以控制从虚拟机# 1对外围设备 #1的访问。类似地,虚拟机#2可发出试图访问外围设备#2的包括标识符(VMID2)的事务 312C。外围设备#2的防火墙126可以将标识符(VMID2)与防火墙126的规则进行比较,以 判断事务312C是否具有访问外围设备#2的权限。如果它可以,则事务312C可以被允许访 问外围设备#2。然而,如果它不能,则可以拒绝事务312C的访问请求。
[0048] 总线主控器106可以发出试图访问存储器110和/或外围设备108的事务。每一 总线主控器都与一个虚拟机相关联。例如,总线主控器#1可以通过VMM(318)与虚拟机#1 相关联,并包括在其上存储了虚拟机#1的VMID(VMIDl)的内部寄存器。总线主控器#1可 以向互连112发出执行包括标识符(VMID1)和与该标识符相关联的存储器地址范围(MR1) 的事务314。响应于接收到事务314的请求,存储器防火墙124可以将标识符和相关联的 存储器地址范围与存储器防火墙124的规则进行比较,以判断事务314是否可以执行以访 问存储器110。如果它可以,则存储
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1