将消息信号中断转换为对客户操作系统的i/o适配器事件通知的制作方法

文档序号:6352187阅读:148来源:国知局
专利名称:将消息信号中断转换为对客户操作系统的i/o适配器事件通知的制作方法
技术领域
本发明一般涉及计算环境中的中断处理,且更具体而言,涉及处理由计算环境中的适配器产生的中断。
背景技术
消息信号中断(MSI)是适配器功能例如外围组件互连(PCI)功能用来产生中央处理器(CPU)中断、以通知操作系统发生了事件或存在某种状态的一种方法。MSI是对每个设备上具有专用中断引脚的一种替代。当适配器功能被配置为使用MSI时,该功能通过执行将指定字节数的数据写入到特殊地址的MSI写操作来请求中断。该特殊地址和唯一数据值的组合被称为MSI向量。 某些适配器功能仅支持一个MSI向量;其他适配器功能支持多个MSI向量。对于支持多个MSI向量的功能,同一特殊地址被使用而具有不同的数据值。在很多计算平台上,设备驱动器将其自己配置为与MSI向量关联的中断处理器。这有效地将MSI向量与CPU中断向量中的项相关联。因此,当适配器功能支持多个MSI向量并被配置为使用多个MSI向量时,它消耗了 CPU中断向量中相应数量的项。Easton 等的在 2007 年 11 月 22 日公开的题为 “Virtualization ofInfinibandHost Channel Adapter Interruptions”(无限带宽主机通道适配器中断的虚拟化)的美国公开号2007/0271559A1描述了一种方法、系统、程序产品和计算机数据结构,其用于提供两层的服务器虚拟化。第一管理程序(hypervisor)使得多个逻辑分区能共享一组资源并提供第一层虚拟化。第二管理程序使得多个独立的虚拟机能共享被分配被单个逻辑分区的资源并提供第二层虚拟化。用于所述单个逻辑分区内的所有虚拟机的所有事件被分组(group)为单个分区拥有的事件队列,以用于从该单个逻辑分区的共享资源接收事件通知。中断请求被信号通知以用于来自分区拥有的事件队列的分组事件,以便由机器将分组事件从分区拥有的事件队列多路分解到在每台虚拟机上分配的单独的虚拟化事件队列。Nelson 等的 1996 年 10 月 I 日公开的题为“PCT to ISA InterruptProtocolConverter and SelectiOon Mechanism” (PCI到ISA中断协议转换器和选择机制)的公开号WO 96/00940A1描述了一种中断处理机制,其用于转换符合次级总线标准中断协议的PCI代理中断(36-38)。PCI代理中断(36-38)被可编程逻辑(50)处理,以将符合PCI的中断转换为例如符合ISA总线标准的中断(40),以便由实现PCI总线(30)和ISA总线(40)两者的计算机系统来处理。可编程寄存器(48)提供了响应于PCI代理中断(36-38),选择将由可编程逻辑(50)生成哪个ISA中断。Dayan 等的 2004 年 8 月 3 日发布的题为 “Enabling a Docking Stationfor ISAAdapters”(启用用于ISA适配器的扩展玛(docking station))的美国专利号6,772,264描述了和计算机系统一起使用的扩展坞系统,该计算机系统包括外部可访问的PC卡接口,该PC卡接口用于将符合PC卡标准的信号传输到扩展玛外壳(enclosure)。扩展玛外壳包括PC卡连接器,该PC卡连接器连接到计算机系统的PC卡接口并在计算机系统的PC卡接口和扩展坞外壳之间传递接口信号。扩展坞外壳还包括符合ISA总线标准的ISA总线结构。此外,扩展坞外壳包含转换逻辑,该转换逻辑被连接,以通过PC卡连接器从计算机系统接收信号,并将这些接收到的信号转换为用于操作ISA总线结构的信号。计算机系统包括转换逻辑,该转换逻辑被连接,以通过PC卡连接器从扩展坞外壳接收信号,并将这些信号转换为系统中断请求。通过这种方式,一个或多个ISA适配器可在扩展坞外壳中被使用以仿真(emulate) PC卡接口上的一个或多个PC卡功能。

