针对虚拟化实施一致性加速器功能隔离的制作方法

文档序号:12287792阅读:143来源:国知局
针对虚拟化实施一致性加速器功能隔离的制作方法与工艺

本发明概括地涉及数据处理领域,尤其涉及一种用于针对在计算机系统中的输入/输出(IO)适配器中的虚拟化实施一致性(coherent)加速器功能隔离的方法、系统和计算机程序产品。



背景技术:

一致性加速器可以在单个操作系统映像的范围内被使用——无论该操作系统(OS)是被逻辑分区的服务器上的多个操作系统之一或是未分区系统的唯一操作系统。然而,所期望的是,使得一致性加速器能够跨越被逻辑分区的系统上的多个操作系统映像而被虚拟化或共享。实现共享的基本要求是:外围组件快速互连(PCIE或PCI-Express)事务——例如包括直接存储器存取(DMA)、消息信号中断、存储器映射的输入/输出(IO)和错误事件——在OS映像和加速器功能之间被隔离。

PCI-Express(PCIE)通过使用单根输入输出虚拟化(SRIOV)实现对PCIE设备的子功能进行虚拟化。单根输入/输出(IO)虚拟化(SRIOV)是PCI标准,其提供一种为PCI-Express(PCIE)产业内的输入/输出(I/O)虚拟化构建块的适配器技术。SRIOV架构将资源封装在虚拟功能(VF)后的PCI-Express输入输出适配器内,虚拟功能在许多方面操作为常规的PCI-Express设备。通过使用转换表,来完成VF彼此之间以及VF与各自被分配了VF的那些操作系统映像之外的操作系统映像之间的隔离,该转换表比如将处理器指令地址转换成PCI-Express存储器地址的硬件页表,或者将PCI-Express设备存储器读/写地址转换成系统存储器地址的存储器映射的输入/输出(MMIO)和DMA转换表。

通过使用传统的PCI或SRIOV设备,MMIO和DMA域与具有总线/设备/功能(请求者ID或RID)关联的PCI功能相关联。另外,通过将特别的一组MSI矢量授权给特别的MSI或DMA地址的操作系统(OS)或管理程序,DMA转换可以包括消息信号中断(MSI)、(DMA写)隔离。例如,IBM POWER系统输入输出(IO)设备架构、用于PCI-Express的(IODA)以及Inter VT-D架构例示了这些技术。

IBM POWER系统IODA提供了一种方法,其通过使用POWER PCI-Express根复合体或PCI-Express主机桥(PHB)内的表和RID,将MMIO、DMA和MSI地址与RID相关联,以帮助将涉及PCI-Express总线上的MMIO、DMA或MSI事务的错误与特别的PCI-Express功能隔离开来。在本领域内应当理解,PCI主机桥(PHB)是PCI根复合体内的元件,并且在特殊设计中可以整个是根复合体的实例。

然而,SRIOV的若干方面复杂化了一致性加速器功能的设计,或者可能与加速器操作不兼容。例如,处理器内的单元与加速器通信,以同步可能共同地保存在加速器自身中的存储器高速缓存线的状态。虽然此通信可以使用PCI-Express存储器读/写事务,以传递高速缓存线更新或是从加速器取回已改变的高速缓存线,但是使用PCI-Express存储器读/写事务对高速缓存线的参考可以根据系统存储器被构建,而不具有将这些与SRIOV类型的虚拟功能(VF)直接相关的能力。

存在对这样一种有效的方法和装置的需求,期望在无需使用诸如SRIOV之类的其他PCI-Express虚拟机制的情况下,该方法和装置实现针对虚拟化的一致性加速器功能隔离比如以实现在PCI-Express事务级的错误、MMIO、DMA、MSI的隔离。存在如下需求:期望在不引入额外且不必要的SRIOV的概念的情况下,降低处理器和加速器的设计复杂度以使得它们中的任一个能使用简单的PCI-Express存储器读/写事务。



技术实现要素:

本发明的主要方面是提供一种用于针对虚拟化实施一致性加速器功能隔离的方法、系统和计算机程序产品。本发明的其他重要方面是提供这样的方法、系统和计算机程序产品,而基本没有负面影响并且克服了现有技术布局的许多缺点。

