CN102016800A - 将多个逻辑分区对接到自虚拟输入/输出设备 - Google Patents
将多个逻辑分区对接到自虚拟输入/输出设备 Download PDFInfo
- Publication number
- CN102016800A CN102016800A CN2009801152530A CN200980115253A CN102016800A CN 102016800 A CN102016800 A CN 102016800A CN 2009801152530 A CN2009801152530 A CN 2009801152530A CN 200980115253 A CN200980115253 A CN 200980115253A CN 102016800 A CN102016800 A CN 102016800A
- Authority
- CN
- China
- Prior art keywords
- subregion
- annex
- virtual
- logical partition
- self
- 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.)
- Granted
Links
- 238000005192 partition Methods 0.000 title claims abstract description 265
- 230000006870 function Effects 0.000 claims description 164
- 238000000034 method Methods 0.000 claims description 41
- 230000015572 biosynthetic process Effects 0.000 claims description 39
- 238000005755 formation reaction Methods 0.000 claims description 39
- 238000000926 separation method Methods 0.000 claims description 8
- 238000003032 molecular docking Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 210000001503 joint Anatomy 0.000 claims 4
- 238000012545 processing Methods 0.000 abstract description 13
- 230000008878 coupling Effects 0.000 abstract 1
- 238000010168 coupling process Methods 0.000 abstract 1
- 238000005859 coupling reaction Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 24
- 230000003863 physical function Effects 0.000 description 21
- 238000007726 management method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 238000013519 translation Methods 0.000 description 13
- 230000014616 translation Effects 0.000 description 13
- 238000002955 isolation Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000004913 activation Effects 0.000 description 6
- 230000000977 initiatory effect Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 101000604054 Homo sapiens Neuroplastin Proteins 0.000 description 2
- 101000806155 Homo sapiens Short-chain dehydrogenase/reductase 3 Proteins 0.000 description 2
- 102100037857 Short-chain dehydrogenase/reductase 3 Human genes 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000008672 reprogramming Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 101100532856 Arabidopsis thaliana SDRA gene Proteins 0.000 description 1
- 101000966782 Homo sapiens Lysophosphatidic acid receptor 1 Proteins 0.000 description 1
- 102100040607 Lysophosphatidic acid receptor 1 Human genes 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000001221 laser-assisted particle removal Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000013316 zoning Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
经由多个专用分区附件实例向多个逻辑分区提供对数据处理系统的自虚拟输入/输出设备的访问。通过以下操作来建立访问:将各逻辑分区对接到一个或者多个关联分区附件实例,各分区附件实例将它的关联逻辑分区耦合到自虚拟输入/输出设备的虚拟功能或者队列对之一,并且各分区附件实例是分离的可分发状态并且运用从相应逻辑分区贡献的虚拟地址空间或者数据处理系统的管理程序来创建,并且各分区附件实例包括用于自虚拟输入/输出设备的虚拟功能或者队列对的设备驱动器;并且向各逻辑分区提供至少一个虚拟输入/输出,该至少一个虚拟输入/输出通过逻辑分区的一个或者多个相应分区附件实例来与自虚拟输入/输出设备的虚拟功能或者队列对对接。
Description
技术领域
本发明主要地涉及数据处理系统,并且具体地涉及创建和利用包括用于数据处理系统的新执行环境的分区附件(adjunct)。分区附件在一个方面中用作向逻辑分区提供对自虚拟输入/输出(I/O)设备的访问的专用附件。
背景技术
在数据处理系统的管理程序(hypervisor)之上运行的逻辑分区(LPAR)常用来提供比管理程序本身提供的功能更高级的功能。例如,一个LPAR可以指定为向数据处理系统的一个或者多个其他LPAR提供输入/输出服务的虚拟输入/输出服务器(VIOS)。更高级功能的这一卸载避免管理程序中的复杂代码,并且因此有助于在数据处理系统内维持管理程序既小型又安全。然而,使用逻辑分区以向其他逻辑分区提供这样的服务需要相对高的开销以实例化和运行逻辑分区,并且因此需要实例化和运行全操作系统以便提供这样的服务。
发明内容
本文公开一种允许向逻辑分区提供服务而无需另一全逻辑分区来提供服务、也无需在发起逻辑分区中或者在管理程序中嵌入服务的解决方案。诸如本文描述和要求保护的分区附件是提供这一折衷的新执行环境。
本文在一个方面中提供一种为多个逻辑分区建立对数据处理系统的自虚拟输入/输出设备的访问的方法。该方法包括:将多个逻辑分区中的各逻辑分区对接到至少一个关联分区附件实例,各分区附件实例将多个逻辑分区中的它的关联逻辑分区耦合到自虚拟输入/输出设备的虚拟功能或者队列对之一,各分区附件实例包括分离的可分发状态并且运用从关联逻辑分区贡献的虚拟地址空间或者数据处理系统的管理程序来创建,并且各分区附件实例包括用于自虚拟输入/输出设备的虚拟功能或者队列对的设备驱动器;并且向多个逻辑分区中的各逻辑分区提供至少一个虚拟输入/输出,该至少一个虚拟输入/输出通过逻辑分区的至少一个关联分区附件实例来与自虚拟输入/输出设备的虚拟功能或者队列对对接。
在另一方面中,提供一种数据处理系统,该系统包括:至少一个处理器,包括多个逻辑分区和有助于多个逻辑分区的输入/输出访问的多个分区附件实例;以及自虚拟输入/输出设备,耦合到多个分区附件。多个逻辑分区中的各逻辑分区对接到至少一个关联分区附件实例。各分区附件实例将多个逻辑分区中的关联逻辑分区耦合到数据处理系统的自虚拟输入/输出设备的虚拟功能或者队列对之一。另外,各分区附件实例包括分离的可分发状态并且运用从相应逻辑分区贡献的虚拟地址空间或者数据处理系统的管理程序。此外,各分区附件实例包括用于自虚拟输入/输出适配器的相应虚拟功能或者队列对的设备驱动器。多个逻辑分区中的各逻辑分区包括至少一个虚拟输入/输出,其通过逻辑分区的至少一个关联分区附件实例来与自虚拟输入/输出设备的至少一个虚拟功能或者至少一个队列对对接。
在又一方面中,本发明包括一种包括至少一个计算机可读介质的制品,该计算机可读介质具有计算机可读程序代码逻辑以定义一种为多个逻辑分区建立对数据处理系统的自虚拟输入/输出设备的访问的方法。该计算机可读程序代码逻辑在处理器上执行时,进行:将多个逻辑分区中的各逻辑分区对接到至少一个关联分区附件实例,各分区附件实例将多个逻辑分区中的它的关联逻辑分区耦合到自虚拟输入/输出设备的虚拟功能或者队列对之一,并且各分区附件实例包括分离的可分发状态并且运用从关联逻辑分区贡献的虚拟地址空间或者数据处理系统的管理程序来创建,并且其中各分区附件实例包括用于自虚拟输入/输出设备的虚拟功能或者队列对的设备驱动器;以及向多个逻辑分区中的各逻辑分区提供至少一个虚拟输入/输出,该至少一个虚拟输入/输出通过逻辑分区的至少一个关联分区附件实例来与自虚拟输入/输出设备的虚拟功能或者队列对对接。
另外,通过本发明的技术来实现附加特征和优点。本发明的其他实施例和方面在这里加以具体描述并且视为要求保护的本发明的一部分。
附图说明
在说明书附带的权利要求中具体地指出并且明确要求保护视为本发明的主题内容。根据与以下附图结合进行的下文具体描述,本发明的前述和其他特征及优点变得明显:
图1是用于实施本发明一个或者多个方面的数据处理系统的一个实施例的框图;
图2是可以用来实施本发明一个或者多个方面的数据处理系统的更详细图示;
图3图示了根据本发明一个方面的包括客户机逻辑分区和分区附件的数据处理系统的一个实施例;
图4A图示了根据本发明一个方面的包括多个逻辑分区和多个分区附件的数据处理系统;
图4B图示了根据本发明一个方面的数据处理系统,其中多个逻辑分区附着全局分区附件;
图4C描绘了根据本发明一个方面的数据处理系统,其中管理程序运用分区附件;
图5图示了根据本发明一个方面的数据处理系统,其中包括设备驱动器服务的全局分区附件由多个客户机分区附着而不是运用常规虚拟输入输出服务器;
图6是根据本发明一个方面的用于创建分区附件的过程的一个实施例的流程图;
图7是根据本发明一个方面的用于创建包括设备驱动器的分区附件的过程的一个更详细实施例的流程图;
图8是根据本发明一个方面的用于创建可由数据处理系统的多个逻辑分区运用的全局分区附件的过程的一个实施例的流程图;
图9是根据本发明一个方面的用于从客户机逻辑分区附着到全局分区附件的过程的一个实施例的流程图;
图10是根据本发明一个方面的用于由分区附件处理服务请求的过程的一个实施例的流程图;
图11是根据本发明一个方面的用于异步服务请求完成处理的过程的一个实施例的流程图;
图12图示了数据处理系统的两个常规逻辑分区;
图13图示了数据处理系统的常规处理器寄存器机器状态和存储器管理及地址转译硬件;
图14图示了图13的处理器寄存器机器状态和存储器管理单元硬件,其中在活跃状态中常规地分发LPAR 1;
图15图示了图13的处理器寄存器机器状态和存储器管理单元硬件,其中将LPAR 1切换出去并且在活跃状态中分发LPAR 2;
图16图示了根据本发明一个方面的包括逻辑分区(LPAR 1)和分区附件的数据处理系统;
图17图示了根据本发明一个方面的图16的数据处理系统的处理器寄存器机器状态和存储器管理及地址转译硬件,其中在活跃状态中分发LPAR 1,并且图示了在LPAR 1与分区附件之间的共享虚拟地址空间;
图18图示了根据本发明一个方面的在从LPAR 1上下文切换当前状态机以分发分区附件之后的、图17的处理器寄存器机器状态和存储器管理及地址转译硬件;
图19图示了用于数据处理系统的多线程处理器核的处理器寄存器机器状态和存储器管理及地址转译硬件;
图20图示了图19的处理器寄存器机器状态和存储器管理及地址转译硬件,其中第一逻辑分区(LPAR 1)在活跃状态中;
图21图示了在将当前状态机从LPAR 1上下文切换到第二逻辑分区(LPAR 2)的状态数据之后的、图19和图20的处理器寄存器机器状态和存储器管理及地址转译硬件;
图22图示了根据本发明一个方面的图19的处理器寄存器机器状态和存储器管理及地址转译硬件,其中将一个硬件线程的当前状态机从第一逻辑分区(LPAR 1)部分上下文切换到分区附件;
图23A和图23B图示了现有技术的数据处理系统配置的一个例子,其中逻辑分区所拥有的专用设备需要用于该逻辑分区的操作系统的本机设备驱动器以便访问或者使用该专用设备;
图24A和图24B图示了根据本发明一个方面的分区附件配置的例子,其中非本机操作系统的设备驱动器用来访问或者使用物理输入/输出设备;
图25图示了常规数据处理系统的一个例子,该系统包括通过虚拟输入/输出服务器对接到非自虚拟输入/输出设备的多个逻辑分区;
图26图示了数据处理系统的一个实施例,其中多个逻辑分区经由多个逻辑分区内的本机设备驱动器对接到自虚拟输入/输出设备的多个虚拟功能实例;
图27描绘了数据处理系统的一个备选实施例,其中多个逻辑分区经由多个逻辑分区内的本机设备驱动器对接到自虚拟输入/输出设备的多个队列对实例;
图28图示了根据本发明一个方面的数据处理系统的一个实施例,该数据处理系统包括将多个逻辑分区对接到自虚拟输入/输出设备的相应虚拟功能实例的多个分区附件实例;
图29图示了根据本发明一个方面的数据处理系统的另一实施例,其中多个分区附件实例将多个逻辑分区对接到自虚拟输入/输出设备的相应队列对实例;
图30A图示了诸如图26中所示数据处理系统的另一实施例,其中多个逻辑分区运用逻辑分区内的本机设备驱动器来对接到自虚拟输入/输出设备的相应物理或者虚拟功能实例;
图30B描绘了多个逻辑分区的设备驱动器页面表条目的物理存储器结构和到诸如图30A中所示数据处理系统内的相应物理存储器位置的映射;
图31A图示了根据本发明一个方面的诸如图28中所示数据处理系统的一个实施例,其中分区附件实例将多个逻辑分区对接到自虚拟输入/输出设备;
图31B描绘了根据本发明一个方面的多个分区附件的页面表条目的物理存储器结构和到相应物理存储器位置的映射,并且示出了物理存储器结构内的共同代码和只读数据映射;以及
图32描绘了包含本发明一个或者多个方面的计算机程序产品的一个实施例。
具体实施方式
图1是数据处理系统100的框图,在一个例子中该数据处理系统为对称多处理(SMP)服务器计算机系统。SMP服务器计算机系统100包括可以映射到用户应用(即由用户应用暂时地拥有)以执行该应用的物理硬件设备。
SMP服务器计算机系统100包括物理SMP服务器102。物理SMP服务器102包括物理硬件设备,诸如处理器104、存储器106和I/O适配器108。这些物理设备由管理程序110进行管理。处理器104是共享处理器并且各自可以是能够在处理器上并行执行多个不同线程的具有同时多线程(SMT)功能的处理器。
虚拟服务器是用于具有相同能力、接口和状态的物理服务器的代理。虚拟服务器由驻留于物理SMP服务器计算机系统100上的管理程序来创建和管理。虚拟服务器在它的用户看来是物理SMP服务器:操作系统、中间件和在其上运行的应用软件。SMP服务器计算机系统100包括一个或者多个虚拟服务器,诸如虚拟服务器112和虚拟服务器112a。
各虚拟服务器在它的软件看来包括它自己的可用于该虚拟服务器独占使用的一个或者多个处理器、存储器和一个或者多个I/O适配器。例如,虚拟服务器112包括虚拟处理器120、虚拟存储器122和虚拟I/O适配器124。虚拟服务器112a包括虚拟处理器120a、虚拟存储器122a和虚拟I/O适配器124a。
各虚拟服务器支持它自己的软件环境,包括操作系统、中间件和应用。各虚拟服务器的软件环境可以不同于其他虚拟服务器的软件环境。例如,各虚拟服务器执行的操作系统可以互不相同。
例如,虚拟服务器112支持操作系统114、中间件116和应用118。虚拟服务器112a支持操作系统114a、中间件116a和应用118a。操作系统114和114a可以是相同或者不同操作系统。
虚拟服务器是对如下服务器的逻辑描述,该服务器定义如下服务器环境,该服务器环境在用户看来如同它是物理服务器一样工作,从而以与物理服务器相同的方式受到访问和提供信息。为各虚拟服务器定义的虚拟处理器、虚拟存储器和虚拟I/O适配器是物理处理器、存储器和I/O适配器的逻辑替代物。
管理程序110管理在虚拟服务器及其虚拟处理器、虚拟存储器和虚拟I/O适配器与选择用来实施这些虚拟设备的物理硬件设备之间的映射。例如,当分发虚拟处理器时,物理处理器,诸如物理处理器104之一由管理程序110选择用来执行和实施该虚拟处理器。管理程序110管理对物理设备的选择及其向虚拟设备的暂时指派。
管理程序110在分发时间分片期间服务于所有逻辑分区。分发时间分片是特定时间长度。在各分发时间分片期间,管理程序110将向各逻辑分区分配或者指派物理处理器。当在物理处理器上已经向逻辑分区分配时间时,该逻辑分区所定义的虚拟处理器将由物理处理器执行。
管理程序110负责动态地创建、管理和破坏虚拟SMP服务器。管理程序110可以去除或者添加全部虚拟处理器、虚拟I/O适配器和虚拟存储器块。管理程序110也负责动态资源分配、管理物理资源的时间共享以及更改映射到处理器的物理资源而不涉及到操作系统。管理程序110也能够针对不希望共享的情形使物理资源专用于虚拟资源。管理程序110负责管理对物理资源的添加或者去除。管理程序110使这些添加和删除在上级应用看来是透明的。
图2是可以用来实施本文所描述的概念的计算机系统的更详细图示。数据处理系统200可以是对称多处理器(SMP)系统,该系统包括多个共享处理器或者具有SMT功能的处理器,诸如连接到系统总线206的处理器202和204。备选地,可以运用单处理器系统。在所示例子中,处理器204是服务处理器。各具有SMT功能的处理器能够在一个处理器上并行执行多个硬件线程。
提供与本地存储器209的接口的存储器控制器/高速缓存208也连接到系统总线206。I/O总线桥接器210连接到系统总线206并且提供与I/O总线212的接口。可以如图所示集成存储器控制器/高速缓存208和I/O总线桥接器210。
连接到I/O总线212的外围部件互连(PCI)总线桥接器214提供与PCI本地总线216的接口。多个调制解调器可以连接到PCI总线216。典型的PCI总线实施将支持四个PCI扩展槽或者附加连接器。可以通过调制解调器218和网络适配器220(通过附加板连接到PCI本地总线216)提供与图1中的网络计算机108-112的通信链路。
网络适配器220包括物理层282,该物理层调控模拟信号以往外去往网络,例如针对R45连接器的以太网网络。在网络适配器220内包括介质访问控制器(MAC)280。介质访问控制器(MAC)280耦合到总线216并且处理数字网络信号。MAC 280适于作为在总线216与物理层282之间的接口来工作。MAC 280执行在数据分组的发送和接收中涉及到的多个功能。例如,在数据发送期间,MAC 280将待发送的数据组装成具有地址和检错字段的分组。反言之,在数据接收期间,MAC 280拆卸分组并且执行地址检验和检错。此外,MAC 280通常执行对发送的数字信号的编码/解码并且执行前同步码生成/去除以及位发送/接收。
附加PCI总线桥接器222和224为附加PCI总线226和228提供接口,该附加PCI总线可以用来支持附加调制解调器或者网络适配器。以这一方式,数据处理系统200允许与多个网络计算机的连接。存储器映射图形适配器230和硬盘232也可以如图所示直接地或者间接地连接到I/O总线212。
服务处理器204查询系统处理器、存储器部件和I/O桥接器以生成数据处理系统200的清单和拓扑理解。服务处理器204还对通过查询系统处理器、存储器控制器和I/O桥接器而找到的所有元件执行内置自测试(BIST)、基本保障测试(BAT)和存储器测试。服务处理器204收集和报告针对在BIST、BAT和存储器测试期间检测到的故障的任何错误信息。
本领域普通技术人员将理解图2中所示硬件可以变化。例如,除了所示硬件之外或者取而代之还可以使用诸如光盘驱动等其他外围设备。所示例子并非意味着暗示关于本发明的架构限制。
可以在图1或者图2中所示计算机或者数据处理系统之一内执行本发明。作为具体商用例子,可以基于在IBM的p/i系列产品线的固件和系统件中找到(诸如在Power.org的″Power ArchitecturePlatform Reference″(PAPR)材料(http://www.power.org/members/developers/specs/PAPR_Version_2.2_09Oct07.pdf)中描述)的技术来构建实施比如下文描述的分区附件的数据处理系统。
下文公开了分区附件的概念,该分区附件是比全逻辑分区限制更多的分区。如下文所述,分区附件在扁平静止有效地址空间和问题状态中运行。这些约束允许管理程序施加如下范围的管理程序和处理器优化,这些优化实现与状态机从逻辑分区到分区附件的状态数据的上下文切换关联的系统开销大量缩减(也就是与状态机在逻辑分区之间的上下文切换相比)。就其他方面而言,分区附件类似于全逻辑分区。例如,与全逻辑分区类似,可以向分区附件指派物理或者虚拟资源。另外,与全逻辑分区类似,分区附件可以是虚拟输入输出(VIO)通信机制的端点,比如虚拟输入输出服务器(VIOS)。
图3图示了根据本发明一个方面的包括客户机逻辑分区(或者简称为客户机分区)310和分区附件320的数据处理系统300的一个例子。客户机分区310是逻辑分区,其包括一个或者多个客户应用312、操作系统实例314和虚拟I/O设施316。客户机分区310在管理程序330之上运行,并且提供比管理程序本身提供的功能更高级的功能。管理程序330在示出为包括一个或者多个I/O设备350的下层系统硬件340之上执行。
分区附件320在概念上为客户机分区310的子分区。分区附件少于全逻辑分区、但是以如下方式运行,在该方式中管理程序强制在分区附件与它运行于其中的客户机分区之间的安全性和隔离。分区附件与全逻辑分区相比功能缩减,例如无权访问存储器管理单元(MMU)配置或者浮点设施,并且是仅提供运行希望的服务所需的功能(例如I/O驱动器)的环境。在所示例子中,分区附件320包括虚拟I/O接口322和允许访问I/O设备350的硬件设备驱动器服务324。在操作中,客户机分区310如图所示经由分区附件320来访问I/O设备350。通过缩减分区附件环境内的功能,缩减了分发和维持分区附件的运行时间开销(与另一全逻辑分区相比),因而避免了使用分离的逻辑分区作为虚拟输入输出服务器(VIOS)的许多性能弊端。
作为具体例子,这里将分区附件描述为运行用于设备驱动器服务的缩减操作系统环境。仅通过例子提供这一服务。分区附件提供(在一个例子中)仅包括设备驱动器所需结构的最小优化基础结构。例如,如果Linux设备驱动器将在分区附件内运行,则最小执行环境仅包括Linux设备驱动器需要的Linux内核服务或者等效服务。如果AIX设备驱动器将在分区附件内运行,则最小执行环境仅包括AIX设备驱动器需要的AIX内核服务或者等效服务。有利地,分区附件直接地与管理程序接口相对在管理程序/问题状态中运行。如下文详细说明的那样,分区附件的分发无需全分区上下文切换,这简化了附件内核要求。这部分地通过将分区附件映射到客户机分区的虚拟地址页面表中来实现。例如可以经由管理程序管理的存储器密钥来实现客户机分区与分区附件的隔离。有利地,客户不可查看分区附件。另外,如下文说明的那样,可以在多个客户机分区内实例化相同的分区附件服务(这里称为全局分区附件服务)。
图4A-图4C描绘了可以根据这里公开的概念而实施的、用于解决大量操作系统和平台问题的各种分区附件使用模型。图4A图示了分区附件420的一个例子(在这一例子中也称为本地分区附件),该分区附件在概念上部分地驻留于发起客户机分区410内以用于通过管理程序430来访问专用资源440。例如,共同适配器/驱动器服务可以由分区附件420提供以用于相应的专用适配器(即资源)。
图4B图示了全局分区附件的例子,其中(例如)服务逻辑分区,诸如虚拟输入输出服务器分区,将存储器和物理资源贡献用于分区附件的实例化。这样的全局分区附件421可由多个客户机分区410访问或者附着,并且经由管理程序430向资源440提供例如输入输出服务。作为具体例子,全局分区附件可以包括共同适配器驱动器服务,并且资源是共享适配器。
图4C是全局分区附件422的一个备选实施例,其中管理程序430为附件提供资源。在这一实施中,管理程序将分区附件供它自己使用,例如用于原本以其他方式存在于管理程序的执行域中的保护或者隔离服务。
除非另有指明,否则假设下文描述的分区附件实施例为如下执行环境,该执行环境是客户机分区的一部分,而该部分通过管理程序隔离和安全机制来与客户机分区分离。
图5图示了由多个客户机运用的全局分区附件(即图4B的实施例)的一个详细例子。在这一例子中,逻辑分区(LPAR A、LPARB)510A、510B是客户机分区,并且分区510C是客户机分区510A、510B例如在提供输入/输出服务时运用的虚拟输入输出服务器分区。根据本发明,输入/输出服务(在这一例子中称为附件设备驱动器520)是分区附件提供的设备驱动器服务520A、520B,其用于通过管理程序530、经由一个或者多个输入/输出路径521来访问输入/输出硬件540。在这一例子中,分区附件有助于从各客户机分区到输入/输出硬件的更直接附着或者更直接路径。如下文进一步描述的那样,分区附件运用分区附件实例来并入于客户机分区分别贡献的虚拟地址空间中。
为了让分区附件成为可运行的程序,管理程序与将使用分区附件服务的客户机分区一起协商建立分区附件环境。一旦这一协商完成,客户机分区将已经向管理程序贡献它的虚拟地址空间的一部分以供分区附件使用。管理程序将使用硬件和管理程序设施以保证客户机分区不再有权访问或者可以修改所贡献的资源(例如所贡献的虚拟地址空间)。管理程序使用贡献的虚拟地址资源来实例化运行分区附件所需的有效地址映射。随后,管理程序可以通过对它对贡献的虚拟地址空间的控制进行重新编程,来在分发客户机分区或者分区附件之间切换。当客户机分区运行时,它可以访问除了所贡献的虚拟地址范围之外的向它指派的所有虚拟地址空间,并且当分区附件运行时,管理程序禁止访问客户机分区的除了所贡献的虚拟地址范围(也就是向它启用的虚拟地址空间)之外的所有虚拟地址。活跃/不活跃虚拟地址范围的这一轮换,明显地快于对全存储器管理和地址转译硬件重新编程以实现当前状态机在两个全逻辑分区之间的完整上下文切换,如必须切换到虚拟输入/输出服务器分区。以这一方式,分区附件地址空间从客户机分区的存储器管理和地址转译硬件资源中分出并且与之分离。分区附件因此从处理器的观点来看是客户机分区的一部分,但是从客户机分区和管理程序的观点来看是不同实体。
有利地,这里呈现的分区附件概念减少对于将全逻辑分区用于向客户机分区提供服务的需要。这又释放了资源并且改善了客户工作量的性能。此外,这里公开的分区附件通过减少与虚拟化服务关联的性能代价,来鼓励开发和部署虚拟平台服务而不是开发操作系统特有服务。这继而允许节省开发成本,因为可以仅实施服务一次(即在分区附件中)而不是在多个操作系统之间本机实施。
下文参照图6-图11来描述用于实例化和运用分区附件的各种协议例子。
图6是用于创建用于诸如图4A中所示用途的本地分区附件的过程的一个实施例的流程图。分区附件实例化或者建立协议600开始于询问客户机分区是否想要分区附件服务605。如果为“否”,则协议结束610。否则,客户机分区将它的虚拟地址空间和存储器空间的一部分保留以用于分区附件615,并且激活管理程序以利用这些贡献的资源来实例化分区附件620。管理程序创建(向管理员隐藏的)新分区附件,并且向分区附件指派所贡献的资源625。创建新分区附件意味着管理程序创建可分发的程序上下文。管理程序建立对贡献的虚拟地址空间和贡献的存储器的硬件保护和强制,从而客户机分区不再能够访问该空间630。另外,管理程序为分区附件创建新的可分发状态635。这一新的可分发状态意味着可以在多线程硬件核的个别硬件(SMT)线程上分发分区附件,而处理器核的其他SMT线程继续运行客户机分区对分区附件的激活。下文参照图19-图22进一步描述本发明的这一方面。
接着,管理程序将分区附件程序镜像加载到贡献的附件存储器中640,并且初始化附件执行645。初始化分区附件执行环境可以包括管理程序将有效地址空间初始化成虚拟地址转译表、附件保护密钥和特殊管理程序问题状态权限。管理程序然后分发分区附件以在分区附件程序入口点处开始执行650,并且管理程序为客户机分区建立分区附件服务接口调用655。管理程序按照分区附件提供的协议或者功能来调用或者激活客户机分区。管理程序然后返回到状态为分区附件实例化的客户机分区660。
图7描绘了根据本发明一个方面的用于创建逻辑分区附件的过程的一个详细例子。在这一例子中,分区附件包括设备驱动器服务。输入/输出实例化或者建立700始于客户机分区执行输入/输出设备发现705。处理询问客户机分区是否具有它自己的用于所发现的输入/输出设备的设备驱动器710。如果为“是”,则客户机分区继续正常设备驱动器加载和配置715,从而结束处理720。如果客户机分区没有它自己的用于所发现的I/O设备的设备驱动器,则处理确定分区附件镜像是否可用于这一I/O设备725。如果为“否”,则不能配置设备730,并且处理结束720。
假设分区附件镜像可用,那么客户机分区将它的虚拟地址空间和存储器空间的一部分保留或者贡献用于分区附件镜像735,并且激活管理程序以利用贡献的虚拟地址空间和存储器空间以及I/O设备来实例化分区附件740。管理程序创建新分区附件并且向分区附件指派贡献的资源745。管理程序然后对贡献的虚拟地址空间和存储器空间建立适当硬件保护和强制,从而客户机分区不再能够访问贡献的空间750。管理程序为分区附件创建新的可分发状态755。如上文所言,有利地可以在SMT数据处理系统的单个硬件线程上分发这一新的可分发状态,而其他硬件线程继续运行客户机分区的激活(或者请求)。管理程序将分区附件镜像加载到贡献的附件存储器中760,并且初始化分区附件执行环境765。然后分发分区附件以在分区附件镜像入口点处开始初始化执行770。管理程序为客户机分区建立分区附件服务接口调用,这些调用例如包括用于对象虚拟设备类的虚拟输入/输出请求排队接口775。管理程序返回到状态为分区附件实例化的客户机分区,并且向客户机分区指派新虚拟设备780,并且客户机分区继续正常虚拟设备驱动器加载和配置785。
图8是用于实例化诸如图4B中所示全局分区附件的过程的一个实施例的流程图。在这一例子中,分区附件实例化开始于作为虚拟输入输出服务器(VIOS)来工作的逻辑分区。分区附件实例化建立协议800开始于VIOS将它的存储器空间和虚拟地址空间的一部分保留或者贡献用于全局分区附件805。VIOS激活管理程序以利用贡献的存储器和虚拟地址空间以及I/O设备(将提供对该I/O设备的加速虚拟化访问)来实例化全局分区附件810。管理程序创建同样向管理员隐藏的新全局分区附件,并且向分区附件指派贡献的存储器空间和I/O设备815。管理程序建立对贡献的虚拟地址空间和存储器空间的硬件保护和强制,从而VIOS不再能够访问贡献的空间820。管理程序为分区附件创建新的可分发状态825,其可以在个别SMT线程上分发,而多线程硬件处理器核的一个或多个其他SMT线程继续运行VIOS分区对分区附件的激活825。管理程序将全局分区附件程序镜像加载到贡献的附件存储器中830,并且初始化附件执行环境835。管理程序然后分发全局分区附件以在附件镜像入口点处开始初始化执行840,并且建立可用于从客户机分区指派或者附着的全局分区附件服务接口调用和虚拟设备实例845,从而完成处理协议850。
图9描绘了用于附着到全局分区附件(诸如上文结合图8描述的那样创建的VIOS分区附件)的过程的一个例子。这一客户机分区附着900开始于客户机分区执行虚拟I/O设备发现905。处理确定讨论的虚拟I/O设备是否能够全局分区附件加速910,也就是附件服务是否全局地存在。如果为“否”,则客户机分区例如使用VIOS来继续正常虚拟设备配置915,从而结束处理920。如果虚拟I/O设备附件镜像可用,则客户机分区将虚拟地址空间贡献或者保留用于附件925,并且激活管理程序以利用贡献的虚拟地址空间来附着全局分区附件镜像930。管理程序为客户机分区对贡献的虚拟地址空间建立硬件保护和强制935,并且全局分区附件利用贡献的虚拟地址空间来映射到客户机分区页面表中。管理程序创建用于这一客户机分区到全局分区附件的虚拟I/O映射。随后,处理返回到客户机分区以继续正常虚拟设备配置940,从而完成处理920。
图10图示了用于由分区附件处理从客户机分区提交的服务请求的协议的一个实施例。分区附件服务1000开始于询问客户机分区是否需要激活分区附件服务1005。如果为“否”,则处理结束1010。否则,客户机分区为期望的附件服务调用激活对分区附件服务接口的管理程序调用1015。处理确定分区附件服务是否可用1020。如果为“否”,则服务请求失败1025,并且处理结束1010。
假设分区附件服务可用,那么管理程序接收分区附件服务请求1030,并且确定是将服务请求排队还是当前激活服务请求1035。如果服务请求将被排队,则管理程序将针对分区附件的服务请求进行排队1040,并且返回以询问客户机分区是否需要激活分区附件服务1005。如果当前将激活服务请求,则管理程序执行对当前状态机的“轻型”上下文切换,并且向分区附件给予对处理器的控制1050。
下文参照图12-图22详细地说明这一轻型上下文切换。分区附件执行或者发起请求的服务,然后返回到管理程序1055。管理程序执行类似的轻型上下文切换并且将对处理器的控制给予回到发起分区附件服务的客户机分区1060,从而完成处理1010。
图11描绘了用于从分区附件异步地处理服务请求完成的协议的一个实施例的流程图。分区附件请求完成处理1100开始于确认分区附件服务请求完成的询问1105。如果请求处理未完成,则处理等待直至分区附件服务请求已经完成,这时服务请求的完成被排队到管理程序1110。处理然后确定客户机分区是轮询还是预计关于服务请求的完成的中断1115。如果运用轮询,则客户机分区向管理程序轮询服务请求的完成1120,否则管理程序为客户机分区发布中断1125。管理程序然后执行轻型上下文切换(下文描述)并且激活客户机分区中断完成句柄1130。客户机分区处理服务请求的完成1135,从而完成处理协议1140。
图12-图15图示了在数据处理系统内的全逻辑分区向逻辑分区的上下文切换的一个例子。当在两个分离的全分区之间进行上下文切换时,各逻辑分区具有它自己的指派给它的独特虚拟地址空间。当管理程序对个别处理器执行全分区切换时,管理程序必须保存和重新存储处理器上下文机器状态(通用寄存器、浮点寄存器、专用寄存器、指令地址寄存器等)以及无效和重新初始化存储器管理单元(MMU)硬件。这包括无效任何地址转译高速缓存(例如转译旁视(lookaside)缓冲器),因为全逻辑分区上下文切换也意味着向不同虚拟地址空间切换,并且改变处理器中的硬件页面表指针以指向新逻辑分区的在存储器中的页面表。MMU对全逻辑分区上下文切换的影响在执行逻辑分区上下文切换时是最大花费,因为新逻辑分区每当它被分发时也必须在参考时重新建立所有它的地址转译。这与这里公开的附件分区概念形成对照(因为附件及其客户机分区共享虚拟地址空间),其中无需无效或者修改MMU硬件,仅需保存和重新存储允许分区附件使用的处理器上下文/寄存器的子集以作为状态机向分区附件的上下文切换的一部分。
如图12中所示,第一逻辑分区(LPAR 1)1200包括虚拟地址到实际地址的页面表1205,该表包括向LPAR 1指派的虚拟地址范围。类似地,第二逻辑分区(LPAR 2)1210包括虚拟地址到实际地址的页面表1215,该表包括向LPAR 2指派的虚拟地址范围。LPAR1运用的虚拟地址空间范围与LPAR 2运用的虚拟地址空间分离,并且一个逻辑分区不能访问另一逻辑分区的虚拟地址空间。
图13图示了包括处理器核机器1300的存储器管理和地址转译硬件的处理器机器状态的一个例子。所示硬件包括通用寄存器1310、浮点寄存器1320、矢量寄存器1330、专用寄存器1340、转译旁视缓存器1350和段旁视缓存器1360。转译旁视缓存器是虚拟地址到实际地址的转译的高速缓存,而段旁视缓存器包含有效的虚拟地址的转译。
在图14中,假设将在处理器状态机中分发LPAR 1、即为活跃或者运行状态。如图所示,这一LPAR 1运行机器状态包括通用寄存器1310、浮点寄存器1320、矢量寄存器1330、专用寄存器1340、转译旁视缓存器1350和段旁视缓存器1360中的状态数据。专用寄存器SDRA 1 1400指向并且因此授权在运行状态中的逻辑分区(在这一例子中也就是LPAR 1 1200)的虚拟地址到实际地址的页面表。LPAR 2 1210处于不活跃状态中。
图15图示了在已经将LPAR 1切换出去并且将LAPR 2切换进来之后的处理器核机器状态的状况。如图所示,在通用寄存器1310、浮点寄存器1320、矢量寄存器1330和专用寄存器1340内重新存储LPAR 2 1210的机器状态数据。在这一情况下,切换专用寄存器SDR11400以指向LPAR 2 1210的虚拟到实际地址的表,而LPAR 1 1200为不活跃。结果是向段旁视缓存器1360重新存储LPAR 2的状态数据,并且无效转译旁视缓存器1350。这一缓存器将随着LPAR 2访问存储器地址而填充。
对照而言,图16-图18图示了根据本发明一个方面的当前机器状态从逻辑分区向分区附件的上下文切换。图16描绘了包括逻辑分区1600(LPAR 1)的数据处理系统的一个实施例,该逻辑分区包括虚拟地址到实际地址的页面表1620。数据处理系统还包括分区附件1610。在这一例子中,留出三个页面表条目1621以将分区附件映射到逻辑分区的虚拟地址空间中。这一例子假设逻辑分区1600是发起分区附件1610的客户机分区。因此如图16中所示,发起逻辑分区已经向分区附件贡献了虚拟地址空间,并且分区附件虚拟地址空间驻留于与发起逻辑分区相同的虚拟地址范围中。这是通过在LPAR 1的虚拟地址到实际地址的页面表1620内、为分区附件留出的页面表条目来表示的。如上文所言,从管理程序的观点来看,在调度和隔离方面,分区附件是与发起逻辑分区(LPAR 1)完全分离的分区。尽管这样,分区附件和逻辑分区如表示的那样共享虚拟地址空间范围。
图17图示了处理器核机器状态的例子,其中在活跃运行状态中分发LPAR 1。如图所示,LPAR 1的机器状态数据获取通用寄存器1710、浮点寄存器1720、矢量寄存器1730和专用寄存器1740。此外,分区的机器状态基本上填充转译旁视缓存器1750,并且填充段旁视缓存器1760。专用寄存器SDR1 1700指向LPAR 11600的虚拟地址到实际地址的页面表1620。在这一例子中,分区附件1610处于不活跃状态中。如图所示,转译旁视缓存器1750可以仍然包含来自分区附件的在先运行时间的、用于分区附件的一个或者多个条目1751。无需无效这些条目1751,因为经由用来隔离单个逻辑分区地址空间的子部分的硬件保护密钥来防止逻辑分区1600访问那些虚拟地址。例如,可以运用由标记为访问掩码寄存器(AMR)1770的专用寄存器所控制的页面保护机制,比如使用保护密钥。AMR寄存器1770可以保藏在任何给定瞬间活跃地接通的密钥。对于要参考的页面表条目,必须在AMR寄存器中启用关联密钥。当管理程序运行LPAR 1时,管理程序设置保护密钥,从而LPAR 1不能获得对页面表条目1621或者转译旁视缓存器1750的条目1751的访问。
图18图示了处理器核机器状态,其中分区附件1610被分发且活跃。在这一例子中,分区附件1610提供的附件服务运用通用寄存器1710,但是未运用为当前处于不活跃状态中的LPAR 1 1600保持状态信息的浮点寄存器1720和矢量寄存器1730。另外,分区附件仅运用所选专用寄存器1740,而其余专用寄存器被无效或者包含用于LPAR 1 1600的状态信息。专用寄存器SDR1 1700(在这一例子中)继续指向LPAR 1的虚拟地址到实际地址的页面表1620,因为分区附件1610被映射到其贡献的虚拟地址空间1621中。运用转译旁视缓存器1750中的各种条目1751来分发分区附件,并且其余条目保持LPAR 1的状态信息。安装段旁视缓存器1760中的单个条目1761以覆盖地址空间的属于附件的部分,而其余条目为LPAR 1保持状态信息以防止LPAR 1访问。由于例如由专用寄存器AMR1770来运用保护密钥,所以分区附件仅有权访问所指出的寄存器和表条目。从管理程序的观点来看,分区附件的分发与LPAR 1的分发分离,然而,在分区附件未运用的各种寄存器和表中为LPAR 1保藏处理器核机器状态信息。结果是从LPAR 1向分区附件的上下文切换是对状态机的“轻型”上下文切换,其中用分区附件状态信息仅更新所选寄存器和表信息。类似地,当从分区附件切换回到LPAR 1时,仅需更新附件分区所运用的寄存器信息以便转译回到LPAR 1活跃状态。
图19-图22图示了在运用同时硬件多线程的数据处理系统中、诸如此处描述的逻辑分区与分区附件之间对当前状态机进行上下文切换的一个例子。所示例子是两个硬件线程的核。然而本领域技术人员将理解,所描述的概念很容易应用于除了两个硬件线程的核之外的硬件线程核。举例而言,New York,Armonk的国际商业机器公司提供的POWER5TM和POWER6TM功率指令集架构处理器运用两个硬件线程的核。
如图19中所示,多线程核包括共享转译旁视缓存器1920的第一硬件线程1900和第二硬件线程1910。各硬件线程例如包括上文结合图13-图18描述的通用寄存器、浮点寄存器和专用寄存器以及段旁视缓存器。在图19中图示了多线程硬件核而没有逻辑分区是活跃的。在图20中,假设第一逻辑分区(LPAR 1)为活跃而LPAR 1状态信息占据硬件线程核1900、1910以及表旁视缓存器1920。
在图21中,已经在第一逻辑分区(LPAR 1)与第二逻辑分区(LPAR 2)之间发生了对状态机的上下文切换。如图所示,这是完整的上下文切换,其中LPAR 2的机器状态占据这一两个硬件线程核的例子中的第一硬件线程核1900、第二硬件线程核1910和表旁视缓存器1920。
图22图示了LPAR 1发起的从LPAR 1向分区附件的上下文切换例子。如图所示,仅单个线程1910用分区附件的状态信息来更新,即经历轻型上下文切换。具体而言,分区附件服务在这一例子中运用通用寄存器和各种专用寄存器,而其余寄存器和段旁视缓存器保持逻辑分区(LPAR 1)的机器状态信息。另外,第二线程(也就是硬件线程1900)保持和保留运行于发起逻辑分区(即LPAR 1)中。在这一例子中,表旁视缓存器也保持LPAR 1的机器状态,而分区附件仅运用所选条目1921。各硬件线程具有它自己的访问掩码寄存器,该寄存器包含控制分区附件(在该线程上活跃时)有权访问什么硬件的密钥集。因此,LPAR 1在一个线程上保持活跃,而分区附件在多线程数据处理系统的不同线程上为活跃。
在一个方面中,利用上述分区附件作为如下专用附件,该专用附件向逻辑分区提供对逻辑分区不可配置的物理输入/输出(I/O)设备的访问。目前,如果逻辑分区的操作系统无权访问用于指派的物理I/O适配器的设备驱动器,则操作系统不可直接使用该I/O适配器。在这样的情况下获得来自输入/输出适配器的功能需要用户干预以例如将设备重新指派给虚拟输入/输出服务器(VIOS)分区,这包括如果VIOS分区尚未存在则创建它,并且在逻辑分区与VIOS之间创建虚拟输入/输出通道。
图23A和图23B描绘了如下逻辑分区拥有的专用I/O设备的两个常规例子,该逻辑分区利用访问和使用I/O设备的本机设备驱动器。在图23A中,数据处理系统2300包括AIX分区2310,该分区包括一个或者多个客户应用2312、AIX操作系统实例2314和AIX硬件设备驱动器2324。AIX分区2310运行于管理程序2330之上,并且提供比管理程序提供的功能更高级的功能。管理程序2330在示出为包括一个或者多个物理I/O设备2350的下层系统硬件2340之上执行。一个或者多个I/O设备2350包括指派给特定AIX分区镜像2310的一个或者多个专用设备。在这一例子中,假设本机AIX硬件设备驱动器2324允许访问指派的一个或者多个I/O设备2350。
图23B描绘了数据处理系统2300’的另一实施例。这一数据处理系统包括Linux分区2310’,该分区包括一个或者多个客户应用2312’、Linux操作系统2314’和Linux硬件设备驱动器2324’。Linux分区2310’运行于管理程序2330’之上,并且提供比管理程序本身提供的功能更高级的功能。管理程序2330’在示出为包括(一个或者多个)I/O设备2350’的下层系统硬件2340’之上执行。经由本机Linux硬件设备驱动器2324’来访问I/O设备2350’。
在图23A和图23B的例子中,假设讨论的逻辑分区具有用于指派的一个或者多个I/O设备的适当本机设备驱动器。情况并非总是这样。在这样的情况下,常规地运用称为虚拟I/O服务器(VIOS)分区的第二逻辑分区。
如果可以在操作系统之间共享设备驱动器,则可以缩减设备驱动器开发成本。根据本发明的一个方面,这在下文中通过将设备驱动器部署为分区附件服务来实现。如上文所言,分区附件是分别在与用户应用和内核服务的常规问题和权限状态分离的执行状态中操作的轻型执行环境。这一新执行状态在这里称为管理程序/问题状态,并且在图24A和图24B中进行了图示(其中仅通过例子描绘AIX和Linux)。如下文说明的那样,取代了部署全VIOS分区,操作系统可以代之以运用分区附件以支持向该逻辑分区指派的特定不可配置的I/O设备。在这样的情况下,创建如下分区附件,该分区附件运用非本机操作系统的设备驱动器作为与指派的物理I/O设备的接口。注意,本机和非本机操作系统可以是任何两个不同操作系统。
图24A描绘了本发明这一方面的一个例子。在这一图中示出了数据处理系统2400包括AIX分区2410和Linux个性分区附件(或者Linux个性附件)2420。AIX分区2410是包括一个或者多个客户应用2412、AIX操作系统实例2414和虚拟I/O设施2416的逻辑分区。AIX分区2410运行于管理程序2430之上,并且提供比管理程序提供的功能更高级的功能。管理程序2430在示出为包括指派给AIX分区2410的(一个或者多个)I/O设备2450的下层系统硬件2440之上执行。
Linux个性分区2420在概念上为AIX分区2410的专用子分区。如上文所述,分区附件少于全逻辑分区,但是以如下方式加以运行,在该方式中管理程序强制在分区附件与它随之运行的AIX分区之间的安全和隔离。分区附件与全逻辑分区相比功能缩减。例如,分区附件无权访问存储器管理单元(MMU)配置或者浮点设施,并且其是仅提供运行希望的服务所需功能(例如I/O驱动器)的环境。
在所示例子中,Linux个性附件2420包括虚拟I/O接口2422和允许访问I/O设备2450的硬件设备驱动器服务2424。在这一例子中,硬件设备驱动器服务2424是Linux硬件设备驱动器,其响应于AIX分区表明其已经向它指派了AIX分区不可配置的I/O设备2450而在AIX分区2410派生的(spawn)Linux个性附件2420内运行。Linux个性附件2420包括足以运行用于物理I/O设备的Linux硬件设备驱动器的非本机内核服务。这些非本机内核服务少于对应的全操作系统,在这一例子中也就是少于全Linux操作系统。
在操作中,AIX分区2410经由在AIX操作系统2414与Linux个性附件2420之间的虚拟I/O接口2416、2422来访问I/O设备2450,其中Linux个性附件2420包括Linux硬件设备驱动器2424的。通过向分区附件提供非本机Linux个性,Linux硬件设备驱动器能够运行于分区附件内,并且由此提供对原来向AIX分区2410指派的I/O设备2450的访问,尽管AIX分区不可配置该I/O设备。该设备通过Linux个性附件2420而变为可由AIX分区访问。
图24B描绘了使用分区附件以提供对指派给逻辑分区的不可配置的I/O设备的访问的另一例子,该逻辑分区在这一情况下为数据处理系统2400’的Linux分区2410’。用于这一实施的分区附件是AIX个性附件2420’,该附件包括分区附件内的用于运行非本机操作系统的设备驱动器(在这一例子中也就是AIX硬件设备驱动器2424’)的充分的非本机AIX内核服务。这些非本机内核服务少于对应的全操作系统,也就是少于为了运行AIX硬件设备驱动器而常规需要的全AIX操作系统。Linux分区2410’是包括一个或者多个客户应用2412’、Linux操作系统2414’和虚拟I/O设施2416’的逻辑分区。Linux分区2410’运行于管理程序2430’之上,并且提供比管理程序提供的功能更高级的功能。管理程序2430’在示出为包括(一个或者多个)I/O设备2450’的下层系统硬件2440’之上执行。
AIX个性附件2420’同样在概念上为客户机分区2410’的子分区。如上文所述,分区附件少于全逻辑分区,但是以如下方式加以运行,在该方式中管理程序强制在分区附件与它运行于其中的客户机分区之间的安全和隔离。分区附件是仅提供运行希望的服务所需功能(例如I/O驱动器)的环境。在这一例子中假设附件专用于发起派生的逻辑分区、也就是Linux分区2410’。
在所示例子中,AIX个性附件2420’包括虚拟I/O接口2422’和允许访问I/O设备2450’的AIX硬件设备驱动器2424’。
如图所示,在操作中,Linux分区2410’经由分区附件2420’来访问I/O设备2450’。
如这里使用的那样,个性附件是具有特定操作系统个性、但是少于全操作系统的分区附件。在这里描述的实施中,个性附件是派生分区附件的逻辑分区的本机操作系统的非本机个性。例如,图24A的AIX分区2410发起Linux个性附件的创建,而图24B的Linux分区2410’发起AIX个性附件的创建。仅通过例子提供这些。在一个备选实施中,个性附件可以是派生分区附件的逻辑分区的本机操作系统的本机个性。另外在非本机实施中,在分区附件内实施的个性可以是逻辑分区的任何非本机操作系统到任何本机操作系统。个性附件包括特定设备驱动器为了在附件以内运行而需要的操作系统设备驱动器运行时环境的最小服务集。设备驱动器遵循它的主机操作系统环境所定义的编程环境。这一编程环境通常包括用于诸如存储器分配、定时器服务、中断句柄注册和响应于中断的激活、为DMA(直接存储器访问)映射I/O缓存器等事项的多种内核服务。个性附件以与实际主机操作系统内核相同的方式提供这些服务和功能,从而在附件以内运行的设备驱动器并不知道在它的本机主机操作环境与这里描述的个性附件之间的差异。这使得未修改的设备驱动器能够在更轻量的分区附件而不是在全逻辑分区内运行。
就具体例子而言,图24A的Linux个性附件2420提供了模仿Linux设备驱动器编程接口和执行环境的运行时环境和内核服务,而图24B的AIX功能附件2420’提供了模仿全AIX操作系统的AIX设备驱动器编程接口和执行环境的运行时环境和内核服务。
下文参照图7的示例流程图更详细地讨论用于创建分区附件的协议。用于建立分区附件的这一协议可以由如下逻辑分区发起,该逻辑分区拥有逻辑分区不可配置的物理输入/输出(I/O)设备,也就是说,逻辑分区缺乏用于访问指派的物理输入/输出设备的设备驱动器实例。
参照图7,输入/输出实例化(或者建立)700开始于逻辑分执行输入/输出设备发现705。操作系统探测附着的I/O总线和/或固件提供的硬件配置信息,从而寻找需要设备驱动器的I/O设备。例如,操作系统可能找到插入到PCI槽中的PCI适配器卡,该卡由可从PCI配置空间读取的唯一厂商和设备ID来标识。操作系统然后确定它是否拥有用于各发现的设备的本机设备驱动器。这实质上是操作系统执行对注册的可加载设备驱动器的查找710。如果为“是”,则逻辑分区继续正常设备驱动器加载配置715,从而结束处理720。然而如果客户机分区没有它自己的用于向该分区指派的发现的I/O设备的设备驱动器,则处理确定分区附件镜像是否可用于这一I/O设备725。如果为“否”,则不能配置设备730,并且处理结束。
可以经由利用操作系统对注册的分区附件镜像的查找,或者通过查询平台固件或者其他分区附件镜像服务器,以确定分区附件设备驱动器镜像是否存在并且能够操作指派的物理I/O设备,来实现确定分区附件设备驱动器镜像是否可用于特定I/O设备。
假设分区附件镜像可用于I/O设备,那么客户机分区将它的虚拟地址空间和存储器的一部分保留或者贡献用于分区附件镜像735,并且激活管理程序以利用贡献的虚拟地址空间和存储器空间以及I/O设备来实例化分区附件740。
操作系统实质上通过向管理程序让与所有权,来动态地放弃其没有设备驱动器的物理I/O设备的所有权。管理程序创建新分区附件并且向分区附件指派贡献的资源745。管理程序然后对贡献的虚拟地址空间和存储器建立适当的硬件保护和强制,从而客户机分区不再能够访问贡献的空间750。管理程序为分区附件创建新的可分发状态755。
如上文所言,有利地可以在SMT数据处理系统的单个硬件线程上分发这一新的可分发状态,而其他硬件线程继续运行对客户机分区的激活(或者请求)。管理程序将分区附件镜像加载到贡献的附件存储器中760,并且初始化分区附件执行环境765。然后分发分区附件以在分区附件镜像入口点处开始初始化执行770。管理程序为客户机分区建立分区附件服务接口调用,这些调用例如包括用于对象虚拟化设备类的虚拟输入/输出请求队列接口775。管理程序返回到状态为分区附件实例化的客户机分区,并且向客户机分区指派新虚拟I/O设备780。在这一步骤中,管理程序向客户机分区动态地添加虚拟I/O设备,其中客户机分区的本机操作系统具有用于该虚拟I/O设备的设备驱动器。客户机分区然后为该虚拟I/O设备继续正常虚拟设备驱动器加载和配置785,其中该虚拟I/O设备最终有权访问客户机分区不可配置的物理I/O设备。
概括而言,上文描述了一种建立逻辑分区对逻辑分区所拥有的物理输入/输出(I/O)设备的访问的方法。该方法包括:在数据处理系统内创建分区附件,该分区附件是运用从逻辑分区向分区附件贡献的虚拟地址空间和物理I/O设备而创建的,该逻辑分区包括本机操作系统,并且分区附件包括非本机操作系统的用于物理I/O设备的设备驱动器,该物理I/O设备是逻辑分区不可配置的;以及向逻辑分区提供通过分区附件的非本机操作系统的设备驱动器来与贡献的物理I/O设备对接的虚拟I/O设备。在一个实施例中,该创建是响应于逻辑分区确定它的操作系统没有能够配置向它指派的物理I/O设备的本机设备驱动器,以及逻辑分区表明能够运行支持该物理I/O设备的非本机硬件设备驱动器的分区附件实例可用。在这样的情况下,管理程序使用如上文所述的动态重新配置设施,以使物理输入/输出设备脱离逻辑分区并且向创建的分区附件重新指派设备。作为回报,管理程序创建虚拟设备并且将它指派给逻辑分区。以这一方式,开始拥有不可配置的物理输入/输出设备的逻辑分区以可配置的虚拟I/O设备而告终,它可以通过该虚拟I/O设备经由分区附件而获得对物理I/O设备的访问权。假设讨论的操作系统支持这种虚拟I/O设备,因为操作系统在多逻辑分区系统中工作需要这样的设施,其中在该多逻辑分区系统中可能尚未向逻辑分区指派物理适配器。
在另一方面中,多个分区附件用来向多个逻辑分区提供例如对自虚拟输入/输出设备(比如自虚拟输入/输出适配器)的访问。在虚拟化系统中,如果存在单个输入/输出适配器,并且该适配器要服务于数据处理系统的多个逻辑分区,则允许单个逻辑分区复用该设备(比如以图25中所示的虚拟输入/输出服务器方式)或者运用输入/输出设备的输入/输出虚拟化(IOV)能力(如果存在)来实例化多个虚拟功能(VF),各虚拟功能在相应客户机逻辑分区看来表现为输入/输出适配器(比如以图26中所示方式)。
首先参照图25,图示了数据处理系统2500,该系统包括多个逻辑分区2510A、2510B...2510n和向多个逻辑分区提供输入/输出服务的虚拟输入/输出服务器(VIOS)2520。通过管理程序2530、经由一个或者多个输入/输出路径来访问常规非自虚拟输入/输出设备2540。在这一例子中,逻辑分区各自具有与VIOS 2520内的服务器虚拟适配器设备驱动器(即服务器虚拟输入/输出)2522对接的客户机虚拟适配器设备驱动器(即客户机虚拟输入/输出)2515A、2515B...2515n。在一个实施例中,经由管理程序2530来对接客户机虚拟输入/输出和服务器虚拟输入/输出。VIOS 2520还包括有助于与非自虚拟输入/输出设备2540的输入/输出通信的物理适配器设备驱动器栈2525。在这一例子中,非自虚拟输入/输出设备被设计成一次与一个逻辑分区通信,并且不能如图26中所示自虚拟输入/输出设备的情况那样将它自己虚拟化成用于与多个逻辑分区通信的多个功能。
参照图26,图示了数据处理系统2600的一个实施例,该系统运用输入/输出虚拟化和自虚拟输入/输出设备或者适配器2640。数据处理系统2600包括多个逻辑分区2610A、2610B...2610n以及表示为虚拟输入/输出服务器(VIOS)2620的逻辑分区。各逻辑分区2610A、2610B...2610n越过管理程序2630来与自虚拟输入/输出设备2640内的相应虚拟功能2651、2652、2653通信。这一通信是经由各逻辑分区内的相应本机虚拟功能(VF)设备驱动器2615A、2615B..2615n。如图所示,VIOS 2620包括与自虚拟输入/输出设备2640内的物理功能2650对接的本机物理功能(PF)设备驱动器2625。
作为替代,可以省略VIOS 2620,而其物理功能设施转移到管理程序2630。在自虚拟输入/输出设备2640内的物理功能2650提供为了配置虚拟功能2651、2652、2653而需要的基本功能。这一物理功能提供核心能力集并且为所需虚拟功能定义使能位。在相应逻辑分区内的本机虚拟功能设备驱动器各自为相应逻辑分区的操作系统所固有。例如,LPAR A 2610A可以包括需要本机Linux虚拟功能设备驱动器的Linux操作系统,并且LPAR B 2610B可以包括运用本机AIX虚拟功能设备驱动器2615B的AIX操作系统。
比较图25和图26的数据处理系统实施,可以注意到图25的实施例中的VIOS 2520负责输入/输出复用功能,而在图26的数据处理系统实施例中,自虚拟输入/输出设备2640负责输入/输出复用功能。在后一种方式中,自虚拟输入/输出设备运用虚拟功能并且通过相同的通信介质来驱动它们,其中在I/O设备处接收多个输入并且在由I/O设备驱动的通信介质上对其进行复用。图26的数据处理系统方式有利地避免了图25的VIOS方式(该方式在VIOS操作系统I/O栈中必须用软件处理并行I/O请求和响应)所固有的锁定和其他形式的同步。然而,图26中所示方式受如下事实所困扰:它需要逻辑分区具有对存在的各虚拟功能设备的设备驱动器支持。也就是说,在各逻辑分区中需要适当的本机虚拟功能设备驱动器,这意味着虚拟功能设备驱动器为该逻辑分区的操作系统所固有,因此取决于在逻辑分区内运用的操作系统,在整个数据处理系统内可能需要多个不同的本机虚拟功能设备驱动器。
比如在图26中所示数据处理系统中运用的自虚拟输入/输出设备的一个例子是例如在通过整体引用结合于此的″Single Root I/OVirtualization and Sharing Specification″,Revision 1.0,PCI-SIG(2007年9月11日)中描述的单根输入/输出虚拟化硬件。
图27图示了又一虚拟化方式,其中数据处理系统2700包括多个逻辑分区2710A、2710B...2710n以及VIOS 2720。逻辑分区和VIOS越过管理程序2730来与自虚拟输入/输出设备硬件2740通信。在这一例子中,自虚拟输入/输出设备包括功能2750,诸如典型外围部件互连(PCI)功能,该功能使得可共享的硬件队列分段成在页面边界上对准,从而向不同逻辑分区指派个别队列对(QP)。队列对广义地代表自虚拟输入/输出硬件中可被指派给共享该自虚拟硬件的多个逻辑分区中的一个逻辑分区的一部分。示出了各逻辑分区经由本机队列对设备驱动器2715A、2715B...2715n来与自虚拟输入/输出设备2740的相应硬件队列对2751、2752、2753直接通信。I/O设备功能2750与例如布置于VIOS 2720中的本机功能设备驱动器2725通信。与图26的数据处理系统实施例一样,在逻辑分区内的本机设备驱动器是相应逻辑分区的操作系统固有的设备驱动器,并且取决于所运用的操作系统,不同逻辑分区可能需要不同本机设备驱动器。
作为一种对图25-图27的上述数据处理系统备选方案的增强,下文描述使用分区附件以在多分区数据处理系统中有助于自虚拟输入/输出设备(或者适配器)的更高效虚拟化。
根据该增强,以如下方式部署分区附件实例,在该方式中创建各分区附件实例以支持特定逻辑分区到虚拟功能(或者队列对)的配对。使用这一方式,各逻辑分区访问运用抽象虚拟输入/输出机制(比如在图25的VIOS实施中运用的VIO机制)的对应虚拟功能或者队列对。从客户机分区的观点来看,这一功能类似(或者等效)于图25中描绘的数据处理系统的功能。然而,避免了这里描述的数据处理系统的弊端,因为各逻辑分区到虚拟功能(或者队列对)的关联具有有助于其间通信的唯一分区附件实例。由于各分区附件实例仅处理单个逻辑分区和单个虚拟功能(或者队列对),所以没有必要包括为了支持I/O适配器的复用而原本需要的锁定或者同步机制,因为系统依赖于具有自虚拟输入/输出功能的设备本身内的复用能力。
这一分区附件实施的另一优点在于:由于所有分区附件实例是针对相同设备而考虑的,所以它们能够共享代码和只读数据(这是下文参照图30A-图31B详细描述的特征)。这明显减少了为了支持实施而需要的存储器覆盖区,而添加分区附件实例的存储器覆盖区成本简单地是与针对新分区附件实例为逻辑分区到虚拟功能(或者队列对)的配对而维持动态状态信息关联的成本。
另外,分区附件实例由于它们被配置成一次支持仅一个逻辑分区到虚拟功能(或者队列对)的配对,因此可以在本机设备驱动器和上述VIOS备选方案中用避免传统I/O栈和驱动器所需要的许多同步和锁定机制这样的方式容易地加以写入。例如,可以写入分区附件作为轮询状态机,并且它们的运行时环境的专用性质无需支持活跃占先,因此简化了或者无需锁定。
概括而言,下文描述的概念允许逻辑分区以使逻辑分区的各操作系统所需要的设备-驱动器开发最少的方式从具有输入/输出虚拟化功能的输入/输出设备或者适配器获得I/O服务,因为操作系统仅看见虚拟输入/输出(VIO)服务(例如设备驱动器服务),而不是具体的物理输入/输出适配器设备。这避免了需要实例化逻辑分区以复用下层I/O硬件,并且允许经由高效VIO硬件能力而不是VIOS中的软件锁来实现I/O硬件的复用。此最后的方面是归因于分区附件的唯一编程模型的性质,并且假设用来支持特定I/O设备的特定分区附件实施利用这些性质以创建高效实施。
图28描绘了根据本发明一个方面的大体上表示为2800的数据处理系统的一个实施例。在数据处理系统2800内,多个逻辑分区2810A、2810B...2810n和VIOS 2820运行于管理程序2830之上,并且提供比管理程序提供的功能更高级的功能。管理程序2830在包括自虚拟输入/输出设备(或者适配器)2840的下层系统硬件之上执行。VIOS 2820在描绘的数据处理系统实施例内是可选的。自虚拟输入/输出设备2840在一个实施例中是具有输入/输出虚拟化功能的I/O适配器。这一适配器可以呈现来自第一物理功能2850的多个虚拟功能实例2851、2852、2853,各虚拟功能实例呈现与正常I/O适配器关联的功能。另外举例而言,在这一实施例中描绘了第二物理功能2880,从该第二物理功能提供第二虚拟功能2881。
各虚拟功能被指派以向数据处理系统中的特定逻辑分区提供I/O服务。讨论的逻辑分区通过运用针对各逻辑分区到虚拟功能的配对而实例化的分区附件实例,来避免具有与它们的虚拟功能的直接交互,以便维持硬件抽象化。这些分区附件2870A、2871A、2870B、2870n由于分区附件专用于特定逻辑分区到虚拟功能的配对这一性质而称为虚拟功能(VF)分区附件。对于与相同下层硬件设备关联的所有虚拟功能(即物理功能2850或者物理功能2880),实例化的分区附件实例是相同的。也就是说,各分区附件实例2870A、2870B...2870n是相同的,而假设分区附件实例化2871A不同,因为它对接到与不同物理功能2880关联的不同虚拟功能2881。有利地,通过在逻辑分区与虚拟功能之间插入分区附件,可以将各逻辑分区内的输入/输出虚拟化为客户机虚拟输入/输出(VIO)2815A、2815A’、2815B...2815n。
就具体例子而言,下层物理功能可以包括外围部件互连(PCI)功能,该PCI功能支持在上文引用的″Single Root I/O Virtualizationand Sharing Specification″中定义的单根I/O虚拟化能力(SR-IOV)。物理功能因此将包含SR-IOV能力结构。虚拟功能与物理功能关联,并且与物理功能以及与关联于相同虚拟功能的其他虚拟功能共享一个或者多个物理资源,比如链路。在一个实施例中,“功能”意味着与单个功能编号关联的在配置空间中的可寻址实体。功能可以指代多功能设备中的一个功能或者单功能设备中的仅有功能。
在数据处理系统的初始配置期间运用功能分区附件2860以有助于建立虚拟功能分区附件。注意,在图28中描绘的数据处理系统实施例中图示了多个物理功能和多个不同的虚拟功能实例,其中单个逻辑分区经由不同虚拟功能分区附件2870A、2871A访问其中的两个虚拟功能实例。一个、两个或者多于两个的物理功能可以实施于自虚拟输入/输出设备内,并且各逻辑分区可以经由设备的关联虚拟功能来访问这些物理功能中的一个或者多个。也注意到,取决于针对特定逻辑分区到虚拟功能的配对而实施的分区附件实例,在LPAR A 2810A内的客户机虚拟接口或者驱动器(客户机VIO2815A、客户机VIO 2815A’)可以是相同或者不同类型的虚拟接口或者驱动器。
虚拟功能分区附件2870A、2871A、2870B、2870n在一个实施例中实施与关联逻辑分区内的相应客户机VIO对接的服务器虚拟适配器设备驱动器以及用于自虚拟输入/输出设备适配器上的虚拟功能的设备驱动器。各分区附件以与诸如上文结合图25描述的VIOS实施内的服务器虚拟适配器设备驱动器类似地来驱动适配器上的相应虚拟功能。如上文所述,分区附件的创建可以由相应逻辑分区发起,或者由数据处理系统内的管理程序发起。另外,相应分区附件的优点和特性将与上述相同。举例而言,各分区附件可以从关联逻辑分区的本机操作系统来实施非本机操作系统的设备驱动器。
本领域技术人员将根据上文讨论注意到,这里描述的编程模型允许分区附件代码开发员以允许简化或者避免典型操作系统内核代码锁定和同步原语这样的方式编写代码。分区附件可以高效地编写为单线程轮询状态机,并且通过控制特定分区附件实例可见的并行程度,有可能保证分区附件代码可以采取非占先和单线程的运行时环境。对于输入/输出处理工作,很少需要同时执行多个线程以服务于特定逻辑分区到虚拟功能的配对。这些性质是可行的,因为各分区附件实例在受隔离/受保护的环境(也就是如上文所述受保护的分离的可分发状态)中服务于单个逻辑分区到虚拟功能的配对,并且可以用如下开销来部署分区附件实例,该开销低到足以允许每个逻辑分区单个附件实例到虚拟功能的配对,这不同于VIOS实施。
图29描绘了数据处理系统2900的一种替代实施,该系统具有多个逻辑分区2910A、2910B...2910n,并且可选地包括运行于管理程序2930之上的VIOS 2920,该管理程序在下层系统硬件之上执行。示出了下层系统硬件包括自虚拟输入/输出设备2940。示出了自虚拟输入/输出设备2940包括基本功能2950和可虚拟化成多个队列对2951、2952、2953的队列结构。各队列对与功能关联,并且与功能和以及关联于相同功能的其他队列对共享一个或者多个物理资源,比如链路。多个分区附件2960、2970A、2970B、2970n用来例如将多个逻辑分区2910A、2910B...2910n对接到自虚拟输入/输出设备2940内的相应队列对2951、2952、2953。功能分区附件2960在数据处理系统的初始配置期间用来有助于分区附件的初始建立。
通过提供分区附件2970A、2970B...2970n作为在各逻辑分区到队列对的配对之间的接口,虚拟输入/输出接口或者驱动器(客户机VIO 2915A、2915B...2915n)可以运用于相应逻辑分区内。在这一情况下,逻辑分区并不了解所运用硬件的实际类型。分区附件可以例如包括与关联逻辑分区的相应客户机VIO对接的服务器虚拟设备驱动器以及用于与自虚拟输入/输出设备2940内的相应队列对2951、2952、2953对接的适当物理适配器设备驱动器。
图30A描绘了诸如上文结合图26描述的数据处理系统3000的另一实施例。在这一实施例中,数据处理系统的多个逻辑分区3010运行于管理程序3020之上,该管理程序在包括自虚拟输入/输出设备3030的下层硬件之上运行。示出了自虚拟输入/输出设备3030包括虚拟化成多个虚拟功能实例3032、3033的物理功能3031。各逻辑分区包括用于与自虚拟输入/输出设备3030内的物理功能3031或者虚拟功能3032、3033之一通信的相应本机虚拟功能设备驱动器3015。
如图30B中所示,数据处理系统中的逻辑分区的本机虚拟功能设备驱动器需要用于它们的代码、只读数据和读/写状态数据的分离的物理存储器页面。在这一例子中,各逻辑分区的硬件页面表的这些条目3050、3051、3052映射到数据处理系统的物理存储器页面3040内的指派的逻辑分区存储器页面3060、3061、3062。因此,在这一具有三个逻辑分区的例子中,各本机虚拟功能设备驱动器针对三个逻辑分区需要用于共计九个页面的三个物理存储器页面。必要的是,维持代码、只读数据和读/写数据分离,因为各逻辑分区可能运用不同的本机操作系统。例如,LPAR 1可以运用AIX操作系统,而LPAR 2可以运用Linux操作系统,在该情况下本机设备驱动器代码和只读数据以及读/写状态数据会有所不同。
对照而言,图31A和图31B图示了数据处理系统3100的一个实施例,该系统包括运行于管理程序3130和自虚拟输入/输出设备3140之上的多个逻辑分区3110,各逻辑分区经由关联虚拟功能分区附件3120对接到相应虚拟功能实例3141、3142、3143。各虚拟功能分区附件3120与相应虚拟化接口(即在它的关联逻辑分区3110内的客户机VIO 3115)通信。
在这一实施中,假设分区附件实例3120运行相同代码,因为它们对接到自虚拟输入/输出设备内的相同类型的虚拟功能实例。因此如图31B中所示,有可能合并三个分区附件的存储器,从而在物理存储器页面3150内运用仅五个物理存储器页面。具体而言,逻辑分区的用于三个分区附件实例的页面表条目3160、3161、3162包括如图所示映射到物理存储器页面3150内的两个共同位置的共同附件代码和共同只读数据。
在这一例子中,代码和只读数据驻留于指派给数据处理系统的LPAR 1的物理存储器页面3170内。共同代码和共同只读数据可以代之以放置于指派给LPAR 2的存储器页面或者指派给LPAR 3的页面内。作为又一变化,如果分区附件为管理程序所拥有(即发起),则代码和只读数据(以及用于分区附件的读/写数据)将驻留于物理存储器页面3150的指派de管理程序页面中。示出了各逻辑分区硬件页面表指向物理存储器中的用于分区附件代码和只读数据的相同页面。如图31B所示,针对特定分区附件实例,仅唯一读/写状态数据所需要的页面表条目不同。在所示例子中,LPAR 1需要用于代码、只读数据和读/写状态数据的三个页面,而LPAR 2和LPAR 3仅需各自用于它们的读/写状态数据的单个物理存储器页面,其中有利地与用于LPAR 1的虚拟分区附件共享代码和只读数据页面。
在这一例子中,假设分区附件实例的不同之处仅在于它们为了服务于它们的特定逻辑分区到虚拟功能的配对而维持的活跃状态。因而,管理程序通过避免重复共同代码和只读数据存储器区域来节省存储器。管理程序可以用多种方式实现这一点,例如通过显式地认识到两个分区附件实例相同,因此建立它们的存储器映射以便保证最大量共享,或者通过使用透明存储器合并以引起这一共享。
可以在例如具有计算机可用介质的制品(例如一个或者多个计算机程序产品)中包括本发明的一个或者多个方面。该介质中例如具有用于提供和有助于本发明能力的计算机可读程序代码装置或者逻辑(例如指令、代码、命令等)。可以将该制品包括作为计算机系统的一部分或者分开销售。
参照图32描述并入本发明一个或者多个方面的制品或者计算机程序产品的一个例子。计算机程序产品3200例如包括一个或者多个计算机可用介质3210,该介质上存储用于提供和有助于本发明一个或者多个方面的计算机可读程序代码装置或者逻辑3220。该介质可以是电子、磁、光学、电磁、红外线或者半导体系统(或者装置或者设备)或者传播介质。计算机可读介质的例子包括半导体或者固态存储器、磁带、可拆卸计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的例子包括光盘-只读存储器(CD-ROM)、光盘-读/写(CD-R/W)和DVD。
一个或者多个计算机可读程序代码装置或者逻辑限定的程序指令序列或者一个或者多个相关模块的逻辑组件指引本发明一个或者多个方面的执行。
虽然上文描述了各种实施例,但是这些仅为例子。
另外,环境可以包括仿真器(例如软件或者其他仿真机制),其中对特定架构或者其子集进行仿真。在这样的环境中,仿真器的一个或者多个仿真功能可以实施本发明的一个或者多个方面,尽管执行仿真器的计算机可以具有与仿真的能力不同的架构。作为一个例子,在仿真模式中对仿真的具体指令或者操作进行解码,并且构建适当仿真功能以实施个别指令或者操作。
在仿真环境中,主机计算机例如包括:存储器,用于存储指令和数据;指令取读单元,用于从存储器取读指令并且可选地为取读的指令提供本地缓存;指令解码单元,用于接收指令取读单元并且确定已经取读的指令类型;以及指令执行单元,用于执行指令。执行可以包括:将数据加载到用于存储器的寄存器中;将数据从寄存器存储回到存储器;或者进行如解码单元确定的某种算术或者逻辑运算。在一个例子中,用软件实施各单元。例如,将单元进行的操作实施为仿真器软件内的一个或者多个子例程。
另外,一种适合于存储和/或执行程序代码的数据处理系统是可用的,该系统包括直接地或者通过系统总线间接地耦合到存储器元件的至少一个处理器。存储器元件例如包括在实际执行程序代码期间运用的本地存储器、大容量储存器和高速缓存存储器,该高速缓存存储器提供对至少一些程序代码的暂时存储以便减少在执行期间必须从大容量储存器取回代码的次数。
输入/输出或者I/O设备(包括但不限于键盘、显示器、指示设备、DASD、磁带、CD、DVD、拇指驱动和其他存储器介质等)可以直接地或者通过居间I/O控制器耦合到系统。网络适配器也可以耦合到系统以使数据处理系统能够变为通过居间专用或者公共网络而耦合到其他数据处理系统或者远程打印机或者存储设备。调制解调器、有线调制解调器和以太网卡仅为可用网络适配器类型的几个例子。
可以用软件、固件、硬件或者其一些组合来实施本发明一个或者多个方面的能力。可以提供可由机器读取的至少一种程序存储设备,该设备体现可由该机器执行以实现本发明能力的至少一个指令程序。
这里描绘的流程图仅为例子。可以有对其中描述的这些图或者步骤(或者操作)的许多变化而不脱离本发明的精神实质。例如,可以按不同顺序执行步骤或者可以添加、删除或者修改步骤。所有这些变化视为要求保护的本发明的一部分。
虽然这里已经详细地描绘和描述实施例,但是本领域技术人员将清楚可以进行各种修改、添加、替换等而不脱离本发明的精神实质并且这些因此视为在如所附权利要求中限定的本发明范围内。
Claims (16)
1.一种为数据处理系统的多个逻辑分区建立对自虚拟输入/输出设备的访问的方法,所述方法包括:
将所述多个逻辑分区中的各逻辑分区对接到至少一个关联分区附件实例,各分区附件实例将所述多个逻辑分区中的它的关联逻辑分区耦合到所述自虚拟输入/输出设备的虚拟功能或者队列对之一,并且各分区附件实例包括分离的可分发状态并且运用从所述关联逻辑分区贡献的虚拟地址空间或者所述数据处理系统的管理程序来创建,并且其中各分区附件实例包括用于所述自虚拟输入/输出设备的所述虚拟功能或者队列对的设备驱动器;以及
向所述多个逻辑分区中的各逻辑分区提供至少一个虚拟输入/输出,该至少一个虚拟输入/输出通过所述逻辑分区的至少一个关联分区附件实例来与所述自虚拟输入/输出设备的所述虚拟功能或者队列对对接。
2.根据权利要求1所述的方法,其中所述自虚拟输入/输出设备包括物理功能和与之关联的多个虚拟功能实例,各虚拟功能实例与所述物理功能共享一个或者多个物理资源,并且其中所述多个逻辑分区经由多个分区附件实例对接到所述多个虚拟功能实例,各分区附件实例将所述多个逻辑分区中的关联逻辑分区对接到所述自虚拟输入/输出设备的所述多个虚拟功能实例中的相应虚拟功能实例。
3.根据权利要求1所述的方法,其中所述对接包括将各分区附件实例对接到所述自虚拟输入/输出设备的关联虚拟功能,并且其中所述自虚拟输入/输出设备还包括物理功能,并且所述方法包括提供对接到所述物理功能的物理功能分区附件,所述物理功能分区附件有助于创建将所述多个逻辑分区对接到所述多个虚拟功能实例的所述分区附件实例。
4.根据权利要求1所述的方法,其中所述自虚拟输入/输出设备包括具有与之关联的多个队列对实例的功能,并且其中所述多个逻辑分区经由多个分区附件实例对接到所述多个队列对实例,各分区附件实例将所述多个逻辑分区中的关联逻辑分区对接到所述自虚拟输入/输出设备的所述多个队列对实例中的相应队列对实例。
5.根据权利要求1所述的方法,其中所述对接包括运用多个分区附件实例将所述多个逻辑分区对接到所述自虚拟输入/输出设备的多个队列对实例,并且其中所述方法还包括提供与所述自虚拟输入/输出设备的至少一个功能对接的至少一个功能分区附件,其中所述多个队列对实例与所述自虚拟输入/输出设备的所述至少一个功能关联。
6.根据权利要求1所述的方法,其中所述自虚拟输入/输出设备包括第一物理功能和与所述第一物理功能关联的多个第一虚拟功能实例,各第一虚拟功能实例与所述第一物理功能共享一个或者多个物理资源,并且其中与所述多个逻辑分区中的一个逻辑分区对接的分区附件实例将所述一个逻辑分区耦合到所述自虚拟输入/输出设备的第一虚拟功能实例,并且其中所述自虚拟输入/输出设备还包括具有与之关联的至少一个第二虚拟功能实例的第二物理功能,各第二虚拟功能实例与所述第二物理功能共享一个或者多个物理资源,并且其中所述多个分区附件实例中的另一分区附件实例对接到所述多个逻辑分区中的所述一个逻辑分区并且将所述一个逻辑分区耦合到所述至少一个第二虚拟功能实例中的第二虚拟功能实例,其中所述一个逻辑分区运用不同分区附件实例来耦合到所述第一虚拟功能实例和所述第二虚拟功能实例。
7.根据权利要求1所述的方法,其中所述对接还包括为所述多个逻辑分区中的各逻辑分区建立所述至少一个分区附件实例,所述建立包括为各分区附件实例运用所述关联逻辑分区的虚拟地址到实际地址的页面表、以将用于所述分区附件实例的分区附件代码和只读数据映射到包含由多个分区附件实例利用的共同分区附件代码和共同只读数据的共同物理存储器页面,所述共同物理存储器页面包括所述数据处理系统的管理程序的所述多个逻辑分区之一的共同物理存储器页面。
8.根据权利要求1所述的方法,其中所述对接还包括创建各关联分区附件实例,所述创建运用从所述分区附件实例的关联逻辑分区向其贡献的虚拟地址空间,并且其中所述关联逻辑分区包括本机操作系统,并且所述创建的分区附件实例包括本机或者非本机操作系统的设备驱动器,其用于将所述关联逻辑分区对接到所述自虚拟输入/输出设备的所述虚拟功能或者队列对。
9.根据权利要求8所述的方法,其中向逻辑分区提供的各虚拟输入/输出可由所述逻辑分区进行配置,并且其中创建各分区附件实例还包括提供所述分区附件实例内的本机或者非本机内核服务以分别运行所述本机或者非本机操作系统的设备驱动器,以用于访问所述自虚拟输入/输出设备的所述虚拟功能或者队列对,所述本机或者非本机内核服务少于对应的全本机或者非本机操作系统。
10.一种数据处理系统,包括:
至少一个处理器,包括多个逻辑分区和有助于所述多个逻辑分区的输入/输出访问的多个分区附件实例;
自虚拟输入/输出设备,耦合到所述多个分区附件;以及
其中所述多个逻辑分区中的各逻辑分区对接到至少一个关联分区附件实例,各分区附件实例将所述多个逻辑分区中的关联逻辑分区耦合到所述数据处理系统的所述自虚拟输入/输出设备的虚拟功能或者队列对之一,各分区附件实例包括分离的可分发状态并且运用从相应逻辑分区贡献的虚拟地址空间或者所述数据处理系统的管理程序,并且各分区附件实例包括用于所述自虚拟输入/输出适配器的相应虚拟功能或者队列对的设备驱动器,并且其中所述多个逻辑分区中的各逻辑分区包括至少一个虚拟输入/输出,该至少一个虚拟输入/输出通过所述逻辑分区的至少一个关联分区附件实例来与所述自虚拟输入/输出设备的至少一个虚拟功能或者队列对对接。
11.根据权利要求10所述的数据处理系统,其中所述自虚拟输入/输出设备包括物理功能和与之关联的多个虚拟功能实例,各虚拟功能实例与所述物理功能共享一个或者多个物理资源,并且其中所述多个逻辑分区经由所述多个分区附件实例对接到所述多个虚拟功能实例,各分区附件实例将所述多个逻辑分区中的关联逻辑分区对接到所述自虚拟输入/输出设备的所述多个虚拟功能实例中的相应虚拟功能实例。
12.根据权利要求10所述的数据处理系统,其中所述自虚拟输入/输出设备包括具有与之关联的多个队列对实例的功能,并且其中所述多个逻辑分区经由所述多个分区附件实例对接到所述多个队列对实例,各分区附件实例将所述多个逻辑分区中的关联逻辑分区对接到所述自虚拟输入/输出设备的所述多个队列对实例中的相应队列对实例。
13.根据权利要求10所述的数据处理系统,其中所述自虚拟输入/输出设备包括第一物理功能和与所述第一物理功能关联的多个第一虚拟功能实例,各第一虚拟功能实例共享所述第一物理功能的一个或者多个物理资源,并且其中与所述多个逻辑分区中的一个逻辑分区对接的分区附件实例将所述一个逻辑分区耦合到所述自虚拟输入/输出设备的第一虚拟功能实例,并且其中所述自虚拟输入/输出设备还包括具有与之关联的至少一个第二虚拟功能实例的第二物理功能,各第二虚拟功能实例与所述第二物理功能共享一个或者多个物理资源,并且其中所述多个分区附件实例中的另一分区附件实例对接到所述多个逻辑分区中的所述一个逻辑分区并且将所述一个逻辑分区耦合到所述至少一个第二虚拟功能实例中的第二虚拟功能实例,其中所述一个逻辑分区运用不同分区附件实例来耦合到所述第一虚拟功能实例和所述第二虚拟功能实例。
14.根据权利要求10所述的数据处理系统,其中各分区附件实例运用所述关联逻辑分区的虚拟地址到实际地址的页面表、以将用于所述分区附件实例的分区附件代码和只读数据映射到包含由多个分区附件实例利用的共同分区附件代码和共同只读数据的共同物理存储器页面,所述共同物理存储器页面包括所述数据处理系统的管理程序的所述多个逻辑分区之一的共同物理存储器页面。
15.根据权利要求10所述的数据处理系统,其中各分区附件实例运用从所述多个逻辑分区中的它的关联逻辑分区贡献的虚拟地址空间,并且其中所述关联逻辑分区包括本机操作系统,并且所述多个分区附件实例中的至少一个分区附件实例包括非本机操作系统的设备驱动器,其用于将所述关联逻辑分区对接到所述自虚拟输入/输出设备的所述虚拟功能或者队列对,并且其中向各逻辑分区提供的各虚拟输入/输出可由所述逻辑分区进行配置,并且其中所述至少一个分区附件实例还包括所述至少一个分区附件实例内的非本机内核服务以运行所述非本机操作系统的设备驱动器,以便访问所述自虚拟输入/输出设备的所述虚拟功能或者队列对,所述非本机内核服务少于对应的全非本机操作系统。
16.一种计算机程序,包括适合于在所述程序运行于计算机上时执行根据权利要求1至9中的任一权利要求所述的所有步骤的程序代码装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/111,020 US8645974B2 (en) | 2007-08-02 | 2008-04-28 | Multiple partition adjunct instances interfacing multiple logical partitions to a self-virtualizing input/output device |
US12/111,020 | 2008-04-28 | ||
PCT/EP2009/054890 WO2009133015A1 (en) | 2008-04-28 | 2009-04-23 | Interfacing multiple logical partitions to a self-virtualizing input/output device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102016800A true CN102016800A (zh) | 2011-04-13 |
CN102016800B CN102016800B (zh) | 2014-11-19 |
Family
ID=40903795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980115253.0A Expired - Fee Related CN102016800B (zh) | 2008-04-28 | 2009-04-23 | 将多逻辑分区对接到自虚拟输入/输出设备的方法和系统 |
Country Status (9)
Country | Link |
---|---|
US (1) | US8645974B2 (zh) |
EP (1) | EP2274675B1 (zh) |
JP (1) | JP5005111B2 (zh) |
KR (1) | KR101354382B1 (zh) |
CN (1) | CN102016800B (zh) |
AT (1) | ATE540354T1 (zh) |
AU (1) | AU2009242182B2 (zh) |
CA (1) | CA2708781C (zh) |
WO (1) | WO2009133015A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012149912A1 (zh) * | 2011-12-31 | 2012-11-08 | 华为技术有限公司 | 虚拟化处理方法及相关装置和计算机系统 |
CN102789395A (zh) * | 2011-05-14 | 2012-11-21 | 财团法人工业技术研究院 | 管理虚拟机器监视器中超级调用的装置与方法及其监视器 |
CN104657305A (zh) * | 2013-11-22 | 2015-05-27 | 国际商业机器公司 | 用于实现支持sriov的sas适配器的动态虚拟化的方法和系统 |
CN111133413A (zh) * | 2017-10-06 | 2020-05-08 | 国际商业机器公司 | 利用单个cam端口的具有分区重排序队列的加载-存储单元 |
CN111885170A (zh) * | 2020-07-23 | 2020-11-03 | 平安科技(深圳)有限公司 | 物联网控制系统的处理方法、系统、云端服务器及介质 |
CN117873405A (zh) * | 2024-03-11 | 2024-04-12 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8219988B2 (en) | 2007-08-02 | 2012-07-10 | International Business Machines Corporation | Partition adjunct for data processing system |
US8321878B2 (en) | 2008-10-09 | 2012-11-27 | Microsoft Corporation | Virtualized storage assignment method |
WO2010099407A1 (en) * | 2009-02-27 | 2010-09-02 | Broadcom Corporation | Method and system for virtual machine networking |
US8776088B2 (en) * | 2009-03-30 | 2014-07-08 | Microsoft Corporation | Operating system distributed over heterogeneous platforms |
US8208396B2 (en) * | 2009-05-12 | 2012-06-26 | International Business Machines Corporation | Discovery and capability exchange management in a virtualized computing platform utilizing a SR-IOV adapter |
US9535732B2 (en) * | 2009-11-24 | 2017-01-03 | Red Hat Israel, Ltd. | Zero copy transmission in virtualization environment |
US8737262B2 (en) * | 2009-11-24 | 2014-05-27 | Red Hat Israel, Ltd. | Zero copy transmission with raw packets |
US8327358B2 (en) * | 2009-12-10 | 2012-12-04 | Empire Technology Development Llc | Hypervisor driver management in virtual machine environments |
US9389895B2 (en) * | 2009-12-17 | 2016-07-12 | Microsoft Technology Licensing, Llc | Virtual storage target offload techniques |
KR20110094764A (ko) * | 2010-02-17 | 2011-08-24 | 삼성전자주식회사 | 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법 |
US8413143B2 (en) | 2010-04-12 | 2013-04-02 | International Business Machines Corporation | Dynamic network adapter queue pair allocation |
US8392625B2 (en) * | 2010-06-25 | 2013-03-05 | Intel Corporation | Methods and systems to implement a physical device to differentiate amongst multiple virtual machines of a host computer system |
US8468551B2 (en) * | 2010-06-30 | 2013-06-18 | International Business Machines Corporation | Hypervisor-based data transfer |
US8122167B1 (en) | 2010-08-06 | 2012-02-21 | International Business Machines Corporation | Polling in a virtualized information handling system |
US9411517B2 (en) * | 2010-08-30 | 2016-08-09 | Vmware, Inc. | System software interfaces for space-optimized block devices |
US8726274B2 (en) * | 2010-09-10 | 2014-05-13 | International Business Machines Corporation | Registration and initialization of cluster-aware virtual input/output server nodes |
US8561065B2 (en) | 2010-11-15 | 2013-10-15 | International Business Machines Corporation | Virtualization of vendor specific network interfaces of self-virtualizing input/output device virtual functions |
US8839240B2 (en) * | 2010-11-29 | 2014-09-16 | International Business Machines Corporation | Accessing vendor-specific drivers for configuring and accessing a self-virtualizing input/output device |
US8561066B2 (en) | 2010-12-08 | 2013-10-15 | International Business Machines Corporation | Simplified DMA mappings for self-virtualizing input/output device virtual functions |
US8495274B2 (en) * | 2010-12-08 | 2013-07-23 | International Business Machines Corporation | Address translation table to enable access to virtual functions |
US8645755B2 (en) | 2010-12-15 | 2014-02-04 | International Business Machines Corporation | Enhanced error handling for self-virtualizing input/output device in logically-partitioned data processing system |
US8683478B2 (en) | 2010-12-21 | 2014-03-25 | International Business Machines Corporation | Best fit mapping of self-virtualizing input/output device virtual functions for mobile logical partitions |
US8418166B2 (en) * | 2011-01-11 | 2013-04-09 | International Business Machines Corporation | Transparent update of adapter firmware for self-virtualizing input/output device |
US8537706B2 (en) | 2011-01-11 | 2013-09-17 | International Business Machines Corporation | Preserving traffic class priority QoS with self-virtualizing input/output device |
US8862739B2 (en) * | 2011-01-11 | 2014-10-14 | International Business Machines Corporation | Allocating resources to virtual functions |
US8677356B2 (en) | 2011-01-11 | 2014-03-18 | International Business Machines Corporation | Adjunct partition work scheduling with quality of service attributes |
US9218195B2 (en) | 2011-05-17 | 2015-12-22 | International Business Machines Corporation | Vendor-independent resource configuration interface for self-virtualizing input/output device |
US20130159572A1 (en) * | 2011-12-16 | 2013-06-20 | International Business Machines Corporation | Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to multi-function hierarchies |
US9311122B2 (en) * | 2012-03-26 | 2016-04-12 | Oracle International Corporation | System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment |
JP5894496B2 (ja) * | 2012-05-01 | 2016-03-30 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US9355032B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Supporting multiple types of guests by a hypervisor |
US9348757B2 (en) | 2012-10-08 | 2016-05-24 | International Business Machines Corporation | System supporting multiple partitions with differing translation formats |
US9600419B2 (en) | 2012-10-08 | 2017-03-21 | International Business Machines Corporation | Selectable address translation mechanisms |
US9740624B2 (en) | 2012-10-08 | 2017-08-22 | International Business Machines Corporation | Selectable address translation mechanisms within a partition |
US9280488B2 (en) | 2012-10-08 | 2016-03-08 | International Business Machines Corporation | Asymmetric co-existent address translation structure formats |
US9355040B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Adjunct component to provide full virtualization using paravirtualized hypervisors |
US9875125B2 (en) * | 2013-06-14 | 2018-01-23 | International Business Machines Corporation | Parallel mapping of client partition memory to multiple physical adapters |
US9684286B2 (en) | 2013-09-12 | 2017-06-20 | Robert Bosch Gmbh | Security system with point bus abstraction and partitioning |
US9727611B2 (en) * | 2013-11-08 | 2017-08-08 | Samsung Electronics Co., Ltd. | Hybrid buffer management scheme for immutable pages |
US9639478B2 (en) | 2014-01-17 | 2017-05-02 | International Business Machines Corporation | Controlling direct memory access page mappings |
US10089129B2 (en) | 2014-06-30 | 2018-10-02 | International Business Machines Corporation | Supporting flexible deployment and migration of virtual servers via unique function identifiers |
US10067777B2 (en) * | 2014-09-18 | 2018-09-04 | Intel Corporation | Supporting multiple operating system environments in computing device without contents conversion |
PL3204861T3 (pl) | 2015-12-15 | 2019-12-31 | Lzlabs Gmbh | Zarządzanie kluczem zabezpieczającym i prefiksowanie w wirtualnej przestrzeni adresowej dziedziczonego systemu emulacji |
US10042720B2 (en) | 2016-02-22 | 2018-08-07 | International Business Machines Corporation | Live partition mobility with I/O migration |
US10042723B2 (en) | 2016-02-23 | 2018-08-07 | International Business Machines Corporation | Failover of a virtual function exposed by an SR-IOV adapter |
US10025584B2 (en) * | 2016-02-29 | 2018-07-17 | International Business Machines Corporation | Firmware management of SR-IOV adapters |
CN105979007B (zh) * | 2016-07-04 | 2020-06-02 | 华为技术有限公司 | 加速资源处理方法、装置及网络功能虚拟化系统 |
US9720863B1 (en) | 2016-10-21 | 2017-08-01 | International Business Machines Corporation | Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system |
US9720862B1 (en) | 2016-10-21 | 2017-08-01 | International Business Machines Corporation | Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system |
US10579437B2 (en) | 2016-12-01 | 2020-03-03 | International Business Machines Corporation | Migrating a logical partition with a native logical port |
FR3061325B1 (fr) * | 2016-12-28 | 2019-05-31 | Bull Sas | Procede de gestion de memoire virtuelle |
US10621133B2 (en) | 2017-02-08 | 2020-04-14 | International Business Machines Corporation | Managing by a hypervisor flexible adapter configurations and resources in a computer system |
US11099789B2 (en) * | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
US10901803B2 (en) | 2018-08-17 | 2021-01-26 | International Business Machines Corporation | Allocation of resources among logical partitions |
US11068310B2 (en) * | 2019-03-08 | 2021-07-20 | International Business Machines Corporation | Secure storage query and donation |
US11500568B2 (en) | 2020-01-02 | 2022-11-15 | International Business Machines Corporation | LPM management using contingent and conditional inputs |
US11455110B1 (en) * | 2021-09-08 | 2022-09-27 | International Business Machines Corporation | Data deduplication |
CN117439960B (zh) * | 2023-12-21 | 2024-04-12 | 井芯微电子技术(天津)有限公司 | 支持接口复用和兼容虚拟网络互联的接口管理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064523A1 (en) * | 2004-09-17 | 2006-03-23 | Toshiomi Moriki | Control method for virtual machine |
US20080091855A1 (en) * | 2006-10-17 | 2008-04-17 | Moertl Daniel F | Apparatus and Method for Communicating with an I/O Adapter Using Cached Address Translations |
CN101165665A (zh) * | 2006-10-17 | 2008-04-23 | 国际商业机器公司 | 管理访问数据处理系统的存储器的地址转换的方法和装置 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5432929A (en) | 1992-09-09 | 1995-07-11 | International Business Machines Corporation | Storage subsystem having a modifiable key-lock |
US5729723A (en) | 1992-11-16 | 1998-03-17 | Hitachi, Ltd. | Data processing unit |
US6256704B1 (en) | 1993-09-16 | 2001-07-03 | International Business Machines Corporation | Task management for data accesses to multiple logical partitions on physical disk drives in computer systems |
US5555385A (en) | 1993-10-27 | 1996-09-10 | International Business Machines Corporation | Allocation of address spaces within virtual machine compute system |
US6647508B2 (en) | 1997-11-04 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation |
US6473655B1 (en) | 2000-05-02 | 2002-10-29 | International Business Machines Corporation | Data processing system and method for creating a virtual partition within an existing partition in a hard disk drive |
US6892383B1 (en) | 2000-06-08 | 2005-05-10 | International Business Machines Corporation | Hypervisor function sets |
US6629162B1 (en) * | 2000-06-08 | 2003-09-30 | International Business Machines Corporation | System, method, and product in a logically partitioned system for prohibiting I/O adapters from accessing memory assigned to other partitions during DMA |
US6901497B2 (en) | 2000-10-27 | 2005-05-31 | Sony Computer Entertainment Inc. | Partition creating method and deleting method |
US7191440B2 (en) | 2001-08-15 | 2007-03-13 | Intel Corporation | Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor |
US6970990B2 (en) | 2002-09-30 | 2005-11-29 | International Business Machines Corporation | Virtual mode virtual memory manager method and apparatus |
US7073002B2 (en) | 2003-03-13 | 2006-07-04 | International Business Machines Corporation | Apparatus and method for controlling resource transfers using locks in a logically partitioned computer system |
US7328438B2 (en) | 2003-03-27 | 2008-02-05 | International Business Machines Corporation | Deallocation of computer data in a multithreaded computer |
US7076634B2 (en) | 2003-04-24 | 2006-07-11 | International Business Machines Corporation | Address translation manager and method for a logically partitioned computer system |
US7844801B2 (en) | 2003-07-31 | 2010-11-30 | Intel Corporation | Method and apparatus for affinity-guided speculative helper threads in chip multiprocessors |
US20050071841A1 (en) | 2003-09-30 | 2005-03-31 | Hoflehner Gerolf F. | Methods and apparatuses for thread management of mult-threading |
US7631307B2 (en) | 2003-12-05 | 2009-12-08 | Intel Corporation | User-programmable low-overhead multithreading |
US7558723B2 (en) | 2003-12-12 | 2009-07-07 | Microsoft Corporation | Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices |
US7412545B2 (en) | 2004-07-22 | 2008-08-12 | International Business Machines Corporation | Apparatus and method for updating I/O capability of a logically-partitioned computer system |
US20060047959A1 (en) | 2004-08-25 | 2006-03-02 | Microsoft Corporation | System and method for secure computing |
JP2006099332A (ja) | 2004-09-29 | 2006-04-13 | Sony Corp | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム |
US7296133B2 (en) | 2004-10-14 | 2007-11-13 | International Business Machines Corporation | Method, apparatus, and computer program product for dynamically tuning amount of physical processor capacity allocation in shared processor systems |
US20060090058A1 (en) | 2004-10-26 | 2006-04-27 | Chng Yongpeng | Method and data storage system for providing multiple partition support |
US20060095690A1 (en) | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method, and storage medium for shared key index space for memory regions |
US20060143417A1 (en) | 2004-12-23 | 2006-06-29 | David Poisner | Mechanism for restricting access of critical disk blocks |
US7685335B2 (en) | 2005-02-25 | 2010-03-23 | International Business Machines Corporation | Virtualized fibre channel adapter for a multi-processor data processing system |
US20060195663A1 (en) | 2005-02-25 | 2006-08-31 | International Business Machines Corporation | Virtualized I/O adapter for a multi-processor data processing system |
US20080307425A1 (en) | 2005-03-31 | 2008-12-11 | Shailendra Tripathi | Data Processing System and Method |
US7200704B2 (en) * | 2005-04-07 | 2007-04-03 | International Business Machines Corporation | Virtualization of an I/O adapter port using enablement and activation functions |
US20060250945A1 (en) | 2005-04-07 | 2006-11-09 | International Business Machines Corporation | Method and apparatus for automatically activating standby shared Ethernet adapter in a Virtual I/O server of a logically-partitioned data processing system |
US7725893B2 (en) | 2005-04-28 | 2010-05-25 | Sap Aktiengesellschaft | Platform independent replication |
US7299337B2 (en) | 2005-05-12 | 2007-11-20 | Traut Eric P | Enhanced shadow page table algorithms |
JP4322232B2 (ja) | 2005-06-14 | 2009-08-26 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム |
US20080126690A1 (en) | 2006-02-09 | 2008-05-29 | Rajan Suresh N | Memory module with memory stack |
US20060294288A1 (en) | 2005-06-24 | 2006-12-28 | Rohit Seth | System and method for using protection keys to emulate a large region identifier space |
US8327353B2 (en) | 2005-08-30 | 2012-12-04 | Microsoft Corporation | Hierarchical virtualization with a multi-level virtualization mechanism |
US7802081B2 (en) | 2005-09-30 | 2010-09-21 | Intel Corporation | Exposed sequestered partition apparatus, systems, and methods |
US8612970B2 (en) | 2005-11-30 | 2013-12-17 | Red Hat, Inc. | Purpose domain for low overhead virtual machines |
US8104034B2 (en) | 2005-11-30 | 2012-01-24 | Red Hat, Inc. | Purpose domain for in-kernel virtual machine for low overhead startup and low resource usage |
US20070180210A1 (en) | 2006-01-31 | 2007-08-02 | Seagate Technology Llc | Storage device for providing flexible protected access for security applications |
US7814307B2 (en) * | 2006-03-16 | 2010-10-12 | Microsoft Corporation | Fast booting a computing device to a specialized experience |
US8595744B2 (en) | 2006-05-18 | 2013-11-26 | Oracle America, Inc. | Anticipatory helper thread based code execution |
US8108670B2 (en) | 2006-07-13 | 2012-01-31 | Intel Corporation | Client apparatus and method with key manager |
US7546398B2 (en) | 2006-08-01 | 2009-06-09 | International Business Machines Corporation | System and method for distributing virtual input/output operations across multiple logical partitions |
US7814405B2 (en) * | 2006-11-28 | 2010-10-12 | International Business Machines Corporation | Method and system for automatic generation and updating of tags based on type of communication and content state in an activities oriented collaboration tool |
US8219988B2 (en) | 2007-08-02 | 2012-07-10 | International Business Machines Corporation | Partition adjunct for data processing system |
US8010763B2 (en) | 2007-08-02 | 2011-08-30 | International Business Machines Corporation | Hypervisor-enforced isolation of entities within a single logical partition's virtual address space |
-
2008
- 2008-04-28 US US12/111,020 patent/US8645974B2/en not_active Expired - Fee Related
-
2009
- 2009-04-23 AU AU2009242182A patent/AU2009242182B2/en not_active Ceased
- 2009-04-23 CA CA2708781A patent/CA2708781C/en active Active
- 2009-04-23 EP EP09738059A patent/EP2274675B1/en active Active
- 2009-04-23 CN CN200980115253.0A patent/CN102016800B/zh not_active Expired - Fee Related
- 2009-04-23 JP JP2011505512A patent/JP5005111B2/ja active Active
- 2009-04-23 KR KR1020107022915A patent/KR101354382B1/ko active IP Right Grant
- 2009-04-23 WO PCT/EP2009/054890 patent/WO2009133015A1/en active Application Filing
- 2009-04-23 AT AT09738059T patent/ATE540354T1/de active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064523A1 (en) * | 2004-09-17 | 2006-03-23 | Toshiomi Moriki | Control method for virtual machine |
US20080091855A1 (en) * | 2006-10-17 | 2008-04-17 | Moertl Daniel F | Apparatus and Method for Communicating with an I/O Adapter Using Cached Address Translations |
CN101165665A (zh) * | 2006-10-17 | 2008-04-23 | 国际商业机器公司 | 管理访问数据处理系统的存储器的地址转换的方法和装置 |
Non-Patent Citations (1)
Title |
---|
倪兰: "虚拟化技术已成IT投资重点应用风险轻松解决", 《通信世界B》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789395A (zh) * | 2011-05-14 | 2012-11-21 | 财团法人工业技术研究院 | 管理虚拟机器监视器中超级调用的装置与方法及其监视器 |
TWI454933B (zh) * | 2011-05-14 | 2014-10-01 | Ind Tech Res Inst | 管理一虛擬機器監視器中超級呼叫的裝置與方法以及虛擬機器監視器 |
CN102789395B (zh) * | 2011-05-14 | 2014-11-05 | 财团法人工业技术研究院 | 管理虚拟机器监视器中超级调用的装置与方法及其监视器 |
WO2012149912A1 (zh) * | 2011-12-31 | 2012-11-08 | 华为技术有限公司 | 虚拟化处理方法及相关装置和计算机系统 |
US8635616B2 (en) | 2011-12-31 | 2014-01-21 | Hauwei Technologies Co., Ltd. | Virtualization processing method and apparatuses, and computer system |
US9244715B2 (en) | 2011-12-31 | 2016-01-26 | Huawei Technologies Co., Ltd. | Virtualization processing method and apparatuses, and computer system |
CN104657305A (zh) * | 2013-11-22 | 2015-05-27 | 国际商业机器公司 | 用于实现支持sriov的sas适配器的动态虚拟化的方法和系统 |
CN104657305B (zh) * | 2013-11-22 | 2018-02-23 | 国际商业机器公司 | 支持sriov的sas适配器的动态虚拟化的方法和系统 |
CN111133413A (zh) * | 2017-10-06 | 2020-05-08 | 国际商业机器公司 | 利用单个cam端口的具有分区重排序队列的加载-存储单元 |
CN111133413B (zh) * | 2017-10-06 | 2023-09-29 | 国际商业机器公司 | 利用单个cam端口的具有分区重排序队列的加载-存储单元 |
CN111885170A (zh) * | 2020-07-23 | 2020-11-03 | 平安科技(深圳)有限公司 | 物联网控制系统的处理方法、系统、云端服务器及介质 |
CN117873405A (zh) * | 2024-03-11 | 2024-04-12 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2011519089A (ja) | 2011-06-30 |
US20090037941A1 (en) | 2009-02-05 |
CA2708781C (en) | 2014-07-29 |
KR20110010697A (ko) | 2011-02-07 |
CN102016800B (zh) | 2014-11-19 |
ATE540354T1 (de) | 2012-01-15 |
KR101354382B1 (ko) | 2014-01-22 |
EP2274675A1 (en) | 2011-01-19 |
CA2708781A1 (en) | 2009-11-03 |
WO2009133015A1 (en) | 2009-11-05 |
AU2009242182B2 (en) | 2014-04-03 |
US8645974B2 (en) | 2014-02-04 |
AU2009242182A1 (en) | 2009-11-05 |
JP5005111B2 (ja) | 2012-08-22 |
EP2274675B1 (en) | 2012-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102016800B (zh) | 将多逻辑分区对接到自虚拟输入/输出设备的方法和系统 | |
US8219989B2 (en) | Partition adjunct with non-native device driver for facilitating access to a physical input/output device | |
US10162655B2 (en) | Hypervisor context switching using TLB tags in processors having more than two hierarchical privilege levels | |
US10255090B2 (en) | Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels | |
US7467381B2 (en) | Resource partitioning and direct access utilizing hardware support for virtualization | |
US7779305B2 (en) | Method and system for recovery from an error in a computing device by transferring control from a virtual machine monitor to separate firmware instructions | |
JP5735070B2 (ja) | パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換 | |
US7743389B2 (en) | Selecting between pass-through and emulation in a virtual machine environment | |
US9672058B2 (en) | Reduced service partition virtualization system and method | |
US8225071B2 (en) | Accessing multiple page tables in a computer system | |
US8732698B2 (en) | Apparatus and method for expedited virtual machine (VM) launch in VM cluster environment | |
US9411654B2 (en) | Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation | |
US8683478B2 (en) | Best fit mapping of self-virtualizing input/output device virtual functions for mobile logical partitions | |
US20090172661A1 (en) | Method and system for establishing a robust virtualized environment | |
US20090228882A1 (en) | Method and apparatus for supporting heterogeneous virtualization | |
US20150261952A1 (en) | Service partition virtualization system and method having a secure platform | |
KR20070100367A (ko) | 하나의 가상 머신에서 다른 가상 머신으로 메모리를동적으로 재할당하기 위한 방법, 장치 및 시스템 | |
US10019275B2 (en) | Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels | |
CN103034524A (zh) | 半虚拟化的虚拟gpu | |
CN113626148B (zh) | 一种基于混合虚拟化的终端虚拟机生成系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141119 |
|
CF01 | Termination of patent right due to non-payment of annual fee |