CN103874984B - 可虚拟化以及前向兼容硬件‑软件接口 - Google Patents

可虚拟化以及前向兼容硬件‑软件接口 Download PDF

Info

Publication number
CN103874984B
CN103874984B CN201280031877.6A CN201280031877A CN103874984B CN 103874984 B CN103874984 B CN 103874984B CN 201280031877 A CN201280031877 A CN 201280031877A CN 103874984 B CN103874984 B CN 103874984B
Authority
CN
China
Prior art keywords
instruction
driver
event
equipment
queue
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.)
Expired - Fee Related
Application number
CN201280031877.6A
Other languages
English (en)
Other versions
CN103874984A (zh
Inventor
E·塔米尔
E·露兹欧恩
B-Z·弗里德曼
M·J·彭纳
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 CN103874984A publication Critical patent/CN103874984A/zh
Application granted granted Critical
Publication of CN103874984B publication Critical patent/CN103874984B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

公开了一种对前向兼容硬件‑软件接口的虚拟化。实施例使用在驱动器中,不管其是物理驱动器或虚拟驱动器。指令对驱动器排队,并被获取给设备。访问操作列表,以确定驱动器是否被允许执行指令。事件响应于指令为驱动器排队。如果驱动器不被允许执行指令,则设备固件将指令递送给执行所请求指令的特权驱动器。如果驱动器仅被允许在辅助下执行指令,则将指令递送用于校正和执行。如果指令终止,事件会像指令所执行的那样排队完成。驱动器不会指示执行了哪个操作。操作表会根据硬件/软件的修改进行变化,或根据配置变化动态变化。

Description

可虚拟化以及前向兼容硬件-软件接口
技术领域
本发明一般涉及计算和/或通信领域。尤其是本发明关于可虚拟化和前向兼容设备驱动器接口。
背景技术
总线或通信子系统包括电气/电磁接口以及编程接口。符合特定总线接口的设备包括硬件、固件和软件,并具有用于配置目的以及控制信号和/或数据的通信用的状态存储器和/或数据存储器,通常具有设备驱动器,该设备驱动器专门为该设备所编写并符合总线软件接口,以向主机提供对该设备的控制和访问。设备驱动器可以通过一个或更多的特定设备ID(标识符)和版本、厂商ID、子厂商ID和子设备ID来识别。(外部控制器接口)PCI基本说明书Rev.3.0第7.5.1节可从pcisig.com/members/downloads/specifications/pciexpress/上以PDF格式(可移植文档格式)的PCI_Express_Bus_r3.0_10Nov10.pdf在线获取,以获取更多信息。
本说明书上下文中的前向兼容或向上兼容是指硬件-软件接口或系统能够与其还没设计出来的之后的版本或更新的设备进行平稳工作的能力。前向兼容技术意味着为较旧的设备所设计的接口能够如期望的那样与新设备一同工作。
本说明书上下文中的虚拟化指的是虚拟化设备驱动器、虚拟化硬件设备或虚拟化功能。例如,若干个以太网设备可以通过虚拟化接口来共享单个物理链路。这样虚拟化技术可以提供一种方法:在一个硬件配置上呈现一组逻辑计算和/或通信资源,使得这些逻辑资源可以以与原始硬件配置相同的方式进行访问。可被虚拟化的硬件资源包括:计算机系统、存储器、网络、密码资源、图形资源、音频资源、电视资源或其它。
硬件虚拟化技术的示例包括用于Linux系统的KVM(基于内核的虚拟机);用于系统的Hypervisor、VSPs(虚拟服务提供商)、VSCs(虚拟服务客户端)以及VM(虚拟机)工作处理器;用于Windows以及Linux的虚拟化服务器的Xen管理程序;以及系统z虚拟化:用于基于IBM的z/OS(操作系统)、z/VSE(虚拟存储器扩展)或z/TPF(交易处理)的系统,在系统z上的Linux以及用于z/VM管理程序。这些技术中的一些会使用消息技术,例如像套接字、交换机、消息通道和邮箱,其允许虚拟驱动器意识到虚拟化,或者一些技术需要大量的底层结构、管理程序和/或仿真器。照此,现有技术没有提供足够的灵活性来设计这样一种虚拟设备驱动器、虚拟化硬件设备或接口的虚拟功能:其配备有为当前设备所设计的,并且当新设备可用时能够如所期望的那样在新设备上运行的接口。
至今,这种可虚拟化和前向兼容设备硬件-软件接口的潜在解决方案还没有被充分开发。
附图说明
本发明通过例子的形式进行解释,但不限于附图的范围。
图1示出使用组合硬件固件设备来实现可虚拟化和前向兼容设备驱动器/功能驱动器接口的设备的实施例。
图2示出使用组合硬件固件设备来实施可虚拟化和前向兼容设备驱动器/功能驱动器接口的处理实施例的流程图。
图3a和3b示出使用组合硬件固件设备来实施可虚拟化和前向兼容设备驱动器/功能驱动器接口的处理的替换实施例的流程图。
图4示出使用组合硬件固件设备来实施可虚拟化和前向兼容设备驱动器/功能驱动器接口的处理的替换实施例的流程图。
图5示出使用组合硬件固件设备来实施可虚拟化和前向兼容设备驱动器/功能驱动器接口的系统的实施例。
图6示出使用组合硬件固件设备来实施可虚拟化和前向兼容设备驱动器/功能驱动器接口的系统的替换实施例。
具体实施方式
公开了一种可虚拟化及前向兼容硬件-软件接口的方法和设备。设备接口的实施例可用在设备功能驱动器中,而不管其是物理驱动器或虚拟驱动器。命令会从驱动器排列到命令队列中,并且接着由设备固件从命令队列中获取。操作表由固件访问来确定是否允许驱动器执行各种命令。在一些实施例中,期望这些权限希望能够根据系统事件或改变而被动态修改。
响应于命令,事件从固件中被排列到驱动器各自的事件队列中。如果不允许一虚拟驱动器执行特定的命令,则设备固件会将命令递送到物理驱动器或特权驱动器的事件队列或指令队列,或递送到一管理程序或VMM(虚拟机管理器),以代替虚拟驱动器而执行或代理所请求的命令。如果一驱动器仅仅允许执行具有辅助的发布命令,则固件俘获该命令,将命令递送到特权驱动器和/或对参数进行任何必要的修改,等等,以便随后代替发布驱动器执行修改后的命令。为了针对不同的命令和驱动器类型调整权限,还可以根据配置的改变动态更新操作表,以用于硬件软件修改或更新。
图1示出了与硬件固件设备102结合执行虚拟化和前向兼容设备驱动器/功能驱动器接口的设备101的实施例。
设备101的一些实施例遵守行业虚拟化标准,允许在单个计算机中同时运行的多个操作系统本地共享设备。例如,SRIOV(单一根I/O虚拟化)提供现有的(外围组件连接)PCI拓扑中的本地I/O虚拟化,在现有的PCI 拓扑中只有单个根联合体。类似地,MRIOV(多根I/O虚拟化)提供在新拓扑(例如像刀片式服务器)中的本地I/O虚拟化,在新拓扑中多个根联合体共享一个PCI Express层级。
设备101的其他实施例可通过使用标准或非标准或属性虚拟化技术、接口、总线或互连来实现,例如SPI(串行外围接口)总线;ISA(行业化标准架构)总线、PC/104、PC/104+和扩展ISA;USB(通用串行总线)AVC(音频视频类);AMBA(高级微控制器总线架构)(高级外围总线)APB;火线(IEEE Std 1394a-2000高性能串行总线-修订1,ISBN 0-7381-1958-X;IEEEStd 1394b-2002高性能串行总线-修订2,ISBN 0-7381-3253-5;IEEE Std 1394c-2006,2007-06-08,ISBN 0-7381-5237-4);HDMI(高清晰度多媒体接口);VESA(视频电子标准协会)的显示端口和迷你显示端口;(行业处理器接口)联盟的(串行低功耗晶片间媒体总线),LLI(低延迟接口),CSI(照相机串行接口)DSI(显示器串行接口)等。
设备101包括存储器110,用来记录功能性描述资料,包括驱动器112和驱动器115的可执行命令,其可被逻辑处理器120或逻辑处理器130执行。驱动器112和驱动器115是功能驱动器,其为设备102提供特定功能给设备驱动器。驱动器112和驱动器115可以是物理驱动器或虚拟化驱动器或是两者。在设备101的一个实施例中,驱动器112或驱动器115的其中之一可被认为是特权驱动器(不失普遍性,就认为是驱动器115)。如果驱动器112和/或驱动器115的可执行指令被逻辑处理器120或逻辑处理器130所执行,则会使得设备101执行一个或多个处理以使用组合硬件固件设备102来实现可虚拟化和前向兼容设备-驱动器/功能-驱动器接口。
在一些实施例中,组合硬件固件设备102可被包括在网络接口卡(NIC)中。组合硬件固件设备102包括固件150、硬件160和访问控制队列ACL表170。固件150记录功能性描述资料,包括设备102的可执行状态机指令,其可使得设备102执行一个或多个处理以在设备101中实现可虚拟化和前向兼容设备-驱动器/功能-驱动器接口。总线140包括电气/电磁接口和编程接口。设备102遵守总线140的接口,包括硬件160、固件150和软件驱动器112和115、具有用于配置目的以及控制信号和/或数据通信用的状态存储器和/或数据存储器,具有设备102驱动器112和115,设备102驱动器112和115专门为设备102或设备102的更早版本所编写,并且遵守总线140的软件接口以向设备101提供对设备102的控制和访问。
以下还会参考图2-4,更加详细地描述在设备101中实现可虚拟化和前向兼容设备-驱动器/功能驱动器接口的一个或更多处理器的实施例。但是作为这种在设备101中实现可虚拟化和前向兼容设备-驱动器/功能驱动器接口的处理器的一个实施例,固件150可从驱动器112的命令队列113处获取命令。固件150然后访问ACL表170,来确定是否允许功能驱动器112执行所获取的命令。ACL表170的一个实施例如表1所示。基于命令的发送者,命令可被允许、或被过滤、或被否定、或被丢弃,或被俘获并被发送到另一驱动器或管理程序等。
表1:ACL表示例,显示了对虚拟功能(VF),授权功能(PF),网络控制和管理(MNG)的操作。
如果驱动器112被允许执行命令,则硬件160和/或固件150执行命令,并且固件150响应于命令的完成,而将事件排队到驱动器112的事件队列114中。
如果,另一方面,由固件150对ACL表170的访问确定了驱动器112不被允许执行命令,固件150将命令作为事件发送到驱动器115的事件队列117(或到命令队列116),为了示例,我们假设驱动器115是特权的。在那种情况下,驱动器115从固件150处通过事件队列117接收事件,该事件对应于由设备102的固件150从虚拟驱动器(即驱动器112)转送过来的命令。然后驱动器115响应于接收到的事件序列117中的事件,将第二条命令或第二多条命令排队到命令队列116中。接着,固件150从驱动器115的命令队列116处获取第二条命令或第二多条命令,并且访问ACL表170来确定是否驱动器115被允许执行第二条命令或第二多条命令,此处仍然假设驱动器115是特权的,并且允许执行第二命令或第二多条命令。然后第二命令或第二多条命令可由硬件160和/或固件150执行,并且固件150响应于第二命令或第二多条命令的完成,将一事件或多个事件排队到驱动器115的事件队列117中。驱动器115从固件150通过事件队列117接收另一事件,该事件对应于第二命令或第二多条命令的完成。然后驱动器115响应于接收到事件队列117中的该事件或多个事件,而将第三命令排队到命令队列116中,该命令通过发送完成事件给事件队列114,而模拟完成了来自驱动器112的第一条命令。
第三条命令可由硬件160和/或固件150执行,并且固件150响应于第三条命令的执行,可将模拟的完成事件排队到驱动器112的事件队列114中,模拟对第一条命令的完成,并且可响应于第三条命令的实际完成而将完成事件排队到驱动器115的事件队列117中。
这样,可虚拟化整个驱动器112而不需要改变驱动器112、或者可以逐个功能地对驱动器112进行虚拟化、或者可逐个设备属性地虚拟化驱动器112、或者甚至可以逐个命令地虚拟化驱动器112,通过改变ACL表170中的许可。可以理解的是,这样细粒度的虚拟化能够被用于减少操作损耗、或优化服务、或向驱动器112提供前向兼容性、或修正设备102中的故障,并且这种细粒度虚拟化可以在设备102的设计期间被施加,或在运行期间动态被施加而不修改驱动器112。可以理解的是,响应于通过可管理接口或从网络控制包中接收到的命令,使用相似的过程。
图2示出了使用组合硬件固件设备来实施可虚拟化和前向兼容的设备-驱动器/功能-驱动器接口的过程201的一个实施例的流程图。过程201和此处公开的其它过程由处理块执行,处理块可包括专用硬件或软件或由通用目的机器或特定目的机器或两者联合执行的固件操作代码。
在过程201的处理块210中,多条命令被从驱动器排队到命令队列中。在过程201的一些实施例中,命令实际上同时从多个虚拟化驱动器、或从部分虚拟化驱动器、或从物理驱动器处被排队到多命令队列中。为了顺序解释过程201,我们这么说,一开始,命令从第一驱动器排队到第一命令队列。该第一驱动器可以是功能驱动器,例如,PCI Express总线或迷你-PCI Express总线上的PCI设备的特定功能。在另一实施例中,第一驱动器符合一些其他的标准或非标准或专有总线接口或通信通道接口或其它SW/HW接口,用于配置目的,并用于在设备和设备驱动器之间的控制信号和/或数据的通信,以向例如装置101之类的装置提供对特定设备的控制和访问。
在过程202的处理块212中,多个命令的第一命令从第一命令队列被获取到设备固件。过程202是过程201的子过程,并且代表在设备固件上和/或设备上的硬件或软件上所运行的过程。在处理块214中,使用设备固件来访问动作表以在处理块216中确定是否第一功能驱动器被允许执行第一命令。
如果第一功能驱动器被允许执行第一命令,则处理继续到过程202的处理块218中,其中命令由设备硬件和/或可选的由设备固件协助执行。然后在处理块220,完成事件被排队到事件队列(在本例子上下文中,是第一驱动器的事件队列)中。然后处理重复过程201,过程201从处理块210开始。
另一方面,如果第一功能驱动器不被允许执行第一命令,则处理进程从过程201的处理块216转到处理块224,其中命令被递送到另一驱动器的事件队列中。在处理块228,响应于所递送的命令,一修正命令从另一驱动器排队。修正命令可安装如下方式来修正:例如通过由另一驱动器将所递送的命令中的虚拟地址替换为物理地址、通过将较旧设备的过时命令替换为较新的功能等同命令、或通过其他一些修正。
可以理解的是,为了描述的需要,在过程201的一些实施例中,根据处理块228,其他驱动器通过对修正命令进行排队而对所递送的命令做出响应,但是本发明不限于此。也可以理解的是,虽然过程201和/或过程202的处理块被示出为以一定顺序发生,但是这种特定的顺序不是必需的,或者甚至不要求总是相同的。例如,可以理解的是,在处理块228中的修正命令的排队以及处理块232的进程之间可以发生过程202的一些处理块,或者发生过程202的一个或更多的整个循环。
可以理解的是,过程201的处理进行到处理块232,其中命令被排队以模拟原始递送命令的完成。然后处理重复过程202,过程202从处理块221开始。
图3a示出了使用组合硬件固件设备来实施可虚拟化和前向兼容设备-驱动器/功能驱动器接口的过程301的另一实施例流程图。在过程302的处理块312中,第一命令从第一命令队列被获取到设备固件。过程302是过程301的子过程,并且如同在过程202中一样,过程302代表了在设备固件上和/或在设备上的硬件或软件上运行的过程。在处理块314,设备固件访问动作表,以在处理块317中确定该命令是否可由排队第一命令的驱动器来执行。
如果允许由对其排队的驱动器来执行第一命令,则处理继续到过程302的处理块318,其中命令由设备硬件和/或可选的设备固件协助来执行。
或者,如果对其排队的驱动器不被允许执行第一命令,并且当动作表被访问时在处理块319中确定了命令应当被丢弃;或者在其他情况下在处理块318中成功执行命令;然后在处理块320中,将完成事件排队到对第一命令排队的驱动器的事件序列中。在丢弃第一命令的情况下,不必需其他动作。然后处理重复过程302,过程302从处理块312开始。
或者,当在处理块314中访问动作表时,如果在处理块321中确定响应于该命令应当返回一错误,则在处理块322中,错误事件被排队到对第一命令排队的驱动器的事件队列中,并且处理重复过程302,过程302从处理块312开始。
最后,当在处理块314中访问动作表,如果在处理块323中确定命令应当被俘获,则在处理块324,命令被排队到另一驱动器(一特权驱动器)的事件序列中,并且处理进行到过程303,过程303从处理块326开始,其中在特权驱动器的事件队列中接收所递送的命令。然后在处理块328中,代理命令被排队到特权驱动器的命令队列中,并且接着在处理块330中在特权驱动器的事件队列中接收完成事件。这样,在处理块332,模拟所递送命令完成的命令被排队到特权驱动器的命令队列中,并且处理重复过程302,过程302从处理块312开始。
再次,可以理解的是,虽然过程301和/或过程303或过程302的处理块被示出为以一定的顺序发生,这种特定顺序不是必需的,或甚至不希望总是一样的。例如,可以理解的是,在处理块328的代理命令排队和处理块330的进程之间,可以发生过程302的处理块的一些处理,或者发生过程302的一个或多个整体循环。应当理解的是,响应于从可管理接口或从网络经由控制分组中接收命令,可使用相似的过程或多个过程。
图3b示出了使用组合硬件固件设备来实施可虚拟化和前向兼容设备-驱动器/功能-驱动器接口的过程304的另一实施例的流程图。在过程305的处理块342中,设备固件通过可管理接口从主板管理控制器(BMC)接收第一命令。过程305是过程304的子过程,并且如同过程302一样,过程305代表了在设备固件上和/或在设备的硬件或软件上运行的过程。在处理块344中,第一命令可选地由固件翻译成等价的管理员第一命令,并且设备固件访问动作表,在处理块317中确定命令是否由BMC执行。
如果允许BMC执行第一命令,则处理继续到过程305的处理块318,其中命令由设备硬件和/或可选地由设备固件协助执行。
或者,如果不允许BMC执行第一命令,并且当访问动作表确定在处理块319中,命令应当被丢弃;或者在处理块318成功执行命令;则在处理块350,响应被发送给BMC信令第一命令完成。在第一命令丢弃的情况下,不必需其他动作。然后处理重复过程305,过程305从处理块342开始。
另外,当在处理块344中访问动作表,如果在处理块321中确定响应于命令应当返回错误时,则在处理块352,响应被发送到BMC信令以及第一命令的错误,并且处理重复过程305,过程305从处理块342开始。
最后,当动作表在处理块344中被访问时,如果在处理块323中确定命令应当被俘获,则在处理块354中,命令被排队到专用驱动器的事件队列中(或命令队列中)来完成,并且处理以与上述图3a相同的方式进行到过程303。这样,响应于通过可管理接口或从网络控制包中接收的命令,使用类似的一个过程或多个过程。
图4示出了使用组合硬件固件设备来实施可虚拟化和前向兼容设备-驱动器/功能-驱动器接口的过程401的另一实施例的流程图。在过程404的处理块406中,安装第一设备驱动器。在处理块408中,安装特权驱动器来代理执行第一设备驱动器的功能命令。然后,处理继续到过程402的处理块414,其中第一驱动器的功能命令在动作表中被识别以被递送。接着,在处理块423中,被识别的功能命令的执行被俘获,并且在处理块424中,被识别的功能命令被递送到特权驱动器。
在过程403的处理块426中,接收被递送的命令。然后在处理块428中,代表第一设备驱动器执行特权命令。并且在处理块432中,模拟所递送的命令的完成。
由此,可以不对驱动器本身进行改变而虚拟化驱动器,或者通过改变在设备上ACL表中的许可,可以逐个功能地虚拟化驱动器、或逐个设备属性地虚拟化驱动器、或逐个命令地虚拟化驱动器。可以理解的是,这种细粒度虚拟化可以被用来减少操作损耗、或优化服务、或向驱动器提供前向兼容性、或修正设备中的故障,并且这种细粒度虚拟化可以在设备的设计期间被施加,或在运行期间被动态施加而不修改驱动器。
图5示出了使用组合硬件固件设备来实施的可虚拟化和前向兼容设备-驱动器/功能-驱动器接口的数据处理系统501的一个实施例。数据处理系统501包括处理器520和530,其各自具有一个或多个处理核574和584,数据处理系统501还包括存储器510和540、芯片集590、设备502,设备502具有固件550和ACL表570。作为数据处理系统501的一个例子,处理器520和530以及芯片集590能实现P2P(点对点)互连系统或环状互连系统,用于彼此之间的通信以及与其它设备502之间的通信。例如,所示的P2P系统实际上包括若干个处理器,而只示出了两个处理器520和530。处理器520和530使用P2P接口电路578和588经由P2P接口550交换数据,并且可选择地使用P2P接口568,在一些实施例中,P2P接口568可以是快速通道互联(QPI)扩展连接器。处理器520和530通过各自的P2P接口552和554使用点对点接口电路576、594、586和598与芯片集590进行数据交换。
处理器520和530还包括本地MCH(存储器控制器中枢)572和582以分别连接到存储器510和540。存储器510和540记录功能性描述资料,分别包括驱动器512和驱动器515、以及驱动器542和驱动器545的可执行命令,其能够被处理器520或处理器530执行。
在一些实施例中设备502可包括NIC、或被包含作为NIC的一部分。驱动器512、515、542和545可以是功能驱动器,提供特定功能给设备502的设备驱动器。驱动器512、515、542和545可以是物理驱动器或虚拟驱动器或其中的一些是两者。在一个系统501实施例中,驱动器512或驱动器515以及驱动器542或驱动器545可以认为是特权驱动器(为了不失一般性,认为是驱动器515和545)。如果驱动器512、驱动器515、驱动器542和/或驱动器545的可执行指令由处理器520或处理器530执行,则它们会使得系统501执行一个或多个处理,以使用组合硬件固件设备502来实现可虚拟化和前向兼容设备-驱动器/功能-驱动器接口。
芯片集590还可以通过高性能图形接口539与高性能图形电路538进行数据交换。在一些实施例中,任何处理器核包括本地高速缓存或以其他方式与本地高速缓存(未示出)相关。另外,共享的高速缓存(未示出)被包括在任意一个处理器中,或者在这两个处理器外部并通过P2P互连与处理器连接,这样当处理器被置于低功率模式中时,任意一个处理器或这两个处理器的本地缓存信息(包括,例如,驱动器512、515、542和545的拷贝)可被存储在共享的高速缓存中。芯片集590还可以通过总线接口514与I/O设备537和音频I/O设备504进行数据交换。在系统501的一些实施例中,I/O设备537和音频设备504可以是与设备502类似的组合硬件固件设备,并且也能够如上所述地实现虚拟化和前向兼容的设备-驱动器/功能-驱动器接口。芯片集590还可以通过总线接口514、总线桥521和总线接口518与接口562和566、键盘/鼠标534、通信设备532、bios 540以及数据存储器519进行数据交换。在一些系统501的实施例中,键盘/鼠标534、通信设备532、数据存储器519和总线桥521中的一个或多个也可以是与设备502类似的组合硬件固件设备,并且能够实现上述的可虚拟化和前向兼容的设备-驱动器/功能-驱动器接口。在一些系统501的实施例中,接口562和566是刀片扩展连接器,用于连接到高速串行器/去串行器(SerDes)构造接口。
所公开技术的实施例可包含在或应用到任何硬件和/或固件设备或其一部分中,包括中央处理单元、图形处理单元、网络处理器、或其他处理逻辑或处理器中或计算机系统中的核。实施例还可以被具现化在有形的机器可读介质中,在其上存储一组命令,如果其被机器执行,则使得机器进行所述的操作。
图6示出了使用组合硬件固件设备来实施可虚拟化前向兼容设备-驱动器/功能-驱动器接口的系统601的替换实施例。系统601包括处理器620和630,处理器620和630可选地各自具有一个或多个协处理器626和636以及一个或多个加速器628和638,系统601还包括存储器610、无线连接设备602、设备603(其可以是例如以太网设备或第四代调制解调器设备),以及音频I/O设备604。在系统601的一些实施例中,无线连接设备602包括固件650和ACL表670,设备603包括固件651和ACL表671,并且音频I/O设备604包括固件652和ACL表672。系统601的一些实施例是以芯片上系统来实现,例如,用在平板电脑或智能手机中。在这种实施例中,无线连接设备602可以提供无线LAN(局域网)链接,其能够实现可虚拟化及前向兼容设备-驱动器/功能-驱动器接口,设备603提供4G(第四代)、5G(第五代)或更新的电话链接,能够实现可虚拟化及前向兼容设备-驱动器/功能-驱动器接口,并且音频I/O设备604可提供一组音频人体接口设备,例如,耳机、扬声器、手持麦克风、音频输入和输出通道,以及放大器,其能够实现可虚拟化及前向兼容设备-驱动器/功能-驱动器接口。
处理器620和630与总线609、桥621和总线614相耦合,以与多种其他系统设备进行通信,其他系统设备可包括但不限于:无线链接设备602、设备603和音频I/O设备604、照相机622、快速IrDA(红外数据通信)端口623、HD(高清晰度)多媒体接口624、USB 625、LCD(液晶显示器)设备627和备用主接口629。在系统601的一些实施例中,照相机622、快速IrDA端口623、HD多媒体接口624、USB 625、LCD设备627和备用主接口629中的一或多个还可以是或连接到能够实现可虚拟化及前向兼容设备-驱动器/功能-驱动器接口的设备。
处理器620和630还可以与总线609和总线611相耦合,用于与多种其它系统设备进行通信,其它系统设备包括但不限于:存储器610、快闪存储器613、SD(安全数字)存储器616、MMC(多媒体卡)617和SSD(固态驱动器)619。存储器610和系统601的其他有形存储介质可存储功能性描述资料,包括驱动器612和驱动器615以及其他设备驱动器(未示出)的可执行命令,其能够由处理器620或处理器630执行来至少部分地实现可虚拟化及前向兼容设备-驱动器/功能-驱动器接口,例如如上所述。
驱动器612和615可以是功能驱动器,其为无线链接设备602、设备603、或音频I/O设备604的任何一个提供特定功能给设备驱动器。设备612和615可以是物理驱动器或虚拟化驱动器或其中一些是两者。在系统601的一个实施例中,驱动器612和615中的一个可以被认为是特权驱动器(不失一般性地,认为是驱动器615)。如果驱动器612和/或615的可执行命令由处理器620或处理器630执行,那么其会使得系统601执行一个或多个过程以使用组合硬件固件设备、无线链接设备602、设备603、或音频I/O设备604来实现可虚拟化及前向兼容设备-驱动器/功能-驱动器接口。
处理器620和630与总线609、桥621和总线614相耦合,以与多种其他系统设备通信,其他系统设备包括但不限于:UART(通用非同步收/发传输器)631、照相机控制器632、蓝牙UART 633(可选地包括Wi-Fi 802.11a/b/g收发器和/或GPS(全球定位系统)收发器)、小键盘634、电池控制器635、I/O扩展637和触控屏控制器639。在系统601的一些实施例中,UART 631、照相机控制器632、蓝牙UART 633、小键盘634、电池控制器635、I/O扩展637和触控屏控制器639还可以是或者连接到能够实现可虚拟化及前向兼容设备-驱动器/功能-驱动器接口的设备。
系统601的一些实施例符合行业虚拟化标准,其允许多个操作系统在单个计算机中同时运行以本地地共享设备,例如,SRIOV,提供PCI Express拓扑中的本地I/O虚拟化、或MRIOV,为多源复合体共享PCI Express层的拓扑提供本地I/O虚拟化。系统601的一些实施例包括标准的或非标准的或专属虚拟化技术、接口、总线或互联,例如像SPI总线、USB、AMBAAPB;火线、HDMI、微型显示端口(Mini Displayport)、MIPI SLIMbus、MIPI LLI、MIPI CSI、MIPI DSI等。应当理解的是,通过使用这种技术,已经可能或更加可能允许这种技术根据此处所公开的技术实施例来使用组合硬件固件设备以实现和使用可虚拟化及前向兼容设备-驱动器/功能-驱动器接口。
以上的描述只为了说明示例实施例的目的。从上面的讨论中,尤其在该领域,发展迅速并且更多的优势不容易预见也是显然的,本领域技术人员可以不偏离此处公开的原理,在所附权利要求及其等同的范围内,对这些实施例在配置和细节上的修改。

Claims (20)

1.一种在第一功能驱动器中使用I/O设备接口的方法,所述第一功能驱动器是物理功能驱动器或虚拟功能驱动器之一,该方法包括:
将多条指令从第一功能驱动器排队到第一指令队列;
从第一指令队列获取多条指令的第一指令到设备固件;
用设备固件访问动作表,来确定第一功能驱动器是否被允许执行第一指令;并且
响应于第一指令将第一事件从设备固件排队到第一功能驱动器的第一事件队列,
其中对所述动作表的访问确定第一功能驱动器不被允许执行第一指令,则该方法还包括:
将第一指令作为第二事件而递送到特权功能驱动器的第二事件队列;
从特权功能驱动器将第二指令排队到第二指令队列;
从第二指令队列获取第二指令到设备固件;
用设备固件访问动作表,确定特权功能驱动器是否被允许执行第二指令;
执行第二指令;并且
响应于第二指令,将第三事件从设备固件排队到第二事件队列。
2.根据权利要求1的方法,其中对动作表的访问确定第一功能驱动器被允许执行第一指令,该方法还包括:
执行第一指令。
3.根据权利要求1的方法,还包括:
模拟第一指令的完成;并且
响应于第一指令的模拟完成,将第一事件从设备固件排队到第一功能驱动器的第一事件队列。
4.根据权利要求1的方法,其中对动作表的的访问确定第一功能驱动器仅被允许在设备固件协助下执行第一指令,该方法还包括:
递送第一指令;并且
用设备固件修正第一指令,来产生修正的指令。
5.根据权利要求4的方法,还包括:
执行该修正的指令;
模拟第一指令的完成;并且
响应于第一指令的模拟完成,将第一事件从设备固件排队到第一功能驱动器的第一事件队列中。
6.根据权利要求1的方法,还包括:
响应于第一指令而修改动作表。
7.根据权利要求1的方法,还包括:
安装具有一个或多个虚拟化功能的第一设备驱动器,所述虚拟化功能由设备固件通过访问动作表来识别;
安装特权驱动器,以代理执行一个或多个虚拟化功能中的至少一条指令;
俘获所述至少一条指令;并且
将所俘获的指令递送给特权驱动器。
8.根据权利要求7的方法,还包括:
接收所递送的指令;
代表第一设备驱动器来执行特权指令;并且
模拟所述递送指令的完成。
9.根据权利要求8的方法,所执行该方法的系统包括:
处理器;
耦合到处理器的存储器,其存储第一设备驱动器和特权驱动器;
与处理器耦合的网络接口设备,网络接口设备包括设备固件和动作表。
10.一种I/O设备接口,包括:
用于在第一事件队列中从设备固件接收第一事件的装置,第一事件响应于设备固件从虚拟功能驱动器处递送而来的第一指令;
用于响应于接收到第一事件而将第二指令排队到第一指令队列的装置;以及
用于在第一事件队列中从设备固件接收第二事件的装置,第二事件对应于第二指令的完成。
11.根据权利要求10的I/O设备接口,还包括:
用于将第三指令排队以修改对设备固件可访问的设备动作表的装置,从而确定虚拟功能驱动器是否被允许执行第一指令。
12.一种I/O设备接口,包括:
用于从第一功能驱动器的第一指令队列获取第一指令的装置;
用于访问动作表以确定第一功能驱动器是否被允许执行第一指令的装置;并且
用于响应于第一指令而将第一事件排队到第一功能驱动器的第一事件队列中的装置,
其中对动作表的访问确定第一功能驱动器不被允许执行第一指令,则还包括:
用于将第一指令作为第二事件而递送到特权功能驱动器的第二事件队列的装置;
用于为特权功能驱动器从第二指令队列获取第二指令的装置;
用于访问动作表以确定特权功能驱动器是否被允许执行第二指令的装置;以及
用于响应于第二指令而将第三事件排队到第二事件队列的装置。
13.根据权利要求12的I/O设备接口,其中对动作表的访问确定第一功能驱动器被允许执行第一指令,包括:
用于执行第一指令的装置。
14.根据权利要求12的I/O设备接口,还包括:
用于执行第二指令的装置;
用于模拟第一指令的完成的装置;并且
用于响应于第一指令的模拟完成,将第一事件排队到第一功能驱动器的第一事件队列的装置。
15.根据权利要求12的I/O设备接口,还包括:
用于响应于第二指令而修改动作表的装置。
16.根据权利要求12的I/O设备接口,其中对动作表的访问确定第一功能驱动器仅被允许在协助下执行第一指令,则包括:
用于俘获第一指令的装置;并且
用于修正第一指令以产生修正的指令的装置。
17.根据权利要求16的I/O设备接口,包括:
用于执行修正的指令的装置;
用于模拟第一指令的完成的装置;并且
用于响应于第一指令的模拟完成而将第一事件排队到第一功能驱动器的第一事件队列中的装置。
18.根据权利要求12的I/O设备接口,包括:
用于响应于第一指令而修改动作表的装置。
19.一种刀片式服务器系统包括:
处理器;
耦合到处理器的存储器,存储第一设备驱动器和特权驱动器;
耦合到处理器的刀片式扩展连接器,以连接到串行器/去串行器构造接口;
耦合到处理器的网络接口设备,网络接口设备包括设备固件和动作表,所述设备固件用于:
从第一设备驱动器的第一指令队列获取第一指令;
访问动作表以确定第一设备驱动器是否被允许执行第一指令;并且
响应于第一指令,将第一事件排队到第一设备的第一事件队列中,
其中对动作表的访问确定第一设备驱动器不被允许执行第一指令,并使得网络接口设备固件:
将第一指令作为第二事件递送到特权驱动器的第二事件队列;
为特权驱动器从第二指令队列获取第二指令;
访问动作表以确定特权驱动器是否被允许执行第二指令;并且
响应于第二指令,将第三事件排队到第二事件队列。
20.根据权利要求19的刀片式服务器系统,其中对访问动作表的访问确定第一设备驱动器被允许执行第一指令,并且使得网络接口设备执行第一指令。
CN201280031877.6A 2011-07-27 2012-07-25 可虚拟化以及前向兼容硬件‑软件接口 Expired - Fee Related CN103874984B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/192,406 2011-07-27
US13/192,406 US8719843B2 (en) 2011-07-27 2011-07-27 Virtualizable and forward-compatible hardware-software interface
PCT/US2012/048121 WO2013016412A2 (en) 2011-07-27 2012-07-25 Virtualizable and forward-compatible hardware-software interface

Publications (2)

Publication Number Publication Date
CN103874984A CN103874984A (zh) 2014-06-18
CN103874984B true CN103874984B (zh) 2017-06-09

Family

ID=47598373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280031877.6A Expired - Fee Related CN103874984B (zh) 2011-07-27 2012-07-25 可虚拟化以及前向兼容硬件‑软件接口

Country Status (3)

Country Link
US (2) US8719843B2 (zh)
CN (1) CN103874984B (zh)
WO (1) WO2013016412A2 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930609B2 (en) * 2010-08-18 2015-01-06 Intel Corporation Method, apparatus, and system for manageability and secure routing and endpoint access
US8909979B2 (en) * 2011-06-27 2014-12-09 Huawei Technologies Co., Ltd. Method and system for implementing interconnection fault tolerance between CPU
CN102301364B (zh) 2011-06-27 2013-01-02 华为技术有限公司 Cpu互联装置
TWI528786B (zh) * 2011-11-14 2016-04-01 鴻海精密工業股份有限公司 資訊傳輸裝置
US9384158B2 (en) * 2014-03-14 2016-07-05 International Business Machines Corporation Dynamic universal port mode assignment
US10310923B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
KR102309798B1 (ko) 2015-04-16 2021-10-06 삼성전자주식회사 Sr-iov 기반 비휘발성 메모리 컨트롤러 및 그 비휘발성 메모리 컨트롤러에 의해 큐에 리소스를 동적 할당하는 방법
US9507626B1 (en) * 2015-07-20 2016-11-29 Red Had Israel, Ltd. Virtual device backend recovery
US10831403B2 (en) 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection
US10929330B2 (en) * 2017-06-30 2021-02-23 Intel Corporation External resource discovery and coordination in a data center
US10235326B1 (en) 2017-09-05 2019-03-19 Juniper Networks, Inc. Universal asynchronous receiver/transmitter (UART) data pass-through for virtualized environments
US11469953B2 (en) 2017-09-27 2022-10-11 Intel Corporation Interworking of legacy appliances in virtualized networks
US11750533B2 (en) * 2017-10-24 2023-09-05 Intel Corporation Hardware assisted virtual switch
CN108170518B (zh) * 2018-01-10 2022-07-26 联想(北京)有限公司 服务器管理控制系统及方法
CN111885170B (zh) * 2020-07-23 2022-03-11 平安科技(深圳)有限公司 物联网控制系统的处理方法、系统、云端服务器及介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5561815A (en) * 1990-10-02 1996-10-01 Hitachi, Ltd. System and method for control of coexisting code and image data in memory
US5751975A (en) * 1995-12-28 1998-05-12 Intel Corporation Method and apparatus for interfacing a device compliant to a first bus protocol to an external bus having a second bus protocol and for providing virtual functions through a multi-function intelligent bridge
US6032217A (en) * 1997-11-04 2000-02-29 Adaptec, Inc. Method for reconfiguring containers without shutting down the system and with minimal interruption to on-line processing
US6434630B1 (en) * 1999-03-31 2002-08-13 Qlogic Corporation Host adapter for combining I/O completion reports and method of using the same
CN1592883A (zh) * 2002-04-02 2005-03-09 国际商业机器公司 适配器、转换数据存储设备和转换数据存储设备的操作法
US7082598B1 (en) * 2002-07-17 2006-07-25 Vmware, Inc. Dynamic driver substitution
US7334107B2 (en) * 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation
CN101273364A (zh) * 2005-09-23 2008-09-24 英特尔公司 用于计算平台数据保护的方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6611883B1 (en) 2000-11-16 2003-08-26 Sun Microsystems, Inc. Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
US7886295B2 (en) * 2005-02-17 2011-02-08 International Business Machines Corporation Connection manager, method, system and program product for centrally managing computer applications
US20070043605A1 (en) * 2005-05-09 2007-02-22 Aztec Pacific Incorporated System and method for time management and attributions
JP4486609B2 (ja) 2006-03-31 2010-06-23 富士通株式会社 ストレージ装置、ストレージ装置のストレージ制御ファームウェアの活性プログラム交換方法及びストレージ制御ファームウェアの活性プログラム交換のためのプログラム
US20100082854A1 (en) 2008-09-27 2010-04-01 Lars Rossen Real-Time/Batch Interface Arbiter
KR101662729B1 (ko) 2009-05-08 2016-10-06 삼성전자주식회사 시리얼 인터페이스 프로토콜을 사용하여 호스트와 인터페이스하는 비휘발성 메모리 기반 저장 장치의 커맨드 처리 방법 및 상기 방법을 수행하기 위한 메모리 컨트롤러
US9069592B2 (en) 2009-11-02 2015-06-30 International Business Machines Corporation Generic transport layer mechanism for firmware communication
US8166211B2 (en) * 2010-06-07 2012-04-24 Vmware, Inc. Safely sharing USB devices
US8881141B2 (en) * 2010-12-08 2014-11-04 Intenational Business Machines Corporation Virtualization of hardware queues in self-virtualizing input/output devices
US8621620B2 (en) * 2011-03-29 2013-12-31 Mcafee, Inc. System and method for protecting and securing storage devices using below-operating system trapping

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5561815A (en) * 1990-10-02 1996-10-01 Hitachi, Ltd. System and method for control of coexisting code and image data in memory
US5751975A (en) * 1995-12-28 1998-05-12 Intel Corporation Method and apparatus for interfacing a device compliant to a first bus protocol to an external bus having a second bus protocol and for providing virtual functions through a multi-function intelligent bridge
US6032217A (en) * 1997-11-04 2000-02-29 Adaptec, Inc. Method for reconfiguring containers without shutting down the system and with minimal interruption to on-line processing
US6434630B1 (en) * 1999-03-31 2002-08-13 Qlogic Corporation Host adapter for combining I/O completion reports and method of using the same
CN1592883A (zh) * 2002-04-02 2005-03-09 国际商业机器公司 适配器、转换数据存储设备和转换数据存储设备的操作法
US7082598B1 (en) * 2002-07-17 2006-07-25 Vmware, Inc. Dynamic driver substitution
US7334107B2 (en) * 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation
CN101273364A (zh) * 2005-09-23 2008-09-24 英特尔公司 用于计算平台数据保护的方法

Also Published As

Publication number Publication date
US20130031568A1 (en) 2013-01-31
WO2013016412A2 (en) 2013-01-31
US20140229637A1 (en) 2014-08-14
CN103874984A (zh) 2014-06-18
US8719843B2 (en) 2014-05-06
US9081709B2 (en) 2015-07-14
WO2013016412A3 (en) 2013-04-18

Similar Documents

Publication Publication Date Title
CN103874984B (zh) 可虚拟化以及前向兼容硬件‑软件接口
US8990459B2 (en) Peripheral device sharing in multi host computing systems
CN107003955B (zh) 用于在根复合体中集成设备的方法、装置和系统
US20130174151A1 (en) Information processing apparatus and method of controlling virtual machine
DE102019108376A1 (de) Sequenz zur Aushandlung und Aktivierung von Flexbus-Protokollen
CN101751285B (zh) 用于不同种类处理单元的集中式设备虚拟化层
US9798565B2 (en) Data processing system and method having an operating system that communicates with an accelerator independently of a hypervisor
DE102020133738A1 (de) Firmware-update-techniken
US9063793B2 (en) Virtual server and virtual machine management method for supporting zero client by providing host interfaces from classified resource pools through emulation or direct connection modes
US9454397B2 (en) Data processing systems
EP3992790A1 (en) Information processing method, physical machine and pcie device
US9600369B2 (en) Operating system recovery method and apparatus, and terminal device
RU2595909C2 (ru) Способ и аппарат для отображения образа прикладного объекта
US20110113426A1 (en) Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods
US9910693B2 (en) Virtual machine to host device bridging
CN105830026A (zh) 用于调度来自虚拟机的图形处理单元工作负荷的装置和方法
CN104299466A (zh) 一种基于云计算平台的远程硬件实验方法及系统
CN103763173A (zh) 数据传输方法和计算节点
US9875131B2 (en) Virtual PCI device based hypervisor bypass using a bridge virtual machine
US20120005676A1 (en) Computing Machine and Method of Updating Virtual Machine
CN103064796A (zh) 虚拟机内存的共享方法与计算机系统
CN112352221A (zh) 用以支持虚拟化环境中的ssd设备驱动器与物理ssd之间的sq/cq对通信的快速传输的共享存储器机制
US20170249106A1 (en) Multiple input-output memory management units with fine grained device scopes for virtual machines
US20130117762A1 (en) Information processing apparatus, information processing method, and computer product
DE102019120357A1 (de) Dynamische asymmetrische kommunikationspfadzuteilung

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170609

Termination date: 20190725