简言之,提供了用于在计算机系统中的输入/输出(IO)适配器中针对虚拟化实施一致性加速器功能隔离的方法、系统和计算机程序产品。一致性加速器提供加速器功能单元(AFU),每个AFU适于独立于其他AFU进行操作,以执行可以在处理器上的应用软件内实施的计算任务。AFU能够访问绑定到该应用软件的系统存储器,并且适于制作AFU中的AFU存储器-高速缓存内的该存储器的副本。作为这个存储器一致性域的一部分,AFU存储器-高速缓存和处理器存储器-高速缓存中的每一个都适于知晓通常在AFU的存储器-高速缓存或处理器的存储器-高速缓存中的数据变化、以及在其相应高速缓存包含有副本的存储器中变化的数据。

根据本发明的特征,为了保持AFU存储器-高速缓存和处理器存储器-高速缓存之间的同步,处理器和加速器将变化传递到各个存储器区域,例如表示为高速缓存线。

根据本发明的特征,处理器和加速器对简单的PCI-Express存储器读/写事务的使用在使用PCI-Express互连时被实现,处理器和加速器的设计复杂度有利地被降低,且无需额外且不必要的SRIOV的概念。一致性加速器使用适配器内的PCI服务层(PSL)端点功能以影响与AFU相关联的PCI事务。

根据本发明的特征,支持PCI-Express接口的管理程序适配器驱动器将每个AFU与PCI主机桥(PHB)隔离设施相关联。

根据本发明的特征,当使用每个AFU与处理器和存储器之间的PCI-Express互连时,处理器和AFU使用PCI-Express存储器读/写操作。AFU与PCI-Express请求者ID(RID)相关联,以用于在影响AFUDMA的往来于系统存储器的PCI-Express存储器读/写操作期间识别该AFU。为了将处理器MMIO地址与AFU的PHB相关联的目的,AFU与RID相关联。

根据本发明的特征,通过使用系统存储器、AFU或其组合内的命令/响应队列,执行任务的请求和完成该任务的结果在操作系统(OS)内运行的应用和AFU之间交换。个体AFU响应或者发起PCI-Express存储器循环,并且加速器适配器PSL执行对应于那些存储器读/写操作的PCI-Express事务。

根据本发明的特征,在操作系统内,AFU被组织并且可选地以它们与PCI-Express总线或功能完全不关联的方式被操作系统(OS)操作为特别类型的存储器映射的AFU设备。

根据本发明的特征,PCI-Express PHB可选地被用来将存储器映射的输入输出(MMIO)、直接存储器存取(DMA)、消息信号中断(MSI)地址范围与PCI-Express RID(相关的标识符)相关联,从而将这些地址范围与未被配置且在PCI-Express总线上操作为端点功能的个体加速器功能单元(AFU)相关联。

根据本发明的特征,管理程序或者作为整体支持PCI-Express总线并且管理一致性加速器的其他系统配置与管理软件或固件,检测并恢复涉及PSL或AFU的错误,而无需终止任一OS来修复其相应的AFU的操作,且AFU共享PCI-Express总线上的共同PSL端点功能。

根据本发明的特征,支持PCI-Express总线的管理程序或其他系统配置与管理软件或固件将AFU与PHB隔离设施相关联。

附图说明

可以通过附图中说明的本发明的优选实施例的以下详细描述,最佳地理解本发明连同上述和其他目的和优点,其中:

图1根据优选实施例示出一个示例系统,其用于在具有单个DBF(总线/设备/功能)的输入/输出(IO)适配器中针对虚拟化实施一致性加速器功能隔离;

图2根据优选实施例示出另一个示例系统,其用于在具有多个BDF的输入/输出(IO)适配器中针对虚拟化而实施增强的一致性加速器功能隔离;

图3根据优选实施例并通过与现有技术比较而示出示例操作特征,其用于在图1和图2的输入/输出(IO)适配器中针对虚拟化实施一致性加速器功能隔离;

图4根据优选实施例示出示例操作特征,其用于在图1的输入/输出(IO)适配器中针对虚拟化实施一致性加速器功能隔离;

