CN107430570B - 具有SR-IOV和xHCI-IOV的附加安全执行环境 - Google Patents

具有SR-IOV和xHCI-IOV的附加安全执行环境 Download PDF

Info

Publication number
CN107430570B
CN107430570B CN201680018792.2A CN201680018792A CN107430570B CN 107430570 B CN107430570 B CN 107430570B CN 201680018792 A CN201680018792 A CN 201680018792A CN 107430570 B CN107430570 B CN 107430570B
Authority
CN
China
Prior art keywords
usb
xhci
iov
instantiations
management engine
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
Application number
CN201680018792.2A
Other languages
English (en)
Other versions
CN107430570A (zh
Inventor
N.V.萨兰格哈尔
S.B.麦克戈万
R.古蒂雷茨
K.R.瓦迪韦卢
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN107430570A publication Critical patent/CN107430570A/zh
Application granted granted Critical
Publication of CN107430570B publication Critical patent/CN107430570B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本文描述了一种装置。该装置包括通用串行总线(USB)组件和控制器接口。控制器接口分配用于与USB组件对接的寄存器空间,并且USB组件被虚拟化到多个例示中。该装置还包括安全环境,并且安全环境进一步虚拟化所述多个例示,以使得所述多个例示被安全环境所拥有。

Description

具有SR-IOV和xHCI-IOV的附加安全执行环境
技术领域
本申请要求于2015年3月27日提交的美国专利申请号14/671,465的申请日的权益,该申请被通过引用并入本文。
技术领域
本技术一般涉及用于USB设备的安全环境。更具体地,本技术涉及具有SR-IOV和xHCI-IOV的附加安全执行环境。
背景技术
可以使用单根输入/输出虚拟化(SR-IOV)来虚拟化USB设备。虚拟化经由虚拟机管理器(VMM)抽象出连接到主机系统的每个USB设备。VMM可以获得USB设备的独占所有权并将USB设备的所有权分配给虚拟机(VM)。然而,不可一直依赖于虚拟机管理器来隔离和保护USB设备。
附图说明
图1是具有安全环境的系统的框图;
图2A是具有未虚拟化的xHCI接口的系统的框图;
图2B是具有虚拟化的xHCI接口的系统的框图;
图2C是具有管理引擎虚拟化的xHCI接口的系统的框图;
图2D是具有三层虚拟化的xHCI接口的系统的框图;
图3是用于具有SR-IOV和xHCI-IOV的安全执行环境的方法的过程流程图;以及
图4是示出存储用于具有SR-IOV的安全执行环境的代码的有形非暂时性计算机可读介质的框图。
在整个公开和附图中使用相同的数字来引用类似的组件和特征。100系列的数字指代最初在图1中发现的特征;200系列的数字指代最初在图2中发现的特征;以此类推。
具体实施方式
受信任的执行环境是使得能够实现系统或平台的代码和设备的保护和安全性的隔离环境。受信任的执行环境独立于主机操作系统,并且可以包括硬件组件和软件组件二者。受信任的执行环境可以是主机的处理器,诸如专用的受保护环境管理引擎(ME)。
通用串行总线(USB)设备可以是经由受信任的执行环境与主机耦合的安全性关键设备。USB安全性关键设备是控制敏感数据的设备,并且可以是例如指纹扫描器、键盘、或相机。USB设备通常由通过快速外围组件互连(PCIe)接口耦合到主机平台的USB控制器来控制。PCIe可以是根据任何PCI规范,诸如发布于2010年11月的快速PCI 3.0基本规范修订版3.0。在实施例中,USB控制器是可扩展主机控制器接口(eXtensible Host ControllerInterface,xHCI)主机控制器(例如,顺从于2013年12月20日公布的通用串行总线3.0的可扩展主机控制器接口规范修订版1.1的xHCI控制器)。xHCI主机控制器进而由主机操作系统(OS)驱动器来管理。xHCI规范定义了如何通过使用PCIe定义的单根-输入/输出虚拟化(SR-IOV)机制和由xHCI规范定义的xHCI-输入/输出虚拟化(xHCI-IOV)机制的组合来跨多个虚拟机(VM)例示(instantiation)共享USB设备。在实施例中,SR-IOV和xHCI-IOV的组合可以简称为SR-IOV。SR-IOV连同PCIe和xHCI一起操作以使得能够实现USB设备的输入/输出虚拟化。
在虚拟化环境中,每个VM一般独立于其它VM,并且每个VM可以执行不同的功能。安全的VM可以“拥有”安全性关键USB设备,而剩下的USB设备的控制被分配给VMM或其它VM。如本文所用,拥有一组件可以指代具有对该组件的控制以使得系统资源由该拥有者提供给该组件。拥有该组件也可以指代具有对该组件的完全控制。在标准虚拟化情况下,xHCI主机控制器由虚拟机管理器(VMM)驱动器来管理。VMM驱动器使得能够跨多个VM共享USB设备。
本文描述的实施例使得能够实现具有SR-IOV和xHCI-IOV的附加安全执行环境。安全环境可以进一步对由VMM产生的VM的多个例示进行虚拟化。通过模拟用于所述多个例示的寄存器空间来进一步虚拟化所述多个例示。在实施例中,根据xHCI规范,USB设备被虚拟化到多个例示中。xHCI规范定义了如何与USB集线器对接,以及可以如何通过使用SR-IOV将USB集线器虚拟化到多个例示中。根据本技术,从VMM控制中移除一些USB设备,并且将对这些设备的控制分配给更安全和可用的环境。如在一些单个主机OS应用中,当VMM可能不存在时,USB安全性关键设备可以在更安全的受信任的环境内操作。即使在VMM存在时,安全性或实现原因也可阻止VMM将设备与安全VM隔离。
每个VM基本独立于其对等者地在计算系统上操作。例如,每个VM可以在物理计算系统上具有其自己的存储器空间,并且可以实现其自己的操作系统(OS)和相关联的程序。然而,VM共享计算系统的物理资源。因此,可以使用一个物理计算机来托管多个VM,每个VM执行不同的功能。这确保了有效地利用物理计算机的处理器来服务于多个任务。
在以下描述中,阐述了众多具体细节,诸如以下示例:具体的处理器类型和系统配置、具体硬件结构、具体架构和微架构细节、具体寄存器配置、具体指令类型、具体系统组件、具体测量结果/高度、具体处理器管线级以及操作等,以便提供对本发明的透彻理解。然而,将对本领域技术人员显而易见的是,不需要采用这些具体细节来实践本发明。在其它实例中,并未详细描述公知的组件或方法,诸如具体的和替代的处理器架构、用于所描述的算法的具体逻辑电路/代码、具体固件代码、具体互连操作、具体逻辑配置、具体制造技术和材料、具体编译器实现方式、代码中算法的具体表达、具体掉电和选通技术/逻辑、以及计算机系统的其它具体操作细节,以便避免不必要地模糊本发明。
尽管可参考具体集成电路中(诸如在计算平台或微处理器中)的节能和能效来描述以下实施例,但其它实施例可应用于其它类型的集成电路和逻辑设备。本文描述的实施例的相似的技术和教导可被应用于同样可受益于更好的能效和节能的其它类型的电路或半导体设备。例如,公开的实施例不限于桌面计算机系统或UltrabookTM(超级本),而是也可用于诸如手持设备、平板、其它薄笔记本、片上系统(SOC)设备、和嵌入式应用之类的其它设备中。手持设备的一些示例包括蜂窝电话、互联网协议设备、数字相机、个人数字助理(PDA)和手持PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机或可以执行以下所教导的功能和操作的任何其它系统。此外,本文描述的装置、方法和系统不限于物理计算设备,而是也可涉及用于节能和能效的软件优化。如将在以下描述中变得容易地显而易见的,本文(无论是否参考硬件、固件、软件或其组合)描述的方法、装置和系统的实施例对与性能考虑相权衡的“绿色技术”未来是至关重要的。
随着计算系统一直进步,其中的组件正变得更加复杂。结果,耦合组件并在组件之间通信的互连架构也在复杂度上一直增加,以保证带宽要求被满足用于最佳组件操作。此外,不同的市场区段需要不同方面的互连架构以适应市场需求。例如,服务器需要更高性能,而移动生态系统有时能够牺牲总体性能以省电。但是,大多数构造的唯一目的是在最大省电的情况下提供最高可能的性能。下面,讨论将会潜在地受益于本文描述的发明的各方面的多种互连。
图1是具有安全环境的系统100的框图。系统100可以是例如膝上型计算机、台式计算机、超极本、平板计算机、移动设备或服务器等的组件。系统100可以包括被配置为执行所存储的指令的中央处理单元(CPU)102,以及存储可由CPU 102执行的指令的存储器设备104。CPU可以通过总线106耦合到存储器设备104。此外,CPU 102可以是单核处理器、多核处理器、计算群集或任何数量的其它配置。此外,系统100可以包括多于一个的CPU 102。存储器设备104可以包括随机存取存储器(RAM)、只读存储器(ROM)、闪存或任何其它合适的存储器系统。例如,存储器设备104可以包括动态随机存取存储器(DRAM)。
CPU 102可以通过总线106连接到VMM 114。VMM 114可以进而将具体功能(诸如具体USB设备112的所有权)委派给VM 116。VMM 114和VM 116经由xHCI主机控制器110对接到USB设备112。安全环境108要使得能够为安全性关键USB设备112实现受信任的执行环境。在实施例中,安全环境108是管理引擎(ME)。此外,安全环境可以是分离的计算环境,完全具有其自己的CPU、存储器和其它计算环境功能性。安全环境108是xHCI主机控制器110的主要所有者。xHCI主机控制器110可以与多个USB设备112耦合,并且要提供到USB设备112的接口。USB设备112可以是例如集线器、键盘、鼠标、存储设备、指纹传感器等。安全环境108将具体功能(诸如具体USB设备112的所有权)委派给VMM 114。然后,VMM 114可以将具体功能委派给特定VM。以这种方式,通过虚拟化的三层层级来保护USB设备。
系统100可以包括存储设备118。存储设备118可以是诸如硬驱、光驱、拇指驱动、驱动阵列或其任何组合之类的物理存储器。存储设备118也可以包括远程存储驱动。系统100也可以包括有线或无线网络接口控制器(NIC)120,其可以被配置为将系统100连接到网络120。网络120可以是广域网(WAN)、局域网(LAN)或互联网等。
应当理解,图1的框图不旨在指示系统100应包括图1中所示的组件中的全部。相反,系统100可以包括更少的组件或者图1中未图示出的附加组件。此外,组件可以根据任何合适的系统架构(包括图1所示的系统架构或使用数据总线促进组件之间的安全通信的任何其它合适的系统架构)彼此耦合。
为了启用具有SR-IOV的虚拟机,实现虚拟功能(VF)和物理功能(PF)。虚拟功能是链接到物理功能的“轻量级”PCI功能。物理功能可以维护对资源的独占控制、与一个或多个虚拟功能共享资源、或直接将资源分配给虚拟功能。物理功能是支持SR-IOV的全特征PCI功能,并且可以与PCI设备类似地被发现、管理和操纵。在物理功能中启用SR-IOV之后,可以通过总线、设备和物理功能的功能号来访问每个虚拟功能的PCI配置空间。此外,每个虚拟功能具有用于映射其寄存器组的PCI存储器映射IO(MMIO)空间。虚拟功能设备驱动器在其各自的寄存器组上操作以启用其功能性,并且虚拟功能对于VM显现为实际的PCI设备。
图2A是具有未虚拟化的xHCI接口的系统200A的框图。未虚拟化的接口包括xHCI主机控制器202,其要控制经由USB端口204A、204B、204C和204D与系统200A耦合的USB设备。xHCI主机控制器202与平台对接,如同PCI接口由主机操作系统(OS)206驱动器管理那样。在实施例中,xHCI主机控制器202是支持低速、全速、高速、超速和超速加(SuperSpeedPlus)的USB设备的基本XHCI控制器。根据PCIe接口,xHCI主机控制器202作为功能被寻址并且是单个逻辑实体。在没有虚拟化的情况下,该功能是具有PCIe配置空间的物理功能。OS 206具有对于物理功能零(PF0)的直接控制,并且在系统200A中不存在对应的虚拟功能。
xHCI主机控制器202具有包括容量寄存器208、操作寄存器210和运行时寄存器208的地址空间。容量寄存器208定义与xHCI主机控制器202相关联的容量和限制。操作寄存器210由OS 206配置成启用与xHCI控制器的各种通信,诸如状态请求和其它控制或命令。运行时寄存器212可以用于处理各种运行时事件,诸如xHCI主机控制器处的中断。PCIe地址空间还包括多个门铃寄存器214。在图200A的示例中,图示了门铃寄存器214A、214B、214C ...214n,并且被统称为门铃寄存器214。为每个设备槽定义一个门铃寄存器。每个USB设备与设备槽相关联。在实施例中,OS 206使用门铃寄存器来向xHCI主机控制器通知存在xHCI控制器要执行的任务。连接到端口204A、端口204B、端口204C、或端口204D中的任何的USB设备将与设备槽和对应的门铃寄存器214相关联。
在没有虚拟化的情况下,OS 206负责被提供给连接到端口204A、端口204B、端口204C、或端口204D中的任何的USB设备的隔离和安全性。基于主机的恶意软件可以容易地拦截来自USB设备的敏感数据,因为不存在USB设备的隔离。因此,可以使用恶意软件来观察经由USB鼠标与系统进行的敏感用户交互、经由USB键盘进行的揭示敏感数据的键击以及经由基于USB的指纹扫描器的敏感指纹信息。
图2B是具有虚拟化的xHCI接口的系统200B的框图。类似于图2A,图2B包括xHCI主机控制器202,其要控制经由USB端口204A、204B、204C和204D与系统耦合的USB设备。操作系统供应商(OSV)220可以创建虚拟机管理器(VMM)222。虚拟机管理器可以产生任何数量的虚拟机(VM)例示,其被图示为VM1 224到VMn 224n并被统称为VM 224。VMM 222和VM 224之间的通信是经由管理程序226实现的。管理程序226要使得VM能够在系统硬件上执行,并且也使得能够实现VMM、VM和各种地址空间之间的通信。
VMM 222拥有物理功能零(PF0)216。PF0 216用于模拟多个虚拟功能(VF)例示,每个虚拟功能例示对应于VM。如本文所用,模拟一功能可以指代生成虚拟功能。模拟也可以指代仿效正在模拟的东西。因此,模拟物理功能指代仿效该物理功能的另一功能。图2B图示了虚拟功能例示VF1 228到VFn 228n,其被统称为VF 228。通过每个VF的模拟地址空间的操纵和配置,VMM可以授予VM对于USB设备的专用所有权或共享所有权。在USB组件是耦合到端口204的USB集线器的情况下,进一步与USB集线器耦合的USB设备可以由单个VM中的任何一个所拥有,或者跨多个VM进行共享。
使用图2B所示的虚拟化,可以通过被单个VM所拥有来保护和隔离USB设备。即使在USB设备经由共享USB集线器与端口耦合时,USB设备也可以从其它VM隐藏。然而,不可一直依赖于VMM来隔离和保护USB设备。在一些情况下,安全性或实现原因可能阻止VMM将设备与安全VM隔离。
图2C是具有管理引擎虚拟化的xHCI接口的系统200C的框图。图2C包括要控制经由USB端口204A、204B、204C和204D与系统耦合的USB设备的xHCI主机控制器202。管理引擎(ME)230拥有根物理功能撇(prime)(PF0')232。在实施例中,ME由固件(FW)管理。PF0' 232用于模拟服从于受OS 206控制的虚拟功能撇(VF1')例示234。对于OS 206,VF1' 234是PF0216,OS驱动器预期其来对xHCI主机控制器202进行适当的OS 206控制。因此,OS 206将模拟的VF1' 234寻址为PF0 216。
在实施例中,ME 230是分离的计算环境,完全具有其自己的CPU、存储器、和其它计算环境功能性。通过PF0'控制寄存器,ME 230可以授予VF1' 234和OS 206对于经由端口204耦合的USB设备的专用所有权或共享所有权。ME 230也可以保留对经由端口204耦合的USB设备的所有权。在USB集线器耦合到端口204的情况下,进一步与USB集线器耦合的USB设备可以由OS 206或ME 230所拥有。为了为USB设备创建安全和隔离的环境,ME 230可以对OS206隐藏端口204处的USB设备的存在。
图2D是具有三层虚拟化的xHCI接口的系统200D的框图。图2D包括xHCI主机控制器202,其要控制经由USB端口204A、204B、204C和204D与系统200D耦合的USB设备。图2D还包括要创建VMM 222的OSV 220,VMM 222进而可以产生任何数量的虚拟机(VM)例示VM1 224到VMn 224n。
在图2D中,ME 230拥有实际的物理功能(PF0')232。ME 230使用PF0' 232来管理表示到OSV 220的虚拟化xHCI接口200B的虚拟功能撇(VF1')例示234。这使得ME 230能够向VMM 222表示物理功能216。因此,VF1'被VMM 222视为PF0 216。在不区分在VMM控制下的资源已经被虚拟化的情况下,VMM用作典型的VMM。此外,VMM将要就像由VMM创建的虚拟化之外没有发生另外的虚拟化一样地操作。因此,VMM 222经由VF1 228至VFn 228n继续PF0 216(实际是VF1' 234)对VM 224至224n的进一步模拟。
使用图2D所示的三层虚拟化,当专用所有权在ME 230之下时,USB设备可以被置于安全且隔离的环境中。根据如由设备描述符指示的设备的安全性需求,ME 230可以具有设备的专用所有权,将设备的所有权传递给VMM 222,或者与VMM 222共享设备的所有权。VMM222可以保留设备的所有权,与VM共享设备的所有权,或将设备的所有权传递给VM。
在示例中,增强了ME和启用SR-IOV的xHCI主机控制器以支持ME和SR-IOV硬件。所有集线器由ME永久拥有,这使得ME能够检测到任何新设备附接或去附接活动。在新设备(包括新的USB集线器)的枚举之后,ME做出确定设备的所有权的策略决定。设备可完全由ME拥有,并且从不对高于ME、VF1' 234之上的级别可见。这种设备的示例是安全USB指纹传感器。此外,设备可以由ME拥有,但也与VMM共享。这种设备的示例是集线器或键盘。一旦设备被分配给VMM,VMM将做出类似的策略决定。因此,VMM做出关于完全保留对分配的设备的控制、与VM共享分配给它的设备、或者将控制完全让渡给VM的策略决定。
在示例性用例中,用户可以拍摄照片以获得用于主机登录用途的生物特征数据。在这种情况下,相机是将向主机系统发送敏感生物特征数据的USB设备。取决于所需的安全性级别,设备由ME或VMM拥有,以提供适当的安全性级别。最安全的所有权是在ME下,因为它是全封闭的环境。在实施例中,ME固件被应用于主机系统,以使得它不能在不引起引导故障的情况下被从系统中删除或修改。与ME相比,VMM提供较低级别的安全性,而未虚拟化的系统为USB设备启用最少量的安全性。设备描述符能够为设备声明适当的安全性级别。
如上所述,本技术要通过创建附加的根物理功能PF0'来扩展SR-IOV的虚拟化能力。下表例证了支持PF0'的附加能力:
ME FW PF0' VMM PF0或主机OS VM VFn
PCI配置空间 由VMM诱捕并模拟
MMIO地址空间容量和操作寄存器 是(当PF0'存在时,由ME FW填充) 由VMM诱捕并模拟
门铃阵列和运行时寄存器
槽分配寄存器 是(向PF0分配它不拥有的设备) 是(向VFn分配它不拥有的设备)
特殊集线器处理(共享设备) 是(由ME处置) 是(暴露为虚拟功能)
表1 物理寄存器空间
表1描述了针对具有根物理功能的ME(ME FW PF0')、VMM或主机OS、以及由虚拟功能支持的VM(VM VFn)中的每个的一般PCI物理寄存器空间。通过将其物理寄存器空间映射到基地址寄存器(BAR)来启用PCI设备。ME和SR-IOV xHCI控制器在其BAR空间内包括若干空间:PCI配置空间、存储器映射输入/输出(MMIO)地址空间、和DRAM配置地址空间。PCI配置空间包括被映射到存储器位置的寄存器。PCI配置空间用于初始化xHCI控制器。MMIO地址空间是使得能够访问控制器所拥有的设备的存储器空间。DRAM存储器地址空间使得能够实现到主存储器的写入。
在模拟物理功能时,ME和VMM各自模拟每个功能的PCIe地址空间。每个地址空间包括容量寄存器、操作寄存器、运行时寄存器和门铃寄存器。每个USB设备被分配以设备槽,它与xHCI的MMIO空间中的门铃寄存器相关联。当要由USB设备执行动作时,对门铃的写入向控制器通知:到USB设备的端点的数据传送或来自USB设备的端点的数据传送已准备好。在实施例中,门铃0被预留用于主机控制器,并且可以指示主机控制器处的动作。门铃的地址标识要与哪个USB设备进行通信。此外,门铃寄存器中的数据标识动作所针对的USB设备的端点,这转换成将用于移动数据的相应的xHCI DMA通道。当门铃被写入时,这指示数据存在于传送环上。传送环使得能够在主机和设备之间实现使用分散-集中数据传送的数据传送。
图3是用于具有SR-IOV和xHCI-IOV的安全执行环境的方法300的过程流程图。在块302处,初始化主机控制器。可以使用PCIe配置和MMIO地址空间来初始化主机控制器。在实施例中,主机控制器是经由ME初始化的xHCI主机控制器。最初,所有设备都由ME FW拥有,并且ME FW也负责主机控制器PF0'寄存器初始化。以这种方式,主机控制器知道它被ME拥有。ME FW也负责PF0寄存器空间中的初始化值,以便确保所述值表示VMM在其初始化时所预期的值。在实施例中,主机控制器可以具有在初始化期间分配的寄存器空间。寄存器空间也可以由主机控制器分配。此外,寄存器空间可以由主机控制器定义。
在块304处,发生USB设备枚举。枚举过程递归地走遍USB拓扑,以搜索附接的集线器和设备。作为设备枚举过程的一部分,ME将初始化根集线器。所有USB集线器都被ME FW拥有,并且ME FW将USB集线器的实例模拟至VMM。集线器将指示设备是否被连接在其下方。如果有设备连接,则ME将开始设备枚举。此过程继续直到检查了整个USB拓扑。
设备枚举也响应于热插拔事件而发生,在热插拔事件中USB设备在初始化后与系统耦合。在热插拔事件时,可生成中断以对设备进行枚举。xHCI控制器支持多个中断器。与每个中断器相关联的是事件环。当主机控制器检测到事件时,事件被发布到事件环,这进而将导致生成中断。中断器0'由ME拥有。中断器0由VMM拥有。中断器1-n可由VMM拥有或由VMM分配给VM。
如果由于热插拔事件在根集线器端口中的任何上检测到端口改变状态,则xHCI主机控制器将会将端口状态改变事件发布到事件环0'。事件环0'直接为ME生成中断。响应于中断,ME将借助于通过PF0'命令环发布槽启用命令来启用对附接到端口的设备的访问。此外,主机控制器将返回用于访问设备的设备槽的ID。然后,ME将使用设备槽的控制端点向设备发布请求,并确定设备的类型及其特征。此时,ME可以决定它是否想要独占地拥有设备,与PF0共享设备,或将设备分配给PF0。取决于系统架构,PF0可以由VMM拥有(图2D)或由OS拥有(图2C)。
在块306处,引导VMM。当VMM开始运行时,它将访问其地址空间中的主机控制器PF0寄存器。在实施例中,VMM也将启用SR-IOV并根据需要产生新的VM。VM(1-n)将酌情初始化VF1-n寄存器。到xHCI控制器的所有VMM和VM命令产生针对它们各自功能(PF0或VFn)的虚拟“门铃0”请求。这些动作创建针对下面的虚拟化级别(为ME)的事件。由于ME是PF0'和物理门铃0的拥有者,所以它负责向控制器执行VMM/VM请求的动作。
在块308处,VMM走遍USB拓扑,寻找附接的设备。ME通过其PF0'接口跟踪此活动,并将设备分配给VMM。ME还可以通过其PF0'接口跟踪此活动,并将设备分配给OS。在实施例中,可以将USB设备分配给ME、VMM或VM。利用槽ID,ME将执行地址分配并读取USB设备的设备描述符。
ME分析设备的描述符,并使用策略决定将设备分配给其自身或PF0。在示例中,当ME FW策略决定不要将设备分配给ME时,它将会将设备分配给VMM或OS。进而,VMM具有它自己的策略,该策略可以确定其对于设备的所有权是不适当的,并将设备分配给VM。例如,考虑没有敏感数据的高速相机。ME FW要确定相机无需安全性并将其分配给VMM。进而,VMM可以确定它不需要对相机的控制,然后将其分配给VM。
在实施例中,如果设备被完全分配给PF0,则它被ME FW在设备槽分配寄存器中标记有设备否认拥有位。如果设备完全由ME拥有,则它被ME FW在设备槽分配寄存器中标记有设备拥有位。如果要共享设备,则ME FW针对每个共享实例请求新的设备槽ID,并且为槽设置指示它将会用于使用直接存储器访问(DMA)辅助进行模拟的参数。然后,xHCI控制器向ME返回具有DMA辅助的新的模拟设备槽ID。然后,ME FW将用两个位来标记新的设备槽分配寄存器,这两个位指示该设备被拥有并且它被共享。这使得控制器能够识别对此槽ID的访问需要对PF0的模拟辅助。
在ME完成设备的分配之后,它将生成强制事件命令,以将事件传送到PF0来向PF0通知USB设备已附接到PF0。作为事件传送的一部分,xHCI控制器硬件辅助包括用于将事件生成给预计的接收者并将底层事件缓冲器传送到所预计的接收者的事件环存储器空间的支持。在接收到事件之后,预计的接收者(例如,VMM)将处理事件并继续。
在实施例中,当设备处于VMM的完全控制下时,由VMM使用PF0寄存器空间和相关联的存储器空间来完全管理设备操作。VMM可以将设备分配给VM,以使得可以由VM使用VF1-n寄存器空间和相关联的存储器空间完全管理设备操作。类似地,如果设备专用于ME,则由ME使用PF0'寄存器空间和相关联的存储器空间完全管理设备操作。当设备被共享时,传送请求块(TRB)源自最高级别(例如,VF1),并使用传送事件传送到下面的级别(例如,VF1→PF0→PF0'),直到由xHCI控制器硬件采取实际的所需动作。类似地,来自xHCI硬件控制器的响应首先被传送到最低级别(PF0'),并且使用传送事件向上传递到上面的级别(例如,PF0'→PF0→VF1)。
因此,ME和SR-IOV以及xHCI-IOV xHCI控制器使得能够实现由ME进行的设备配置以在PCI配置空间中显现为多个物理功能。所述物理功能与由VMM根据SR-IOV和xHCI-IOV管理的物理功能相关联。VMM产生多个VM,每个VM具有分配的在PCI配置空间中显现的虚拟功能。每个虚拟功能可以支持针对I/O相关功能的独有和分离的数据路径。
图4是示出存储用于具有SR-IOV的安全执行环境的代码的有形非暂时性计算机可读介质400的框图。有形非暂时性计算机可读介质400可以由处理器402通过计算机总线404来访问。此外,有形非暂时性计算机可读介质400可以包括被配置为指导处理器402执行本文描述的方法的代码。
本文讨论的各种软件组件可以存储在一个或多个有形非暂时性计算机可读介质400上,如图4所示。例如,主机初始化模块406可以被配置为初始化主机控制器。在实施例中,主机控制器由ME FW初始化。主机初始化模块也可促使VMM引导。枚举模块408可以被配置为对设备进行枚举。在枚举设备前,可以初始化每个集线器。在块410处,分配模块将每个设备分配成由ME FW、VMM或主机OS所拥有。在实施例中,设备所有权可以是专用所有权或共享所有权。
图4的框图不旨在指示有形非暂时性计算机可读介质400应包括图4所示的组件中的全部。此外,取决于具体实现的细节,有形非暂时性计算机可读介质400可以包括图4中未示出的任何数量的附加组件。
示例1
本文描述了一种装置。所述装置包括通用串行总线(USB)设备和控制器接口。所述控制器接口要分配用于与所述USB设备对接的寄存器空间,并且所述USB设备被虚拟化到多个例示中。所述装置还包括安全环境,其中所述安全环境要通过模拟用于所述多个例示的寄存器空间来虚拟化所述多个例示。
所述控制器接口可以是可扩展主机控制器接口(xHCI)。此外,USB集线器可以通过使用单根输入/输出虚拟化(SR-IOV)和xHCI输入/输出虚拟化(xHCI-IOV)的组合的组合而被虚拟化到多个例示中。所述安全环境可以是管理引擎。所述USB设备可以是多个USB设备、多个USB集线器或其任何组合。至少一个USB设备可以由所述安全环境拥有,并且可以通过专用处理器或微控制器来启用所述安全环境。所述USB集线器可以经由物理功能和相关联的虚拟功能被虚拟化到多个例示中。所述安全环境可以经由链接到所述物理功能的根物理功能来虚拟化所述多个例示。此外,所述控制器接口可以支持低速、全速、高速、超速和超速加的USB设备。
示例2
本文描述了一种装置。所述装置包括通用串行总线(USB)设备和控制器接口。所述控制器接口要定义用于与所述USB设备对接的寄存器空间,并且所述控制器接口由操作系统进行管理。所述装置还包括管理引擎,其中所述管理引擎虚拟化所述寄存器空间,以使得所述USB设备由所述管理引擎拥有并被模拟至所述操作系统。
所述控制器接口可以是可扩展主机控制器接口。所述管理引擎可以拥有将虚拟功能一撇(VF1')模拟至所述操作系统的物理功能零撇(PF0')。所述USB设备可以是多个USB设备、多个USB集线器或其任何组合。至少一个USB设备可以由安全环境所拥有。所述管理引擎可以是通过专用处理器或微控制器启用的安全环境。所述控制器接口可以支持低速、全速、高速、超速和超速加的USB设备。
示例3
本文描述了一种系统。所述系统包括与多个USB设备耦合的USB集线器和微控制器。所述微控制器要与所述USB集线器对接。所述系统还包括要将所述USB集线器的地址空间虚拟化到多个例示中的虚拟机管理器以及至少一个策略管理器,所述至少一个策略管理器要进一步虚拟化所述多个例示,以使得所述多个例示由所述策略管理器拥有。
所述微控制器可以顺从于可扩展主机控制器接口。所述USB集线器可以通过使用单根输入/输出虚拟化(SR-IOV)和xHCI输入/输出虚拟化(xHCI-IOV)的组合而被虚拟化到多个例示中。所述策略管理器可以是管理引擎,并且至少一个USB设备可以由虚拟机管理器拥有。至少一个USB设备可以由所述策略管理器拥有。所述策略管理器可以是分离的计算环境。所述地址空间可以经由物理功能和相关联的虚拟功能被虚拟化到多个例示中。所述策略管理器可以经由链接到所述物理功能的根物理功能来虚拟化所述多个例示。所述策略管理器可以支持低速、全速、高速、超速和超速加的USB设备。
示例4
本文描述了一种方法。该方法包括经由管理引擎初始化主机控制器并引导虚拟机管理器。该方法还包括枚举USB集线器和USB设备,并将USB集线器和USB设备分配给管理引擎、虚拟机管理器或其任何组合。
主机控制器可以顺从于可扩展主机控制器接口。可以在初始化期间将USB集线器和USB设备分配给管理引擎。管理引擎可以初始化用于虚拟机管理器的物理功能地址空间中的值。可以基于设备描述符将USB设备分配给管理引擎、虚拟机管理器或其任何组合。可以由管理引擎和虚拟机管理器共享至少一个USB集线器。可以通过递归地走遍USB拓扑并搜索附接的集线器和设备来枚举USB集线器和USB设备。可以响应于热插拔事件来枚举USB集线器和USB设备。此外,可以基于设备描述符将USB集线器和USB设备分配给管理引擎、虚拟机管理器或其任何组合。管理引擎可以分析设备描述符,并经由策略来分配USB集线器或USB设备。此外,虚拟机管理器可以经由策略将USB集线器或USB设备分配给虚拟机。管理引擎和虚拟机管理器可以共享USB集线器或USB设备的所有权。传送事件可以在与管理引擎对应的根物理功能零撇(PF0')和与虚拟机管理器对应的物理功能零(PF0)之间传送数据。
示例5
本文描述了一种装置。所述装置包括通用串行总线(USB)设备和控制器接口。所述控制器接口要分配用于与所述USB设备对接的寄存器空间,并且所述USB设备被虚拟化到多个例示中。所述装置还包括用于通过模拟用于所述多个例示的寄存器空间来虚拟化所述多个例示的部件。
所述控制器接口可以是可扩展主机控制器接口(xHCI)。所述USB设备可以通过使用单根输入/输出虚拟化(SR-IOV)和xHCI输入/输出虚拟化(xHCI-IOV)的组合的组合而被虚拟化到多个例示中。用于虚拟化所述多个例示的部件可以是管理引擎。所述USB设备可以是多个USB设备、多个USB集线器或其任何组合。至少一个USB设备可以由所述用于虚拟化所述多个例示的部件拥有。所述用于虚拟化所述多个例示的部件可以通过专用处理器或微控制器来启用。所述USB集线器可以经由物理功能和相关联的虚拟功能被虚拟化到多个例示中。所述用于虚拟化所述多个例示的部件可以经由链接到所述物理功能的根物理功能来虚拟化所述多个例示。所述控制器接口可以支持低速、全速、高速、超速和超速加的USB设备。
示例6
本文描述了一种有形非暂时性计算机可读介质。该计算机可读介质包括用于指导处理器经由管理引擎初始化主机控制器并引导虚拟机管理器的代码。该计算机可读介质还包括用于指导处理器枚举USB集线器和USB设备并将USB集线器和USB设备分配给管理引擎、虚拟机管理器或其任何组合的代码。
主机控制器可以顺从于可扩展主机控制器接口。可以在初始化期间将USB集线器和USB设备分配给管理引擎。管理引擎可以初始化用于虚拟机管理器的物理功能地址空间中的值。可以基于设备描述符将USB设备分配给管理引擎、虚拟机管理器或其任何组合。可以由管理引擎和虚拟机管理器共享至少一个USB集线器。可以通过递归地走遍USB拓扑并搜索附接的集线器和设备来枚举USB集线器和USB设备。可以响应于热插拔事件来枚举USB集线器和USB设备。可以基于设备描述符将USB集线器和USB设备分配给管理引擎、虚拟机管理器或其任何组合。管理引擎可以分析设备描述符,并经由策略来分配USB集线器或USB设备。此外,虚拟机管理器可以经由策略将USB集线器或USB设备分配给虚拟机。管理引擎和虚拟机管理器可以共享USB集线器或USB设备的所有权。传送事件可以在与管理引擎对应的根物理功能零撇(PF0')和与虚拟机管理器对应的物理功能零(PF0)之间传送数据。
虽然已经相对于有限数量的实施例描述了本技术,但是本领域技术人员将认识到源自于其的许多修改和变化。所附权利要求旨在涵盖落入本技术的真实精神和范围内的所有这些修改和变化。
设计可以经历从创建到模拟到制造的各个阶段。代表设计的数据可以以多种方式表示设计。首先,如在仿真中有用的,硬件可以使用硬件描述语言或另一功能性描述语言来表示。此外,可以在设计过程的某一阶段产生具有逻辑和/或晶体管门的电路级模型。此外,大多数设计在某一阶段达到表示硬件模型中各种设备的物理放置的数据级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定用于产生集成电路的掩模的不同掩模层上存在或不存在各种特征的数据。在设计的任何表示中,数据可被存储于任何形式的机器可读介质中。存储器或磁存储或光存储,诸如磁盘,可以是机器可读介质,以存储经由光或电波传输的信息,所述光或电波被调制或以其它方式生成为传输这种信息。当指示或携带代码或设计的电载波被传输时,在电信号的复制、缓冲或重传输被执行的程度上做出新的副本。因此,通信供应商或网络供应商可在有形的、机器可读介质上至少暂时存储诸如编码到载波中的信息的制品,从而实施本技术的实施例的技术。
如本文所使用的模块指代硬件、软件和/或固件的任何组合。例如,模块包括硬件,诸如微控制器,其关联于非暂时性介质,以存储被适配成由微控制器执行的代码,因此,在一个实施例中,对模块的引用指代硬件,其特别地被配置为识别和/或执行将保持在非暂时性介质上的代码。此外,在另一实施例中,模块的使用指代包括代码的非暂时性介质,其特别地被适配成由微控制器执行,以实行预定操作。并且如可以推断的,在又一实施例中,术语模块(在该示例中)可指代微控制器和非暂时性介质的组合。通常,说明为分离的模块边界通常发生变化并且潜在地重叠。例如,第一和第二模块可共享硬件、软件、固件或其组合,同时潜在地保留一些独立硬件、软件或固件。在一个实施例中,术语逻辑的使用包括硬件,诸如晶体管、寄存器或其它硬件,诸如可编程逻辑器件。
在一个实施例中,短语“用以”或“被配置为”的使用指代布置、放一起、制造,许诺销售、进口和/或设计装置、硬件、逻辑或元件,以执行指定的或确定的任务。在该示例中,如果被设计、耦合和/或互连以执行所述指定的任务,则没有正在操作的装置或其元件仍“配置为”执行指定的任务。仅作为说明性的示例,逻辑门可在操作期间提供0或1。但逻辑门“配置为”提供启用信号至时钟,不包括可提供1或0的每个潜在的逻辑门。相反,逻辑门是以在操作期间1或0输出是用于启用时钟的某种方式耦合的逻辑门。再次注意,术语“配置为”的使用不需要操作,但相反集中于装置、硬件和/或元件的潜在状态,其中装置、硬件和/或元件的潜在状态被设计为当装置、硬件和/或元件正操作时执行特定任务。
此外,在一个实施例中,短语“能够”和/或“可操作以”的使用指代以要使能以指定方式使用装置、逻辑、硬件和/或元件的这种方式设计的一些装置、逻辑、硬件和/或元件。如以上注意的,在一个实施例中,用以、能够、或可操作以的使用,指代装置、逻辑、硬件和/或元件的潜在状态,其中装置、逻辑、硬件和/或元件没有正在操作但以使能以指定方式使用装置的这种方式来被设计。
如本文所使用的值,包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值或逻辑上的值的使用也称为1和0,其仅表示二进制逻辑状态。例如,1指代高逻辑电平而0指代低逻辑电平。在一个实施例中,存储单元,诸如晶体管或闪存单元,可以能够保持单个逻辑值或多个逻辑值。然而,使用了计算机系统中的值的其它表示。例如十进制数10还可被表示为1010的二进制值和十六进制的字母A。因此,值包括能够被保持在计算机系统中的信息的任何表示。
此外,状态可由值或值的部分来表示。例如,第一值,诸如逻辑1,可表示默认或初始状态,而第二值,诸如逻辑0,可表示非默认状态。此外,在一个实施例中,术语重置和设置,分别指代默认和更新的值或状态。例如,默认值潜在地包括高逻辑值,即重置,而更新值潜在地包括低逻辑值,即设置。注意,值的任何组合可被用于表示任何数量的状态。
上文阐述的方法、硬件、软件、固件或代码的实施例可经由可由处理元件执行的存储于机器可访问的、机器可读的、计算机可访问的或计算机可读的介质上的指令或代码来实现。非暂时性机器可访问/可读介质包括提供(即,存储和/或传输)以诸如计算机或电子系统的机器可读的形式的信息的任何机构。例如,非暂时性机器可访问介质包括随机存取存储器(RAM),诸如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪存设备;电存储设备;光存储设备;声学存储设备;用于保持接收自暂时性(传播)信号(例如,载波、红外信号、数字信号)的信息的其它形式的存储设备;等等,其将区别于可从其中接收信息的非暂时性介质。
用于将逻辑编程以执行本技术的实施例的指令可存储于系统的存储器内,存储器诸如是DRAM、缓存、闪存或其它存储装置。此外,指令可经由网络或借助于其它计算机可读介质来分发。因此机器可读介质可包括用于以由机器(例如,计算机)可读的形式存储或传输信息的任何机构,但不限于,软磁盘、光盘、紧凑盘只读存储器(CD-ROM)、以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、磁卡或光学卡、闪存、或用于经由电、光、声学或其它形式的传播信号(例如,载波、红外信号、数字信号等)通过互联网传输信息的有形的、机器可读存储装置。因此,计算机可读介质包括任何类型的有形的机器可读介质,其适用于以由机器(例如,计算机)可读的形式存储或传输电子指令或信息。
遍及本说明书对“一个实施例”或“实施例”的引用意指结合所述实施例描述的特定特征、结构或特性被包括于本技术的至少一个实施例中。因此,遍及本说明书在各个地方出现短语“在一个实施例中”或“在实施例中”不一定全部指代相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式被组合。
在前述说明书中,已参考特定示例性实施例给出详细描述。然而,将显而易见的是,可对其进行各种修改和改变而不脱离如所附权利要求中阐述的本技术的更广泛的精神和范围。因此,应以例证性意义而非限制性意义来看待说明书和附图。此外,实施例的前述用途和其它示例性语言不一定指代相同实施例或相同示例,而是可指代不同的和有区别的实施例以及潜在地指代相同的实施例。

Claims (23)

1.一种用于虚拟化的装置,包括:
通用串行总线(USB)设备;
控制器接口,其中,所述控制器接口要分配用于与所述USB设备对接的寄存器空间,并且所述USB设备被虚拟化到多个例示中;以及
安全环境,其中,所述安全环境要通过模拟用于所述多个例示的寄存器空间来虚拟化所述多个例示,
其中,所述控制器接口是可扩展主机控制器接口(xHCI),
其中,USB集线器通过使用单根输入/输出虚拟化(SR-IOV)和xHCI输入/输出虚拟化(xHCI-IOV)的组合的组合而被虚拟化到多个例示中。
2.根据权利要求1所述的装置,其中,所述安全环境是管理引擎。
3.根据权利要求1所述的装置,其中,所述USB设备是多个USB设备、多个USB集线器或其任何组合。
4.根据权利要求3所述的装置,其中,至少一个USB设备由所述安全环境所拥有。
5.根据权利要求1所述的装置,其中,通过专用处理器或微控制器来启用所述安全环境。
6.根据权利要求1所述的装置,其中,USB集线器经由物理功能和相关联的虚拟功能被虚拟化到多个例示中。
7.一种用于虚拟化的装置,包括:
通用串行总线(USB)设备;
控制器接口,其中,所述控制器接口要定义用于与所述USB设备对接的寄存器空间并且所述控制器接口由操作系统进行管理;以及
管理引擎,其中,所述管理引擎虚拟化所述寄存器空间,以使得所述USB设备由所述管理引擎拥有并被模拟至所述操作系统,
其中,所述控制器接口是可扩展主机控制器接口,
其中,USB集线器通过使用单根输入/输出虚拟化(SR-IOV)和xHCI输入/输出虚拟化(xHCI-IOV)的组合的组合而被虚拟化到多个例示中。
8.根据权利要求7所述的装置,其中,所述管理引擎拥有将虚拟功能一撇(VF1')模拟至所述操作系统的物理功能零撇(PF0')。
9.根据权利要求7所述的装置,其中,所述USB设备是多个USB设备、多个USB集线器或其任何组合。
10.一种用于虚拟化的系统,包括:
与多个USB设备耦合的USB集线器;
微控制器,其中,所述微控制器要与所述USB集线器对接;
虚拟机管理器,其要将所述USB集线器的地址空间虚拟化到多个例示中;以及
至少一个策略管理器,其中,所述策略管理器要进一步虚拟化所述多个例示,以使得所述多个例示由所述策略管理器拥有,
其中,所述微控制器顺从于可扩展主机控制器接口,
其中,所述USB集线器通过使用单根输入/输出虚拟化(SR-IOV)和xHCI输入/输出虚拟化(xHCI-IOV)的组合而被虚拟化到多个例示中。
11.根据权利要求10所述的系统,其中,所述策略管理器是管理引擎。
12.根据权利要求10所述的系统,其中,至少一个USB设备由所述虚拟机管理器所拥有。
13.根据权利要求10所述的系统,其中,至少一个USB设备由所述策略管理器所拥有。
14.根据权利要求10所述的系统,其中,所述策略管理器是分离的计算环境。
15.根据权利要求10所述的系统,其中,所述地址空间经由物理功能和相关联的虚拟功能被虚拟化到多个例示中。
16.根据权利要求15所述的系统,其中,所述策略管理器经由链接到所述物理功能的根物理功能来虚拟化所述多个例示。
17.一种用于虚拟化的方法,包括:
经由管理引擎初始化主机控制器;
引导虚拟机管理器;
枚举USB集线器和USB设备;以及
将所述USB集线器和所述USB设备分配给所述管理引擎、所述虚拟机管理器或其任何组合,
其中,所述主机控制器顺从于可扩展主机控制器接口,
其中,所述USB集线器通过使用单根输入/输出虚拟化(SR-IOV)和xHCI输入/输出虚拟化(xHCI-IOV)的组合的组合而被虚拟化到多个例示中。
18.根据权利要求17所述的方法,包括在初始化期间将所述USB集线器和所述USB设备分配给所述管理引擎。
19.根据权利要求17所述的方法,其中,所述管理引擎初始化用于所述虚拟机管理器的物理功能地址空间中的值。
20.一种具有存储于其上的指令的机器可读介质,所述指令在被执行时引起计算设备实行根据权利要求17-19中的任一项所述的方法。
21.一种用于虚拟化的装置,包括:
用于经由管理引擎初始化主机控制器的部件;
用于引导虚拟机管理器的部件;
用于枚举USB集线器和USB设备的部件;以及
用于将所述USB集线器和所述USB设备分配给所述管理引擎、所述虚拟机管理器或其任何组合的部件,
其中,所述主机控制器顺从于可扩展主机控制器接口,
其中,所述USB集线器通过使用单根输入/输出虚拟化(SR-IOV)和xHCI输入/输出虚拟化(xHCI-IOV)的组合的组合而被虚拟化到多个例示中。
22.根据权利要求21所述的装置,包括用于在初始化期间将所述USB集线器和所述USB设备分配给所述管理引擎的部件。
23.根据权利要求21所述的装置,其中,所述管理引擎初始化用于所述虚拟机管理器的物理功能地址空间中的值。
CN201680018792.2A 2015-03-27 2016-02-15 具有SR-IOV和xHCI-IOV的附加安全执行环境 Active CN107430570B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/671465 2015-03-27
US14/671,465 US10019400B2 (en) 2015-03-27 2015-03-27 Additional secured execution environment with SR-IOV and xHCI-IOV
PCT/US2016/017948 WO2016160147A1 (en) 2015-03-27 2016-02-15 Additional secured execution environment with sr-iov and xhci-iov

Publications (2)

Publication Number Publication Date
CN107430570A CN107430570A (zh) 2017-12-01
CN107430570B true CN107430570B (zh) 2021-03-12

Family

ID=56975332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680018792.2A Active CN107430570B (zh) 2015-03-27 2016-02-15 具有SR-IOV和xHCI-IOV的附加安全执行环境

Country Status (3)

Country Link
US (1) US10019400B2 (zh)
CN (1) CN107430570B (zh)
WO (1) WO2016160147A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9910690B2 (en) * 2015-11-20 2018-03-06 Red Hat, Inc. PCI slot hot-addition deferral for multi-function devices
US10146962B2 (en) * 2015-12-17 2018-12-04 Mcafee, Llc Method and apparatus for protecting a PCI device controller from masquerade attacks by malware
US10296766B2 (en) * 2018-01-11 2019-05-21 Intel Corporation Technologies for secure enumeration of USB devices
CN108959903B (zh) * 2018-06-11 2022-03-04 超越科技股份有限公司 一种移动存储设备安全管控方法及系统
DE102018120347A1 (de) * 2018-08-21 2020-02-27 Pilz Gmbh & Co. Kg Automatisierungssystem zur Überwachung eines sicherheitskritischen Prozesses
US12008389B2 (en) * 2018-11-13 2024-06-11 Marvell Asia Pte, Ltd. Flexible resource assignment to physical and virtual functions in a virtualized processing system
US11575620B2 (en) * 2019-03-29 2023-02-07 Intel Corporation Queue-to-port allocation
US10831483B1 (en) * 2019-04-29 2020-11-10 Intel Corporation Memory mapped virtual doorbell mechanism
US11442767B2 (en) * 2020-02-27 2022-09-13 Hewlett Packard Enterprise Development Lp Virtual serial ports for virtual machines
US11640312B2 (en) * 2020-02-27 2023-05-02 Hewlett Packard Enterprise Development Lp System reset using a controller
US12019466B2 (en) * 2022-04-26 2024-06-25 Hewlett Packard Enterprise Development Lp Virtual precision time protocol clock devices for virtual nodes
CN117785593B (zh) * 2024-02-28 2024-06-04 成都电科星拓科技有限公司 一种基于UVM的xHCI驱动的实现系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859112A (zh) * 2006-01-19 2006-11-08 华为技术有限公司 虚拟以太网设备数据传送装置及数据传送方法
US7478180B1 (en) * 2005-12-14 2009-01-13 Vmware, Inc. Virtualizing a communications channel in which blocks of data are divided into multiple sub-blocks for conveyance
CN101751285A (zh) * 2008-12-08 2010-06-23 辉达公司 用于不同种类处理单元的集中式设备虚拟化层
CN101853344A (zh) * 2009-03-31 2010-10-06 英特尔公司 对输入输出装置内容的基于平台的验证

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327137B1 (en) * 2005-03-25 2012-12-04 Advanced Micro Devices, Inc. Secure computer system with service guest environment isolated driver
US8739156B2 (en) 2007-07-24 2014-05-27 Red Hat Israel, Ltd. Method for securing the execution of virtual machines
US8412860B2 (en) 2009-04-01 2013-04-02 Fusion-Io, Inc. Input/output (I/O) virtualization system
US8521941B2 (en) 2010-12-28 2013-08-27 Plx Technology, Inc. Multi-root sharing of single-root input/output virtualization
US9286094B2 (en) 2012-10-12 2016-03-15 Citrix Systems, Inc. Human interface device virtualization using paravirtual USB system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478180B1 (en) * 2005-12-14 2009-01-13 Vmware, Inc. Virtualizing a communications channel in which blocks of data are divided into multiple sub-blocks for conveyance
CN1859112A (zh) * 2006-01-19 2006-11-08 华为技术有限公司 虚拟以太网设备数据传送装置及数据传送方法
CN101751285A (zh) * 2008-12-08 2010-06-23 辉达公司 用于不同种类处理单元的集中式设备虚拟化层
CN101853344A (zh) * 2009-03-31 2010-10-06 英特尔公司 对输入输出装置内容的基于平台的验证

Also Published As

Publication number Publication date
US10019400B2 (en) 2018-07-10
CN107430570A (zh) 2017-12-01
WO2016160147A1 (en) 2016-10-06
US20160283425A1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
CN107430570B (zh) 具有SR-IOV和xHCI-IOV的附加安全执行环境
CN110063051B (zh) 用于重新配置服务器的系统和方法以及服务器
JP5345652B2 (ja) 部分仮想化マシンに基づく統一格納装置
CN106537340B (zh) 虚拟化信息操纵系统的输入/输出加速设备和方法
JP5608243B2 (ja) 仮想化環境においてi/o処理を行う方法および装置
US7743389B2 (en) Selecting between pass-through and emulation in a virtual machine environment
US9880867B2 (en) Method and subsystem for data exchange between a guest operating system and a virtualization layer
US8856781B2 (en) Method and apparatus for supporting assignment of devices of virtual machines
US20240193106A1 (en) Cross Address-Space Bridging
US20090265708A1 (en) Information Processing Apparatus and Method of Controlling Information Processing Apparatus
US20080065854A1 (en) Method and apparatus for accessing physical memory belonging to virtual machines from a user level monitor
US10146962B2 (en) Method and apparatus for protecting a PCI device controller from masquerade attacks by malware
EP3329368A1 (en) Multiprocessing within a storage array system executing controller firmware designed for a uniprocessor environment
CN113312140B (zh) 用于虚拟可信平台模块的系统、存储介质和方法
US20100162243A1 (en) Context based virtualization
CN113312141B (zh) 用于卸载串行端口模拟的计算机系统、存储介质和方法
US20210149587A1 (en) Technologies to provide access to kernel and user space memory regions
US11467776B1 (en) System supporting virtualization of SR-IOV capable devices
US20230051825A1 (en) System supporting virtualization of sr-iov capable devices
US12093706B2 (en) Multiple port emulation
CN113760526A (zh) 数据处理加速器的具有动态资源隔离的数据保护
US20180307513A1 (en) Systems and methods for traffic monitoring in a virtualized software defined storage architecture
EP3920501B1 (en) Data protection with static resource partition for data processing accelerators
WO2022068753A1 (zh) 服务器系统、容器设置方法及装置
JP2010128943A (ja) 情報処理装置および情報処理装置の制御方法

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