发明内容
根据本发明的方面,提供了促进对来自适配器的中断请求进行管理的能力。通过提供如权利要求I所述的方法以及用于为计算机环境的客户(guest)提供中断的计算机程序产品,克服了现有技术的缺陷并提供了优势。


作为本说明书的结尾处的权利要求的例子,本发明的一个或多个方面被特别指出和明确要求。根据下列详细描述并结合附图,本发明的上述和其他目标、特征和优势将变得明显,在附图中图IA示出了包含并使用本发明的一个或多个方面的计算环境的一个实施例;图IB示出了根据本发明的方面的中央处理复合体(complex)的一个实施例,其中主机执行一个或多个客户;图2A描述了根据本发明的方面的图I中的系统存储器和I/O集线器的更多细节的一个实施例;图2B示出了根据本发明的方面的图I中的系统存储器和I/O集线器的更多细节的另一实施例;图2C示出了根据本发明的方面使用的客户适配器中断表(GAIT)中的项的一个实施例;图2D示出了根据本发明的方面使用的适配器中断转发表(AIFT)中的项的一个实施例;图3A-3B示出了根据本发明的方面的适配器中断位向量的分配的例子;图3C-3D示出了根据本发明的方面的适配器中断概要位的分配的例子;图4示出了根据本发明的方面的将在初始化时被执行、来配置适配器功能以用于I/o适配器事件通知的逻辑的概览的一个实施例;图5示出了根据本发明的方面的执行注册使得消息信号中断(MSI)能转换为I/O适配器事件通知的逻辑的一个实施例;图6A示出了根据本发明的方面的将MSI请求转换为I/O适配器事件通知的逻辑的一个实施例;图6B示出了根据本发明的方面的将I/O适配器事件通知呈现给操作系统的逻辑的一个实施例;图7A示出了根据本发明的方面在主机执行客户的环境中执行主机初始化的逻辑的一个实施例;图7B示出了根据本发明的方面执行客户初始化的逻辑的一个实施例;图7C示出了根据本发明的方面使用的设置中断控制指令的一个实施例;图7D-7F示出了根据本发明的方面的图7C中的设置中断控制指令所使用的字段的内容的例子;图7G示出了根据本发明的方面使用的适配器中断参数块(AIPB)的一个例子;图8示出了根据本发明的方面在主机执行客户的计算环境中执行注册的逻辑的一个实施例;图9A示出了根据本发明的方面将MSI请求转换为将被呈现给客户的I/O适配器 事件通知的逻辑的一个实施例;图9B示出了根据本发明的方面响应于适配器中断请求执行的逻辑的一个实施例;图9C示出了根据本发明的方面处理适配器中断指示器(indicator)的逻辑的一个实施例;图IOA示出了根据本发明的方面使用的修改PCI功能控制指令的一个实施例;图IOB示出了根据本发明的方面由图IOA中的修改PCI功能控制指令所使用的字段的一个实施例;图IOC示出了根据本发明的方面由图IOA中的修改PCI功能控制指令所使用的另一字段的一个实施例;图IOD示出了根据本发明的方面使用的功能信息块(FIB)的内容的一个实施例;图11示出了根据本发明的一方面的修改PCI功能控制的逻辑的概况的一个实施例;图12示出了根据本发明的一方面,与由修改PCI功能控制指令指定的注册适配器中断操作有关的逻辑的一个实施例;图13示出了根据本发明的一方面,与由修改PCI功能控制指令指定的注销适配器中断操作有关的逻辑的一个实施例;图14A示出了根据本发明的方面使用的调用逻辑处理器指令的一个实施例;图14B示出了根据本发明的方面的由图14A的调用逻辑处理器指令用于列表操作的请求块的一个实施例;图14C示出了根据本发明的方面的用于图14B中的列表操作的响应块的一个实施例;图14D示出了根据本发明的方面使用的功能列表项的一个实施例;图15A示出了根据本发明的方面的由图14A的调用逻辑处理器指令用于查询功能操作的请求块的一个实施例;图15B示出了根据本发明的方面的用于图15A中的查询功能操作的响应块的一个实施例;图16A示出了根据本发明的方面的由图14A中的调用逻辑处理器指令用于查询组操作的请求块的一个实施例;图16B示出了根据本发明的方面的用于图16A中的查询组操作的响应块的一个实施例;图17示出了包含本发明的一个或多个方面的计算机程序产品的一个实施例;图18示出了包含并使用本发明的一个或多个方面的主计算机系统的一个实施例;图19示出了包含并使用本发明的一个或多个方面的计算机系统的另一实施例;图20示出了包括包含并使用本发明的一个或多个方面的计算机网络的计算机系统的另一例子;图21示出了包含并使用本发明的一个或多个方面的计算机系统的多个元件的一个实施例;图22A示出了包含并使用本发明的一个或多个方面的图21中的计算机系统的执 行单元的一个实施例;图22B示出了包含并使用本发明的一个或多个方面的图21中的计算机系统的分支单元的一个实施例;图22C示出了包含并使用本发明的一个或多个方面的图21中的计算机系统的加载/存储单元的一个实施例;图23示出了包含并使用根据本发明的一个或多个方面的仿真(emulated)主计算机系统的一个实施例。
具体实施例方式根据本发明的方面,提供了将消息信号中断(MSI)请求转换为输入/输出(I/O)适配器事件通知的能力。MSI被适配器请求并被转换为适配器消息通知,其中一个或多个特定指示器(indicator)被设置,并生成向操作系统(或其他软件例如其他程序等。如这里所使用的,术语操作系统包括操作系统设备驱动器)呈现中断的请求。在一个特殊的例子中,每个MSI请求不会引起到操作系统的中断请求,而是一个中断请求包含多个MSI请求。在一个特定的例子中,操作系统是在主机下执行的客户,例如客户操作系统。在一个例子中,客户是可调页(pageable)存储模式客户。在一个例子中,在Z/Architeeture 中,可调页客户是由开始解释执行(SiE)指令在解释级别2解释执行的。例如,逻辑分区(LPAR)管理程序(hypervisor)执行SIE指令,以开始物理固定存储器中的逻辑分区。如果Z/VM 是该逻辑分区中的操作系统,它发起SIE指令,以在其V=V (虚拟)存储器中执行客户(虚拟)机。因此,LPAR管理程序使用级别-1SIE,且Z/VM 管理程序使用级别-2SIE。如这里所使用的,术语“适配器”包括任意类型的适配器(例如存储适配器、处理适配器、网络适配器、加密适配器、PCI适配器、其他类型的输入/输出适配器等)。在一个实施例中,一适配器包括一个适配器功能。但是,在其他实施例中,一适配器可包括多个适配器功能。本发明的一个或多个方面可以应用,不管一适配器包含一个适配器功能或多个适配器功能。此外,在这里展示的例子中,适配器是与适配器功能(例如PCI功能)可互换地使用的,除非另外说明。参考图I描述包含并使用本发明的一个或多个方面的计算环境的一个实施例。在一个例子中,计算环境100是由国际商业机器公司提供的Systemz 服务器。Systemz 服务器是基于由国际商业机器公司提供的z/Arch itecture 。关于z/Architecture
的细节在IBM出版物 中描述,该出版物的标题是“z/Architecture Principles ofOperation” (z/Architecture 操作原理),IBM 出版号 SA22-7832-07,2009 年 2 月。IBM > System 2@和2/人代丨1泡<^1丨丨1 是位于纽约州阿蒙克的国际商业机器公司的
注册商标。在此使用的其他名字可以是国际商业机器公司或其他公司的注册商标、商标或产品名称。在一个例子中,计算环境100包括经由存储控制器106耦合到系统存储器104(也称为主存储器)的一个或多个中央处理单元(CPU)102。为了访问系统存储器104,中央处理单元102发出包括被用于访问系统存储器的地址的读或写请求。包括在请求中的地址典型地不能直接用于访问系统存储器,且因此,其被转换为可直接用于访问系统存储器的地址。所述地址经由转换机制(XLATE)108而被转换。例如,使用例如动态地址转换(DAT),将地址从虚拟地址转换为真实或绝对的地址。 包括(必要时转换的)地址的请求被存储控制器106接收。在一个例子中,存储控制器106包含硬件且被用于仲裁对系统存储器的访问并维持存储器的一致性。该仲裁针对从CPU 102接收的请求以及从一个或多个适配器110接收的请求而执行。与中央处理单元类似,适配器向系统存储器104发出请求以获得对系统存储器的访问。在一个例子中,适配器110是外围组件互连(PCI)或PCI Express (PCIe)适配器,其包括一个或多个PCI功能。PCI功能发出请求,该请求经由一个或多个交换器(例如,PCIe交换器)114被路由到输入/输出集线器112 (例如,PCI集线器)。在一个例子中,输入/输出集线器包括含有一个或多个状态机的硬件。输入/输出集线器包括例如根复合体(root complex) 116,其从交换机接收请求。该请求包括输入/输出地址,该输入/输出地址被用来例如执行直接存储器访问(DMA)或请求消息信号中断(MSI)。该地址被提供给地址转换和保护单元118,该地址转换和保护单元访问用于DMA或MSI请求的信息。对于DMA操作,地址转换和保护单元118可将地址转换为可用于访问系统存储器的地址。然后,从适配器发起的请求,包括转换的地址,例如通过I/o到存储器总线120被提供给存储器控制器106。存储器控制器执行其仲裁并在合适的时间将具有已转换地址的请求转发到系统存储器。对于MSI请求,获取地址转换和保护单元118中的信息,以便于将MSI请求转换为I/o适配器事件通知。在另一实施例中,在一个或多个中央处理器单元102之外或替代一个或多个中央处理器单元102,例如图IB中所示的中央处理复合体耦合到存储控制器106。在该特定的例子中,中央处理复合体150提供虚拟机支持。中央处理复合体150包括例如一个或多个虚拟机152、一个或多个中央处理器(CP) 154、以及至少一个管理程序156,在下面将描述其
中每一个。中央处理复合体的虚拟机支持提供了操作大量虚拟机的能力,每个虚拟机能够执行客户操作系统158例如z/Linux。每个虚拟机152能够作为单独的系统工作。S卩,每个虚拟机可被独立地复位、执行客户操作系统、并运行不同的程序。在虚拟机上运行的操作系统或应用程序看起来能访问完全和全部的系统,但实际上,仅有一部分是可用的。
在该特定的例子中,虚拟机的模型为V=V模型,其中,虚拟机的存储器由虚拟存储器而不是真实存储器来支持。每个虚拟机具有虚拟线性存储器空间。物理资源由管理程序156例如VM管理程序拥有,且共享的物理资源根据需要被管理程序分派给客户操作系统,以满足其处理需要。该V=V虚拟机模型假设客户操作系统和物理共享机器资源之间的交互是由VM管理程序来控制的,因为大量的客户典型地排除了管理程序将硬件资源简单地分区和分配给配置的客户。V=V模型的一个或多个方面在IBM于2001年10月公开的题为 “z/VM:Running Guest Operating Systems”(z/VM :运行客户操作系统)的 IBM
发明者G·斯特曼三世, D·克拉多克, J·伊斯顿, M·法雷尔, T·格雷格, D·L·奥西塞克, F·布赖斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1