图5根据优选实施例示出示例操作特征,其用于在图2的输入/输出(IO)适配器中针对虚拟化实施一致性加速器功能隔离;

图6、图7和图8是根据优选实施例的流程图,其示出用于实施一致性加速器功能隔离的图1和图2的系统的示例系统操作;以及

图9是根据优选实施例示出一种计算机程序产品的框图。

具体实施方式

在本发明实施例的下文详细描述中对附图进行参考,附图示出本发明可以借以实践的示例实施例。应当理解,在不背离本发明范围的前提下,可以使用其他实施例并且可以做出结构变化。

这里所使用的术语仅为了描述特定实施例的目的,并且不旨在限制本发明。如这里所使用的,除非上下文以其他方式明确地指出,单数形式“一”,“一种(一个)”和“该”旨在也包括复数的形式。将进一步理解,当在本说明书中使用术语“包含”和/或“包括”时,指定所述的特征、整数、步骤、操作、单元和/或组件的存在,但不排除一个或多个其他的特征、整数、步骤、操作、单元和/或组件的存在或增加和/或其一组的存在或增加。

根据本发明的特征,提供了一种用于在输入/输出(IO)适配器中针对虚拟化实施一致性加速器功能隔离的方法、系统和计算机程序产品。

现在参照附图,在图1中根据优选实施例示出了由参考标记100概括地指明的示例计算机系统,该计算机系统用于在输入/输出(IO)适配器中针对虚拟化实施一致性加速器功能隔离。计算机系统100包括一个或多个处理器——比如由系统总线106耦合到存储器108的处理器#1 102到处理器#N 104、或中央处理单元(CPU)102、104、相应的主机操作系统(OS)110、112,以及管理程序适配器驱动器114。管理程序适配器驱动器114是系统固件的一部分,并且管理对每个操作系统110、112的资源分配。

计算机系统100可以在单个操作系统映像的范围内被使用——无论操作系统(OS)是被逻辑分区的服务器上的多个操作系统之一或是未分区系统的唯一操作系统。计算机系统100使得一致性加速器能够跨被逻辑分区的系统上的多个操作系统(OS)映像,而被共享或虚拟化。

根据优选实施例,计算机系统100包括提供一致性加速器PE(可分区端点)支持的处理器主机桥或PCIE主机桥(PHB)120和输入/输出(I/O)集线器。PHB 120包括被耦合到管理程序适配器驱动器114的适配器PE 122、以及被耦合到每个相应的主机操作系统(OS)110、112的AFU PE 124。PHB 120包括配备了AFU PE 124的隔离设施126。

计算机系统100包括向一致性加速器提供事务层功能的输入/输出(I/O)适配器130,其例如包括PCI服务层(PSL)132、以及多个AFU 1-3、134、136、138,其中PSL 132以及AFU 1-3,134、136、138中的每一个被耦合到适配器PE 122。AFU 1-3,134、136、138是执行具体应用任务的加速器内的逻辑单元。

根据本发明的特征,PCI-Express PHB 120内的隔离设施126被使用,特别是,其包括错误隔离而无需使用PCI-Express端点功能。本发明的方法从PCI-Express检测并恢复涉及各个AFU(其中AFU作为集体)和PSL的错误状况。操作系统和应用通过与错误恢复方法进行交互而被使得能够继续起作用,因此不需要重启操作系统,并且因此即使在加速器设备在单个PCI-Express端点功能处被共享的情况下,各个操作系统也可以分别恢复它们相应AFU的操作。

在特定实施例中,通过使用系统存储器108、AFU或其组合内的命令/响应队列,在OS 110、或OS 112内运行的应用以及各个AFU1-3,134、136、138之间交换执行任务的请求以及完成该任务的结果。各个AFU 1-3,134、136、138中的每一个响应于或是发起PCI-Express存储器循环,并且PSL 132执行对应于那些存储器读/写操作的PCI-Express事务。然而,AFU 1-3、134、136、138它们自己不是PCI-Express端点设备或功能,并且可能不被操作系统识别为PCI-Express设备。而是,在相应的操作系统中,AFU被OS 110或OS 112识别,并很可能以它们与PCI-Express总线或功能完全不相关联的方式操作为特定类型的存储器映射的AFU设备。

计算机系统100用额外的AFU PE 124实现一致性加速器适配器功能,该额外的AFU PE 124与所有AFU 1-3、134、136、138共同关联。主机操作系统(OS)MMIO的活动由AFU PE 124管控。AFU PE124可以被冻结,以使得主机操作系统110、112被阻止访问适配器130。AFU PE 124允许管理程序114完成恢复或保持动作而没有主机操作系统(OS)的用户影响适配器130的可能性。适配器130的事务——与PSL 132相关联的那些事务以及与AFU-3,134、136、138相关联的那些事务——都使用适配器PE 122。来自适配器PE 122的任何故障仍然通过使用一致性加速器适配器130来影响所有操作系统(OS)分区。

计算机系统100以足以理解本发明的简化形式被示出。被示出的计算机系统100并非旨在暗示架构或功能上的限制。本发明可以与各种硬件实施和系统以及各种其他的内部硬件设备一起被使用。

参照图2,其根据优选实施例示出了由参考标记200概括地指明的另一个示例系统,该示例系统用于在输入/输出(IO)适配器230中针对虚拟化实施一致性加速器功能隔离。类似地,计算机系统200包括一个或多个处理器——比如由系统总线106耦合到存储器108的处理器#1 102到处理器#N 104、或中央处理单元(CPU)102、104,相应的主机操作系统(OS)110、112、以及管理程序适配器驱动器114。

根据优选实施例,计算机系统200包括提供一致性加速器PE(可分区端点)支持的处理器主机桥或PCIE主机桥(PHB)220以及输入/输出(I/O)集线器。PHB 220包括被耦合到管理程序适配器驱动器114的适配器PE 222以及多个AFU PE 1-3 224、226、228,其中AFU PE 1-2 224、226被耦合到主机操作系统(OS)110,而AFU PE3 228被耦合到主机操作系统(OS)112。PHB 220包括配备了AFU PE1-3 224、226、228的隔离设施226。

计算机系统200包括向一致性加速器提供事务层功能的输入/输出(I/O)适配器230,其例如包括提供符合PCIE端点功能的所有功能和设施的PCI服务层(PSL)232和多个AFU 1-3 234、236、238,其中PSL 232被耦合到适配器PE 222,而AFU 1-3 234、236、238中的每一个被耦合到相应的AFU PE 1-3 224、226、228。

计算机系统200利用各自与相应AFU 1-3 234、236、238相关联的额外的AFU PE 1-3 224、226、228,实现一致性加速器适配器的增强功能。当适配器230进行DMA事务时,它例如使用备选的路由ID解释(ARI)技术来将执行该事务的AFU 1-3 234、236、238相应之一编码到DMA分组中。这允许将故障向下隔离到AFU 1-3 234、236、238中的单独一个,同时仍然只实施了具有单个配置空间的单个PCI功能。随着适配器230上的AFU的数量的增长,这是一个越来越重要并且有价值的特征。

主机操作系统(OS)MMIO的活动由相应的AFU PE 1-3 224、226、229管控。每个相应的AFU PE 1-3 224、226、228能够被有利地冻结,以使得主机操作系统110、112被阻止访问适配器230。相应的AFU PE1-3 224、226、228中的每一个允许管理程序114完成恢复或保持动作,而不存在主机操作系统用户影响适配器230的可能性。与适配器230的PSL 232相关联的事务使用适配器PE 222。来自于适配器PE222的任何故障仍然通过使用一致性加速器适配器230来影响所有的操作系统分区。

根据本发明的特征,PCI-Express PHB 120装置被用来将存储器映射的输入输出(MMIO)、直接存储器存取(DMA)、消息信号中断(MSI)地址范围与PCI-Express RID(相关标识符)相关联,以便将这些地址范围与没有另外被配置并且在PCI-Express总线上操作为端点功能的各个加速器功能单元AFU 1-3 234、236、238中的每一个关联起来。

根据本发明的特征,支持PCI-Express接口的管理程序适配器驱动器114将AFU 1-3 234、236、238中的每一个与PHB隔离设施226相关联。将一致性加速器作为整体进行管理的管理程序适配器驱动器114检测并恢复涉及PSL 232或AFU 1-3,234、236、238的错误,而无需终止任一操作系统(OS)110、112以修复其相应的AFU的操作,并且AFU共享PCI-Express总线上的共同PCI服务层(PSL)端点功能。支持PCI-Express总线的管理程序适配器驱动器114将AFU与PHB隔离设施226相关联。

根据本发明的特征,一致性加速器RID的PSL 232与PCI-ExpressPHB 220的错误状态设施226、MMIO、DMA和MSI相关联,并且PCI-Express RID与AFU的集体——AFU 1-3 234、236、238相关联,进一步地将驻留在相应的PSL 232后面的AFU 1-3 234、236、238与PCI-Express PHB 220相关联,而AFU RID自身无需是单个PCI-Express端点或SRIOV虚拟功能并具有这类功能的所有设施和行为。

根据本发明的特征,当使用AFU 1-3 234、236、238中的每个AFU与处理器102、104和存储器108之间的PCI-Express互连时,处理器和AFU使用PCI-Express存储器读/写操作。AFU 1-3 234、236、238的AFU与PCI-Express请求者ID(RID)相关联,以用于在PCI-Express存储器读/写操作的过程中识别该AFU。

参照图3,其根据优选实施例并通过与现有技术比较示出了由参考标记300概括地指明的示例操作特征,其用于在图1的系统100中的输入/输出(IO)适配器130和图2的系统200中的输入/输出(IO)适配器230中针对虚拟化实施一致性加速器功能隔离,而不依靠PCIESRIOV的设施或操作。

多个特征302被示出以用于比较已知的现有技术与图1的系统100中的IO适配器130和图2的系统200中的IO适配器230。一个端点功能304被包含在已知的现有技术、系统100中的IO适配器130和系统200的IO适配器230中。单个配置空间区域306被包含在已知的现有技术、系统100的IO适配器130和系统200的IO适配器230中。额外的PCIE RID 308被包含在系统200中的IO适配器230中,而在现有技术和系统100中的IO适配器130中不包含额外的PCIERID 308。单个适配器PE 310被包含在已知的现有技术、系统100的IO适配器130以及系统200的IO适配器230中。一个AFU PE 312被包含在系统100中的IO适配器130中,并且每个AFU一个的AFUPE 312被包含在系统200中的IO适配器230中,已知的现有技术中不包含AFU PE 312。错误恢复314在已知的现有技术中是不可能的——这需要主机操作系统(OS)重启。错误恢复314在系统100中的IO适配器130中是可能的——其影响所有的主机操作系统实例。改进的错误恢复314在系统200中的IO适配器230中是可能的——其具有更细粒度且影响到单个主机OS实例。

参照图4,其根据优选实施例示出了由参考标记400概括地指明的示例操作特征,其用于在图1的系统100中的输入/输出(IO)适配器130中针对虚拟化实施一致性加速器功能隔离,而不依靠PCIESRIOV的设施或操作。示出了多个业务类型402,以及被使用的相应PE 404、错误动作406和错误影响408。对于由管理程序适配器驱动器发起的MMIO的业务类型402,被使用的PE 404是适配器PE,错误动作406致使PHB隔离设施126冻结适配器PE加AFU PE,并且错误影响408包括管理程序适配器驱动器和所有的主机OS实例。对于由主机OS发起的、到特定AFU n的MMIO的业务类型402,被使用的PE 404是AFU PE,错误动作406致使PHB隔离设施126冻结AFU PE,并且错误影响408包括所有的主机OS实例。对于由适配器PSL发起的业务类型402,被使用的PE 404是适配器PE,错误动作406致使PHB隔离设施126冻结适配器PE和AFU PE,并且错误影响408包括管理程序适配器驱动器和所有的主机OS实例。对于由特定AFU n发起的DMA的业务类型402,被使用的PE 404是适配器PE,错误406冻结适配器PE和AFU PE,并且错误影响408包括管理程序适配器驱动器和所有的主机操作系统(OS)实例。

参照图5,其根据优选实施例示出由参考标记500概括地指明的示例操作特征,其用于在图2的系统200中的输入/输出(IO)适配器230中针对虚拟化实施一致性加速器功能隔离。示出了多个业务类型502,以及相应的被使用的PE 504、错误动作506和错误影响508。对于由管理程序适配器驱动器发起的MMIO的业务类型502,被使用的PE 504是适配器PE,错误动作506致使PHB隔离设施226冻结适配器PE加AFU PE,并且错误影响508包括管理程序适配器驱动器和所有的主机OS实例。对于由主机OS发起的、到特定的AFU n的业务类型502,被使用的PE 504是特定的AFU PE n,错误动作506致使PHB隔离设施226冻结AFU PE n,并且错误影响508包括单个主机OS实例。对于由适配器PSL发起的DMA的业务类型506,被使用的PE 504是适配器PE,错误动作506致使PHB隔离设施226冻结适配器PE和AFU PE,并且错误影响508包括管理程序适配器驱动器和所有的主机OS实例。对于由特定AFU n发起的DMA的业务类型502,被使用的PE 504是AFU PE n,错误动作506致使PHB隔离设施226冻结AFU PE n,并且错误影响508包括单个主机OS实例。

图6、图7和图8是根据优选实施例示出用于实施一致性加速器功能隔离的图1和图2的系统的示例系统的操作的流程图。

参照图6,示出了图1和图2的系统的示例高级系统操作,如方框600中所示,该操作开始于PHB或根复合体硬件或管理程序适配器驱动器检测故障并且冻结适配器PE。如方框602中所示,与适配器PE相关联的其他PE被冻结——包括所有AFU PE。在PHB硬件检测到故障的情况下,如方框604中所示,硬件向管理程序通知被冻结的PE。如在方框606中所示,管理程序向PE拥有者通知被冻结的PE——包括用于每个AFU的适配器驱动器和主机操作系统(OS)。如方框608中所示,适配器驱动器和每个主机操作系统异步地开始恢复。

也参照图7,其中示出了图1和图2的系统的示例管理程序驱动器操作,如方框700中所示,该操作从适配器驱动器接收错误通知时开始。如方框702中所示,适配器驱动器开始PE恢复。如方框704中所示,适配器驱动器解冻适配器PE——其他PE保持被冻结,收集错误数据,并且开始恢复。如方框706中所示,适配器驱动器恢复适配器并且将该适配器修复到缺省状态。如方框708中所示,适配器驱动器执行对适配器的AFU配置。如方框710中所示,适配器驱动器记录错误并且将由适配器驱动器记录的错误的PCI错误记录标识符(PLID)传递给管理程序。如方框712中所示,适配器驱动器给予管理程序许可,以解冻一个或多个AFU PE并且继续正常操作。

参照图8,示出了图1和图2的系统的示例主机OS操作,如方框800所示,该操作从主机OS接收AFU错误的通知开始。如方框802中所示,主机OS开始恢复。如方框804中所示,主机OS循环尝试解冻AFU PE,并且该解冻直到适配器驱动器完成恢复才成功。如方框806中所示,适配器驱动器完成恢复。如方框808中所示,主机OS解冻AFU PE,取回错误数据并且开始恢复。如方框810中所示,主机OS完成恢复,并且记录错误数据。如方框812中所示,正常AFU操作继续。

现在参照图9,示出了本发明的制品或计算机程序产品900。计算机程序产品900被有形地体现为非瞬时性计算机可读存储介质——包括诸如软盘、以光学读取压缩盘或CD-ROM形式的高容量只读存储器、磁带之类的记录介质——或其他类似的计算机程序产品。记录介质902在介质902上存储程序装置904、906、908和910,以执行用于针对图1的系统100或图2的系统200中的优选实施例的输入/输出(IO)适配器130、230中的虚拟化实施一致性加速器功能隔离。

由所记录的程序装置909、906、908和910定义的一个或多个相互关联的模块的程序指令序列或逻辑集引导计算机系统900,用于针对优选实施例的输入/输出(IO)适配器130、230中的虚拟化实施一致性加速器功能隔离。

虽然本发明已经参考在附图中所示实施例的细节被描述,但是这些细节不旨在限制如所附权利要求中所要求的本发明的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1